DoIP基础知识
1、概述
????????DoIP是Diagnostic communication over Internet Protocol 的簡(jiǎn)稱,顧名思義,就是通過(guò)網(wǎng)絡(luò)協(xié)議進(jìn)行診斷通信。
????????ISO 13400的所有部分都基于ISO/IEC 7498-1中規(guī)定的OSI基本參考模型,該模型將通信系統(tǒng)分為七層。從上到下稱為應(yīng)用層(第7層)、表示層、會(huì)話層、傳輸層、網(wǎng)絡(luò)層、數(shù)據(jù)鏈路層和物理層(第1層)。ISO 13400使用了這些層的一個(gè)子集。ISO 13400為DoIP指定了傳輸層、網(wǎng)絡(luò)層、數(shù)據(jù)鏈路層和物理層。
????????ISO 13400由以下部分組成,其總稱為"道路車輛-互聯(lián)網(wǎng)協(xié)議診斷通訊"(DoIP):
????????????????1、 一般信息和用例定義。
????????????????2、 傳輸協(xié)議和網(wǎng)絡(luò)層服務(wù)。
????????????????3、 基于IEEE 802.3的有線車輛接口。
????????以下部分正在籌備中
????????????????4、 以太網(wǎng)診斷連接器。
????????????????5、 一致性測(cè)試規(guī)范。
????????ISO 13400協(xié)議與OSI基本參考模型的對(duì)應(yīng)關(guān)系可參考下圖:
2、DoIP的優(yōu)勢(shì)
??????? 1、更快的診斷響應(yīng)。
??????? 2、傳輸大量數(shù)據(jù)的時(shí)間更短(用于軟件刷新和參數(shù)下載)。
??????? 2、使得遠(yuǎn)程的直接診斷成為可能。
3、基本要求
3.1、數(shù)據(jù)鏈路與物理層要求
????????根據(jù)ISO-13400的要求,DoIP通信在物理層支持100BASE-TX (100 Mbit/s Ethernet) 和10BASE-T (10 Mbit/s Ethernet) 兩種制式。DoIP設(shè)備的MAC地址也符合IEEE 802.3 的要求。
3.2、傳輸層與網(wǎng)絡(luò)層要求
????????ISO-13400規(guī)定,DoIP通信在傳輸層上必須同時(shí)支持UDP和TCP,并將UDP和TCP的使用場(chǎng)合進(jìn)行了定義,對(duì)所使用的端口號(hào)也進(jìn)行了定義。后續(xù)會(huì)說(shuō)明。
????????ISO-13400規(guī)定,DoIP通信在網(wǎng)絡(luò)層上使用IPv6協(xié)議,但是為了后向兼容的原因,也支持IPv4。此外,對(duì)于IPv4來(lái)說(shuō),還要支持地址解析協(xié)議(ARP),對(duì)于IPv6來(lái)說(shuō),還要支持鄰居發(fā)現(xiàn)協(xié)議(NDP),這兩個(gè)協(xié)議是用于在只知道IP地址的情況下獲取MAC地址的。
4、基本數(shù)據(jù)類型
?
????????DoIP數(shù)據(jù)作為SDU層層向下傳遞,直至構(gòu)成完整的以太網(wǎng)幀,通過(guò)物理層的介質(zhì)發(fā)送出去。DoIP的數(shù)據(jù)內(nèi)容分為5個(gè)部分:
????????1、所使用的ISO13400版本信息,占用1個(gè)字節(jié)。
????????2、所使用的ISO13400版本信息依比特取反,占用1個(gè)字節(jié)。
????????3、數(shù)據(jù)類型,占用2個(gè)字節(jié)(標(biāo)識(shí)本幀數(shù)據(jù)的用途,比如用于上報(bào)或請(qǐng)求車輛信息、診斷命令、診斷邏輯鏈接激活、alive check等)。
????????4、數(shù)據(jù)長(zhǎng)度,占用4個(gè)字節(jié)(標(biāo)識(shí)后面的數(shù)據(jù)長(zhǎng)度)。
????????5、診斷數(shù)據(jù),長(zhǎng)度為0至2的32次方減1,這里的數(shù)據(jù)又分為sender address、receiver address、應(yīng)用數(shù)據(jù)這三部分。
4.1、ISO13400版本取值范圍
????????DoIP版本取值范圍如下表:
| Version | 含義 |
| 0x00 | reserved |
| 0x01 | DoIP ISO/DIS 13400-2:2010 |
| 0x02 | DoIP ISO 13400-2:2012 |
| 0x03…0xFE | reserved by this part of ISO 13400 |
| 0xFF | default value for vehicle identifcation request messages |
4.2、ISO13400數(shù)據(jù)類型
DoIP數(shù)據(jù)的第三個(gè)部分是data type,即描述數(shù)據(jù)包中的數(shù)據(jù)類型,取值范圍如下圖所示:
????????上面這個(gè)表格不但定義了代表不同數(shù)據(jù)類型的值,還說(shuō)明了具體的數(shù)據(jù)類型應(yīng)該是通過(guò)UDP還是TCP來(lái)發(fā),并定義了應(yīng)該在哪個(gè)端口上發(fā)。
????????其中最常用的數(shù)據(jù)類型應(yīng)該是0x8001,0x8002,0x8003了,代表的含義分別是診斷消息、診斷消息正響應(yīng)和診斷消息負(fù)響應(yīng)。
????????0x0001至0x0004用于汽車標(biāo)識(shí)上報(bào)或請(qǐng)求,只能通過(guò)UDP報(bào)文來(lái)發(fā)送這種命令,主要用于在汽車和診斷儀進(jìn)入網(wǎng)絡(luò)之后、診斷連接建立之前的車輛發(fā)現(xiàn)過(guò)程。
????????0x0005和0x0006標(biāo)識(shí)的Routing activation request 和 response用于在socket建立之后,進(jìn)行診斷通信的請(qǐng)求。
????????0x0007和0x0008用于Alive check,用于檢查當(dāng)前建立的診斷連接socket是否仍然在使用中,如果不再使用,則關(guān)閉socket釋放資源。
4.3、ISO13400完整數(shù)據(jù)結(jié)構(gòu)舉例
????????下圖是一個(gè)DoIP數(shù)據(jù)完整結(jié)構(gòu)的舉例
?5、DoIP的使用場(chǎng)景
????????ISO13400中定義了DoIP的4種使用場(chǎng)景。
5.1、一輛車和一個(gè)外部測(cè)試設(shè)備實(shí)例之間的直接物理連接
?
5.2、一輛車和一個(gè)外部測(cè)試設(shè)備實(shí)例之間的網(wǎng)絡(luò)連接
????????這種通信場(chǎng)景意味著多個(gè)車輛和多個(gè)外部測(cè)試設(shè)備被連接到同一個(gè)網(wǎng)絡(luò)。這意味著外部測(cè)試設(shè)備應(yīng)有可能識(shí)別網(wǎng)絡(luò)中的車輛,并選擇與之建立通信的特定車輛。從車輛的角度來(lái)看,這意味著車輛應(yīng)該實(shí)現(xiàn)識(shí)別機(jī)制,并且應(yīng)該能夠處理或拒絕多個(gè)連接嘗試,因?yàn)槠渌獠繙y(cè)試設(shè)備可能會(huì)干擾當(dāng)前建立的通信。外部測(cè)試設(shè)備和車輛都應(yīng)支持將自身集成到現(xiàn)有IP網(wǎng)絡(luò)中,其中包括網(wǎng)絡(luò)層參數(shù)的協(xié)商。這種通信場(chǎng)景通常發(fā)生在車輛連接到現(xiàn)有網(wǎng)絡(luò)或無(wú)線基礎(chǔ)設(shè)施時(shí),其他車輛和外部測(cè)試設(shè)備(例如維修車間網(wǎng)絡(luò))也使用這些網(wǎng)絡(luò)或無(wú)線基礎(chǔ)設(shè)施。
?
5.3、多輛車和一個(gè)外部測(cè)試設(shè)備實(shí)例之間的網(wǎng)絡(luò)連接
????????從車輛的角度來(lái)看,這個(gè)通信場(chǎng)景與3.2中描述的場(chǎng)景相同。只有外部測(cè)試設(shè)備能夠支持多個(gè)連接(即插座)。這種通信場(chǎng)景可能發(fā)生在,例如,有一個(gè)專用的flash重編程服務(wù)器,它可以同時(shí)更新多輛汽車(例如,在經(jīng)銷商或制造區(qū)域)。
?
5.4、一輛車與外部測(cè)試設(shè)備的多個(gè)實(shí)例之間的網(wǎng)絡(luò)連接,或外部測(cè)試設(shè)備的單個(gè)物理實(shí)例上的測(cè)試應(yīng)用程序
????????在這種情況下,車輛應(yīng)能夠清楚地分離負(fù)責(zé)每個(gè)邏輯鏈路的每個(gè)外部測(cè)試設(shè)備的診斷請(qǐng)求和響應(yīng)。此外,在單個(gè)測(cè)試設(shè)備實(shí)例上運(yùn)行的測(cè)試設(shè)備或應(yīng)用程序應(yīng)能夠檢測(cè)到其他測(cè)試設(shè)備實(shí)例或應(yīng)用程序已經(jīng)與同一車輛通信,因此,車輛不可能同時(shí)支持所有操作。
6、DoIP診斷通信建立連接的過(guò)程
????????DoIP診斷同學(xué)建立連接分為四個(gè)過(guò)程:
????????????????1、物理連接(Physically connection)。
????????????????2、車輛聲明(Vehicle Discovery)。
????????????????3、通信建立(Connection Establishment)。
????????????????4、診斷通信(Diagnostic Communication)。
6.1、物理連接
????????車外客戶端(Test equipment)用相應(yīng)的接口卡(IP-Based Network)連接車身邊緣節(jié)點(diǎn)(DoIP Edge Node GW)。在ISO 13400協(xié)議中規(guī)定外部診斷設(shè)備連接邊緣節(jié)點(diǎn),且需用激活線來(lái)激活邊緣節(jié)點(diǎn)的DoIP功能。
?
????????物理連接后,通過(guò)相應(yīng)手段獲取IP地址,建立通信。
?
6.2、車輛聲明
????????物理連接后,車輛會(huì)議廣播的形式發(fā)送三次車輛聲明,聲明的信息可以包括:
????????????????1、VIN
????????????????2、EID
????????????????3、GID
?????????如果診斷設(shè)備沒(méi)有獲取車輛信息,也可以主動(dòng)請(qǐng)求(Vehicle Identification request)來(lái)獲取相應(yīng)信息(如上圖所示)。
6.3、通信建立
????????在DoIP協(xié)議中,有Socket概念:Socket一端連接著IP地址,一端連接著Port端口。并且Socket對(duì)于芯片而言是一種資源。因此有激活失效之分。
?????????在協(xié)議中定義了Payload Type (0005/0006)用于激活Socket。
?????????激活后,Socket使能,接下來(lái)就可以進(jìn)行診斷通信。
6.4、診斷通信
????????Socket激活后,可以進(jìn)行診斷通信。通信模型如下圖所示:
?
????????外部Tester發(fā)送診斷請(qǐng)求,網(wǎng)關(guān)收到診斷請(qǐng)求后,會(huì)給與一個(gè)收到答復(fù)(Acknowledgement),用意是告訴Tester,網(wǎng)關(guān)此時(shí)已收到診斷請(qǐng)求,與此同時(shí)網(wǎng)關(guān)將診斷請(qǐng)求(Diagnostic Request)發(fā)送至Target ECU。ECU收到診斷請(qǐng)求,并基于這個(gè)請(qǐng)求給與響應(yīng)。
????????因此對(duì)于Tester而言,一共收到兩個(gè)響應(yīng)。
????????????????1、Diagnostic Message Acknowledgement;
????????????????2、Diagnostic Message Response;
????????每一幀響應(yīng)對(duì)應(yīng)的幀類型不同:
?????????在DoIP協(xié)議中,通過(guò)PayLoad Type區(qū)分報(bào)文幀類型,用于實(shí)現(xiàn)不同的具體功能。但是其具體發(fā)送方式都是基于TCP/UDP協(xié)議。
????????上述整個(gè)過(guò)程,報(bào)文的發(fā)送方式都是以TCP/IP協(xié)議(當(dāng)然是將傳統(tǒng)的TCP/IP協(xié)議做了車規(guī)級(jí)應(yīng)用),定義不同的階段模型、不同的Payload Type應(yīng)用報(bào)文類型,定義合理的機(jī)制,來(lái)保證Tester與ECU穩(wěn)健進(jìn)行診斷通信。
????????以上是整個(gè)DoIP協(xié)議定義Tester和ECU通信所需要搭建的“通信橋梁”。
總結(jié)
- 上一篇: Qfile
- 下一篇: 多层装饰器、带参数装饰器