CAN的报文格式

article/2025/10/13 22:07:08
  1. CAN的报文格式

    在总线中传送的报文,每帧由7部分组成。CAN协议支持两种报文格式,其唯一的不同是标识符(ID)长度不同,标准格式为11位,扩展格式为29位。

    在标准格式中,报文的起始位称为帧起始(SOF),然后是由11位标识符和远程发送请求位(RTR)组成的仲裁场。RTR位标明是数据帧还是请求帧,在请求帧中没有数据字节。

    控制场包括标识符扩展位(IDE),指出是标准格式还是扩展格式。它还包括一个保留位 (ro),为将来扩展使用。它的最后四个位用来指明数据场中数据的长度(DLC)。数据场范围为0~8个字节,其后有一个检测数据错误的循环冗余检查(CRC)。

    应答场(ACK)包括应答位和应答分隔符。发送站发送的这两位均为隐性电平(逻辑1),这时正确接收报文的接收站发送主控电平(逻辑0)覆盖它。用这种方法,发送站可以保证网络中至少有一个站能正确接收到报文。

    报文的尾部由帧结束标出。在相邻的两条报文间有一很短的间隔位,如果这时没有站进行总线存取,总线将处于空闲状态。

    如图11所示,具体某一位或某几位下面会详细介绍。

    图11 CAN总线报文结构

  2. 数据帧

    数据帧是使用最多的帧,结构上由7段组成,其中根据仲裁段ID码长度的不同,分为标准帧(CAN2.0A)和扩展帧(CAN2.0B)。

    数据帧是由:帧起始,仲裁断,控制端,数据段,CRC段,ACK段和帧结束构成。

    如图21所示(具体的帧结构下面会详细介绍)。

    图2–1数据帧类型及结构

  3. 帧起始和帧结束

    帧起始:由单个显性位组成,总线空闲时,发送节点发送帧起始,其他接收节点同步于该帧起始位。

    帧结束:由7个连续的隐形位组成。

    (注:显性电平和隐性电平是相对于CAN_H和CAN_L而言的差分信号电平,并非TTL电平上的高低电平,需要注意)如图2-2所示。

     

    图2–2帧起始和帧结束

  4. 仲裁段

    CAN-bus是如何解决多个节点同时发送数据,即总线竞争的问题?该问题由仲裁段给出答案。

    CAN-bus并没有规定节点的优先级,但通过仲裁段帧ID规定了数据帧的优先级。根据CAN2.0标准版本不同,帧ID分为11位和29位两种。如图23所示

     

    图2–3数据帧结构

    如图24所示CAN控制器在发送数据的同时监测数据线的电平是否与发送数据对应电平相同,如果不同,则停止发送并做其他处理。

    图2–4仲裁处理

    假设节点A、B和C都发送相同格式相同类型的帧,如标准格式数据帧,它们竞争总线的过程是(如图16所示):

    图2–5仲裁机制

    从该分析过程得出结论是:帧ID值越小,优先级越高;

    对于同为扩展格式数据帧、标准格式远程帧和扩展格式远程帧的情况同理

  5. 控制段

    控制段共6位,标准帧的控制段由扩展帧标志位IDE、保留位r0和数据长度代码DLC组成;扩展帧控制段则由IDE、r1、r0和DLC组成如图17所示。

    图2–6数据帧结构

  6. 数据段

    一个数据帧传输的数据量为0~8个字节,这种短帧结构使得CAN-bus实时性很高,非常适合汽车和工控应用场合如图27所示。

    图2–7数据段

    数据量小,发送和接收时间短,实时性高,被干扰的概率小,抗干扰能力强。

  7. CRC段

    CAN-bus使用CRC校验进行数据检错,CRC校验值存放于CRC段。 CRC校验段由15位CRC值和1位CRC界定符构成如图28所示。

    图2–8CRC段

  8. ACK段

    当一个接收节点接收的帧起始到CRC段之间的内容没发生错误时,它将在ACK段发送一个显性电平如图29所示。

    图2–9 ACK段

  9. 远程帧

    与数据帧相比,远程帧结构上无数据段,由6个段组成,同理分为标准格式和扩展格式,且RTR位为1(隐性电平)如图31所示。

    图3–1远程帧结构

    如下图所示由于数据帧的RTR位为显性电平,远程帧的RTR位为隐性电平。

    所以帧格式和帧ID都相同情况下,数据帧的优先级比远程帧优先级高如图32所示:

    图3–2数据帧于远程帧仲裁机制

     

    图3–3数据帧远程帧比较

    数据帧与远程帧的区别如图33所示。

     

  10. 错误帧

    尽管CAN-bus是可靠性很高的总线,但依然可能出现错误;CAN-bus的错误类型共有5种(如图41所示)。

    图4–1错误帧类型

    当出现5种错误类型之一时,发送或接收节点将发送错误帧。错误帧的结构如下,其中错误标识分为主动错误标识和被动错误标识如图42所示。

    图4–2错误帧电平结构

    为防止自身由于某些原因导致无法正常接收的节点一直发送错误帧,干扰其他节点通信,CAN-bus规定了节点的3种状态及其行为如图43所示。

    图4–3错误处理机制

    (注:这些错误处理的机制是由硬件自主完成的这样做的目的就是只要CAN在收到数据肯定是正确的数据)。

     

  11. 过载帧与帧间隔

  12. 过载帧

    当某个接收节点没有做好接收下一帧数据的准备时,将发送过载帧以通知发送节点;过载帧由过载标志和过载帧界定符组成如所示图51。

    图5–1过载帧结构

    由于存在多个节点同时过载且过载帧发送有时间差问题,可能出现过载标志叠加后超过6个位的现象如所示图52。

    图5–2过载帧具体结构

  13. 帧间隔

    帧间隔用于将数据帧或远程帧和他们之前的帧分离开,但过载帧和错误帧前面不会插入帧间隔。

    帧间隔过后,如果无节点发送帧,则总线进入空闲。

    帧间隔过后,如果被动错误节点要发送帧,则先发送8个隐性电平的传输延迟,再发送帧。

  14. CAN总线发送总流程

    CAN-bus整个链路层处理数据的流程是如图61所示:

    图6–1CAN总线发送总流程

     

  15. 参考资料

    《项目驱动--CAN-BUS现场总线基础教程----周立功,黄晓清》。

    《现场总线技术及其应用第二版–清华大学出版社》。


