CAN-FD(CAN With Flexible Data-Rate)

1 概述

CAN-FD继承了传统CAN总线的主要特性,使用改动较小的物理层,双线串行通信协议,依然基于非破坏性仲裁技术,分布式实时控制,可靠的错误处理和检测机制,在此基础上对带宽和数据长度进行优化,将逐步取代传统CAN成为下一代主流汽车总线系统,与车载以太网搭配构建未来汽车的网络骨架。

考虑到 CAN 作为工业测控底层网络,其信息传输量相对较少,信息传输的实时性要求较高,网络连接方式相对较简单,因此,CAN 总线网络底层只采用了 OSI 7 层通信模型的最低 2 层,即物理层和数据链路层,而在高层只有应用层。CAN 的数据链路层又分为逻辑链路控制(LLC)子层和媒体访问控制(MAC)子层。物理层定义信号怎样传输,完成电气连接,实现驱动器/接收器特性;

MAC 子层(核心):传送规则,即控制帧结构、执行仲裁、错误检测、出错标定和故障界定

LLC子层的:报文滤波、超载通知和恢复管理。

物理层和数据链路层的功能可由 CAN 接口器件来完成。应用层的功能是由微处理器完成的。在ISO 11898中对 CAN 协议层级与 OSI模型层级的关系进行了说明,图 1 描述了 CAN 协议中数据链路层和物理层与 OSI模型的关系。

背景:车联网、V2X 和自动驾驶对汽车网络高带宽、低延迟的高要求,使得以传统CAN为骨架的汽车网络架构已逐步退出历史舞台。车载以太网技术的发展为高带宽提供了可能性,但车载以太网由于其点对点通信和非实时的协议特性使其无法满足车控功能对高实时性和一对多通信的需求,而 CAN-FD 基于传统CAN 的核心特征,继承了总线仲裁和广播通信特性,非常适用于车控信息的交互。利用 CAN-FD 与车载以太网的协议特征,主机厂已构建出以CAN-FD和车载以太网为网络骨架的新一代智能汽车的网络架构

2011年,开始CAN FD协议的开发,2015年ISO11898-1进行了修订,将CAN FD加入其中

2 CAN-FD优势分析

2.1 传输速率更快(数据段2Mbps/5Mbps/8Mbps)

FD全称是 Flexible Data-Rate,顾名思义,表示CAN-FD 的帧报文具有数据场波特率可变的特性,即仲裁场合数据控制场使用标准的通信波特率(最大8Mbps),而到数据场就会切换为更高的通信波特率(最大10Mbps),车端常用的为2Mbit/s和5Mbit/s,从而达到提高通信速率的目的。

CAN FD的速率可变,从控制场中的BRS位到ACK场之前(含CRC分界符)为可变速率,最高速率可达到8Mbps(下图的蓝色部分)。其他部分与CAN相同。

CAN FD帧采用了两种位速率:从控制场中的 BRS 位到 ACK 场之前(含 CRC 分界符)为可变速率,称为数据波特率,最高可达8Mbps;其余部分为原 CAN总线用的速率,称为仲裁波特率,最高可达1Mbps。两种速率各有一套位时间定义寄存器,它们除了采用不同Tq外,位时间的4个段的分配比例也可以不同。

注:商用车:数据场目前只用了8个字节,数据段2Mbps(目前大规模使用2兆比特每秒(megabits per second,mbps)波特率的canfd总线),仲裁场500kbps。整个CANFD最大速率理论上是1.83M,但由于只用了8个byte,目前是1.25M。

2.2 有效数据场更长(数据场最大64bytes)

CAN FD兼容CAN的数据格式,同时最大还能支持12, 16, 20, 24, 32, 48, 64byte。

传统CAN报文标准帧的有效数据场只有8bytes,每帧携带的数据量很少,CAN-FD 对有效数据场的长度进行了很大的扩充,标准帧的有效数据场最大可达到64bytes,大大提高了每帧报文中所能携带的数据量。

