目录
2 如何使用VH6501 CAN Disturbance Interface测试CANFD通信和经典CAN通信的Busoff
1 如何产生一次Busoff事件
如果节点的TEC(transmit error counter发送错误计数器)大于255:ECU发送失败一次:TEC + 8, ECU发送成功一次:TEC – 1,及需要连续发送32次(32 * 8 = 256 > 255)失败,那么supervisor应请求Physical Layer物理层将节点设置为bus-off状态。
1.1 产生Busoff的节点,其自身有哪些变化?
处于bus-off状态的节点对总线没有影响,该节点将不得发送任何帧,也不得Acknowledge确认Data Frame或Remote Frame。 这样的节点是否接收来自总线的Data Frame取决于实现。
1.2 如何退出Busoff状态
在重新启动请求后,处于bus-off状态的节点应与 CAN 通信整合,并且监测到总线上出现128次idle condition空闲状态(连续隐形位)后,变为error-active主动错误(不再处于bus-off),其TEC设为零。
在Autosar CanSm模块中,有这样一段描述:bus-off恢复的次数小于阈值CanSMBorCounterL1ToL2,则等待CanSMBorTimeL1(level 1:short recovery time快恢复时间)后,尝试重新发送CAN报文;bus-off恢复的次数大于或等于阈值CanSMBorCounterL1ToL2,则等待CanSMBorTimeL2(level 2:long recovery time慢恢复时间)后,尝试重新发送CAN报文。
如何理解“bus-off恢复的次数”:表示CAN控制器连续产生Bus off的次数。每检出一次Bus off,需要等待CanSMBorTimeL1或CanSMBorTimeL2后,CAN控制器尝试重新发送CAN报文,如果依旧发送失败,TEC从0再次累加至256(即,Error Active状态切换至Bus Off状态),Bus off的次数加1。如此循环往复,直至成功发送CAN报文。
2 如何使用VH6501 CAN Disturbance Interface测试CANFD通信和经典CAN通信的Busoff
2.1 如何测量Busoff的快/慢恢复时间
2.1.1 “Bus off恢复次数”等于1
节点在CAN网络中,一个CAN帧发送失败后,触发CAN控制器的“重发”机制,连续重发31次,每次重发都失败(共发送失败32次),CAN控制器检出一次Busoff,即Bus off Counter = 1。下图中,6.536648~6.624175秒内,为该节点的“快恢复时间”,在该间隙内,节点停发报文。直至恢复报文的发送。
2.1.2 “Bus off恢复次数”等于2
节点在CAN网络中,一个CAN帧发送失败后,触发CAN控制器的“重发”机制,连续重发31次,每次重发都失败(共发送失败32次),CAN控制器检出一次Busoff。下图中,10.261196~10.348716秒内,为该节点的第一次“快恢复时间”,在该间隙内,节点停发报文。
第一次“快恢复时间”到期后,节点再次尝试发送一个CAN帧报文,依旧失败,连续重发31次,CAN控制器第二次检出Busoff,即Bus off Counter = 2。下图中,10.361329~10.448855秒内,为该节点的第二次“快恢复时间”,在该间隙内,节点停发报文。直至恢复报文的发送。
2.1.3 “Bus off恢复次数”等于n
假设CanSMBorCounterL1ToL2 = 3,Bus off Counter小于CanSMBorCounterL1ToL2,恢复时间为快恢复时间CanSMBorTimeL1;Bus off Counter大于或等于CanSMBorCounterL1ToL2,恢复时间为慢恢复时间CanSMBorTimeL2。
结尾
获取更多“汽车电子资讯”和“工具链使用”,
请关注优快云博客“汽车电子助手”,做您的好助手。