随着软件定义汽车的快速发展,车内软件系统越来越复杂和庞大。为了支撑分布式软件系统各个组件间更高效、更灵活地进行数据交互,行业在系统中引入了中间件的概念。中间件并不特指某种具体的技术,可以理解为处于操作系统和应用程序之间的一个软件中间层,将操作系统的功能进行重新组织和抽象,为上层的应用程序提供更高级的服务或功能,比如满足SOA架构需求的远程过程调用(RPC)框架,发布订阅通信框架等。我们熟悉的中间件技术有SOME/IP,是车载系统中最早实现量产的SOA中间件技术。除此之外,还有很多来自其他行业的成熟的中间件技术也逐渐进入了车内系统,其中最引人注目莫过于DDS。
1►
DDS介绍
领域广泛应用的技术。DDS定义应用接口(API)和通信语义(行为和服务质量QoS),目的是实现“在正确的时间向正确的地点传递正确的信息”(Information to the Right Place at the Right Time”)。
DDS中间件是一个软件中间层,将操作系统、网络传输和低级数据格式的细节抽象出来,以统一的API提供给应用程序,使得应用程序的开发者不必关注底层细节,可以专注于应用程序本身的实现,同时又实现了良好的应用可移植性,极大地提高了效率。同时,DDS对QoS的支持使得DDS通过简单配置即可满足不同场景下对通信的不同需求,这也是DDS最重要的特性之一。灵活的服务质量可以使DDS智能发送参与者所需要的东西,并为其提供可靠性。同时DDS支持动态发现,即参与通信的节点可以动态地发现彼此,自动完成匹配,极大地简化了网络配置工作。
2►
CANape对DDS的支持
CANape是测量标定领域的专业软件,在最新发布的CANape 20.0版本中增加了对用户定制DDS数据的测量记录的支持。
> DHPR概念
在自动驾驶领域,随着各式传感器和计算单元的性能越来越强,其产生的数据量也呈指数式上升,对测量和记录工具提出了更高的性能要求。CANape提供高性能的XCP-on-Ethernet采集方案,允许多上位机同步记录各种数量源(视频、雷达等)。同时CANape增加了对DHPR(Distributed High-Performance Recording)服务的支持,这是一种专门设计的记录模块,可以均衡上位机CPU和硬盘负荷,满足更高的性能需求。DHPR可以与CANape在同一台PC运行,也可以分布在不同的系统上。CANape可以同时处理多个不同系统的DHPR,从而实现一次记录更多的数据。未来测量大量数据的CANape设备也逐步实现为DHPR设备。
> 基于DHPR的DDS采集
CANape支持基于DHPR的DDS采集。标准的DHPR基于TCP/UDP进行,采用自定义的Protocol Decoder解析传输数据及目标信号等。针对DDS基于发布订阅模式进行数据交互的特性,CANape为其集成了特殊的DHPR,能够作为订阅者参与数据交互,采集记录DDS数据。
图1: DHPR Concept
DDS Decoder融合数据库格式转换、图像显示以及视频存储功能,可以实现OMG IDL到A2L(CANape应用)的数据库格式转换,将CDR-Object序列化后直接在CANape窗口进行在线显示,DDS数据可以存储到MF4文件。
图2: DDS Decoder架构
>以ADAS ECU采集DDS为例,采集记录流程(图3)如下:
启动DDS DHPR测量,执行服务发现,订阅Topic;
ADAS ECU发布DDS Data Sample;
DDS DHPR将采集到的DDS Data Sample传递到Protocol Decoder模块;
Protocol Decoder模块将其解码为CANape可以处理的对象,进行解析显示。
图3: DDS采集流程
> DDS采集设置
Device Settings:可以配置ECU的接口参数信息,导入Topic配置文件以及数据采集过程的Log信息等。
图4: Device设置
QoS配置:可以从Reliability/History/
Durability/Liveliness四个方面设置Qos参数。
图5: QoS设置
3►
Future
在ADAS域控领域,高性能处理器带来了中央化、集成化的应用场景,同时带来了大量的数据。大带宽数据接口如1Gb/10Gb ETH使得大数据采集成为可能。Vector致力于这种极具挑战的应用场景的开发工具链的开发与应用,提供包括并不限于大数据采集、记录、分析与回灌的软硬件一站式解决方案。