車載以太網網絡測試-20【傳輸層-DOIP協議-3】

1 摘要

本文繼續對ISO 13400-2定義的節點管理報文進行介紹,主要對路由激活請求/響應報文以及在線檢查請求/響應報文的作用、幀結構以及示例進行介紹。
上文回顧:
車載以太網網絡測試-19【傳輸層-DOIP協議-2】
在進行詳細介紹之前,還是先回顧一下DOIP診斷通信流程的示意圖,如下圖:
原文鏈接:
車載網絡測試-DOIP診斷通信流程分析
DOIP診斷通信流程示意圖

2 0x0005:Routing activation request報文

在車輛發現階段結束后,外部診斷儀已經知道了對哪臺車以及哪個DoIP節點進行診斷,也獲取了必要的信息,這時就需要發送路由激活請求報文,在診斷設備和被診斷的DoIP節點間建立起TCP連接,以便于發送診斷數據(診斷報文都是用TCP來發送的)。

2.1 Routing activation request報文的作用

DOIP(Diagnostics over Internet Protocol)協議中的 Routing Activation Request 報文是用于在車輛診斷通信中激活診斷通信路徑的重要報文。
它的主要作用如下:

  • 激活通信路徑:
    在DOIP協議中,診斷通信的雙方(如診斷工具和車輛ECU)需要建立一個邏輯連接,才能進行后續的診斷數據傳輸。
    Routing Activation Request 報文用于請求激活某個特定的通信路徑,使診斷工具能夠與目標ECU建立連接。

  • 工作流程:

    • 診斷工具向目標ECU發送 Routing Activation Request 報文。
    • 目標ECU接收到請求后,檢查自身狀態和請求參數。
    • 如果請求有效,ECU會回復 Routing Activation Response 報文,確認通信路徑已激活。
    • 診斷工具收到確認后,即可開始發送診斷請求(如讀取故障碼、寫入數據等)。

Routing Activation Request 報文是DOIP協議中用于建立診斷通信連接的關鍵報文。它確保了診斷工具與目標ECU之間的通信路徑被正確激活,為后續的診斷操作提供了基礎。

2.2 Routing Activation Request 報文幀結構

報文的數據格式如下:
DOIP協議的Routing Activation Request報文幀結構如下:

字段長度(字節)描述
Source Address(SA)2發送方的邏輯地址
Activation Type1激活類型,表示請求的路由激活類型
Reserved by this document4保留字段,通常為 0x00000000
Reserved for VM-specific use4保留字段,通常為 0x00000000

數據共11字節,包含以下內容:
1.源地址(SourceAddress):
外部診斷設備的邏輯地址。這個邏輯地址用于對某個特定的DoIP節點進行尋址,與UDSonCAN中的CAN ID是類似的概念,是在網絡架構設計階段就分配好的。

標準中的范圍劃分如下圖所示:
在這里插入圖片描述
其中:

  • 紅色框內的范圍用于診斷設備的邏輯地址,0x0E00-0x0E7F用于OBD診斷,0x0E80-0x0EFF用于增強型診斷。
  • 藍色框內的邏輯地址用于DoIP節點,與UDSonCAN類似,節點的邏輯地址有兩個,一個是物理邏輯地址,在0x0001-0x0DFF或0x1000-0x7FFF范圍內,另一個是功能尋址,是0xE000。

2. 激活類型(activation type)
用于診斷設備通知被診斷DoIP節點進入哪種類型的診斷狀態。定義如下:
在這里插入圖片描述

  • 表示請求的路由激活類型,常見的值包括:
    • 0x00:默認激活類型,用于常規診斷通信。
    • 0x01:用于全球統一的車輛診斷(World Wide Harmonized On-Board Diagnostics)。
    • 0xE0:用于中央安全相關的診斷通信。

2.3示例報文

流程如下圖所示,先與DoIP實體通過TCP建立連接:
在這里插入圖片描述

然后測試儀發送負載類型為0x0005的路由激活請求,Doip實體響應負載類型為0x0006的激活響應報文。
在這里插入圖片描述

3 0x0006:Routing activation response報文

3.1 Routing activation response報文的作用

在DoIP協議中,Routing activation response報文的作用是確認診斷請求的激活狀態。
具體來說,Routing activation response報文的作用包括:

  1. 確認激活請求:當診斷工具發送Routing activation request報文請求激活某個通信通道時,車輛中的DoIP實體(如ECU)會通過Routing activation response報文來確認該請求是否成功。

  2. 返回激活狀態:Routing activation response報文中包含一個狀態碼,用于指示激活請求的結果。例如,狀態碼可以表示成功激活、激活失敗或激活被拒絕等。

  3. 提供附加信息:除了狀態碼外,Routing activation response報文還可能包含其他相關信息,如激活的通信通道的詳細信息或錯誤描述。

  4. 確保通信準備就緒:通過發送Routing activation response報文,車輛中的DoIP實體通知診斷工具通信通道已準備好進行后續的診斷數據傳輸。

