CAN总线报文格式———标准数据帧

标准数据帧 : 用于节点向外传送数据

标准数据帧由帧起始、仲裁段、控制段、数据段、CRC段、ACK段、帧结束等组成。

一、总线空闲(Bus Idle)

CAN总线空闲时,总线上会输出持续的高电平“1”。当总线空闲时任何连接的单元都可以开始发送新的报文。


二、帧起始(Start of Frame)

SOF是数据帧传输的起始位。发送方(sender)会发送一个显性电平作为SOF,由于总线空闲时总线会保持隐性电平,因此SOF发出后会产生一个跳变沿用于整个CAN网络的时间同步。为了在帧传输期间保持与发送方的同步,接收方会在所有隐性电平到显性电平的跳变沿进行是否与发送方保持同步的判断。如果出现偏差,接收方将按照相关相位误差量重新进行同步(重同步)。 


三、仲裁段(Arbitration Field)

仲裁段用于写明需要发送到目的CAN节点的地址、确定发送帧类型(当前发送的是数据帧还是遥控帧),并确定发送的帧格式是标准数据帧还是扩展数据帧。

标准数据帧的仲裁段由11位ID标识符(0x000 ~ 0x7FF)和远程发送请求位RTR(Remote Transmission Request BIT)组成。

如下图:RTR = 0 时为数据帧,RTR = 1 时为遥控帧。CAN的线与机制决定了相同ID下数据帧优先级高于遥控帧优先级。


四、控制段(control Field)

标准数据帧的控制段由6位组成,如下图。IDE(Identifier Extension Bit)为扩展标识符,IDE = 0 时为标准数据帧,IDE = 1 时为扩展数据帧。CAN的线与机制决定了相同ID下标准数据帧优先级高于扩展数据帧优先级。

R0作为保留位,未使用,恒为 0。

接下来4位 为数据长度位 DLC(Data Length),CAN总线为了保证每一帧的短小精悍,约定了数据帧长度 DLC≤8;即一次最大传送8个字节的数据,然后让出总线重新仲裁,以保证更高优先级的数据能够即时占用总线发送。(确保CAN总线高优先级数据的实时性)

五、数据段(Data Field)

标准数据帧传送时,紧随控制段的为数据段,数据段的长度由DLC(Data Length)决定,如DLC = 2时,则填充 2 个字节的数据。

数据传送时,首先发送最高有效位MSB,依次发送至最低有效位LSB。

六、CRC段

CRC段用于检查总线数据传输是否出错(如受电磁干扰,某一位或几位的电平反转),CRC段包括:15 个位的 CRC序列(CRC SEQUENCE)和1 个位的CRC界定符(CRC DELIMITER)构成。

CRC序列是根据多项式生成的 CRC 值,CRC 的计算范围包括:帧起始、仲裁段、控制段、数据 段。 接收方以同样的算法计算 CRC 值并进行比较,不一致时会通报错误。

 七、ACK段

ACK段用来确认是否正常接收。由 ACK 槽(ACK SLOT)和 ACK 界定符(ACK DELIMITER)2 个位构成。

发送节点在 ACK 段发送 2 个位的隐性位“11”。当接收节点正确地接收到有效的报文时,接收器就会在ACK槽(ACK SLOT)位发送 ACK 应答信号 “0”。发送节点读取到总线上隐性电平“0”,则代表发送成功。否则将根据设置重新竞争总线,再次发送此数据帧。

八、帧结束(End of Frame)

帧结束为ACK段DEL界定符后紧随的 7 个“隐性”位组成。

九、间歇场(Intermission)

3位间隔场ITM与帧结束EOF、ACK的DEL界定符共同组成11位的隐性位“1” ,以分割两帧数据传送。

十、总线空闲(Bus Idle)

总线空闲为非必须段,两帧数据连续传输时,间歇场ITM可直接连接帧起始SOF。

综上,发送1个字节时,CAN总线需要传送 55bit 位,发送n个字节时需要传送 55+8 ×(n-1)个bit位。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/315354.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

解决:ModuleNotFoundError: No module named ‘dbutils’

解决:ModuleNotFoundError: No module named ‘dbutils’ 文章目录 解决:ModuleNotFoundError: No module named dbutils背景报错问题报错翻译报错位置代码报错原因解决方法方法一,直接安装方法二,手动下载安装方法三,…

C#进阶-IIS服务器发布ASP.NET项目

对于云服务器,程序员一般不会陌生,如果项目需要发布到现网,那么服务器是必不可缺的一项硬性条件,那么如何在云服务器上部署一个项目,需要做哪些配置准备,下面就由本文档为大家讲解,本篇以 IIS服…

编译和链接(1)

目录 1. 程序的翻译环境和执行环境 2. 详解编译链接 2.1 翻译环境 2.2 编译本身也分为几个阶段: 2.3 运行环境 3. 预处理详解 3.1 预定义符号 3.2 #define 3.2.1 #define 定义标识符 3.2.2 #define 定义宏 3.2.3 #define 替换规则 3.2.4 #和## 1. 程序的翻译环境和执…

Qt QListWidget列表框控件

文章目录 1 属性和方法1.1 外观1.2 添加条目1.3 删除条目1.4 信号和槽 2 实例2.1 布局2.2 代码实现 Qt中的列表框控件,对应的类是QListWidget 它用于显示多个列表项,列表项对应的类是QListWidgetitem 1 属性和方法 QListWidget有很多属性和方法&#xf…

【第二课课后作业】书生·浦语大模型实战营-轻松玩转书生·浦语大模型趣味Demo

