
基于SOME/IP协议的硬件加速序列化-适用AUTOSAR平台
在本文中,我们探索了一种方法来加速AUTOSAR功能,该功能是基于AUTOSAR与以太网链接的电子控制单元的一部分。根据AUTOSAR的标准,在ECUs之间通过以太网进行数据传送之前,一个所谓的SOME/IP(运行于IP之上的可扩展的面向服务的中间件)转化器被用来对应用数据进行序列化。随着未来全自动驾驶、全互联的车辆的实现,无论是分布在车辆上的不同传感器之间,还是车辆本身之间的通信需求都将显著增加。不同于所有AUTOSAR堆栈供应商所使用的传统软件实现,在我们的方法中,我们使用了一个硬件协同处理器,用于数据序列化。我们的方法比软件实现的速度提升了33倍,这反过来将有助于应对现代汽车对数据通信需求的增加。这种方法也为其他实时应用程序提供了更多的CPU空间来使利用CPU。
简介
在传统协议中(即CAN/FlexRay),ECU之间交换都是基础数据(例如,发动机速度/温度值的整数/浮点类型)。此外,静态帧布局足以满足典型用例,不需要动态地改变发送/接收的数据。然而,在自动驾驶等复杂功能出现后,随着以太网通信及其大带宽能力在汽车ECU中的可用性,对新的通信策略的需求也随之增加。其中一种新的通信策略是面向服务的通信。
在本文中,我们探索了一种新的方法来提高SOME/IP序列化的性能。在这个方法中,我们在AUTOSAR分层软件架构中加入了一个硬件协处理器,以加速序列化过程。修改后的架构如图1所示。
图 1. AUTOSAR 分层架构中的 SOME/IP 协处理器概览
AUTOSAR中的SOME/IP协议:简要概述
AUTOSAR中通过SOME/IP协议来支持面向服务的通信。RTE(运行时环境)是与应用软件互动的AUTOSAR层,当一个应用程序向另一个ECU发送消息时,它负责调用SOME/IP API。然后,该消息被转发到其他BSW(基本SW)模块. 其他BSW模块也是硬件加速的主体。
SOME/IP协议支持远程过程调用、事件通知和底层序列化/线格式。在 AUTOSAR中, 管理被称为服务端的功能实体的可用性,以及处理被称为客户端的相应的相关 ECU,由AUTOSAR模块SOME/IP-SD(运行于IP之上的可扩展的面向服务的中间件- 服务发现)负责。处理底层序列化/线格式是AUTOSAR模块SOME/IP转换器的责任,这也是我们研究中要改进的目标。
SOME/IP序列化用于将应用程序数据转换为适当的网络表示,然后再通过总线发送它们。数据元素包括原子类型(例如 uint8)、联合、字符串、结构和多维数组。在我们的研究中,仅支持原子类型、结构和一维数组。
SOME/IP硬件加速器设计
协处理器被设计成一个片上单元,以减轻主CPU的负担。它与一个可重复编程的指令存储器和一个全局共享存储器相连,在运行期间,数据元素从该全局共享存储器中读取,而序列化的字节流则写入该存储器。
A. 构建块
图2展示了协处理器的构建块,每个构建块的描述见表I。
图2. SOME/IP 协处理器的构建块
B. 指令集
协处理器是一个单周期指令集架构,具有统一的指令大小(32位)和固定长度的时钟周期。序列化数据元素的配置将嵌入/编码在协处理器执行的指令中。该类指令以两种不同的格式编码,两种格式都在表II中进行了说明。
C. 支持的指令子集
表 III 中描述了协处理器支持的主要指令子集。
实验结果
以一组使用具有不同复杂程度的元素为示例。每个例子都执行了两次,一次是使用英飞凌AURIX Tc277 32位ECU的SW版本,另一次是使用Verilog模拟器。假设两个处理器以相同的频率运行,在每次执行中都测量了总体所需的时钟周期(即指令数量)。HW协处理器比SW实现的速度快了33倍。表IV.显示了这些结果。
结论和工作展望
在本文中,有别于传统的SW方法,我们提出了在AUTOSAR应用程序中进行数据序列化的另外一种方法,即使用协处理器。与传统的SW实现相比,这种方法实现了高达33倍的速度提升。这种方法将特别有利于网关ECUs,在以太网和其他网络协议之间传输大量信息。
该设计仅支持序列化,但它可以扩展到支持接收AUTOSAR应用中的反序列化。它还可以重复(作为一个多核处理器),并行处理多个数据元素,以提高整体吞吐量。
文章转载自公众号:智能汽车开发者平台
