CAN 协议物理层基础知识汇总

1. CAN简介

CAN是控制器局域网络(Controller Area Network)的简称,1986年被德国研发和生产汽车电子产品著称的BOSCH公司所开发,并最终成为国际标准(ISO11898),是国际上应用最广泛的现场总线之一。

  • 1986年:BOSCH(博世)开发了CAN协议作为解决方案
  • 1991年:BOSCH(博世)发布了CAN 2.0(CAN 2.0A:11位,2.0B:29位)
  • 1993年:CAN被采用为国际标准(ISO 11898)
  • 2003年:ISO 11898成为标准系列
  • 2012年:博世发布了CAN FD 1.0
  • 2015年:CAN FD协议标准化(ISO 11898-1)
  • 2016年:CAN物理层,数据速率高达5 Mbit/s,已通过ISO 11898-2标准化
  • 2021年:CAN FD的轻量级版本CAN FD Light 标准CiA 604-1发布

根据速率不同,CAN总线分为两类:高速CAN、低速CAN(又称容错CAN)。其中低速CAN总线在协议层面上具有容错性,当其中一根线(如CAN_H或CAN_L)出现故障时,系统可以通过调整信号传输策略,利用剩余的完好线路进行数据传输。高速CAN和低速CAN由于物理层电气特性的不同因此互不兼容。

2. CAN总线特征

  • 两根通信线(CAN_H、CAN_L),差分信号通信,线路少,无需共地,抗干扰能力强
  • 高速CAN(ISO11898-2):125k~1Mbps, <40m
  • 低速CAN(ISO11519-2)(ISO11898-3):10k~125kbps, <1km
  • 异步,无需时钟线,通信速率由设备各自约定
  • 半双工,可挂载多设备,多设备同时发送数据时通过仲裁判断先后顺序
  • 11位/29位报文ID,用于区分消息功能,同时决定优先级(ID越小,优先级越高,11位ID优先级大于29位ID)
  • 可配置1~8字节的有效载荷
  • 可实现广播式和请求式两种传输方式
  • 多主控制,在总线空闲时,所有的单元都可开始发送消息,最先访问总线的单元可获得发送权;多个单元同时开始发送时,发送高优先级ID消息的单元可获得发送权
  • 错误检测功能。所有节点均可检测错误,检测出错误的单元会立即通知其它所有单元
  • 发送消息出错后,节点会自动重发
  • 故障限制,具有自动关闭总线的功能,节点控制器可以判断错误是暂时的数据错误还是持续性错误,当总线上发生持续数据错误时,控制器可将节点从总线上隔离,以使总线上的其他操作不受影响
  • 每帧信息都有CRC校验及其他检错措施,数据错误率极低
  • 可连接节点总数理论上无限制,但实际受总线上时间延迟及电气负载的限制

3. CAN硬件连接

CAN节点通常由三部分组成:CAN收发器、CAN控制器和MCU。

通常MCU内部已经集成了CAN控制器,只需要外加CAN收发器,即MCU+CAN收发器就组成一个CAN设备节点。

CAN收发器是用于TTL电平与差分电压信号相互转换的,TTL电平即单片机引脚直接提供的电平,逻辑0代表低电平,逻辑1代表高电平;而差分电压信号则为固定的电压值分别表示显性电平和隐性电平。 如下图所示:

在这里插入图片描述

高速CAN使用闭环网络,CAN_H和CAN_L两端添加120Ω的终端电阻
低速CAN使用开环网络,CAN_H和CAN_L其中一端添加2.2kΩ的终端电阻

在这里插入图片描述
总线不加终端电阻分析:
https://zhuanlan.zhihu.com/p/662412979
CAN总线终端电阻的作用:
https://zhuanlan.zhihu.com/p/456959022

4. CAN物理电气特性

CAN总线采用差分信号,即两线电压差(Vcan_high - Vcan_low)传输数据位

高速CAN规定:
电压差为0V时表示逻辑1(隐性电平)
电压差为2V时表示逻辑0(显性电平)

低速CAN规定:
电压差为-1.5V时表示逻辑1(隐性电平)
电压差为3V时表示逻辑0(显性电平)

(注意:以上所述的电压差为典型值,实际应用中受总线上电气负载的影响,有一定的容错范围)

在这里插入图片描述

5. 高速CAN收发器

常用的高速CAN收发器芯片有:TJA1050T、TJA1042、SIT1050T

以TJA1050T为例:
TJA1050是一款高速CAN收发器芯片,可用于波特率从40k到1M,至少可以连接110个节点。
在这里插入图片描述
PIN脚定义:
在这里插入图片描述
Vref是参考电压输出,可以悬空
S:高速 /静默模式选择(低电平为高速),通常下拉到地即可
VCC要求5V供电

系统框图:
在这里插入图片描述
CAN_H和CAN_L是通过收发器内部MOS管的导通或关闭,来实现总线上的不同电压。

当MOS1和MOS2同时关闭时,Vcc-分压电阻-地的通路关闭,CAN_H与CAN_L电压相同,则显示隐性电压。

