CAN总线介绍及硬件设计

1. CAN是什么

CAN 是 Controller Area Network 的缩写(以下称为 CAN),是 ISO*1 国际标准化的串行通信协议。
在当前的汽车产业中,出于对安全性、舒适性、方便性、低公害、低成本的要求,各种各样的电子控制系统
被开发了出来。由于这些系统之间通信所用的数据类型及对可靠性的要求不尽相同,由多条总线构成的情况很
多,线束的数量也随之增加。为适应“减少线束的数量”、“通过多个 LAN,进行大量数据的高速通信”的需
要, 1986 年德国电气商博世公司开发出面向汽车的 CAN 通信协议。此后, CAN 通过 ISO11898 及 ISO11519 进
行了标准化,现在在欧洲已是汽车网络的标准协议。
现在, CAN 的高性能和可靠性已被认同,并被广泛地应用于工业自动化、船舶、医疗设备、工业设备等方面。

2. CAN 的特点

CAN 协议具有以下特点。

(1) 多主控制

在总线空闲时,所有的单元都可开始发送消息(多主控制)。
最先访问总线的单元可获得发送权(CSMA/CA 方式*1)。
多个单元同时开始发送时,发送高优先级 ID 消息的单元可获得发送权。

(2) 消息的发送

在 CAN 协议中,所有的消息都以固定的格式发送。总线空闲时,所有与总线相连的单元都可以开始发送新
消息。两个以上的单元同时开始发送消息时,根据标识符(Identifier 以下称为 ID)决定优先级。 ID 并不
是表示发送的目的地址,而是表示访问总线的消息的优先级。两个以上的单元同时开始发送消息时,对各消
息 ID 的每个位进行逐个仲裁比较。仲裁获胜(被判定为优先级最高)的单元可继续发送消息,仲裁失利的
单元则立刻停止发送而进行接收工作。

(3) 系统的柔软性

与总线相连的单元没有类似于“地址”的信息。因此在总线上增加单元时,连接在总线上的其它单元的软硬
件及应用层都不需要改变。

(4) 通信速度

根据整个网络的规模,可设定适合的通信速度。
在同一网络中,所有单元必须设定成统一的通信速度。即使有一个单元的通信速度与其它的不一样,此单元
也会输出错误信号,妨碍整个网络的通信。不同网络间则可以有不同的通信速度。

(5) 远程数据请求

可通过发送“遥控帧” 请求其他单元发送数据。

(6) 错误检测功能·错误通知功能·错误恢复功能

所有的单元都可以检测错误(错误检测功能)。
检测出错误的单元会立即同时通知其他所有单元(错误通知功能)。
正在发送消息的单元一旦检测出错误,会强制结束当前的发送。强制结束发送的单元会不断反复地重新发送
此消息直到成功发送为止(错误恢复功能)。

(7) 故障封闭

CAN 可以判断出错误的类型是总线上暂时的数据错误(如外部噪声等)还是持续的数据错误(如单元内部
故障、驱动器故障、断线等)。由此功能,当总线上发生持续数据错误时,可将引起此故障的单元从总线上
隔离出去。

(8) 连接

CAN 总线是可同时连接多个单元的总线。可连接的单元总数理论上是没有限制的。但实际上可连接的单元
数受总线上的时间延迟及电气负载的限制。降低通信速度,可连接的单元数增加;提高通信速度,则可连接
的单元数减少。

3. CAN 协议的基本概念

CAN 协议如表 3 所示涵盖了 ISO 规定的 OSI1 基本参照模型中的传输层、数据链路层及物理层。
CAN总线介绍及硬件设计_第1张图片
CAN 协议中关于 ISO/OSI 基本参照模型中的传输层、数据链路层及物理层,具体有哪些定义如图 5 所示。
CAN总线介绍及硬件设计_第2张图片
数据链路层分为 MAC 子层和 LLC 子层, MAC 子层是 CAN 协议的核心部分。数据链路层的功能是将物理层
收到的信号组织成有意义的消息,并提供传送错误控制等传输控制的流程。具体地说,就是消息的帧化、仲裁、
应答、错误的检测或报告。数据链路层的功能通常在 CAN 控制器的硬件中执行。
在物理层定义了信号实际的发送方式、位时序、位的编码方式及同步的步骤。但具体地说,信号电平、通信
速度、采样点、驱动器和总线的电气特性、连接器的形态等均未定义
1。这些必须由用户根据系统需求自行确定。

