2.4 控制器局域网络 CAN Controller Area Network


1 CAN是什么?

CAN是控制器局域网络(Controller Area Network, CAN)的简称,是德国BOSCH公司开发的,并最终成为国际标准(ISO 11898),是国际上应用最广泛的现场总线之一。
①背景:实现汽车内传统的点对点互连方式向总线式系统连接的转变,大大降低汽车内电子系统布线的复杂度。
②优点:低成本、通信速率高、可靠性高等诸多特点。
③距离&速度:通信距离最远可达10KM,此时速率低于5Kbps;速率最高可达到1Mbps,此时通信距离需小于40M。
④组成:CAN总线由CAN控制器、CAN收发器、数据传输线、数据传输终端等组成。
⑤应用:在工控领域主要使用125Kbps的低速CAN(也叫容错CAN;在汽车领域则使用500Kbps的高速CAN。
⑥标准&协议:
1991年,Bosch发布CAN 2.0标准,分 CAN 2.0A(11位标识符)和CAN2.0B(29位标识符);
1993年,ISO发布CAN总线标准(ISO 11898),该标准主要有三部分:
ISO 11898-1:数据链路层协议
ISO 11898-2:高速CAN总线物理层协议
ISO 11898-3:低速CAN总线物理层协议

目前汽车上的网络连接方式主要采用2条CAN;一条用于驱动系统的高速CAN,速度达到500Kbps;另一条用于车身系统的低速CAN,速率是125Kbps。
高速CAN总线主要连接发动机控制单元、ABS控制单元、安全气囊控制单元、组合仪表等这些与汽车行驶直接相关的系统。这些系统由于信息传递量较大而且对于信息传递的速度有很高的要求,所以则需要高速CAN总线来满足其信息传递的需要。
车身系统的CAN总线主要连接像中控锁、电动门窗、后视镜、车内照明灯等对数据传输速率要求不高的车身舒适系统上。
驱动系统CAN和车身系统CAN这两条独立的总线之间设计有“网关”,以实现在各个CAN之间的资源共享,并将各个数据总线的信息反馈到仪表板上。驾车者只要看看仪表板,就可以知道各个电控装置是否正常工作了。
在这里插入图片描述
举个例子,比如从属于驱动总线系统的室外温度传感器将检测到的温度信号发送给仪表盘控制单元,然后仪表板控制单元会将此信号发送到驱动总线系统上,该信号会被发动机控制单元采集到,同时会经过网关的“翻译”继续传递到车身总线系统上。而从属于车身总线系统上的自动空调控制单元会收到此信号,并据此作出加大制冷量或者减小吹风量等动作。
在这里插入图片描述
CAN总线主要由CAN控制器、CAN收发器、数据传输线、数据传输终端等四部分组成。
CAN控制器的作用是对收到和发送的信号进行处理,实现通信模型中物理层和数据链路层的功能,并对外提供微处理器的物理接口。
CAN收发器实质是实现电平转换,是CAN控制器和物理总线的接口。
数据传输线是由高低双绞线组成的双向数据线,两根数据线上的高低电平互为镜像。所产生的电磁场效应也会由于极性相反而互相抵消。
数据传输终端这里指120Ω的电阻。
CAN总线信号上变化的电压会产生反射和干扰。消除这种反射的方法,就是在电缆的末端跨接一个与电缆的特性阻抗同样大小的终端电阻,使电缆的阻抗连续。
在这里插入图片描述
在这里插入图片描述

2 电平标准

信号电平
高速CAN和低速CAN总线在物理层信号电平上定义有所不同。图6和图7表示高速和低速CAN总线上信号电平与总线逻辑的对应关系。

高速CAN,定义当CANH-CANL=2.5-2.5=0V时为逻辑“1”,即隐性状态(Recessive);
当CANH-CANL=3.5-1.5=2V时为逻辑“0”,即显性状态(Dominant)。

低速CAN,定义当CANL-CANH=5-0=5V时为逻辑“1”,隐性状态(Recessive);
当CANH-CANL=3.6-1.4=2.2V为逻辑“0”,显性状态(Dominant)。
在这里插入图片描述
在这里插入图片描述

3 收发器作用

高速CAN的一般应用图2.1所示,典型的ECU CAN节点是由一个独立的收发器和一个集成了CAN控制器的主控制器组成,协议控制器通过串行数据输出线TXD和串行数据输入线RXD连接到收发器,收发器则通过两个有差动接收和发送能力的总线终端CANH和CANL连接到总线,提供了CAN协议控制器和物理双绞线之间的接口。
在这里插入图片描述
CAN收发器实现了逻辑电平(二进制码流,数字数据)和信号电平(差分电压,模拟数据)之间的转换。协议控制器输出一个串行的发送数据流到收发器的TXD输入。接收器将差动的总线信号转换成逻辑电平信号,并在RXD输出。这样,串行接收数据流就被传送到总线协议控制器译码。接收比较器是一直激活的,即它在总线节点发送报文时监控总线。
在这里插入图片描述

4 终端电阻

有贴电阻的,测了就是120ohm,所以正常标准就是不带电时测量CAN总线的阻值,应为60欧姆左右,也就是最远的两端需要各接入一个120 ohm电阻。没贴电阻的,测了是28kΩ?
CAN总线的终端电阻为什么常用120Ω?
CAN总线终端电阻匹配,什么情况下加120欧姆电阻?考虑高频特性还是线长?
CAN总线为什么要有两个120Ω的终端电阻?

5 CAN协议特点

(1) 多主控制
总线访问采用基于优先权的多主方式。CAN总线的最大特点是任一节点所发送的数据信息不包括发送节点或接收节点的物理地址。信息的内容通过一个标识符(ID)做标记,这个ID在整个网络中是唯一的。网络上的其他节点收到信息后,每一节点都对这个标识符进行检测,以判断此信息是否与自己有关。若是相关消息,将对它进行处理,否则被忽略。这一方式称为多主方式。
多个单元同时开始发送时,发送高优先级 ID 消息的单元可获得发送权。
在总线空闲时,所有的单元都可开始发送消息,最先访问总线的单元可获得发送权。(CSMA/CA方式:Carrier Sense Multiple Access / Collision Avoidance)。
(2) 仲裁机制。
在 CAN 协议中,所有的消息都以固定的格式发送。总线空闲时,所有与总线相连的单元都可以开始发送新消息。两个以上的单元同时开始发送消息时,根据标识符(Identifier 以下称为 ID)决定优先级。ID 并不是表示发送的目的地址,而是表示访问总线的消息的优先级。两个以上的单元同时开始发送消息时,对各消息ID 的每个位进行逐个仲裁比较。仲裁获胜(被判定为优先级最高)的单元可继续发送消息,仲裁失利的单元则立刻停止发送而进行接收工作。(半双工的通信方式)
(3) 系统的柔软性
与总线相连的单元没有类似于“地址”的信息。因此在总线上增加单元时,连接在总线上的其它单元的软硬件及应用层都不需要改变。
(4) 通信速度
根据整个网络的规模,可设定适合的通信速度。
在同一网络中,所有单元必须设定成统一的通信速度。即使有一个单元的通信速度与其它的不一样,此单元也会输出错误信号,妨碍整个网络的通信。不同网络间则可以有不同的通信速度。
(5) 远程数据请求
可通过发送“遥控帧” 请求其他单元发送数据。
(6) 错误检测功能·错误通知功能·错误恢复功能
所有的单元都可以检测错误(错误检测功能)。
检测出错误的单元会立即同时通知其他所有单元(错误通知功能)。
正在发送消息的单元一旦检测出错误,会强制结束当前的发送。强制结束发送的单元会不断反复地重新发送此消息直到成功发送为止(错误恢复功能)。
(7) 故障封闭
CAN 可以判断出错误的类型是总线上暂时的数据错误(如外部噪声等)还是持续的数据错误(如单元内部故障、驱动器故障、断线等)。由此功能,当总线上发生持续数据错误时,可将引起此故障的单元从总线上隔离出去。
(8) 连接
CAN 总线是可同时连接多个单元的总线。可连接的单元总数理论上是没有限制的。但实际上可连接的单元数受总线上的时间延迟及电气负载的限制。降低通信速度,可连接的单元数增加;提高通信速度,则可连接的单元数减少。

CAN 协议涵盖了ISO 规定的OSI 基本参照模型中的传输层、数据链路层及物理层。
数据链路层DLL=LLC(Logical Link Control)+MAC(Medium Access Control);
物理层PL=PLS(Physical Signaling Sublayer)+PMA(Physical Medium Attachment)+MDI(Medium Dependent Interface)。
在这里插入图片描述
在这里插入图片描述
一个完整的信息传输,一个帧仅包含一个报文,通过帧起始和帧结束标识符界定。
通信都是通过以下 5 种类型的帧进行的。
另外,数据帧和遥控帧有标准格式和扩展格式两种格式。标准格式有11个位的标识符(Identifier: 以下称ID),扩展格式有29 个位的ID。
在这里插入图片描述

6 CAN&CANFD 差异

CAN总线有什么缺点呢?通讯速率不够快,或者说总线带宽有限,理论最高值也只有1000Kbps,实际使用中500Kbps更为常见。
以前,由于汽车的电子化程度较低,车子上面需要用到CAN总线通讯的设备较少,CAN总线的带宽是够用的。不过,随着现代汽车电子化程度的越来越高,上面需要总线通讯的设备也越来越多,CAN总线真的是有点力不能及了。因此,脱胎于CAN总线的CANFD总线登上了历史舞台,你可以把它看做是CAN总线的升级版本,其升级方向主要有两点。
方向一,CANFD总线相较于CAN总线,数据传输速度更快,通讯带宽更大。CAN总线的通讯速率在5Kbps到1000Kbps之间,没办法再高了。相对而言,CANFD的带宽可达5000Kbps甚至更高。五倍于CAN总线的通讯带宽,这其中提升的工作效率,可能还不止五倍,而是指数级的提升。
方向二,CANFD的数据结构发生了变化。一条CAN总线信息,其帧数据位置最高只能容纳8个字节的数据,如果是字节数更多的其他总线数据想要转换为CAN总线数据,我们就需要更多帧的CAN信息来承担,这极大的增加了出错的概率。相比较而言,CANFD的帧数据位置可以容纳64字节的帧数据,其包容性不言而喻,工作效率提升明显。
当然,至少在目前,CAN总线还是主流,CANFD还在发展,专门使用CANFD通讯的设备还比较少。如果我们想要让现有的支持CAN总线通讯的设备连入到CANFD总线当中使用,我们就需要CAN转CANFD转换器。

CAN FD在控制段中新添加了三个位FDF位、BRS位、ESI位。
FDF位(Flexible Data Rate Format):原CAN数据帧中的保留位r。FDF位常为隐性(1),表示CAN FD 报文。
(对于Classical CAN 标准帧格式,其中FDF 位为显性位)
BRS位( Bit Rate Switch):位速率转换开关,当BRS为显性位(0)时数据段的位速率与仲裁段的位速率一致;当BRS为隐性位(1)时数据段的位速率高于仲裁段的位速率;
ESI位(Error State Indicator):错误状态指示,主动错误时发送显性位(0),被动错误时发送隐性位(1)。
CAN FD 网络上DLC 可以是8/12/16/20/24/32/48/64.根据信号或者信号组的长度选择合适的CAN FD 数据长度。
在这里插入图片描述
CAN FD 与 CAN协议区别–简单易懂协议详解

CAN与CANFD的异同

聊一下canfd与CAN总线的异同

CAN FD 与 CAN协议区别–简单易懂协议详解

7 Layout注意事项

为确保EMC 具有最佳的性能,在开发PCB 印制电路板时应遵从下列原则:

a) 信号线CAN_H 和CAN_L 在电路板上具有相同长度;
b) 信号线CAN_H 和CAN_L 在电路板上的长度要尽量短,建议不超过10cm;
c) 信号线须以最小距离平行布置;
d) 信号线不能有90°角,而应该使用两个135°角;
e) 对于信号线,不应使用过孔;
f) 信号线不可相互交叉;
g) 在总线收发器芯片和连接器之间不应该放置其他集成芯片;
h) 共模电感须靠近总线收发器放置;
i) 终端电阻须靠近总线收发器放置;
j) 电容应该靠近接插件放置;
k) 箝位二极管须靠近接插件放置;
l) CAN 控制器和收发器之间的RXD 线、TXD 线要短;
m) RXD 线、TXD 线不可相互交叉。

