文章目录

  • 一、前言
  • 二、帧开始
  • 三、仲裁段
  • 四、控制段
  • 五、数据段
  • 六、CRC段(校验)
  • 七、ACK段(应答段)
  • 八、帧结束
  • 九、帧间隔ITM
  • 十、一个数据段长度为8的标准帧,总共多少个位呢?是108位吗?

一、前言


一个标准的数据帧由以下组成:

  1. 帧开始
  2. 仲裁段
  3. 控制段
  4. 数据段
  5. CRC段(校验)
  6. ACK段
  7. 帧结束
    以上的元素,缺一不可,否则没法通过CAN控制器的校验,应用程序无法获取CAN报文。

二、帧开始


帧起始由1个显性位(逻辑0)组成,用于CAN总线上各个CAN节点的同步。在CAN总线空闲时,总线是隐性(1)。由于CAN总线是电平逻辑是"线与原理",所以当其中一个CAN节点发送帧起始(显性0),CAN总线会从隐形1变成显性0,各个节点进行同步

三、仲裁段


标准帧与拓展帧在这里有区别,CANID的过滤器与CANID的优先级都在仲裁段完成。在STM32的CAN控制与FDCAN控制上,发送CAN报文之前需要对RTR寄存器赋值,表示即将发送的CAN报文是标准帧还是远程帧。
实际工作上,分配CAN_ID时(或者Node_ID)时需要从仲裁段思考。哪些CAN节点的通讯优先级比较高,通讯优先级高的CAN节点配置较小的CAN_ID(或者Node_ID)。

四、控制段


标准帧与拓展帧在这里有区别,DLC规定了数据段的长度。在STM32的CAN控制与FDCAN控制器,发送CAN报文之前需要对DLC寄存器赋值,表示即将发送的CAN报文的数据段有多少个字节。
其中DLC段需要应用程序控制,决定数据段有多少个字节的数据。

五、数据段


数据段比较简单,最大8个字节(当DCL设置8时)。当DCL设置0时,数据段为0个字节。
应用程序的大部分工作都是处理数据段里的数据。

六、CRC段(校验)


校验的算法由CAN控制器完成,应用程序不用管它,了解一下即可。

校验的流程是发送端先计算CRC值,接收端接着也计算CRC值。如果接收端发现CRC值不对,接着就会产生CRC校验错误。

七、ACK段(应答段)


当没有CAN节点应答时,ACK段为隐性(1),当有CAN节点应答时,ACK段位显性(0)。

八、帧结束


帧结束由7个隐性位组成。

九、帧间隔ITM

1个隐性位(ACK界定符)+7个隐性位(帧结束)+3个隐性位(帧间隔ITM) = 11个隐性位。11个隐形位后,CAN总线进入空闲状态。

十、一个数据段长度为8的标准帧,总共多少个位呢?是108位吗?

答案是不止108位,因为还需要考虑位填充(连续5个相同位后,CAN控制器会填入一个相反的位)。

一般CAN示波器就能捕捉到位填充。