当MOS1和MOS2同时开启时,Vcc-分压电阻-地的通路闭合,经过电阻分压CAN_H电压升高,CAN_L电压降低,形成显性电压。

常见应用:
在这里插入图片描述

低速CAN收发器

低速容错CAN最早被定义在ISO 11519协议中,后续因为符合ISO 11898-3协议标准的样件也完全符合ISO11519-2协议的要求,同时因为ISO 11898协议应用的范围更全更广,所以在2006年ISO11519-2协议彻底的被11898-3协议所替代。ISO11898-3定义了低速容错CAN的物理层、低速容错CAN的工作机制以及容错机制的实现。

ISO 11519-2:1994( 低速控制器局域网(CAN)),指定CAN的数据链路层和物理层,这是用于公路车辆应用的高达125 Kbit/s的通信网络。 低速CAN是一种串行通信协议,支持分布式实时控制和多路复用。 根据ISO 7498在ISO-OSI模型中定义的层次结构层中定义网络的一般体系结构。该标准允许在CAN总线连线失败时CAN总线通信得以继续进行。

ISO 11898-3:2006( 道路车辆—控制器局域网(CAN)—第3部分:低速,容错,介质相关的接口),规定了在配备有控制器局域网(CAN)的道路车辆电子控制单元之间以40 Kbit/s至125Kbit/s的传输速率建立数字信息交换的特性。

下面介绍一款适用于低速容错CAN的收发器芯片-TJA1054。
在这里插入图片描述
TJA1054芯片引脚定义:
在这里插入图片描述
TJA1054芯片结构:
在这里插入图片描述
常见应用:
在这里插入图片描述
低速CAN网络上的每个设备每条CAN数据线都需要一个终端电阻:RTH用于CAN_H,RTL用于CAN_L。
Philips建议低速CAN网络,一个整体的RTH和RTL终端电阻为100Ω到500Ω(每个)。
在这里插入图片描述

低速容错CAN的容错机制则是通过故障检测器监测总线电平,在监测到其中一条总线故障后,监测器便会切换到相应的模式,模式图如下表所示。满足了ISO11898-3中定义的正常工作模式下的三种故障检测机制。
在这里插入图片描述

6. 单线CAN

除了上文介绍的高速CAN和低速CAN外,还有标准定义另外一种CAN物理层结构,即Single Wire CAN。主要在美国通用汽车上应用。

单线CAN又称SWC(Singer Wire CAN),在通用车系别克、雪佛兰车载总线中又称为GMLAN、GM_CAN。

单线CAN可以减少一根传输线,但是要求节点间有良好的共地特性(相当于第二根信号线)。单线CAN的信号抗干扰能力相对较弱,在设计中需要提高信号幅度以增加信噪比,如此又会让它自身的辐射能力增加,因此必须降低其信号传输速率以达到电磁兼容的要求。综上,单线CAN仅适合应用在低速的车身电子单元、舒适及娱乐控制领域。

单线CAN:

显性电平为4V(接收时高于1.8-2.2V就会被判为显性),隐性电平为0V;

正常通讯模式波特率为33.333Kbps,高速通讯模式的波特率为83.333Kbps;

单线CAN每个设备都有一个终端电阻:
在这里插入图片描述

SAE J2411是美国汽车工程师学会(SAE International)发布的标准,主要描述了单线CAN总线网络在车辆上的应用。

7. CAN总线常见拓扑结构

1.线型拓扑

线型拓扑,也称为总线型拓扑,是一种所有节点都连接到同一总线上的结构。这种拓扑的优点在于布线简单,阻抗匹配固定,且接线操作方便。然而,随着节点数量的增加,总线线缆变长可能会影响传输效率,且支线长度不宜过长。
在这里插入图片描述
2. 星型拓扑

星型拓扑中,每个节点通过一个中央设备连接。这种拓扑便于节点扩展,但如果中央设备出现故障,可能会导致整个网络瘫痪。此外,当分支长度不同时,阻抗匹配变得复杂,就需要使用集线器对通讯进行控制,保证数据的稳定传输。

在这里插入图片描述
3. 树状拓扑

树状拓扑具有多个分支,且分支长度不同。这种拓扑便于布线施工,可以最大限度地缩短布线距离。但是,由于网络拓扑复杂,施工人员难以进行阻抗匹配,通常需要增加集线器或中继器来分割网络拓扑。
在这里插入图片描述
4. 环形拓扑

环形拓扑通过将CAN总线的两端连接,形成环状结构,即使线缆在任意位置断开,也能保持通讯。但这种拓扑在断线后信号反射严重,不适合用于高波特率和远距离传输。
在这里插入图片描述
总结:

在这里插入图片描述

参考
https://blog.csdn.net/weixin_44793491/article/details/107298426

https://blog.csdn.net/m0_38106923/article/details/126088489

https://blog.csdn.net/m0_73633088/article/details/141105168

https://blog.csdn.net/Deep_l_zh/article/details/83182081

https://baijiahao.baidu.com/s?id=1758665016765467919&wfr=spider&for=pc 低速容错CAN的容错机制介绍

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吾爱技术圈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值