
简介
汽车行业依靠计算机来控制和监测车辆行为。通用测量与标定协议(XCP)将标定系统与电子控制单元(ECUs)相连。如今,基于 AUTOSAR 的单核 ECU 的 XCP 在汽车行业中得到广泛应用。随着汽车领域对计算能力的需求迅速增长,汽车制造商正逐渐在其电子架构中引入多核 ECU。多核 ECU 提供了高水平的并行性。本研究工作旨在实现基于 AUTOSAR 的 XCP 模块的多核版本,因为在多核目标上实现高效的测量和标定过程至关重要。研究结果确保了应用层面的数据一致性,避免了写入核心和读取核心之间可能导致处理垃圾数据的竞争条件,并降低了核心之间的数据依赖性。
一、引言
汽车行业严重依赖电子控制单元(ECUs)来监测和控制车辆行为,因此该行业对计算能力的需求日益增长。通用测量与标定协议(XCP)已成为汽车行业中连接标定系统与 ECUs 的广泛使用的方法。然而,基于单核 ECU 的传统 XCP 模块在多核平台上可能效率不高,而多核平台正越来越多地被引入电子架构中。XCP 协议基于 CAN 标定协议(CCP),其中的 “X” 概括了多种传输层,而不仅仅是 CAN。
XCP 用于获取对控制器内存的读写访问权限,对测量和标定变量的访问是面向地址的。XCP 协议的设计采用主从模式,主设备是用于向从设备下达命令的软件工具,从设备是在 ECUs 上运行的软件模块。普通的 XCP 模块基于在从设备的主核上运行的一个软件,这可能导致数据不一致、不同核心之间的竞争条件以及核心之间高度的数据依赖性,从而在测量和标定会话期间导致其他核心的异常行为。多核 XCP 基于主 - 附属核概念,其中每个核心都有专用的共享缓冲区,数据首先由从核处理,然后主核访问共享缓冲区,而不是直接访问内存。
在最近的研究中,研究人员讨论了在多核 ECUs 上实现 XCP 的挑战,并提出了通过最小化共享内存位置来确保数据一致性、避免核心之间的竞争条件以及降低核心之间数据依赖性的解决方案。Baumgartner、Grössing、Hammacher 和 Stöckert 在他们的论文中提出了在多核 ECUs 上实现 XCP 模块的挑战和解决方案。Fiebig 和 Gliwa 也在他们的论文中讨论了通过 CAN 在多核 ECUs 上实现 XCP 的挑战。Jurczyk 和 Gliwa 在他们的论文中评估了通过以太网实现 XCP 协议多核版本的性能。
我们的研究在这些先前研究人员的工作基础上,提出了一种在多核 ECUs 上实现 XCP 的综合解决方案,该方案与 CAN 和以太网均兼容。通过整合先前研究的见解,我们展示了多种标准和协议的兼容性,为汽车 ECUs 提供了更完整的解决方案。
为此,本文的贡献可总结如下:
1. 提出了 XCP 协议与 AUTOSAR 标准以及主 - 附属核设计概念的结合。所讨论的 XCP 中的支持功能包括测量、标定、数据采集、激励、块模式以及使用种子和密钥的安全机制。
2. 讨论了基于单核 ECU 的传统 XCP 模块在多核平台上可能效率不高的问题。
3. 讨论了多核 AUTOSAR XCP 模块的设计和实现,并强调了其相对于传统 XCP 模块的优势。
4. 讨论了主工具的设计和实现结果,并强调了其在环境中的使用。
5. 关注基于 AUTOSAR 的多核 XCP 模块在 CAN 和以太网上实现的兼容性,并提出了一种在多核 ECUs 上实现 XCP 的综合解决方案,该方案与这两种协议均兼容。
本文的其余内容安排如下。第二部分重点介绍关于 XCP 协议、AUTOSAR 和多核系统的文献综述。第三部分讨论多核 AUTOSAR XCP 模块的方法和设计,并强调其相对于传统 XCP 模块的优势。第四部分展示我们的实验结果,并证明多核 XCP 模块的有效性。第五部分展示主工具的实现结果,强调其在环境中的使用。第六部分给出关于 XCP 系统开发的结论和未来工作。
二、文献综述
文献综述分为四个主要部分,分别是 XCP 协议、AUTOSAR 标准、AUTOSAR 与 XCP 的结合以及主 - 附属核设计概念。
A. XCP 协议
通用测量与标定协议家族或 XCP 规范扩展了原始 CAN 标定协议(CCP)的限制。CCP 已经证明了拥有可重用的测量和标定软件的有用性。XCP 规范不再将用户限制于使用 CAN 作为传输介质。XCP 规范已得到扩展,不仅在电子控制单元(ECUs)中,而且在测量仪器中都便于使用。
XCP 允许对传感器数据和控制信号等参数进行测量和标定,并支持多种通信协议,包括 CAN 和以太网。XCP 标准由自动化与测量系统标准化协会(ASAM)维护。
B. AUTOSAR
汽车行业中已开发的软件或硬件模块的一个主要问题是可重用性差,这是由于原始设备制造商(OEMs)与供应商之间的高度依赖性。此外,嵌入式系统不支持完整的硬件抽象或模块化有限。这意味着当硬件发生变化或 ECU 功能的变化至少需要其他模块中的软件更改时,软件必须从头开始重写。为此,AUTOSAR 联盟于 2004 年成立。AUTOSAR 经典平台是由 AUTOSAR 定义的具有分层软件架构的软件平台,用于深度嵌入式系统和对可预测性、安全性、保密性和响应性有高要求的应用软件。
基于 AUTOSAR 的 XCP 是为与符合 AUTOSAR 标准的 ECUs 协同工作而设计的 XCP 版本。这种 XCP 版本具有多个优势,包括改进的互操作性、灵活性和可扩展性。已经有多项关于基于 AUTOSAR 的 XCP 实现的研究,强调了其在管理 ECU 参数和提高性能方面的有效性。
C. AUTOSAR 与 XCP 的结合
XCP 与符合 AUTOSAR 标准的软件基础相结合,能够在从软件开发初期到最终验收测试的整个过程中,对 ECU 进行灵活的仪表化和测试。所提供的技术有助于简化在 ECU 的整个生命周期中为调试和测试目的进行的仪表化工作。XCP 的动态配置还减少了为特殊测试用例准备 ECU 的开销,从而节省宝贵的时间。在汽车行业中,已经有多项关于 XCP、AUTOSAR 和多核主从架构结合使用的研究。这些研究侧重于提高 XCP 在多核 ECUs 上的性能和效率,还通过最小化共享内存位置来解决数据一致性、竞争条件和降低核心之间数据依赖性等挑战。这些技术的结合使用在改进数据采集、测量和标定方面显示出了有希望的结果。
三、方法
XCP 的设计结合了多种功能,支持多种通信协议,并基于多种概念。考虑到了效率和灵活性,以体现多核主 - 附属核概念的价值。所提出的 XCP 设计采用了自顶向下和自底向上相结合的设计方法开发。自顶向下的方法用于定义 XCP 系统的高层架构和需求,而自底向上的方法用于实现 XCP 系统的各个功能和函数。XCP 系统的开发分为几个阶段。
A. 功能定义
在第一阶段,定义了系统中需要包含的通信协议、概念和功能。系统支持测量、标定、数据采集、激励、块模式以及使用种子和密钥的安全机制。测量是从从控制器的内存中读取特定值。
标定是覆盖从控制器内存中的特定值。数据采集类似于测量,但根据特定事件同时读取一组元素,在数据一致性方面比测量更好。激励类似于标定,但根据特定事件同时写入一组元素,在数据一致性方面比标定更好。块模式是一种允许用单个响应来响应多个帧的模式。种子和密钥方法用于检查连接尝试是否经过授权。系统支持 CAN 和以太网作为通信协议。CAN 协议用于低速通信,而以太网用于高速通信。使用 AUTOSAR 标准以确保与车辆中的其他系统的兼容性。
B. 详细设计
在第二阶段,进行了 XCP 系统的详细设计。这包括 XCP 协议的实现,该协议用于主工具和从设备之间的通信。
为确保 XCP 系统能够与车辆中的其他系统兼容,其设计遵循了 AUTOSAR 标准。这确保了 XCP 系统能够与车辆中的其他系统通信,并能够无缝集成到整个车辆系统中。
最后,使用多核主 - 附属核设计概念以确保 XCP 系统针对多核架构进行了优化。主 - 附属核设计确保 XCP 系统能够利用多核系统的性能和可扩展性优势,同时也确保能够处理多核架构的复杂性。
C. 实现与测试
在最后阶段,对 XCP 系统进行了实现和测试。软件组件使用 C 编程语言开发,硬件组件使用 C++ 工具和 Linux 操作系统进行模拟。使用各种场景对 XCP 系统进行了测试,以确保其符合规格要求,测试系统以确保其能够正确运行并满足车辆系统的要求。发现的任何问题或漏洞都已得到修复。
四、XCP模块实现结果
开发的 XCP 系统成功实现了所需功能,并支持 CAN 和以太网通信协议。XCP 系统设计得高效且灵活,使其能够利用多核系统的性能和可扩展性优势。新设计克服了在多核目标上使用旧 XCP 设计时出现的问题。
单核实现面临的问题是由于同时访问导致的垃圾数据处理以及正在处理的数据不一致。图 1 显示了主核和附属核对附属核专用内存的同时访问。

