4.1 五类错误检测机制


文档摘要

4.1 五类错误检测机制 本节摘要:本节在全书中承担"侦测层"角色:上一章的帧结构在这里被反向使用——每个字段的格式约定,都是一类错误的判定依据。本节逐一拆解五类错误的成因与检测方法,讲清错误帧如何让全总线同步丢弃坏帧,并用一个干扰案例串起检测到恢复的全过程。 错误从哪来?车载环境里,比特失真的来源五花八门:点火系统的辐射脉冲、电机换向噪声、地线波动、接插件接触不良、乃至某个节点自身软硬件故障。不同来源造成的失真形态不同,单一检测手段总有盲区,CAN因此布下五张网,让每一种典型失真都至少落入其中一张。 五张网各自兜住什么 按检测主体与失真形态,五类错误可以整理成一张对照表。

4.1 五类错误检测机制

本节摘要:本节在全书中承担"侦测层"角色:上一章的帧结构在这里被反向使用——每个字段的格式约定,都是一类错误的判定依据。本节逐一拆解五类错误的成因与检测方法,讲清错误帧如何让全总线同步丢弃坏帧,并用一个干扰案例串起检测到恢复的全过程。

错误从哪来?车载环境里,比特失真的来源五花八门:点火系统的辐射脉冲、电机换向噪声、地线波动、接插件接触不良、乃至某个节点自身软硬件故障。不同来源造成的失真形态不同,单一检测手段总有盲区,CAN因此布下五张网,让每一种典型失真都至少落入其中一张。

五张网各自兜住什么

按检测主体与失真形态,五类错误可以整理成一张对照表。

错误类型 谁检测 针对的失真 典型诱因
CRC 错误 接收方 数据内容被改变 突发干扰、接触不良
格式错误 接收方 固定格式位不合规 干扰打在定界符或保留位
应答错误 发送方 无人确认接收 总线孤立、全部接收方掉线
位错误 发送方 发送位与总线位不符 仲裁后期冲突、驱动故障
填充错误 接收方 填充规则被破坏 位失真恰好凑成六连同值

逐条展开。CRC错误:十五位校验码对帧首到数据场全段做保护,接收方重算比对,不一致即判错。它能兜住绝大多数内容失真,但校验不是数学证明——恶意构造或极小概率的多位失真可能漏网,这就是第7章要补端到端保护的原因。格式错误:帧里若干位置的比特值是协议定死的(定界符必须隐性、长度码不得大于八等),失真一旦落在这些位置上,接收方立即识别。应答错误:发送方在应答槽回读,若仍是隐性,说明没有任何节点确认——发送方据此知道自己可能已与总线失联。位错误:发送节点持续比对输出与总线,除仲裁期与应答槽等合法例外,发送显性读到隐性或反之,立即报错。填充错误:接收方监视填充规则,六连同值出现在保护区即判错——它本质是格式与同步的交叉防线。

五张网的覆盖逻辑值得体会:发送方自检(位、应答)加接收方校验(CRC、格式、填充),全网任何参与者发现异常都有权终止当前帧。没有中心裁判,人人皆是裁判。

错误帧:全总线的一致否决

任一节点检测到错误,立即发送错误帧,结构是六位显性加八位隐性(错误主动节点发送显性错误标志,错误被动节点只发隐性标志,4.2节展开)。六个显性位故意违反填充规则——保护区里最多五个同值——于是总线上所有节点都会因填充错误或位错误检测到"这帧坏了",不管它们自己有没有发现原始错误。所有节点丢弃当前帧,错误帧之后是帧间空间,总线上下文彻底复位,被干扰的报文由协议自动重传。

图4-1 错误帧与坏帧的同步丢弃

图4-1 错误帧与坏帧的同步丢弃

案例:一束辐射引发的连锁

背景:某车型整车辐射抗扰试验中,转向柱区域的控制单元报文出现错误帧,发生率随喇叭工作同步上升。操作:在台架上用喇叭继电器复现,示波器捕获到错误帧前波形在数据场中段出现塌陷;统计错误帧后紧跟的帧间空间是否正常,确认错误帧由接收侧检测到CRC错误后发出,而非发送节点自身故障。处理:改善该线束段与继电器的间距并加装磁环,错误帧消失。结果:抗扰试验通过。解读:这个案例里五张网的分工清晰可见——CRC网兜住了失真,错误帧机制把单点发现变成全网共识,重传让通信无感恢复;排障的关键证据链是"错误帧由谁发起",它把问题空间从"全网嫌疑"收窄到"某一物理位置"。变式:如果错误帧由发送节点持续发出(伴随应答错误),嫌疑就转向发送节点自身或其端接,分诊逻辑完全不同——这正是错误类型的归属诊断价值。

在实验台上复现错误

五类错误不必等到实车才见。虚拟总线加一个可注入干扰的仿真器,就能逐类复现:断开接收方只留发送方,触发应答错误;给数据场塞入非法长度码,触发格式错误;把原始值填成恰好六连同值的图案,制造填充错误;用另一个仿真节点以相同标识符发送不同数据,观察位错误引发的互相干扰。每一类复现,都对应4.2节计数器的一次可预测爬升——把错误注入与计数器读数并排打印,机制的因果一目了然。

这类实验的真正价值在于为测试团队积累"故障剧本":实车联调时遇到某种计数曲线,回放对应剧本即可快速归因。第8.1节的测试清单会把这些剧本固化成自动化用例,错误不再是需要运气才能遇到的稀罕事件,而是可以按需调用的测试资源。对协议机制的掌握深度,最终体现为能制造并解释多少种异常。

从错误形态反推物理病因

把错误类型与物理病因对应起来,是排障速查表的核心。CRC与填充错误成对出现、集中在某一节点的接收方向:优先怀疑该节点线束段的干扰或端接;应答错误伴随发送计数飙升:发送节点已成孤岛,查它的供电、收发器与接入线束;位错误由发送方报出且不伴随干扰事件:怀疑收发器驱动异常或节点内控制器与收发器之间连接不良;格式错误打在固定位置:常见于位时序临界、边沿抖动被采错。这张对照表不是万能公式,但能把"全网抓瞎"收敛为"定向怀疑"。

再用一条实战经验收束:错误日志要带工况时间轴。温度、电压、负载、周边大功率设备的启停,都是错误的相关变量;脱离工况看错误计数,就像脱离路况看油耗——数字是真的,结论靠不住。

最后补一条协同线索:当错误形态在本节与4.2节之间摇摆不定时,往往是干扰源间歇工作所致——把错误日志与整车工况(充电、大功率负载、无线发射设备)对齐,摇摆通常立刻显出规律。排障到这个深度,物理层与链路层的方法已经合流,剩下的只是耐心。

一个提醒作为本节收尾:五类检测全部由硬件实时完成,软件既不参与判定,也无法关闭——错误检测的可靠性不依赖任何代码质量,它是协议给所有节点的公共底线。软件要做的是读好计数器、用好状态机,那是下一节的主题。

本节要点回顾

  • 五类错误按主体分两组:发送方自检位与应答,接收方校验CRC、格式与填充,全网皆裁判。
  • 错误帧是全网否决器:六连显性必触发填充或位错误判定,所有节点同步弃帧、复位、等待重传。
  • 检测与恢复压缩在毫秒内:瞬态干扰的代价被限定在坏帧本身的传输时间。
  • 错误类型归属是排障分诊的起点:接收侧报错查环境干扰与线束,发送侧报错查节点自身与端接。

坏帧有了统一处置,剩下的问题是谁在持续制造坏帧。下一节让计数器上场,把故障节点逐级降级、隔离、再给出路。


作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U