前言
車載以太網測試之實錘系列,之前我們已經從環境設備組成、被測對象組成再到測試過程和測試結果分析,分享了完整的PMA測試 、IOP測試 、TC8中的TCP/IP協議一致性測試 、也分享了1000BASE-T1物理層PMA測試相關測試實踐,本期給大家介紹的是DoIP及以太網診斷測試開發相關知識及測試實踐分享。
DoIP簡介
以太網最早由BMW引入車內,其應用場景就是刷寫,滿足類似HMI的地圖數據、液晶儀表等軟件數據更新,感興趣的可查閱Thomas Konigseder 的Automotive Ethernet書中的介紹。由於其突出的特性,而后得到主要OEM的推崇和更廣泛的應用,遂開始了國際標准化(汽車行業一直以來的“套路”)。
DoIP全稱:Diagnostic communication over Internet Protocol。顧名思義,通過以太網來實現車輛診斷,其對應的國際標准為ISO 13400,其定義了DoIP協議(基於UDS)並描述了外部測試設備與車輛進行診斷數據交互的流程。
下圖為DoIP及基於以太網診斷在OSI 7層模型中及在“7層之外”的“角色”和“位置”。

圖1 DoIP及以太網診斷規范框架
DoIP協議要點簡述
DoIP報文
DoIP報文在以太網報文中的位置如下圖。

圖2 DoIP報文在以太網報文中的位置示意圖
DoIP報文分為三大類:
- 節點管理類
主要包括報頭處理流程、車輛信息獲取(如EID、GID、VIN等)、路由激活流程(包括授權以及確認功能)、TCP_DATA socket處理流程。

圖3 節點管理類DoIP報文
- 車輛信息類
主要包括獲取DoIP實體狀態信息、車輛電源模式信息。

圖4 車輛信息類DoIP報文
- 診斷類
主要包括診斷報文處理流程以及UDS數據交互。

圖5 診斷類DoIP報文示
DoIP會話流程
DoIP會話的整個流程可以分為五步:硬線激活(該激活機制是否采用及激活方法不同OEM是存在差別的)->車輛發現流程->TCP_DATA socket處理流程->診斷數據交互->關閉TCP_DATA socket。

圖6 DoIP會話流程
圖片來源:ISO 13400-2:Road vehicles - Diagnostic communication over Internet Protocol (DoIP)
邊緣和內部節點差異
關於DoIP協議,ISO 13400規范做了框架性的定義,但OEM會依據整車功能需求自定義細節內容,同時會區分邊緣節點和內部以太網節點,聊到此處有的小伙伴可能會有疑問,“以太網節點為何要區分邊緣節點和內部節點?兩者是否可以支持完整的DoIP協議?”接下來我們通過實例討論邊緣節點和內部節點在DoIP報文配置方面的差別。
問題一:內部節點需要支持診斷報文肯定應答(0x8002)么?
分析:當Tester向內部節點發送診斷請求時,首先邊緣節點會先向Tester發送0x8002報文,如果內部節點也支持0x8002報文,隨后邊緣節點又再一次轉發內部節點發送的0x8002報文和診斷應答報文到Tester。
根據DoIP協議,Tester完成診斷報文發送后會等待0x8002報文同時開啟P6Client定時器來接收診斷應答報文(暫時不考慮0x8003)。所以如果內部節點支持0x8002報文從系統設計方面考慮不符合DoIP協議,而且會導致以太網系統級診斷刷寫測試P6Client參數超時。

圖7 內部節點支持0x8002報文交互過程示例
問題二,筆者拋塊磚:不同類型節點對路由激活報文該采用何種策略?
有興趣的,可就此類技術細節約聊,同樣此話題可擴展包括DoIP其他報文針對邊緣和內部節點不同的配置和支持方案,當然還有區別最明顯的對硬線激活特性支持的差異。
萬變不離其宗,以太網節點DoIP報文的配置要服務於整車功能,這部分更應該是OEM設計工程師需要從應用場景角度考慮而進行設計的。仁者見仁,智者見智,在不同拓撲、不同需求情況下設計方案也應當有所差異。
DoIP及以太網診斷測試方案和實踐
DoIP及以太網診斷測試實現可以分層來介紹,當然在各層中OEM會在ISO標准需求的基礎上做自定義開發。
針對ISO 13400-2的測試
測試內容包括DoIP報文格式、DoIP流程以及DoIP時間參數等,其測試腳本和測試工程通過CANoe(CAPL)定制實現。

圖8 基於CANoe開發的部分測試項及測試腳本

圖9 某控制器Alive_Check_Message測試報告
針對ISO 13400-3的測試
測試內容包括激活使能線等相關的測試,測試腳本同樣通過CANoe(CAPL)開發實現,測試環境需借助於Vector的VT板卡,如VT2004實現硬線的仿真。
針對ISO 14229-1/-5的測試
可基於CANoe Option DiVa可實現,DiVa是Vector公司一款便捷、高效的診斷測試用例生成工具,使用DiVa實現UDSonCAN的測試大家都比較熟悉,那么對於以太網UDS測試DiVa是否也可以覆蓋?答案是肯定的。DiVa可基於DoIP協議(ISO 13400)生成以太網UDS測試工程,即按照標准DoIP流程與ECU進行診斷數據交互。

圖10 基於DiVa的以太網UDS測試工程
介紹到這里小伙伴們可能會有疑問,對於非標准DoIP協議的以太網節點是否也可用DiVa覆蓋其測試需求?比如筆者曾遇到的OEM所定義的以太網節點僅支持DoIP凈荷類型中特定的報文,或者以太網節點僅支持OEM自定義格式的診斷報文等情形。
總結
接着上面的問題,對於支持非標准DoIP協議的以太網節點UDS測試需做一定的定制開發方可。另外,DiVa自動生成的UDS測試工程是否直接滿足邊緣和內部兩種類型節點的測試需求呢,該如何適配?這也是筆者在項目實踐過程中遇到的一些工程問題,還曾“遭遇”在DoIP測試過程中由於ARP配置而引起的“異象”以及端口固定等各類疑難雜症!限於篇幅,不做一一介紹了,感興趣的小伙伴約起來吧!
北匯信息已為多家主流OEM完成DoIP、以太網診斷、刷寫測試相關的項目,為客戶提供完整交鑰匙工程服務,包括:
- 設計需求規范的審核完善
- 測試規范開發
- 測試腳本定制開發和測試實施服務
車載以太網技術擴散越來越快,相關測試驗證工作及對測試驗證深度、廣度的要求也備受重視,所以實踐實戰的經驗積累、對系統宏觀層面的了解也更為關鍵,北匯信息希望與各位共同進步,價值分享。
