这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 行业应用 » 汽车电子 » 【CAN】CAN 通讯帧格式解析

共1条 1/1 1 跳转至

【CAN】CAN 通讯帧格式解析

高工
2026-08-07 08:22:32     打赏

【简介】

在汽车电子中CAN通讯的了解是不可避免的,我们今天就结合实际的数据了解下CAN通讯的数据帧的格式。在之前我们已经使用S32K3 完成了芯片的CAN 收发功能验证。

【S32K3XX】FlexCAN RAM 资源分配整理

【S32K3XX】FlexCAN 模块配置使用

【S32K3XX】FlexCAN MB 发送状态机机制

【S32K3XX】FlexCAN MB 报文发送流程代码梳理


在开始之前我们先看下CAN协议标准中对帧数据格式的说明,本地使用的CAN FD通讯方式。

标准的数据帧格式如下:

image.png


  从上述图片可知,CAN 数据帧 包含帧起始/仲裁域/控制域/数据域/CRC/ACK/帧结尾 组成,首先我们抓取逻辑分析仪的数据来分析CAN 数据帧 。

本地的CAN FD 参数为 500K + 2M  本地抓取的  START OF FRAME    长度为2us 和500K的频率也是保持一致的。

image.png

帧起始位 后按照协议对应的仲裁域,CAN 总线如果同时CAN消息在往总线发送时会根据ID的来进行仲裁ID小的获取总线的使用权,仲裁失败的节点转为接收数据,以下是本地发送0x320 CAN 报文的仲裁域的数据。

image.png

本地发送到0320 的CAN 报文在ID仲裁段查看数据发现后面多了一个1

image.png

这是因为CAN标准定义如果连续6个相同的电平会被认为是错误帧,所以连续5个相同的电平会加入一个反向电平,以下是错误帧的数据格式说明。

image.png

image.png

以下是标准帧和扩展帧的数据格式说明

image.png

标准帧帧11bit 的帧ID后RTR 为代表是否为远程帧,IDE 代表为扩展帧,R0保留位为0,以下为本地发送的0X320报文的对应段的信息。

image.png

控制域后面对应的数据域本地的标准帧发送时对应的DLC 和 数据的内容。

image.png

在之后对应的CRC 域,对应的CRC 数据段如下。

image.png

image.png

image.png

CRC 域结束后会有一个位时间的隐性高电平,其他节点要在ACK Slot 窗口内进行ACK的应答。

CRC 段之后为应答场,本地的ack  和帧结束标记。

image.png

image.png

ACK 和 帧结尾的说明 如上,帧结尾为7个“隐形”电平1

image.png

本地实测一帧 500K CAN 数据帧总线的占用时间为240us 左右。

image.png

500K + 2M 的64字节的报文的总线占用时间为382 us 左右。

image.png



           


共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]