2.3 更小的改动(CANFD对传统CAN兼容)

CAN-FD保留了传统CAN总线协议的核心特征,这使得在ECU和收发器等硬件层面上相较于车载以太网更易实现和应用,且由于CAN-FD与传统CAN对物理层的要求基本一致CAN-FD的 ECU 和收发器对传统CAN兼容,OEM不论是采用直接升级为CAN FD总线的方案还是在切换过渡的阶段先采用混网的方案,在技术实现和开发成本控制层面都可以达到预期。

根据CAN FD协议,其兼容CAN2.0,意味支持在协议层面,CAN与CAN FD是可以共存与一个网络的,只不过CAN FD节点可以接收CAN报文,而CAN节点不能接收CAN FD报文

CANFD可以兼容传统CAN,但传统CAN无法兼容CANFD。

CAN-FD在产品车型上的应用

例子:ADAS使用CANFD

前情概述

某车型CAN-FD部分主要实现ADAS自动驾驶和动力车控等功能,ADAS 功能分为驾驶智能辅助功能和自动驾驶功能,包括拨杆换道、自动换道、自适应巡航、高速代驾、拥堵跟车、自动泊车等基本或高阶的功能,涉及到 ADAS 域控制器与感知传感器、底盘、动力等执行控制器的控制交互。

1、ADAS使用CANFD的原因:

随着ADAS 功能水平升级,这些 ADAS 功能的实现对网络通信有着更高性能、低时延、高带宽及ASIL B+的功能安全要求,传统CAN通信已无法满足。一汽红旗在本车型上首次应用 CAN-FD 搭建 ADAS 等域的网络架构,实现 ADAS 域控制器与感知控制器及执行控制器之间的高实时性和稳定性的通信传输。

2、方案设计:

将 ADAS 功能相关的报文分为 2类,控制类和感知类。再根据每个单元功能的功能安全ASIL等级确定每条报文和信号的ASIL等级,进而制定每条信号的E2E校验策略(即端到端数据验证,如CRC校验和计数)。由于舒适娱乐采用传统CAN的网络骨架,所以在中央网关中做了 CAN 转 CAN-FD(CAN-FD 转 CAN)的功能设计,并对网关做了功能安全冗余设计,网关功能安全设计内容在此不做赘述。

3.1 设计实现

3.1.1 网络拓扑设计

网关:实现 CANFD-CAN 路由功能、CAN-CANFD 路由功能;

ADAS 域控制器: ADAS 规划决策功能;ADAS 感知控制器实现环境感知和定位功能;

动力域控制器:动力分配和控制功能;

底盘域控制器:制动和转向功能。

3.1.2 路由策略设计

(1)CAN----->CANFD

考虑到传输效率,

1、网关将接收到的多个 CAN 报文打包到一个 CAN-FD 报文中进行发送。(可以组包、不组包)

2、CAN-FD中每8个bytes与传统CAN报文相对应,保证报文矩阵的可扩展性和打包解析的便利。

3、每连续的8 bytes中至少预留32 bits用于未来功能的扩展。

网关可以将多条报文进行组包后转发,也可以不组包单报文转发;

单报文转发(不组包,报文路由)

              1、仅改变源网段报文的ID和报文类型(帧结构和传输速率)

               2、不改变数据场里信号的位置和数据场长度(DLC),这种转发形式称为报文路由

               3、直接路由可以通过底层软件自己完成,不需要上层软件的参与,路由时间延迟低,一                       般可控制器在2 ms以内

(2)CANFD----->CAN

CAN-FD到CAN总线的消息转发需要将DLC长达64 bytes的CAN-FD的消息帧拆分为多个DLC最长为8 bytes的CAN消息帧,需要数据场中的信号拆分重组,改变报文的ID、报文类型、DLC长度以及信号位置,这种路由方式称为信号路由信号路由过程需要上层软件的参与,路由时延相比报文路由要高一些,想实现功能安全,网关也需要做更多的安全冗余设计工作。

