王遠波,陳姿霖,杜彬,田彬
(陜西重型汽車有限公司汽車工程研究院,陜西 西安 710200)
ISO 13400協(xié)議定義了基于TCP/IP協(xié)議及以太網(wǎng)進行車輛的故障診斷和軟件升級。該協(xié)議覆蓋了通信的物理層(ISO 13400-3)、數(shù)據(jù)鏈路層(ISO 13400-3)、網(wǎng)絡(luò)層(ISO 13400-2)、傳輸層(ISO 13400-2),通信的應(yīng)用層使用的協(xié)議為ISO 14229-1和ISO 14229-5。
本文主要介紹ISO 13400-2協(xié)議中基于因特網(wǎng)協(xié)議(IP)、傳輸控制協(xié)議(TCP)及用戶數(shù)據(jù)報協(xié)議(UDP)3種協(xié)議配合進行外部測試設(shè)備和車輛控制器之間診斷通信的要求,因車輛網(wǎng)絡(luò)架構(gòu)不同,該協(xié)議由一個或多個DOIP實體實現(xiàn),其中TCP和UDP協(xié)議都屬于傳輸層協(xié)議。
在ISO 13400-2協(xié)議中規(guī)定了16個指令,通過組合這些指令,完成車輛聲明、車輛識別、路由激活、在線檢查、實體狀態(tài)、電源檢查、診斷交互等功能的執(zhí)行,功能的指令和執(zhí)行結(jié)果通過基于DOIP消息的車輛通信協(xié)議實現(xiàn),本文介紹幾種常用的指令。
在傳輸層上,DOIP消息可以通過TCP協(xié)議和UDP協(xié)議傳遞,消息從數(shù)據(jù)鏈路層到應(yīng)用層各層的格式定義見圖1。
圖1 各層格式定義
DOIP報頭結(jié)構(gòu)如圖2所示,各部分定義見表1。
表1 DOIP報頭
圖2 DOIP報頭結(jié)構(gòu)
2.2.1 通用DOIP報頭否定響應(yīng)消息
該負載類型(表2)主要用于開發(fā)階段的外部測試設(shè)備(非批產(chǎn)狀態(tài)的臨時設(shè)備)來驗證DOIP實體中DOIP消息的正確實現(xiàn),批產(chǎn)狀態(tài)的外部測試設(shè)備不得使用該負載類型,通用DOIP報頭否定應(yīng)答數(shù)據(jù)結(jié)構(gòu)見表3。
表2 負載類型描述
表3 通用DOIP報頭否定響應(yīng)數(shù)據(jù)結(jié)構(gòu)
表4定義了通用的DOIP報頭NACK碼。
表4 通用的DOIP報頭否定響應(yīng)代碼
2.2.2 車輛識別請求消息和響應(yīng)消息
為了使外部測試設(shè)備能夠訪問DOIP實體,需先通過車輛識別請求獲取DOIP實體的VIN、EID、GID,車輛識別請求消息和響應(yīng)涉及的負載類型為0001、0002、0003、0004,應(yīng)用場景為:①外部診斷設(shè)備已獲取DOIP實體的IP地址但未配置車輛VIN;②外部診斷設(shè)備已獲取DOIP實體的IP地址和車輛的VIN/EID/GID。車輛識別報文格式如表5~表9所示。
表5 車輛識別請求消息和響應(yīng)數(shù)據(jù)結(jié)構(gòu)
表9 車輛識別響應(yīng)消息
表6 無消息負載的識別請求報文
表7 帶EID的車輛識別請求報文
表8 帶VIN的車輛識別請求報文
2.2.3 路由激活請求和響應(yīng)消息
為了使邊緣節(jié)點能夠路由外部測試設(shè)備和DOIP實體之間的診斷請求和響應(yīng),需先通過路由激活請求報文激活邊緣節(jié)點的路由功能,路由激活請求和響應(yīng)的負載類型為0005、0006。如表10~表14所示。
表10 路由激活請求和響應(yīng)數(shù)據(jù)結(jié)構(gòu)
表11 路由激活請求消息
表12 路由激活響應(yīng)消息
表13 激活類型
表14 路由激活響應(yīng)碼
2.2.4 診斷請求和診斷響應(yīng)消息
外部測試設(shè)備和車內(nèi)DOIP實體按照如下順序和原則使用和處理診斷請求和診斷響應(yīng)消息,任何UDS指令的下發(fā)和ECU執(zhí)行結(jié)果的反饋都使用負載類型為8001、8002、8003的DOIP報文協(xié)同完成。如表15~表18所示。
表15 診斷請求和響應(yīng)數(shù)據(jù)格式
表18 DOIP消息否定應(yīng)答
表16 DOIP請求消息
表17 DOIP消息肯定應(yīng)答
1)外部測試設(shè)備通過診斷消息向車內(nèi)發(fā)送需要請求的消息(負載類型為8001)。
2)DOIP實體接收到消息后先進行DOIP報頭和存儲空間的判斷,回復(fù)DOIP協(xié)議響應(yīng)(肯定響應(yīng)使用的負載類型為8002,否定響應(yīng)使用的負載類型為8003)。
3)DOIP實體再進行UDS協(xié)議層面的診斷命令處理,不管執(zhí)行的結(jié)果是肯定應(yīng)答還是否定應(yīng)答,均使用負載類型為8001的DOIP報文進行回復(fù)。
診斷消息否定確認碼見表19。
表19 否定確認碼
目前國內(nèi)外基于車載以太網(wǎng)的診斷和軟件升級都是基于ISO 13400協(xié)議進行展開的,ISO 13400涵蓋了傳輸協(xié)議和網(wǎng)絡(luò)層服務(wù)、連接接口、診斷連接器、一致性測試等方面,在整車和零部件設(shè)計過程中,可參考該協(xié)議進行。