通过vmRT-Thread和vSOME/IP支持车载SOA开发 | 前沿观点

描述

随着智能网联汽车的发展,电子电气架构正从传统的分布式架构向域集中甚至中央集中式架构演进。在这一趋势下,多个原本部署在独立ECU 上的功能逐步整合至同一计算平台,集中式架构当前面临以下需求:


 

 

 

Hypervisor轻量化、高性能:要求对内存和存储资源更少,有更高的实时性要求。

 

 

车载系统通信兼容:现有车载应用大多基于分布式架构设计,直接迁移到虚拟化平台需要兼容原有协议栈和接口。


 

 

 

本文所使用的嵌入式虚拟化集成开发平台(vmRT-Thread),采用Type1轻量化设计,其核心功能代码约1万行;核心镜像存储空间占用不到1M;核心功能运行内存小于64M;启动时间短(可低至50ms);中断转发注入:低于10微秒。(因测试环境不同可能略有差别)


 

在车载系统中,vSOME/IP作为一种标准化的轻量级通信协议,广泛应用于车载以太网,支持功能域之间的服务导向通信。而vmRT-Thread支持基于共享内存的直连网卡通信,因此基于此协议的应用可实现无缝迁移,无需对源码进行大规模代码修改。
其架构如图所示:
VM


 

基于上述方式,采用8核开发板来运行双系统,通过vSOME/IP协议完成双机通信。

 

 

具体分为以下几个阶段执行:


 

 

 

1.虚拟化系统部署

 

 

    在开发板上部署vmRT-Thread;


 

 

 

2.创建两个Guest系统,为每个系统分配物理资源(CPU、内存和外设),运行Ubuntu(service)与BuildRoot(client)。配置基于共享内存的直连网卡通信。

 

 

    Ubuntu

 

 

    准备vSOME/IP环境;

 

 

    源码编译vSOME/IP,编译官方请求响应demo;

 

 

    为直连网卡配置ip地址(也可在/etc/network/interfaces文件中配置静态ip地址)和配置组播地址:

 

 


 

VM


 

    修改vSOME/IP-tcp-service.json配置文件中主机ip地址:


 

 

 

VM


 

    设置环境变量:


 

 

 

VM


 

3.BuildRoot

 

 

    源码编译vSOME/IP,编译官方请求响应demo;

 

 

为直连网卡配置ip地址(也可在/etc/network/interfaces文件中配置静态ip地址)和配置组播地址:


 

 

 

VM


 

    修改vSOME/IP-tcp-client.json配置文件中主机ip地址:


 

 

 

VM


 

    设置环境变量:


 

 

 

VM


 

4.系统联调与验证

 

 

    Ubuntu中执行response-sample,BuildRoot执行request-sample;此时BuildRoot会发送数据给Ubuntu,然后Ubuntu再发送给BuildRoot。

 

 

    BuildRoot端,发送前打印,接收到Ubuntu数据后再打印:


 

 

 

VM


 

    Ubuntu端,打印接收的数据:


 

 

 

VM


 

当前车载演进趋势下,集中式架构通过高性能芯片整合多个功能域(如自动驾驶、车载娱乐和车身控制),能显著降低了硬件成本和系统复杂性,但对底层端侧虚拟化性能和对车载应用适配有更高的要求。因此,基于vSOME/IP协议开发的车载应用在vmRT-Thread平台上能几乎无修改的运行,减少了开发成本,为集中式车载架构的规模化应用提供了可靠支持。

 

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分