概述
CAN通讯协议的数据帧、远程帧笔记
- CAN数据帧
- 数据帧-起始段
- 数据帧-仲裁段
- 数据帧-控制段
- 数据帧-数据段
- 数据帧-CRC段
- 数据帧-ACK段
- 数据帧-结束段
- CAN远程帧(遥控帧)
CAN数据帧
数据帧用于发送单元向接收单元发送数据。数据帧由7个段构成:
- 帧起始:表示数据帧开始的段
- 仲裁段:表示该帧优先的段
- 控制段:表示数据字节数及保留位的段
- 数据段:数据的内容,可以发送0~8个字节的数据
- CRC段:检查帧的传输错误的段
- ACK段:便是确认正常接收的段
- 帧结束:表示数据帧结束的段
数据帧-起始段
表示帧开始的段。1 个位的显性位。
数据帧-仲裁段
表示数据的优先级的段,标准格式和扩展格式在此的构成有所不同。
数据帧-控制段
控制段由 6 个位构成,表示数据段的字节数。标准格式和扩展格式的构成有所不同。
- 保留位 (r0、r1)
保留位必须全部以显性电平发送。但接收方可以接收显性、隐性及其任意组合的电平。 - 数据长度DLC
数据长度码与数据的字节数的对应关系如下表所示。
数据的字节数必须为 0~8 字节。但接收方对DLC = 9~15 的情况并不视为错误。
数据字节数 | 数据长度码 | ------ | ------ | ------ |
---|---|---|---|---|
------------------ | DLC3 | DLC2 | DLC1 | DLC0 |
0 | D | D | D | D |
1 | D | D | D | R |
2 | D | D | R | D |
3 | D | D | R | R |
4 | D | R | D | D |
5 | D | R | D | R |
6 | D | R | R | D |
7 | D | R | R | R |
8 | R | D | D | D |
- D是显性电平
- R是隐性电平
数据帧-数据段
数据段可包含 0~8 个字节的数据。从MSB(最高位)开始输出。
数据帧-CRC段
CRC 段是检查帧传输错误的帧。由15 个位的CRC 顺序*1 和1 个位的CRC 界定符(用于分隔的位)构成。
- CRC顺序
CRC 顺序是根据多项式生成的CRC 值,CRC 的计算范围包括帧起始、仲裁段、控制段、数据段。
接收方以同样的算法计算 CRC 值并进行比较,不一致时会通报错误。
数据帧-ACK段
ACK 段用来确认是否正常接收。由ACK 槽(ACK Slot)和ACK 界定符2 个位构成。
- 发送单元的ACK 段
发送单元在 ACK 段发送2 个位的隐性位。 - 接收单元的ACK 段
接收到正确消息的单元在ACK 槽(ACK Slot)发送显性位,通知发送单元正常接收结束。这称作“发送ACK”或者“返回ACK”。
数据帧-结束段
帧结束是表示该该帧的结束的段。由 7 个位的隐性位构成。
CAN远程帧(遥控帧)
接收单元向发送单元请求发送数据所用的帧。遥控帧由 6 个段组成。遥控帧没有数据帧的数据段。
- 帧起始:表示数据帧开始的段
- 仲裁段:表示该帧优先的段
- 控制段:表示数据字节数及保留位的段
- CRC段:检查帧的传输错误的段
- ACK段:便是确认正常接收的段
- 帧结束:表示数据帧结束的段
- 剩下以后更新
最后
以上就是正直宝贝为你收集整理的CAN通讯协议的数据帧、远程帧CAN数据帧CAN远程帧(遥控帧)的全部内容,希望文章能够帮你解决CAN通讯协议的数据帧、远程帧CAN数据帧CAN远程帧(遥控帧)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复