CAN协议的报文传输过程中有:数据帧、远程帧、错误帧、过载帧和帧间隔。

1.数据帧:用于发送节点向接收节点传送数据的帧。

2.远程帧:用于接收节点向具有相同ID的发送节点传送数据的帧。

3.错误帧:用于当检测出错误时向其他节点通知错误的帧。

4.过载帧:用于接收节点通知其尚未做好准备的帧。

5.帧间隔:用于将数据帧及远程帧与前面的帧分隔开来。

标准帧和扩展帧:

数据帧和远程帧都可以使用标准帧格式或者扩展帧格式

RTR:远程发送请求位,数据帧为显性,远程帧为隐性。

SRR:代替远程请求位(在扩展格式中在RTR位置,所以得此名),该位为隐性位。在这个地方占个位以保持标准帧和扩展帧IDE对齐,便可以判断标准帧优先于扩展帧。

IDE:标识符扩展位,标准帧为显性,扩展帧为隐性。

R0、R1:保留位。

DLC:数据长度位。

CRC:校验位。

CRC分隔符:隐性位

ACK:应答位和应答界定位。在应答域中,发送器发出两个隐性位。接收器接收到报文后,在应答位期间,用显性位填充应答位作为回应,应答界定则为保持隐性。

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

数据帧:

SOF帧起始:数据帧开始的段。

仲裁场:该帧优先级的段。

控制场:数据的字节数以及保留位。

数据场:数据内容。

CRC场:校验数据。

应答场:确认正常接收的段。

帧结尾:数据帧结束的段。

远程帧:

通过发送远程帧,作为数据接收器的节点可以发起各自数据源的数据传送请求,即向数据发送器请求发送具有相同ID的数据帧。

远程帧没有数据段。

错误帧:

错误类型:应答错误,填充错误,CRC错误,格式错误

错误帧由错误标志的叠加和结束符组成。错误标志有主动(积极)错误标志和被动(消极)错误标志。主动(积极)错误标志为6个显性位,被动(消极)错误标志为6个隐性位。

错误积极节点:如果检测到一个错误条件,就会发送积极错误标志。这将引起其它节点检测到填充错误,并开始发送错误标志。因此错误标志叠加在6~12位之间。节点发送完错误标志之后就发送一个隐性位,并监控总线,直到总线上出现一个隐性位,然后再发送7个隐性位。这样一个错误帧就发送完毕了。

消极错误节点:如果检测到一个错误条件,会试图发送一个消极错误标志进行指示。这个消极错误节点会一直等待6个具有相同极性的连续位,等待从消极错误标志起始开始,当检测到6个相同极性的连续位时,消极错误标志发送完成。

过载帧:

过载条件:接收器要求延迟下一次数据帧或远程帧的到达;在帧间隔间歇场的第一位和第二位检测到显性位;如果CAN节点在错误界定符或过载界定符的第8位采样到一个显性位,则节点会发送一个过载帧,错误计数器不会增加。

帧间空间:

数据帧和远程帧的前面必然有帧间空间。对于主动错误节点和被动错误节点,帧间空间的结构稍有不同。对于主动错误节点,帧空间由3个显性位的间歇字段和总线空闲组成。在间歇字段不允许发送数据帧和远程帧。总线空闲的长度任意,当有显性位时就被认为是帧起始。被动错误标志除了上边两部分外,在间歇字段后还有8个显性位的挂起传输。在挂起传输阶段被动错误节点不可以发送数据帧与远程帧。

