CAN-BUS初识

CAN 协议 ISO 标准
ISO 11898-2,高速CAN,终端电阻120Ω。电压显性时3.5V-1.5V,隐性时2.5V-2.5V



ISO 11898-3,低速容错CAN, 终端电阻>100Ω。电压显性5V-0V,隐性0V-5V
EM截图_201841215546
总线上执行逻辑上的线“与”时,显性电平的逻辑值为“ 0”,隐性电平为“ 1”。

CAN协议帧组成

EM截图_201841211278

标准格式的 ID 有 11 个位。从 ID28 到 ID18 被依次发送。禁止高 7 位都为隐性。(禁止设定: ID=1111111XXXX)
扩展格式的 ID 有 29 个位。基本 ID 从 ID28 到 ID18,扩展 ID 由 ID17 到 ID0 表示。基本 ID 和标准格式的 ID 相同。
(ID 并不是表示发送的目的地址,而是表示访问总线的消息的优先级。)

位名称 位长度 标准帧(CAN2.0A) 扩展帧(CAN2.0B)
SOF 1 帧起始
ID 11 唯一ID,并表示帧的优先级 扩展帧ID第一部分
SRR 1 代用远程请求,必须为隐性 (1)
IDE 1 扩展标识符位,必须为显性(0) 必须为隐性 (1)
扩展ID 18 扩展帧ID第二部分
RTR 1 数据帧为显性(0),远程帧为隐性(1)
r1, r0 2 保留位,必须为显性(0)
标准帧只有r0
保留位,必须为显性(0)
DLC 4 数据段长度
Data 0–64
(0-8 bytes)
需要传输的数据
CRC 15 循环冗余校验
CRC delimiter 1 CRC界定符,必须为隐性 (1)
ACK slot 1 ACK槽,发送为隐性 (1) ,接收声明为显性 (0)
ACK delimiter 1 ACK界定符,必须为隐性 (1)
EOF 7 帧结束,必须为隐性 (1)

位填充
位填充是为防止突发错误而设定的功能。当同样的电平持续 5 位时则添加一个位的反型数据。
EM截图_2018412151537
(紫色为添加的填充位)

引用来源: (推荐维基百科)
瑞萨CAN入门 CAN总线入门
维基百科CAN-BUS, https://en.wikipedia.org/wiki/CAN_bus