日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

doip 源码_DoIP技术(二)

發布時間:2023/12/9 编程问答 53 豆豆
生活随笔 收集整理的這篇文章主要介紹了 doip 源码_DoIP技术(二) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文繼DoIP技術(一)一文之后繼續分享與DoIP技術相關的一些內容。首先來介紹一下支持ethernet及DoIP的車載網絡架構。帶ethernet節點的車載網絡架構示意圖

上面這張圖簡要描述了帶ethernet節點的車載網絡和外部網絡中的測試設備之間的關聯。在車載網絡中,必須有且只有一個DoIP edge node gateway,它作為汽車對外部診斷設備的唯一接口。此外,還可能存在以下幾種類型的節點:支持DoIP,同時作為gateway,在它背后還有子網絡

不支持DoIP,但是支持ethernet通信

不支持ethernet,從而也就不可能支持DoIP

對于外部測試設備來說,它們必須只能和DoIP edge node gateway直接連接并通信,與車載網絡中其他ECU的通信必須由DoIP edge node gateway路由。

數據鏈路層與物理層

根據ISO-13400的要求,DoIP通信在物理層支持100BASE-TX (100 Mbit/s Ethernet) 和10BASE-T (10 Mbit/s Ethernet) 兩種制式。DoIP設備的MAC地址也符合IEEE 802.3 的要求。

傳輸層與網絡層

ISO-13400規定,DoIP通信在傳輸層上必須同時支持UDP和TCP,并將UDP和TCP的使用場合進行了定義,對所使用的端口號也進行了定義。后面稍微詳細說明一下。

ISO-13400規定,DoIP通信在網絡層上使用IPv6協議,但是為了后向兼容的原因,也支持IPv4。此外,對于IPv4來說,還要支持地址解析協議(ARP ),對于IPv6來說,還要支持鄰居發現協議(NDP) ,這兩個協議是用于在只知道IP地址的情況下獲取MAC地址的。

DoIP的數據格式DoIP的數據格式

上圖展示了DoIP的數據格式,在DoIP技術(一)中我們已經對DoIp數據的五部分進行了簡要介紹,其中第五部分的數據又可以再細分為三部分源地址,標識數據由誰發出

目的地址,標識數據由誰接收

診斷命令,即UDS或OBD中定義的具體的診斷請求或響應

在本篇中,我將對這幾部分數據的取值范圍進行舉例說明:

DoIP數據的前兩個部分分別是DoIP版本和DoIP版本逐比特取反,DoIP版本的取值范圍如下:

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

DoIP數據的第三個部分是data type,即描述數據包中的數據類型,取值范圍如下圖所示:DoIP數據類型概覽

上面這個表格不但定義了代表不同數據類型的值,還說明了具體的數據類型應該是通過UDP還是TCP來發,并定義了應該在哪個端口上發。

其中最常用的數據類型應該是0x8001,0x8002,0x8003了,代表的含義分別是診斷消息、診斷消息正響應和診斷消息負響應。

0x0001至0x0004用于汽車標識上報或請求,只能通過UDP報文來發送這種命令,主要用于在汽車和診斷儀進入網絡之后、診斷連接建立之前的車輛發現過程。

0x0005 和0x0006標識的Routing activation request 和 response用于在socket建立之后,進行診斷通信的請求。

0x0007和0x0008用于Alive check,用于檢查當前建立的診斷連接socket是否仍然在使用中,如果不再使用,則關閉socket釋放資源。

DoIP數據的第三個部分是data length,這個很簡單,就是標識后面的user data到底有多少。

DoIP數據的第五部分很簡單,分別用來標識數據的發送者和接收者,以及具體的診斷數據。

下圖是一個DoIP數據完整結構的舉例:DoIP數據完整結構舉例

byte 0:ISO13400 版本

byte 1:ISO13400 版本逐比特取反

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

byte 4~7:數據長度,在這個例子中的值是7,表示后面有7個字節的數據

byte 8~9:源地址

byte 10~11:目的地址

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

這個數據段作為SDU傳遞給下層協議,逐層封裝成為完整的以太網幀發送出去。

總結:

這篇文章主要介紹了DoIP數據的結構,即DoIP數據各個字節位置表示什么含義。在下一篇文章中,我將對DoIP節點內部對診斷邏輯連接的管理以及DoIP通信的建立過程進行介紹。

總結

以上是生活随笔為你收集整理的doip 源码_DoIP技术(二)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。