任勇 劉康 王靜 王濤 李小燕
【摘? 要】由于汽車智能化、網(wǎng)聯(lián)化的進(jìn)一步發(fā)展,車載以太網(wǎng)不僅在乘用車領(lǐng)域得到了越來越廣泛的應(yīng)用,而且在商用車領(lǐng)域也逐步得到了應(yīng)用。目前國內(nèi)乘用車已經(jīng)逐步采用SOME/IP的通信方案,商用車采用SOME/IP通信技術(shù)的報(bào)道較少。本文主要介紹SOME/IP數(shù)據(jù)格式和通信機(jī)制,并著重介紹在OTA升級中的應(yīng)用、SOME/IP的測試內(nèi)容及相關(guān)測試實(shí)例。
【關(guān)鍵詞】車載以太網(wǎng);SOME/IP;協(xié)議測試;OTA
中圖分類號:U463.6? ? 文獻(xiàn)標(biāo)識碼:A? ? 文章編號:1003-8639( 2024 )05-0047-04
Research on Vehicle Ethernet Based SOME/IP Protocol and Its Application in Commercial Vehicles
REN Yong,LIU Kang,WANG Jing,WANG Tao,LI Xiaoyan
(Beijing Foton Daimler Automotive Co.,Ltd.,Beijing 101400,China)
【Abstract】Due to the further development of automotive intelligence and networking,in vehicle Ethernet has not only been widely used in the field of passenger cars,but also gradually applied in the field of commercial vehicles. At present,domestic passenger cars have gradually adopted the communication scheme of SOME/IP,and there are few reports on commercial vehicles using SOME/IP communication technology. This article mainly introduces the format and communication mechanism of SOME/IP data,with a focus on its application in OTA upgrades,testing of SOME/IP,and related testing examples.
【Key words】vehicle Ethernet;SOME/IP;protocol test;OTA
作者簡介
任勇(1990—),男,碩士,從事汽車控制器仿真測試、車載網(wǎng)絡(luò)測試工作。
1? 引言
隨著智能駕駛、智能座艙和車聯(lián)網(wǎng)技術(shù)的發(fā)展,汽車總線數(shù)據(jù)傳輸量與日俱增,汽車車載網(wǎng)絡(luò)容量需求已極大超過了傳統(tǒng)汽車車載網(wǎng)絡(luò)(CAN、CANFD、LIN等)的能力范圍,從而誕生了擁有更高傳輸速率的車載以太網(wǎng)技術(shù)。車載以太網(wǎng)憑借其高通信速率、高穩(wěn)定性、低電磁輻射、低功耗及同步實(shí)時(shí)性等優(yōu)良性能,被汽車領(lǐng)域廣泛認(rèn)為是新一代的主流車載網(wǎng)絡(luò)通信技術(shù)[1]。
SOME/IP(Scalable service-Oriented MiddlewarE over IP)是一種基于IP的可擴(kuò)展面向服務(wù)的中間件的應(yīng)用層開放協(xié)議,最早成功應(yīng)用于BMW公司某款車型的網(wǎng)絡(luò)通信中,該協(xié)議于2011年由BMW集團(tuán)提出,位于TCP/UDP之上,兼容當(dāng)前主流的汽車用例與汽車開放系統(tǒng)架構(gòu)(AUTOSAR架構(gòu))[2]。近年來,在乘用車領(lǐng)域逐步采用SOME/IP車載通信技術(shù),而國內(nèi)商用車采用此項(xiàng)技術(shù)的上市車型報(bào)道較少。
2 SOME/IP協(xié)議研究
2.1? SOME/IP協(xié)議格式
SOME/IP協(xié)議是SOA架構(gòu)(Service-Oriented Architecture)實(shí)現(xiàn)的中間件協(xié)議。根據(jù)圖1可以看出,SOME/IP協(xié)議位于OSI參考模型的5~7層,為典型的應(yīng)用層協(xié)議,可以提供API接口創(chuàng)建Client/Server客戶端,亦可添加功能邏輯用于控制消息及應(yīng)用數(shù)據(jù)傳輸。
SOME/IP報(bào)文格式如圖2所示,SOME/IP消息由報(bào)頭Header和有效負(fù)載Payload組成。SOME/IP報(bào)頭共16Byte,組成包括:Service ID(服務(wù)的唯一識別號)、Method ID(標(biāo)識出一個(gè)方法)、Length(除Message ID和Length之外的數(shù)據(jù)長度)、Client ID(標(biāo)識一個(gè)具體的客戶端)、Session ID(標(biāo)識同一客戶端的多次調(diào)用)、Protocol Version(協(xié)議版本號)、Interface Version(標(biāo)識識別服務(wù)接口)、Message Type(報(bào)文類型,詳見表1)、Return Code(返回碼,詳見表2)。
2.2? SOME/IP通信接口
遠(yuǎn)程過程調(diào)用協(xié)議(Remote Procedure Call,RPC)是一種通過網(wǎng)絡(luò)從遠(yuǎn)程計(jì)算機(jī)程序上請求服務(wù),而不需要了解底層網(wǎng)絡(luò)技術(shù)的協(xié)議。RPC協(xié)議假定某些傳輸協(xié)議的存在,如TCP或UDP,為通信程序之間攜帶信息數(shù)據(jù)。
SOME/IP是實(shí)現(xiàn)遠(yuǎn)程服務(wù)調(diào)用的接口,遠(yuǎn)程服務(wù)調(diào)用 報(bào)文類型可分為Method和Event。Method類型有Request/ Response(RR)、Fire&Forget(FF)兩種通信方式;圖3所示RR通信主要用于實(shí)現(xiàn)Client端發(fā)送請求消息,Server端接收到請求,處理后進(jìn)行響應(yīng);FF是一種不需要Client端響應(yīng)報(bào)文的請求通信。圖4所示Event類型的通信主要用于實(shí)現(xiàn)Client端向Server端訂閱需要的事件組/事件,當(dāng)事件被觸發(fā)時(shí),Server端需要向Client端發(fā)送更新的內(nèi)容。
訪問進(jìn)程通信機(jī)制主要是對應(yīng)用程序數(shù)據(jù)(Field)的配置,F(xiàn)ield可分為Getter和Setter兩種機(jī)制,客戶端通過Getter方法獲取服務(wù)端的值,通過Setter方法設(shè)置服務(wù)端的值。Getter/Setter服務(wù)和Event服務(wù)的工作機(jī)制如圖5所示。
2.3? SOME/IP SD簡介
SOME/IP SD(Service Discovery)是SOME/IP的一種特殊報(bào)文[3]、服務(wù)的信息清單及管理機(jī)制,服務(wù)者通過SOME/IP SD告知其他ECU某服務(wù)可用,并間接告知該服務(wù)的地址,服務(wù)消費(fèi)者可以調(diào)用服務(wù)的相關(guān)內(nèi)容。
SOME/IP SD報(bào)文報(bào)頭Header由SOME/IP報(bào)頭和SOME/IP SD組成,如圖6所示。
1)Flags:①最高位是Reboot Flag,初始化為1,當(dāng)Session ID填滿溢出時(shí)(由0xFFFF變?yōu)?x0001時(shí)),Reboot由1變?yōu)?;②第2位是Unicast Flag,表示SD報(bào)文支持通過單播方式接收。
2)Length of Entries Array:Entries Array的字節(jié)長度。
3)Entries Array:服務(wù)實(shí)例的“入口”,該入口包含服務(wù)實(shí)例以及需要訂閱的事件組的信息,可分為面向服務(wù)組(FindService、OfferService和StopOfferService)和面向事件組(SubscribeEventgroup、SubscribeEventgroupAck、Subscribe-EventgroupNAck和StopSubscribeEventgroup)兩種類型。
4)Length of Options Array:Options Array的字節(jié)長度。
5)Options Array:用來傳輸Entry的附加信息,包括對于服務(wù)實(shí)例的IP地址、傳輸協(xié)議、端口號等有效信息,可分為Configuration Option(配置選項(xiàng))、Endpoint Option(終端節(jié)點(diǎn)選項(xiàng))和Multicast Option(多播配置選項(xiàng))。
圖7為服務(wù)訂閱過程。Client端可通過FindService報(bào)文發(fā)現(xiàn)服務(wù)實(shí)例,Server端發(fā)送OfferService告知某服務(wù)實(shí)例可用,Client端使用Subscribe Eventgroup報(bào)文訂閱服務(wù)實(shí)例,最后Server端通過Subscribe EventgroupAck告知Client端該服務(wù)組訂閱成功。
3? SOME/IP協(xié)議的應(yīng)用實(shí)例
本文主要闡述SOME/IP協(xié)議在OTA升級過程中的應(yīng)用。OTA升級架構(gòu)主要由IVI、中央網(wǎng)關(guān)和T-BOX組成。中央網(wǎng)關(guān)連接IVI和T-BOX,總線數(shù)據(jù)的傳輸通過SOME/IP協(xié)議實(shí)現(xiàn)。OTA升級架構(gòu)如圖8所示。
OTA升級流程主要步驟為:①獲取服務(wù)器配置信息,車輛零件信息上報(bào);②OTA流程觸發(fā);③OTA前置條件檢查;④下載軟件包;⑤安裝軟件包;⑥驗(yàn)證更新后的整車系統(tǒng)。
OTA刷寫過程中需要與IVI進(jìn)行多次交互,例如當(dāng)收到新版本信息時(shí)進(jìn)行提醒,接收到新任務(wù)時(shí)提供升級包確認(rèn)下載選項(xiàng)及執(zhí)行下載,選擇立即安裝軟件包,預(yù)約時(shí)間安裝軟件包等。以T-BOX讀取IVI信息(軟硬件版本號、診斷ID、供應(yīng)商編碼等)為例:首先,客戶端T-BOX需要訂閱服務(wù)端IVI,獲取車輛信息服務(wù)(RR類型);其次,云端與T-BOX交互后會觸發(fā)T-BOX激活獲取車輛信息服務(wù);然后,IVI通過RR類型服務(wù)返回ECU信息;最后,T-BOX將零件信息上報(bào)給云端。圖9為車輛零件信息上報(bào)流程。
4? SOME/IP協(xié)議的測試
SOME/IP協(xié)議測試主要分為單件級測試、系統(tǒng)級測試與整車級測試。單件級測試主要為SOME/IP協(xié)議一致性測試,系統(tǒng)及整車級測試主要為通信行為及通信配置等方面的測試。
4.1? SOME/IP協(xié)議單件級測試
SOME/IP協(xié)議一致性測試用例來源于OPEN ALLIANCE TC8 3.0,包括SOME/IP Server測試和SOME/IP ETS測試。圖10為SOME/IP協(xié)議一致性測試拓?fù)鋱D。
SOME/IP Server測試依靠DUT自身的SOME/IP應(yīng)用功能,測試協(xié)議實(shí)現(xiàn)的基礎(chǔ)內(nèi)容。測試用例包括:報(bào)文格式測試、Options數(shù)組測試、SD報(bào)文測試、SD通信行為測試、SOME/IP基本功能測試、SOME/IP在線格式規(guī)范測試和RPC協(xié)議測試。
SOME/IP ETS測試主要根據(jù)TC8定義的增強(qiáng)可測試性服務(wù)ETS(Enhanced Testability Service)進(jìn)行,目的是為了彌補(bǔ)SOME/IP Service測試覆蓋度不足。實(shí)際項(xiàng)目測試中,通常需要供應(yīng)商集成ETS服務(wù)到被測控制器中,車輛量產(chǎn)后關(guān)閉該服務(wù)。測試用例包括:SOME/IP服務(wù)發(fā)現(xiàn)測試、序列化測試、數(shù)據(jù)長度異常處理測試、字節(jié)順序與位域的發(fā)送接收測試、不同類型數(shù)據(jù)相應(yīng)參數(shù)的發(fā)送和接收測試等。
4.2? SOME/IP協(xié)議系統(tǒng)級測試
SOME/IP協(xié)議系統(tǒng)級測試和整車級測試,測試用例基本相同,主要為通信功能相關(guān)的測試,本文主要闡述系統(tǒng)級別測試內(nèi)容。從圖11可以看出,SOME/IP協(xié)議系統(tǒng)級測試主要通過網(wǎng)關(guān)OBD口鏡像收發(fā)SOME/IP報(bào)文進(jìn)行相關(guān)項(xiàng)測試。
SOME/IP協(xié)議系統(tǒng)級測試主要包括SOME/IP通信行為測試、基礎(chǔ)通信配置測試、網(wǎng)絡(luò)管理測試、穩(wěn)定性測試、相關(guān)故障診斷測試、總線鏡像測試。
1)SOME/IP通信行為測試包括SOME/IP-SD行為測試、SOME/IP Messages行為測試、SOME/IP錯誤檢查測試、SOME/IP動態(tài)時(shí)序測試、SOME/IP系統(tǒng)魯棒性測試。
2)基礎(chǔ)通信配置測試包括MAC測試(MAC地址測試、VLAN報(bào)文測試等)、TCP/IP測試(IP版本測試、IP地址測試、IP分片測試、IP端口測試等)、DHCP IP配置測試。
3)網(wǎng)絡(luò)管理測試包括喚醒性能測試、喚醒條件測試、休眠條件測試和重復(fù)喚醒測試。
4)穩(wěn)定性測試包括長時(shí)間運(yùn)行穩(wěn)定性測試、反復(fù)上下電通信穩(wěn)定性測試、反復(fù)休眠喚醒(KL15)通信穩(wěn)定性測試、反復(fù)休眠喚醒(NM)通信穩(wěn)定性測試。
5)相關(guān)故障診斷測試包括檢查所有DTC測試、以太網(wǎng)Link失效故障DTC、以太網(wǎng)節(jié)點(diǎn)丟失故障DTC、SOME/IP無響應(yīng)DTC。
6)總線鏡像測試包括總線鏡像功能開啟/關(guān)閉測試、源網(wǎng)段流量監(jiān)控、長時(shí)間鏡像穩(wěn)定性測試、異常工況測試-網(wǎng)關(guān)控制器重啟。
4.3? SOME/IP協(xié)議測試實(shí)例
本節(jié)介紹SOME/IP Client服務(wù)訂閱測試的測試過程,包括前期測試用例撰寫和后期測試結(jié)果分析。SOME/IP Client服務(wù)訂閱測試用例設(shè)計(jì)見表3,測試用例包括測試編號、測試目的、測試環(huán)境、前提條件、測試輸入、測試步驟和評價(jià)標(biāo)準(zhǔn)。
圖12為Wireshark軟件抓取的測試數(shù)據(jù),從圖中可以看出,該SOME/IP SD報(bào)文訂閱了4組服務(wù):①Service ID=Oxb801,Eventgroup ID=0x0001;②Service ID=Oxb801,Eventgroup ID=0x0003;③Service ID=Oxb802,Eventgroup ID=0x0002;④Service ID=Oxb804,Eventgroup ID=0x0002。若Client節(jié)點(diǎn)按照通信矩陣定義,訂閱了所需的所有Eventgroup服務(wù),則本條測試用例PASS。
5? 結(jié)論
本文主要介紹SOME/IP協(xié)議的數(shù)據(jù)格式和通信機(jī)制,淺談SOME/IP協(xié)議在OTA升級過程中的應(yīng)用場景,闡述SOME/IP協(xié)議測試的內(nèi)容,并列舉測試用例設(shè)計(jì)和測試結(jié)果分析的過程。
綜上所述,SOME/IP通信技術(shù)已經(jīng)逐步應(yīng)用在商用車領(lǐng)域。本文對車載以太網(wǎng)SOME/IP協(xié)議及在商用車應(yīng)用的研究,為國內(nèi)商用車技術(shù)人員探索使用以太網(wǎng)SOME/IP通信技術(shù)提供重要參考。
參考文獻(xiàn):
[1] 曹麗平,徐維,劉敏. 車載以太網(wǎng)SOME/IP協(xié)議及一致性測試系統(tǒng)研究[J]. 汽車電器,2023(6):55-58,62.
[2] 張毅峰,歐陽頌華,魏鵬,等. SOME/IP車載以太網(wǎng)服務(wù)協(xié)議的關(guān)鍵技術(shù)與性能分析[J]. 現(xiàn)代電子技術(shù),2023(5):15-19.
[3] 李志濤,姬志博,耿偉峰. 車載以太網(wǎng)SOME/IP測試的研究與分析[J]. 汽車電器,2022(6):95-98.
(編輯? 凌? 波)
收稿日期:2024-03-05