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

目錄

  • 1 摘要
  • 2 DoIP時間參數
    • 2.1 ISO 13400定義的時間參數
    • 2.2 參數示例
  • 3 DoIP節點內部狀態機
  • 4 UDSonIP概述
  • 5 總結

1 摘要

本文繼續對DOIP協議進行介紹,主要是DOIP相關的時間參數、時間參數定義以及流程示例。推薦大家對上文專題進行回顧,有利于系統性學習DOIP協議。
上文專題回顧:
車載以太網網絡測試-21【傳輸層-DOIP協議-4】

2 DoIP時間參數

2.1 ISO 13400定義的時間參數

下表為標準中定義的DoIP時間參數:
在這里插入圖片描述
在這里插入圖片描述
以上,是ISO 13400-2定義的時間參數:

  1. A_DoIP_Ctrl
    該參數值診斷設備發送完上一個UDP報文后的等待響應的最長等待時間(Timeout:2S),注意兩點:
    (1)如果該UDP報文以廣播形式發送給多個DoIP節點,那么這個時間指等待所有節點響應的完成的時間。
    (2)該時間參數只針對UDP報文。

  2. A_DoIP_Announce_Wait
    該時間參數指定了DoIP實體在響應車輛識別請求之前等待的初始時間,以及在配置有效IP地址后DoIP實體在發送車輛公告消息之前等待的時間。

  3. A_DoIP_Announce_Interval
    該時間參數指定了在配置了有效的IP地址后,由DoIP實體發送的三條車輛聲明報文之間的時間間隔。延遲時間:500 ms

  4. A_DoIP_Announce_Wait
    這個時間參數應用場景有兩個:
    (1)DoIP節點在獲取IP地址成功到發送第一個車輛聲明報文的時間間隔
    (2)DoIP節點在收到診斷設備發送的車輛信息請求報文后發送車輛信息響應報文的時間間隔
    此時間參數的值應在最小值和最大值之間隨機確定,隨機時間:0-500ms;之所以設置為隨機值是為了避免所有DoIP節點同時發送車輛聲明報文或車輛信息響應報文,造成網絡堵塞。

  5. A_DoIP_Announce_Num
    該參數指定了在配置了有效的IP地址后,由DoIP實體發送的車輛公告報文的數量。標準定義:重復:3 次

  6. A_DoIP_Diagnostic_Message
    這是指指DoIP節點在接收到DoIP診斷報文的最后一個字節之后,到發送確認ACK或NACK之間的時間間隔。
    該參數有兩層含義:
    (1)對DoIP節點來說,它是對性能的要求,要求DoIP節點要在50ms內做出相應;**性能時間:50 ms
    (2)對診斷設備來說,它是發送完診斷報文后的等待時間,超時時間為2s,超時后仍未收到診斷響應報文的話,應該重復發送該診斷報文。

  7. T_TCP_General_Inactivity
    該參數指DoIP節點在收到路由激活報文后,且沒有進行TCP數據交互的情況下,保持TCP連接的最長時間,超時時間為5min,超時后仍沒有任何TCP數據交互的話將關閉TCP連接。

  8. T_TCP_Initial_Inactivity
    此超時時間規定了在TCP_DATA套接字建立后,允許的最大無活動時間。如果在指定時間內(超時時間:2S)沒有路由激活,DoIP實體將關閉該TCP_DATA套接字。Timeout: 2 s

  9. T_TCP_Alive_Check
    該參數指DoIP節點在發送了一個診斷設備在線檢查請求報文后等待響應的時間,超時時間為500ms,如果超時后未收到響應,則DoIP節點判斷診斷設備已離線,關閉TCP連接。注意,當DoIP節點向TCP socket發送請求失敗時也應該啟動該定時器,應為這意味著診斷設備通信失敗,可能已經離線。 Timeout: 500 ms

  10. A_Processing_Time:這個超時時間定義為從外部測試設備發送不需要響應報文(例如禁止肯定響應位為TRUE)但可能需要一些時間進行處理的時間間隔。因此,外部測試設備必須等待至少A_Processing_Time(處理時間)才能向同一個DoIP實體發送另一個請求。Timeout: 2 s

  11. A_Vehicle_Discovery_Timer
    該參數是指留給車上DoIP節點做GID同步的時間,診斷設備只有在收到的車輛信息響應報文或車輛聲明報文中帶有**有效的 VIN/GID 且 VIN/GID sync. status 為 “incomplete(0x10)”**時,才會啟動該定時器,等待車上的DoIP節點進行GID同步。Timeout: 5 s