CAN报文格式的更多相关文章

  1. DNS报文格式(RFC1035)

    一.域名和资源记录的定义 1.Name space definitions 2.资源记录定义(RR definitions)      2.1 格式          后面分析报文的时候详细解释.   ...

  2. 报文格式:xml 、定长报文、变长报文

    目前接触到的报文格式有三种:xml .定长报文.变长报文 . 此处只做简单介绍,日后应该会深入学习到三者之间如何解析,再继续更新.——2016.9.23 XML XML 被设计用来传输和存储数据. H ...

  3. HTTP POST请求报文格式分析与Java实现文件上传

    时间 2014-12-11 12:41:43  CSDN博客 原文  http://blog.csdn.net/bboyfeiyu/article/details/41863951 主题 HTTPHt ...

  4. DNS报文格式

    原文链接地址:http://blog.chinaunix.net/uid-24875436-id-3088461.html DNS报文格式(借个图贴过来):     说明一下:并不是所有DNS报文都有 ...

  5. ARP协议的报文格式

    原文链接地址:http://www.cnblogs.com/laojie4321/archive/2012/04/12/2444187.html   结构ether_header定义了以太网帧首部:结 ...

  6. HTTP报文格式

    请求报文 <method><SP><uri><SP><version><CRLF> <head-name><: ...

  7. HTTP请求、响应报文格式

    HTTP请求报文格式: HTTP请求报文主要由请求行.请求头部.空行以及请求正文4部分组成 1,请求行由3部分组成,分别为:请求方式,URI(注意这里不是URL)以及协议版本组成,之间由空格分隔 请求 ...

  8. HTTP的报文格式,GET和POST的区别

    1.HTTP报文格式 HTTP报文是面向文本的,报文中的每一个字段都是一些ASCII码串,各个字段的长度是不确定的.HTTP有两类报文:请求报文和响应报文. 请求报文: 一个HTTP请求报文由请求行( ...

  9. ARP协议的报文格式 转自n哖苡逅

    ARP协议的报文格式 结构ether_header定义了以太网帧首部:结构arphdr定义了其后的5个字段,其信息用于在任何类型的介质上传送ARP请求和回答:ether_arp结构除了包含arphdr ...

  10. HTTP协议报文格式

    HTTP协议报文格式 接下来我们看看HTTP协议(Hypertext Transfer Protocol――超文本传输协议)浏览器端(客户端)向WEB服务器端访问页面的过程和HTTP协议报文的格式. ...

随机推荐

  1. C#的隐式类型、匿名类型、自动属性、初始化器

    1.隐式类型 1)源起 在隐式类型出现之前,我们声明一个变量时,需要为它指定相应的类型,甚至在foreach一个集合的时候,也要为遍历的集合元素,指定变量的类型,隐式类型出现后,程序员就不用再做这个工 ...

  2. Easyui-Treegrid使用注意事项-sunziren

    版权声明:本文为sunziren原创文章,博客园首发,转载务必注明出处以及作者名称. 最近,工作中有一个网页需要用到前端框架easyui的treegrid组件,因此我对这个treegird研究了一段时 ...

  3. Miller_Rabin()算法素数判定 +ollard_rho 算法进行质因数分解

    //****************************************************************// Miller_Rabin 算法进行素数测试//速度快,而且可以 ...

  4. hdu 1007 Quoit Design(平面最近点对)

    题意:求平面最近点对之间的距离 解:首先可以想到枚举的方法,枚举i,枚举j算点i和点j之间的距离,时间复杂度O(n2). 如果采用分治的思想,如果我们知道左半边点对答案d1,和右半边点的答案d2,如何 ...

  5. 将字符串日期格式化为yyyy-mm-dd

    (CONVERT(varchar(100), CONVERT(datetime,a.con_ret_time), 23))

  6. 关于Windows系统下端口被占用的问题和task命令

    一.如何解决端口被占用的问题? 此时端口4444被进程占用,只要找到端口4444的进程,并且将进程kill掉即可. 开始--运行--cmd 进入命令提示符 输入netstat -aon 即可看到所有连 ...

  7. 使用Windows实现数据绑定

    一.绑定下拉框数据 string sql = "select * from Grade"; SqlDataAdapter sda = new SqlDataAdapter(sql, ...

  8. Windows10通过命令行导出笔记本电池使用信息

    powercfg /batteryreport /output "D:\Thinkpad x1c\battery_report_2020_2_25.html" 可以导出电池的电池类 ...

  9. Educational Codeforces Round 81 (Rated for Div. 2) 题解

    过了n天补的题解:D AB就不用说了 C. Obtain The String 思路挺简单的,就是贪心,但是直接贪心的复杂度是O(|s|*|t|),会超时,所以需要用到序列自动机 虽然名字很高端但是就 ...

  10. java编码解码过程

    最近做项目的时候,有时会遇到中文乱码的问题,网上查询了很多资料,发现大多都是只讲解决方案,并没有讲到为什么要使用这种方案,这种方案的原理是什么? 最典型的就是连接数据库的URL,我们一般把它放到cla ...