0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

基于SOME/ IP可擴展面向服務的中間件

工程師鄧生 ? 來源:焉知智能汽車 ? 作者:Jessie ? 2022-09-08 17:34 ? 次閱讀

在以CAN總線為主的車載網(wǎng)絡中,通信過程是面向信號的(除了診斷通信之外),這是一種根據(jù)發(fā)送者需求實現(xiàn)的通信過程,當發(fā)送者發(fā)現(xiàn)信號的值變化了,或者發(fā)送周期到了,就會發(fā)送信息,而不考慮接收者是否有需求。

SOME/IP則不同,它是在接收方有需求的時候才發(fā)送,這種方法的優(yōu)點在于總線上不會出現(xiàn)過多不必要的數(shù)據(jù),從而降低負載?;诮?jīng)典信號(例如 CAN)的通信 - 不足以進行更復雜的數(shù)據(jù)通信和控制。高度計算密集型 ECU可以在需要時向其他 ECU 提供所需的情報。

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

以太網(wǎng)作為車載網(wǎng)絡的出現(xiàn)是基于經(jīng)典信號+動態(tài)合約+帶寬的通信形式??梢允褂靡蕴W(wǎng)處理具有方法Methods和事件Events的復雜服務接口,使用 TCP/UDP、IP 的面向服務的中間件協(xié)議為車輛增加新的功能和特性,集成新功能,對現(xiàn)有功能實現(xiàn)的改動最小,減少了復雜現(xiàn)代架構(gòu)中靜態(tài)定義接口和數(shù)據(jù)交換的問題,使車輛成為高度連接和數(shù)字世界的一部分。

對于SOA來講,由于采用了先進的以太網(wǎng)格式,以太網(wǎng)數(shù)據(jù)傳輸服務可以由Server和Client兩個部分共同完成,因此在進行數(shù)據(jù)傳輸之前,需要準備一系列的工作來確認Server和Client之間是否已建立網(wǎng)絡連接。其次,Client還要詢問Server能否提供所需的服務,滿足數(shù)據(jù)傳輸需求,并對服務的Event進行訂閱。這些工作都是通過SOME/IP服務發(fā)現(xiàn)(Service Discovery)實現(xiàn)的。服務是SOME/IP的最核心的一個概念,屬于會話層的協(xié)議。

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

總體說來,使用SOME/IP具有如下特點:

采用交換式以太網(wǎng):通過幾個交換機可連接幾十個節(jié)點,啟動時各節(jié)點不同步,傳輸幀延遲小于幾毫秒;

一個節(jié)點可以托管多個不同服務的客戶端并提供多種服務,服務總數(shù)從幾十到幾百不等;

一個節(jié)點請求提供服務的一小部分(最多幾十個),節(jié)點可能需要訂閱服務才能提供自己的服務;

服務可能不會一直被使用和提供:比如模式變化、部分聯(lián)網(wǎng)等場景;

01 基于SOME/ IP可擴展面向服務的中間件

事件驅(qū)動的 SOA:事件與服務相遇

PDU 路由組管理需要管理啟用到禁用的套接字PDU 路由,SOME/IP - 套接字適配器 [SoAD] - AUTOSAR 模型構(gòu)建塊,可用于通用上層支持SOME/IP中的服務發(fā)現(xiàn)。

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

SOME/IP SD報文也是一種SOME/IP的數(shù)據(jù)報文,是在SOME/IP數(shù)據(jù)報文的前提上進行了擴展需求,增加了Entry、Option等字段;Entries用于同步服務實例的狀態(tài)和發(fā)布/訂閱的管理,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數(shù)據(jù)報文的ServiceID(0xFFFF)、MethodID(0x8100)、Request ID(0x0000)、ProtocolVersion(0x01)、Interface Version(0x01)、MessageType(0x02)、ReturnCode(0x00)等等屬性都是一個固定值。

02 SOME/IP協(xié)議格式

從啟用禁用到整個套接字的 PDU 路由,SOME/IP消息由報頭header和有效負載Payload組成。

消息ID:服務ID和事件/方法ID的組合

長度Length:包含從請求ID到SOME/IP消息結(jié)束的長度(以字節(jié)為單位)

請求ID:允許提供者和訂閱者區(qū)分同一方法、事件、getter或setter的多個并行使用

協(xié)議版本:包含SOME/IP協(xié)議版本的8位字段

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

