UDS診斷 10服務

文章目錄

  • 簡介
  • 診斷會話切換
  • 請求和響應
    • 1、請求
    • 2、子功能
    • 3、肯定響應
    • 4、否定響應
    • 5、特殊的NRC
  • 為什么劃分不同會話
  • 報文示例
  • UDS中常用 NRC
  • 參考

簡介

10服務,即 Diagnostic Session Control(診斷會話控制)服務用于啟用服務器中的不同診斷會話,可以通過會話模式賦予不同診斷服務 不同的執行權限。

診斷會話切換

診斷會話轉換以及服務器轉換到另一個會話時其應做出哪些反應。

流程序號會話切換前會話切換后描述
1默認會話默認會話 服務器處于defaultSession(默認會話)狀態時,若客戶端要求啟動defaultSession(默認會話),則服務器應完全重新初始化defaultSession(默認會話)。
激活的會話期間,服務器應重置所有已激活的/初始化的/更改過的設置/控制。這不包括已編程入非易失性存儲器中的長期更改。
2默認會話默認會話 服務器從defaultSession(默認會話)轉換為defaultSession(默認會話)外的其他會話時,服務器應僅停止已在defaultSession期間通過ResponseOnEvent(基于事件響應)(Ox86)服務在服務器中進行配置的事件(類似于stopResponseOnEvent(停止基于事件響應))。
3其他會話相同會話或其他會話 服務器從defaultSession(默認會話)外的診斷會話轉換為非defaultSession(默認會話)的其他會話(包括當前有效診斷會話)時,則服務器應(重新)初始化診斷會話,這意味著:
i) 應停止通過ResponseOnEvent(基于事件響應)(Ox86)服務在服務器中進行配置的所有事件。
ii) 應重新鎖定安全性。注意,鎖定安全訪問應重置依存于待解鎖的安全訪問的任何有效診斷功能(例如,DID的有效inputOutputControl(輸入輸出控制))。
iii) 應維護好新會話中支持的且不依存于安全訪問的所有其他有效診斷功能。例如,從一個non-defaultSession(非默認會話)轉換為另一個或相同的non-defaultSession時,任何已配置的周期性調度器應保持活動狀態,且不得影響CommunicationControl(通信控制)和ControIDTCSetting(控制DTC設置)的狀態,這意味著,切換會話時若正常通信為禁用,則其應保持禁用狀態。
4其他會話默認會話 服務器從非默認會話的任何診斷會話轉換為defaultSession(默認會話)時,服務器應停止通過ResponseOnEvent(基于事件響應)(0x86)服務在服務器中已配置的所有事件,且應啟用安全性。應終止defaultSession(默認會話)中不支持的任何其他活動的診斷功能。
例如,應禁用任何已配置的周期性調度器或輸出控制,且應重置CommunicationControl(通信控制)和ControIDTCSetting(控制DTC設置)服務的狀態,這意味著,會話切換為defaultSession(默許會話)時,若正常通信為禁用,則應重新啟用正常通信。激活的會話期間,服務器應重置所有已激活的/初始化的/更改過的設置/控制。這不包括已編程入非易失性存儲器中的長期更改。

在這里插入圖片描述

除了發送請求可以使Server 切換會話,如果您進入了一個非默認會話的狀態,一個定時器會運轉,如果一段時間內沒有請求,那么到時間(S3Server)后,診斷退回到默認會話01(最低權限)。當然,我們有一個$3E的服務,可以使診斷保持在非默認的狀態。

請求和響應

1、請求

基本格式

歸納起來,診斷的request格式無非以下兩種:

<SID> + <Sub-function> + <Parameter>

<SID> + <Parameter>

即有無sub-function的區別。Parameter可以是DID,可以是輸入參數,可以是自定義的值,字節數視具體要求而定。
在這里插入圖片描述

2、子功能

子功能參數定義(1字節數據):

  • Bit7:抑制肯定響應消息指示位 suppressPosRspMsgIndicationBit
    • 0=False:需要肯定響應
    • 1=True:禁止肯定響應
  • Bit6-0:子功能參數值(0x00~0x7F)

在這里插入圖片描述
在這里插入圖片描述

3、肯定響應

基本格式:

<SID + 0x40> + <Sub-function> + <Parameter>

<SID + 0x40> + <Parameter>

要注意,第一個字節是由SID和0x40的和構成。這里的Parameter項是optional的,具體要看協議規定。
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

4、否定響應

基本格式:

<0x7F> + <SID> + <NRC>

看起來比較簡單,格式比較固定,只要是Negative Response,第一字節就是0x7F,第二字節照抄原來的SID,第三個字節是錯誤響應碼,指示具體錯誤響應的原因

在這里插入圖片描述

5、特殊的NRC

這里提一下一個特殊的NRC——0x78,requestCorrectlyReceived-ResponsePending(RCRRP,請求已被正確接收-回復待定)。

這個NRC表明請求消息被正確地接收,請求消息中的所有參數都是有效的,但是要執行的操作還沒有完成,Server端還沒有準備好接收另一個請求。一旦請求的服務已經完成,服務器應該發送一個積極的響應或消極的響應,響應代碼應與此不同。這個NRC的消極響應可以被Server端重復,直到被請求的服務完成并且最終的響應消息被發送。

請添加圖片描述

https://zhuanlan.zhihu.com/p/37310388?utm_source=com.alibaba.android.rimet

為什么劃分不同會話

因為權限問題。默認會話權限最小,可操作的服務少;擴展模式通常用于解鎖高權限診斷服務,例如寫入數據/參數、讀寫診斷碼;編程模式用于解鎖bootloader相關的診斷服務,即程序燒錄。

題外話,講個故事。這三個會話模式好比普通項目成員(默認會話)、項目組長(擴展會話)和會計(編程會話)的關系,小職員權限最小,小職員有的權限項目組長全有,項目組長還多了些其他的高端權限(如寫數據、例程控制)。會計則不同,它有些自己獨有的權限(刷寫程序),但項目組的很多權限它沒有(讀/擦故障碼),因為它只干會計相關的事,本身不參與項目。

下圖僅供參數:
在這里插入圖片描述

報文示例

Tx / RxCan Data描述
Byte 7 - Byte 0
Tx02 10 02 XX XX XX XX XX 0:單幀
2:2個有效字節長度
10:10服務
02:編程會話
請求切換到編程會話
Rx06 50 02 00 32 01 F4 XX 0:單幀
6:6個有效字節長度
50:SID + 0x40
00 32:P2server_max = 50ms
01 F4:P2*Server_max = 5000ms
回復肯定響應,并且回復 P2server、P2*Server 時間參數

UDS中常用 NRC

在這里插入圖片描述

參考

  • https://blog.csdn.net/wto9109/article/details/121345955
  • https://zhuanlan.zhihu.com/p/37310388?utm_source=com.alibaba.android.rimet
  • http://www.360doc.com/content/12/0121/07/30375878_1052846532.shtml

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

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

相關文章

(四) python門面模式

文章目錄 4.1 結構型設計模式4.1.1 簡介4.1.2 常見的幾種結構型設計模式 4.2 理解門面設計模式4.2.1 門面設計模式概述4.2.2 門面設計模式的作用 4.3 UML類圖4.3.1 門面4.3.2 系統4.3.3 客戶端 4.4 門面模式的代碼實現4.4.1 場景&#xff1a;4.4.2 python實現 4.5 原理&#xf…

Compose for iOS:kotlin 與 swift 互操作

前言 類似于 Android 上的 compose&#xff0c;在 iOS 上的 compose 同樣支持嵌套顯示 compose UI 和 swiftUI 或是 uikit 。 但是不同于 Android 原生就是使用 kotlin 作為開發語言&#xff0c;iOS 的開發語言是 swift 或者 object-c 。雖然大多數業務邏輯都可以直接使用 ko…

渲染(iOS渲染過程解析)

渲染 渲染原理 一個硬核硬件科普視頻 CPU和GPU CPU&#xff08;Central Processing Unit&#xff09;&#xff1a;現代計算機整個系統的運算核心、控制核心&#xff0c;適合串行計算。GPU&#xff08;Graphics Processing Unit&#xff09;&#xff1a;可進行繪圖運算工作的…

安防音頻接口選型的高性能國產芯片分析

在人工智能興起之后&#xff0c;安防市場就成為了其全球最大的市場&#xff0c;也是成功落地的最主要場景之一。對于安防應用而言&#xff0c;智慧攝像頭、智慧交通、智慧城市等概念的不斷涌現&#xff0c;對于芯片產業催生出海量需求。今天&#xff0c;我將為大家梳理GLOBALCH…

springboot_3.2_freemark_基礎環境配置

springboot_3.2_freemark_基礎環境配置 一、前言二、環境三、相關資料四、目標五、默認配置項六、構建springboot 3.2項目6.1 pom.xml 內容&#xff1a;6.2 啟動類6.3 添加ftlh模板6.4 controller內容6.5 bootstrap.yml配置 七、總結 一、前言 FreeMarker 是一款模板引擎&…

Linux——緩沖區與實現C庫的fopen,fwrite,fclose

目錄 一.緩沖區 1緩沖區的概念 2.緩沖區存在的意義 3.緩沖區刷新策略 4.什么是刷新&#xff1f; C語言的緩沖區在哪里&#xff1f; ?編輯 仿寫C庫里的fopen&#xff0c;fclose&#xff0c;fwrite。 mystdio.h mystdio.c main.c(向文件中寫入20次msg) 一.緩沖區 1…

b站pwn的學習總結

寫的很亂 1.c語言的運行過程 了解了c語言需要經過以上2個過程&#xff08;編譯和匯編&#xff09;&#xff0c;才能讓機器按指令運行。機器只能聽得懂機器碼&#xff0c;所以要“匯編”。 那問題就來了&#xff0c;“編譯”這個動作有啥用&#xff0c;c語言這種高級語言&…

玩轉大數據10:深度學習與神經網絡在大數據中的應用

