基于AUTOSAR的SOME IP通信及其多核应用的实现
张海涛胡胜仇林至(上海汽车集团股份有限公司技术中心,上海201804)
【摘要】文章介绍了基于AUTOSAR标准的多核操作系统,以及SOME IP通信和SOME IP在多核操作系统上的实现。阐述了AUTOSAR多核操作系统的、多核ECU的启动流程、核间交互的以及SOME IP通信的基本原理及其基本应用。最后,使用Davinct Configugt/和Developer开发工具,在MPC5748G 三核MCU上验证了SOME IP多核应用的可行性"
陈乔恩蓝正龙-Abstract.In this paper,multi core operation system based on AUTOSAR,SOME IP cemmu-nicction and its application on multi core operation system is introduced.The layered architecture,startup process,inter core communication,tOe0x0of SOME IP and its basic application are elaborated.Finaly,MPC5748G microcontroller is developed with Davind Configurator and Developer to vv/-fy the feasibility of SOME IP application on multi core system.
-关键词】AUTOSAR软件多核SOME IP
doi:10.3969/j-issn.10077554.2021-01.04
0引言
随着汽车和网联化的快速发展,车
控制器实现的日杂,同时对车载软快速迭代的需求大。传统的汽车式软在可移、安全性和上难以满足现代汽车控制器的需求,因此AUTOSAR%AUTo-motivv OpenSystem ARchitecture)架构应运而生。同时,随电子系统复杂性的,单核器已以满足算力需求,车载电磁环境的复杂性以及对器的限制,通过提高器时钟提升算力也不是好的选择,,近几年多核器在车载控制器中得到越广的/1-0。
在以CAN总的车载网络中,ECU之间的通信是面向CAN的,而上大部分的信
是周期,无论接收方是否对有需求,发期将发送到CAN网上。随控制器数量及的,负高,了、时风险。为了防止在车载以上出现上述问题,公司开发了SOME IP协议,该通是面的通信协议,不同ECU通过ClientSecer的方式通信,数据只在有的时候进行传输,有效
了总线负载⑷。
本文在AUTOSAR多核操作系统的基础上,采用Davind开发工具,验证了多核ECU启动、SOME IP基本及SOME IP在多核器上的应用等功能。
1AUTOSAR多核操作系统概述
1.1AUTOSAR架构概述
收稿日期:2020-11-17
上海汽车!2021.01-
单核控制器的AUTOSAR
软件架构类
似,核控制器的软
(APP
Layer )、实时
环境(RTE )和 软件(BSW &3
层〔50,
1 o 中APPLI 软件组件
% SWC )组成,实现
软件的具体
° RTE 为
SWC 提供了实时
环境,通过
总 :持SWC 与SWC 之间、SWC 与BSW
以及跨核
的通信° BSW
、ECU 抽象层、微
控制器抽象层% MCAL )以及复杂设备驱动层
% CDD )组成,BSW 的
作用是对
象,同时提供OS 、通信、诊断和存
〔60
°
为了保证RTE 在多核上的正常 ,
核上RTE 的启动符合 顺序,
CO Task 中需
“ 点”,有满足
条件时才
初始代码。图3 核上Init Task
顺序启
动的代码示例。
TASK(Default_Init_Task)t •/*Init •Coded •Core0*/-while(!gBarrier_Corel )
.........• for • Corel • Init ♦/…gBarrier_Core0• = •1;
--/*Init -Codel -Core0*/--(void)TerminateTask();
TASK(Default_Init_T a sk_Corel ) f •/*Init •Coded •Corel ♦/ …gBarrier_Corel • = •1;• while(\gBarrier_Core0)........./*Wait •for •Core0•Init ♦/ ••}
••/•Init -Codel -Corel*/••(void)TerminateTask();|
图1 AUTOSAR 多核分层架构
图3 InOt Task 代码示例
1.3 AUTOSAR 核间交互方式
在完成 计算后,会将计算结
果通过BSW 提供的通信、
和存
,发
到车 、 给 测试设备以及存储到
内(外)部存 设备等°在 核 下,Slaw Core 上的 Runnabee BSW 的 有 3 常 的
式,即 Proxa #Satellite 和 RPC ,如图 4 所示。
1.2 AUTOSAR 架构下多核ECU 启动流程
在AUTOSAR 架构下,只有 核能在上电后
动, 核在BSW 初 时
动,
在所有核启动 ,才能启动OS °
核ECU 的主
核启动流程
2
°
Startup Cqde
ECUM
Intergration Cqde
OS Init Task
PreOS tzilnitialization EcuM_StartOS App Mode Type ;
StartCore (CoreID02&Staius) ' StartCore (CorelEi,&住t ^us)
StartCore (CorelEl &帥泸) 6 StartOS (AppMode) J
j jActivat Task
图4 AUTOSAR 多核服务调用方式
图2 AUTOSAR 多核启动流程
OS 启动之后,每个核上运行的第一个Task 为 CO Task ,通常在CO Task 中会启动RTE 的运行。
RPC 直接在Slavv Cor/上调用MateT Cor/上
的BSW ,这种跨核的C/S 接 交互会消耗较
多的系统资源,效率也较低° P/xy 实现服务
的方式是在BSW Cor/上创建一个“中间” SWC ,将
C/S
转化为S/R 接口, 求通过S/R 接
口发送给“中间” SWC ,再进一步在同一个核上完
成服务调用。Satellite 是将BSW 服务在Slavv Core
18・
上海汽车
2021.01
上运行一*个“副本”,SI cw Core 上的Runnable 直 接 Satellite 的 ,支持 Satellite 的 BSW 模块 包括BSWM #DEM 等。
旅途刘力扬2 SOME IP 概述
2.1 SOME IP 简介
SOME IP % Scalabl service - Orientd Middle- war/ over IP ),即可拓展的面向服务的基于IP 的
数据交互中
,是AUTOSAR 软 中不同
ECU
以 通信的
案。
SOME IP 在车载以
模 中的位置如图
5
,是 在传输层上
提供通的协
议。在SOME IP 通信过程中,通常把提
的,
求 的
客 。
SOME IP 传输的主体是客 % Client )和
% Server),传输内容实体
% Service ),
服务实体由Events #Methods 和Fields 等组成。2.2 SOME IP 报文格式
陈慎芝SOME IP 报文数据的传输过程如图6所
討40 zK o
SOME IP 报文由Healn 和Payload 两部分构
成,Header 由 Message ID 、Length # RequesO ID 、Pro
tocol Version # Interface Vegion'Messac Type 和 Re turn Code 字段等构成,其中Messac Type 字段是
SOME IP 功能实现的 , 区不同类
图6 SOME IP 数据传输过程
的消息, 中的第三高位被称为TP Flag,若使
TP 报文,
1 "
SOME IP 报文中Payload 的长度取决于所使
用的传输
:
若传输 UDP 协议,则Pyy-load 的长
1 400 节;若传输
TCP 协
议,TCP 能够进行Payload 的 ,Payload 的长度
够大于1 400 节。
2.3 SOME IP SD 服务和通信方式
SOME IP 实现的主要功能:SD ( Service Discov ery ) 、RPC ( Remote Procedure Call )和访问进程数 据, 中 SD 是 SOMEPP 通 的 "
SOME IP SD 可视为一种特殊的SOME IP 服ClienO 可以远程
Server 提供的服务,或
订阅Server 发布的内容,并通过SOME IP SD 来实
现 发现的过程。SD 的数据格式是在
SOME IP 数据格式的基础上,对Payload 二次
定义, 规了将其Messayc ID
0 x
FFFF 8100, SD
传输的报文
有 Offeiec -icc 、FindServicc 禾口 Subsc/beEventG/)up 等 o 在
SOME IP 通信过程中,服务端和客 的通
Events 和Methods 触发及响应,如图
7 和 8
"
2.4 AUTOSAR 软件架构下的SOME IP
SOME IP 作 中 通信协议,其在AU
TOSAR 软
中并不是独立存在的,而是贯穿
于整个AUTOSAR 软
9所示,在AUTOSAR 软件架构中,SOME
IP 数据报文的传输自下而上分别经历Eth 收发器
驱动、Eth 驱动、Ethlf 、TCP/IP 、SockcO Adaptor #
PDUR #COM 、SOME IP Transform 以及 RTE 等模
块,最终到达SWC 层,
程序提供数据。
马思纯欧豪AUTOSAR 软 中详细规定了 模块的相
, SOMEPP
通 的实现,
模 互协调。BSWM 控 SD
的 与
上海汽车2021.01
19
服务端客户端
提供服务
3 SOME IP 在多核架构上的实现
提供服务
收到订阅 订阅响应ACK
发送事件发送事件
接收服务接收服务 订阅事件组
:ubscribeEventGrou pAck 二
'Event -----—— a ' Event 收到停止订阅
停止订阅响应
ACK
_ Stop SubscribeEvent
'
ubscribeEventGro upAck
确认订阅 接收事件
接收事件 停止订阅 事件组
确认停止订阅
3.1 SOME IP 在多核应用的架构
控制器的
MPC5748G
, 有3个核心,本文 中2个核
心
证。软
将BSW 配置与Ethe/
ne 接
在CORE 0上,SOME I 报文的解析
和处理的 程序CSWC 2 在CORE 1上(见
10 )。
图7 SOME IP Events 触发流程
服务端
客户端
提供服务
OfferService __
接收服务接收请求服务_
一 Request
请求服务
请求服务响应
'
Response —
亠
接收请求 服务响应
图8 SOME IP Methods 触发流程
图10软件分布架构图
,并为SWC 层提供控制SOME I 通信功能的
接口。
图9 AUTOSAR 分层模块架构
米用 Davinci DewlopeT 和 Davinci Confivurator
开发工 操作系统和 软件程序的设计。
3.2 SOME IP 通信模块设计
在 Davinci Configurator 开发工具中对 SOME
最有创意的生日礼物I 通信的
模 和模 发。
在SOME I 通
的开发过程中,BSW 层以及
MCAL 层的
模
设计和开发,此
介绍SD 模块的设计
发。
SD 模
SOME I 通信服务的实例,
服务实例是SOME I 通信的基础。Configu/toT 配
的
实例如图11 ,此服务实例的Servid
I 为1,该服务实例包含一个事件组,Group I
为4。
3.3 SOME IP 应用设计及Task 映射
SOME I 应用程序 在CORE 1上,通过DaicnocDeieeopeo 发工 设计 组 CSWC 2o CSWC 2 中只有 1 个 SWC : CpApSomelpSwo ,在
此 SWC 中创建 3 个 Runnables ,
12
:
% 1) RctSomeIpDemo_Init ,为初始化函数,主要
20・
上海汽车
2021.01
图 11 SD Service Instance 配置信息
进行SOME IP SD 服务Request 模式的控制;
%2)RctSomeIpDemo_2 000 ms ,其运行周期为
2 000 ms ,当客 成功订阅事件组后,周期 发
送No/mcaGn 报文;
% 3 ) RctSomeIpDemo_Method ,为同步触发的方
式, Serves 提供的服务°
图 12 SOME IP SWC Runnable 配置信息
为了实现如图10所示的SOME IP 在CORE 1
上的 ,需将上述3个Runnable 映射到CORE 1 上的 Task ,
13 °
图 13 SOME IP SWC Runnable 的 Task 映射
4试验及结果分析
4.1 试
本文测 公司的MPC-5748G ,使用由MPC5748G 及 电路组成的控制
器作
, 上 PC 作为客 o 上位
机PC 端IP 地址设置为192. 168. 1. 10,控制器端
I 地址设置为192.168.1.2o
测试电路
成: 通道,由软件
WinIDEA#IP5000及控制器构成,
软 程
序的 ;数据通道,RAD MOOD 用于不同以太网 接
的透传,Wireshark
数据报文的解
析,Python 脚本 上位机模拟客 发送SOME
IP 报文。
控制器
(MPC5748G)
图14测试系统
据道试道
数通调通4.2
试
控制器上电后,
期性发送Offeiegicc 报
文,
节点发送提
的消息,如图15
o
图 15 OffeCecicc 报文
上位机PC Python 脚本模拟客 发送
FindServicc 报文,向控 器询问 ,控 器收到
FindServicc 报文后,向上 PC 单独发
带服务IP 地址和 的Offei c svicc 报文,如图16
o
4.3远程服务请求测试
上位机PC Python 脚本模拟客户端发送
上海汽车 2021. 01
21演员文章个人资料
・
发布评论