目录 轻松玩转书生浦语大模型趣味Demo课后作业1. 基础作业1.1 使用 InternLM-Chat-7B 模型生成 300 字的小故事:1.2 熟悉 hugging face 下载功能,使用 huggingface_hub python 包,下载 InternLM-20B 的 config.json 文件到本地 2. 进阶作业2.…

使用BeanShell写入内容到文件【JMeter】

一、前言 ​ 在我们日常工作中,可能会遇到需要将请求返回的数据写入到文件中。在我们使用JMeter进行性能测试时,就经常能够遇到这种情况。要想达到这种目的,我们一般采取BeanShell后置处理器来将内容写入到文件。 二、提取 ​ 在目前大多数的…

JVM工作原理与实战(十四):JDK9及之后的类加载器

专栏导航 JVM工作原理与实战 RabbitMQ入门指南 从零开始了解大数据 目录 专栏导航 前言 一、JDK8及之前的类加载器 二、JDK9及之后的类加载器 1.启动类加载器 2.平台类加载器(扩展类加载器) 总结 前言 JVM作为Java程序的运行环境,其负…

Qt中QGraphicsView架构下实时鼠标绘制图形

上一章节介绍了关于QGraphicsView的基础讲解,以及简单的类图创建,由上一章节中最后展示的动画效果来看,今年主要讲述如何在QGraphicsView架构下,实时拖动鼠标绘制图形! 今天主要以矩形为例,再来看一下展示…

请查收“链上天眼”2023年成绩单

1月10日是中国人民警察节,是一份责任,更一份安心,随着科技的发展,链上安全领域的技术与工具不断更新迭代,更加安全的Web3世界正在构建。 根据欧科云链安全团队统计,2023 年全球范围内利用虚拟货币进行诈骗…

P1042 [NOIP2003 普及组] 乒乓球————C++

目录 [NOIP2003 普及组] 乒乓球题目背景题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 提示 解题思路Code运行结果 [NOIP2003 普及组] 乒乓球 题目背景 国际乒联现在主席沙拉拉自从上任以来就立志于推行一系列改革,以推动乒乓球运动在全球的普及。其中 …

github上的python图片转excel,pytesseract安装相关问题

问题1:明明都pip install pytesseract,但是就是安装不上 pytesseract 未安装链接: https://pan.baidu.com/s/1I4HzCgO4mITWTcZFkdil6g?pwdafes 提取码: afes 安装后一路next,然后配置环境变量 C:\Program Files\Tesseract-OCR新建一个系统…

修改vscode内置Vue VSCode Snippets(代码片段)

打开插件文件夹 文件夹名是 "作者名.vscode-插件名-版本号"组成的. C:\Users\Administrator\.vscode\extensions\sdras.vue-vscode-snippets-3.1.1\snippets 打开vue.json "prefix": "vbase" 就是代码块的关键词,输入vbase就会提示代码块 …

9个自媒体音频创作平台(附链接通道)

​划到最后“阅读原文” ——进入官网 Hi,我是胡猛夫,每天分享实用运营工具! 更多资源,更多内容,欢迎交流!公 号 | 微视角文化 》》精彩推荐 >>微视角文化知识库:移动的自媒体运营百科全…

【Linux】宝塔端口不通

1.问题描述:端口不通 以端口16588为例: 服务器16588端口是关闭的,防火墙规则是放通的,是由于服务器内的对应程序没有监听到 对应 的公网上 图1:端口检测 图2: 端口已放行 此时访问仍然不通,但…

windows搭建银河麒麟v10虚拟机

需要用到: 已将安装包放置云盘 自取 VMware Workstation Pro16 https://cloud.189.cn/t/vYZNjqbQ7zUr (访问码:a2pd) 银河麒麟v10镜像 https://cloud.189.cn/t/j6ZNfmnYfYRr (访问码:1icf) 也可以去官网下载:https://www.kylinos.cn 1.安装VM 无…

Jenkins使用随笔

1、如果要部署的springboot程序和jenkins在同一台linux上,需要增加一条 export BUILD_IDtomcat_mobile_build_id 如下图: 原因是:jenkins在执行sh脚本的时候,如果脚本中有启动后台进程的情况,例如tomcat的关闭和启动…

Oracle DBCA工具图形化方式检测不到ASM磁盘组(解决各种报错)

本例环境: 操作系统OEL 6.5数据库版本:11.2.0.4 问题:DBCA建库的时候,检测不到ASM磁盘组 因素一: 可能是在授权的时候执行了 chown –R 775 /u01/app等修改权限。 分析:数据库无法连接ASM,这应该是权限…

电子学会C/C++编程等级考试2020年12月(三级)真题解析

C/C++编程(1~8级)全部真题・点这里 第1题:完美立方 形如 a^3= b^3 + c^3 + d^3的等式被称为完美立方等式。例如 12^3= 6^3 + 8^3 + 10^3 。 编写一个程序,对任给的正整数 N (N≤100),寻找所有的四元组 (a, b, c, d),使得 a^3= b^3 + c^3 + d^3 ,其中 a,b,c,d均大于 11, …

Chrome DevTools 常用面板攻略

文章目录 前言一、概述1.1 简介1.2 DevTools 初步了解 二、设备模式(Device Mode)2.1 面板概述2.2 设备切换 三、元素面板(Elements)3.1 面板概述3.2 编辑样式3.2.1 添加、启用和停用 CSS 类3.2.2 添加或移除动态样式3.2.3 快速向…

UE5 通过接口实现角色描边效果

接口不能够被实例化,不能够在内部书写函数的逻辑和设置属性,只能够被继承使用。它能够让不同的类实现有相同的函数,继承接口的类必须实现接口的函数。 并且,我们可以在不同的类里面的函数实现也不同,比如A类描边是红色…