高 越,高 健,周煥宇
基于SOMEIP協議的SOA設計
高 越,高 健,周煥宇
(沈陽東信創智科技有限公司,遼寧 沈陽 110000)
為了推進車載以太網和基于服務的架構(SOA)在車內的快速應用,論文結合實例介紹了基于模型的SOA功能架構開發流程及方法,同時綁定可伸縮的基于IP的中間件(SOMEIP)協議,進行基于服務以太網通信設計,對汽車SOA功能架構和以太網網絡架構開發具有一定指導意義。
SOMEIP;基于服務的架構;以太網;架構;用例;服務接口
隨著智能互聯、自動駕駛、電動汽車及共享出行的發展,分布式模塊化架構正在向區域和中央計算平臺的架構方向演進,軟件定義汽車是實現汽車新四化的推動力,軟件開發必須快速、敏捷,以實現功能更新迭代,面向服務的架構(Service Oriented Architecture, SOA)開發可以滿足以上所有需求,又因為SOA開發需要交互大量的結構化數據,百兆、千兆甚至是多G以太網又被引入到車內,二者結合使用,相輔相成,在國內外各大整車廠得到逐步落地。
SOA是一種軟件架構開發方法,服務可以是黑盒形式,通過標準的服務接口向外提供服務;服務也是無狀態的,可以被重復調用,可以被多次部署。SOA設計主要包括用例設計、交互時序設計、接口設計。
功能設計通常采用“自上而下(Top-Down)”的正向開發思路,首先通過用戶場景分析定義用例(Use Case),通過用例描述系統面向用戶提供主要功能或服務[1]。
本文以汽車遠程控制功能為例進行用例設計,用例設計遵循的原則為參與者(Actor)通過什么方法可以達到什么目標。如圖1所示,參與者為用戶,用戶可以通過手機App遠程控制座椅加熱、控制空調、控制車窗、控制門鎖等多個用例,而遠程控制車窗又包含(Include)以下四個子用例:
1)用例1:一鍵開啟車窗,用戶通過手機App遠程一鍵開啟車窗,開合度至100%。
2)用例2:一鍵關閉車窗,用戶通過手機App遠程一鍵關閉車窗,開合度至0%,車窗關閉過程中,可能觸發使能防夾,一旦防夾功能使能,需要提示用戶,這里防夾功能使能用例是一鍵關閉用例的擴展。
3)用例3:車窗換氣控制,用戶通過手機App遠程控制車窗,開合度可至任意位置。
4)用例4:車窗狀態查詢,用戶通過手機App遠程查詢車窗狀態及位置。

圖1 汽車遠程控制用例圖
功能實現通過時序圖描述,主要包括參與者(paticipate)和每一步需要交互的信息,一個時序圖可包括一個或者多個用例。
圖2為遠程一鍵關閉車窗時序圖,對圖分析可知,車身域控為車窗控制服務的提供者,手機App為車窗服務的消費者,而網關作為服務代理,將信號轉換成服務,提供整車狀態服務,其中包括車窗控制(Window Control)、服務依賴(Depen- dency)、整車狀態(Vehicle State)服務。圖3為使用PRREEvision工具定義的服務調用關系。

圖2 遠程一鍵關閉車窗時序圖

圖3 一鍵關閉車窗功能服務調用關系
前面已經定義完服務角色及服務的調用關系,下面定義接口類型及相關數據類型,接口類型包括請求響應方法R&R Method,一般用于需要執行一段時間才會有效執行反饋的控制類指令;單方向通信方法F&F Method;域(Get, Set, Notify),其中通知(Notify)指令必須涵蓋控制指令中所涵蓋的所有狀態[2];事件(Event)類型接口使用同上面的通知(Notify)指令。
按照之前的功能分析,Window Control服務需要定義一個R&R Method,輸入參數為電動窗控制命令(Window CtrolCmd),輸出參數為電動窗控制結果(Window CtrolRst),也需要定義一個通知(notify),參數內容為電動窗的位置和防夾狀態(Window State);Vehicle State服務需要定義三個通知(notify),分別為Vehicle Speed、Gear Level和Ignition State。
以太網數據大多為結構化數據,數據定義必須層層分解到原始數據類型BaseType,圖4以Window State數據為例說明數據類型定義。Window State為結構體數據類型,包含兩個數據成員winPosition和winStatus,這兩個數據成員也為結構體,分別包含前左、前右、后左和后右四個電動窗的位置和狀態信息,基本數據類型都為uint8。

圖4 結構體數據Window Control定義
可伸縮的基于IP的中間件(Scalable Service Oriented Middleware over IP, SOMEIP)協議是歐洲主機廠寶馬公司專門針對以太網及SOA的車內應用而開發的中間件協議,通過此中間件進行應用層和IP層的數據交互,實現了應用程序和操作系統之間的解耦。SOMEIP協議主要包括遠程過程調用(Remote Process Call, RPC)、數據序列化、服務發現(Service Discovery, SD)、SOMEIP 傳輸協議(Transport Protocol, TP)等四部分內容[3]。
RPC協議定義主要是SOMEIP協議頭(Header)的相關參數,如服務ID、方法/事件ID、協議版本、客戶端ID,事件組(Event Group)及其ID等。這些數據定義原則是為不同域的服務劃分范圍,且確保唯一性。
數據序列化是指發送方將應用層的結構化的并行數據轉化成串行數據發送到總線上的過程,接收方再將從總線上接收到的串行數據反序列化成并行數據交給應用層。
汽車開放系統架構(AUTomotive Open System ARchitecture, AUTOSAR)組織定義了轉換器(Transformer)作為SOMEIP 序列化的軟件模塊。關鍵設置參數如下:
1)對齊(Alignment)應用于變長數據,如變長數組和變長字符串,為了方便讀取內存數據,通過填充的方式使數據處于字節起始位置。對齊參數的定義主要和域控處理器系統相關,本文中車身域控和網關均為4 byte對齊。
2)字節序(Byte Order),為了和車外網兼容,字節序定義為Motorola Big Endian類型。
3)結構體、數組和變長字符串的數據長度域長度,本文全部定義為4 byte。
圖5為結構體數據類型序列化示例,數據長度域長度為4 byte[4]。