4.CAN物理层介绍

4.1 两种ISO 标准化的 CAN 协议

CAN 协议经 ISO 标准化后有 ISO11898 标准和 ISO11519-2 标准两种。
ISO11898 和 ISO11519-2 标准对于数据链路层的定义相同,但物理层不同。

(1) 关于 ISO11898

ISO11898 是通信速度为 125kbps-1Mbps 的 CAN 高速通信标准。
目前, ISO11898 追加新规约后,成为 ISO11898-1 新标准。

(2) 关于 ISO11519

ISO11519 是通信速度为 125kbps 以下的 CAN 低速通信标准。
ISO11519-2 是 ISO11519-1 追加新规约后的版本。

4.2 两种标准物理层概述

CAN总线介绍及硬件设计_第3张图片

4.3 两种总线拓扑

CAN 收发器根据两根总线( CAN_High 和 CAN_Low)的电位差来判断总线电平。
总线电平分为显性电平和隐性电平两种。总线必须处于两种电平之一。总线上执行逻辑上的线“与”时,
显性电平为“0”,隐性电平为“1”。物理层的特征如图 9 所示
左边为闭环总线;右边为开环总线
CAN总线介绍及硬件设计_第4张图片
CAN总线上可以挂载多个通讯节点,节点之间的信号经过总线传输,实现节点间通讯。
由于CAN通讯协议不对节点进行地址编码,而是对数据内容进行编码,所以网络中的节点个数理论上不受限制,只要总线的负载足够即可,可以通过中继器增强负载。
CAN通讯节点由一个CAN控制器及CAN收发器组成,控制器与收发器之间通过CAN_Tx及CAN_Rx信号线相连,收发器与CAN总线之间使用CAN_High及CAN_Low信号线相连。
其中CAN_Tx及CAN_Rx使用普通的类似TTL逻辑信号,而CAN_High及CAN_Low是一对差分信号线,使用比较特别的差分信号
当CAN节点需要发送数据时,控制器把要发送的二进制编码通过CAN_Tx线发送到收发器,然后由收发器把这个普通的逻辑电平信号转化成差分信号,通过差分线CAN_High和CAN_Low线输出到CAN总线网络。而通过收发器接收总线上的数据到控制器时,则是相反的过程,收发器把总线上收到的CAN_High及CAN_Low信号转化成普通的逻辑电平信号,通过CAN_Rx输出到控制器中。
CAN控制器通常MCU内部集成,而CAN收发器通常需要外部单独的芯片。

4.4 通信速率和最大总线长度的关系

通信速度
通信速度根据系统设定。

总线长度
总线的长度根据系统设定。
通信速度和最大总线长度的关系如图 8 所示。
CAN总线介绍及硬件设计_第5张图片

4.5 驱动 IC 的选择

ISO11898 与 ISO11519-2 的物理层的规格不同,每种规格需要有专门的驱动 IC 与之相对应。 ISO11898 及
ISO11519-2 所对应的主要的驱动 IC 如表 5 所示
CAN总线介绍及硬件设计_第6张图片

5. CAN 的各种标准规格

不仅是 ISO, SAE*1 等其它的组织、团体、企业也对 CAN 协议进行了标准化。
基于 CAN 的各种标准规格如表 6 所示,如图 10 所示,面向汽车的通信协议以通信速度为准进行了分类。
CAN总线介绍及硬件设计_第7张图片
CAN总线介绍及硬件设计_第8张图片

6. CAN 协议介绍