3.1.3 CANFD通信性能验证

搭建了台架对 CAN-FD相关节点进行了一致性测试和硬件在环(Hardware In the Loop,HIL)验证,在网络的关键性能指标如总线负载率、吞吐量、平均时延和峰值时延、网络利用率和网络效率都得出了不错的结果数据。

CAN和CANFD组网

4.1 经典CAN网络加入CAN FD节点

当整车电子电器架构由原有的经典CAN网络拓扑升级到支持CAN FD的网络拓扑时,节点的软/硬件均需要有所改变。CAN的网络拓扑升级如下所示:

4.1.1硬件改变

经典 CAN节点想升级CANFD节点:
①需要硬件改变(收发器选型、控制器选型:选出支持CAN FD的CAN控制器和收发器),
②软件更新(如果新的CAN FD控制器和收发器需要特定的驱动程序或固件来支持CAN FD功能,那么软件更新就不可避免):这可能包括更新嵌入式系统中的CAN驱动程序,配置新的CAN FD参数(如数据速率、帧大小等),以及更新使用CAN通信的应用程序或协议栈。
①硬件改变详解:
1、Transceiver选型

因为CAN FD的数据段支持更高的通信速率(eg:2000Kbps),意味着Transceiver可以进行更快的数(Digital)/模(Analog)信号的转换,所以,如果要支持CAN FD报文,对于CAN FD节点,Transceiver选型中,要选择支持CAN FD的收发器。eg:TLE6250(不支持CAN FD),不能选用,NXP TJA1145(支持CAN FD),可以选用

2、Controller选型

一般,CAN Module(主要指CAN Controller)集成在主芯片中,所以,选择主芯片时,需要选择支持CAN FD通信的芯片。就目前常用的主流芯片(eg:英飞凌、瑞萨、ST等),几乎都支持CAN FD通信。

网络拓扑增加CAN FD节点,不能仅增加一个CAN FD节点,如果仅增加一个CAN FD节点,意味着这个CAN FD节点发送的CAN FD报文,没有对应的接收节点,也就会造成No Ack错误,总线上出现错误帧。

注意:支持CAN FD报文的网络,需要至少两个通信CAN FD节点。

②软件更新详解:

如果新的CAN FD控制器和收发器需要特定的驱动程序或固件来支持CAN FD功能,那么软件更新就不可避免):这可能包括更新嵌入式系统中的CAN驱动程序,配置新的CAN FD参数(如数据速率、帧大小等),以及更新使用CAN通信的应用程序或协议栈。

4.1.2 软件改变(改传统CAN报文ID的过滤)

CANFD、CAN在同一个网段:CAN节点要软件改变(过滤掉CANFD报文)

组网网段中若有传统CAN节点,该节点无法升级到CANFD,那需要设置CAN节点的报文过滤,把CANFD报文过滤掉。

Can节点不能接收canfd报文,所以can和canfd同时组网,要把can控制器设置过滤掉canfd报文

需要Classic CAN节点(即传统CAN节点 ,因为传统CAN节点不支持CANFD报文)设置CAN ID的过滤功能,否则,Classic CAN节点会将CAN FD报文数据段按照传统CAN速率采样,进而可能造成数据采样错误,发送错误帧,影响总线通信。

为了降低CPU的负载,在开发中,会对总线报文进行过滤(Filter)设置,即:节点只接收需要的报文,忽略非相关报文。

过滤的实质是将与节点不相关的报文丢弃,只有数据相关才放入接收缓冲区,也就是邮箱。

从ID开始过滤,如果ID不同,则ID之后的数据,节点不在接收。

4.1.3 总结

1、网络升级策略:
        对于大型网络或系统,逐步升级可能是一个更明智的选择。例如,可以先升级部分节点到CAN FD,同时保持其他节点仍使用传统的CAN。这时,需确保CAN FD节点能与传统CAN节点正常通信,或者至少不会干扰它们的通信。可能需要使用网关或桥接设备来实现不同协议间的转换。