http://chatgpt.dhexx.cn/article/b47HHu8L.shtml

相关文章

IPv4报文格式详解和报文示例

目录 一,IP数据报文的组成 二,IP报文格式 三,IPv4报文示例 作者:柒烨带你飞 一,IP数据报文的组成 一个IP数据报文都是由首部和数据两部分组成。 每个 IP 数据报都以一个 IP 报头开始。IP 报头中包含大量信息&#…

ICMP报文格式解析

ICMP报文的格式类型总共分为三大类: 1、差错报文 2、控制报文 3、查询报文 上图是ICMP报文的基本格式,上面提到的三种ICMP报文均有“类型,代码和校验和”三个字段,后面还有4个字节是根据不同的报文类型而有不同的格式&#xff…

常见网络报文数据包格式

当我们应用程序用TCP传输数据的时候,数据被送入协议栈中,然后逐个通过每一层,知道最后到物理层数据转换成比特流,送入网络。而再这个过程中,每一层都会对要发送的数据加一些首部信息。整个过程如下图。 以太网帧格式 以…

网络中的常见的各种协议--报文格式总结学习

网络中的各种协议总结学习 以太网帧结构IP报文格式ARP协议ICMP协议UDP用户数据包协议DNS TCP协议FTP协议HTTP协议SMTP协议POP协议SSH协议 以太网帧结构 注: 当LLC-PDU中携带的是数据的时候,那么左侧的2字节表示的就是长度;当然,以…

网络基础知识之报文格式介绍

1.以太网数据帧头部 DMAC:目的MAC地址,长度6个字节。 SMAC:源MAC地址,长度6个字节。 TYPE:类型字段,表明上层是哪种协议,IP协议是0x800,ARP协议是0x0806。 DATA:数据字…

计算机网络11种协议报文格式

文章目录 TCPUDPIPIPV6IPSec以太网帧结构802.1Q以太网帧结构802.11无线链路帧SSL记录RTP实时传输协议OpenFlow流表参考 TCP 源端口号和目的端口号: 用16bit表示所以端口号范围为0~65535,用来标识源主机和目的主机上的进程,用于运输层的多路复用和多路分解…

EndNote X8使用总结

本文记录在使用EndNote X8(Word2013)过程中遇到的一些问题,持续更新。 1.插入参考文献序号与文本的缩进问题 问题描述:在Word中使用EndNote插入参考文献后,在文末的参考文献出现文献序号与文本内容相距较大的情况&am…

