CAN总线基本知识
CAN总线基本知识
基本概念
CAN 是Contoller Area Network 缩写,即控制域网络,简单来说就是用于汽车不同电子器件之间传输网络。
CAN 总线两个主要ISO国际标准是:ISO11898和ISO11519
ISO11898 定义了通信速率为 125 kbps~1 Mbps 的高速 CAN 通信标准,属于闭环总线,传输速率可达1Mbps,总线长度 ≤ 40米。
ISO11519 定义了通信速率为 10~125 kbps 的**低速 CAN **通信标准,属于开环总线,传输速率为40kbps时,总线长度可达1000米。
CAN为了减少外部电磁场对内部点评的干扰,通常采用双绞线
CAN的拓扑结构
下图中,左边是高速CAN总线的拓扑结构,右边是低速CAN总线的拓扑结构。
CAN信号表示
在CAN总线上,利用CAN_H和CAN_L两根线上的电位差来表示CAN信号。CAN总线上的电位差分为显性电平和隐性电平。其中显性电平为逻辑0,隐性电平为逻辑1。
ISO11898标准(125kbps ~ 1Mbps)和ISO11519标准(10kbps ~ 125kbps)中CAN信号的表示分别如下所示:
CAN信号传输
发送过程:CAN控制器将CPU传来的信号转为逻辑电平(即逻辑0-显性电平或者逻辑1-隐性电平)。CAN发射器接收逻辑电平之后,再将其转换为差分电平输出到CAN总线上。
接受过程则刚好相反。
CAN通信网络结构
OSI基本参照模型
OSI参考模型为7层,物理层、数据链路层、网络层、传输层、会话层、表示层和应用层,而CAN通信底层仅使用了物理层和数据链路层
CAN总线报文类型
CAN总线的报文类型主要有五种,数据帧、远程帧、错误帧、过载帧、帧间隔
下面以数据帧为例进行简单介绍,其帧结构如下图所示,包含七个段:帧起始、仲裁段、控制段、数据段、CRC段、ACK段、帧结束
帧起始
仲裁域:通过11位标识符对报文优先级进行判断,RTR位判断为数据帧还是远程帧
控制域:描述数据域中的字节数
数据域:8个字节传递信息,如转速等
CRC域:循环冗余校验,避免因物理层传递出现丢失的情况
ACK域:表明总线中至少有一个节点正确接收到发送的报文,没有发生干扰
帧结束