doip 源码_DoIP—协议框架
DoIP協議(Diagnostic On IP---ISO 13400)定義將IP技術運用到車載網絡診斷范疇的通信規則。其中包括兩層含義:
1、 將IP技術應用到車載網絡中,需滿足車規需求;
2、 在診斷范疇,DoIP協議定義了從物理層(Physical Layer)到應用層(Application Layer)搭建“通信橋梁”的規則(此處可類似CAN總線的TP層協議ISO 15765-2);
將上述概念映射到OSI計算機七層模型:
DoIP所在的位置位于七層模型中第三層和第四層。如圖所示,其中運用到的IP協議:TCP/IP協議、UDP協議。整個ISO 13400-2協議中定義的內容是規定了搭建“通信渠道”(Tester與ECU之間的通信渠道)的規則。TLS是2020版DoIP協議新增添的內容,主要目的是為了保證通信數據的安全性。此內容稍后會在公眾號上以專門一篇文章來描述其具體內容。
本文將對整個“通信橋梁”的搭建過程做一個概述性的描述(微信公眾號上接下來會更新“通信橋梁”搭建每一步的詳細分析),具體步驟如下:
1) 物理連接(Physically connection);
2) 車輛聲明(Vehicle Discovery);
3) 通信建立(Connection Establishment);
4) 診斷通信(Diagnostic Communication);
1、 物理連接:
首先從功能視角來看車內網絡與車身外網絡:
車外客戶端(Test equipment)用相應的接口卡(IP-Based Network)連接車身邊緣節點(DoIP Edge Node GW)。在ISO 13400協議中規定外部診斷設備連接邊緣節點,且需用激活線來激活邊緣節點的DoIP功能。
物理連接后,通過相應手段獲取IP地址,建立通信。
2、 車輛聲明:
物理連接后,車輛會議廣播的形式發送三次車輛聲明,聲明的信息可以包括:
1) VIN
2) EID
3) GID
如果診斷設備沒有獲取車輛信息,也可以主動請求(Vehicle Identification request)來獲取相應信息(如上圖所示)。
3、 通信建立:
在DoIP協議中,有Socket概念:Socket一端連接著IP地址,一端連接著Port端口。并且Socket對于芯片而言是一種資源。因此有激活失效之分。
在協議中定義了Payload Type (0005/0006)用于激活Socket。
激活后,Socket使能,接下來就可以進行診斷通信。
4、 診斷通信:
Socket激活后,可以進行診斷通信。通信模型如下圖所示:
外部Tester發送診斷請求,網關收到診斷請求后,會給與一個收到答復(Acknowledgement),用意是告訴Tester,網關此時已收到診斷請求,與此同時網關將診斷請求(Diagnostic Request)發送至Target ECU。ECU收到診斷請求,并基于這個請求給與響應。
因此對于Tester而言,一共收到兩個響應。
1) Diagnostic Message Acknowledgement;
2) Diagnostic Message Response;
每一幀響應對應的幀類型不同:
在DoIP協議中,通過PayLoad Type區分報文幀類型,用于實現不同的具體功能。但是其具體發送方式都是基于TCP/UDP協議。
上述整個過程,報文的發送方式都是以TCP/IP協議(當然是將傳統的TCP/IP協議做了車規級應用),定義不同的階段模型、不同的Payload Type應用報文類型,定義合理的機制,來保證Tester與ECU穩健進行診斷通信。
以上是整個DoIP協議定義Tester和ECU通信所需要搭建的“通信橋梁”。其中每一步在協議以及實際項目中詳細介紹,會在公眾號后續文章陸續更新,歡迎大家關注,并提供反饋。文章是自己周末手敲鍵盤編輯,內容難免會有失偏頗,希望在這上面跟同行溝通并修正。
若您有所收獲,是我更新的最大動力!
有關注,不迷路!
公眾號有郵箱地址,有疑問可郵件溝通交流。
-----------------------------------------
作者簡介 | 穿拖鞋的漢子
汽車電子工程師
公眾號:汽車控制器診斷技術
來,每天進步一點點!
總結
以上是生活随笔為你收集整理的doip 源码_DoIP—协议框架的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: linux mv 递归拷贝,奇技淫巧 -
 - 下一篇: 【动态规划】cf1034C. Regio