0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

詳解以太網(wǎng)診斷DoIP

jf_EksNQtU6 ? 來源:車端 ? 作者:車端 ? 2022-11-11 15:02 ? 次閱讀

01.概述

所謂的DoIP其實就是基于以太網(wǎng)的通訊協(xié)議對UDS協(xié)議的數(shù)據(jù)進行傳輸,即Diagnostic communication over Internet Protocol。其本身也是一種協(xié)議,規(guī)范于ISO13400標準。由于DoIP可以傳輸大量數(shù)據(jù),以及響應速度快,且可以通過以太網(wǎng)進行遠程診斷,因此DoIP逐步成為代替?zhèn)鹘y(tǒng)的CAN等總線方式,成為車載網(wǎng)絡診斷的必然趨勢。

DoIP在車載領域的應用首先汽車系統(tǒng)的整體框架要能夠支持DoIP,正因為車載以太網(wǎng)的快速發(fā)展,相較于傳統(tǒng)的車載系統(tǒng),目前的車載系統(tǒng)的整體框架都會加入一層DoIP協(xié)議層,在TCP/IP之上。并且為了更好的配合OBD診斷,遠程診斷,F(xiàn)OTA等等技術(shù),對整體的車載架構(gòu)進行了調(diào)整,利用swich將MPU,MCU,其它以太網(wǎng)ECU統(tǒng)統(tǒng)通過以太網(wǎng)進行連接,并對外網(wǎng)與內(nèi)網(wǎng)進行隔離。

當然,DoIP并不僅僅只是UDS的載體,雖然在ISO13400標準中內(nèi)容不多,但是它也有自己的一些邏輯,不可能說在TCP/IP之上加了一層封裝就完成了自己的任務,這樣的話安全性就沒有保證了,畢竟車載以太網(wǎng)通過網(wǎng)絡能夠?qū)④噧?nèi)與車外進行網(wǎng)絡的連接,而DoIP又是診斷的入口,這個門口如果不好好看住,會存在安全性的問題的。

簡單的說,DoIP能夠進行車輛發(fā)現(xiàn),狀態(tài)查詢,路由激活(含安全認證),診斷數(shù)據(jù)收發(fā),這些內(nèi)容將在后續(xù)進行詳細的展開。

有了DoIP,那么UDS的數(shù)據(jù)傳輸就可以搭載在DoIP之上,并在DoIP前序邏輯都OK的情況下,進行UDS的傳輸。當然DoIP之上也可以不搭載UDS數(shù)據(jù),這屬于客戶定制,能夠滿足以太網(wǎng)傳輸?shù)囊恍┢渌厥庑枨蟆?/p>

02.DoIP的網(wǎng)絡拓撲

在ISO13400-2中有如下一張圖,比較具有代表性,我們本文主要就根據(jù)此網(wǎng)絡拓撲圖來介紹DoIP的網(wǎng)絡拓撲

239cb4c4-3034-11ed-ba43-dac502259ad0.png

從圖中不難看出,整車的網(wǎng)絡拓撲被分為了兩個部分,即內(nèi)部網(wǎng)絡和外部網(wǎng)絡,圖中的network node可以默認為支持以太網(wǎng)連接的某個節(jié)點,如,雷達,攝像頭等,但是不支持DoIP協(xié)議,不過大家可以對名稱中含有DoIP前綴的節(jié)點進行網(wǎng)絡分析。從圖中我們很容易看出DoIP的網(wǎng)絡拓撲有以下幾個角色組成,

1.External test equipment

此部分為外部測試設備,通常為OBD診斷儀或者其他診斷客戶端

2. DoIP edge node gateway

此部分和DoIP gateway有什么區(qū)別?其實沒什么區(qū)別,唯一的區(qū)別就是多了個使能線的判斷,從圖中可以看出External test equipment和DoIP edge node gateway之間有一條線叫做Activation line。那么這條線的功能就是對協(xié)議棧進行使能作用的,當然External test equipment和DoIP edge node gateway之間不只是Activation line相連的,這個圖只是功能示意圖,少了很多細節(jié),其實是通過標準的OBD-II接頭相連的,其中一個針腳就是Activation line。具體可以看ISO 13400-4的介紹。

回過來,這個角色的作用是什么?

首先它是個gateway,作為一個網(wǎng)關(guān)它的子網(wǎng)內(nèi)掛載著若干ECU,與DoIP gateway一樣