6.1 帧的种类

通信是通过以下 5 种类型的帧进行的。

• 数据帧
• 遥控帧
• 错误帧
• 过载帧
• 帧间隔

另外,数据帧和遥控帧有标准格式和扩展格式两种格式。
标准格式有 11 个位的标识符(Identifier: 以下称 ID),扩展格式有 29 个位的 ID。
各种帧的用途如表 7 所示,
CAN总线介绍及硬件设计_第9张图片

6.2 数据帧

数据帧由 7 个段构成。
数据帧的构成如图 16 所示。

(1) 帧起始
表示数据帧开始的段。
(2) 仲裁段
表示该帧优先级的段。
(3) 控制段
表示数据的字节数及保留位的段。
(4) 数据段
数据的内容,可发送 0~8 个字节的数据。
(5) CRC 段
检查帧的传输错误的段。
(6) ACK 段
表示确认正常接收的段。
(7) 帧结束
表示数据帧结束的段。
下面对帧的构成进行说明。
CAN总线介绍及硬件设计_第10张图片

(1) 帧起始(标准、扩展格式相同)

表示帧开始的段。 1 个位的显性位。
CAN总线介绍及硬件设计_第11张图片
显性电平(D)和隐性电平®
总线上的电平有显性电平和隐性电平两种。
总线上执行逻辑上的线“与”时,显性电平的逻辑值为“0”,隐性电平为“1”。
“显性”具有“优先”的意味,只要有一个单元输出显性电平,总线上即为显性电平。并且,“隐
性”具有“包容”的意味,只有所有的单元都输出隐性电平,总线上才为隐性电平。(显性电平比隐性电平更强。)

(2) 仲裁段

表示数据的优先级的段。
标准格式和扩展格式在此的构成有所不同。
CAN总线介绍及硬件设计_第12张图片
ID
标准格式的 ID 有 11 个位。从 ID28 到 ID18 被依次发送。禁止高 7 位都为隐性。
(禁止设定: ID=1111111XXXX)
扩展格式的 ID 有 29 个位。基本 ID 从 ID28 到 ID18,扩展 ID 由 ID17 到 ID0 表示。基本 ID 和
标准格式的 ID 相同。禁止高 7 位都为隐性。(禁止设定:基本 ID=1111111XXXX)

(3) 控制段

控制段由 6 个位构成,表示数据段的字节数。标准格式和扩展格式的构成有所不同。
CAN总线介绍及硬件设计_第13张图片
*1 保留位( r0、 r1)
保留位必须全部以显性电平发送。但接收方可以接收显性、隐性及其任意组合的电平。
*2 数据长度码( DLC)
数据长度码与数据的字节数的对应关系如表 8 所示。
数据的字节数必须为 0~8 字节。但接收方对 DLC = 9~15 的情况并不视为错误。

CAN总线介绍及硬件设计_第14张图片

(4) 数据段(标准、扩展格式相同)

数据段可包含 0~8 个字节的数据。从 MSB(最高位)开始输出。
CAN总线介绍及硬件设计_第15张图片

(5) CRC 段(标准/扩展格式相同)

CRC 段是检查帧传输错误的帧。由 15 个位的 CRC 顺序*1 和 1 个位的 CRC 界定符(用于分隔的位)构成。
CAN总线介绍及硬件设计_第16张图片
*1 CRC 顺序
CRC 顺序是根据多项式生成的 CRC 值, CRC 的计算范围包括帧起始、仲裁段、控制段、数据
段。
接收方以同样的算法计算 CRC 值并进行比较,不一致时会通报错误。

(6) ACK 段

ACK 段用来确认是否正常接收。由 ACK 槽(ACK Slot)和 ACK 界定符 2 个位构成。
CAN总线介绍及硬件设计_第17张图片
*1 发送单元的 ACK 段
发送单元在 ACK 段发送 2 个位的隐性位。
*2 接收单元的 ACK 段
接收到正确消息的单元在 ACK 槽(ACK Slot)发送显性位, 通知发送单元正常接收结束。这称作“发
送 ACK”或者“返回 ACK”。

发送 ACK
发送 ACK 的是在既不处于总线关闭态也不处于休眠态的所有接收单元中,接收到正常消息的单元
(发送单元不发送 ACK)。所谓正常消息是指不含填充错误、格式错误、 CRC 错误的消息。

(7) 帧结束

帧结束是表示该该帧的结束的段。由 7 个位的隐性位构成。
CAN总线介绍及硬件设计_第18张图片

7.优先级的决定

在总线空闲态,最先开始发送消息的单元获得发送权。
多个单元同时开始发送时,各发送单元从仲裁段的第一位开始进行仲裁。连续输出显性电平最多的单元可继
续发送。
仲裁的过程如图 28 所示
CAN总线介绍及硬件设计_第19张图片

8. CAN节点如何知道接收哪些数据

can总线没有所谓地址的概念,总线上的每个报文都可以被各个节点接收,这是一种典型的广播式网络。
在实际应用中。某个节点往往只希望接收到特定类型的数据, 这就要借助过滤器来实现。
顾名思义,过滤器的作用就是把节点不希望接收到的数据过滤掉,只将希望接收到的数据给予通行。
stm32的CAN控制器,提供14个过滤器。可以设置为屏蔽模式和列表模式对can总线上的报文进行过滤。
当节点希望接收到一种报文时。可以用屏蔽位模式对can总线上的报文进行过滤。反之,当节点希望接受到单一类型报文时。则应该配置为列表模式。can控制器的每个过滤器都具备一个寄存器。称为屏蔽寄存器。

其中标识符寄存器(ID既有优先级仲裁作用,又有类似地址的作用)的每一位都有屏蔽寄存器的每一位所对应。事实上,这也对应着can数据。事实上,这也对应着看标准数据帧中的标识符段。如下图所示。
在这里插入图片描述
此处重点在于屏蔽寄存器的作用。通过查阅stm32微控制器参考文档可以知道。当过滤器工作在屏蔽模式下时。屏蔽寄存器被置为1的每一位都要求can接收到的数据帧标识符段(11位或29位)必须和对应的接收缓冲区标识位相同。否则予以滤除。例如要求将节点接收缓冲标识符配置为0x00AA0000。过滤器屏蔽标识符为0x00FF0000。
该节点接收到的数据帧的标识符段的位[23:16],必须和接收缓冲区标识符中的[23:16]匹配。否则予以滤除。

9. 3.3V CAN收发器与5V 收发器之间通信

CAN总线介绍及硬件设计_第20张图片
Figure 2 (above) shows bus voltages for 5V transceivers as well as 3.3V transceivers.

For 5VCAN, CANH and CANL are weakly biased at about 2.5V (VCC/2) during recessive.
The recessive common-mode voltage for 3.3V CAN is biased higher than VCC/2, typically about 2.3V.
This is done to better match the common mode point of (满足共模电压的要求)the 5V CAN transceivers and minimize the common mode changes on the bus between 3.3V and 5V transceivers.
Since CAN was defined as a differential bus with wide common mode allowing for ground shifts (DC offsets between
nodes) this isn’t needed for operation, but will minimize emissions in a mixed network. In addition, by using split termination to filter the common mode of the network a significant reduction in emissions is possible. The ISO 11898-2 standard states that transceivers must
operate with a common-mode range of -2V to 7V, so the typical 0.2V common-mode shift between 3.3V and 5V transceivers doesn’t pose a problem.

结论
3.3V and 5V CAN transceivers are interoperable(3.3V和5V CAN收发器可以彼此协作通信) because High Speed CAN physical layer uses differential signalling that is the same for a 3.3V and 5V CAN transceiver. In addition both the
3.3V and 5V CAN transceivers have the same wide common mode range accommodating not
only the typical signalling but also providing wide margin for ground shift potential. For systems
that can benefit from the advantages of 3.3V transceivers, such as simplified power supplies and
lower power consumption they offer clear advantages in their use either in a homogeneous 3.3V
CAN network or in a mixed 3.3V and 5V CAN network
.

10. 端接电阻

总线的两端各要求有一个端接电阻(“120欧”)来做阻抗匹配,以减少回波反射。
将端接电阻一分为二(120/2=60Ω)再接电容(通常4.7nF)到GND,这样有助于滤除总线上的共模干扰。
CAN总线介绍及硬件设计_第21张图片
CAN总线介绍及硬件设计_第22张图片

11. CAN接口EMC防护设计

CAN总线介绍及硬件设计_第23张图片

电路EMC设计说明

(1) 电路滤波设计要点:

L1为共模电感,用于滤除差分线上的共模干扰,其阻抗选择范围为120Ω/100MHz ~2200Ω/100MHz,典型值选取600Ω/100MHz;

C1、C2为信号线上的滤波电容,给干扰提供低阻抗的回流路径,容值选取范围为22PF~1000pF,典型值选取100pF;

C3为接口地和数字地之间的跨接电容,典型取值为1000pF,耐压要求达到2KV以上,C3容值可根据测试情况进行调整;

(2) 电路防护设计要点:

D1、D2为瞬态抑制二极管,典型选值要求反向关断电压3.5V以上;因为TVS只是用来静电防护,TVS的功率不作要求。TVS管的结电容对信号传输有一定的影响,CAN接口推荐使用结电容小于100pF的TVS管。

接口电路设计备注:

如果设备为金属外壳,同时单板可以独立的划分出接口地,那么金属外壳与接口地直接电气连接,且单板地与接口地通过1000pF电容相连;
如果设备为非金属外壳,那么接口地PGND与单板地GND直接电气连接

PCB设计方案

  1. CAN接口分地设计

CAN总线介绍及硬件设计_第24张图片

方案分析:

(1) 为了抑制内部单板高频噪声通过接口向外传导辐射,也为了增强单板对外部干扰的抗扰能力。在CAN接口处增加防护和滤波隔离器件,并以隔离器件位置大小为界,划分出接口地;

(2) 隔离带中可以选择性的增加电容作为两者地之间的连接,电容取值建议为1000pF;信号线串联共模电感滤波,且共模电感要求置于隔离带内;为了防止外部强干扰通过端口耦合进内部PCB,引起内部器件性能下降,在靠近端口处信号线上增加防护器件TVS管,具体布局如图示。

(3) 当接口与单板存在相容性较差或不相容的电路时,需要在接口与单板之间进行“分地”处理,即根据不同的端口电压、电平信号和传输速率来分别设置地线。“分地”,可以防止不相容电路的回流信号的叠加,防止公共地线阻抗耦合;

(4) CAN接口信号传输速率较高,内部PCB板高频噪声很容易由公共地线通过接口向外传导辐射,因此将公共地分割且通过电容相接,可以阻断共模干扰的传播路径。(地的噪声耦合到差分线上,但分地后共模电感阻碍耦合进来的噪声向外发送)

(5)防护器件及滤波器件要靠近接口位置处摆放且要求摆放紧凑整齐,信号线上的防护器件TVS管与滤波电容要下接至接口地;按照信号流向摆放器件,走线时要尽量避免走线曲折的情况;

(6)共模电感及跨接电容要置于隔离带中。

(7)接口及接口滤波防护电路周边不能走线且不能放置高速或敏感的器件;

(8)隔离带下面投影层要做掏空处理,禁止走线。


参考资料:
https://blog.csdn.net/rannar/article/details/81411501
CAN应用手册
https://blog.csdn.net/alala120/article/details/81748503
TI SN65HVD230 相关技术文章
http://www.ti.com.cn/product/cn/SN65HVD230/technicaldocuments?keyMatch=SN65HVD230%20%E8%AF%84%E4%BC%B0&tisearch=Search-CN-everything

你可能感兴趣的:(接口设计)