車聯(lián)網(wǎng)產(chǎn)品經(jīng)理需要了解的UDS診斷
作為一個汽車產(chǎn)品人,不可避免的會接觸到各種車端通信協(xié)議,其中的UDS(Unified Diagnostic Services)診斷協(xié)議,廣泛應(yīng)用于汽車電子系統(tǒng)的診斷和維護(hù)。這篇文章,我們來學(xué)習(xí)一下。
一、ECU
ECU( Electronic Control Unit)電子控制單元,車上搭載著許多ECU,用來監(jiān)控和控制車輛的各個系統(tǒng),如變速器控制單元(TCU)、電子穩(wěn)定程序控制單元(ESP)、動力電池管理模塊(BMS)等。各ECU根據(jù)各種傳感器提供的信號,按照預(yù)先編寫的程序進(jìn)行計算和判斷,從而控制執(zhí)行器工作,以實(shí)現(xiàn)對汽車各系統(tǒng)的精確控制。
二、UDS診斷協(xié)議
當(dāng)我們身體的某個部位不舒服時,我們可以去醫(yī)院看醫(yī)生,這個時候醫(yī)生會詢問我們的感受,開具一些檢查來了解情況。同樣的,當(dāng)車輛某個系統(tǒng)或部件有問題時,我們也需要通過某種手段獲取車輛的數(shù)據(jù)信息,以更好的進(jìn)行治療。UDS診斷協(xié)議就是我們和車輛ECU進(jìn)行診斷溝通的一個通用手段。
UDS(Unified Diagnostic Services,統(tǒng)一診斷服務(wù))診斷協(xié)議是一種廣泛應(yīng)用于汽車電子控制系統(tǒng)中的標(biāo)準(zhǔn)化診斷協(xié)議,基于ISO 14229標(biāo)準(zhǔn)。它為汽車電子控制單元(ECU)之間的診斷通信提供了一套統(tǒng)一的框架和服務(wù)。這使得不同品牌的汽車和不同制造商的ECU可以使用相同的診斷工具進(jìn)行診斷,大大提高了診斷的便利性和效率。
UDS診斷提供的能力包括
- 診斷通信:通過標(biāo)準(zhǔn)化的服務(wù)(如0x10會話控制、0x22讀取數(shù)據(jù)、0x2E寫入數(shù)據(jù))與ECU交互。
- 故障管理:支持DTC(Diagnostic Trouble Code,故障碼)的讀取、清除和存儲。
- ECU編程:用于固件更新(如通過0x34請求下載、0x36傳輸數(shù)據(jù))。
- 安全訪問:通過安全算法(如種子-密鑰機(jī)制)防止未授權(quán)操作。
SID:UDS診斷協(xié)議定義了26種診斷服務(wù),這些服務(wù)被分為6大類,每種服務(wù)都有一個唯一的服務(wù)標(biāo)識符(SID)。
Sub-function:每個診斷服務(wù)下的子功能,有的診斷服務(wù)不需要指定子功能。Sub-function共有8個bit。
- bit7:正響應(yīng)抑制位,全稱Suppress Positive Response,bit7=1時,抑制正響應(yīng),此時不需要ECU給出響應(yīng),bit7=0時,需要ECU給出響應(yīng)。
- bit6~bit0:這7個bit用來指定具體的Sub-function。
UDS診斷協(xié)議針對每一個服務(wù),都詳細(xì)介紹了服務(wù)的功能范圍、給出了請求消息的定義要求、肯定響應(yīng)消息的定義要求、受支持的否定響應(yīng)代碼(NRC),以及消息流示例。
三、UDS診斷服務(wù)
下面介紹幾個車聯(lián)網(wǎng)產(chǎn)品經(jīng)理需要了解的常用服務(wù)
10服務(wù):診斷會話控制
10服務(wù)用于啟用ECU中的不同診斷會話。不同的診斷會話支持的服務(wù)權(quán)限不同。
請求消息
diagnosticSessionTypes診斷會話類型,第7位為正響應(yīng)抑制位,第6至0位定義診斷會話類型。
- 默認(rèn)會話(0x01):這是ECU上電時的初始會話模式。在默認(rèn)會話下,ECU支持一些基本的診斷服務(wù),例如讀取數(shù)據(jù)(0x22)、清除診斷信息(0x14)、讀取診斷信息(0x19)等。
- 編程會話(0x02):編程會話用于ECU的軟件更新和配置。在編程會話下,ECU支持一些特定的診斷服務(wù),例如編程服務(wù)(0x35、0x36、0x37)。
- 擴(kuò)展會話(0x03):擴(kuò)展會話用于啟用一組特定的診斷服務(wù)和功能。在擴(kuò)展會話下,ECU支持一些高級的診斷服務(wù),例如安全訪問(0x27)、數(shù)據(jù)寫入(0x2E)等。
肯定響應(yīng)消息
sessionParameterRecord會話參數(shù)記錄定義如下,其中
P2Server_max:表示ECU在應(yīng)用層上對診斷命令的響應(yīng)時間。如果ECU在該時間內(nèi)未能響應(yīng),可以認(rèn)為通信超時。
P2*Server_max:表示ECU在強(qiáng)化模式下對診斷命令的響應(yīng)時間。強(qiáng)化模式通常用于ECU暫時無法處理當(dāng)前診斷命令的情況,ECU會發(fā)送一個NRC 0x78(RequestCorrectlyReceivedResponsePending)響應(yīng),表示請求已接收但響應(yīng)待定。P2*Server_max定義了服務(wù)器在這種情況下可以等待的最長時間。
19服務(wù):讀取DTC信息
19服務(wù)支持讀取故障碼(DTC,全稱Diagnostic Trouble Code)信息。故障碼由制造商預(yù)先定義,可以簡單理解為給車輛的每個故障一個代號。當(dāng)我們讀到DTC時,根據(jù)代號就知道發(fā)生了什么故障。
19服務(wù)比較復(fù)雜,其下有27個子功能,常用的子功能包括:(Sub-function第7位為正響應(yīng)抑制位,第6至0位定義具體子功能。)
- 0x01:reportNumberOfDTCByStatusMask – 讀取符合狀態(tài)掩碼條件的DTC數(shù)量。
- 0x02:reportDTCByStatusMask – 讀取符合狀態(tài)掩碼條件的DTC列表及其狀態(tài)。
- 0x03:reportDTCSnapshotIdentification – 報告DTC快照記錄的標(biāo)識。
- 0x04:reportDTCSnapshotRecordByDTCNumber – 通過DTC編號報告DTC快照記錄。
- 0x06:reportDTCExtendedDataRecordByDTCNumber – 通過DTC編號報告DTC擴(kuò)展數(shù)據(jù)記錄。
- 0x0A:reportSupportedDTC – 報告ECU支持的所有DTC及其狀態(tài)。
1901(讀取DTC數(shù)量)
比如我們要獲取ECU中已確認(rèn)DTC的數(shù)量。獲取DTC數(shù)量需要使用19 01服務(wù),我們先看下01服務(wù)的
請求消息的定義要求、肯定響應(yīng)消息的定義要求。
請求消息
DTCStatusMask(DTC狀態(tài)掩碼):
狀態(tài)掩碼共有8個狀態(tài)位,通過狀態(tài)掩碼,我們可以精確地獲取特定狀態(tài)的DTC信息。比如我們請求消息的狀態(tài)掩碼的某一位設(shè)置為1,如果DTC的實(shí)際狀態(tài)位中的這一位也為1(即請求掩碼與DTC的實(shí)際狀態(tài)進(jìn)行位邏輯AND運(yùn)算,并且結(jié)果不為零),那么認(rèn)為DTC的狀態(tài)與狀態(tài)掩碼是匹配的。
肯定響應(yīng)消息
DTC狀態(tài)可用性掩碼:用于指示ECU支持的DTC狀態(tài)位。比如某個ECU的DTC狀態(tài)可用性掩碼為0x09,表示僅支持以下狀態(tài)位:Bit 0:Test Failed(測試結(jié)果是失?。?、Bit 3:Confirmed DTC(確認(rèn)的DTC)。
DTCFormatIdentifier(DTC格式標(biāo)識符):定義了ECU所報告DTC的格式
DTCCount(DTC計數(shù)):DTC數(shù)量
示例
現(xiàn)在我們獲取ECU中已確認(rèn)DTC的數(shù)量,請求消息中的狀態(tài)掩碼應(yīng)設(shè)置為0x08,所以請求消息為
若收到響應(yīng)消息如下,說明該ECU支持的DTC狀態(tài)可用性掩碼為0x2F,DTC格式為14229,DTC數(shù)量為1。
22服務(wù):通過DID讀取數(shù)據(jù)
22服務(wù)支持讀取ECU中通過一個或多個DID所識別的數(shù)據(jù)記錄值。
DID(Data Identifier)數(shù)據(jù)標(biāo)識符。DID的編碼范圍為16位(0x0000–0xFFFF),其具體含義和用途根據(jù)標(biāo)準(zhǔn)化定義或車輛制造商自定義而有所不同。由UDS協(xié)議進(jìn)行標(biāo)準(zhǔn)化定義的DID中常用的有
- F190:車輛識別號(VIN)
- F191:ECU硬件號
- F189:ECU軟件版本號
- F18C:ECU序列號
請求消息
肯定響應(yīng)消息
示例
比如我們想讀取VIN,VIN的DID為F190,所以請求消息
響應(yīng)消息如下,VIN的數(shù)據(jù)格式為17字節(jié),ASCII編碼。
四、診斷與車聯(lián)網(wǎng)
遠(yuǎn)程診斷與OTA
基于UDS診斷協(xié)議,再結(jié)合車聯(lián)網(wǎng)技術(shù),把原先通過線下診斷工具排查解決車輛問題的過程放到線上云端,就有了遠(yuǎn)程的車輛診斷。遠(yuǎn)程診斷可以實(shí)現(xiàn)車輛故障的高效診斷與快速響應(yīng),降低維修成本,提升用戶體驗(yàn)。同樣的,把原先通過線下刷寫工具刷寫軟件放到線上云端,就有了OTA遠(yuǎn)程更新。
本文由 @violetic 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)作者許可,禁止轉(zhuǎn)載
題圖來自Unsplash,基于CC0協(xié)議
該文觀點(diǎn)僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺僅提供信息存儲空間服務(wù)
您好 請問有車聯(lián)網(wǎng)產(chǎn)品經(jīng)理相關(guān)資料推薦沒