1 CAN总线概念
CAN
总线有两个
ISO
国际标准:
ISO11898
和
ISO11519
。其中:
•
ISO11898
定义了通信速率为
125 kbps
~
1
Mbps
的高速
CAN
通信标准,属于闭环总线,传输速率可达
1Mbps
,总线长度 ≤
40
米。
•
ISO11519
定义了通信速率为
10
~
125 kbps
的低速
CAN
通信标准,属于开环总线,传输速率为
40kbps
时,总线长度可达
1000
米。
•
在
CAN
总线上,利用
CAN_H
和
CAN_L
两根线上的电位差来表示
CAN
信号。
CAN
总线上的电位差分为
显性电平
和
隐性电平
。其中
显性电平
为逻辑
0
,
隐性电平
为逻辑
1
。
CAN
信号的表示分别如下所示:
•发送过程:CAN控制器将CPU传来的信号转换为逻辑电平(即逻辑0-显性电平或者逻辑1-隐性电平)。CAN发射器接收逻辑电平之后,再将其转换为差分电平输出到CAN总线上。
![](https://img-blog.csdnimg.cn/e25dfde1a47045b9bb08c084a92680bd.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55-z5aKoQzEy,size_20,color_FFFFFF,t_70,g_se,x_16)
•
接收过程:
CAN
接收器将
CAN_H
和
CAN_L
线上传来的差分电平转换为逻辑电平输出到
CAN
控制器,
CAN
控制器再把该逻辑电平转化为相应的信号发送到
CPU
上。
![](https://img-blog.csdnimg.cn/696cfbe087b04870a7e527120973fd1d.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55-z5aKoQzEy,size_20,color_FFFFFF,t_70,g_se,x_16)
2 CAN通信的特点
多主工作方式:
•
所谓多主工作方式,指的是:总线上的所有节点没有主从之分,在总线空闲状态,任意节点都可以向总线上发送消息。
•
<
总线空闲状态
>
:当总线上的上出现连续的
11
位隐性电平,那么总线就处于空闲状态。也就是说对于任意一个节点而言,只要它监听到总线上连续出现了
11
位隐性电平,那么该节点就会认为总线当前处于空闲状态,它就会立即向总线上发送自己的报文。
•
在多主工作方式下:最先向总线发送消息的节点获得总线的发送权;当多个节点同时向总线发送消息时,所发送消息的优先权高的那个节点获得总线的发送权。例如:
Node_A
和
Node_B
同时向总线发送各自的消息
Msg_1
和
Msg_2
,如果
Msg_1
的优先级比
Msg_2
高,那么
Node_A
就获得了总线的发送权。
•非破坏性位仲裁机制:
•在CAN协议中,所有的消息都以固定的帧格式发送。当多个节点同时向总线发送消息时,对各 个消息的标识符(即ID号)进行逐位仲裁,如果某个节点发送的消息仲裁获胜,那么这个节点将获取总线的发送权,仲裁失败的节点则立即停止发送并转变为监听(接收)状态。 例如:Node_A和Node_B同时向总线发送各自的消息Msg_1和Msg_2,那么对Msg_1的ID号ID_1和Msg_2的ID号ID_2进行逐位仲裁,如果仲裁结果是:ID_1的优先级比ID_2高,那么Msg_1在仲裁中获胜,于是发出Msg_1这条报文的节点Node_A就获得了总线的发送权。同时,Msg_2在仲裁中失败,于是Node_B就转换到监听总线电平的状态。这种仲裁机制既不会造成已发送数据的延迟,也不会破坏已经发送的数据,所以称为非破坏性仲裁机制。
•
系统的柔性:
•
CAN
总线上的节点
没有“地址”的概念
,因此在总线上增加节点时,不会对总线上已有节点的软硬件及应用层造成影响。
•
通信速度:
•
通信速度在同一条
CAN
线上,所有节点的通信速度(位速率)必须相同,如果两条不同通信速度总线上的节点想要实现信息交互,必须通过网关。 例如:汽车上一般有两条
CAN
总线:
500kbps
的驱动系统
CAN
总线和
125kbps
的舒适系统
CAN
总线,如果驱动系统
CAN
总线上的发动机节点要把自己的转速信息发送给舒适系统
CAN
总线上的转速表节点,那么这两条总线必须通过网关相连。
3 CAN通信网络结构
•实际上,CAN总线网络底层只采用了OSI基本参照模型中的数据链路层、传输层。而在CAN网络高层仅采用了OSI基本参照模型的应用层 .
![](https://img-blog.csdnimg.cn/0e28af9a2339498c9ecb683ceeeba9f1.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55-z5aKoQzEy,size_20,color_FFFFFF,t_70,g_se,x_16)
4 CAN 报文协议
•在CAN协议中,ISO标准只对数据链路层和物理层做了规定。对于数据链路层和物理层的一部分,ISO11898和ISO11519-2的规定是相同,但是在物理层的PMD子层和MDI子层是不同的。![](https://img-blog.csdnimg.cn/1a364abfbd454781829a8bea380b4791.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55-z5aKoQzEy,size_20,color_FFFFFF,t_70,g_se,x_16)
![](https://img-blog.csdnimg.cn/0cb1729efd8f4a02939e92ed47b65927.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55-z5aKoQzEy,size_20,color_FFFFFF,t_70,g_se,x_16)
5 CAN总线的结构应用
高速CAN和低速CAN通信需要通过网关进行转换。![](https://img-blog.csdnimg.cn/6608fca11f7246a7a7a4b0b89985dc81.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55-z5aKoQzEy,size_20,color_FFFFFF,t_70,g_se,x_16)