0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于SOME/ IP可扩展面向服务的中间件

工程师邓生 ? 来源:焉知智能汽车 ? 作者:Jessie ? 2022-09-08 17:34 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

在以CAN总线为主的车载网络中,通信过程是面向信号的(除了诊断通信之外),这是一种根据发送者需求实现的通信过程,当发送者发现信号的值变化了,或者发送周期到了,就会发送信息,而不考虑接收者是否有需求。

SOME/IP则不同,它是在接收方有需求的时候才发送,这种方法的优点在于总线上不会出现过多不必要的数据,从而降低负载。基于经典信号(例如 CAN)的通信 - 不足以进行更复杂的数据通信和控制。高度计算密集型 ECU可以在需要时向其他 ECU 提供所需的情报。

57192fcc-2f57-11ed-ba43-dac502259ad0.png

以太网作为车载网络的出现是基于经典信号+动态合约+带宽的通信形式。可以使用以太网处理具有方法Methods和事件Events的复杂服务接口,使用 TCP/UDP、IP 的面向服务的中间件协议为车辆增加新的功能和特性,集成新功能,对现有功能实现的改动最小,减少了复杂现代架构中静态定义接口和数据交换的问题,使车辆成为高度连接和数字世界的一部分。

对于SOA来讲,由于采用了先进的以太网格式,以太网数据传输服务可以由Server和Client两个部分共同完成,因此在进行数据传输之前,需要准备一系列的工作来确认Server和Client之间是否已建立网络连接。其次,Client还要询问Server能否提供所需的服务,满足数据传输需求,并对服务的Event进行订阅。这些工作都是通过SOME/IP服务发现(Service Discovery)实现的。服务是SOME/IP的最核心的一个概念,属于会话层的协议。

5746cbbc-2f57-11ed-ba43-dac502259ad0.png

总体说来,使用SOME/IP具有如下特点:

采用交换式以太网:通过几个交换机可连接几十个节点,启动时各节点不同步,传输帧延迟小于几毫秒;

一个节点可以托管多个不同服务的客户端并提供多种服务,服务总数从几十到几百不等;

一个节点请求提供服务的一小部分(最多几十个),节点可能需要订阅服务才能提供自己的服务;

服务可能不会一直被使用和提供:比如模式变化、部分联网等场景;

01 基于SOME/ IP可扩展面向服务的中间件

事件驱动的 SOA:事件与服务相遇

PDU 路由组管理需要管理启用到禁用的套接字PDU 路由,SOME/IP - 套接字适配器 [SoAD] - AUTOSAR 模型构建块,可用于通用上层支持SOME/IP中的服务发现。

577435b6-2f57-11ed-ba43-dac502259ad0.png

SOME/IP SD报文也是一种SOME/IP的数据报文,是在SOME/IP数据报文的前提上进行了扩展需求,增加了Entry、Option等字段;Entries用于同步服务实例的状态和发布/订阅的管理,Options用于传输Entries的附加信息。

579e2c18-2f57-11ed-ba43-dac502259ad0.png

Type = 0x00 encodes “FindService”

Type = 0x01 encodes “OfferService” And“StopOfferService”

Type = 0x06 encodes “SubscribeEventGroup”And “StopSubscribeEventGroup”

Type = 0x07 encodes“SubscribeEventGroupAck” And “StopSubscribeEventGroupNack”

Type = 0x02, 0x03, 0x04, 0x05 not defined

SOME/IP SD数据报文的ServiceID(0xFFFF)、MethodID(0x8100)、Request ID(0x0000)、ProtocolVersion(0x01)、Interface Version(0x01)、MessageType(0x02)、ReturnCode(0x00)等等属性都是一个固定值。

02 SOME/IP协议格式

从启用禁用到整个套接字的 PDU 路由,SOME/IP消息由报头header和有效负载Payload组成。

消息ID:服务ID和事件/方法ID的组合

长度Length:包含从请求ID到SOME/IP消息结束的长度(以字节为单位)

请求ID:允许提供者和订阅者区分同一方法、事件、getter或setter的多个并行使用