2、CAN节点想升级CANFD节点:

        ①需要硬件改变(收发器选型、控制器选型:选出支持CAN FD的CAN控制器和收发器),

        ②软件更新(如果新的CAN FD控制器和收发器需要特定的驱动程序或固件来支持CAN FD功能,那么软件更新就不可避免):这可能包括更新嵌入式系统中的CAN驱动程序,配置新的CAN FD参数(如数据速率、帧大小等),以及更新使用CAN通信的应用程序或协议栈。

3、CANFD、CAN在同一个网段:

        第一步:CAN需要过滤掉CANFD报文

                        法一:CAN节点要软件改变实现过滤报文

                        法二:将原有的CAN收发器替换成带有CAN FD shield功能

        第二步:CAN与CAN FD报文的仲裁段的速率必须是相同速率

        注意:支持CAN FD报文的网络,需要至少两个通信CAN FD节点——>因为如果仅增加一个CAN FD节点,意味着这个CAN FD节点发送的CAN FD报文,没有对应的接收节点,也就会造成No Ack错误,总线上出现错误帧。

法二的CAN FD shield实现具体过程例子:

Classic CAN的FDF位为显性(0),CAN FD报文的FDF位为隐性(1)

第一步:首先ECU1开始发送CAN FD报文,当CAN节点的物理层检测到FDF = 1(意味着收到的报文为FD报文)时,带有CAN FD shield功能的收发器将CAN节点的接收引脚强制拉低

CAN节点简单到FDF=1后,将RX强制拉低

第二步:同时CAN节点发送错误帧(6个显性位+错误标识符,因为发生了填充错误),但是该错误帧不会体现至总线上,会被收发器阻塞,因此不会影响局域网内其他节点的CAN FD报文正常收发。(发送完错误帧后,此时CAN节点应发送隐性位并监控总线,直到检测到隐性位。然后,它将开始发送另外七个隐性位。)

CAN节点发送错误帧,被收发器阻塞

第三步:当CAN节点检测到一个隐性位后,将CAN节点的RX引脚释放,并且发送7个连续的隐性位,总线进行重新同步,准备下一次的发送

CAN节点释放RX引脚,总线重新同步

4.2 CAN和CAN FD的ID可以相同

Can和canfd可以id相同,是针对canfd控制器说的(即同时可以接受can和canfd)

在11898的规范中,CAN和CAN FD报文格式不同,

所以,即使ID(IDentifier)相同,CAN和CAN FD报文也不是相同的报文。所以,两者可以在一个网段内共存,且不会影响对应节点的接收

提示:由于Classic CAN的FDF位为显性(0),CAN FD报文的FDF位为隐性(1),因此,在CAN仲裁过程中,当CAN和CAN FD的ID相同时,根据"线与"规则,CAN报文优先抢占总线使用权。(传统CAN优先级高于CANFD)

4.3 采样点对通信速率的影响

CAN通信质量的好/坏,需要合理的采样点保证。不管是CAN或者CAN FD,开发或者测试中,要严格按照需求设置采样点,否则,可能导致节点发送错误帧,影响总线通信。

要分别设置仲裁段、数据段的采样点

CAN FD在位速率较小的仲裁场和位速率较大的数据场分别采用了两个不同的采样点。、

CAN FD数据场的位速率视报文的BRS位(Bit rate switch)而调整——当BRS位检测为隐性时,CAN FD的位速率将从仲裁场的最小位速率切换为数据场的数据位速率,这一位速率将持续至CRC界定符的采样点。因此在测量CAN FD采样点时应避免对BRS和CRC界定符进行干扰。

