DoIP(一)——基础概念
1. DoIP概述
DoIP(Diagnostic communication over Internet Protocol)是基于車載以太網(wǎng)的診斷,在OSI 七層模型中屬于傳輸層,其傳輸?shù)脑\斷數(shù)據(jù)也是基于UDS,即DoIP是在以太網(wǎng)網(wǎng)絡上傳輸UDS診斷數(shù)據(jù)的傳輸協(xié)議。DoIP帶寬高,適合傳輸大量數(shù)據(jù)的場景,如車上的OTA軟件升級。
ISO 13400-1中給出的協(xié)議體系如下:
?
2. DoIP報文格式
DoIP報文也是基于TCP或UDP,但在其報文的Payload起始段添加了DoIP報頭(首部),用來區(qū)分不同的DoIP報文類型,實現(xiàn)不同的功能。DoIP報文的結(jié)構(gòu)如下圖所示:
?
3. DoIP端口
我們知道不管是TCP還是UDP,都包含源端口號和目的端口號,在DoIP報文中用到了以下三種端口:
(1)UDP_DISCOVERY:端口類型-UDP,端口號-13400
該端口有以下兩個應用場景:
被用于診斷設備發(fā)送給DoIP節(jié)點的車輛信息請求報文和DoIP節(jié)點控制報文,此時該端口在報文中被設置為目的端口。
被用于DoIP節(jié)點在沒有收到請求的時候發(fā)送的UDP報文,如車輛聲明報文。此時該端口同樣被設置為目的端口,源端口可以為該端口,也可以由發(fā)送方動態(tài)定義。
(2)UDP_TEST_EQUIPMENT_REQUEST:端口類型-UDP,端口號-動態(tài)定義(49152-65535)
該端口由外部診斷設備在49152-65535范圍內(nèi)動態(tài)定義,用于診斷設備向DoIP節(jié)點發(fā)送的UDP報文,在報文中作為源端口,報文的目的端口應設置為UDP_DISCOVERY。
當DoIP節(jié)點向診斷設備發(fā)送響應的時候,報文中的目的端口應設置為UDP_TEST_EQUIPMENT_REQUEST,源端口可以為UDP_DISCOVERY,也可以有DoIP節(jié)點動態(tài)定義。
(3)TCP_DATA:端口類型-TCP,端口號-13400
該端口用于外部診斷設備和DoIP節(jié)點之間的TCP通信,如路由報文和診斷報文。當診斷設備向DoIP節(jié)點發(fā)送報文時,使用TCP_DATA作為目的端口號;當DoIP節(jié)點向診斷設備發(fā)送報文時,使用TCP_DATA作為源端口號。
4. DoIP報頭
我們把上圖中DoIP的部分單獨拿出來:
我們可以看到DoIP報文由首部和數(shù)據(jù)兩部分組成,我們先來看一下首部四個參數(shù)的定義:
?
(1)協(xié)議版本(Protocol Version)
長度一字節(jié),代表遵照ISO 13400 的那個版本,定義如下:
0x00:Reserved
0x01: DoIP ISO 13400-2:2010
0x02: DoIP ISO 13400-2:2012
0x03…0xFE: ISO 13400 reserved
0xFF: default value for vehicle identification request messages
(2)協(xié)議版本取反(Inverse Protocol Version)
是上面協(xié)議版本字節(jié)取反后的數(shù)值,即 = 協(xié)議版本 XOR 0xFF。
例如:協(xié)議版本 = 0x02,該字節(jié) = 0x02 ^ 0xFF = 0xFD
(3)數(shù)據(jù)類型(Payload Type)
數(shù)據(jù)類型即DoIP報文的類型,不同類型功能不同,數(shù)據(jù)部分的解析方式也不一樣,我們在下一篇文章中詳細介紹每一種報文類型。
(4)數(shù)據(jù)長度(Payload Length)
我們先來看最后一個參數(shù)——數(shù)據(jù)長度,就是指DoIP報文中DoIP層數(shù)據(jù)的長度,不包括DoIP報頭,只是數(shù)據(jù)長度,4字節(jié),可以為0,最大為0xFFFFFFFF(4GB)。
總結(jié)
以上是生活随笔為你收集整理的DoIP(一)——基础概念的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: chrome控制台如何把vw显示成px_
- 下一篇: 日记 - idea中的中文注释出现乱码的