车载 DOIP协议
DoIP是Diagnostic communication over Internet Protocol 的簡稱
應用層基于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數據作為SDU層層向下傳遞,直至構成完整的以太網幀,通過物理層的介質發送出去。DoIP的數據內容分為5個部分:
應用場景
ISO13400中定義了DoIP的4種使用場景,如下四幅圖所示:
?
?
?
?
路由機制
根據隱藏在Gateway后面的控制器的診斷類型的不同(比如有的通過DoIP,有的通DoCAN等),DoIP的路由機制可以分為兩種,分別是CutThrough(以太網對以太網) 和Store&Forward-Routing (以太網對CAN, CAN FD 和LIN等)。
我用PPT粗略地畫了兩個示意圖展示一下:
?
?
原理很簡單,當網關后面被診斷的ECU也支持DoIP時,則網關每收到一個以太網幀,只需要更改以太網幀包頭中的地址信息即可轉發出去。而如果網關后面被診斷的ECU不支持Ethernet,則網關需要完整地接收所有的診斷數據之后,再從應用層開始重新組織適合其他總線傳輸的數據幀。
總結
- 上一篇: Boosting(提升方法)之GBDT
- 下一篇: java代码_Java 代码实现排序算法