前言
UDS(UnifiedDiagnostic Services氏堤,統(tǒng)一診斷服務,有時也稱增強診斷)指的就是ISO-14229協(xié)議恶复。
ISO 14229-1定義了診斷服務州弟,但不涉及網(wǎng)絡層及實現(xiàn)手段仍律,只有應用層的內容嘿悬,因此可在不同的汽車總線(如CAN,LIN水泉,F(xiàn)lexray善涨,Ethernet,K-line和XCP等)上實現(xiàn)草则。
下列是ISO-14229在OSI模型中的位置钢拧。
UDS診斷協(xié)議
診斷服務交互機制
基于C/S的診斷通信機制,診斷儀發(fā)過來的診斷請求被執(zhí)行了Tester作為Client發(fā)出診斷請求request炕横,車輛ECU作為Server處理該請求并發(fā)送診斷響應response(PosResponse/NegResponse)源内,診斷報文是典型的事件觸發(fā)型報文,有請求才會有響應份殿。
如果ECU收到了Tester發(fā)過來的診斷請求膜钓,且執(zhí)行了相關請求,此時ECU會向Tester發(fā)送肯定響應PosResponse卿嘲。
如果ECU因為某種原因無法執(zhí)行診斷儀發(fā)過來的診斷請求颂斜,則向診斷儀發(fā)送否定響應NegResponse。
服務請求和響應格式
了解機制以后拾枣,還需要掌握具體的服務請求和響應格式沃疮。
14229-1中目前定義了26種服務,詳見如下表格梅肤。
如果該服務不支持Subfunction司蔬,則請求格式為[SID+具體的數(shù)據(jù)],對應的肯定響應格式:[(SID+0x40)+ 具體的數(shù)據(jù)]姨蝴,否定響應格式:[7F+SID+NRC] 葱她。
如果該服務支持Subfunction,則請求格式為[SID+一個字節(jié)Subfunction+具體的數(shù)據(jù)]似扔,對應的肯定響應格式:[(SID+0x40)+ Subfunction+具體的數(shù)據(jù)]吨些,否定響應格式:[7F+SID+NRC] 。
NRC是否定響應碼炒辉,14229-1定義了相關含義豪墅。
Suppress Ppositive Response
知道了Subfunction以后,可以在掌握一個概念黔寇,肯定響應抑制位偶器。
肯定響應抑制位是在Subfunction里的這個字節(jié)的最高位。當肯定響應抑制位置1的時候,ECU的肯定響應的抑制將不再發(fā)送。當肯定響應抑制位為0的時候玄柠,肯定響應是不被抑制的微渠,目的是可以告訴ECU不要發(fā)不必要的Response,從而節(jié)約通信資源姆吭。這里要注意的是它只是抑制肯定響應,而否定響應是不被抑制的唁盏。
結尾
后續(xù)將整理服務具體的內容内狸,以及協(xié)議里面我認為值得寫的內容。
END