CAN-帧定义

文章内容来自:CAN总线的特点和帧结构

CAN 总线数据收发的基本单位是帧。

CAN 报文的发送基于优先级。

发送优先级根据CAN ID确定。

CAN协议帧主要有4种类型:数据帧,遥控帧,错误帧,超载帧。

其中,数据帧主要承载ID+数据,遥控帧用于请求某ID的数据,错误帧用于传输出错时通知,超载帧用于告知当前帧传输已超出CAN传输速率负载。

具体介绍如下:

目录

数据帧——7个不同段组成

帧起始 SOF

仲裁段 ID

控制段

数据段

CRC循环冗余校验段

应答段

EOF 帧结束

远程帧

错误帧

超载帧


数据帧——7个不同段组成

用于:发送单元向节后单元传送数据的帧

组成:帧起始 SOF,仲裁段ID,控制段,数据段,CRC段,帧结束EOF

帧起始 SOF

1个显性位

仲裁段 ID

分为标准格式和扩展格式

标准格式包含:11位标识符+远程发送请求RTR=0

img

 

扩展格式包含:29位标识符,SRR位,IDE位,RTR位

IDE:保证标准遥控帧的优先级高于扩展遥控帧;标准格式下,取值显性电平0

SRR:保证标准数据帧的优先级高于扩展数据帧;替代远程请求(Substitute Remote Request,SRR)位为隐性

RTR:保证数据帧优先级高于遥控帧;远程发送请求RTR——RTR位在数据帧里必须为“显性”,而在远程帧里必须为“隐性”。它是区别数据帧和远程帧的标志。

控制段

  • 6bit

  • r0 r1预留为0,接收到为1时(如果DLC为9-15,统一处理为8)

  • DLC表示数据段的数据长度: 0-8字节

数据段

  • 0-8字节(每个字节8bit)

  • 从最高位发送

CRC循环冗余校验段

用于校验数据是否正确发送

  • CRC序列 15bit

    • 根据多项式生成,计算范围(SOF,仲裁段,控制段,数据段)

  • CRC界定符 1bit(用于分隔)——恒为隐性

应答段

用于确认是否正常接收。

组成:应答间隙 1bit ,应答界定符 1bit

使用:发送单元(发送2个隐性bit),接收单元(正确接收时, 发送1个显性bit+1个隐性bit)

EOF 帧结束

7个隐性位

远程帧

作用:通过发送遥控帧(或远程帧),需要数据的节点可以请求另一节点发送相应的数据帧,如下图。数据帧和相应的远程帧是由相同的识别符( ID)——仲裁场命名的。

  • img

帧格式与数据帧基本相同,以下几点不同:

  • 没有数据场

  • 远程标志位RTR=1 隐性

  • 没有标准帧,扩展帧之分

错误帧

作用:当检测出错误时,向其他单元通知错误的帧

功能:错误检测,错误通知,错误恢复

  • 错误检测功能:所有的节点都可以检测错误(错误检测功能)。

  • 错误通知功能:检测出错误的节点会立即同时通知其他所有节点(错误通知功能)。

  • 错误恢复功能:检测CAN上的错误,累积一定次数,传送的报文立即停止。出错的节点,会强制结束当前的发送,退出总线,进入BusOff状态。强制结束发送的节点会不断反复地重新发送此消息直到成功发送为止(错误恢复功能)。

五种错误:

  • 位错误:收发器检测,if发出的数据位与检测的位不一致。

  • 位填充错误:CAN总线对报文填充,如果5个相同电平,则对其填充一个反向。6个相同电平的位,则出错

  • CRC错误:发送端发送时计算CRC,并发给接收端,接收端根据接收数据计算CRC,并对比接收到的CRC,if不一致

  • 帧格式错误:报文不符合‘场’的格式

  • 应答错误:if应答间隙is隐性,即代表无应答节点

超载帧

作用:用于接收单元 通知 其尚未做好接收准备的帧

组成:超载标志6个显性位,超载界定符8个隐性位

触发条件:

  • 接收器未准备就绪

  • 间歇场检测到显性位

  • 1
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

picoasis

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值