CAN VS RS485

作者:郑沛坤

 和点对点通信不同,现场总线中,所有信息在一条公共通道(称为总线)中传输,所有设备并联在总线上,根据过滤规则接收自己所需的信息。采用现场总线的方式,连线少,结构简单,目前主流的总线方式主要为RS485和CAN等几种。

RS485由美国电子工业协会于1983年批准,RS485仅仅只规定了一个电气标准,在OSI七层模型中处于物理层。

RS485采用的是差分信号传输方式:

  • 逻辑1,线路B(U+)信号电压高于线路A(U-);
  • 逻辑0,线路B(U+)信号电压低于线路A(U-);
图1

CAN由德国博世公司于1987年在国际汽车工程师学会会议上正式发表,和RS485不同,CAN标准同时涵盖了OSI七层模型中的物理层和数据链路层,因而可以实现较RS485更为复杂的功能。

CAN同样采用差分信号传输方式来提高传输可靠性和传输距离:

  • 逻辑1:线路CAN_H信号(2.5V)电压等于线路CAN_L(2.5V);
  • 逻辑0:线路CAN_H信号(5V)电压高于线路CAN_L(0V);
图2

由于和RS485总线一样,CAN总线也采用差分信号的传输方式,因而RS485的传输信号抗干扰能力强,传输距离远的优点,CAN总线也同样具有。但是由于CAN总线中,规定了数据链路层协议,引入了CAN ID、位时序、帧类型和格式和侦测错误机制,大大拓展了CAN总线的功能。

两种总线对比如下表所示:

指标 CAN总线 RS485总线
传输速度和距离 最远10km,最快可达1Mbps 最远4km,最快可达10Mbps
总线利用率 根据ID自动仲裁优先级,总线利用率高 总线中只能有一发送器在发送,采用主机轮询从机的凡是,总线利用率低
错误侦测机制 CAN控制器自带错误侦测,自动检测报文发送成功与否 只有物理层协议,错误侦测需要由应用层完成
成本 需要专门的控制器和收发器,成本较高 基于传统UART控制器和485收发器,成本较低