王遠波,陳姿霖,杜彬,田彬
(陜西重型汽車有限公司汽車工程研究院,陜西 西安 710200)
ISO 13400協議定義了基于TCP/IP協議及以太網進行車輛的故障診斷和軟件升級。該協議覆蓋了通信的物理層(ISO 13400-3)、數據鏈路層(ISO 13400-3)、網絡層(ISO 13400-2)、傳輸層(ISO 13400-2),通信的應用層使用的協議為ISO 14229-1和ISO 14229-5。
本文主要介紹ISO 13400-2協議中基于因特網協議(IP)、傳輸控制協議(TCP)及用戶數據報協議(UDP)3種協議配合進行外部測試設備和車輛控制器之間診斷通信的要求,因車輛網絡架構不同,該協議由一個或多個DOIP實體實現,其中TCP和UDP協議都屬于傳輸層協議。
在ISO 13400-2協議中規定了16個指令,通過組合這些指令,完成車輛聲明、車輛識別、路由激活、在線檢查、實體狀態、電源檢查、診斷交互等功能的執行,功能的指令和執行結果通過基于DOIP消息的車輛通信協議實現,本文介紹幾種常用的指令。
在傳輸層上,DOIP消息可以通過TCP協議和UDP協議傳遞,消息從數據鏈路層到應用層各層的格式定義見圖1。

圖1 各層格式定義
DOIP報頭結構如圖2所示,各部分定義見表1。

表1 DOIP報頭

圖2 DOIP報頭結構
2.2.1 通用DOIP報頭否定響應消息
該負載類型(表2)主要用于開發階段的外部測試設備(非批產狀態的臨時設備)來驗證DOIP實體中DOIP消息的正確實現,批產狀態的外部測試設備不得使用該負載類型,通用DOIP報頭否定應答數據結構見表3。

表2 負載類型描述

表3 通用DOIP報頭否定響應數據結構
表4定義了通用的DOIP報頭NACK碼。

表4 通用的DOIP報頭否定響應代碼
2.2.2 車輛識別請求消息和響應消息
為了使外部測試設備能夠訪問DOIP實體,需先通過車輛識別請求獲取DOIP實體的VIN、EID、GID,車輛識別請求消息和響應涉及的負載類型為0001、0002、0003、0004,應用場景為:①外部診斷設備已獲取DOIP實體的IP地址但未配置車輛VIN;②外部診斷設備已獲取DOIP實體的IP地址和車輛的VIN/EID/GID。車輛識別報文格式如表5~表9所示。

表5 車輛識別請求消息和響應數據結構

表9 車輛識別響應消息

表6 無消息負載的識別請求報文

表7 帶EID的車輛識別請求報文

表8 帶VIN的車輛識別請求報文
2.2.3 路由激活請求和響應消息
為了使邊緣節點能夠路由外部測試設備和DOIP實體之間的診斷請求和響應,需先通過路由激活請求報文激活邊緣節點的路由功能,路由激活請求和響應的負載類型為0005、0006。如表10~表14所示。

表10 路由激活請求和響應數據結構

表11 路由激活請求消息

表12 路由激活響應消息

表13 激活類型

表14 路由激活響應碼
2.2.4 診斷請求和診斷響應消息
外部測試設備和車內DOIP實體按照如下順序和原則使用和處理診斷請求和診斷響應消息,任何UDS指令的下發和ECU執行結果的反饋都使用負載類型為8001、8002、8003的DOIP報文協同完成。如表15~表18所示。

表15 診斷請求和響應數據格式

表18 DOIP消息否定應答

表16 DOIP請求消息

表17 DOIP消息肯定應答
1)外部測試設備通過診斷消息向車內發送需要請求的消息(負載類型為8001)。
2)DOIP實體接收到消息后先進行DOIP報頭和存儲空間的判斷,回復DOIP協議響應(肯定響應使用的負載類型為8002,否定響應使用的負載類型為8003)。
3)DOIP實體再進行UDS協議層面的診斷命令處理,不管執行的結果是肯定應答還是否定應答,均使用負載類型為8001的DOIP報文進行回復。
診斷消息否定確認碼見表19。

表19 否定確認碼
目前國內外基于車載以太網的診斷和軟件升級都是基于ISO 13400協議進行展開的,ISO 13400涵蓋了傳輸協議和網絡層服務、連接接口、診斷連接器、一致性測試等方面,在整車和零部件設計過程中,可參考該協議進行。