协议版本:包含SOME/IP协议版本的8位字段

接口版本:包含服务接口主要版本的8位字段

消息类型:用于区分消息类型

返回码:用于指示请求是否已成功处理。

57c98494-2f57-11ed-ba43-dac502259ad0.png

AP平台的方法论作为CP平台的扩展,其引入了新的概念,AP平台软件的实例是在进程的上下文中执行。AP平台引入了“机器”(Machine)的概念,“机器”是虚拟化的ECU一个可以部署软件的实体。

在AUTOSAR架构中,SOME/IP-SD模块位于AUTOSAR BSW Mode Managermodule(BswM)和AUTOSAR SocketAdaptor module (SoAd)之间。BswM模块提供了通用模式请求和服务请求之间的连接。SoAd模块则处理以太网堆栈和Sd模块之间的服务请求。通过配置SoAd中的SocketConnection表,可以接收其他ECU的Sd模块发来的单播和多播报文。用于 SOME/IP 的套接字适配器、COM 和 RTE,而SD则拥有自己的模块。

57dec5a2-2f57-11ed-ba43-dac502259ad0.png

SoAd 层支持通过 TCP/IP 网络进行基于 PDU 的通信。AUTOSAR I-PDU 映射到由 SoAd 配置和维护的套接字连接。要为多个 I-PDU 使用套接字连接,可以在每个 I-PDU 前面添加 SoAd PDU 标头。

03 SOME/IP的三个原始接口服务

AP平台是一个面向服务的软件架构(SOA),基于AP平台的软件开发首先需要进行服务接口的设计。服务接口可以由事件(Events)、方法(Methods)和字段(Fields)组成是生成软件组件头文件的基础。

57fd373a-2f57-11ed-ba43-dac502259ad0.png

1、方法(Methods)

调用或引用一个进程/函数/子程序,通常由Client发起,并由Server答复。Request是最常见的一种Method,由Client向Server请求数据;Response是Request的结果,由Server答复Client的Request。而Method Fire & Forget方式,只Client向Server发起,但Server对该请求不回复。

2、事件(Events)

一个单向的数据传输,只能是on change类型,用于Server主动向订阅(Subscribe)了相关服务的Client发布(Publish)信息。

3、字段(Fields)

由以下三项内容构成:

Notifier:通知,Server的Client订阅了服务后第一时间主动向其发送数据。

Getter:获取,由Client向Server请求数据。

Setter:设置,由Client修改Server的数据。

这里需要注意,NOTIFICATION分为Event和Field 两类,这两类通知都需要首先使用SOME/IP-SD(Service Discovery)来进行服务订阅,然后才能发布通知。

client可以通过SOME/IP-SD来实现服务发现过程,从而得以远程调用server提供的服务,或者订阅server发布的内容。区别在于,Event是某一时刻的快照,只是事件通知,而Field除了事件通知之外,还具有Getter和Setter的功能,即对信息进行读写的操作。

04 高级自动驾驶架构下的SOME/IP的通信机制

如下图显示了一种面向服务中典型的基于SOME/IP进行有效通信的连接架构,就智能驾驶来讲,各ECU端均通过交换机Switch向相关联的端口发送相应的请求端口号及服务内容。

这里我们举一个例子,假如需要实现自车安全停车(Safe Stop)逻辑,同时通过抬头显示单元进行显示。这里假如车辆控制单元VDC进行车辆前端感知、融合及后端规控,那么整个控制过程则需要首先由自动驾驶域控制器作为客户端,则需要首先由请求端Vehicle Contol通过SOME/IP封装的相应的服务端口及地址。

中央控制器单元通过采用定义三种不服务接口(其中Event Group包含垂直方向数据,Fields包含障碍物类型数据,Methods包含通知/获取/设置等相关内容信息)向对应的端口Port(如摄像头端口Port=30501,雷达端口Port=30501,通常传感器使用相同的端口,通过不同的IP地址加以区分)和IP地址(IP=192.168.10.100,IP=192.168.10.101)发起请求传感器检测的目标数据服务Provided ServiceInterface。