EndNote20 安装方法

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、Endnote是什么?二、安装步骤 1.安装库2.中文版总结 前言 管理文献工具是科研入门的一个必要学习方面。随着写作论文的增多,以及学习…

安装 EndNote X 9.3.3

下载 链接:https://pan.baidu.com/s/1d4njrGQUZQxE-VeSA_M1Zw 提取码:0226 安装 双击 .exe文件 不想安装在C盘的可以点击 Browse 自己设置一个路径,点击 OK 出现下图这一幕是因为我 office 打开着,只要把 wor…

Endnote操作

记录一下一些要点,以便之后毕设用到 1. 用endnote插入文献后,mathtype的公式显示域代码。word-文件-选项-高级 2.word中想修改endnote格式出现can not be formatted because it is no longer open. Please chose another document. word-endnote20-Too…

EndNote安装与使用

一、安装 1、双击ENX9Inst.msi安装 2、进入安装目录,使用CHS或ENG里的文件替换安装目录文件 CHS 中文版 ENG 英文版 二、软件优化 1、EndNote Import.enf 此文件用于导入中文文献时期刊名解析错误的问题,右击使用EndNoteX9打开后关闭即可 2、geebin…

EndNote X9导入文献的5种方式

上一篇介绍了EndNote X9下载与简介。 这里再介绍一下EndNote X9导入文献的5种方式,分别如下: 1. 从数据库网站导入参考文献 2. 在网页浏览中导入参考文献 3. 轻松导入本地参考文献 4. 在线检索导入参考文献 5. 手工添加参考文献信息 1. 从数据库网站导…

学习记录:关于如何安装EndnoteX9以及汉化过程

1、下载 Endnote X9安装包,并解压。 百度网盘地址: 链接:https://pan.baidu.com/s/1s1o81RVPsYIekr9as2M-kg 提取码:iw6h 2、 点击ENX9Inst.msi开始安装。 3、安装过程 Next accept Next accept、Next Typical、Next 可默认地址…

EndnoteX9下载并安装

Endnotex9 安装包链接链接:链接:https://pan.baidu.com/s/1lZYXIkZ-LjeHAH32DT4DmQ 提取码:yz2d 破解码:1、79SHT-UQFTD-FE94J-FRRBW-UDHXL 2、3VLXS-VVXSR-RMSJ7-AKURY-GPQFG 3、LTF3T-KJ778-RPRSC-8G4FN-5LWJN 4、3SF6V-TYK7C-…

Mac版本EndNote基本用法

NoteExpress在Mac上并未覆盖,转而探索了下Mac版EndNote基本用法: 以北京科技大学为例: 一、下载安装: 1.在校外访问学校VPN:http://n.ustb.edu.cn/。登录个人账号后,点击“电子资源数据导航”进入到学校图…

EndNote X9使用方法

要先下载,word里不自带 一、如何添加引用 1、打开EndNote x9。点击文件->新建,在弹出的对话框中选择一个地址,修改文件名,新建文献库。 新建之后的效果如图所示: 2、在谷歌学术、百度学术或知网上搜索自己需要的…

「Juc并发编程」什么是可重入锁?

「Juc并发编程」什么是可重入锁? 文章目录 「Juc并发编程」什么是可重入锁?一、概述二、解释三、可重入锁种类隐式锁同步块同步方法 显式锁 四、Synchronized的重入的实现机理 一、概述 可重入锁又名递归锁,是指在同一个线程在外层方法获取锁…

可重入锁和不可重入锁 ReentrantLock synchronize

http://blog.csdn.net/qq838642798/article/details/65441415 https://www.cnblogs.com/dj3839/p/6580765.html 用lock来保证原子性(this.count这段代码称为临界区) 什么是原子性,就是不可分,从头执行到尾,不能被其他…

到底什么是重入锁,拜托,一次搞清楚!

相信大家在工作或者面试过程中经常听到重入锁这个概念,或者与关键字 synchrozied 的对比,栈长面试了这么多人,80%的面试者都没有答对或没有答到点上,或者把双重效验锁搞混了,哭笑不得。。 那么你对重入锁了解有多少呢&…

重入锁-ReentrantLock

ReentrantLock 一.重入锁的特点1)实现重进入功能2)分为公平锁和非公平锁: 二.ReentrantLock和AQS的关系 一.重入锁的特点 1)实现重进入功能 重进入是指任意线程获取锁之后能够再次获取该锁而不会被锁阻塞 锁的获取和释放过程如下: 线程再次获取锁。锁…