其次它是車內(nèi)網(wǎng)與車外網(wǎng)交互的一個入口,具有控制著DoIP協(xié)議棧是否工作的一個開關(guān)功能。

該角色可以同時支持Server端和Client端,Server好理解,測試設備可以診斷該網(wǎng)關(guān)下的某個ECU節(jié)點。那么Client端是怎么回事呢?想象一下,如果DoIP edge node gateway作為入口,那么怎樣和內(nèi)部其它子網(wǎng)的DoIP ECU進行交互呢?當然是由DoIP edge node gateway進行轉(zhuǎn)發(fā)。這只是其中一個應用場景,當進行轉(zhuǎn)發(fā)的時候會進行身份切換,即由Server端切換到Client端。另外一個場景是OTA升級,DoIP edge node gateway的應用層可以跑一個OTA客戶端程序,進行對內(nèi)網(wǎng)ECU的診斷及刷寫,此時就是一個Client身份。

3. DoIP gateway

DoIP gateway與角色二 DoIP edge node gateway區(qū)別不是很大。實際的應用場景通常會讓MCU充當這個角色,而MPU充當DoIP edge node gateway的角色,也有反過來的情況,那么該角色通常單單的跑Server端程序。

4. DoIP node

該角色很好理解,對支持以太網(wǎng)連接的同時支持DoIP協(xié)議的ECU認為是DoIP node。

該角色通常單單的跑Server端程序。

整個車輛網(wǎng)絡由四個角色組成,外部測試設備作為客戶端,對車內(nèi)網(wǎng)的各個支持DoIP協(xié)議棧的ECU進行診斷。(部分CAN ECU通常掛載在MCU上,由MCU進行DoIP轉(zhuǎn)DoCAN的路由)車外網(wǎng)的外部測試設備通過OBD-II與車內(nèi)網(wǎng)的edge gateway進行通信,edge gateway用來使能車內(nèi)網(wǎng)的DoIP功能。在路由打通后,發(fā)送的診斷數(shù)據(jù)根據(jù)目的地址的不同分別流向車內(nèi)網(wǎng)的不同ECU。

03.DoIP的接收方式和協(xié)議格式

3.1 端口

從DoIP名字可以看出,該協(xié)議是在TCP/IP之上的,那么要想接收DoIP協(xié)議的報文,協(xié)議書規(guī)定需要監(jiān)聽一個專門分配給DoIP協(xié)議棧使用的端口號即13400,UDP,TCP都要監(jiān)聽此接受端口,而發(fā)送端口是在一個范圍內(nèi)的隨機值[49152~65535],當然代碼中協(xié)議棧要對對端的發(fā)送端口進行緩存,用于回送數(shù)據(jù)。

指定了端口號,客戶端和服務端可以在此端口上進行收發(fā)數(shù)據(jù)。那么對該端口收到的數(shù)據(jù)是否真的是DoIP報文,就行對該網(wǎng)絡報文進行解析。(有可能是網(wǎng)絡攻擊,有可能是其它應用恰好使用了該端口號)

對收到的報文進行解析,就涉及到DoIP協(xié)議的構(gòu)成,只有符合該寫一點規(guī)范才認為是合法有效的DoIP報文。

3.2 協(xié)議格式

DoIP報文由協(xié)議頭(header)+ 負載(payload)組成

協(xié)議頭[8 byte]由下面四個字段組成

23c892ce-3034-11ed-ba43-dac502259ad0.png

Protocol version [1 byte]

Inverse protocol version [1 byte]

Payload type [2 byte]

Payload length [4 byte]

負載[N byte] 根據(jù)實際的payload type,負載數(shù)據(jù)會不同

3.3Protocol version與Inverse protocol version

通常Protocol version為0x02,目前0x02以上的值目前是reserved狀態(tài)

Inverse protocol version是Protocol version的取反的值,此例0x02去反后為0xFD

協(xié)議書上特別說明了Protocol version可以為0xFF,設這個值的作用是,當客戶端和服務端的協(xié)議版本不匹配,可以設置此值繞過協(xié)議頭版本不匹配而拒絕請求的case。

3.4 Payload type

payload type可以代表DoIP協(xié)議棧所能支持的功能,列舉如下(特意分開了Server支持的type及Client支持的type)