消息類型:用于區(qū)分消息類型

返回碼:用于指示請求是否已成功處理。

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

AP平臺的方法論作為CP平臺的擴展,其引入了新的概念,AP平臺軟件的實例是在進程的上下文中執(zhí)行。AP平臺引入了“機器”(Machine)的概念,“機器”是虛擬化的ECU一個可以部署軟件的實體。

在AUTOSAR架構(gòu)中,SOME/IP-SD模塊位于AUTOSAR BSW Mode Managermodule(BswM)和AUTOSAR SocketAdaptor module (SoAd)之間。BswM模塊提供了通用模式請求和服務請求之間的連接。SoAd模塊則處理以太網(wǎng)堆棧和Sd模塊之間的服務請求。通過配置SoAd中的SocketConnection表,可以接收其他ECU的Sd模塊發(fā)來的單播和多播報文。用于 SOME/IP 的套接字適配器、COM 和 RTE,而SD則擁有自己的模塊。

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

SoAd 層支持通過 TCP/IP 網(wǎng)絡進行基于 PDU 的通信。AUTOSAR I-PDU 映射到由 SoAd 配置和維護的套接字連接。要為多個 I-PDU 使用套接字連接,可以在每個 I-PDU 前面添加 SoAd PDU 標頭。

03 SOME/IP的三個原始接口服務

AP平臺是一個面向服務的軟件架構(gòu)(SOA),基于AP平臺的軟件開發(fā)首先需要進行服務接口的設計。服務接口可以由事件(Events)、方法(Methods)和字段(Fields)組成是生成軟件組件頭文件的基礎。

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

1、方法(Methods)

調(diào)用或引用一個進程/函數(shù)/子程序,通常由Client發(fā)起,并由Server答復。Request是最常見的一種Method,由Client向Server請求數(shù)據(jù);Response是Request的結(jié)果,由Server答復Client的Request。而Method Fire & Forget方式,只Client向Server發(fā)起,但Server對該請求不回復。

2、事件(Events)

一個單向的數(shù)據(jù)傳輸,只能是on change類型,用于Server主動向訂閱(Subscribe)了相關服務的Client發(fā)布(Publish)信息。

3、字段(Fields)

由以下三項內(nèi)容構(gòu)成:

Notifier:通知,Server的Client訂閱了服務后第一時間主動向其發(fā)送數(shù)據(jù)。

Getter:獲取,由Client向Server請求數(shù)據(jù)。

Setter:設置,由Client修改Server的數(shù)據(jù)。

這里需要注意,NOTIFICATION分為Event和Field 兩類,這兩類通知都需要首先使用SOME/IP-SD(Service Discovery)來進行服務訂閱,然后才能發(fā)布通知。

client可以通過SOME/IP-SD來實現(xiàn)服務發(fā)現(xiàn)過程,從而得以遠程調(diào)用server提供的服務,或者訂閱server發(fā)布的內(nèi)容。區(qū)別在于,Event是某一時刻的快照,只是事件通知,而Field除了事件通知之外,還具有Getter和Setter的功能,即對信息進行讀寫的操作。

04 高級自動駕駛架構(gòu)下的SOME/IP的通信機制

如下圖顯示了一種面向服務中典型的基于SOME/IP進行有效通信的連接架構(gòu),就智能駕駛來講,各ECU端均通過交換機Switch向相關聯(lián)的端口發(fā)送相應的請求端口號及服務內(nèi)容。

這里我們舉一個例子,假如需要實現(xiàn)自車安全停車(Safe Stop)邏輯,同時通過抬頭顯示單元進行顯示。這里假如車輛控制單元VDC進行車輛前端感知、融合及后端規(guī)控,那么整個控制過程則需要首先由自動駕駛域控制器作為客戶端,則需要首先由請求端Vehicle Contol通過SOME/IP封裝的相應的服務端口及地址。

中央控制器單元通過采用定義三種不服務接口(其中Event Group包含垂直方向數(shù)據(jù),F(xiàn)ields包含障礙物類型數(shù)據(jù),Methods包含通知/獲取/設置等相關內(nèi)容信息)向?qū)亩丝赑ort(如攝像頭端口Port=30501,雷達端口Port=30501,通常傳感器使用相同的端口,通過不同的IP地址加以區(qū)分)和IP地址(IP=192.168.10.100,IP=192.168.10.101)發(fā)起請求傳感器檢測的目標數(shù)據(jù)服務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向外提供高精地圖數(shù)據(jù)(Offer Service),ADAS控制單元想要訂閱其車道線相關信息(Subscribe EventGroup),高精地圖Server同意其訂閱請求(Subscribe EventGroup Ack),而后Server開始發(fā)布高精地圖的車道線數(shù)據(jù)給ADAS控制單元。

