CAN直接网络管理(20240805)

CAN网络管理规范

个人理解:管理CAN网络中各NM节点的工作模式(状态);

1.术语定义

	👉节点地址:用于==唯一标识网络中每个节点的单字节数字,取值范围是 0x00~0xFF==。

    👉状态迁移:==状态指节点的工作模式。在一定状态下,节点执行特定功能==;

   👉 NM节点:该类节点要求具有网络管理功能,在满足该节点睡眠与唤醒条件时需要进入或退出==通讯睡眠模式==,睡眠唤醒条件由模块《睡眠与唤醒条件》文件定义。

2.图例说明

在这里插入图片描述
在这里插入图片描述

3.CAN NM节点状态及状态迁移

3.1NM运行状态

节点上电时,节点进入NM运行状态。在NM运行状态中,包含了网络唤醒网络睡眠主动网络管理被动网络管理,两组并列的工

作子状态;

3.1.1 唤醒状态(NMWake)

当节点满足控制器唤醒条件时,节点进入网络唤醒状态。在直接网络管理中,节点长期保持在此状态,维持网络管理运行、监控网络节点运行状态、负责节点网络睡眠

其包括正常运行(NMNormal)、跛行(NMLimpHome)两个子状态和复位(NMReset)过程。


3.1.2睡眠状态(NMBusSleep)

当所有节点满足控制器睡眠条件后,睡眠类型节点进入网络睡眠状态。

在此状态中,网络通讯停止,但 CAN 收发器监测网络活动。


3.1.3主动网络管理(NMActive)

网络节点主动参与逻辑环建立、维持,睡眠指示、睡眠命令等网络管理活动。


3.1.3被动网络管理(NMPassive)

网络节点仅监听网络状态,不参与网络管理活动。

在这里插入图片描述
在这里插入图片描述

4.运行流程

4.1初始化流程
当节点上电或唤醒后,进入初始化流程。初始化流程包括硬件初始化、复位两部分。
在初始化流程中,需要对芯片硬件进行初始化、清空 NMrxcount 和 NMtxcount、目标地
址进行配置,NMrxcount 进行加 1,同时发送 Alive 报文并将 NMtxcount 进行加 1。
如果接收和发送计数器均未超过阈值,则启动定时器 Ttyp,超时后进入常规运行状态,
否则启动定时器 Terror,超时后进入跛行状态。
当节点唤醒、退出 LimpHome 状态、总线出现严重错误,节点将进入 LimpHome 状态

在这里插入图片描述


4.2正常运行状态
当节点初始化完成,且当接收、发送计数器都小于阈值时,节点进入常规运行状态,
常规运行流程可以分为 "常规运行流程" 与 "睡眠流程" 两部分。

在这里插入图片描述


在正常运行、预睡眠过程中,接收到 NM 报文后,首先将接收计数器清零,然后判断报文类型。

若为 Limphome 报文则将更新配置标记 Limphome 节点,否则确定逻辑继承者,并再次判断报文类型,

若为 Alive 报文则使网络稳定参数为 0,当前逻辑环处于网络不稳定状态;

若为 Ring 报文,首先取消 Ttyp 和 Tmax 定时器,判断目标地址是否和本地地址一致,若一致则启动 Ttyp,

否则启动 Tmax 定时器,Tmax 超时后判断节点是否被跳过,如果被跳过并且允许睡眠,则发送 ind=1 的 Ring 报文,不允许睡眠则发送 Alive报文。


4.2.1 常规运行流程
4.2.1.1 NM报文接收

在常规运行状态中,如果在 Tmax 超时范围内接收到 NM 报文,节点进入 NM 报文接收流程。

在流程中,节点首先进入接收后定时、跳过判断流程(图 8)。判断完成后,再对报文类型进行判断,

如果为睡眠命令报文,且本节点满足睡眠条件,节点进入睡眠初始化。

如果节点不满足条件,退回到常规运行状态。NM 报文接收流程见图 9 所示。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传


4.2.1.2 NM报文发送

当节点接收到的 Ring 报文目标地址等于本地地址时,节点启动 Ttyp 定时器。

当 Ttyp超时后,节点进入报文发送流程。当节点处于主动网络管理状态时,

如果节点自身满足睡眠条件,且 NMtxcount<=tx_limit 时,节点发送”Sleep.ind=1”的 Ring 报文,并配置
网络状态。

如果 NMtxcount>tx_limit,则节点进入跛行状态。当 Ttyp 超时,发送 NM 报文流程见图 10 所示。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

在发送非跛行的 NM 报文时,如果发送报文请求被驱动层拒绝,则定时 Ttx 定时器。