圖5 結構體數據序列化
軟件定義(Software Defined, SD)是一種特殊的服務,定義了服務的尋址信息和狀態信息。服務端發布提供服務,客戶端查找、訂閱服務。通過此服務發現機制,可動態地建立通信鏈接,同時可開啟、關閉服務,有效降低了總線帶寬及算力資源。
服務器端和客戶端的SOMEIP SD通信行為是不同的,但都包括四個階段,每個階段都需要定義相應的參數,圖6為服務器端通信行為定義,初始化階段(Initial Wait Phase)需要配置的時間參數為INITIAL_DELAY時間(最大和最小值之間的隨機值);重復階段(Repetition Phase)中參數REPETITIONS_BASE_DELAY為服務端發送offer service的基本時間,隨著發送次數的增加,發送間隔時間倍增,最多發送次數為REPETIT- IONS_MAX;主階段(Main Phase)中OfferCyclic Delay為服務端發送offer service的發布周期[5]。

圖6 服務端狀態轉換及時間參數
SOMEIP SD相關參數定義可以參照表1,客戶端和服務端的參數定義一致[6]。
表1 SOMEIP SD參數定義
參數數值/ms Initial_Delay_Min0 Initial_Delay_Max300 Repetition_Base_Delay30 Repetition_Max3 Cyclic_Offer_Delay1 000 TTL5 000 Request_Response_Delay_Min0 Request_Response_Delay_Max500
SOMETP協議可以綁定用戶數據報協議(User Data Protocol, UDP)傳輸數據。如果SOMEIP協議綁定UDP,且數據字節長度大于1 400 byte,則必須使用SOMEIP TP,將數據進行分片傳輸。SOMEIP TP的設計參數主要有兩個,發送端發送連續兩個數據包的時間間隔(Minimum Separation Time=1 ms)和接收端接收超時時間(RxTimeout Time=3 ms)。
最后,定義車載以太網一到四層的通信協議,比如物理層的通信速率和主從節點,數據鏈路層的虛擬局域網和MAC地址,網絡層的IP地址和傳輸層的端口號等,所有數據及相關參數設計完成后,使用VECTOR公司的架構開發工具PREE- vision進行建模,可導出以太網SOA的ARXML,并將此ARXML導入VECTOR公司的仿真測試工具CANoe中進行仿真測試。在仿真時,可直接在Bus Statistic窗口下查看總線負載率,如圖7所示。

圖7 CANoe仿真總線負載
本文結合實例介紹了SOA功能架構定義的流程和方法,以及如何基于SOMEIP協議進行SOA網絡架構的相關參數設計。未來的電子電氣架構,SOA將作為功能架構的主要開發方式,而以太網將作為整車網絡的主干通信網絡,國內主機廠正紛紛搭建以太網和SOA電子電氣架構平臺,提升市場競爭力。
[1] 袁仲楠.基于PREEvision的電子電氣架構開發研究[J].電子測試,2020(3):55-57,130.
[2] 劉聰,陳敏.面向服務的電子電氣架構研究與應用[J].北京汽車,2021(6):34-36,40.
[3] AUTOSAR Organization.AUTOSAR TR SOMEIP Example R4.2.1:637[S].Redmond:AUTOSAR Organ- ization,2014.
[4] AUTOSAR Organization.AUTOSAR PRS SOMEIP Protocol R20-11:696[S].Redmond:AUTOSAR Organ- ization,2020.
[5] AUTOSAR Organization.AUTOSAR TPS Manifest Specification R19-03:713[S].Redmond:AUTOSAR Organization,2019.
[6] 詹德凱,高越.基于PREEvision的SOA設計[J].汽車實用技術,2022,47(23):62-70.
SOA Design Based on SOMEIP Protocol
GAO Yue, GAO Jian, ZHOU Huanyu
( Shenyang Dotrust Technologies Company Limited, Shenyang 110000, China )
In order to promote the rapid application of on-board ethernet and service oriented architecture(SOA) in the vehicle, this paper introduces the development method and process of SOA functional architecture based on model combined with examples, and also, the design of service-oriented ethernet communication based on scalable service oriented middleware over IP(SOEMIP) protocol is bound, which has certain guiding significance for the development of automotive SOA functional architecture and ethernet network architecture.
SOMEIP;Service oriented architecture; Ethernet; Architecture; Use case; Service interface
U462.1
A
1671-7988(2023)17-71-05
10.16638/j.cnki.1671-7988.2023.017.012
高越(1982-),女,碩士,工程師,研究方向為汽車電子電氣架構、汽車以太網、SOA,E-mail:01yue.gao @dotrustech.com。