總結來說,Routing activation response報文的主要作用是確認診斷請求的激活狀態,并確保診斷工具和車輛之間的通信通道已成功建立,為后續的診斷數據傳輸做好準備。

3.2 Routing activation response報文幀結構

路由激活響應報文主要是對上面路由激活請求報文的響應,的數據格式如下:
在這里插入圖片描述
響應中的參數定義如下:

  1. 診斷設備邏輯地址(Logical address of the external test equipment):診斷儀的邏輯地址。
  2. DoIP節點邏輯地址(Logical address of the responding DoIP entity):DoIP節點物理邏輯地址。

在這里插入圖片描述
ISO 13400-2 是診斷通信標準的一部分,主要涉及基于IP的診斷通信(DoIP,Diagnostics over Internet Protocol)。在DoIP協議中,路由激活響應碼(Routing Activation Response Code)是一個關鍵參數,用于指示路由激活請求的處理結果。

  1. 路由激活響應碼(Routing activation response code):1字節,它由DoIP實體(如車輛中的DoIP網關或ECU)發送,以告知請求方(如診斷工具)路由激活請求的處理狀態。它確保了診斷通信的可靠性和高效性,并提供了明確的錯誤處理機制。通過理解和使用路由激活響應碼,診斷工具可以更好地管理與車輛ECU的通信。比如:用來表示TCP連接建立是否成功,以及不成功的原因。
    定義如下表所示,Required Action欄展示了DoIP節點在返回響應后應該采取的操作。
    在這里插入圖片描述
  2. 其余字段為預留或自定義字段,不常用。

3.3 常見Routing activation response code示例

  1. 路由激活成功(10)
    在這里插入圖片描述
  2. 不支持的SA地址(0x00)
    如下圖, 0x0101是DoIP實體不支持的SA地址,所以DoIP實體響應了0x00 狀態碼。
    在這里插入圖片描述
  3. 已經激活的TCP連接上使用不同的SA地址(0x02)
    如下圖,在已經激活的TCP連接上,使用了不同的SA地主,DoIP實體報0x02狀態碼
    在這里插入圖片描述
  4. 不同的TCP連接上使用相同的SA地址(0x03)
    如下圖,在不同的TCP連接上,不可以使用相同的SA地址,否則Doip實體報0x03狀態碼
    在這里插入圖片描述

4 0x0007:Alive check request與0x0008:Alive check response報文

在ISO 13400-2標準中,0x0007:Alive Check Request 報文用于診斷通信中的連接保持機制。它的主要作用是確認通信雙方(客戶端與服務器)之間的連接是否仍然活躍

4.1 Alive check request與Alive check response報文作用

  1. 檢測連接狀態
    客戶端(如診斷工具)向服務器(如車輛ECU)發送Alive Check Request報文,以確認服務器是否仍然在線并能夠響應請求。

  2. 保持會話活躍
    在某些診斷協議中,會話可能會因為長時間無通信而超時關閉。通過定期發送Alive Check Request報文,可以防止會話超時,保持會話的活躍狀態。

  3. 網絡健康檢查
    通過發送Alive Check Request報文,可以檢測網絡通信是否正常,是否存在丟包或延遲等問題。

應用場景

  • 在長時間診斷過程中,定期發送Alive Check Request以保持會話。
  • 在網絡通信不穩定時,檢測連接是否正常。
  • 在測試或調試過程中,驗證診斷通信的可靠性。

不攜帶DoIP數據,報文中只有DoIP報頭。
在這里插入圖片描述

4.2 Alive check request與Alive check response報文示例

前提:已經建立了TCP連接,測試儀再次發送路由激活請求的時候,DoIP實體才會發出在線檢測請求報文。

  • 情況1:
    如下圖日志,在第二次TCP連接后,發送路由激活請求后,DoIP實體發送負載類型為0x0007的在線檢測報文,這里測試儀給了邏輯地址為0x0008的響應報文,并且Soure address參數為0E80,告訴DoIP實體,SA地址為0E80的診斷儀仍然在線。
    在這里插入圖片描述
  • 情況2:
    Doip實體發出在線檢測報文后,診斷設備沒有在超時時間(T_TCP_Alive_Check )內給出響應,Doip節點會主動斷開TCP連接,并且給出路由激活肯定響應報文。
    注意,TCP斷開連接的端口是第一次TCP連接時的端口。
    在這里插入圖片描述

