打印
[应用相关]

STM32H7的CAN FD教程笔记

[复制链接]
1409|46
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
CAN FD(CAN with flexible data-rate)是CAN2.0协议的扩展,CAN-FD由博世开发,并由 ISO 11898-1:2015标准化。

目录

一、CAN FD协议介绍

二、CAN-FD相比CAN2.0的提升

三、CAN FD协议介绍

四、RAM管理

五、RAM过滤区

六、接收区

七、发送区

八、测试模式

九、FDCAN时钟校准

十、FDCAN相比标准bxCAN的提升
————————————————

使用特权

评论回复
沙发
裤脚口感好|  楼主 | 2021-8-6 12:52 | 只看该作者
一、CAN FD协议介绍
1、CAN-FD特性

(1)兼容经典CAN,可以遵循ISO 11898-1做数据收发。
(2)提升错误检测,支持高达CRC 21位的校验和。
(3)消息优先级。
(4)保证延迟时间。
(5)配置灵活性。
(6)具有时间同步的组播接收。
(7)系统范围内的数据一致性,每条消息最多64个字节。
(8)多主机。
(9)错误检测和信号。
(10)区分节点的临时错误和永久性故障以及自动关闭缺陷节点。

使用特权

评论回复
板凳
裤脚口感好|  楼主 | 2021-8-6 12:52 | 只看该作者
2、CAN-FD格式:

使用特权

评论回复
地板
裤脚口感好|  楼主 | 2021-8-6 12:53 | 只看该作者
第一个仲裁阶段(The first arbitration phase)是一条消息,其中包含:
(1)帧开始(SOF)。
(2)ID号和其他位,指示消息的目的(提供或请求数据),以及速度和格式配置(CAN或CAN-FD)。

使用特权

评论回复
5
裤脚口感好|  楼主 | 2021-8-6 12:54 | 只看该作者
数据传输阶段(The data transmission phase)包括:
(1)数据长度代码(DLC),指示消息包含多少数据字节。
(2)用户希望发送的数据。
(3)检查循环冗余序列(CRC)。
(4)显性位。

使用特权

评论回复
6
裤脚口感好|  楼主 | 2021-8-6 12:54 | 只看该作者
第二个仲裁阶段(The second arbitration phase)包含:
(1)总线上其他节点发送的确认(ACK)的接收器(如果至少有一个接收器成功收到消息)
(2)帧尾(EOF),在IFS期间不传输任何消息:目标是将当前帧与下一帧分开。

使用特权

评论回复
7
裤脚口感好|  楼主 | 2021-8-6 12:55 | 只看该作者
注意:对于29bit标识符帧,当添加18bit标识到第1个仲裁阶段的IDE bit之后与标准CAN FD是类似的。

使用特权

评论回复
8
裤脚口感好|  楼主 | 2021-8-6 12:56 | 只看该作者
二、CAN-FD相比CAN2.0的提升
CAN-FD的开发可以满足需要更高带宽的通信网络需求。每帧最多具有64个字节的CAN-FD以及将比特率提高到最大的可能性,使数据阶段要快8倍,在第二个仲裁阶段要恢复到正常的比特率。通过以下方式确保数据传输的完整性:

使用特权

评论回复
9
裤脚口感好|  楼主 | 2021-8-6 12:56 | 只看该作者
(1)17级多项式对最大16字节的有效载荷进行CRC。

使用特权

评论回复
10
裤脚口感好|  楼主 | 2021-8-6 12:57 | 只看该作者
(2)21级多项式对16到64字节之间的有效载荷进行校验。

使用特权

评论回复
11
裤脚口感好|  楼主 | 2021-8-6 12:58 | 只看该作者
标准帧和CAN FD的区别:

使用特权

评论回复
12
裤脚口感好|  楼主 | 2021-8-6 12:59 | 只看该作者
标识符后,CAN 2.0和CAN-FD具有不同的作用:
(1)CAN 2.0发送RTR位以精确确定帧类型:数据帧(RTR为主要)或远程帧(RTR)是隐性的)。
(2)由于CAN-FD仅支持数据帧,因此始终发送占优势的RRS(保留)。

使用特权

评论回复
13
裤脚口感好|  楼主 | 2021-8-6 13:00 | 只看该作者
IDE位保持在相同位置,并以相同的动作来区分基本格式(11位标识符)。请注意,在扩展格式的情况下,IDE位以显性或隐性方式传输(29位标识符)。

使用特权

评论回复
14
裤脚口感好|  楼主 | 2021-8-6 13:00 | 只看该作者
与CAN 2.0相比,在CAN-FD帧中,在控制字段中添加了三个新位:
(1)扩展数据长度(EDL)位:隐性表示帧为CAN-FD,否则该位为显性(称为R0)在CAN 2.0帧中。
(2)比特率切换(BRS):指示是否启用两个比特率(例如,当数据阶段位以不同的比特率传输到仲裁阶段)。
(3)错误状态指示器(ESI):指示节点处于错误活动模式还是错误被动模式。

使用特权

评论回复
15
裤脚口感好|  楼主 | 2021-8-6 13:01 | 只看该作者
控制字段的最后一部分是数据长度代码(DLC),它具有相同的位置和相同的长度(4位),用于CAN 2.0和CAN-FD。 DLC功能在CAN-FD和CAN 2.0中相同,但CAN-FD有很小变化(下表中的详细信息)。 CAN-FD扩展帧允许单个消息中发送64个数据字节,而CAN 2.0有效负载数据最多可以发送8个字节。

使用特权

评论回复
16
裤脚口感好|  楼主 | 2021-8-6 13:01 | 只看该作者

使用特权

评论回复
17
裤脚口感好|  楼主 | 2021-8-6 13:02 | 只看该作者
通过增加有效载荷数据的数据字段来改善网络带宽,因为需要更少的包处理。 同时,通过为CRC添加更多位来增强消息完整性:
(1)如果有效载荷数据最多为16个字节,则CRC以17位编码。
(2)如果有效载荷数据大于20(16)个字节,则CRC以21位编码。

使用特权

评论回复
18
裤脚口感好|  楼主 | 2021-8-6 13:03 | 只看该作者

使用特权

评论回复
19
裤脚口感好|  楼主 | 2021-8-6 13:05 | 只看该作者
三、CAN FD协议介绍
STM32H7的CAN FD符合ISO 11898-12015标准。

STM32器件上的FDCAN的功能如下所示:
(1)符合CAN协议2.0版A,B和ISO 11898-1:2015,-4。
(2)可访问的10 KB RAM内存,最多可分配2560个字。
(3)改进了接收过滤。
(4)两个可配置的接收FIFO。
(5)多达64个专用接收缓冲区。
(6)接收高优先级消息时的单独信令。
(7)多达32个专用发送缓冲区。
(8)可配置的发送FIFO和发送队列。
(9)可配置的发送事件FIFO。
(10)时钟校准单元。
(11)收发器延迟补偿。

使用特权

评论回复
20
裤脚口感好|  楼主 | 2021-8-6 13:05 | 只看该作者
下图说明了FDCAN框图。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

32

主题

238

帖子

0

粉丝