在以CAN總線為主的車載網絡中,通信過程是面向信號的(除了診斷通信之外),這是一種根據發送者需求實現的通信過程,當發送者發現信號的值變化了,或者發送周期到了,就會發送信息,而不考慮接收者是否有需求。
SOME/IP則不同,它是在接收方有需求的時候才發送,這種方法的優點在于總線上不會出現過多不必要的數據,從而降低負載。基于經典信號(例如 CAN)的通信 - 不足以進行更復雜的數據通信和控制。高度計算密集型 ECU可以在需要時向其他 ECU 提供所需的情報。
以太網作為車載網絡的出現是基于經典信號+動態合約+帶寬的通信形式。可以使用以太網處理具有方法Methods和事件Events的復雜服務接口,使用 TCP/UDP、IP 的面向服務的中間件協議為車輛增加新的功能和特性,集成新功能,對現有功能實現的改動最小,減少了復雜現代架構中靜態定義接口和數據交換的問題,使車輛成為高度連接和數字世界的一部分。
對于SOA來講,由于采用了先進的以太網格式,以太網數據傳輸服務可以由Server和Client兩個部分共同完成,因此在進行數據傳輸之前,需要準備一系列的工作來確認Server和Client之間是否已建立網絡連接。其次,Client還要詢問Server能否提供所需的服務,滿足數據傳輸需求,并對服務的Event進行訂閱。這些工作都是通過SOME/IP服務發現(Service Discovery)實現的。服務是SOME/IP的最核心的一個概念,屬于會話層的協議。
總體說來,使用SOME/IP具有如下特點:
采用交換式以太網:通過幾個交換機可連接幾十個節點,啟動時各節點不同步,傳輸幀延遲小于幾毫秒;
一個節點可以托管多個不同服務的客戶端并提供多種服務,服務總數從幾十到幾百不等;
一個節點請求提供服務的一小部分(最多幾十個),節點可能需要訂閱服務才能提供自己的服務;
服務可能不會一直被使用和提供:比如模式變化、部分聯網等場景;
01 基于SOME/ IP可擴展面向服務的中間件
事件驅動的 SOA:事件與服務相遇
PDU 路由組管理需要管理啟用到禁用的套接字PDU 路由,SOME/IP - 套接字適配器 [SoAD] - AUTOSAR 模型構建塊,可用于通用上層支持SOME/IP中的服務發現。
SOME/IP SD報文也是一種SOME/IP的數據報文,是在SOME/IP數據報文的前提上進行了擴展需求,增加了Entry、Option等字段;Entries用于同步服務實例的狀態和發布/訂閱的管理,Options用于傳輸Entries的附加信息。
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位字段
消息類型:用于區分消息類型
返回碼:用于指示請求是否已成功處理。
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則擁有自己的模塊。
SoAd 層支持通過 TCP/IP 網絡進行基于 PDU 的通信。AUTOSAR I-PDU 映射到由 SoAd 配置和維護的套接字連接。要為多個 I-PDU 使用套接字連接,可以在每個 I-PDU 前面添加 SoAd PDU 標頭。
03 SOME/IP的三個原始接口服務
AP平臺是一個面向服務的軟件架構(SOA),基于AP平臺的軟件開發首先需要進行服務接口的設計。服務接口可以由事件(Events)、方法(Methods)和字段(Fields)組成是生成軟件組件頭文件的基礎。
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)回傳給域控制器。
另一個例子,比如訂閱機制中,高精地圖Server向外提供高精地圖數據(Offer Service),ADAS控制單元想要訂閱其車道線相關信息(Subscribe EventGroup),高精地圖Server同意其訂閱請求(Subscribe EventGroup Ack),而后Server開始發布高精地圖的車道線數據給ADAS控制單元。
再如,請求與響應機制,HU想要獲取DVR內存信息,此時DVR是Server,HU是Client,由HU向DVR發出request,DVR收到請求后,根據自身當前狀態,回復Response。
審核編輯:劉清
-
CAN總線
+關注
關注
145文章
1950瀏覽量
130731 -
車載網絡
+關注
關注
6文章
159瀏覽量
31767 -
ecu
+關注
關注
14文章
886瀏覽量
54485 -
SOA
+關注
關注
1文章
287瀏覽量
27463
原文標題:Some/IP如何應用于面向服務架構SOA架構開發
文章出處:【微信號:智能汽車電子與軟件,微信公眾號:智能汽車電子與軟件】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論