CANbus数据帧结构解析

 近期遇到CAN总线上错误帧的问题,花了些时间来了解CANbus数据帧的结构,利用工具也抓到了CANbus电压波形,在此来和大家分享一下。

CAN的全称是Controller Area Network,是ISO国际标准化的串行通信协议。因其高性能及可靠性,已被广泛应用于船舶、工业、医疗等领域。

下图为一张完整的CAN frame,其中绿线表示CAN_H,棕线表示CAN_L,蓝线表示电位差。

CANbus数据帧结构解析

CANbus数据帧结构解析

高速CAN中,CAN_H/CAN_L电压及显性/隐形的定义如下:

CANbus数据帧结构解析

下面就结合理论及实例展示来介绍帧结构中的各部分含义:

一、帧起始、帧结束


帧起始及帧结束在标准帧及扩展帧中都存在,在帧的首尾,用于界定一个数据帧。

CANbus数据帧结构解析

实例:帧起始

CANbus数据帧结构解析

实例:帧结束

CANbus数据帧结构解析

二、仲裁段

 

当总线上多个节点同时发送数据,应该先发送谁,后发送谁?由仲裁段来判决。

CANbus数据帧结构解析

CANbus数据帧结构解析

CANbus数据帧结构解析

可以看出,帧ID值越小,优先级越高。

实例:仲裁段

CANbus数据帧结构解析

三、控制段

控制段一共有6位,由扩展帧标志位IDE、保留位r、数据长度代码DLC组成,解释如下:

CANbus数据帧结构解析

实例:控制段

CANbus数据帧结构解析

四、数据段

一个数据帧传输的数据为0-8个字节,这种短帧结构使得CANbus的数据量小,发送和接收时间短,实时性高;同时被干扰的概率小,抗干扰能力强。

CANbus数据帧结构解析

实例:数据段

CANbus数据帧结构解析

五、CRC段

CRC校验用于CANbus的数据检错,CRC校验值存放于CRC段,CRC校验段由15位CRC值和1位CRC界定符构成。

CANbus数据帧结构解析

实例:CRC段

CANbus数据帧结构解析

六、ACK段

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

CANbus数据帧结构解析

实例:ACK段

CANbus数据帧结构解析

文中从帧起始、仲裁段、控制段、数据段、CRC段、ACK段、帧结束来展示了CANbus数据帧的结构,为了方便理解,插入了很多实例图片,也借用了很多网络的资料,希望有助于理解。

下一篇将会介绍,CAN通信帧的分类及CANbus上的错误类型。

–END–

CANbus数据帧结构解析

原文始发于微信公众号(电液爱好者):CANbus数据帧结构解析

原创文章,作者:iHydrostatics静液压,如若转载,请注明出处:https://www.ihydrostatics.com

(1)
上一篇 2021年1月15日 10:00
下一篇 2021年1月15日 12:52

相关推荐

发表回复

登录后才能评论
AI小静

静液压AI · 小静

静液压AI小静

立即扫码问小静吧

微信客服

微信专属客服 · 萌萌

一对一为您答疑解惑

客服二维码750X

立即扫码联系我吧

邮件咨询

邮件咨询

业务合作、咨询服务、建议投稿

admin@pulseforce.com.cn

分享本页
返回顶部