目录
一.CAN2.0规范
CAN是控制器局域网络(Controller Area Network)的简称,它是一种串行通信协议,由研发和生产汽车电子产品著称的德国BOSCH公司开发。CAN协议作为一种开放系统互联协议,其结构遵守ISO/OSI参考模型。
CAN2.0规范对物理层中的PMA和MDI没有规定。两者结构对比如下图1.1。
二.ISO 制定的两个 CAN 协议
ISO制定了ISO11898和ISO11519-2两个协议标准,它们既有相同部分,也有差异部分。
2.1 应用领域
(1)ISO11898 标准: 用于高速(最高 1Mbps) CAN 通讯。开始的时候,数据链路层和物理层都在标准ISO11898 中规定,后来被拆分为 ISO11898-1(仅涉及数据链路层)和 ISO11898-2(仅涉及物理层)。
(2)ISO11519-2 标准: 用于低速(最高 125kbps) CAN 通讯。
2.2 物理层
2.2.1 物理层对比
这两个标准在数据链路层相同,且对物理层的 PMA 层和 MDA 层都有定义, 但物理层内容不相同。
2.2.1 总线拓扑图
CAN的典型拓扑结构如下图所示。
CAN 总线由 CAN_High 和 CAN_Low 两根线组成, CAN 控制器通过一个收发器连接到总线上,总线的电平由 CAN_High 和 CAN_Low 的电位差来确定。
CAN 总线在逻辑上有“ 线与” 的关系,一个发送单元能够通过改变总线电平来送一个信息给接收单元。
总线有 2 个电平: ①显性电平,定义为逻辑 0;②隐性电平,定义为逻辑 1。 这里的显性和隐性概念应该类似于生物学上的基因遗传定律,即显性具有“优先”的意味。 在任一给定的时间内,总线总是处于这 2 个电平之一。
ISO11898 和 ISO11519-2 规定的物理层终端电阻、显性电平和隐性电平的差分电压是不同的。
①终端电阻: ISO11898 一般为 120Ω,而 ISO11519-2 一般为 2.2kΩ。具体电阻需要根据具体的线路特点确定。
②电平: 正常情况下, ISO11898 隐性电平的电压差为 0V,显性电平的电压差为 2.0V,两电平的差别为 2.0V-0V=2.0V; ISO11519-2 隐性电平的电压差为-1.5V,显性电平的电压差为 3.0V,两电平的差别为 3.0V-( -1.5V) =4.5V。故此, ISO11519-2 抗干扰能力更强,更适合长距离传输。
2.2.2 满足协议标准的典型IC
下表汇总了 满足ISO11898 和 ISO11519-2 标准的主要收发器 IC。
标准 | ISO11898 | ISO11519-2 |
---|---|---|
主要IC | ①HA13721RPJE(RENESAS) ②TJA1050T(Philips) ③TLE6250G(Infineon) ④CF150C(BOSCH) | ①TJA1054T(Philips) ②TLE6254-3G(Infineon) |
2.2.3 ISO11898 标准解读
高速CAN标准ISO11898主要应用在汽车领域。
2.2.3.1 干扰过滤
由于CAN-High线和CAN-Low线是扭绞在一起的(双绞线),所以干扰脉冲X就总是有规律地作用在两条线上。由于差动信号放大器总是用CAN-High线上的电压(3.5V-X)减去CAN-Low线上的电压(1.5V-X),即(3.5V - X) - (1.5V - X) = 2V。因此,在经过处理后,差动信号中就不再有共模干扰脉冲。如下图所示。
2.2.3.2 位填充
位填充是一种周期性重同步收/发操作的功能,为了防止接收节点间时序由于累积而导致的错误,如果5个比特位持续了同样的电平,则添加1个位的反向数据位。
(1)发送单元:在发送数据帧和远程帧的时候,SOF—CRC段的数据,相同电平如果持续5bit,在下一个bit(第6bit)则要插入1bit与前5bit反向的电平。
(2)接收单元:在接收数据帧和远程帧的时候,SOF—CRC段的数据,相同的电平如果持续5bit,则需要删除下一bit(第6bit)在接收。如果相同电平持续6bit,则视为错误,发送错误帧。
2.2.3.3 满足标准的典型IC
满足ISO11898标准的典型物理器件是TJA1050。
2.3 数据链路层
它是两个标准相同部分。
2.3.1 帧格式与帧类型
2.3.2 各类型帧的作用
2.3.3 帧格式与帧类型(数据帧与远程帧)的结构对比
2.3.4 错误帧的组成
2.3.5 过载帧的组成
2.3.6 满足数据链路层协议的典型IC
满足数据链路层协议的典型IC是MCP2515。
MCP2515的特点如下: