41《CAN总线报文周期、抖动与实时性分析》
CAN总线基础:从物理层到数据链路层的核心概念一、一个让我熬夜的CAN问题去年调试某款车载ECU时遇到个诡异现象:同一批次的控制器,有的在-20℃低温下CAN通信完全正常,有的却频繁丢帧。示波器挂上去一看,显性电平的下降沿斜率明显变缓,从正常的15ns拖到了40ns。查了三天,最后发现是PCB上CAN收发器的去耦电容位置偏了2mm,导致高频噪声耦合进了总线。这个案例让我意识到:很多CAN总线问题,根源都在物理层。如果你只懂数据链路层的协议,遇到硬件相关的坑会非常被动。二、物理层:差分信号不是玄学CAN总线的物理层核心是差分电压传输。两条线——CAN_H和CAN_L——在静默状态下都维持在2.5V(隐性位),当节点发送显性位时,CAN_H拉高到3.5V,CAN_L拉低到1.5V,差分电压约2V。这里有个容易踩的坑:千万别把CAN_H和CAN_L接反。虽然有些收发器有极性纠正功能,但绝大多数没有。接反后总线会一直处于隐性状态,所有节点都发不出数据。我见过有人把CAN_H接到GND上,结果收发器直接冒烟——别这样写代码,硬件设计时一定要用不同颜色的线区分。终端电阻是另一个关键点。标准CAN总线两端各需要120Ω电阻,作用是匹配阻抗、抑制信号反射。很多人以为“只要总线上有120Ω就行”,于是把两个电阻并在一起放在一端——这是错的。正确的做法是:总线最远端的两个节点各放一个120Ω,中间节点不加。如果总线长度超过1米,必须加终端电阻,否则信号反射会导致位错误率急剧上升。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2604740.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!