4.4 CAN FD的第二采样点SSP(用于节点发送报文在数据段检测位错误,数据段在SSP处进行位错误的检测

不同于采样点,第二采样点在CAN FD控制器接收其他节点发送报文的过程中并不会起到任何作用。第二采样点的作用,是在不改变传输延迟补偿的情况下,实现CAN FD数据场的位错误检测要求

位错误的检测要求发送节点对总线状态进行回读。(除了仲裁区、ACK位外)

传统CAN总线在设计之初考虑到了信号在总线上的传播时延以及发送节点TXD和RXD之间的处理时延,这两种时延通过位时间的传播段实现补偿,进而保证了发送节点在发送一个比特期间也能从总线上回读到这个比特。

ISO 11898-5规定传输时延的上限为255 ns。位速率为8 Mbps的CAN FD节点的位时间为125 ns。以极限状态下1个位时间由8个Tq组成来计算,单位Tq为15.625 ns。即传输时延需要17个Tq来补偿。显然一个位时间完全不够来补偿传输时延(传输延时上限255ns,而位时间才125ns,一整个位时间都不够补偿传输延时的)。(总结:CANFD波特率太高,引起位时间太短,导致传输时延Tprop无法补偿)

解决方法有两种:

1、增大位时间,增大传播段的Tq组成数量,但是这种方法会降低位速率,因此和CAN FD高速目标相冲突

2、采用传输时延补偿,即在发送节点回读总线状态时引入一段传输时延补偿,进而保证位错误检测的需要。而引入这段传播时延补偿的结果即为第二采样点(secondary sample point,缩写 SSP)。

SSP对于CAN FD控制器的重要性不言而喻,它是保证控制器在数据段实现位错误检测功能的关键。使用SSP的发送节点会忽略它在采样点检测到的位错误。但是如果在SSP检测到位错误,发送节点将会在下一个采样点对检测到的位错误发出错误帧。

如果发送速率不断的提高,接收器在回采的时候,发送器都已经发送第二个Bit数据了怎么办?这是本文讨论的核心,CANFD的数据段速率提高到2Mbps以后,采样点如果还是传统的采样方式将使得采样不准。

SSP:第二采样点(secondary sample point),是对CANFD数据段采样提出的概念,是为了补偿环路延时(发送器和接收器延时)定义的一个辅助采样点。

第二采样点在CAN FD控制器接收其他节点报文过程中并不会起到任何作用。第二采样点的作用,是在不改变传输延迟补偿的情况下,实现CAN FD在数据场的位错误检测要求

在仲裁阶段,禁止使用延时补偿仲裁阶段的通信速率500kbps,采样精度所受影响较小。SSP位置是CANFD的TX到RX的延时之和+CANFD TDCR.TDCO偏移补偿。

这里多提一些:在需求里如果看到要求设置3个采样点,说明当前节点可以处理经典CAN和CANFD两种报文类型。举例:对于经典CAN要求所有段采样点SP=85%,对于CANFD要求仲裁段SP=80%,数据段SSP=75%。这就是三个采样点的需求。

ecu的接收数据的引脚(receive external data,rxd)端发送比特位的回读采样涉及传输延迟补偿(transmitter delay compensation,tdc)。

个人理解总结:

1、位检测时发送方要对总线上的比特位进行回读,跟自身发送的比特位做对比,如果不一致则会报位错误。而收发器的发射器和接收器是两个独立的硬件,他们之间是有延时的。

2传统CAN:延时可通过位时间的传播段实现补偿。

3、CANFD:数据场速率太快,导致位时间过短。位时间过短导致通过位时间的传播段无法满足补偿。所以需要设定SSP第二采样点,在SSP处进行CANFD数据场的位错误检测

5 CANFD帧结构

CAN FD没有远程帧。

1)对比标准格式的数据帧:

2)对比扩展格式的数据帧如下:


 

通过上述比较,不难发现,不同点主要在于:   

  • 仲裁段:CAN FD用RRS位替换了RTR位(用于区别标准帧与远程帧),为常显性。经典CAN帧中的RTR用于区别标准帧与远程帧,在CAN FD帧中被RRS替换,因此CAN FD中没有远程帧了。

  • 控制段:CAN FD帧中增加了3个控制位,FDF(FDF位为0时为传统报文,FDF为1时为CANFD报文)、BRS和ESI。

  • CRC段:CAN帧中CRC段15位,而CAN FD帧中CRC段能扩展到21位或25位。

