CANFD中错误被动接收节点未完成错误定界符时遇SOF是否判定为错误?
CAN总线错误场景的判定分析
场景回顾
- 节点B(错误主动发送节点)行为时序:
- 位0-5:发送6位显性位
- 位6-13:发送8位隐性错误定界符
- 位14-16:发送3位隐性间歇场
- 节点A(错误被动接收节点)行为时序:
- 位6-11:因位填充错误发送6位隐性错误标志
- 位12-19:预期接收8位隐性错误定界符
冲突触发:节点B在位17(间歇场结束后)误判总线空闲,发送显性SOF;但节点A此时仍处于错误定界符的接收等待阶段(需到位19才完成)。
判定结论
节点A会将该显性位判定为错误。
依据分析
根据CAN总线协议规范:
- 错误被动节点发送完错误标志后,会进入错误定界符的监听确认阶段,要求连续接收8个隐性位才算完成该阶段。
- 节点A预期位12-19为8个隐性错误定界符位,位17属于这个时间段内,此时出现的显性SOF与预期的隐性位完全不符。
- 这种不符会触发节点A的错误检测机制,节点A会重新发送错误标志,总线时序将被重新打乱。
另外补充:节点B的误判源于它在间歇场结束后直接判定总线空闲,但此时节点A仍在处理错误定界符,总线并未进入真正的空闲状态,这是冲突的根源。
内容的提问来源于stack exchange,提问作者Georgie423
相关产品推荐
相关产品推荐