Ttx 超时后节点才能再次发送NM 报文。但不对 NMtxcount 进行操作。如果 Tmax 超时,节点复位,取消 Ttx 定时器。


4.2.1.3 NM报文成功发送

在常规运行状态中,在节点发送了 NM 报文后,当数据链路层返回报文成功发送后,节点进入 NM 成功发送流程。

节点对 NMtxcount 计数器进行清零,并对 Tmax 定时器重新进行定时。

如果发送的报文为”Sleep.ind=1”的 Ring 报文,则判断节点当前是否满足睡眠条件。

如果满足,则将 Sleep.ack 位置“1”,并进入预睡眠状态。否则节点返回常规运行状态。

当 NM 报文成功发送后,其详细流程见图 11 所示。

在这里插入图片描述

4.2.1.4 Tmax超时处理

当定时参数 Tmax 超时时,节点复位,再次进入节点初始化。

计数器 NMrxcount+1,发送 Alive 报文后,NMtxcount+1。并判断 NMrxcount、NMtxcount 两个计数器。

当NMrxcount 或 NMtxcount 大于阈值时,节点进入跛行状态。其流程见图 12 所示。

在这里插入图片描述


4.2.1.5 NM节点睡眠满足

当节点满足睡眠条件后,判断当前节点是主动状态还是被动状态。

当节点处于被动状态时,节点进入预睡眠状态。

当节点处于主动状态时,节点返回常规运行状态。其流程见图 13 所示。


4.2.1 正常睡眠流程
4.2.1.5 预睡眠

当节点满足睡眠条件后,节点成功发送”Sleep.ind=1”的 Ring 报文,如果Networkstatus.Bussleep = 1 并且 sleep.ack=1,节点将进入预睡眠状态。

在等待其他节点发送”Sleep.ind=1”的 Ring 期间,如果本节点检测到不满足睡眠时,退出预睡眠状态;

当节点收到任意 NM 报文时,首先进入接收后定时、跳过判断流程(图 8);再判断接收到的 NM 报文 sleep.ind 是否为“1”,如果不为“1”,节点退出预睡眠状态。

如果满足条件,再次判断是否为 sleep.ack=1 的睡眠命令报文。如果是,节点进入睡眠初始化,否则节点
仍处于预睡眠状态;

当 Ttyp 超时后,节点发送睡眠命令报文;当报文成功发送后,节点停止通讯,并进入睡眠等待状态。其流程见图 14 所示。


4.2.1.5 睡眠等待

接收或发送 ack=1 的说明命令报文后,节点停止网络通讯,进入睡眠等待状态。

在Twbs 超时前,如果接收到 ind=0 的报文或不满足睡眠条件时,节点退出睡眠等待状态,进入复位状态。

当 Twbs 超时后,节点进行总线关闭初始化后,进入睡眠状态。其流程见图 15 所示。


4.3 跛行状态

网络管理定义了两个错误计数器:网络管理接收错误计数器(NMrxcount)和网络管理发送错误计数器(NMtxcount)

🔰接收错误计数器

用于表示 NM 报文连续接收错误的数目,NMrxcount 的阈值用 rx_limit 表示,当成功接收到 NM 报文后,NMRxcount 计数器清零。


🔰接收错误计数器

用于表示 NM 报文连续发送错误的数目,NMtxcount 的阈值用 tx_limit 表示,当成功发送 NM 报文后,NMTxcount 计数器清零。


🔰跛行状态处理机制

当任何一个错误计数器超过其阈值时,节点进入跛行状态。当总线关闭之后也进入跛行状态。

节点进入跛行状态后,以 TError 周期发送 LimpHome 报文。


4.3.1 跛行常规流程
4.3.1.1 NM 报文接收

当节点处在跛行状态下,如果接收到了网络管理报文 ,节点需要通过NMMerker.limphome(成功发送标志)判断在接收到网络管理报文前是否发送成功过网络管理报文。

如果 NMMerker.limphome=1 后,判断节点是否允许网络睡眠。如果不允许睡眠,节点复位;如果允许睡眠且接收到 Sleep.ack=1 的睡眠命令报文,节点进入睡眠初始化 7,即停止网络通讯,设置定时器 Twbs,进入睡眠等待状态。

如果 NMMerker.limphome == 0 后,判断节点是否允许网络睡眠。如果不允许睡眠,节点进入跛行状态;

如果允许睡眠,且接收到的为 Sleep.ind=0 的 NM 报文,节点也进入跛行状态;如果接收到 Sleep.ind=1 的 NM 报文则再次判断 ack 状态,如果收到 ack =1 的睡眠命令报文,则节点进入睡眠初始化状态 7;

如果收到 ack==0 睡眠命令报文,节点则进入预睡眠状态。其流程见图16 所示。