关于控制段,FDF(Flexible Data Rate Format):常为隐性,表示CAN FD报文

BRS(Bit Rate Switch):位速率转换开关。

当BRS为显性位时,数据段的位速率与仲裁段的位速率一致;当BRS为隐性位时,数据段的位速率高于仲裁段的位速率。   

ESI(Error State Indicator):错误状态指示位,在CAN帧中发送节点的错误状态只有自己知道,而CAN FD帧中可通过ESI告诉其他节点自己的错误状态。

当ESI为隐性位时,表示发送节点处于被动错误状态;

当ESI为显性位时,表示发送节点处于主动错误状态。

关于CRC段,在CAN帧中CRC段是15位,而在CAN FD帧中,当传输数据为不超过16字节时,CRC段是17位;当传输数据超过16字节时,CRC段是 21位。这是因为随着数据段的扩大,为了保证信息的发送质量,CAN FD帧的CRC计算需要涵盖数据段的位。

CRC段还包括填充位计数器,由格雷码位(前3位)和奇偶校验位(最后1位)

CAN FD帧采用改进的CRC计算方法和填充位计数器,提高了错误检测能力,增强了数据的完整性和可靠性。

CAN FD数据帧结构与CAN一样,一共有:帧起始SOF,仲裁段,控制段,数据段,CRC段,ACK段,帧结束,共7个部分。

CAN FD的速率可变,从控制场中的BRS位到ACK场之前(含CRC分界符)为可变速率

5.1 帧起始

CAN FD与CAN使用相同的SOF标志位来标志报文的起始。帧起始由1个显性位构成,标志着报文的开始,并在总线上起着同步的作用

5.2 仲裁段

与传统CAN相比,CAN FD取消了远程帧,用RRS位替换了RTR位(用于区分数据帧和远程帧),为常显性IDE位仍为标准帧和扩展帧标志位,若标准帧与扩展帧具有相同的前 11 位 ID,那么标准帧将会由于 IDE 位为 0,优先获得总线。

CAN FD标准帧ID长度可扩展至12bit,CAN的标准帧ID为11bit。

5.3 控制段

控制段中CANFD与CAN有着相同的IDE,res,DLC位。同时增加了三个控制bit位,FDF、BRS、ESI。

FDF(Flexible Data Rate Format):原CAN数据帧中的保留位r。FDF常为隐性,表示CAN FD 报文。

BRS(Bit Rate Switch):位速率转换开关,当BRS为显性位时数据段的位速率与仲裁段的位速率一致,当BRS为隐性位时数据段的位速率高于仲裁段的位速率。

ESI(Error State Indicator):错误状态指示,主动错误时发送显性位,被动错误时发送隐性位。

DLC同样是4bit表示数据段的长度,对应的关系如下:

5.4 数据段

CAN FD不仅能支持传统的0-8字节报文,同时最大还能支持12, 16, 20, 24, 32, 48, 64字节

5.5 CRC段

CAN FD对CRC算法进行了改进,CRC对填充位也加入了计算。在校验和部分为避免有连续位超过6个,就确定在第一位以及以后每4位添加一个填充位加以分割,这个填充位的值是上一位的反码,作为格式检查,如果填充位不是上一位的反码,就作出错处理。CAN FD的CRC场扩展到了21位。

CAN FD在CRC场中增加了stuff count记录填充位的个数对应8的模,并用格雷码表示,还增加了奇偶校验位。FSB(fixed stuff-bit)固定为前一位的补码。

  • SOF到Data Field最后一位的位填充跟CAN报文一样:每五个相同位之后填充一个相反位
  • CRC场之前和CRC场之后位填充是不一样的
  • CRC场采用固定位填充

Stuff Count由以下两个元素组成:

