我是靠谱客的博主 正直宝贝,最近开发中收集的这篇文章主要介绍CAN通讯协议的数据帧、远程帧CAN数据帧CAN远程帧(遥控帧),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

CAN通讯协议的数据帧、远程帧笔记

  • CAN数据帧
    • 数据帧-起始段
    • 数据帧-仲裁段
    • 数据帧-控制段
    • 数据帧-数据段
    • 数据帧-CRC段
    • 数据帧-ACK段
    • 数据帧-结束段
  • CAN远程帧(遥控帧)

CAN数据帧

数据帧用于发送单元向接收单元发送数据。数据帧由7个段构成:

  1. 帧起始:表示数据帧开始的段
  2. 仲裁段:表示该帧优先的段
  3. 控制段:表示数据字节数及保留位的段
  4. 数据段:数据的内容,可以发送0~8个字节的数据
  5. CRC段:检查帧的传输错误的段
  6. ACK段:便是确认正常接收的段
  7. 帧结束:表示数据帧结束的段在这里插入图片描述

数据帧-起始段

表示帧开始的段。1 个位的显性位。
在这里插入图片描述

数据帧-仲裁段

表示数据的优先级的段,标准格式和扩展格式在此的构成有所不同。
在这里插入图片描述

数据帧-控制段

控制段由 6 个位构成,表示数据段的字节数。标准格式和扩展格式的构成有所不同。
在这里插入图片描述

  • 保留位 (r0、r1)
    保留位必须全部以显性电平发送。但接收方可以接收显性、隐性及其任意组合的电平。
  • 数据长度DLC
    数据长度码与数据的字节数的对应关系如下表所示。
    数据的字节数必须为 0~8 字节。但接收方对DLC = 9~15 的情况并不视为错误。
数据字节数数据长度码------------------
------------------DLC3DLC2DLC1DLC0
0DDDD
1DDDR
2DDRD
3DDRR
4DRDD
5DRDR
6DRRD
7DRRR
8RDDD
  • 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 个段组成。遥控帧没有数据帧的数据段。

  1. 帧起始:表示数据帧开始的段
  2. 仲裁段:表示该帧优先的段
  3. 控制段:表示数据字节数及保留位的段
  4. CRC段:检查帧的传输错误的段
  5. ACK段:便是确认正常接收的段
  6. 帧结束:表示数据帧结束的段
    在这里插入图片描述
  • 剩下以后更新

最后

以上就是正直宝贝为你收集整理的CAN通讯协议的数据帧、远程帧CAN数据帧CAN远程帧(遥控帧)的全部内容,希望文章能够帮你解决CAN通讯协议的数据帧、远程帧CAN数据帧CAN远程帧(遥控帧)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部