基于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,st­artup process,inter core communication,tOe0x0of SOME IP and its basic application are elabora­ted.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演员文章个人资料