1、格雷码计算:CRC区域之前的填充位数除以8,得到的余数(Stuff bit count modulo 8)进行格雷码计算得到的值(Bit0-2)

2、奇偶校验(parity):通过格雷码计算后的值的奇偶校验(偶校验)

CAN的CRC的位数是15位,而在CAN FD中,CRC场扩展到了21位,如下:

当传输数据为0~8字节或更少时:CRC 15位
当传输数据为9~16字节或更少时:CRC 17位
当传输数据超过17~64个字节时:CRC 21位

5.6 ACK段

与CAN相比,在CAN FD中最多可接受2个位时间有效的ACK,允许1个额外的位时间来补偿收发器相移和传播延迟。

由从高速的数据场到慢速的仲裁场时,时钟切换会引起收发器相移和总线传播延迟。为了补偿其相移和延迟,相比传统的CAN,在CAN FD中多加了这额外的1位时间。

(CAN FD的速率可变,从控制场中的BRS位到ACK场之前(含CRC分界符)为可变速率)
在ACK之后,发送ACK界定符。这是一个表示ACK结束的分隔符,为是1位隐性位。

5.7 帧结束

与CAN一样,CAN FD的帧结尾也为连续7位的隐性位

6 CANoe的CANFD使用

CAN工程转为CANFD工程:

如果使用了诊断协议的话,需要修改诊断 Transport Layer的配置,将CAN变更为 CAN-FD。

在Trace里可以看到 CAN数据,

Tx 代表 CANoe -> 下位机 

Rx 代表 下位机 -> CANoe

7 CANFD诊断报文ID

Classical CAN和CAN FD的CAN ID相同,但是Format不同,构成的N_AI不同,所以,在CanTp层建立的peer entity不同,工程使用过程中,可以并行使用,但是CAN和CANFD不能交叉混用

(一)完整的诊断请求时序中,独立使用Classical CAN或者CAN FD均可,示意如下:

(二)完整的诊断请求时序中,不能混用Classical CAN、CAN FD,示意如下:

诊断QA:CAN和CAN FD的诊断报文能否混用?

8 CANFD错误帧速率

答案:同CANFD的仲裁段,也是同网段CAN节点的速率。(查询芯片手册得知)

如果是再CANFD的数据场发生错误,错误帧的速率也是同CANFD的仲裁段,比如250/500。

(因为CAN与CAN FD报文的仲裁段的速率必须是相同速率)

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
STM32 CAN-FD源码是指STMicroelectronics(意法半导体)提供的用于控制CAN-FD(CAN Flexible Data Rate)功能的源代码。 CAN-FD是可扩展数据率控制器区域网络的一种升级版本,它可以提供更高的数据传输速率和更大的数据包长度。STM32是STMicroelectronics开发的一款32位微控制器系列,该系列芯片集成了CAN-FD控制器,因此提供了针对CAN-FD功能开发的源码。 STM32 CAN-FD源码可以通过意法半导体的官方网站或STM32的开发者社区获取。这些源代码提供了控制CAN-FD控制器的各种功能的实现,例如初始化CAN-FD控制器、设置波特率、发送和接收CAN-FD消息等。 通过阅读STM32 CAN-FD源码,开发人员可以了解CAN-FD控制器的工作原理、寄存器的配置方法以及与其他外设的交互方式。源码中还会包含一些示例代码和应用程序,开发人员可以基于这些示例进行定制开发,满足特定的应用需求。 在使用STM32 CAN-FD源码时,开发人员需要熟悉C语言和嵌入式系统开发的基础知识。他们需要按照源码提供的文档和指南,逐步理解源码的逻辑和结构,并根据自己的需求进行修改和优化。同时,开发人员还需要具备良好的调试技巧,以便在开发过程中解决可能遇到的问题。 总之,STM32 CAN-FD源码是STMicroelectronics提供的用于控制CAN-FD控制器的软件源代码,通过阅读和理解这些源码,开发人员可以进行定制化开发,满足特定的CAN-FD应用需求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值