2.2 參數示例

我們把這些時間參數放在通訊流程中,能更加清晰直觀地看出各參數的作用:
在這里插入圖片描述

3 DoIP節點內部狀態機

DoIP實體通過TCP的五元組(源IP地址、目的IP地址、源端口號、目的端口號、協議類型)加邏輯地址來識別唯一的DoIP連接。因此,除了TCP socket連接狀態外,還維護著一個DoIP邏輯連接狀態,狀態轉換示意圖如下圖所示:
在這里插入圖片描述
圖中各個事件詳解:

  1. Connection state -: Listen
    邏輯連接的初始狀態為Listen,表示節點正在等待與外部實體的連接。
    (1)Listen狀態是DoIP節點在初始化完成并準備好接收連接請求時進入的狀態。
    (2)在該狀態下,節點會監聽來自外部實體的TCP連接請求(通常是診斷客戶端或其他DoIP節點)。
    (3)如果節點是服務器角色(例如ECU),它會持續監聽來自客戶端的連接請求。
    (4)如果節點是客戶端角色(例如診斷工具),它可能會主動發起連接請求。

  2. 當TCP連接建立并進入ESTABLISHED狀態后,邏輯連接跳轉至Initialized狀態并啟動Initial inactivity timer;
    注:Initial inactivity timer,當DoIP邏輯連接處于Initialized狀態時,如未收到有效的路由激活報文,當Initial inactivity timer超時后,DoIP實體會主動關閉此類無效的初始連接。ISO 13400中建議其初始值為2秒。

  3. 當接收到診斷儀發送的正確的路由激活報文后,跳轉至Registered [pending for authentication] 狀態,停止Initial inactivity timer并開啟General inactivity timer;
    注:General inactivity timer,當DoIP邏輯連接處于Registered狀態時,如一段時間之內沒有數據的收發行為發生,當General inactivity timer超時后,DoIP實體會主動關閉此類不活躍連接。ISO 13400中建議其初始值為5分鐘,計時器在每一次數據收發時均會被重置為初始值。

  4. Registered [pending for authentication] 狀態下,如認證完成或無需認證,跳轉至Registered [pending for confirmation];如果認證失敗、General inactivity timer超時或Alive check報文無響應,會跳轉至Finalize狀態;

  5. Registered [pending for confirmation] 狀態下,如確認完成或無需確認,跳轉至 Registered [routing active],到此狀態,DoIP邏輯連接激活完成,可以開始進行診斷會話。如果確認失敗、General inactivity timer超時或Alive check報文無響應,會跳轉至Finalize狀態。
    狀態機中認證(Authentication)和確認(Confirmation)的方法在ISO 13400中并無定義,如果有需求,可使用路由激活報文中的Activation type和Reserved for OEM-specific use字段來實現。

4 UDSonIP概述

ISO 14229-5 是 統一診斷服務(UDS) 標準的一部分,具體規定了 UDS over Internet Protocol (UDSonIP) 的實現方式。UDSonIP 是一種將 UDS 協議應用于基于 IP 網絡的診斷通信的方式,主要用于現代車輛中支持以太網通信的電子控制單元(ECU)。
1.UDS服務的特殊規定
部分UDS服務在應用于DoIP的時候,由于以太網通信的特性,會有下文所述的一些特殊規則。
(1)DiagnosticSessionControl (0x10) service
診斷會話控制切換會導致TCP連接中斷,在再次開始診斷前要重新建立TCP連接,并發送路由激活報文。
(2)ECUReset (0x11) service
ECU復位會同樣會導致TCP連接斷開,路由激活失效,在再次開始診斷前也要重新建立TCP連接,并發送路由激活報文(針對所有相關DoIP節點)。
(3)ReadDataByPeriodicIdentifier (0x2A) service
這個服務我覺得其實沒啥影響,只是服務原語和CAN有所不同,涉及到的具體章節是ISO 14229-5-6.5,我也沒有仔細研究,大家用到的時候可以詳細查查標準原文。
2. 時間參數
ISO 14229-2中定義的有關UDS會話層的時間參數,UDSonIP中常用的時間參數如下:
(1)P6
P6的概念和P2很像,都是發送方等待接收方的響應的時間,不同之處在于P2是剛開始接收到響應即停止,P6是響應完全接收完畢才停止。車載以太網因為本身實時性就不如CAN這一類的網絡,還可能涉及到路由轉發,所以網絡延遲可能比較長,所以有時候需要考慮P6。
(2)P4Server
P4Server這個時間參數其實不只是UDSonIP用到,UDSonCAN也可能用到,但用的比較少。它的含義是ECU接收到診斷請求后到最終的診斷肯定響應或否定響應(不包含NRC 0x78)的時間間隔,它是對ECU性能的要求,目的是防止ECU長時間返回NRC 0x78的否定響應。
當P4Server_max與P2Server_max相同的時候,就意味著不允許ECU返回NRC 0x78的否定響應。
標準中還規定,連續返回NRC 0x78時,時間間隔不能小于0.3 * P2*Server_max,以避免網絡中存在過多不必要的否定響應。
以上就是有關UDSonIP的內容,UDSonIP在其他方面與UDSonCAN沒有太大的不同。