4.3 0x0008:Alive check response

診斷設備收到DoIP節點Alive check request報文后,發送Alive check response報文,數據中攜帶兩字節的診斷設備邏輯地址:
在這里插入圖片描述
在這里插入圖片描述

此外,診斷設備也可以在沒有收到請求報文的情況下向DoIP節點發送該響應報文,以通知DoIP節點診斷設備仍然在線,類似于CAN總線的3E 00/80報文。

5 總結

上個專題與本文對ISO 13400-2定義的所有節點管理報文的作用、幀結構以及示例進行了詳細介紹。希望能對大家理解DOIP協議所有幫助!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/898642.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/898642.shtml
英文地址,請注明出處:http://en.pswp.cn/news/898642.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Jvm運行時數據區有哪些

Jvm運行時數據區有哪些 程序計數器(Program Counter Register) 作用: 可以看作是當前線程所執行的字節碼的行號指示器。在多線程環境下,每個線程都有自己獨立的程序計數器,線程私有的,用于記錄該線程正在執…

Compose 實踐與探索十五 —— 自定義觸摸

1、自定義觸摸與一維滑動監測 之前我們在講 Modifier 時講過如下與手勢檢測相關的 Modifier: Modifier.clickable { } Modifier.combinedClickable { } Modifier.pointerInput {detectTapGestures { } }這里對以上內容就不再贅述了,直接去講解更復雜的…

Python 中有哪些庫可以幫助讀取和操作 shapefile 文件?

Python操作Shapefile文件庫推薦 1. PyShp (pyshp) 特點:純Python實現,無外部依賴,輕量級,支持完整的Shapefile格式(shp、dbf、shx)讀寫。適用場景:基礎讀寫、簡單幾何操作、文件格式轉換。安裝…

JSONPath 的介紹

JSONPath的起源 1. 起源背景 在討論JSONPath的起源之前,讓我們先了解JSONPath是什么。JSONPath 是一種查詢語言,用于從JSON(JavaScript Object Notation)數據結構中提取數據。它允許開發者通過類似于XPath的表達式來定位JSON對象…

【CSS文字漸變動畫】

CSS文字漸變動畫 HTML代碼CSS代碼效果圖 HTML代碼 <div class"title"><h1>今天是春分</h1><p>正是春天到來的日子&#xff0c;花都開了&#xff0c;小鳥也飛回來了&#xff0c;大山也綠了起來&#xff0c;空氣也有點嫩嫩的氣息了</p>…

Bitcoin Thunderbolt 內測通道開啟,加速比特幣交易新時代

比特幣作為全球領先的加密貨幣&#xff0c;一直占據著去中心化金融的核心地位。然而&#xff0c;隨著比特幣生態的不斷擴展&#xff0c;其交易速度和擴容問題逐漸成為制約發展的關鍵瓶頸。為解決這一難題&#xff0c; 比特幣雷電網絡&#xff08;Bitcoin Thunderbolt&#xff0…

Postgresql無法連接問題匯總

一. 數據庫服務未啟動 ?報錯信息&#xff1a; [postgresk8s-node2 ~]$ psql psql: could not connect to server: No such file or directoryIs the server running locally and acceptingconnections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"…

軟件工程之軟件驗證計劃Software Verification Plan

個人主頁&#xff1a;云納星辰懷自在 座右銘&#xff1a;“所謂堅持&#xff0c;就是覺得還有希望&#xff01;” 本文為基于ISO26262軟件驗證計劃模板&#xff0c;僅供參考。 軟件驗證計劃&#xff0c;包括&#xff1a; 1. 軟件需求驗證計劃 2. 軟件架構設計驗證計劃 3. 軟件單…

SpringBoot之如何集成SpringDoc最詳細文檔

文章目錄 一、概念解釋1、OpenAPI2、Swagger3、Springfox4、Springdoc5. 關系與區別 二、SpringDoc基本使用1、導包2、正常編寫代碼&#xff0c;不需要任何注解3、運行后訪問下面的鏈接即可 三、SpringDoc進階使用1、配置文檔信息2、配置文檔分組3、springdoc的配置參數**1. 基…

SpringBoot3+Vue3開發學生成績管理系統

系統介紹 此系統功能包含&#xff1a;首頁、課程管理、成績查詢、成績詳情、班級管理、專業管理、用戶管理等功能。用戶管理又細分為賬號管理、學生管理、教師管理、管理員管理。 基礎功能包含&#xff1a;登錄、退出、修改登錄人信息、修改登錄人密碼。 分為4種角色&#x…