设计PCB 印制电路板应避免:
a) TXD 显性箝位(TXD 与Vcc 之间短路);
b) RXD 隐性箝位(RXD 与GND 之间短路);
c) RXD 与TXD 短路。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

8 相关标准

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
ISO 11898-1:2015 Road vehicles — Controller area network (CAN) — Part 1: Data link layer and physical signalling

ISO 16845-1:2016 【现行】

9 参考链接

TJA1043 datasheet
TJA1041CAN高速收发器应用指南
ISO11898-1_2_3_4_5标准
汽车CAN总线系统原理、设计与应用
Introduction to the Controller Area Network (CAN)-TI

整车CAN网络介绍

汽车CAN总线
CAN bus
CAN总线
汽车CAN总线技术详解

CAN

STM8单片机CAN滤波器的设置

汽车CAN总线系统原理、设计与应用 第二章CAN总线的基本原理 ---- 个人自学笔记

STM32之CAN通讯接收过滤器过滤分析

浅谈车载以太网2-CAN总线和车载以太网

ISO 11898-1:2015

CAN总线字节序

CAN总线字节序

CAN通讯协议

CRC校验原理及步骤

CAN同步机制,你真的了解吗?

一篇易懂的CAN通讯协议指南1

科普系列:CAN总线错误帧及排查方法简介

CAN总线多节点通信异常分析及解决

CAN总线终端电阻为什么是120Ω,为什么是0.25W

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值