車聯(lián)網(wǎng)產(chǎn)品經(jīng)理需要了解的UDS診斷

0 評論 507 瀏覽 0 收藏 12 分鐘

作為一個汽車產(chǎn)品人,不可避免的會接觸到各種車端通信協(xié)議,其中的UDS(Unified Diagnostic Services)診斷協(xié)議,廣泛應用于汽車電子系統(tǒng)的診斷和維護。這篇文章,我們來學習一下。

一、ECU

ECU( Electronic Control Unit)電子控制單元,車上搭載著許多ECU,用來監(jiān)控和控制車輛的各個系統(tǒng),如變速器控制單元(TCU)、電子穩(wěn)定程序控制單元(ESP)、動力電池管理模塊(BMS)等。各ECU根據(jù)各種傳感器提供的信號,按照預先編寫的程序進行計算和判斷,從而控制執(zhí)行器工作,以實現(xiàn)對汽車各系統(tǒng)的精確控制。

二、UDS診斷協(xié)議

當我們身體的某個部位不舒服時,我們可以去醫(yī)院看醫(yī)生,這個時候醫(yī)生會詢問我們的感受,開具一些檢查來了解情況。同樣的,當車輛某個系統(tǒng)或部件有問題時,我們也需要通過某種手段獲取車輛的數(shù)據(jù)信息,以更好的進行治療。UDS診斷協(xié)議就是我們和車輛ECU進行診斷溝通的一個通用手段。

UDS(Unified Diagnostic Services,統(tǒng)一診斷服務)診斷協(xié)議是一種廣泛應用于汽車電子控制系統(tǒng)中的標準化診斷協(xié)議,基于ISO 14229標準。它為汽車電子控制單元(ECU)之間的診斷通信提供了一套統(tǒng)一的框架和服務。這使得不同品牌的汽車和不同制造商的ECU可以使用相同的診斷工具進行診斷,大大提高了診斷的便利性和效率。

UDS診斷提供的能力包括

  • 診斷通信:通過標準化的服務(如0x10會話控制、0x22讀取數(shù)據(jù)、0x2E寫入數(shù)據(jù))與ECU交互。
  • 故障管理:支持DTC(Diagnostic Trouble Code,故障碼)的讀取、清除和存儲。
  • ECU編程:用于固件更新(如通過0x34請求下載、0x36傳輸數(shù)據(jù))。
  • 安全訪問:通過安全算法(如種子-密鑰機制)防止未授權操作。

SID:UDS診斷協(xié)議定義了26種診斷服務,這些服務被分為6大類,每種服務都有一個唯一的服務標識符(SID)。

Sub-function:每個診斷服務下的子功能,有的診斷服務不需要指定子功能。Sub-function共有8個bit。

  • bit7:正響應抑制位,全稱Suppress Positive Response,bit7=1時,抑制正響應,此時不需要ECU給出響應,bit7=0時,需要ECU給出響應。
  • bit6~bit0:這7個bit用來指定具體的Sub-function。

UDS診斷協(xié)議針對每一個服務,都詳細介紹了服務的功能范圍、給出了請求消息的定義要求、肯定響應消息的定義要求、受支持的否定響應代碼(NRC),以及消息流示例。

三、UDS診斷服務

下面介紹幾個車聯(lián)網(wǎng)產(chǎn)品經(jīng)理需要了解的常用服務

10服務:診斷會話控制

10服務用于啟用ECU中的不同診斷會話。不同的診斷會話支持的服務權限不同。

請求消息

diagnosticSessionTypes診斷會話類型,第7位為正響應抑制位,第6至0位定義診斷會話類型。

  • 默認會話(0x01):這是ECU上電時的初始會話模式。在默認會話下,ECU支持一些基本的診斷服務,例如讀取數(shù)據(jù)(0x22)、清除診斷信息(0x14)、讀取診斷信息(0x19)等。
  • 編程會話(0x02):編程會話用于ECU的軟件更新和配置。在編程會話下,ECU支持一些特定的診斷服務,例如編程服務(0x35、0x36、0x37)。
  • 擴展會話(0x03):擴展會話用于啟用一組特定的診斷服務和功能。在擴展會話下,ECU支持一些高級的診斷服務,例如安全訪問(0x27)、數(shù)據(jù)寫入(0x2E)等。

肯定響應消息

sessionParameterRecord會話參數(shù)記錄定義如下,其中

P2Server_max:表示ECU在應用層上對診斷命令的響應時間。如果ECU在該時間內未能響應,可以認為通信超時。

