CAN FD:测量和重编程

时间:2024-03-31 21:17:52

原文链接:CAN FD: Measuring and reprogramming


CAN FD:测量和重编程

CAN FD:测量和重编程

CAN FD技术的复杂度与普通CAN网络相同,但它提供了显著增加的带宽。因此它可以替代Flexray或以太网网络。作为CAN网络的演进技术,CAN FD具有灵活的数据速率。它提供了比CAN更大的带宽,同时比Flexray更简单。 Vector公司的网络专家在CAN FD系统上,研究了两种典型应用:通过XCP测量ECU内部信号和ECU重编程。


在CAN FD上通过XCP测量ECU

在ECU开发中,对开环和闭环控制算法的多个信号和参数的测量和校准是一个重要的校准使用场景。 ECU开发人员偏向于使用ASAM e.V.标准化的XCP(通用测量和校准协议)测量和校准协议。 在当前的协议版本1.2中,引入CAN FD作为一种新的XCP传输层。 XCP使得Vector CANape(图1)等测量和校准工具,能够在实时操作过程中修改参数,并测量ECU的行为变化。 考虑到在CAN系统上,根据被监视的信号的数量(的增加),传输介质的带宽可能很快被耗尽。 在CAN FD上的XCP的数据段被显著扩展了,达到最高64字节的有效载荷和至少5 Mbit/s的数据速率。

CAN FD:测量和重编程

图1:使用CANape基于CAN FD上的XCP的测量


CAN FD上的XCP的数据吞吐量

为了评估CAN上XCP相对于CAN FD上的XCP的最大可用数据吞吐量,通过测量多个ECU信号,研究了帧的大小与帧内可用的有效载荷之间的关系。 数据吞吐量是假设总线负载100%时计算的。 CAN和CAN FD的帧字段的实际大小如表1和表2所示。但是,对于CAN或CAN FD,都无法精确预测其帧的大小。 为了保证总线节点到信号边缘的同步,根据其内容,将预设的不定数量的附加填充位插入到了帧中。 为了建模填充位根据帧大小的变化,分析了最好和最坏的案例情况。

表1:CAN的帧结构

CAN FD:测量和重编程


表2:CAN FD的帧结构
 CAN FD:测量和重编程

 

数据吞吐量计算的结果以图形方式表示为一个扇形(图2,表3),其中的帧可能由其实际内容而决定。 为了验证理论计算,依据实用的测量用例,在仿真环境上进行了实际的测量。 在由CANape测量和校准软件、合适的接口硬件和基于PC的ECU仿真所组成的实验室装置中,测量了CAN / CAN FD驱动器的输入和输出之间的双向传输时间。 试验的测量值非常符合数学预测(图2,表5),从而验证了对可用数据吞吐量的建模。 通过比较使用CAN和CAN FD传输时所采集的测量数据,可以发现根据系统的配置(表4),CAN FD的数据吞吐量增加了1.3到5.4倍。

CAN FD:测量和重编程
图2:在ECU测量中,测量和计算的CAN FD数据吞吐量


表3:在CAN FD(fA=500 kbit/s)上的XCP的计算的数据吞吐量 

CAN FD:测量和重编程


表4:比较在CAN和CANFD上的XCP的测量的数据吞吐量

CAN FD:测量和重编程


表5:在CAN FD(fA=500 kbit/s)上的XCP的测量的数据吞吐量
CAN FD:测量和重编程



除了带宽已经改善,在CAN FD上的XCP还有进一步改进的潜力。 由于CAN和CAN FD的等效物理通信,很可能在现有ECU软件在迁移到CAN FD后,通信链路仍然被限制为八字节的数据传输。 在这种情况下,XCP只会受益于较高的数据传输速率,而不能利用CAN FD帧中可用的全部64字节的有效载荷。 为了优化数据传输速率,小型XCP数据包的有效载荷可以连接成一个大的CAN FD帧(图示3)。 Vector目前正在制定一项提案,以便在未来的XCP规范中实现在CAN FD上的XCP的数据包级联。
 

CAN FD:测量和重编程
图3:基于合并多个XCP包到一个CAN FD帧的更快的数据传输


闪存编程

对闪存的(重)编程是第二个快速网络协议所预计会有显著改进的使用场景。在“删除”、“下载/编程”和“验证”三个阶段,下载时间是传统CAN系统中的关键因素,可以通过Flexray,Ethernet和CAN FD等更快的总线系统加速。


