can帧格式 dlc_CAN知识点总结(二)

本文主要总结CAN的帧格式。介绍了CAN数据通讯中,显性、隐形电平对应的逻辑值。详细阐述标准数据帧各部分,如起始位、标识符等的含义和作用,还说明了数据传输正确时的应答过程。此外,提及CAN的其他帧,包括远程帧和错误帧的特点与原理。
摘要由CSDN通过智能技术生成

94213c28733aa2b99a51f4fce2249396.png

CAN的主要功能是进行数据通讯,CAN知识点总结(一)里面总结了CAN网络中的CAN节点和CAN总线以及标准11898。总结(二)来说一下CAN的帧格式。

首先记住,显性电平对应逻辑“0”,隐形电平对应逻辑“1”,千万别混淆了!

一、下图是CAN的数据帧(Data Frame)的格式。

c8e0349e33557f37f5e807f539323cb1.png
CAN的标准数据帧的格式

图中只有蓝色色块的数据段Data Field才是要传递的数据。问题来了,为什么数据段的前后还有这么多信息块呢?
这是因为CAN网络里面只有两根线,一根高线一根低线。物理层面的简单注定CAN的数据格式必须含有大量的通讯协议。

一个标准的数据帧包含以下内容:

SOF 起始位(Start of Frame ):起始位代表着数据帧的传输开始,它占位1Bit。它由发送器发送,并通过将边沿从隐性(总线空闲)更改为显性来确保全网同步。

ID 标识符(Identidier):SOF之后是标识符(ID)。ID确定了数据帧的优先级,并负责CAN网络中发送器和收发器的关系。

RTR 远程传输请求(Remote Transmission Request):发送器使用RTR位将帧类型(数据帧或远程帧)通知接收器。如果RTR是显性位,那表明这是数据帧。(隐性位表明是远程帧)

IDE 标识符拓展(Identifier Extension):IDE位用于区分标准格式和扩展格式。标识符的标准格式为11位,扩展格式为29位。下图就是“标准格式和扩展格式的数据格式”。

8170ae5861c0c0a0ad12bdb03bbc527b.png
IDE 标识符拓展

DLC 数据长度代码(Data Length Code)DLC将有效字节的数量发送到接收器。DLC是多少,Data Field中就有多少个字节。

Data Field 数据段一个数据帧最多可以传输八个有用字节。这八个字节放在数据段里面。

CRC 循环冗余校验(Cyclic Redundancy Check):能检测出错误,是传输安全性的保证。

  • 原理根据要传输的位(从起始位到数据段)和由ISO 11898-1定义的多项式G(x)计算出一段CRC序列,然后在要传输的位后面加上这个CRC序列。整个多项式对应于要传输的位的倍数。如果多项式的除法得到了余数,则接收器能够检测到传输错误。

b6f109e8403ff4156f7884860fe51bbb.png
应答ACK

应答ACK(Acknowledgement)根据CRC除法的结果,接收器会向发送器回应传输是否正确。如果正确,接收器会在ACK时隙(ACK Slot)期间发送一个显性电平的ACK信号给发送器,来表示应答。注意:在接收器确认之前,ACK的信号之前一直都是隐性电平。只有传输正确之后,才改为显性电平。(看上图中ACK Slot在传输正确和传输错误时不同的电平)。

  • ACK Error 应答错误:应答非常重要,如果接收器不向发送器发送显性电平,那就到不了EOF那一位,也就是说发送失败,报文需重新发送。发送失败又分几种形式: 1. 接受器在ACK时隙期间,除了向发送器发送电平,也会监视总线上的数据,如果数据与发送的数据不一致,那就表示发送失败。2. 在ACK时隙期间,如果发送器检测到ACK位依然是隐性位,那么发送失败。

DEL 界定符(Delimiter)ACK Del始终是隐性传输(图中灰线为逻辑“1”)。

EOF 结束位(End of Frame )7个隐性位代表数据帧的传输结束。

二、数据传输正确的条件下的应答过程(应答为positive):

bd271879f61e09f0023dcafb6a7ee49f.png
发送器(Sender)向总线发送报文

第一步,发送器(Sender)向总线发送报文,从上图中可以看出,报文从SOF一直传输到了数据段(Data Field)。此时只有发送器和总线上有数据传输。

8ac6cdc79a1f4217d21de9fa7a25e248.png
传输CRC 段

第二步,接着传输CRC 段。此时接收器上依然没有数据传输。

ce535669f62943db711df393dcc439dd.png
接收器要做出应答

第三步,到了ACK时隙段,接收器要做出应答。图中两个接收器给出的应答均为传输正确,从上图中可以看出接收器发送的ACK时隙段的信号为显性电平。此时接收器那儿开始有信号传输了。

bda7755f3abd9e6dc2579cc5611cb880.png
发送ACK界定符信号

第四步,发送ACK界定符信号。ACK界定符永远为隐性位。

660bc620f19e9e462adbe7ea54dab358.png
传输EOF

第五步,传输EOF,数据帧传输完成。

87bf1449d8f5eb66479774ff33ec572a.png
帧间隔ITM发送

第六步,帧间隔ITM发送,整个过程完毕。

三、CAN的其他帧。除了用于数据传输的数据帧之外,CAN还规定了其他的格式,例如远程帧 Remote Frame和错误帧Error Frame。

远程帧Remote Frame: 远程帧是一种帧类型,通过该帧类型可以从任何CAN节点请求用户数据,即数据帧。但是,这些几乎不用于汽车中,因为汽车里的数据基于信息生产者的主动性。

  • 远程帧可以用标准格式和扩展格式传输。

0524128b29570757f2064d5debf68b82.png
标准远程帧格式
  • 远程帧和数据帧的区别:

缺少数据字段外,远程帧的结构与数据帧的结构相对应。数据和远程帧之间的区别是使用RTR位(远程传输请求)。RTR显性位表明该帧是数据帧,隐性位表明该帧是远程帧。

  • 作用原理:

1. CAN节点一接收到ID与其自身数据帧的ID相同的远程帧,便会回复相应的数据帧。

2. 对于带有对象存储的CAN控制器,CAN控制器会自动应答远程帧。没有对象存储的CAN控制器必须通知主机,以便它可以启动响应。

3. 一般来说,远程帧的请求后紧跟相应数据帧的请求答案。但是,可以在请求和答案之间推送优先级更高的CAN消息。

错误帧 Error Frame:错误帧可用于发信号通知在通信过程中发现的错误。错误帧的传输伴随正在进行的消息传输的终止。

来源:所有图均来源于Vector官网 https://elearning.vector.com/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值