本文注意参考了《CAN入门书》,源于此书图片不再特殊标注
1.1 CAN总线背景
为减少汽车线束数量,1986年,博世开发出面向汽车的CAN通信协议,经过ISO11898、ISO11519标准化后,现称为汽车网络的标准协议,鉴于其高性能和可靠性,如今在工业、船舶、医疗领域也广泛应用[1]。
图片源自
1.2 CAN总线定义
CAN 是IOS国际标准化的串行通信协议,全称 Controller Aera Network。
- IOS11898中定义了高速CAN(125kbps~1Mbps),属于闭环总线,1Mbps时总线长度<40m
- IOS11519中定义了低速CAN(10kbps~125kbps),属于开环总线,40kbps时总线长度可到1000m
1.3 CAN总线信号特性
CAN总线用CAN_H和CAN_L两个差分信号进行传输数据,显性电平代表逻辑0,隐性电平代表逻辑1。
ISO11898和ISO11519对电平电位定义不同,汽车行业只需要关注ISO11898标准即可,以下介绍默认ISO11898标准。
- ISO11898的高速总线上(125kbps~1Mbps),隐性电平电位2.5V,显性电平电位2.5±1V
- ISO11519的低速总线上(10kbps~125kbps),隐性电平不再相同,具体如图
1.4 CAN总线传输
CAN总线逻辑0/1是CPU指挥CAN控制器发送(接收)的,而逻辑0需要转换为显性差分2.5±1V电平信号,逻辑1需要是隐性2.5V电平信号,这个转换过程就需要CAN收发器完成
图片源自
1.5 OSI基本参照模型和CAN总线协议
OSI基本参照模型
CAN协议涵盖了OSI基本参照模型中的物理层、数据链路层、传输层,其中数据链路层MAC是CAN协议核心,此部分是CAN控制器硬件执行,软件开发仅作了解。
参考:[1]《CAN入门书》