无论传输协议如何,使用其他优化策略进行下载(如数据压缩和流水线编程)都是有意义的。 尽管LZSS(Lempel-Ziv-Storer-Szymanski)算法减少了要传输的数据量,其效率高度依赖于数据构造,并且也需要考虑到在ECU中提取数据所产生的额外的CPU负载。 另一方面,流水线编程代表了一种并行化:当一个数据段仍在写入ECU时,下一个段的传输已经开始。 因此,当编程时间比数据传输时间短时,该方法的潜在性能增益最大。


Flexray提供了10 Mbit / s的传输速率,但不能完全用于(重)编程。 在时间触发的周期性通信序列的协议中,所有PDU(协议数据单元)都是预定义在固定时隙中的。 如果很多时隙被保留用于诸如下载的诊断服务请求,这就减少了有用数据的带宽。 实际的配置中,每个周期提供4个PDU到8个PDU,42个字节到255个字节用于诊断服务。 当使用流水线编程时,Vector工程师已经测量到了40~60kB/s的下载速率。


带有基于IP(DoIP)的ISO 13400-2诊断的以太网也非常适合ECU的快速重编程。 在测试100Mbit以太网和一个典型的纯闪存写入速率为180kB/s的微控制器时,结果大致上与传输数据服务的缓冲区大小有关。 一个16 KB的缓冲器可以实现大约150 kB/s的吞吐量,这已经接近测试中使用的闪存的限制。


使用CAN FD的重编程

由于半导*造商尚未提供任何包含CAN FD支持的微控制器,因此Vector的网络专家在他们的CAN FD测量中,使用了一个包含以FPGA实现的CAN FD控制器的微控制器。 板上的软件栈由一个标准的Vector UDS引导程序组成。 为了支持CAN FD而扩展了ISO 15765-2传输层和CAN驱动程序。 为了下载测试所需的快速测试启动过程,使用了CANoe仿真和测试工具,因为该工具已经提供了CAN FD支持。 该软件使用提供闪存编程过程和传输层函数的外部DLL。 将来,Vector vFlash烧写工具将可用于CAN FD。


在使用传输层的情况下,在CAN FD数据段速率为4Mbit/s时,在CAN FD上烧写的理论传输速率可达到270kB/s至370kB/s。 但是,实际测量值远低于此值(图4)。 令人惊讶的是,在所使用的测试环境中,压缩和流水线优化策略对于CAN FD是适得其反的。 原因在于,在使用的实验室设置中,内部闪存的编程时间成为烧写过程中的限制因素。 所以这使得下载阶段的优化无效。 但是,需要使用更强大的CPU进一步测试才能得出有关数据吞吐量和优化效果的更一般的结论。 测量的一个关键发现是,CAN FD比CAN(图4)提供了更高的数据吞吐量,并且迁移所需的工作量可以忽略不计。


CAN FD:测量和重编程

图4:比较CAN和CAN FD的下载和编程时间


总结和展望

总体而言,串行总线系统CAN FD,Flexray和以太网由于其不同的微控制器和约束条件而难以客观比较,但是可以清楚地看出某些趋势。在Flexray的情况下,实时数据有效载荷的高下载速度和高性能不能同时实现。 100 Mbit以太网提供了最快的传输速率,但它需要复杂的软件配置,其硬件成本高于CAN FD。


CAN FD似乎是最平衡的解决方案,它提供了高数据速率和潜在的进一步改进,成本适中。另外,由于CAN和CAN FD之间的密切相似性,迁移到改进的CAN相对容易。两个协议都基于相同的物理层,这使得收发器,布线和总线拓扑的重用成为可能。由于沟通原则也没有改变,现有的技术知识仍然可以应用。校准和重编程中对受影响软件层的修改是相对较小的。


CAN FD使得在ECU的测量和重编程方面实现了显著的吞吐量增益。 在(重)编程中,将瓶颈转移到闪存。 进一步开发以缩短MCU的存储器存取时间,可以用来获得额外的性能提升。 通过Vector扩展XCP规范以包含CAN FD的数据包级联的努力,也提供了尚未开发的新协议的性能提高的潜力。


作者 

CAN FD:测量和重编程

Armin Happel


CAN FD:测量和重编程

Erik Sparrer


CAN FD:测量和重编程

Peter Decker

 
Vector Informatik GmbH

文献:

CAN-FD specification V1.0, Robert Bosch GmbH


CAN FD技术的复杂度与普通CAN网络相同,但它提供了显著增加的带宽。因此它可以替代Flexray或以太网网络。