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

    文章

    1936

    浏览量

    130633
  • 车载网络
    +关注

    关注

    6

    文章

    158

    浏览量

    31726
  • ecu
    ecu
    +关注

    关注

    14

    文章

    881

    浏览量

    54406
  • SOA
    SOA
    +关注

    关注

    1

    文章

    283

    浏览量

    27426

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

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

收藏 人收藏

    评论

    相关推荐

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

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

    北京灵奥科技基于亚马逊云科技打造大模型中间件

    助力企业加速应用生成式AI 北京2024年6月27日 /美通社/ -- 北京灵奥科技基于亚马逊云科技的生成式AI、数据库和容器等云服务,打造大模型中间件,将基础模型优势和企业业务数据无缝结合,打通
    的头像 发表于 06-27 21:21 533次阅读

    一文掌握中间件技术基础

    中间件(MiddleWare)是提供系统软件和应用软件之间连接的软件,以便于软件各部件之间的沟通,特别是应用软件对于系统软件的集中的逻辑,在现代信息技术应用框架如Web服务面向服务
    的头像 发表于 04-23 14:45 408次阅读
    一文掌握<b class='flag-5'>中间件</b>技术基础

    求助,关于MDK5中间件network库静态ip手动配置问题

    最近在研究MDK5的自带的Middleware中间件库,其中用到NetWork库,ipv4及ipv6各项功能均已调通。发现MDK提供的network库并没有提供供用户手动修改设备Ip地址及mac地址
    发表于 04-22 08:09

    中间件厂商中创股份科创板上市

    山东中创软件商用中间件股份有限公司(以下简称“中创股份”)成功在上交所科创板上市,这标志着这家国内领先的基础软件中间件产品与服务提供商迈入了新的发展阶段。中创股份在国民经济重点行业领域,如金融、能源、交通等,拥有广泛的业务布局和
    的头像 发表于 03-18 17:29 791次阅读

    华玉通软宣布“海鸥”确定性调度中间件(SEAGULL DS)正式商用

    今天,华玉通软(下称“华玉”)宣布“海鸥”确定性调度中间件(SEAGULL DS)正式商用。
    的头像 发表于 03-17 11:01 616次阅读
    华玉通软宣布“海鸥”确定性调度<b class='flag-5'>中间件</b>(SEAGULL DS)正式商用

    中创股份成功登陆科创板,引领中间件技术创新

    山东中创软件商用中间件股份有限公司(简称“中创股份”)近日在科创板成功上市,标志着其在国内基础软件中间件领域的领先地位得到资本市场认可。
    的头像 发表于 03-15 17:39 800次阅读

    中间件厂商中创股份成功上市

    近日,国内领先的基础软件中间件产品与服务提供商——山东中创软件商用中间件股份有限公司(以下简称“中创股份”)在上海证券交易所科创板上市,股票代码为“688695”。这一里程碑事件标志着中创股份在基础软件
    的头像 发表于 03-14 15:25 841次阅读

    基础软件中间件产品与服务提供商中创股份成功上市

    领域深耕二十余年,以技术创新和产品化、产业化为导向,树立起了值得信赖的品牌声誉,成为了我国领先的基础软件中间件产品与服务提供商。
    的头像 发表于 03-13 14:21 660次阅读

    中创股份科创板成功上市,引领中间件技术新篇章

    中间件产品与服务提供商中创股份近日在上交所科创板成功挂牌上市,这一里程碑事件标志着中创股份在基础软件中间件领域的领先地位得到了市场的广泛认可,并为其未来发展打开了新的篇章。
    的头像 发表于 03-13 14:13 639次阅读

    中创股份登陆科创板,国产中间件领域显身手

    近日,中间件产品与服务提供商中创股份(688695.SH)成功登陆上海证券交易所科创板,这一重要事件标志着中创股份在国产中间件需求增长的背景下,正迎来广阔的发展空间。
    的头像 发表于 03-13 14:09 714次阅读

    国产中间件提供商中创股份上市

    近日,国内中间件领域的领军企业——山东中创软件商用中间件股份有限公司(简称“中创股份”)在科创板成功上市,这一重要事件标志着中创股份在中间件行业深耕多年后,迎来了崭新的发展阶段。
    的头像 发表于 03-13 13:49 601次阅读

    some/ip协议是什么

    性的需求也在不断增加,SOME/IP作为一种新兴的通信技术。 SOME/IP协议具有满足汽车需求的特性,主要包括以下几个方面:基于服务的通信
    的头像 发表于 02-16 17:19 2162次阅读
    <b class='flag-5'>some</b>/<b class='flag-5'>ip</b>协议是什么

    Redis可以实现消息中间件MQ的功能

    是一种通信模式:发送者(PUBLISH)发送消息,订阅者(SUBSCRIBE)接收消息,可以实现进程间的消息传递   Redis可以实现消息中间件MQ的功能,通过发布订阅实现消息的引导和分流
    的头像 发表于 01-25 14:48 876次阅读
    Redis可以实现消息<b class='flag-5'>中间件</b>MQ的功能

    oracle数据库中间件有哪些

    Oracle数据库中间件是指由Oracle公司开发和提供的一系列软件产品,用于构建、部署和管理企业级应用。它提供了一套完整的解决方案,包括数据库管理、应用服务器、数据集成和开发工具等,为企业提供高效
    的头像 发表于 12-05 16:17 1827次阅读