5 總結

以上是對DOIP協議所有內容的介紹,希望能對大家學習DOIP協議所有幫助!

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

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

相關文章

(論文總結)思維鏈激發LLM推理能力

研究背景&動機 背景:擴大模型規模已被證實具有提升模型性能和模型效率的功效,但是LLM對于完成推理、算術任務仍有較大不足。 動機:從之前的應用和研究中得知,可以用生成自然語言解釋、使用神經符號等形式語言的方法來提高大模型的算術推理能力&…

前后端開發概述:架構、技術棧與未來趨勢

一、前后端開發的基本概念 1.1 什么是前后端開發? 前后端開發是 Web 開發的兩個核心部分,各自承擔不同的職責: 前端(Frontend) 負責網頁的用戶界面(UI)和用戶體驗(UX)…

anythingLLM結合searXNG實現聯網搜索

1、docker-compose 部署searXNG GitHub - searxng/searxng-docker: The docker-compose files for setting up a SearXNG instance with docker. cd /usr/local git clone https://github.com/searxng/searxng-docker.git cd searxng-docker 2、修改 .env文件 # By default…

人形機器人科普

人形機器人(Humanoid Robot)是一種模仿人類外形和行為的機器人,通常具有頭部、軀干、雙臂和雙腿等結構。它們的設計目標是與人類環境無縫交互,執行復雜的任務,甚至在某些領域替代人類工作。 1. 人形機器人的定義與特點…

【CICD】Ansible知識庫

一、主機清單配置 1. 配置文件路徑 默認路徑 /etc/ansible/hosts 這是 Ansible 的全局默認庫存文件路徑,但許多用戶可能不會直接使用它。項目目錄或自定義路徑 用戶通常會為不同項目創建獨立的庫存文件,例如: 當前目錄下的 hosts、inventor…

ArkUI-List組件