目錄 1. 引言&#xff1a;深度學習和神經網絡在大數據中的重要性和應用場景 2. 深度學習的基本概念和架構 3. Java中的深度學習框架 3.1. Deeplearning4j框架介紹及Java編程模型 3.2. DL4J、Keras和TensorFlow的集成 4. 大數據與深度學習的結合 4.1. 大數據與深度學…

電腦端同時登錄多個微信

1、建立一個txt文件 2、右擊微信查看應用的屬性&#xff0c;記錄文件的位置 3、將步驟二得到的路徑按照下方的格式輸入到步驟一的文本中 4、保存之后將文本后綴名的.txt改成.bat 5、在未登錄微信的情況下&#xff0c;雙擊即可得到兩個微信登錄窗口

Python高級算法——回溯法(Backtracking)

Python中的回溯法&#xff08;Backtracking&#xff09;&#xff1a;高級算法解析 回溯法是一種通過嘗試所有可能的解來找到問題解的算法設計方法。它通常應用于組合問題、排列問題、子集問題等。在本文中&#xff0c;我們將深入講解Python中的回溯法&#xff0c;包括基本概念…

解決oracle.sql.TIMESTAMP序列化轉換失敗問題 及 J2EE13Compliant原理

目錄 報錯現象報錯內容處理方法Oracle驅動源碼總結 報錯現象 oracle表中存在TIMESTAMP類型的列時&#xff0c;jdbc查出來做序列化時報錯 報錯內容 org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframewo…

x86和ARM中配置無線網SSID和PASSWORD

提供一個可行的方法 1.準備文件 hostapd.conf &#xff1a;是用戶控件的守護進程用于無線接入點&#xff08;AP&#xff09;和授權服務器&#xff08;authentication servers)&#xff0c;存放路徑&#xff1a;/etc/hostapd/hostapd.conf interfacewlp5s0 drivernl80211 chan…

Java中多線程中 synchronized 鎖升級的原理是什么?

Java中多線程中 synchronized 鎖升級的原理是什么&#xff1f; 在 Java 中&#xff0c;synchronized 鎖的升級是指在不同的場景下&#xff0c;鎖的性能優化。Java 的鎖有多個狀態&#xff0c;主要包括偏向鎖、輕量級鎖和重量級鎖。 偏向鎖&#xff1a;當只有一個線程訪問同步塊…

acwing算法提高之動態規劃--背包模型(三)

目錄 1 基礎知識2 模板3 工程化 1 基礎知識 暫無。。。 2 模板 暫無。。。 3 工程化 題目1&#xff1a;潛水員。 解題思路&#xff1a;DP。 狀態定義f[i][j][k]&#xff1a;從前i個物品中選&#xff0c;氧氣至少為j&#xff0c;氮氣至少為k的最小方案數。 狀態轉移&…

解決idea 通過build project 手動觸發熱部署失敗

在debug運行項目的過程中&#xff0c;并且保證&#xff08;不添加方法&#xff0c;不修改方法名&#xff09;一定的規則的情況下&#xff0c;可以通過build project 來手動熱部署項目&#xff0c;也就是會交換class文件與resouces文件。 設置項 Edit Configurations Modify Op…

計算機圖形學理論(1):建模基礎

本系列根據國外一個圖形小哥的講解為本&#xff0c;整合互聯網的一些資料&#xff0c;結合自己的一些理解。 場景的組成部分 場景相當于一個或多個模型的集合。模型包含以下內容&#xff1a; 結構描述&#xff1a;幾何形狀&#xff0c;如頂點、紋理坐標等表面描述&#xff1a…

Vue3中的defineModel

目錄 一、vue3的defineModel介紹 二、defineModel使用 &#xff08;1&#xff09;在vite.config.js中開啟 &#xff08;2&#xff09;子組件 &#xff08;3&#xff09;父組件 一、vue3的defineModel介紹 為什么要使用到defineModel呢&#xff1f;這里有這樣一種場景&…

“快速排序:一種美麗的算法混沌”(1.hoare)

歡迎來到我的博客&#xff01;在今天的文章中&#xff0c;我將采用一種獨特且直觀的方式來探討我們的主題&#xff1a;我會使用一幅圖像來貫穿整篇文章的講解。這幅精心設計的圖表不僅是我們討論的核心&#xff0c;也是一個視覺輔助工具&#xff0c;幫助你更深入地理解和掌握本…

學習深度強化學習---第2部分----RL動態規劃相關算法

文章目錄 2.1節 動態規劃簡介2.2節 值函數與貝爾曼方程2.3節 策略評估2.4節 策略改進2.5節 最優值函數與最優策略2.6節 值迭代與策略迭代2.7節 動態規劃求解最優策略 本部分視頻所在地址&#xff1a;深度強化學習的理論與實踐 2.1節 動態規劃簡介 態規劃有兩種思路&#xff1…

前端 Web Workers 簡介

簡介 以前我們總說&#xff0c;JS 是單線程沒有多線程&#xff0c;當 JS 在頁面中運行長耗時同步任務的時候就會導致頁面假死影響用戶體驗&#xff0c;從而需要設置把任務放在任務隊列中&#xff1b;執行任務隊列中的任務也并非多線程進行的&#xff0c;然而現在 HTML5 提供了…