CAN学习笔记二——瑞萨说明书(待更改)

来源:互联网 发布:excel怎样数据保护 编辑:程序博客网 时间:2024/05/17 19:23

CAN 协议及标准规格(瑞萨第一版本待更改)
关于 ISO11898:ISO11898 是通信速度为 125kbps-1Mbps 的 CAN 高速通信标准。
关于 ISO11519:ISO11519 是通信速度为 125kbps 以下的 CAN 低速通信标准。
图6非常重要:ISO标准化的协议CAN
正点原子用的是 ISO1189

每种帧是不同的构成格式。采用标准格式说明,后续扩展我自己再加。

数据帧 :用于发送单元向接收单元传送数据的帧。
遥控帧 :用于接收单元向具有相同 ID 的发送单元请求数据的帧。
错误帧 :用于当检测出错误时向其它单元通知错误的帧。
过载帧 :用于接收单元通知其尚未做好接收准备的帧。
帧间隔 :用于将数据帧及遥控帧与前面的帧分离开来的帧。
【五大帧七小段】

【数据帧-标准格式】:
帧起始:SOF(1位) {D}{D/R}{R} 表示数据帧开始的段。
仲裁段:Identifier.ID(11位)+RTR(1位) 表示该帧优先级的段。
控制段:IDE(1位)+ r0(1位)+DLC(4位) 表示数据的字节数及保留位的段。
数据段: Data(0-64位) 应该就是8个字节吧 数据的内容,可发送 0~8 个字节的数据。
CRC段: CRC Sequence(15位)+CRC界定符(1位) 检查帧的传输错误的段
ACK段: ACK槽(1位)+ACK界定符(1位) 表示确认正常接收的段。
帧结束:EOF(7位)

【遥控帧-标准格式】:
帧起始:SOF(1位) {D}{D/R}{R}
仲裁段:Identifier.ID(11位)+RTR(1位) 数据的优先级的段。 标准格式的 ID 有 11 个位。从 ID28 到 ID18 被依次发送。禁止高 7 位都为隐性。
控制段:IDE(1位)+ r0(1位)+DLC(4位)

CRC段: CRC Sequence(15位)+CRC界定符(1位)
ACK段: ACK槽(1位)+ACK界定符(1位)
帧结束:EOF(7位)

【错误帧】
错误标志的重叠部分(6+0~6)
错误界定符(8位)

【过载帧】表示该帧优先级的段。
过载标志的重叠部分(6+0~6)
过载界定符(8位)

【帧间隔】
间隔(3位)
总线空闲(0~无穷位)
OR
间隔(3位)
延迟传送(8位)
总线空闲(0~无穷位)

总线上执行逻辑上的线“与”时,显性电平的逻辑值为“0”,隐性电平为“1”。
“显性”具有“优先”的意味,只要有一个单元输出显性电平,总线上即为显性电平。并且,“隐
性”具有“包容”的意味,只有所有的单元都输出隐性电平,总线上才为隐性电平。(显性电平比
隐性电平更强。)

数据帧的控制段:
通过数据码的长度来控制字节数的关系 D:表示显性点平,我们这用1表示,R:表示隐性电平我们这里用0表示

数据字节数 数据长度码
DLC3 DLC2 DLC1 DLC0
0 1 1 1 1
1 1 1 1 0
2 1 1 0 1
3 1 1 0 0
4 1 0 1 1
5 1 0 1 0
6 1 0 0 1
7 1 0 0 0
8 0 1 1 1

数据帧的CRC段:
数据帧的ARC段:ACK 段用来确认是否正常接收。由 ACK 槽(ACK Slot)和 ACK 界定符 2 个位构成。

遥控帧和数据帧
• 数据帧和遥控帧的不同
 遥控帧的 RTR 位为隐性位,没有数据段。
 没有数据段的数据帧和遥控帧可通过 RTR 位区别开来。
• 遥控帧没有数据段,数据长度码该如何表示?
 遥控帧的数据长度码以所请求数据帧的数据长度码表示。
• 没有数据段的数据帧有何用途?
 例如,可用于各单元的定期连接确认/应答、或仲裁段本身带有实质性信息的情况下。
【错误帧】
错误标志包括主动错误标志和被动错误标志两种。
 主动错误标志: 6 个位的显性位。
 被动错误标志: 6 个位的隐性位。

优先级的决定(重点)
(1)在总线空闲态,最先开始发送消息的单元获得发送权。
(2)多个单元同时开始发送时,各发送单元从仲裁段的第一位开始进行仲裁。连续输出显性电平最多的单元可继续发送。
(1) 数据帧和遥控帧的优先级
具有相同 ID 的数据帧和遥控帧在总线上竞争时, 仲裁段的最后一位(RTR)为显性位的数据帧具有优先权,可继续发送。

位填充
位填充是为防止突发错误而设定的功能。当同样的电平持续 5 位时则添加一个位的反型数据。
(1) 发送单元的工作
在发送数据帧和遥控帧时, SOF~CRC 段间的数据,相同电平如果持续 5 位,在下一个位(第 6 个位)则
要插入 1 位与前 5 位反型的电平。
(2) 接收单元的工作
在接收数据帧和遥控帧时, SOF~CRC 段间的数据,相同电平如果持续 5 位,需要删除下一个位(第 6 个
位)再接收。如果这个第 6 个位的电平与前 5 位相同,将被视为错误并发送错误帧。

原创粉丝点击