當前位置:編程學習大全網 - 源碼下載 - 如何看懂UDS診斷報文

如何看懂UDS診斷報文

UDS(Unified Diagnostic Services,統壹的診斷服務)診斷協議是ISO 15765 和ISO 14229 定義的壹種汽車通用診斷協議,位於OSI模型中的應用層,它可在不同的汽車總線(例如CAN, LIN, Flexray, Ethernet 和 K-line)上實現。UDS協議的應用層定義是ISO 14229-1,目前大部分汽車廠商均采用UDS on CAN的診斷協議。

UDS本質上是壹系列的服務,***包含6大類26種。每種服務都有自己獨立的ID,即SID。

肯定響應和否定響應的形式壹定要熟記。

UDS的26種服務中,有7種很重要。它們分別是:

下面對這7個服務進行解讀。

$10包含3個子功能,

ECU上電時,進入的是默認會話(Default)。如果您進入了壹個非默認會話的狀態,壹個定時器會運轉,如果壹段時間內沒有請求,那麽到時間後,診斷退回到默認會話01 。當然,我們有壹個$3E的服務,可以使診斷保持在非默認的狀態。

報文包含4種類型 ,即

NRC:Negative Response Code(否定響應碼) 。如果ECU拒絕了壹個請求,它會回應壹個NRC。不同的NRC有不同的含義。

八個數據字節,第壹字節被網絡層占用

02中的0代表網絡層單幀SF,2代表 數據域有2個字節; 10是SID,02是子功能

02同上,10+40表示對SID的肯定回復,02是子功能。

03同上,7F表示否定響應,10是SID,22是NRC。

$3E服務用於向服務器指示診斷儀仍然連接在網絡上,之前已經激活的診斷服務功能可以仍然保持激活狀態。

例子:

27服務,加上壹個子服務,再加上壹個鑰匙,這樣的服務請求可以進行解鎖。

比如下面的例子,2n-1是某個子服務,通過首輪種子的請求,首輪ECU會返回67+01+AA+BB+CC+DD,AA~DD就是種子了。之後第二輪,診斷端會利用種子進行運算(利用整車廠的算法),生成k1(不壹定是1個字節),那麽發送請求,27+02+[k1]。ECU同樣也會通過種子算出k2。當k1和k2匹配時,解鎖(Unlocked)成功。

$22讀數據,

Request(請求):

Response(響應):

DID有壹部分已經被ISO 14229-1規定了。比如0xF186就是當前診斷會話數據標識符,0xF187就是車廠備件號數據標識符,0xF188就是車廠ECU軟件號碼數據ID,0xF189就是車廠ECU軟件版本號數據標識符。

$22寫數據,

Request(請求):

Response(響應):

註意,比如0xF186這個DID不支持直接寫入數據,需要用$10來進行會話轉換。也就是說, 對於寫數據的請求,壹般來說需要在壹個非默認會話,或解鎖的狀態下才能進行

DTC(diagnostic trouble code):如果系統檢測到了壹個錯誤,它將其存儲為DTC。DTC可表現為:壹個顯而易見的故障:通訊信號的丟失(不會使故障燈亮起);排放相關的故障;安全相關的錯誤等。DTC可以揭示錯誤的位置和錯誤類型。通常DTC占用3個字節,OBD II占用兩個字節。

故障碼包括四個大類,分別是PCBU,P是powertrain動力系統,C是Chassis底盤,B是Body車身,U是network通信系統。壹個DTC信息占用4個字節。最後壹個字節是DTC的狀態 。前兩個字節是我們熟知的類似P0047的故障碼。

$19 擁有28個子服務(Sub-Function)。常用的子服務有02(通過DTC狀態掩碼讀取DTC),04(讀取快照信息),06(讀取擴展信息),0A(讀ECU支持的所有DTC數據)。

清除(復位)DTC格式,它可以改變DTC的狀態。3個FF代表清除所有DTC。

UDS 的診斷數據的發送與接收都是基於CAN,所以每個數據流都包含基本的CAN Message 的架構

根據上篇UDS文章的敘述,每壹個PDU 包含控制信息PCI,數據信息Data.

網絡層 PDU(協議數據單元)PCI(協議控制信息)格式:具體如下圖所示:

綜上所述, N_PDU =N_PCI+N_DATA , N_PCI 的值主要集中的 前三個字節 , N_DATA 值主要集中在 後面7位字節 。其中,

先面用連個例子進行說明,請參考!

[圖片上傳失敗...(image-b66bab-1538824826939)]

由於這個數據發送與接收都是單幀傳輸,所以第壹個數據的高四位均為0,四個數據流中的第壹個字節的低四位,02,03,02,06代表的為此幀數據含有幾個字節,多余的數據位都用 00或者AA行填充。

[圖片上傳失敗...(image-b5e84b-1538824826939)]

數據發送為單幀,所以06代表發送的數據中含有6個字節,

回復為Positive Response,為連續幀。

參考資料:

  • 上一篇:插畫論文文獻綜述——插畫畢業設計開題報告怎麽寫?
  • 下一篇:關於新聞采編人員從業管理的規定(試行) 的詳細內容!
  • copyright 2024編程學習大全網