2025年汽车报文格式(汽车can报文入门)

汽车报文格式(汽车can报文入门)p style text indent 2em CAN 的报文格式 p 在总线中传送的报文 每帧由 7 部分组成 CAN 协议支持两种报文格式 其唯一的不同是标识符 ID 长度不同 标准格式为 11 位 扩展格式为 29 位 p p 在标准格式中 报文的起始位称为帧起始 SOF

大家好,我是讯享网,很高兴认识大家。



 <p style="text-indent:2em;"> CAN的报文格式</p> 

讯享网

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

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

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

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

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

如图1-1所示,具体某一位或某几位下面会详细介绍。</p> 

讯享网<img src='https://file1.elecfans.com/web2/M00/C7/E2/wKgZomYXRmuAAr9ZAADMkWTJOJo564.png' alt='CAN' /></p> 

图1-1 CAN总线报文结构</p> 

讯享网数据帧</p> 

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

讯享网数据帧是由:帧起始,仲裁断,控制端,数据段,CRC段,ACK段和帧结束构成。</p> 

如图2-1所示(具体的帧结构下面会详细介绍)。</p> 

讯享网<img src='https://file1.elecfans.com/web2/M00/C7/E2/wKgZomYXRmuAV4CVAAC94jUFdUk763.png' alt='CAN' /></p> 

图2–1数据帧类型及结构</p> 

讯享网帧起始和帧结束</p> 

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

讯享网帧结束:由7个连续的隐形位组成。</p> 

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

讯享网<img src='https://file1.elecfans.com/web2/M00/C7/E2/wKgZomYXRmyAbd5iAAC8ze-V2jo519.png' alt='CAN' /></p> 

图2–2帧起始和帧结束</p> 

讯享网仲裁段</p> 

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

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

<img src='https://file1.elecfans.com/web2/M00/C7/E2/wKgZomYXRmyAMDr1AAEF33tY3I8613.png' alt='CAN' /></p> 

讯享网图2–3数据帧结构</p> 

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

讯享网<img src='https://file1.elecfans.com/web2/M00/C7/E2/wKgZomYXRmyAD8OBAAEQhNStJOs213.png' alt='CAN' /></p> 

图2–4仲裁处理</p> 

讯享网假设节点A、B和C都发送相同格式相同类型的帧,如标准格式数据帧,它们竞争总线的过程是(如图2-5所示):</p> 

<img src='https://file1.elecfans.com/web2/M00/C7/E2/wKgZomYXRmyAcmgdAACHtb36hIU421.png' alt='CAN' /></p> 

讯享网图2–5仲裁机制</p> 

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

讯享网对于同为扩展格式数据帧、标准格式远程帧和扩展格式远程帧的情况同理</p> 

控制段</p> 

讯享网控制段共6位,标准帧的控制段由扩展帧标志位IDE、保留位r0和数据长度代码DLC组成;扩展帧控制段则由IDE、r1、r0和DLC组成如图2-6所示。</p> 

<img src='https://file1.elecfans.com/web2/M00/C7/E2/wKgZomYXRmyAYOvAAAD79iAMWEo908.png' alt='CAN' /></p> 

讯享网图2–6数据帧结构</p> 

数据段</p> 

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

<img src='https://file1.elecfans.com/web2/M00/C7/E2/wKgZomYXRm2AUCeaAABhDlyqTVM741.png' alt='CAN' /></p> 

讯享网图2–7数据段</p> 

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

讯享网CRC段</p> 

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

讯享网<img src='https://file1.elecfans.com/web2/M00/C7/E2/wKgZomYXRm2AFKG1AACiMzGNHiU141.png' alt='CAN' /></p> 


讯享网

图2–8CRC段</p> 

讯享网ACK段</p> 

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

讯享网<img src='https://file1.elecfans.com/web2/M00/C7/E2/wKgZomYXRm2ABGRWAADhRftvXb0024.png' alt='CAN' /></p> 

图2–9 ACK段</p> 

讯享网远程帧</p> 

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

讯享网<img src='https://file1.elecfans.com/web2/M00/C7/E2/wKgZomYXRm2ANlJ_AAC8GxiMehY984.png' alt='CAN' /></p> 

图3–1远程帧结构</p> 

讯享网如下图所示由于数据帧的RTR位为显性电平,远程帧的RTR位为隐性电平。</p> 

所以帧格式和帧ID都相同情况下,数据帧的优先级比远程帧优先级高如图3-2所示:</p> 

讯享网<img src='https://file1.elecfans.com/web2/M00/C7/E2/wKgZomYXRm2ARjI2AADNVs2A_H8377.png' alt='CAN' /></p> 

图3–2数据帧于远程帧仲裁机制</p> 

讯享网<img src='https://file1.elecfans.com/web2/M00/C7/E2/wKgZomYXRm2AKhC_AAEGAzyKNQM180.png' alt='CAN' /></p> 

图3–3数据帧远程帧比较</p> 

讯享网数据帧与远程帧的区别如图3-3所示。</p> 

错误帧</p> 

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

<img src='https://file1.elecfans.com/web2/M00/C7/E2/wKgZomYXRm6ATad_AAGpFAbc7Cc263.png' alt='CAN' /></p> 

讯享网图4–1错误帧类型</p> 

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

讯享网<img src='https://file1.elecfans.com/web2/M00/C7/E2/wKgZomYXRm6AAztnAADZUjyQO88634.png' alt='CAN' /></p> 

图4–2错误帧电平结构</p> 

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

<img src='https://file1.elecfans.com/web2/M00/C7/E2/wKgZomYXRm6AW_1KAAFqKaVI3hA277.png' alt='CAN' /></p> 

讯享网图4–3错误处理机制</p> 

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

讯享网过载帧与帧间隔</p> 

过载帧</p> 

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

<img src='https://file1.elecfans.com/web2/M00/C7/E2/wKgZomYXRm6AJMubAABRygVmIk0221.png' alt='CAN' /></p> 

讯享网图5–1过载帧结构</p> 

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

讯享网<img src='https://file1.elecfans.com/web2/M00/C7/E2/wKgZomYXRm6AQ2QmAAA4ni-MXQc560.png' alt='CAN' /></p> 

图5–2过载帧具体结构</p> 

讯享网帧间隔</p> 

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

讯享网<img src='https://file1.elecfans.com/web2/M00/C7/E2/wKgZomYXRm6ADwYcAABMBc68vZQ412.png' alt='CAN' /></p> 

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

讯享网<img src='https://file1.elecfans.com/web2/M00/C7/E2/wKgZomYXRm-AMZyyAAAavjWUNww918.png' alt='CAN' /></p> 

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

讯享网<img src='https://file1.elecfans.com/web2/M00/C7/E2/wKgZomYXRm-AK_6bAABvnja4QtA343.png' alt='CAN' /></p> 

CAN总线发送总流程</p> 

讯享网CAN-bus整个链路层处理数据的流程是如图6-1所示:</p> 

<img src='https://file1.elecfans.com/web2/M00/C7/E2/wKgZomYXRm-AAM7_AAGf-EmfWb8534.png' alt='CAN' /></p> 

讯享网图6–1 CAN总线发送总流程</p> 

审核编辑:黄飞</p> 

讯享网 </p> 
小讯
上一篇 2025-04-24 15:22
下一篇 2025-06-09 11:14

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/202120.html