GEMINI COM组件的构成与工作方式

描述

 

前言:车载软件方案商蓝马舱行智能科技(上海)有限公司(以下简称:Landmark)和车载操作系统厂商睿赛德科技(以下简称:RT-Thread)以及西班牙eProsima联合打造出的助力整车SOA功能量产落地的软件平台Gemini-OS,在【整车SOA突破性技术-区域控制器在聚焦】以及【整车SOA技术升级:将Micro-ROS运用于区域控制器】两篇文章中详细介绍了区域控制器作为连接大量传感器/执行器与车载中央电脑的ECU,将Micro_ROS运用于其中,来实现AUTOSAR和RT-Thread同时部署在高性能多核MCU上。该平台采用双OS高效通信,得益于专用的IPC通信组件:GEMINI COM,该组件进行全双工高速通信,本文中我们将详细讲解到GEMINI COM组件的构成与其工作方式。

GEMINI COM是负责承载包括但不限于进程/线程间、CPU核间、跨系统间调用、数据通信的组件,在底层传输协议的支撑下,实现了频道隔离、一对一、一对多、多对一、多对多等通信模式,通过IPC_Channel组件实现通信,详情见下图:

COM组件

GEMINI COM共分为五层:通信层由其它协议栈提供(如TCP/MQ/RPMSG等),负责支撑数据的可靠收发;包层负责打包数据,以固定单位打包,并可以支持拼接;帧层负责数据分片和ACK校验、重发机制;消息层负责序列化/反序列化数据结构,支撑结构传输;调用层负责抽象出函数调用的概念,用于多模组间的功能互相调用。如下图是其各个子模块框架图:

COM组件

 其中调用层、帧协议层、包协议层的设计使得发送和接收数据的维度更多,自定义处理逻辑的空间更大;通信层的设计使得GMINI COM组件与底层I/O模块分离,可在任意数据传输协议栈上搭建通信。

通信层中,协议栈提供了TCP/MQ/RPMSG等,其中以RT_-Thread提供的RPMSG LITE为主要处理方式,详情见下图:

COM组件

RPMSG相关处理工作是双OS跨核通信的底层数据处理的重要环节部分,展现了新型的通信方式,且实现了以往不曾有过的功能,具体流程如下图:

COM组件

GEMINI COM集成了本地通信interface,对外包含三种接口:数据接口、调用接口、信号接口,其中主要的SOA接口均提供于调用层:代理接口(Proxy)为调用方函数,接口桩(Stub)为被调方函数,两类函数可由IF_RegProxy和IF_RegStub接口灵活配置,该设计的亮点使得GEMINI COM组件的使用者能够更灵活的配置需要挂载的调用,同时使其它应用程序开发者能无感知的调用跨核、跨系统、跨网络的对端接口。

 以其中灯光开关模块举例,Landmark方提供AutoSAR侧的GEMINI COM端的控制灯光函数,并注册Stub桩函数,RT-Thread方提供声明Proxy函数,同时注册Proxy函数,将调用接口函数提供出来给HMI调用,控制灯光状态,并将状态返回。该内存管理器独立于操作系统平台外的内存管理方式,对POSIX与非POSIX标准的操作系统均有良好的支撑。  

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

全部0条评论

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

×
20
完善资料,
赚取积分