浅析STM32H7 FDCAN(一)

一,写在前面

目前STM32H7系列全部支持CAN_FD,现在互联网上的关于STM32 CAN_FD的内容基本没有,寥寥几篇也都是关于滤波器的,所以就决定来研究一下,这篇博客就抛砖引玉了,希望大家看完批评指正。

二,CAN,FDCAN简介

CAN是(Controller Area Network)的缩写,即控制器局域网络,属于工业现场总线,是ISO国际标准化的串行通信协议。
从OSI(Open System Interconnection开放系统互联)7层网络模型的角度来看,CAN现场总线仅仅定义了。
第 1 层(物理层)和第 2 层(数据链路层)。

FDCAN是(CAN with Flexible Data rate)继承了CAN总线的主要特性。CAN总线采用双线串行通讯协议,基于非破坏性仲裁技术,分布式实时控制,可靠的错误处理和检测机制使CAN总线有很高的安全性,但CAN总线带宽和数据场长度却受到制约。CAN FD总线弥补了CAN总线带宽和数据场长度的制约。

FDCAN与CAN_FD的关系 FDCAN是ST公司在编写库的时候取的名字。CAN_FD是发明这个总线协议的博世公司取的名字。

三,CAN与FDCAN的区别

要想弄清楚他们自己的区别,就需要了解他们的历史。

CAN:1986 年德国电气商博世公司开发出面向汽车的CAN 通信协议.

CAN_FD:随着人们对数据传输带宽要求的增加,传统的CAN总线由于带宽的限制难以满足这种增加的需求。此外为了缩小CAN网络(max. 1MBit/s)与FlexRay(max.10MBit/s)网络的带宽差距,2011年BOSCH公司推出了CAN FD 。

虽然CAN_FD在2011年就推出了,但是目前使用普及率以及资料寥寥无几。

CAN_FD和CAN对比的优势:

  1. CAN_FD全称是Flexible Data-Rate,意思就是帧报文中数据段波特率可变的特性,即仲裁段和数据控制段使用标准的通信波特率,而传输数据段时就会切换到更高的通信波特率,数据传输率可大于1Mbit/s,5Mbit/s(STM32H7目前最高支持5Mbit/s)。
    在这里插入图片描述

  2. 支持的数据长度更长
    经典CAN支持的数据长度为8个字节。CAN_FD对数据的最大长度做了扩充,最大支持64个字节。
    在这里插入图片描述

  3. 优化CRC。
    CAN FD为此在CRC算法上进行了优化与修改,将填充位加入到差错校验码中进行计算,也就是CRC以包含了填充位位流进行计算。确定从第一个填充位开始,序列中每4位就插入一个填充位用以分割,且该填充位就是上一位的反码。
    在这里插入图片描述
    当进行格式检查时,若填充位不是上一位的反码,就及时报错处理。而针对不同的数据场长度值,CAN FD会选择两种新BCH型CRC多项式。

在这里插入图片描述

  1. 控制场增加控制位
    在这里插入图片描述
    EDL(Extended Data Length)用于区分是否为CAN-FD帧:

    1.    隐性: 表示为CAN-FD 报文,并采用新的DLC编码和CRC算法。
    
    2.    显性: 表示为CAN报文
    

BRS(Bit Rate Switch)为位速率转换开关,用于切换Data-Phase的速率:

    1.    隐性:转换可变速率

    2.    显性:不转换速率

ESI(Error State Indicator)为错误状态指示位:

    1.    隐性:发送节点处于被动错误状态(Error Passive)

    2.    显性:发送节点处于主动错误状态(Error Active)

四,CAN_FD帧结构分析

为了区分经典CAN数据帧和CAN_FD数据帧,使用先前保留的位之一,该位称之为FD帧位。如果他是隐性值,则下列序列被解释为CAN_FD数据帧。如果他具有显性值,则它是经典数据或远程帧。在新引入的BRS(比特率开关)位中,当它具有阴性(r)值时,应用第二比特。如果它具有显性(d)值,则仲裁阶段比特时间设置也用于数据阶段。
在这里插入图片描述
SOF =帧起始,CRC =循环冗余校验,ACK =确认,EOF =帧结束,IMF =间歇字段

CAN_FD协议控制器还必须支持经典CAN帧。两种CAN协议(经典和CAN_FD)在ISO 11898-1:2015中都是国际标准化的。具有11位标识符的CAN FD数据帧使用FBFF(FD基本帧格式),具有29位标识符的CAN FD数据帧使用FEFF(FD扩展帧格式)。CAN FD协议不支持远程请求的数据帧。
在这里插入图片描述
RRS =远程请求替换,SRR =替代远程请求,IDE =标识符扩展,FDF =灵活数据速率格式,d =显性,r =隐性,r0 =保留

控制字段包括经典CAN数据帧不提供的附加位。FDF(FD格式)位指示FD帧格式的使用。在BRS(比特率开关)位的采样点处,执行比特率切换。这保证了最大的稳健性。以下ESI(错误状态指示符)位提供有关错误状态的信息:显性值表示错误活动状态。
在这里插入图片描述
IDE(标识符扩展),FDF(灵活数据速率格式),BRS(比特率切换;隐性,如果是备用比特率),ESI(错误状态指示;隐性,如果错误被动)

在CAN FD协议的标准化过程中,引入了一些额外的安全防护装置以提高通信可靠性。这就是CRC字段包括17位(对于有效载荷高达16字节的帧)或21位(对于大于16字节的帧)多项式和8位填充位计数器加上奇偶校验位的原因。CRC字段使用具有与前一位相反的值的固定填充位(FSB)。所有这些安全防护装置可确保在所有条件下都能检测到所有单一故障。即使检测到多个故障的可能性也得到了改善。
在这里插入图片描述

五,最后

  1. 本文由我个人编辑并整理,难免存在一些错误;
  2. 这一篇主要对CAN_FD进行了简要的说明;
  3. 后面逐步STM32H7系列的消息RAM以及滤波进行说明;
  4. 参考链接:https://www.can-cia.org/can-knowledge/can/can-fd/
    http://www.360doc.com/content/16/1212/12/30375878_614027257.shtml
  5. 仅供个人学习使用,禁止商用。
  • 18
    点赞
  • 79
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
STM32F429的时钟树是指单片机内部的各个时钟信号的分配和配置。根据引用\[2\]中提到的,STM32F429的时钟树是由RCC(复位和时钟控制)模块控制的。在时钟树中,SYSCLK是系统时钟,它是由PLL(锁相环)倍频后的时钟信号提供的,最高可达180MHz。引用\[3\]中提到,如果只使用外部晶体振荡器(HSE)作为时钟源,系统运行速度会很慢,为了加快运行速度,需要使用PLL进行倍频。需要注意的是,如果使用内部振荡器(HSI)作为时钟源,PLL将失去作用。因此,通过配置RCC模块,可以选择合适的时钟源和倍频因子来配置STM32F429的时钟树。 #### 引用[.reference_title] - *1* *3* [【STM32】F429单片机的时钟系统浅析](https://blog.csdn.net/weixin_43414694/article/details/109682528)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [STM32F429--RCC时钟树](https://blog.csdn.net/ABCisCOOL/article/details/106209406)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值