DoIP SERVER

23f13b20-3034-11ed-ba43-dac502259ad0.png

DoIP Client

24289f8e-3034-11ed-ba43-dac502259ad0.png

如上分開描述,是因為在代碼實現(xiàn)上,可以將邏輯拆分。

即Server端只關(guān)心自己支持的payload type,客戶端只關(guān)心自己支持的payload type,不支持的可以忽視掉。有利于模塊拆分及組合,有利于實現(xiàn)上一節(jié)所講個各個角色,將來通過配置文件的配置,來表示不同的角色。

3.5 Payload length

payload length這里分配了4字節(jié),也就是所DoIP報文最大傳輸4 GB /4294967295 bytes,即0xFFFFFFFF。它只是個允許的范圍,通常來說通過DoIP進行診斷也就幾字節(jié)到幾十字節(jié),而升級通常ECU的升級包也就幾MB。所以4 GB只是個理論上限。

該值可以做長度的有效性驗證,因為除了診斷數(shù)據(jù),其它payload type都是有固定長度的。

還可以做什么?其實做開發(fā)時還要考慮遇到如下情況該怎么處理

1. 數(shù)據(jù)粘連

2. 數(shù)據(jù)截斷

3. 異常的超大size

4. 超過協(xié)議??梢蕴幚韘ize

3.6 Payload

這里的負載是指的是DoIP協(xié)議的負載,當然當Payload type為診斷類型時,其負載除了DoIP自身的內(nèi)容,

還包含了UDS數(shù)據(jù),供上層UDS模塊進行進一步的解析。

因為每個Payload type負載都不同,這里不做解釋,在后續(xù)功能章節(jié),進行詳細的介紹

04.DoIP診斷啟動與使用

4.1 連接建立

2441ead4-3034-11ed-ba43-dac502259ad0.png

DoIP實體內(nèi)管理著一個DoIP connection table ,用來記錄和維護診斷通信的邏輯連接。上圖就是這個表中的一個元素,即一個邏輯連接的狀態(tài)機。上圖中的方框就是連接所處的狀態(tài),[Step]是狀態(tài)之間跳轉(zhuǎn)時發(fā)生的事情。

[Step1] 當一個新的套接字建立,邏輯連接的狀態(tài)就從“l(fā)isten”跳轉(zhuǎn)到“socket initialized”,同時啟動一個定時器, initial inactivity timer。

[Step2] 當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 被拒絕了,又或者外部測試設備對alive check 消息沒有響應,則邏輯連接進入“Finalize”狀態(tài)。

[Step6]進入Finalize后,此時TCP套接字將被關(guān)閉,并重新回到“l(fā)isten”狀態(tài)。

4.2 車輛發(fā)現(xiàn)

245d8a14-3034-11ed-ba43-dac502259ad0.png

當DoIP實體和外部測試設備都連接到一個網(wǎng)絡中時,它們會利用DHCP協(xié)議獲得一個屬于自己的IP地址。在網(wǎng)絡中,路由器作為DHCP server,為新加入到該網(wǎng)絡中的設備分配IP地址。在獲取IP地址之后,有兩種車輛發(fā)現(xiàn)的方法,如上圖所示。一種方法是車輛主動上報自己的信息3次。如果測試設備沒有收到車輛主動上報的信息,則會發(fā)送一個identification request,如果網(wǎng)絡中有車輛的話,車輛對這個請求進行響應,測試設備便發(fā)現(xiàn)了被測車輛。

4.3 會話建立

2476765a-3034-11ed-ba43-dac502259ad0.png

在診斷儀發(fā)現(xiàn)車輛之后,會把車輛添加到自己的車輛列表中。當用戶選擇這個列表中的某輛車,如果連接建立成功,用戶就可以對車輛進行診斷了。

接下來用戶給汽車發(fā)出診斷信息,網(wǎng)關(guān)會根據(jù)信息接收對象把診斷信息轉(zhuǎn)發(fā)給網(wǎng)絡中相關(guān)的ECU,當?shù)玫紼CU 的響應之后,網(wǎng)關(guān)再把最終的響應發(fā)送給診斷儀。當用戶選擇退出時,用于DoIP通信的這個套接字就被關(guān)閉了。

下圖是一個DoIP數(shù)據(jù)完整結(jié)構(gòu)的數(shù)據(jù)舉例:

24ae5f48-3034-11ed-ba43-dac502259ad0.png

DoIP數(shù)據(jù)完整結(jié)構(gòu)舉例

byte 0:ISO13400 版本

byte 1:ISO13400 版本逐比特取反

byte 2~3:數(shù)據(jù)類型,0x8001,表明這是一個診斷信息的數(shù)據(jù)包

byte 4~7:數(shù)據(jù)長度,在這個例子中的值是7,表示后面有7個字節(jié)的數(shù)據(jù)

byte 8~9:源地址

byte 10~11:目的地址

byte 12~13:具體的診斷命令,SID是22,表示讀取,DID是0xF8 10

這個數(shù)據(jù)段作為SDU傳遞給下層協(xié)議,逐層封裝成為完整的以太網(wǎng)幀發(fā)送出去。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 以太網(wǎng)
    +關(guān)注

    關(guān)注

    40

    文章

    5287

    瀏覽量

    169636
  • CAN
    CAN
    +關(guān)注

    關(guān)注

    57

    文章

    2663

    瀏覽量

    462432
  • 通訊協(xié)議
    +關(guān)注

    關(guān)注

    10

    文章

    263

    瀏覽量

    20270

原文標題:詳解以太網(wǎng)診斷DoIP

文章出處:【微信號:談思實驗室,微信公眾號:談思實驗室】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    汽車以太網(wǎng)會面臨哪些物理挑戰(zhàn)?

    如今,以太網(wǎng)是汽車領域的一項成熟技術(shù),它延續(xù)采用并集成 ISO 13400 互聯(lián)網(wǎng)協(xié)議診斷通信 (DoIP) 協(xié)議。這種趨勢正通過標準的以太網(wǎng)物理接口提供迅速的重新編程速度。當然,要想
    發(fā)表于 01-26 09:39 ?3917次閱讀

    基于以太網(wǎng)的車輛診斷協(xié)議DOIP系統(tǒng)機制

    DoIP報頭一方面能夠標識其為DoIP報文,另一方面通過DoIP協(xié)議中的報頭處理機制,能夠屏蔽錯誤或無法處理等情況的報文,如果報文不能被正確的處理,DoIP實體需要響應一個長度為1字節(jié)
    發(fā)表于 10-09 15:22 ?3050次閱讀
    基于<b class='flag-5'>以太網(wǎng)</b>的車輛<b class='flag-5'>診斷</b>協(xié)議<b class='flag-5'>DOIP</b>系統(tǒng)機制

    EtherCAT實時以太網(wǎng)分析儀功能詳解#以太網(wǎng)

    以太網(wǎng)ethercat
    ZLG致遠電子
    發(fā)布于 :2022年12月12日 10:04:00

    以太網(wǎng)是什么鬼?以太網(wǎng)基礎知識詳解

    以太網(wǎng)
    電子學習
    發(fā)布于 :2023年02月07日 21:05:57

    汽車以太網(wǎng)將面臨哪些挑戰(zhàn)

    如今,以太網(wǎng)是汽車領域的一項成熟技術(shù),它延續(xù)采用并集成 ISO 13400 互聯(lián)網(wǎng)協(xié)議診斷通信 (DoIP) 協(xié)議。這種趨勢正通過標準的以太網(wǎng)物理接口提供迅速的重新編程速度。當然,要想
    發(fā)表于 05-07 07:35

    基于以太網(wǎng)的電機控制與診斷研究

    以太網(wǎng)最早由Xerox(施樂)公司創(chuàng)建,在1980年,DEC、lntel和Xerox三家公司聯(lián)合開發(fā)成為一個標準。以太網(wǎng)是應用最為廣泛的局域網(wǎng),包括標準的以太網(wǎng)(10Mbit/s)、快
    發(fā)表于 06-22 15:37 ?32次下載
    基于<b class='flag-5'>以太網(wǎng)</b>的電機控制與<b class='flag-5'>診斷</b>研究

    基于以太網(wǎng)的電機控制與診斷的研究

    提出了1種基于以太網(wǎng)的電機控制與診斷方案,闡述了具體的實現(xiàn)過程。基于以太網(wǎng)的電機控制與診斷系統(tǒng)采用C8051F020單片機作為系統(tǒng)的核心控制器件,通過RTL8019AS網(wǎng)卡與Inter
    發(fā)表于 08-24 14:48 ?806次閱讀
    基于<b class='flag-5'>以太網(wǎng)</b>的電機控制與<b class='flag-5'>診斷</b>的研究

    一文詳解什么是實時以太網(wǎng)

    工業(yè)以太網(wǎng)——實時以太網(wǎng)——在過去幾年中經(jīng)歷了巨大的增長。雖然經(jīng)典的現(xiàn)場總線仍大量存在,但它們已經(jīng)過了巔峰期。流行的實時以太網(wǎng)協(xié)議擴展了以太網(wǎng)標準,可以滿足實時功能的要求。現(xiàn)在,TSN
    發(fā)表于 08-04 09:49 ?1.3w次閱讀
    一文<b class='flag-5'>詳解</b>什么是實時<b class='flag-5'>以太網(wǎng)</b>

    DoIP的網(wǎng)絡拓撲

    DoIP在車載領域的應用首先汽車系統(tǒng)的整體框架要能夠支持DoIP,正因為車載以太網(wǎng)的快速發(fā)展,相較于傳統(tǒng)的車載系統(tǒng),目前的車載系統(tǒng)的整體框架都會加入一層DoIP協(xié)議層,在TCP/IP之
    發(fā)表于 08-31 16:58 ?736次閱讀

    基于以太網(wǎng)的標準化車輛診斷

    由于電子系統(tǒng)越來越復雜,車輛中的數(shù)據(jù)量不斷增加,車輛診斷和ECU編程必須相應地高效。為此,基于以太網(wǎng)技術(shù)的通信的以太網(wǎng)協(xié)議診斷(DoIP)越
    的頭像 發(fā)表于 11-25 17:18 ?1013次閱讀

    一文讀懂以太網(wǎng)與CANoe的配置

    以太網(wǎng)在視頻數(shù)據(jù)傳輸、寬帶骨干網(wǎng)絡、IP診斷DoIP)以及電動汽車與充電站之間的通信等領域特別有用。Ethernet.Option擴展 CANoe 以包括對以太網(wǎng)網(wǎng)絡的支持,允許使用
    的頭像 發(fā)表于 12-26 16:08 ?8056次閱讀

    車載以太網(wǎng)診斷協(xié)議DoIP介紹

    ISO13400標準。由于DoIP可以傳輸大量數(shù)據(jù),以及響應速度快,且可以通過以太網(wǎng)進行遠程診斷,因此DoIP逐步成為代替?zhèn)鹘y(tǒng)的CAN等總線方式,成為車載網(wǎng)絡
    的頭像 發(fā)表于 02-09 17:26 ?2905次閱讀

    基于以太網(wǎng)的網(wǎng)絡管理報文

    公共模塊,完成數(shù)據(jù)鏈路層以及傳輸層的報文接收與發(fā)送任務。 3)Doip模塊基于以太網(wǎng)的通訊協(xié)議對UDS數(shù)據(jù)進行傳輸,主要實現(xiàn)的基于ISO13400中規(guī)定的協(xié)議功能。在Doip模塊收到Soad模塊的
    的頭像 發(fā)表于 10-04 17:26 ?941次閱讀
    基于<b class='flag-5'>以太網(wǎng)</b>的網(wǎng)絡管理報文

    車載以太網(wǎng) | TSMaster的DoIP功能操作指南

    車載以太網(wǎng)診斷協(xié)議,DiagnosticsoverInternetProtocol簡稱為DoIP,可以通過以太網(wǎng)協(xié)議進行汽車診斷。
    的頭像 發(fā)表于 04-13 08:21 ?681次閱讀
    車載<b class='flag-5'>以太網(wǎng)</b> | TSMaster的<b class='flag-5'>DoIP</b>功能操作指南

    車載以太網(wǎng)性能優(yōu)化方案

    在車載以太網(wǎng)開發(fā)過程中,我們最為常見的應用層協(xié)議主要是SOMEIP與DOIP兩大類協(xié)議,其中SOMEIP協(xié)議作為實現(xiàn)SOA架構(gòu)的一種重要實現(xiàn)手段被廣泛應用,DOIP協(xié)議則針對大文件的刷寫場景,大大提高了刷寫效率。
    的頭像 發(fā)表于 07-25 10:36 ?383次閱讀
    車載<b class='flag-5'>以太網(wǎng)</b>性能優(yōu)化方案