4.3.1.2 NM 报文发送

当 Terror 定时器超时后,节点尝试允许运用报文发送。并判断节点是否满足睡眠条件,如果满足睡眠条件,发送 Sleep.ind=1 的跛行报文,同时设置 Tmax,并进入预睡眠状态。

如果网络不满足睡眠,则节点重新设置 Terror,并发送 LimpHome。其流程见图17 所示。


4.3.1.3 NM 报文成功发送

在跛行状态下,当节点成功发送跛行报文后,节点标记 NMMerker.limphome=1,标记节点成功发送跛行报文。

其流程见图 18 所示。

4.3.2 跛行睡眠流程
4.3.2.1 预睡眠

①在跛行状态下,在 Tmax 超时前,当节点成功发送 NM 报文时节点进入预睡眠状态。

②如果节点不满足睡眠条件,则启动 Terror,超时后进入跛行状态。

③如果接收到 NM 报文并能够成功发送 NM 报文,则先判断是否允许睡眠,

  如果允许并且接收到 Sleep.ack=1 的睡眠命令报文,则进入睡眠初始化 7,否则进行软件复位;

    如果接收到 NM 报文但不能成功发送 NM 报文,则先判断是否允许睡眠,如果不允许则进入跛行状态;

  		否则,如果 Sleep.ind=0 节点也将进入跛行状态;

  		如果 Sleep.ind=1 并且 Sleep.ack=1,节点将进入睡眠初始化;

  		如果 Sleep.ind=1 并且Sleep.ack=0,节点则将进入预睡眠状态。

④Tmax 超时后,节点进入睡眠初始化状态。

4.3.2.2 睡眠等待

在跛行状态下,在 Twbs 超时前,如果节点不满足睡眠条件或接收到的 NM 报文 ind=0 的 NM 报文时,节点取消 Twbs 定时器,定时 Terror 定时器,然后退回到跛行状态。否则,节点仍处于睡眠等待状态。直到 Twbs 超时,超时后,节点睡眠。其流程见图20所示。

在这里插入图片描述


5.“逻辑环”及“节点跳过判断”机制

在这里插入图片描述
在这里插入图片描述

6.网络管理报文

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述



附录:

😝 定时器参数、阈值列表

在这里插入图片描述

😝 节点列表

注:目前节点为以上 10 个节点,但 DUT 应该能识别基地址内的所有节点。

节点节点名称NMCAN ID节点地址
BCM车身控制器0x4000x00
IP仪表0x4010x01
ESCL电子转向锁0x4020x02
PEPS无钥匙启动模块0x4030x03
LCM灯光控制器0x4040x04
TPMS胎压检测系统0x4050x05
GW网关控制器0x4060x06
TBox车载通信控制器总成0x4070x07
PTS背门控制器0x4080x08
DSM座椅控制器0x4090x09
EMS发动机管理系统0x4100x10

😝 节点框图及术语

在这里插入图片描述

术语英文中文备注
BATBattery蓄电池供电
OFFOFF电路关闭
ACCAccessoryACC 档电源开启
IGN(ON)IGNIGN 档电源开启
STARTSTART发动机启动, 点火后自动回 到 IGN
EPSElectric Power Steering电动助力转向系统
HDCHill Descent Control陡坡缓降控制系统
ESCElectronic Stability Control电子稳定性控制系统
IACCIntegrated Adapted Cruise Control集成式自适应巡航
ACCAdaptive Cruise Control自适应巡航
LDWLane departure warning system车道偏离辅助系统
FCWForward Collision Warning前碰撞预警
AEBAutonomous Emergency Braking自动紧急制动
STTSTOP&START怠速启停
HUHead Unit车载娱乐信息终端总成
PTSPower Tail System汽车背门控制器
EMSEngine Management System电喷控制器(发动机管理 系统)
EPBiElectronic Parking Brake integration电子手刹集成 (EPB+ESP)
AFSAdaptive Front-light System自适应前照灯系统
ALSAuto-Leveling System头灯自动高度调节系统
FSCMFront Seat Climte Module前排座椅加热通风模块
PEPSPassive Entry Passive Start无钥匙进入启动
DSMDriver Seat Module主驾座椅模块
LCMLight Control Module灯光控制模块
BSDBlind Spot Detect盲点检测控制器
DVRDriving Video Recorder行车记录仪
ACAir Conditioner空调控制器
AVMAround View Module全景模块
IPInstrument Panel仪表控制器
iBCMintelligent Body Control Module智能车身控制模块
APAAuto Parking Assist自动泊车辅助控制器
LCDALLane Change Decision Aid Left左侧并线辅助模块
LASLane Assistant System车道辅助系统
  • 29
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值