这里需要讨论一个“连续”问题,Busoff发生32次,且Busoff由快恢复(Level1)进入慢恢复(Level2)阶段时,Busoff DTC需要上报。这里的32次如何计算呢?这里抛一个问题:”如上需求中,10ms可以检测一次节点Busoff状态,假设前100ms检测到了10次节点Busoff状态,中间1s节点恢复了通信,之后又快速的发生了32次Busoff,需要上报...
这里需要讨论一个“连续”问题,Busoff发生32次,且Busoff由快恢复(Level1)进入慢恢复(Level2)阶段时,Busoff DTC需要上报。这里的32次如何计算呢?这里抛一个问题:”如上需求中,10ms可以检测一次节点Busoff状态,假设前100ms检测到了10次节点Busoff状态,中间1s节点恢复了通信,之后又快速的发生了32次Busoff,需要上报...
首先,Busoff的产生与TEC(Transmit Error Counter)超过255有关。若节点状态切换到Busoff,意味着节点自身发送报文错误,导致TEC超过255。节点状态机中,Error Passive状态是由于REC(Receive Error Counter)或TEC超过127触发。在理解Busoff与Error Passive状态下,驱动层提供接口给上层,以改善功能算法。以英...
该状态下节点能正常进行通信,当错误产生时,发送6个连续显性位组成的主动错误标志;当REC或者TEC大于127时,节点状态跳转至被动错误状态,该状态下节点能正常通信;当错误产生时,发送6个连续隐性位组成的被动错误标志;当TEC达到255时,节点进入BusOff状态,并且不能收发报文,总线上其他节点依然可以正常通信。
硬件唤醒:当CAN状态机处于SLEEP模式下时,收到硬件唤醒信号,CAN状态机跳转STOPPED状态 Bus-Off:当CAN状态机处于STARTED状态时,如果发生BusOff,那么CAN状态机跳转STOPPED状态; CAN报文发送 Can_Write()函数用于发送报文,报文成功发送后,CAN模块会调用CanIf_TxConfirmation()上报消息发送成功(CanIf层的通知回调,此处若不理...
CAN总线Bus off处理需求; CAN报文的诊断需求,比如ID检测,超时检测,Checksum校验和故障后处理措施等; 功能安全相关的E2E保护需求。 总之,CAN通讯其实是一个非常大的话题,内容非常多非常复杂,不管在主机厂还是供应商,不管是ECU系统还是ECU软硬件,都有很多相关的工作需要做,很多细节需要把控,更多CAN通讯内容,欢迎持续关注...
AUTOSAR标准(V4.3.1) 中,定义CAN State manager模块负责实现CAN Bus Off恢复的策略。如下图所示,图中内容为Can State Manager模块实现的状态机CANSM_BSM,控制某个CAN controller通信的状态。 CANSM_BSM状态机中,CANSM_BSM_S_FULLCOM,CANSM_BSM_S_SILENTCOM,这两个状态与Bus Off事件相关。 Why?? 在状态CAN...
总线离线恢复状态机的状态如表 2.4所示。 表2.4 Bus-off恢复状态机状态分类 每个总线离线恢复状态机有一个总线离线计数器。这个计数器分为如下三个阶段: 1) 计数器位于区间[0,1):总线恢复状态无离线状态。 2) 计数器位于区间[1, CanSMBorCounterL1ToL2):总线恢复状态机离线的第一阶段。其中CanSMBorCounterL1To...
CANSM配置模块中对CANSM与CANIf之间进行Mode边变化的时间做了限制,同时定义了BusOff处理的相关时间参数。定义相关CAN模块的BusOff段短恢复和长恢复机制。 COM COM模块主要为应用层(或者RTE)模块提供信号传输的接口,提供的接口主要是以Signal的形式存在,同时也包含信号组的形式,信号组一般对应应用层的结构体变量,在COM...
-CAN总线Bus off处理需求; -CAN报文的诊断需求,比如ID检测,超时检测,Checksum校验和故障后处理措施等; - 功能安全相关的E2E保护需求。 总之,CAN通讯其实是一个非常大的话题,内容非常多非常复杂,不管在主机厂还是供应商,不管是ECU系统还是ECU软硬件,都有很多相关的工作需要做,很多细节需要把控,更多CAN通讯内容,欢迎...