43.1-CAN通讯
43-CAN通讯
1.CAN 协议简介
CAN是控制器局域网络(Controller Area Network)的简称,它是由研发和生产汽车电子
产品著称的德国 BOSCH 公司开发的,并最终成为国际标准(ISO11519),是国际上应用
最广泛的现场总线之一。
它具有的高可靠性和良好的错误检测能力受到重视,被广泛应用于汽车计算机控制系统和环境
温度恶劣、电磁辐射强及振动大的工业环境。
2.CAN物理层
与 I2C、SPI等具有时钟信号的同步通讯方式不同,CAN通讯并不是以时钟信号来进
行同步的,它是一种异步通讯,只具有 CAN_High和 CAN_Low两条信号线,共同构成一
组差分信号线,以差分信号的形式进行通讯。
3.两种差分结构:
(1).闭环总线网络
CAN物理层的形式主要有两种,图 中的 CAN 通讯网络是一种遵循 ISO11898标准的高速、
短距离“闭环网络”,它的总线最大长度为 40m,通信速度最高为 1Mbps,总线的两端各
要求有一个“120 欧”的电阻。
(2).开环总线网络
图 中的是遵循 ISO11519-2 标准的低速、远距离“开环网络”,它的最大传输距离为 1km,
最高通讯速率为 125kbps,两根总线是独立的、不形成闭环,要求每根总线上各串联有一个
“2.2 千欧”的电阻。
3. 通讯节点
从 CAN通讯网络图可了解到,CAN总线上可以挂载多个通讯节点,节点之间的信号经过总线传输,
网络中的节点个数理论上不受限制,只要总线的负载足够即可,可以通过中继器增强负载。
CAN通讯节点由一个 CAN控制器及 CAN收发器组成,控制器与收发器之间通过AN_Tx 及 CAN_Rx
CAN_Rx使用普通的类似 TTL逻辑信号,而 CAN_High及CAN_Low 是一对差分信号线,使用比较特别的
_Tx 线发送到收发器,然后由收发器把这个普通的逻辑电平信号转化成差分信号,通过差分线CAN_High和
CAN_Low 线输出到 CAN 总线网络。而通过收发器接收总线上的数据到控制器时,则是相反的过程,收发器
把总线上收到的 CAN_High及 CAN_Low信号转化成普通的逻辑电平信号,通过 CAN_Rx输出到控制器中。
在我们实验板中使用型号为 TJA1050的芯片作为 CAN收发器。CAN控制器与 CAN收发器的关系如同 TTL串口
与 MAX3232电平转换芯片的关系,MAX3232芯片把 TTL电平的串口信号转换成 RS-232 电平的串口信号,
CAN收发器的作用则是把 CAN 控制器的 TTL电平信号转换成差分信号(或者相反)。
4. 差分信号
差分信号又称差模信号,与传统使用单根信号线电压表示逻辑的方式有区别,使用差分信号传输时,
和逻辑 1。见图 43-3,它使用了 V+与 V-信号的差值表达出了图下方的信号。
相对于单信号线传输的方式,使用差分信号传输具有如下优点:
抗干扰能力强,当外界存在噪声干扰时,几乎会同时耦合到两条信号线上,而接
收端只关心两个信号的差值,所以外界的共模噪声可以被完全抵消。
能有效抑制它对外部的电磁干扰,同样的道理,由于两根信号的极性相反,他们
对外辐射的电磁场可以相互抵消,耦合的越紧密,泄放到外界的电磁能量越少。
时序定位精确,由于差分信号的开关变化是位于两个信号的交点,而不像普通单
端信号依靠高低两个阈值电压判断,因而受工艺,温度的影响小,能降低时序上
的误差,同时也更适合于低幅度信号的电路。
由于差分信号线具有这些优点,所以在 USB协议、485协议、以太网协议及 CAN 协
议的物理层中,都使用了差分信号传输。