传感器作为服务端接收到该请求后,将带有Event Group属性的信息(比如Distance_Data、Object_Event_Grp_1)和Fields属性的信息(比如Front_Distance(Notifier_1)、Rear_Distance(Notifier_2)、Object_New_Position、Object_New_Blurred)回传给域控制器。

580b311e-2f57-11ed-ba43-dac502259ad0.png


另一个例子,比如订阅机制中,高精地图Server向外提供高精地图数据(Offer Service),ADAS控制单元想要订阅其车道线相关信息(Subscribe EventGroup),高精地图Server同意其订阅请求(Subscribe EventGroup Ack),而后Server开始发布高精地图的车道线数据给ADAS控制单元。

再如,请求与响应机制,HU想要获取DVR内存信息,此时DVR是Server,HU是Client,由HU向DVR发出request,DVR收到请求后,根据自身当前状态,回复Response。

581c7ff0-2f57-11ed-ba43-dac502259ad0.png



审核编辑:刘清

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

    关注

    145

    文章

    1996

    浏览量

    133510
  • 车载网络
    +关注

    关注

    6

    文章

    171

    浏览量

    32655
  • ecu
    ecu
    +关注

    关注

    14

    文章

    941

    浏览量

    56168
  • SOA
    SOA
    +关注

    关注

    1

    文章

    306

    浏览量

    28390

原文标题:Some/IP如何应用于面向服务架构SOA架构开发

