UDS
本質(zhì)上是一系列服務(wù)的集合,包含6
大類,共26
種。每種服務(wù)都有獨立的ID
,即SID
。
請求
-
SID(1Byte)
+ 參數(shù) -
SID(1Byte)
+Sub-function(1Byte)
+ 參數(shù) -
SID
+DID(2Bytes)
響應(yīng)
- 肯定響應(yīng)
-
SID+0x40(1Byte)
+Sub-function
(根據(jù)請求是否存在) + 參數(shù) -
SID+0x40(1Byte)
+DID
+Data
-
- 否定響應(yīng)
-
0x7F
+SID
+NRC(1Byte)
(否定響應(yīng)碼) -
0x7F
+SID
+DID
+NRC(1Byte)
(否定響應(yīng)碼)
-
- 常見的
NRC
-
11
表示服務(wù)不支持 -
12
表示Sub-function
不支持 -
13
表示請求的長度不正確、格式不正確 -
31
表示請求超出范圍 -
78
表示收到診斷請求,等待響應(yīng) -
7E
表示當(dāng)前會話下Sub-function
不支持 -
7F
表示當(dāng)前會話下服務(wù)不支持
-
Sub-function
分成了兩部分(14229 P39
)
-
Bit7
,Suppress postive reponse message indication bit
,抑制正響應(yīng)位- 為
0
時,不抑制正響應(yīng)消息 - 為
1
時,抑制響應(yīng)消息,正響應(yīng)消息不應(yīng)該被發(fā)送 - 負(fù)響應(yīng)消息不受抑制正響應(yīng)位影響,會根據(jù)協(xié)議規(guī)定的限制發(fā)送
- 注意
NRC為78時
,后續(xù)也會發(fā)送正響應(yīng)
- 為
-
Bit0 - Bit6
-
Sub-function
的參數(shù)值
-
常用服務(wù)
-
10
診斷會話控制-
01
默認(rèn)會話:權(quán)限最小,可操作的服務(wù)少 -
02
編程會話:用于解鎖bootloader
相關(guān)的診斷服務(wù) -
03
擴(kuò)展會話:用于解鎖高權(quán)限診斷服務(wù),如:讀寫DTC
、寫入數(shù)據(jù) - 注:編程會話不能由默認(rèn)會話轉(zhuǎn)入(在默認(rèn)會話情況下,不能執(zhí)行
10 02
),只能由擴(kuò)展會話轉(zhuǎn)入 - 默認(rèn)進(jìn)入默認(rèn)會話,當(dāng)
ECU
處于非默認(rèn)會話時,一段時間內(nèi)沒有請求會退回到默認(rèn)會話??梢酝ㄟ^讓Tester
周期發(fā)送3E
服務(wù),使ECU
保持在非默認(rèn)會話
-
-
11
重置ECUReset
- 報文格式
- 請求:
11
+Sub-function
- 響應(yīng):
51
+Sub-function
+powerDownTime
- 請求:
- 常用子服務(wù)
-
01
硬重啟 -
03
軟重啟 -
04
enableRapidPowerShutDown
當(dāng)使用此子服務(wù)時,powerDownTime
才會存在
-
11 01 51 01
- 報文格式
-
27
安全訪問-
ECU
上電后是一個鎖定的狀態(tài),可以通過27
服務(wù)來解鎖 - 過程:
-
Tester
端給ECU
發(fā)送請求報文來請求種子 -
ECU
收到報文后,回復(fù)肯定響應(yīng)(包含種子數(shù)) -
Tester
端根據(jù)這個種子數(shù),利用自身的安全算法算出一個密鑰K1
,并發(fā)送給ECU
-
ECU
同樣根據(jù)種子數(shù)和自身的安全算法計算出一個密鑰K2
,并將接收到的K1
與K2
相比較。如果一致ECU
發(fā)送肯定響應(yīng)給Tester
端,已經(jīng)解鎖。
-
- 當(dāng)執(zhí)行復(fù)位、重新上下電或者會話切換后,會由解鎖狀態(tài)跳轉(zhuǎn)到鎖定狀態(tài)
-
-
22
讀數(shù)據(jù)- 報文格式
- 請求:
22
+DID(2Bytes)
- 響應(yīng):
62
+DID
+Data
- 請求:
- 支持的
NRC
-
13
表示請求消息的長度無效或超過長度 -
14
表示讀取的數(shù)據(jù)已經(jīng)超過了傳輸最大值,如請求多個DID
,響應(yīng)的數(shù)據(jù)太多了 -
22
表示服務(wù)器的運行條件不滿足執(zhí)行的操作 -
31
表示當(dāng)前會話下不支持請求的DID
;請求的動態(tài)DID
尚未分配 -
33
表示如果至少有一個DID
是安全的,但是服務(wù)器沒有解鎖
-
- 報文格式
-
2E
寫數(shù)據(jù)- 報文格式
- 請求:
2E
+DID
+Data
- 響應(yīng):
6E
+DID
- 請求:
- 支持的
NRC
-
72
表示寫入失敗
-
- 報文格式
-
19
讀DTC
-
當(dāng)系統(tǒng)檢測到錯誤或故障時,會將相應(yīng)的數(shù)值故障碼進(jìn)行存儲,數(shù)值故障碼就是
DTC
。 -
一般由
3
個字節(jié)組成:-
字節(jié)
1
- 左邊兩位對應(yīng)
DTC
屬于哪一個系統(tǒng),P: 00
動力系統(tǒng)、C: 01
底盤、B: 10
車身和U: 11
通信系統(tǒng) - 左邊
3-4
位用來區(qū)分DTC
是標(biāo)準(zhǔn)組織所定義還是OEM
自定義 - 左邊
5-8
位對應(yīng)車輛系統(tǒng)的區(qū)域
- 左邊兩位對應(yīng)
-
DTC Status
-
Bit4
和Bit6
的初始值為1
,其余位的初始值為0
,所以默認(rèn)值0x50
-
Bit0
為1
時表示當(dāng)前結(jié)果為故障 -
Bit3
為1
時表示存在歷史故障
-
-
-
常用子服務(wù)(
14229 P188
、14229 P206
)-
01
:檢索與客戶端定義的狀態(tài)掩碼匹配的DTC
數(shù)量-
19
+01
+DTCStatusMask
-
59
+01
+DTCStatusAvailabilityMask
+DTCFormatIdentifier
+Number(2Byte)
-
-
02
:檢索與客戶端定義的狀態(tài)掩碼匹配的DTC
列表-
19
+02
+DTCStatusMask
-
59
+02
+DTCStatusAvailabilityMask
+DTC
+statusOfDTC
- 注:當(dāng)
(DTCStatusMask & statusOfDTC) != 0
時,匹配成功
-
-
-
04
:讀取DTC
的快照信息(凍結(jié)幀),即發(fā)生故障時的一些環(huán)境數(shù)據(jù),能更好的判斷DTC
產(chǎn)生的原因以及發(fā)生故障的原因
-19
+04
+DTC
+DTCSnapshotRecordNumber
-59
+04
+DTC
+Status
+DTCSnapshotRecordNumber
+DTCSnapshotRecordNumberOfIdentifiers
+DID
+snapshotData
+DID
+snapshotData
- 快照信息:例如故障發(fā)生時間、胎壓、電壓、行駛里程數(shù)和車速等。在故障發(fā)生時,ECU
要記錄發(fā)生故障時的快照信息,便于以后通過查找故障發(fā)生時刻的這些數(shù)據(jù),分析故障原因
-DTCSnapshotRecordNumber
包含一組快照信息、一組快照信息中可以包含多個DID
,每個DID
則包含具體的信息,比如:胎壓、里程數(shù)-
06
:讀取DTC
存儲時候的一些擴(kuò)展信息-
19
+06
+DTC
+DTCExtDataRecordNumber
-
59
+06
+DTC
+statusOfDTC
+DTCExtDataRecordNumber
+DTCExtDataRecord[]
- 擴(kuò)展信息:用于記錄故障的一些其它信息,比如:故障發(fā)生的次數(shù)、老化次數(shù)、已老化次數(shù)等
-
- 為什么有了快照數(shù)據(jù)還要有擴(kuò)展信息呢?
- 快照即故障發(fā)生時刻存下來的瞬間的環(huán)境數(shù)據(jù)
- 擴(kuò)展信息即在故障發(fā)生時其它的故障信息,如
aging counter
、aged counter
、Fault Counter
以及event id
等
-
0A
:讀取所有DTC
列表及狀態(tài)-
19
+0A
-
59
+0A
+DTCStatusAvailabilityMask
+DTC
+statusOfDTC
-
-
-
-
14
清除DTC
-
報文格式文章來源地址http://www.zghlxwxcb.cn/news/detail-617685.html
- 請求:
14
+DTC
- 響應(yīng):
54
14 FF FF FF 54
- 請求:
-
-
31
例程控制RoutineControl
- 客戶端通過例程
ID
(2-Byte
)請求啟動、停止服務(wù)端的例程或者請求例程結(jié)果 - 主要用于:
Erasing memory
、Resetting
- 報文格式
- 請求:
31
+Sub-function
+routineIdentifier(2-Byte)
- 響應(yīng):
71
+routineControlType
+routineIdentifier(2-Byte)
+routineInfo
- 請求:
- 常用子服務(wù)
-
01
啟動例程(startRoutine
) -
02
停止例程(stopRoutine
) -
03
請求例程結(jié)果(requestRoutineResults
)
-
- 客戶端通過例程
-
34
請求下載Request Download
- 報文格式
- 請求:
34
+dataFormatIdentifier
+addressAndLengthFormatIdentifier
+memoryAddress
+memorySize
-
dataFormatIdentifier
00
-
00
以外的值由汽車制造商定義
-
addressAndLengthFormatIdentifier
的含義-
bit 7-4
:Length (number of bytes) of the memorySize parameter
,指定memorySize
有幾個字節(jié) -
bit 3-0
:Length (number of bytes) of the memoryAddress parameter
,指定memoryAddress
有幾個字節(jié)
-
-
memoryAddress
要寫入數(shù)據(jù)在內(nèi)存的起始地址 -
memorySize
使用此參數(shù)與實際要傳輸?shù)臄?shù)據(jù)大小進(jìn)行比較 - 響應(yīng):
74
+lengthFormatIdentifier
+maxNumberOfBlockLength
-
lengthFormatIdentifier
的含義bit 7-4: Length (number of bytes) of the maxNumberOfBlockLength parameter
bit 3-0: reserved by document, to be set to 0
-
maxNumberOfBlockLength
告知客戶端后面的每個TransferData
報文總共占多少字節(jié)
- 請求:
34 11 33 60 20 00 00 FF FF 74 20 00 81
- 報文格式
-
36
傳輸數(shù)據(jù)Transfer Data
- 將數(shù)據(jù)從客戶端傳輸?shù)椒?wù)器
- 報文格式
- 請求:
36
+blockSequenceCounter
+Data(3-n)
-
blockSequenceCounter
序號0x01-0xFF
,下一個循環(huán)0x00-0xFF
-
- 響應(yīng):
76
+blockSequenceCounter
+transferResponseParameterRecord
- 請求:
36 01 xx xx # 每條報文占的字節(jié)數(shù)根據(jù)34服務(wù)中響應(yīng)的maxNumberOfBlockLength返回值 76 01
-
37
請求傳輸退出Request Transfer Exit
- 用于終止客戶端和服務(wù)端之間的數(shù)據(jù)傳輸
- 報文格式
- 請求:
37
- 響應(yīng):
77
- 請求:
37 77
-
實際傳輸過程
-
依次
34
、36
和37
,為一個循環(huán),其中36
數(shù)據(jù)傳輸可執(zhí)行多次 -
37
執(zhí)行結(jié)束后,如果還有其它數(shù)據(jù)傳輸,則再次執(zhí)行34
、36
和37
服務(wù)
-
-
28
通信控制(CommunicationControl
)- 用于開啟或關(guān)閉服務(wù)端某些消息的接收/發(fā)送報文
- 報文格式
- 請求:
28
+sub-function=[controlType]
+communicationType
-
communicationType
01: normalCommunicationMessages
02: networkManagementCommunicationMessages
03: networkManagementCommunicationMessages and normalCommunicationMessages
- 響應(yīng):
68
+sub-function=[controlType]
- 請求:
28 03 02 68 03
- 常用子服務(wù)
-
00
:enableRxAndTx
啟用非診斷報文的接收和發(fā)送 -
03
:disableRxAndTx
禁止非診斷報文的接收和發(fā)送
-
-
85
控制DTC
(ControlDTCSetting
)- 用于停止和恢復(fù)
DTC
狀態(tài)位的更新 - 報文格式
- 請求:
85
+sub-function=[DTCSettingType]
+DTCSettingControlOptionRecord
- 響應(yīng):
C5
+DTCSettingType
- 請求:
85 01 C5 01
-
常用子服務(wù)文章來源:http://www.zghlxwxcb.cn/news/detail-617685.html
-
01
on
恢復(fù)更新 -
02
off
停止更新
-
-
報文格式
- 請求:
85
+sub-function=[DTCSettingType]
+DTCSettingControlOptionRecord
- 響應(yīng):
C5
+DTCSettingType
- 請求:
85 01 C5 01
- 常用子服務(wù)
-
01
on
恢復(fù)更新 -
02
off
停止更新
-
- 用于停止和恢復(fù)
到了這里,關(guān)于UDS診斷協(xié)議的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!