位移传感器CAN总线入门,一篇看懂

CAN 总线在汽车和工业里混了很多年,比 RS485 高级在哪?一句话:RS485 是「主站轮询、从站应答」的问答模式,CAN 是「节点自己广播、谁感兴趣谁收」的广播模式,而且自带仲裁和错误重发,抗造。
CAN 的物理层也是差分(CAN_H / CAN_L 两根线),抗干扰底子好。波特率常见 125k、250k、500k,工业位移系统 250k 用得最多,兼顾速度和距离。所有节点波特率必须一致,不然总线直接瘫痪,这是新手第一个坑。
报文结构不用背太细,记住两点: identifier(标识符)决定优先级,数字越小优先级越高,总线冲突时高优先级帧先发,低优先级自动退让,不会互相覆盖;数据场最多 8 字节,所以一帧传不了太多,位移数据拆几帧发就行。
终端电阻和 RS485 一样,总线两端各 120 欧。少了反射,通信在高速下必出错。中间节点千万别加。
和 RS485 比,CAN 最大的优势是多主和容错。RS485 主站挂了全网歇菜;CAN 任何一个节点都能主动发,某个节点坏了,其他照常跑,总线层还能检测故障节点并把它静音。所以对可靠性要求高的设备,比如注塑机、工程机械,CAN 更受待见。
接线上,CAN_H 接 CAN_H,CAN_L 接 CAN_L,别交叉。屏蔽双绞线,屏蔽层单端接地。节点数理论上 CAN2.0B 能挂一百多个,实际受收发器和波特率限制,几十个没问题。
最后提醒:调试 CAN 别靠猜,买个 USB-CAN 适配器接电脑,用上位机看总线上的报文,谁在发、发的啥、有没有错误帧,一目了然。比拿万用表量电压瞎琢磨强一百倍。