图1:单核XCP图
XCP 协议是在软件环境中实现和测试的。所使用的环境基于对车辆中运行的部分 AUTOSAR 堆栈的模拟。这包括与 XCP 模块交互的所有模块的存根,例如操作系统、传输层模块,还包括内存本身的存根,发现它是可靠且高效的。
为确保与车辆中的其他系统兼容,XCP 系统设计遵循 AUTOSAR 标准。这确保了 XCP 系统能够与车辆中的其他系统通信,并能够无缝集成到整个车辆系统中。
多核主 - 附属核设计概念用于优化 XCP 系统以适应多核架构。主 - 附属核设计确保 XCP 系统能够利用多核系统的性能和可扩展性优势,同时也能够处理多核架构的复杂性。
主 - 附属核实现如下:有一个集成了通信堆栈的主核,该核负责处理所有 XCP 协议请求和响应,这与旧的 XCP 实现类似。新的部分是每个核都有事件收集器可运行实体,每个可运行实体用于处理该核的特定内存访问操作。此外,还有共享缓冲区,每个 DAQ 列表一个缓冲区,用作主核和附属核之间的中间缓冲区。缓冲区具有锁定机制,可防止任何竞争条件并降低核心之间的数据依赖性。
数据采集(DAQ)中的数据流如图 2 所示。附属核从内存中读取数据,然后将其打包到对象描述表(ODTs)中。附属核检查主缓冲区的锁,如果未锁定,则锁定从缓冲区的锁,然后将 ODTs 写入缓冲区。最后,释放从缓冲区的锁。另一方面,主核检查从缓冲区的锁,如果未锁定,则锁定主缓冲区的锁。然后,主核开始读取 ODTs,将其转换为数据传输对象(DTOs)并在总线上发送。最后,释放主缓冲区的锁。