CAN总线技术 | 数据链路层02 - 帧结构相关推荐

  1. CAN总线技术 | 物理层02 - CAN总线的异步串行通讯

    文章目录 一.前言 二.如何解决波特率误差带来的通信错误? 三.填充位 一.前言 广州虹科录制的CAN总线技术课程非常不错,建议同学们学习一下.B站的地址:https://www.bilibili.c ...

  2. 5G技术学习——5GNR帧结构和空口资源

    这里写目录标题 4G 时域定义: 资源划分 5G NR中时域 频域 与空域资源 循环前缀CP:背景和原理 5G帧结构:基本框架 5G slot分类 5G 频域资源 5G频域资源基本概念 信道带宽与传输 ...

  3. CAN总线技术 | 数据链路层04 - CAN节点状态与错误处理机制

    文章目录 一.前言 二.错误检测区域 三.错误帧 四.CAN节点状态 4.1.FDCAN错误计数器寄存器(FDCAN_ECR) 4.2.FDCAN协议状态寄存器(FDCAN_PSR) 一.前言 CAN ...

  4. CAN总线技术 | 数据链路层03 - CAN总线竞争与仲裁机制

    文章目录 一.前言 二.CAN总线非破坏性仲裁机制 三.非破坏性仲裁机制的前提 四.仲裁的实现 一.前言 CAN总线厉害的其中一个原因是CAN总线灵活且强大的竞争与仲裁机制. 二.CAN总线非破坏性仲 ...

  5. CAN总线技术 | 数据链路层01 - CAN报文的组成

    文章目录 一.前言 二.数据帧 - 标准帧与拓展帧 三.远程帧 - 标准帧与拓展帧 四.应用程序如何控制发送标准帧还是拓展帧? 一.前言 CAN报文帧有5种类型,其中数据帧最常用.远程帧很少使用的原因 ...

  6. 5G无线技术基础自学系列 | 基础参数及帧结构

    素材来源:<5G无线网络规划与优化> 一边学习一边整理内容,并与大家分享,侵权即删,谢谢支持! 附上汇总贴:5G无线技术基础自学系列 | 汇总_COCOgsta的博客-CSDN博客 5G在 ...

  7. LIN总线协议详解2(LIN总线报文帧结构)

    目录 一.LIN总线报文帧结构 (Message Frame ) 1.报文整体机构 2.同步间隔段(Break Field) 3.同步段(Sync Byte Field) 4.受保护 ID 段(Pro ...

  8. 搞一下 车载以太网实战 | 01 车载以太网帧结构详解

    前言 搞SOA.搞 AP & CP AUTOSAR.搞异构SoC.搞车载以太网.搞车载OS等就找搞一下汽车电子. 全系内容可在<搞一下汽车电子>后台回复 "系列" ...

  9. CAN总线技术 | CAN脱颖而出的“秘密”

    CAN总线在汽车网络中脱颖而出的"秘密": 节点间采用多主通讯方式. 采用短帧结构,标准数据帧8个字节,500K波特率,用200多us就能发完. 报文ID值越小,优先级越高. 非破 ...

最新文章

  1. 《数据科学家养成手册》第十章--混沌论
  2. jenkins rec 分析 cve-2018-1000861 分析
  3. 牛客小白赛190615场
  4. matlab GUI 初学
  5. 在关于测试高速光纤链路的BICSI会前研讨会上获得3个CEC
  6. 学习web标准、用户体验改善、Ajaxamp;Asp.Net
  7. 欧几里德算法(模板)
  8. c语言里,关于宏定义的使用
  9. 网络安全基础——服务器远程管理
  10. 复习了C++前几章,做一个ASCII码转换的小程序
  11. Linux中tar压缩命令详解
  12. 拒绝从入门到入土:初识C语言
  13. 启动docker时映射到宿主机时出现 /usr/bin/docker-current: Error response from daemon: driver failed……的解决方案
  14. Android使用MediaCodec进行视频编码 视频的一些基础概念介绍
  15. stanfordnlp使用自定义分词分句
  16. MOOS-ivp 实验三 MOOS简介(1)
  17. Delphi访问网络共享文件夹
  18. 普渡大学统计与计算机科学,普渡大学西拉法叶校区计算机科学与工程世界排名2017年最新排名第47(ARWU世界排名)...
  19. 我的世界JAVA挂机杀怪有经验_我的世界如何快速获得经验?
  20. 【翻译】Wide Deep Learning for Recommender Systems--推荐系统的广泛深度学习

热门文章

  1. ant design form表单的时间处理
  2. Bounding-box_regression详解
  3. 关于bootstrap的modal弹出层嵌套子Modal所引发的血案(转)
  4. [转载]golang sync.Pool
  5. 从UnitedStack OS 1.0 Preview试用申请问卷调查学习OpenStack
  6. 利用用户级线程提高多线程应用的性能
  7. 个人管理:如何发现自己的兴趣?
  8. JAVA API 中文版
  9. 程序员|刚毕业,我该去小公司还是该去大公司
  10. 叮咚买菜的数据应用之路,互联网公司的数据决策平台有何不同