假设:当CAN通讯使用了CAN FD格式报文,将仲裁段的波特率设置为500Kbps,数据段的波特率为2Mbps。当发送节点在数据段出现位错误时(eg:Bit Error,位错误),那么接下来发送的错误帧速率是继续2Mbps还是切换到500Kbps呢?如下图,发送节点发送一帧CAN FD报文,发送数据段Byte1的某个Bit时,发现了Bit Error(发送的Bit值与回读的Bit值不一致),接下来,发送节点发送错误帧,错误帧的速率是500Kbps还是2Mbps呢?
假设发送节点此时正在发送数据段(2Mbps)数据,- 在T1时刻,发送节点识别到位错误,且发送节点处于主动错误状态,此时的发送节点需要发送主动错误帧。
- 在T2时刻,接收节点识别到填充错误,即:不满足ISO11898规范要求的填充规则(每5个相同的Bit,插入一个反向Bit)。假如接收节点也于主动错误状态,那么接收节点也需要发送主动错误帧,如下所示:
这里细化下问题:在T1~T4区间,错误帧的速率是500Kbps还是2Mbps?
对于这个问题,最先想到的是从ISO11898协议规范中寻找答案,可惜没找到,如果有还请告知。但在英飞凌TC3xx芯片手册中找到了相应的解释,如下所示:
也就说发送节点发送CAN FD报文,发送高速数据段时(2Mbps),检测到错误,速率切回Norminal Bit Rate(500Kbps),不用等到CRC界定符位置再切换500Kbps。即发送节点识别到位错误,会紧接着以500Kbps的速率发送主动错误帧,而接收节点不管是以500Kbps速率接收还是2Mbps速率接收,均能识别到填充错误,之后,接收节点也会以500Kbps速率发送错误帧。如上,即是本文答案。提示:一个CAN网段内,一般有多个CAN节点,很可能一些节点支持CAN FD格式报文,一些节点不支持CAN FD格式报文,为了兼容非CAN FD节点,且让这些节点识别到错误帧,错误帧的速率设计为500kbps更合理。
点击下方关注,一起聊聊Autosar/嵌入式,如果需要,联系作者进群,给你更专业的解答
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。