康謀方案 | AVM合成數據仿真驗證方案

隨著自動駕駛技術的快速發展&#xff0c;仿真軟件在開發過程中扮演著越來越重要的角色。仿真傳感器與環境不僅能夠加速算法驗證&#xff0c;還能在安全可控的條件下進行復雜場景的重復測試。 本文將分享如何利用自動駕駛仿真軟件配置仿真傳感器與搭建仿真環境&#xff0c;并對…

深入解析 Java Stream API:從 List 到 Map 的優雅轉換!!!

&#x1f680; 深入解析 Java Stream API&#xff1a;從 List 到 Map 的優雅轉換 &#x1f527; 大家好&#xff01;&#x1f44b; 今天我們來聊聊 Java 8 中一個非常常見的操作&#xff1a;使用 Stream API 將 List 轉換為 Map。&#x1f389; 具體來說&#xff0c;我們將深入…

配置銀河麒麟V10高級服務器操作系統安裝vmware tools。在您的計算機上尚未找到用于此虛擬機的 VMwareTools。安裝將無法繼續。

配置銀河麒麟V10高級服務器操作系統安裝vmware tools 下載VMwareTools安裝包 通過網盤分享的文件&#xff1a;VMwareTools-10.3.25-20206839.tar.gz 鏈接: https://pan.baidu.com/s/1EgMcqbIEur4iyHu2l0v_gQ?pwdrc8m 提取碼: rc8m 通過工具上傳到指定目錄&#xff0c;然后切換…

突破 HTML 學習瓶頸:表格、列表與表單的學習進度(一)

HTML 學習之困&#xff0c;如何破局&#xff1f; 作為一名熱衷于網頁開發的博主&#xff0c;在 HTML 的學習道路上&#xff0c;我可謂是 “過關斬將”&#xff0c;但也遇到過不少 “硬茬”。起初&#xff0c;當我滿心歡喜地以為掌握了基本的 HTML 標簽&#xff0c;就能輕松搭建…

理一理Mysql日期

在 MySQL 數據庫中&#xff0c;關于日期和時間的類型主要有以下幾種&#xff1a; 1. **DATE**: 僅存儲日期部分&#xff0c;格式為 YYYY-MM-DD&#xff0c;例如 2023-10-31。 2. **TIME**: 僅存儲時間部分&#xff0c;格式為 HH:MM:SS&#xff0c;例如 14:30:00。 3. **DATE…

CEF 多進程模式時,注入函數,獲得交互信息

CEF 控制臺添加一函數,枚舉 注冊的供前端使用的CPP交互函數有哪些-CSDN博客 上篇文章,是在模擬環境,單進程中設置的,這篇文章,將其改到正常多進程環境中設置。 對應于工程中的 CEF_RENDER項目 一、多進程模式中,改寫 修改步驟 1、注入函數 client_app_render.cpp 在…

C++ 介紹STL底層一些數據結構

c 標準模板庫中&#xff0c;set和map的底層實現通常基于紅黑樹&#xff0c;然們都是平衡二叉搜索樹(Balanceed Binary Serach Tree&#xff09;的一種,這種結構保證了 插入&#xff0c;刪除&#xff0c;查找的時間復雜度為O(log n)比普通二叉搜索樹更高效。 set set<T>…

在 Kubernetes(k8s)部署過程中常見的問題

在 Kubernetes(k8s)部署過程中,常見的問題主要包括以下幾類,以下是具體示例及簡要說明: 1. 資源配額不足(Resource Quota) 現象:Pod 處于 Pending 狀態,事件日志顯示 Insufficient CPU/Memory。 原因: 節點(Node)資源不足,無法滿足 Pod 的 requests 或 limits。 命…

Android Window浮窗UI組件使用JetPack

目前接手的一個業務&#xff0c;應用不是用Activity/Fragment作為界面組件&#xff0c;而是用Window浮窗的形式顯示&#xff0c;并且浮窗有很多種類型&#xff0c;每一種類型對應一類業務。那么怎么使用Jatpack的相關特性來設計架構并提高開發效率呢&#xff1f;分下面幾個模塊…

基于WebRtc,GB28181,Rtsp/Rtmp,SIP,JT1078,H265/WEB融合視頻會議接入方案

智能融合視頻會議系統方案—多協議、多場景、全兼容的一站式視頻協作平臺 OvMeet,LiveMeet針對用戶?核心痛點實現功能與用戶價值 &#xff0c;Web平臺實現MCU多協議&#xff0c;H265/H264等不同編碼監控&#xff0c;直播&#xff0c;會議&#xff0c;調度資源統一融合在一套界…