本文是關于DoIP技術的第一篇文章,主要進行一些概念介紹,具體的細節會在後續的文章中和大家探讨。
DoIP是Diagnostic communication over Internet Protocol 的簡稱,顧名思義,就是通過網絡協定進行診斷通信。這裡的網絡協定,指的就是OSI七層模型中,通用計算機網絡所使用的從層4到層1這四層協定。
DoIP由ISO13400 系列标準定義,作為實作基于Ethernet的診斷通信的方案。本标準的各部分内容如下:
— Part 1: General information and use case defnition
— Part 2: Transport protocol and network layer services
— Part 3: Wired vehicle interface based on IEEE 802.3
— Part 4: Ethernet Diagnostic Connector
— Part 5: Conformance test specifcation
我這裡隻有前四個,不知道第五個測試标準是否已經定義完了。
DoIP的優勢有以下幾點:更快的診斷響應
傳輸大量資料的時間更短(用于軟體重新整理和參數下載下傳)
使得遠端的直接診斷成為可能
ISO13400定義的DoIP診斷中各層次所使用的标準号
上圖展示了DoIP通信完整協定棧所使用的标準号。
ISO13400-1處于應用層(層7)之上,是對一些通用資訊、應用場景的描述。
應用層基于ISO14229-1和ISO14229-5,前者是UDS的完整定義,後者是UDS通過網絡協定傳輸的實作。
會話層(層5),ISO14229-2對于所有的診斷通信都是一樣的,目的是為上層提供統一的接口,使上層應用不需要随着底層通信技術的變化而改變。
傳輸層和網絡層(層4和層3)由ISO13400-2定義,ISO13400-2中規定了DoIP通信在傳輸層中使用TCP和UDP協定,在網絡層中使用IPv4或IPv6。此标準中還定義了專屬于DoIP通信的資訊内容,這些資訊和上層的診斷指令共同構成了傳給TCP或UDP協定的SDU。
ISO13400-2定義了DoIP診斷通信對Ethernet資料鍊路層(層2)和實體層(層1)的要求,比如,規定DoIP通信在這兩層上支援100BASE-TX (100 Mbit/s Ethernet) 和10BASE-T (10 Mbit/s Ethernet) 兩種方案。
DoIP資料的基本結構
DoIP資料映射到以太網幀中
DoIP資料作為SDU層層向下傳遞,直至構成完整的以太網幀,通過實體層的媒體發送出去。DoIP的資料内容分為5個部分:所使用的ISO13400版本資訊,占用1個位元組
所使用的ISO13400版本資訊依比特取反,占用1個位元組
資料類型,占用2個位元組(辨別本幀資料的用途,比如用于上報或請求車輛資訊、診斷指令、診斷邏輯連結激活、alive check等)
資料長度,占用4個位元組(辨別後面的資料長度)
診斷資料,長度為0至2的32次方減1,這裡的資料又分為sender address、receiver address、 應用資料這三部分。
應用場景
ISO13400中定義了DoIP的4種使用場景,如下四幅圖所示:
點對點直連
多台外部測試裝置分别和多台汽車在區域網路内通過交換機點對點連接配接
一台外部測試裝置跨越本地網絡與多台車輛連接配接
外部測試裝置的多個應用層實體(在一台硬體或多台硬體上)與單個車輛連接配接
路由機制
根據隐藏在Gateway後面的控制器的診斷類型的不同(比如有的通過DoIP,有的通DoCAN等),DoIP的路由機制可以分為兩種,分别是CutThrough(以太網對以太網) 和Store&Forward-Routing (以太網對CAN, CAN FD 和LIN等)。
我用PPT粗略地畫了兩個示意圖展示一下:
CutThrough
Store&Forward-Routing
原理很簡單,當網關後面被診斷的ECU也支援DoIP時,則網關每收到一個以太網幀,隻需要更改以太網幀標頭中的位址資訊即可轉發出去。而如果網關後面被診斷的ECU不支援Ethernet,則網關需要完整地接收所有的診斷資料之後,再從應用層開始重新組織适合其他總線傳輸的資料幀。