定義介紹:
UDS(Unified Diagnostic Service)診斷的診斷服務。診斷協議是面向整車所有ECU(電控單元)的一種診斷通信協議,是診斷服務的規范化標准。
UDS本質上是一系列服務的集合,UDS的服務包含了6大類,共26種,每種服務都有自己獨立的ID,即SID(Service Identifier)
通信模式:
實際上是與ECU交互的過程,即診斷儀請求(Request)ECU,ECU給出對應響應(Response)。
UDS尋址模式:
1.物理尋址,點對點,一對一,可根據物理地址的不同進行訪問,但只能訪問單個節點。
2.功能尋址,廣播模式,一對多,根據功能的不同進行訪問,它可以訪問多個ECU節點,其SID對於標准幀來說,通常是7DF。
UDS的服務:
羅列出常用的15種服務,支持子功能的有10、11、27、28、3E、85、19、31,子功能通常是這些服務具有某些已經定義好的功能。
1.$10
10服務是Diagnostic Session Control診斷會話控制,子功能有01、02、03三種,這三種代表10服務可以進入的3種不同的會話模式。
01 Default默認會話,02 Programming編程會話(用於解鎖bootloader相關的診斷服務,即程序燒錄。),03 Extended擴展會話,ECU上電時,進入的是默認會話(Default)。
指令格式:
請求:10 SF
SF:子功能,比如01、02、03,編程會話只能通過先進擴展會話之后再進編程會話,當前為編程會話,不能直接發10 03跳轉到擴展會話。
肯定相應:50 SF sessionParameterRecord[](4byte)
0x40+SID=0x50
SF是對應請求的子功能,請求是什么子功能,他便顯示什么子功能。
會話參數記錄有P2Server_max(2byte)和P2*Server_max(2byte),高位在前的表示方式。
P2Server_max:指的是ECU在收到請求和給出響應之間的這個時間間隔,他描述了ECU的反應速度。
P2*Server_max:在ECU給出NRC 78(等待)之后生效,所以會需要更長的反應時間。
否定相應:7F SID NRC(否定相應碼)
否定相應格式一定,SID對應請求的SID,NRC為Negative Response Code,即會有一些類似於一個指令格式或數據是否正確的判斷,在發送不是一個正常指令時,ECU就會給你這個NRC,相當於一個提示,可以通過不同的NRC判斷指令的錯誤原因。比如常見的7E表示SF在此會話不支持(在編程會話發10 03即會出現)、12表示SF不支持(發10 FF這種不支持的SF)、13表示發出的此SID格式長度不符合標准定義的SID的格式(10服務定義的兩個byte,發10 01 01,即會得到此NRC)。
以下服務,下期再解析。
2.$11
11服務是ECU Reset復位
3.$27
27服務是Security Access安全訪問
4.$28
28服務是Communication Control通訊控制
5.$85
85服務是Control DTC Setting控制DTC設置
6.$22
22服務是Read Data By Identifier讀DID
7.$2E
2E服務與22服務相對,是Write Data By Identifier寫DID
8.$14
14服務是Clear Diagnostic Information清診斷信息
9.$19
19服務是Read DTC Information 讀取故障碼信息
10.$2F
2F服務是Input Output Control By Identifier通過ID控制輸入輸出
11.$31
31服務是Routine Control例程控制
12.$34
34服務是Request Download請求下載
13.$36
36服務是Transfer Data數據傳輸
14.$37
37服務是Request Transer Exit請求推出傳輸
15.$3E
3E服務是Tester Present待機握手