文章出处:【微信号:智能汽车电子与软件,微信公众号:智能汽车电子与软件】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    STM32U575VGT6在cubeMX中没有FATFS中间件,是不支持吗?

    STM32U575VGT6在cubeMX中没有FATFS中间件,是不支持?还是待开发?现在这块板子使用FATFS只能自己手动移植吗?
    发表于 07-30 06:46

    中科创达与ETAS推出预集成多域中间件解决方案

    近日,ETAS 与 ThunderSoft(中科创达)宣布双方建立了紧密合作关系,并将在今年6月24日至25日于路德维希堡举行的汽车电子大会上,联合展示其新开发的、面向高性能计算(HPC)SoC 车载系统的多域预集成中间件解决方案。
    的头像 发表于 06-25 10:16 ?682次阅读

    芯原扩展的高性能GPGPU-AI计算IP赋能汽车与边缘服务器AI解决方案

    芯原股份 (芯原,股票代码:688521.SH) 日前宣布其 高性能、扩展的GPGPU-AI计算IP的最新进展,这些IP现已为新一代汽车电子和边缘
    的头像 发表于 06-16 10:44 ?894次阅读

    光庭信息SOME/IP平台融合解决方案介绍

    随着汽车EE架构向 "中央计算 + 区域控制 + 以太网" 演进,面向服务架构(SOA)成为主流。作为车载服务化通信核心组件,SOME/IP
    的头像 发表于 06-11 15:00 ?1151次阅读
    光庭信息<b class='flag-5'>SOME</b>/<b class='flag-5'>IP</b>平台融合解决方案介绍

    服务与数据的双螺旋:从SOME/IP到DDS看汽车电子架构的进化之路

    底层通信技术的演进始终是由应用需求的不断变化所驱动的。正如“进化论”所强调的,“适者生存”才是核心:并不存在放之四海而皆准的“最优”技术,只有在特定场景下最合适的解决方案。对于SOME/IP和DDS,很多人习惯于直接问“孰优孰劣”,但如果脱离具体的应用场景去讨论优劣,往往
    的头像 发表于 05-23 10:56 ?1332次阅读
    <b class='flag-5'>服务</b>与数据的双螺旋:从<b class='flag-5'>SOME</b>/<b class='flag-5'>IP</b>到DDS看汽车电子架构的进化之路

    《聊一聊ZXDoc》之汽车服务导向SOME/IP

    ZXDoc支持SOME/IP功能,通过服务导向架构实现跨域通信标准化,降低系统耦合,支持动态服务发现与调用,提升分布式系统扩展性和维护效率。
    的头像 发表于 04-30 18:23 ?952次阅读
    《聊一聊ZXDoc》之汽车<b class='flag-5'>服务</b>导向<b class='flag-5'>SOME</b>/<b class='flag-5'>IP</b>

    STM32MP131C CbueMX中间件无RTOS选项是怎么回事?

    如题,STM32MP131C CbueMX中间件无RTOS选项,对比选择STM32MP157芯片是有的,怎么查这部分资料呢
    发表于 03-14 06:59

    2024年AI开发者中间件工具生态全面总结

    进行多方位的总结和梳理。 在第二章《TOP 101-2024 大模型观点》中,生成式 AI 开发者莫尔索总结了 2024 年 AI 开发者中间件工具生态。 ? 全文如下: AI 开发者中间件工具生态
    的头像 发表于 02-14 09:45 ?754次阅读

    恩智浦强化汽车和工业物联网业务:6.25 亿美元收购中间件企业 TTTech Auto

    恩智浦 NXP 荷兰当地时间本月 7 日宣布已同 TTTech Auto 达成最终协议,计划以 6.25 亿美元(当前约 45.86 亿元人民币)的现金收购这家奥地利汽车中间件企业,强化自身
    的头像 发表于 01-16 11:52 ?1413次阅读
    恩智浦强化汽车和工业物联网业务:6.25 亿美元收购<b class='flag-5'>中间件</b>企业 TTTech Auto

    零念科技PowerD-Sch中间件获ISO 26262 ASIL D级认证

    ,标志着PowerD-Sch中间件已经成功达到了ISO 26262汽车功能安全标准的最高等级——ASIL D级,充分证明了其在功能安全方面的卓越性能和可靠性。这也是零念科技在软件功能安全领域持续追求卓越和技术创新的有力体现。 在颁证仪式上,T?V南德大中华区交通服务部总监
    的头像 发表于 12-25 15:58 ?647次阅读

    东方通联合openEuler社区即将开启云原生开源中间件 Meetup北京站

    ! openEuler社区云原生开源中间件Meetup北京站将于12月27日举办,由东方通与openEuler社区携手主办。此次交流活动特邀多位业内专家,分享实战案例与前沿技术解析,为技术爱好者、行业从业者、高校学生等加油充电,深化技术交流与学习。同时沙
    的头像 发表于 12-17 14:58 ?852次阅读

    DDS通信中间件——DCPS规范(下)

    DDS通信中间件——DCPS规范(下)本期还是DCPS规范,填上期没有聊完的QoS的坑。本系列文章将包括以下内容陆续更新:1.DDS规范概述2.DCPS规范解读3.DDS-XTypes与IDL解读
    的头像 发表于 11-27 11:47 ?1533次阅读
    DDS通信<b class='flag-5'>中间件</b>——DCPS规范(下)

    联合电子车载DDS轻量化及算力共享研究

    满足这些需求。 目前,SOME/IP作为AUTOSAR定义的车载以太网通信中间件已被广泛采用,但其在实时性、可靠性等方面仍存在局限。而来自分布式计算领域的DDS(Data Distribution Service,数据分发
    的头像 发表于 11-23 14:16 ?1864次阅读
    联合电子车载DDS轻量化及算力共享研究

    中间件全球数据实时同步利器,华为云 EventGrid 事件流重磅发布

    【摘要】 华为云 EventGrid 事件流(简称 EG)作为易用、稳定、高效的数据同步管道连接不同的系统与服务,支持中间件数据在线实时同步。事件流围绕云中间件,降低了中间件之间数据流
    的头像 发表于 10-31 18:39 ?654次阅读
    <b class='flag-5'>中间件</b>全球数据实时同步利器,华为云 EventGrid 事件流重磅发布

    DDS通信中间件——DCPS规范(上)

    DDS通信中间件——DCPS规范(上)本篇文章继续和大家分享一下对DDS这套规范的理解。预期本系列文章将包括以下内容陆续更新:1.DDS规范概述2.DCPS规范解读3.DDS-XTypes与IDL
    的头像 发表于 09-26 08:08 ?1926次阅读
    DDS通信<b class='flag-5'>中间件</b>——DCPS规范(上)