1 概述
DoIP全稱為基于IP網絡的診斷通信Diagnostic communication over Internet Protocol,由ISO 13400標準定義,是基于IP的汽車診斷協議。由于DoIP可以傳輸大量數據,以及響應速度快,且可以通過以太網進行遠程診斷,因此DoIP逐步成為代替傳統的CAN等總線方式,成為車載網絡診斷的必然趨勢。DoIP診斷經由通用的統一診斷服務UDS協議引入診斷服務,通過傳輸控制協議TCP、用戶數據報協議UDP和以太網協議IP,完成外部測試設備與ECU間的診斷通信。在OSI 7層模型中,ISO 13400規定了DoIP的傳輸層、網絡層、數據鏈路層和物理層。應用層和會話層部分和基于CAN總線診斷一樣采用ISO 14229實現。當然,DoIP并不僅僅只是UDS的載體,雖然在ISO13400標準中內容不多,但是它也有自己的一些邏輯,不可能說在TCP/IP之上加了一層封裝就完成了自己的任務,這樣的話安全性就沒有保證了,畢竟車載以太網通過網絡能夠將車內與車外進行網絡的連接,而DoIP又是診斷的入口,這個門口如果不好好看住,會存在安全性的問題的。
2 網絡拓撲
下圖為未來整車架構的網絡拓撲圖,根據該拓撲結構,5個域控制器:車身、動力總成、底盤、信息娛樂、高級駕駛員輔助系統ADAS,通過以太網作為主干網連接,每個域內部均可使用不同網絡,當域與域之間需要信息交流時,報文可經由域控制器路由轉發到目標網絡。
注意圖中的一些關鍵信息可參考DoIP中的以下幾個關鍵概念來理解:
DoIP entity(DoIP實體):實現DoIP協議的節點,即DoIP gateway或者DoIP node;
DoIP gateway( DoIP網關):實現DoIP協議,并能進行協議轉發的節點;
DoIP node(DoIP節點):實現DoIP協議,但不能進行協議轉發的節點;
DoIP edge node(DoIP邊緣節點):連接以太網激活線的DoIP節點,此部分和DoIP gateway有什么區別?其實沒什么區別,唯一的區別就是多了個使能線的判斷,從圖中可以看出External test equipment和DoIP edge node gateway之間有一條線叫做Activation line。那么這條線的功能就是對協議棧進行使能作用的,當然External test equipment和DoIP edge node gateway之間不只是Activation line相連的,這個圖只是功能示意圖,少了很多細節,其實是通過標準的OBD-II接頭相連的,其中一個針腳就是Activation line。
Network Node(網絡節點):連在IP網絡上,但不能實現DoIP的節點。
External test equipment:此部分為外部測試設備,通常為OBD診斷儀或者其他診斷客戶端
端口:指定了端口號,客戶端和服務端可以在此端口上進行收發數據。我們知道不管是TCP還是UDP,都包含源端口號和目的端口號,在DoIP報文中用到了以下三種端口:
UDP_DISCOVERY:端口類型-UDP,端口號-13400,該端口有以下兩個應用場景:
1) 被用于診斷設備發送給DoIP節點的車輛信息請求報文和DoIP節點控制報文,此時該端口在報文中被設置為目的端口。
2) 被用于DoIP節點在沒有收到請求的時候發送的UDP報文,如車輛聲明報文。此時該端口同樣被設置為目的端口,源端口可以為該端口,也可以由發送方動態定義。
UDP_TEST_EQUIPMENT_REQUEST:端口類型-UDP,端口號-動態定義(49152-65535):該端口由外部診斷設備在49152-65535范圍內動態定義,用于診斷設備向DoIP節點發送的UDP報文,在報文中作為源端口,報文的目的端口應設置為UDP_DISCOVERY。當DoIP節點向診斷設備發送響應的時候,報文中的目的端口應設置為UDP_TEST_EQUIPMENT_REQUEST,源端口可以為UDP_DISCOVERY,也可以有DoIP節點動態定義。
TCP_DATA:端口類型-TCP,端口號-13400:該端口用于外部診斷設備和DoIP節點之間的TCP通信,如路由報文和診斷報文。當診斷設備向DoIP節點發送報文時,使用TCP_DATA作為目的端口號;當DoIP節點向診斷設備發送報文時,使用TCP_DATA作為源端口號。
DoIP在車載領域的應用首先汽車系統的整體框架要能夠支持DoIP,正因為車載以太網的快速發展,相較于傳統的車載系統,目前的車載系統的整體框架都會加入一層DoIP協議層,在TCP/IP之上。并且為了更好的配合OBD診斷,遠程診斷,FOTA等等技術,對整體的車載架構進行了調整,利用swich將MPU,MCU,其它以太網ECU統統通過以太網進行連接,并對外網與內網進行隔離。
DoIP架構模型必須實現以下特征:
①車輛與測試設備能夠加入到網絡中并識別對方;②汽車具有聲明存在且被檢測到的能力;③獲取車輛基本狀態信息(如Power Mode狀態);④通信建立,如雙方通信請求建立,保持,以及對網關的控制等;⑤汽車網關實現診斷設備與車輛子網組件之間的數據路由;⑥錯誤狀態處理。
3 DoIP幀格式
DoIP報文由DoIP報頭和Payload(有效載荷)組成,具體如下圖所示。
1)DoIP報頭包含:DoIP協議版本號,目前為0x02(DoIP
2012)。
2)協議版本號取反,目前為0xFD。注意:協議書上特別說明了Protocol version可以為0xFF,設這個值的作用是,當客戶端和服務端的協議版本不匹配,可以設置此值繞過協議頭版本不匹配而拒絕請求的case。
3)Payload類型,分為3大類:
①節點管理類,包含DoIP報頭否定應答、車輛聲明及標識、路由激活、在線檢查;
②車輛信息類,包含DoIP實體狀態、診斷電源模式信息;
③診斷數據類,包含診斷報文。
關于每個類型的含義如下表所示,具體含義參考標準即可。
4 DoIP狀態機和通信流程
DoIP實體內管理著一個DoIP connection table ,用來記錄和維護診斷通信的邏輯連接。上圖就是這個表中的一個元素,即一個邏輯連接的狀態機。上圖中的方框就是連接所處的狀態,[Step]是狀態之間跳轉時發生的事情。
[Step1] 當一個新的套接字建立,邏輯連接的狀態就從“listen”跳轉到“socket initialized”,同時啟動一個定時器, initial inactivity timer。
[Step2] 當DoIP實體接收到tester發來的一個routing activation信息后,邏輯連接的狀態就從“socket initialized”跳轉到“Registered [Pending for Authentication]” ,此時 initial inactivity timer被停止,啟動一個名為general inactivity timer的定時器。
[Step3] 在完成Authentication之后,邏輯連接的狀態就從“Registered [Pending for Authentication]”跳轉到“Registered [Pending for Confrmation]” 。
[Step4] 在完成Confrmation之后,邏輯連接的狀態就從“Registered [Pending for Confrmation]”跳轉到“Registered [Routing Active] ” 。
[Step5] 如果initial timer 或general inactivity timer 過期后仍沒收到后續請求,或者authentication 和 confrmation 被拒絕了,又或者外部測試設備對alive check 消息沒有響應,則邏輯連接進入“Finalize”狀態。
[Step6]進入Finalize后,此時TCP套接字將被關閉,并重新回到“listen”狀態。
5 DoIP通信流程
通信的建立
當一輛車和外部測試設備都連接到DoIP網絡中,并且IP地址配置完成,DoIP實體將通過車輛公告信息廣播其VIN、EID、GID和邏輯地址3次,外部測試設備通過廣播發送車輛識別請求來觸發車輛識別響應,從而完成車輛聲明及標識步驟。打開Socket(套接字)是外部測試設備向車輛內部DoIP實體發起連接的第一步,必須在交換任何報文前完成,一旦建立了連接,必須執行一些初始化操作。為了激活初始化連接中的路由,外部測試設備將發送一個路由激活請求消息到DoIP實體。如果外部測試設備符合條件,DoIP實體將發送一個路由激活成功的響應,此時就可以對有效的DoIP報文(如DoIP診斷報文)進行轉發或處理。DoIP會話示例如下圖所示。
報文頭的處理
每個DoIP實體(實現了DoIP協議的節點)將按下圖中指定的順序處理所有DoIP報文的通用DoIP報頭結構
如果接收到來自DoIP實體不正確的DoIP報文,外部測試設備不得發送通用DoIP報頭的否定應答報文。通用DoIP報頭否定應答報文只能用于確定先前發送的DoIP報文的錯誤條件。
審核編輯:郭婷
-
控制器
+關注
關注
113文章
16508瀏覽量
179968 -
以太網
+關注
關注
40文章
5476瀏覽量
172977 -
總線
+關注
關注
10文章
2910瀏覽量
88539
原文標題:5 ?DoIP通信流程
文章出處:【微信號:談思實驗室,微信公眾號:談思實驗室】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
光通信網絡故障排除技巧
數據網絡分析儀的原理和應用場景
時域網絡分析儀的原理和應用場景
揭秘EtherNet/IP:工業設備的高效通信方案

矢量網絡分析儀出現故障,如何進行診斷與修復?
IP定位技術追蹤網絡攻擊源的方法
IP地址與網絡監控
工廠網絡中出現相同IP設備如何進行實時通信

評論