CAN通讯
1.CAN通讯介绍
与I2C、SPI等具有时钟信号的同步通讯方式不同,CAN通讯并不是以时钟信号来进行同步的,它是一种异步通讯,只具有CAN_High和CAN_Low两条信号线,共同构成一组差分信号线,以差分信号的形式进行通讯。
CAN物理层的形式主要分为闭环总线及开环总线网络两种,一个适合于高速通讯,一个适合于远距离通讯。
1.1闭环总线网络
CAN闭环通讯网络是一种遵循ISO11898标准的高速、短距离网络,它的总线最大长度为40m,通信速度最高位1Mbps,总线的两端各要求有一个“120欧”的电阻。目的是为了吸收反射波,匹配网络阻抗,防止出现反射波如下图所示,影响数据通讯。具体可以看理论推导CAN线传输信号的特性
低速CAN之所以不加终端电阻,是由于波长相对较长,反射和回波较弱。但低速CAN系统的控制单元会有自己独立的终端电阻,它不是连接在CAN-high导线与CAN-low导线之间,而是连接在每根导线对地或对+5V电源之间。如果蓄电池断电,电阻就没有了,这时用万用表无法测出电阻。
由于CAN总线协议的物理层只有一对差分线,在一个时刻只能表示一个信号,所以对通讯节点来说,CAN通讯是半双工的,收发数据需要分时进行。在CAN的通讯网络中,因为公用总线,在整个网络中同一时刻只能有一个通讯节点发送信号,其余的节点在该时刻都只能接收。