图2:绘制数据采集图时使用多核XCP
激励(STIM)中的数据流与 DAQ 中的相反,如图 3 所示。主核接收 DTOs。主核确定接收到的 DTOs 属于哪个 DAQ 列表和事件。然后,主核检查从缓冲区的锁。如果从设备正在使用缓冲区或未使用,如果未锁定,主核锁定主缓冲区的锁,进行 ODTs 的缓冲。最后,释放主缓冲区的锁。另一方面,附属核随后检查主缓冲区的锁,如果未锁定,从设备锁定从缓冲区的锁。然后,它开始从缓冲区读取并写入内存。最后,释放从缓冲区的锁。

图3:制作刺激图时使用多核XCP
五、主工具实现结果
此外,开发了一个主工具,用于在环境中与 XCP 模块通信并测试主工具支持所有所需功能。所需功能包括测量、标定、数据采集和激励。该工具能够解析 A2L 文件并提取测量变量、标定变量、列表信息和事件信息。此外,该工具可以使用以太网与从设备通信。它可以锁定和解锁功能。它可以与从设备连接和断开连接。它能够为测量变量绘制图表。
该工具用于实现复杂的测试场景并测试 XCP 模块,以确保所有功能协同工作。图 4 显示了主工具同时处理两个功能的情况,即数据采集和标定,同时多核功能已开启。这显示了在成功解析 A2L 文件、连接到从设备并解锁数据采集功能后的执行情况。通过操纵特定变量值进行标定。数据采集用于读取一组元素,包括正在被操纵的变量。对标定变量的值进行绘图,以显示其随时间的修改情况。

图4:在使用多核XCP对其中一个测量变量进行校准的同时进行数据采集
六、结论
本文介绍了 XCP 协议与 AUTOSAR 标准以及主 - 附属核设计概念的结合。我们探讨了先前研究中讨论的概念和功能,并展示了将它们整合到一个产品中的可行性。本文开发的 XCP 系统成功实现了所需功能,并支持 CAN 和以太网通信协议。用于主核和附属核之间通信的 XCP 协议在性能、内存使用和可扩展性方面进行了优化。使用各种场景对 XCP 系统进行了测试,发现其可靠且高效。该系统设计遵循 AUTOSAR 标准,并使用主 - 附属核设计概念针对多核架构进行了优化。
XCP 系统支持多种通信协议(CAN 和以太网)和多种功能(测量、标定、数据采集和激励)的能力使其成为一个通用且适应性强的系统。该系统能够处理不同的用例和操作条件,并能够定制以适应特定的车辆系统需求。
总之,本文提出的 XCP 系统开发为现代车辆系统高效、灵活和优化的通信协议开发提供了一种综合方法。XCP 系统成功满足现代车辆系统的需求,确保了其在提高电子组件和系统之间通信的可靠性和效率方面的价值。
未来的工作可以侧重于扩展 XCP 系统的功能,以包括其他功能并支持其他通信协议。进一步的研究还可以研究 XCP 系统在更复杂场景中的性能,例如在自动驾驶车辆或电动汽车中,这些场景具有不同的操作条件和需求。
本文由豆包软件翻译,如有不当之处请参照原文
下载请扫二维码:



