CAN学习笔记2:CAN简介

CAN

1 概述

CAN(Controller Area Network),是 ISO 国际标准化的串行通信协议,目的是适应汽车“减少线束的数量”、“通过多个网络进行大量数据的高速传输”的需求。
低速 CAN(ISO11519)通信速率 10~125Kbps,总线长度可达 1000米.
高速 CAN(ISO11898)通信速率 125~1Mbps,总线长度 ≤ 40米
CAN FD 通信速率可达 5Mbps,并且兼容经典 CAN,遵循 ISO 11898-1做数据收发

2 特性

  1. 多主控制 ,每个设备都可以主动发送数据
  2. 非破坏性的基于线路竞争的仲裁机制
  3. 利用接受滤波对帧实现多点传送
  4. 支持远程数据请求
  5. 系统的柔软性,没有类似地址的信息,添加设备不改变原来总线的状态
  6. 通信速度,速度快,距离远
  7. 错误检测&错误通知&错误恢复功能
  8. 故障封闭,判断故障类型,并且进行隔离
  9. 连接节点多,速度和数量找个平衡

3 CAN 的分层结构和功能

遵循 OSI 参考模型,CAN 的体系结构体现了相应于 OSI 参考模式的如下两层:数据链路层,物理层。
数据链路层:将比特流组成帧数据,判断数据是否正常
物理层:收发比特流的物理层
物理层是实现 ECU 与总线相连的电路。ECU 的总数取决于总线的电力负载。CAN 能够使用多种物理介质,例如双绞线、光纤等,最常用的是双绞线,信号使用差分电压传送,两条信号线被称为 CAN_H 和 CAN_L。静态时均为 2.5V 左右,此时状态表示为逻辑 1,也可以叫做隐性。用 CAN_H 比 CAN_L 高表示逻辑 0,称为显性,此时通常电压值为 CAN_H = 3.5V 和 CAN_L = 1.5V。

4 CAN 的消息帧

CAN 的消息帧根据仲裁段长度不同分为标准帧(2.0A)和扩展帧(2.0B),其本质的不同在于 ID 的长度。
CAN学习笔记2:CAN简介_第1张图片
CAN 的消息帧根据用途分为四种不同类型:数据帧用于数据传输、远程帧用于请求发送数据、错误帧用于识别探测到的错误、超载帧用于延迟下一个信息帧的发送。同时间隔帧用来间隔数据帧/远程帧与其他帧。
CAN学习笔记2:CAN简介_第2张图片

4.1 数据帧

数据帧由 7 个不同的位场组成,即帧起始、仲裁场、控制场、数据场、CRC 场、应答场和帧结束,其中数据场长度可为0。
CAN学习笔记2:CAN简介_第3张图片
①帧起始(Start Of Frame,SOF):标志数据帧和远程帧的开始,它仅由一个显性位组成,只有在总线空闲时,才允许开始发送。
②仲裁场:在标准的格式中,仲裁场由 11 位标识符和 RTR 位组成;在扩展格式中,仲裁场由 29位标识符和 SRR 位、标识位以及 RTR 组成。

  • RTR 位(远程传输请求位):在数据帧中,RTR 位必须是显性电平,而在远程帧中,RTR 位必须是隐形电平。
  • SRR 位(替代传输请求位):在扩展格式中始终为隐形位。
  • IDE 位(标识符扩展位):IDE 位对于扩展格式属于仲裁场,对于标准格式属于控制场。IDE 在标准格式中为显性电平,而在扩展格式中为隐形电平。
    ③控制场:由 6 位组成。在标准格式中,一个消息帧包括 DLC、发送显性电平的 IDE 位和保留位 r0。在扩展格式中,一个消息帧包括 DLC 和保留位 r1 和 r0,这两个位必须发送显性电平。
    DLC(数据长度位):数据场的字节数目由数据长度码给出。数据长度码为 4 位,在控制场中被发送。
    ④数据场:由数据帧中被发送的数据组成,可包括 0~8 字节。
    ⑤CRC 场:包括 CRC 序列和 CRC 界定符。
    ⑥应答场:包括 2 位,即应答间隙和应答界定符。在应答场中发送站送出两个隐性位。一个正确接收到有效报文的接收器,在应答间隙期间,将此消息通过传送一个显性位报告给发送器。所有接收到匹配 CRC 序列的站,通过在应答间隙内把显性位写入发送器的隐性位来报告。应答界定符是应答场的第二位,并且必须是隐性位。
    ⑦帧结束:每个数据帧和远程帧均由 7 个隐性位组成的标志序列界定。

4.2 远程帧

在这里插入图片描述
远程帧的主要作用是向其他的CAN节点发送数据请求,发送相同标识符的数据帧。与数据帧相比,远程帧的RTR位是隐性的,而且没有数据场。

4.3 错误帧

CAN学习笔记2:CAN简介_第4张图片
错误帧由错误标志的叠加和结束符组成。
错误标志有主动错误标志与被动错误标志。主动错误标志为6个显性位,被动错误标志为6个隐性位。

4.4 过载帧

过载帧包括两个位场,超载标志和超载界定符。

5 CAN总线拓扑结构

CAN学习笔记2:CAN简介_第5张图片
CAN总线网络主要挂在CAN_H和CAN_L,各个节点通过这两条线实现信号的串行差分传输,为了避免信号的反射和干扰,还需要在CAN_H和CAN_L之间接上120欧姆的终端电阻。为什么是120Ω,因为电缆的特性阻抗为120Ω,为了模拟无限远的传输线。
CAN_H 和 CAN_L 有一个共同的特点,传递的数据是一样的,但波形是相反的,主要是出于安全的考虑,如下图
CAN学习笔记2:CAN简介_第6张图片

6 CAN 收发过程

发送过程: CAN控制器将CPU传来的信号转换为逻辑电平(即逻辑0-显性电平或者逻辑1-隐性电平)。CAN发射器接收逻辑电平之后,再将其转换为差分电平输出到CAN总线上。
CAN学习笔记2:CAN简介_第7张图片
接收过程: CAN接收器将CAN_H 和 CAN_L 线上传来的差分电平转换为逻辑电平输出到CAN控制器,CAN控制器再把该逻辑电平转化为相应的信号发送到CPU上。
CAN学习笔记2:CAN简介_第8张图片

参考资料

  1. CAN总线之CAN的报文格式
  2. CAN总线协议详解
  3. CAN总线详解

你可能感兴趣的:(CAN,学习,笔记,网络)