CAN数据通信机制

下面将围绕构成CAN数据通信基础的帧与格式结构及其作用进行说明。

CAN通信的基础“显性”与“隐性”

以汽车为中心的工业机械或FA(工厂自动化)等领域广泛应用的串行通信协议“CAN”。在CAN通信中,将信息转换为由“0”与“1”构成的数字信号进行发送。此时将“0”称为“显性(优势)”,将“1”称为“隐性(劣势)”,同时发送显性与隐性时,优先发送显性的机制。另外CAN通过在各种通信协议中采用的NRZ(Non-Return-to-Zero)方式进行数据转换并发送。

NRZ(Non-Return-to-Zero)方式
NRZ(Non-Return-to-Zero)方式

关于CAN通信的单位“帧”

CAN通信的数字信号总称为“帧”,包括“数据帧”、“远程帧”、“过载帧”、“错误帧”共4种。

数据帧

发送数据时的格式称为“数据帧”。数据帧包括“标准格式”与“扩展格式”两种。

标准格式的帧结构

下面介绍主要用于乘用车的CAN通信的“标准格式”帧结构。

标准格式的帧结构

记载的数字分别表示可使用的位长度。上侧线表示隐性,下侧线表示显性,只有显性(或隐性)带线时显性(或隐性)为固定,上下都带线时随着发送数据变化。

SOF
优先从节点发送的部分。因表示开始位置而被称为“SOF(Start Of Frame)”,也用于节点间的同步
ID
决定数据内容或发送节点的识别、通信调停优先顺序等。标准格式时为11位,扩展格式时为11位+18位共计29位。
RTR
用于识别数据帧与远程帧的“RTR(Remote Transmission Request)”在数据帧时为显性,在远程帧时为隐性。另外,与ID一样,也用于通信调停
控制字段
由1位长的“IDE(Identifier Extension)”与保留位“r”、4位长的“数据长度码(DLC)”构成。
数据字段
发送数据部分称为“数据字段”。依据DLC设定,长度为0到8字节(0到64位长度),分配的数据由设计者决定。
CRC序列
由发送节点运算“SOF”、“ID”、“控制字段”、“数据字段”的发送值,并将结果作为CRC(Cyclic Redundancy Check)序列进行发送。通过接收节点也进行相同运算,判断是否可正常接收。
CRC分隔符
表示CRC序列终止。CRC序列与CRC分隔符统称为“CRC字段”。
ACK间隙
判断是否可正常接收包括发送的CRC字段在内的数据。
ACK分隔符
表示ACK间隙终止。ACK间隙与ACK分隔符统称为“ACK字段”。
EOF
数据帧终止时发送“EOF(End Of Frame)”。
ITM
不包括在数据帧范围内,标记为“ITM(Intermission)”,在ITM后进入总线怠速。在ITM仅能发送“过载帧”。

扩展格式的帧结构

扩展格式与标准格式区别在从ID到RTR的部分。主要用于巴士或卡车等大型车CAN通信的格式。

扩展格式的帧结构
基本ID
标准格式的ID在扩展格式中标记为“基本ID”。内容遵照标准格式。
SRR
“SRR(Substitute Remote Request Bit)”是1位长度的隐性位。
IDE
“IDE(Identifier Extension Bit)”是1位长度的隐性位。
扩展ID
标准ID11位与扩展ID18位合计为29位长度。关于可识别种类,标准格式为2048种,扩展格式为约540万种。

远程帧

在CAN通信中,以从需要数据的节点发送远程帧后,由持有数据的节点回发数据帧的方式进行通信。远程帧的基本结构为从数据帧删除数据字段(或DLC及数据字段为0字节)的结构,且用于识别的RTR为隐性(在数据帧为显性)。但是,近年来为降低数据占有率,几乎不使用远程帧,而采取定期向各节点发送数据帧的方式。

远程帧
远程帧

过载帧

CAN刚出现时针对微型控制器CAN控制器的处理能力不足的情况,而开发了“过载帧”。主要向来不及处理数据帧的节点发送,发挥延迟发送下一数据帧的作用。

过载帧

错误帧

是在发生各种通信错误时发送的帧,具有通知CAN网络异常的作用。

错误帧

索引