再如,請求與響應機制,HU想要獲取DVR內(nèi)存信息,此時DVR是Server,HU是Client,由HU向DVR發(fā)出request,DVR收到請求后,根據(jù)自身當前狀態(tài),回復Response。

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



審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • CAN總線
    +關注

    關注

    145

    文章

    1898

    瀏覽量

    130337
  • 車載網(wǎng)絡

    關注

    6

    文章

    155

    瀏覽量

    31581
  • ecu
    ecu
    +關注

    關注

    14

    文章

    853

    瀏覽量

    54220
  • SOA
    SOA
    +關注

    關注

    1

    文章

    281

    瀏覽量

    27339

原文標題:Some/IP如何應用于面向服務架構(gòu)SOA架構(gòu)開發(fā)

文章出處:【微信號:智能汽車電子與軟件,微信公眾號:智能汽車電子與軟件】歡迎添加關注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關推薦

    北京靈奧科技基于亞馬遜云科技打造大模型中間件

    助力企業(yè)加速應用生成式AI 北京2024年6月27日?/美通社/ --?北京靈奧科技基于亞馬遜云科技的生成式AI、數(shù)據(jù)庫和容器等云服務,打造大模型中間件,將基礎模型優(yōu)勢和企業(yè)業(yè)務數(shù)據(jù)無縫結(jié)合,打通
    的頭像 發(fā)表于 06-27 21:21 ?442次閱讀

    一文掌握中間件技術基礎

    ? 中間件(MiddleWare)是提供系統(tǒng)軟件和應用軟件之間連接的軟件,以便于軟件各部件之間的溝通,特別是應用軟件對于系統(tǒng)軟件的集中的邏輯,在現(xiàn)代信息技術應用框架如Web服務、面向服務
    的頭像 發(fā)表于 04-23 14:45 ?316次閱讀
    一文掌握<b class='flag-5'>中間件</b>技術基礎

    求助,關于MDK5中間件network庫靜態(tài)ip手動配置問題

    最近在研究MDK5的自帶的Middleware中間件庫,其中用到NetWork庫,ipv4及ipv6各項功能均已調(diào)通。發(fā)現(xiàn)MDK提供的network庫并沒有提供供用戶手動修改設備Ip地址及mac地址
    發(fā)表于 04-22 08:09

    中間件廠商中創(chuàng)股份科創(chuàng)板上市

    山東中創(chuàng)軟件商用中間件股份有限公司(以下簡稱“中創(chuàng)股份”)成功在上交所科創(chuàng)板上市,這標志著這家國內(nèi)領先的基礎軟件中間件產(chǎn)品與服務提供商邁入了新的發(fā)展階段。中創(chuàng)股份在國民經(jīng)濟重點行業(yè)領域,如金融、能源、交通等,擁有廣泛的業(yè)務布局和
    的頭像 發(fā)表于 03-18 17:29 ?661次閱讀

    華玉通軟宣布“海鷗”確定性調(diào)度中間件(SEAGULL DS)正式商用

    今天,華玉通軟(下稱“華玉”)宣布“海鷗”確定性調(diào)度中間件(SEAGULL DS)正式商用。
    的頭像 發(fā)表于 03-17 11:01 ?513次閱讀
    華玉通軟宣布“海鷗”確定性調(diào)度<b class='flag-5'>中間件</b>(SEAGULL DS)正式商用

    中間件廠商中創(chuàng)股份成功上市

    近日,國內(nèi)領先的基礎軟件中間件產(chǎn)品與服務提供商——山東中創(chuàng)軟件商用中間件股份有限公司(以下簡稱“中創(chuàng)股份”)在上海證券交易所科創(chuàng)板上市,股票代碼為“688695”。這一里程碑事件標志著中創(chuàng)股份在基礎軟件
    的頭像 發(fā)表于 03-14 15:25 ?718次閱讀

    基礎軟件中間件產(chǎn)品與服務提供商中創(chuàng)股份成功上市

    領域深耕二十余年,以技術創(chuàng)新和產(chǎn)品化、產(chǎn)業(yè)化為導向,樹立起了值得信賴的品牌聲譽,成為了我國領先的基礎軟件中間件產(chǎn)品與服務提供商。
    的頭像 發(fā)表于 03-13 14:21 ?529次閱讀

    中創(chuàng)股份科創(chuàng)板成功上市,引領中間件技術新篇章

    中間件產(chǎn)品與服務提供商中創(chuàng)股份近日在上交所科創(chuàng)板成功掛牌上市,這一里程碑事件標志著中創(chuàng)股份在基礎軟件中間件領域的領先地位得到了市場的廣泛認可,并為其未來發(fā)展打開了新的篇章。
    的頭像 發(fā)表于 03-13 14:13 ?479次閱讀

    中創(chuàng)股份登陸科創(chuàng)板,國產(chǎn)中間件領域顯身手

    近日,中間件產(chǎn)品與服務提供商中創(chuàng)股份(688695.SH)成功登陸上海證券交易所科創(chuàng)板,這一重要事件標志著中創(chuàng)股份在國產(chǎn)中間件需求增長的背景下,正迎來廣闊的發(fā)展空間。
    的頭像 發(fā)表于 03-13 14:09 ?550次閱讀

    國產(chǎn)中間件提供商中創(chuàng)股份上市

    近日,國內(nèi)中間件領域的領軍企業(yè)——山東中創(chuàng)軟件商用中間件股份有限公司(簡稱“中創(chuàng)股份”)在科創(chuàng)板成功上市,這一重要事件標志著中創(chuàng)股份在中間件行業(yè)深耕多年后,迎來了嶄新的發(fā)展階段。
    的頭像 發(fā)表于 03-13 13:49 ?443次閱讀

    some/ip協(xié)議是什么

    性的需求也在不斷增加,SOME/IP作為一種新興的通信技術。 SOME/IP協(xié)議具有滿足汽車需求的特性,主要包括以下幾個方面:基于服務的通信
    的頭像 發(fā)表于 02-16 17:19 ?2001次閱讀
    <b class='flag-5'>some</b>/<b class='flag-5'>ip</b>協(xié)議是什么

    Redis可以實現(xiàn)消息中間件MQ的功能

    是一種通信模式:發(fā)送者(PUBLISH)發(fā)送消息,訂閱者(SUBSCRIBE)接收消息,可以實現(xiàn)進程間的消息傳遞   Redis可以實現(xiàn)消息中間件MQ的功能,通過發(fā)布訂閱實現(xiàn)消息的引導和分流
    的頭像 發(fā)表于 01-25 14:48 ?680次閱讀
    Redis可以實現(xiàn)消息<b class='flag-5'>中間件</b>MQ的功能

    oracle數(shù)據(jù)庫中間件有哪些

    Oracle數(shù)據(jù)庫中間件是指由Oracle公司開發(fā)和提供的一系列軟件產(chǎn)品,用于構(gòu)建、部署和管理企業(yè)級應用。它提供了一套完整的解決方案,包括數(shù)據(jù)庫管理、應用服務器、數(shù)據(jù)集成和開發(fā)工具等,為企業(yè)提供高效
    的頭像 發(fā)表于 12-05 16:17 ?1569次閱讀

    如何實現(xiàn)RTOS、中間件和芯片廠商API的跟蹤可觀察性?

    新的Percepio Tracealyzer?SDK為RTOS、中間件和芯片廠商API提供擴展性,使應用程序和平臺開發(fā)人員能夠構(gòu)建自定義擴展,實現(xiàn)C/ C++應用程序的完整跟蹤可觀察
    的頭像 發(fā)表于 10-20 15:29 ?524次閱讀
    如何實現(xiàn)RTOS、<b class='flag-5'>中間件</b>和芯片廠商API的跟蹤可觀察性?

    EDMS中間件集成的未來趨勢和探討

    ETAS Deterministic Middleware Solution (EDMS,前身為AOS)確定性中間件解決方案,是一個中間件框架,旨在面向汽車領域內(nèi)應用程序的獨特挑戰(zhàn)和需求,尤其是在
    的頭像 發(fā)表于 09-28 10:03 ?1906次閱讀
    EDMS<b class='flag-5'>中間件</b>集成的未來趨勢和探討