P2*Server_max:表示ECU在強化模式下對診斷命令的響應時間。強化模式通常用于ECU暫時無法處理當前診斷命令的情況,ECU會發(fā)送一個NRC 0x78(RequestCorrectlyReceivedResponsePending)響應,表示請求已接收但響應待定。P2*Server_max定義了服務器在這種情況下可以等待的最長時間。

19服務:讀取DTC信息

19服務支持讀取故障碼(DTC,全稱Diagnostic Trouble Code)信息。故障碼由制造商預先定義,可以簡單理解為給車輛的每個故障一個代號。當我們讀到DTC時,根據(jù)代號就知道發(fā)生了什么故障。

19服務比較復雜,其下有27個子功能,常用的子功能包括:(Sub-function第7位為正響應抑制位,第6至0位定義具體子功能。)

  • 0x01:reportNumberOfDTCByStatusMask – 讀取符合狀態(tài)掩碼條件的DTC數(shù)量。
  • 0x02:reportDTCByStatusMask – 讀取符合狀態(tài)掩碼條件的DTC列表及其狀態(tài)。
  • 0x03:reportDTCSnapshotIdentification – 報告DTC快照記錄的標識。
  • 0x04:reportDTCSnapshotRecordByDTCNumber – 通過DTC編號報告DTC快照記錄。
  • 0x06:reportDTCExtendedDataRecordByDTCNumber – 通過DTC編號報告DTC擴展數(shù)據(jù)記錄。
  • 0x0A:reportSupportedDTC – 報告ECU支持的所有DTC及其狀態(tài)。

1901(讀取DTC數(shù)量)

比如我們要獲取ECU中已確認DTC的數(shù)量。獲取DTC數(shù)量需要使用19 01服務,我們先看下01服務的

請求消息的定義要求、肯定響應消息的定義要求。

請求消息

DTCStatusMask(DTC狀態(tài)掩碼):

狀態(tài)掩碼共有8個狀態(tài)位,通過狀態(tài)掩碼,我們可以精確地獲取特定狀態(tài)的DTC信息。比如我們請求消息的狀態(tài)掩碼的某一位設置為1,如果DTC的實際狀態(tài)位中的這一位也為1(即請求掩碼與DTC的實際狀態(tài)進行位邏輯AND運算,并且結果不為零),那么認為DTC的狀態(tài)與狀態(tài)掩碼是匹配的。

肯定響應消息

DTC狀態(tài)可用性掩碼:用于指示ECU支持的DTC狀態(tài)位。比如某個ECU的DTC狀態(tài)可用性掩碼為0x09,表示僅支持以下狀態(tài)位:Bit 0:Test Failed(測試結果是失?。it 3:Confirmed DTC(確認的DTC)。

DTCFormatIdentifier(DTC格式標識符):定義了ECU所報告DTC的格式

DTCCount(DTC計數(shù)):DTC數(shù)量

示例

現(xiàn)在我們獲取ECU中已確認DTC的數(shù)量,請求消息中的狀態(tài)掩碼應設置為0x08,所以請求消息為

若收到響應消息如下,說明該ECU支持的DTC狀態(tài)可用性掩碼為0x2F,DTC格式為14229,DTC數(shù)量為1。

22服務:通過DID讀取數(shù)據(jù)

22服務支持讀取ECU中通過一個或多個DID所識別的數(shù)據(jù)記錄值。

DID(Data Identifier)數(shù)據(jù)標識符。DID的編碼范圍為16位(0x0000–0xFFFF),其具體含義和用途根據(jù)標準化定義或車輛制造商自定義而有所不同。由UDS協(xié)議進行標準化定義的DID中常用的有

  • F190:車輛識別號(VIN)
  • F191:ECU硬件號
  • F189:ECU軟件版本號
  • F18C:ECU序列號

請求消息

肯定響應消息

示例

比如我們想讀取VIN,VIN的DID為F190,所以請求消息

響應消息如下,VIN的數(shù)據(jù)格式為17字節(jié),ASCII編碼。

四、診斷與車聯(lián)網(wǎng)

遠程診斷與OTA

基于UDS診斷協(xié)議,再結合車聯(lián)網(wǎng)技術,把原先通過線下診斷工具排查解決車輛問題的過程放到線上云端,就有了遠程的車輛診斷。遠程診斷可以實現(xiàn)車輛故障的高效診斷與快速響應,降低維修成本,提升用戶體驗。同樣的,把原先通過線下刷寫工具刷寫軟件放到線上云端,就有了OTA遠程更新。

本文由 @violetic 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)作者許可,禁止轉載

題圖來自Unsplash,基于CC0協(xié)議

該文觀點僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺僅提供信息存儲空間服務

更多精彩內容,請關注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 目前還沒評論,等你發(fā)揮!