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

什么是協(xié)議分析儀和訓(xùn)練器
矢量網(wǎng)絡(luò)分析儀出現(xiàn)故障,如何進(jìn)行診斷與修復(fù)?
IP 地址大數(shù)據(jù)分析如何進(jìn)行網(wǎng)絡(luò)優(yōu)化?

ip網(wǎng)絡(luò)音頻終端是什么
如何利用IP查詢技術(shù)保護(hù)網(wǎng)絡(luò)安全?
IP風(fēng)險畫像如何維護(hù)網(wǎng)絡(luò)安全
IP定位技術(shù)追蹤網(wǎng)絡(luò)攻擊源的方法
跨網(wǎng)段 IP 地址通信故障分析

評論