列表是一個復雜的容器,當列表項達到一定數量,使得列表內容超出其范圍的時候,就會自動變為可以滾動。列表適合用來展現同類數據類型。 List的基本使用方法 List組件的構建聲明是這個樣子的 List(value?: {space?:number | string, initial…

Ubuntu實時讀取音樂軟件的音頻流

文章目錄 一. 前言二. 開發環境三. 具體操作四. 實際效果 一. 前言 起因是這樣的,我需要在Ubuntu中,實時讀取正在播放音樂的音頻流,然后對音頻進行相關的處理。本來打算使用的PipewireHelvum的方式實現,好處是可以直接利用Helvum…

【yolo】YOLO訓練參數輸入之模型輸入尺寸

模型輸入尺寸是YOLO訓練和推理過程中非常重要的參數之一。YOLO要求輸入圖像的尺寸是固定的,通常為正方形(如416416、640640等)。這個尺寸直接影響模型的性能和速度。以下是對模型輸入尺寸的詳細介紹: 1. 模型輸入尺寸的作用 統一…

【TI MSPM0】Timer學習

一、計數器 加法計數器:每進入一個脈沖,就加一減法計算器:每進入一個脈沖,就減一 當計數器減到0,觸發中斷 1.最短計時時間 當時鐘周期為1khz時,最短計時時間為1ms,最長計時時間為65535ms 當時…

從WebRTC到嵌入式:EasyRTC如何借助大模型提升音視頻通信體驗

隨著人工智能技術的快速發展,WebRTC與大模型的結合正在為音視頻通信領域帶來革命性的變革。WebRTC作為一種開源實時通信技術,以其低延遲、跨平臺兼容性和強大的音視頻處理能力,成為智能硬件和物聯網設備的重要技術支撐。 而EasyRTC作為基于W…

使用brower use AI 代理自動控制瀏覽器完成任務

第一步:終端運行命令下載 brower use pip install browser-use 第二步: 終端運行命令下載playwright playwright install 第三步:新建test.py代碼,粘貼復制以下代碼 import asyncio import osfrom dotenv import load_doten…

自由學習記錄(45)

頂點片元著色器(important) 1.需要在Pass渲染通道中編寫著色器邏輯 2.可以使用cG或HLSL兩種shader語言去編寫Shader邏輯 3.代碼量較多,靈活性較強,性能消耗更可控,可以實現更多渲染細節 4.適用于光照處理較少&#xf…

Quartus + VScode 實現模塊化流水燈

文章目錄 一、通過VScode編寫Verilog代碼二、模塊化編程三、代碼示例 一、通過VScode編寫Verilog代碼 1、下載Vscode 2、下載相關插件 搜索Verilog就會彈出有如圖所示的插件,下載并安裝 3、創建Quartus項目 4、創建完成后點擊Tools,選擇Options 然后在…

tryhackme——The Lay of the Land

文章目錄 一、網絡基礎設施1.1 內網1.2 DMZ區1.3 網絡枚舉(Network Enumeration) 二、域環境三、用戶和組管理四、安全解決方案4.1 基于主機的安全解決方案4.1.1 防病毒軟件4.1.2 Microsoft Windows Defender4.1.3 主機防火墻4.1.4 安全事件記錄與監控4.…

STM32---FreeRTOS消息隊列

一、簡介 1、隊列簡介: 隊列:是任務到任務,任務到中斷、中斷到任務數據交流的一種機制(消息傳遞)。 FreeRTOS基于隊列,實現了多種功能,其中包括隊列集、互斥信號量、計數型信號量、二值信號量…

2025年了,5G還有三個新變化

最近輿論開始討論5G為什么不火了?5G是不是停滯發展了。 實際上,5G不僅在發展,還迎來了它的升級版5G-A。 在今年西班牙舉行的世界移動通信大會上,5G-A就是焦點之一。 被譽為全球通信領域風向標的MWC,匯聚了華為、中興通…

SQLMesh SCD-2 時間維度實戰:餐飲菜單價格演化追蹤

場景背景:動態菜單價格管理 考慮某連鎖餐廳的菜單管理系統,需要記錄食品價格的歷史變更軌跡。業務需求包括: 記錄每次價格調整的時間點支持歷史價格查詢(如"2020年1月2日漢堡多少錢")維護當前有效價格清單…

失物招領|校園失物招領系統|基于Springboot的校園失物招領系統設計與實現(源碼+數據庫+文檔)

校園失物招領系統目錄 目錄 基于Springboot的校園失物招領系統設計與實現 一、前言 二、系統功能設計 三、系統實現 1、 管理員功能實現 (1) 失物招領管理 (2) 尋物啟事管理 (3) 公告管理 (4) 公告類型管理 2、用戶功能實現 (1) 失物招領 (2) 尋物啟事 (3) 公告 …

基于BClinux8部署Ceph 19.2(squid)集群

#作者&#xff1a;閆乾苓 文章目錄 1.版本選擇Ceph版本發布歷史目前官方在維護的版本 2.部署方法3.服務器規劃4.前置配置4.1系統更新4.2配置hosts cat >> /etc/hosts << EOFssh-keygenssh-copy-id ceph01ssh-copy-id ceph02ssh-copy-id ceph034.5 Python34.6 Syst…

安裝React開發者工具

我們在說組件之前&#xff0c;需要先安裝一下React官方推出的開發者工具&#xff0c;首先我們分享在線安裝方式 首先打開谷歌網上應用商店(針對谷歌瀏覽器)&#xff0c;在輸入框內搜索react&#xff0c;安裝如下插件&#xff1a; 注意安裝提供方為Facebook的插件&#xff0c;這…