CAN診斷淺談


出自微信公眾號--嘴哥有料,本人做學習記錄用,侵刪。

引言:

   從之前的課程我們了解到, 車上的智能硬件設備太多, 即ECU節點太多, 這些節點通過CAN總線外加汽車網關, 組成了整車CAN網絡. 當車輛某個節點, 或者某條CAN總線出故障甚至網關出故障了, 會有什么現象呢?

某ECU節點故障:   也就是你的車上的某個智能硬件不work或者不好用, 比如空調這個設備無法調節溫度了.

某條CAN總線故障:  比如Body CAN整條CAN總線都不work了, 那整條CAN總線上的智能硬件(ECU節點)會功能不好用, 比如語音控制打開天窗, 沒效果了, 必須要手動用硬件打開天窗.

CAN網關出故障了:   嘴哥還沒碰見過...., 但肯定是更加嚴重的, 比如到處都發出報警提示音, 因為很多ECU節點都丟失了.

但以上一般是不會有生命危險的,動力系統一般還可用, 車窗啥的單獨的硬件按鈕調節.

這時候你把車開去4s店維修:

  如果是4s店的維修工人, 一般是會幫您讀取下診斷故障碼,然后發現某項ECU的參數不對, 然后跟您說重新刷了下軟件或更換了整個智能硬件. 這就是CAN診斷最通俗的解釋。

 什么是ECU自檢與診斷故障碼

ECU自檢:每個ECU都有自己故障檢測功能, 基本上每個ECU都有一塊EEPROM(可讀性可編程存儲器),可存儲自身故障信息,但是以上故障信息一般會上傳至網關的EEPROM,並以診斷故障碼(DTC:Diagnose Trouble Code)的形式存儲.

什么是CAN診斷

CAN診斷, 即對CAN網絡各節點, 各CAN總線, 網關的故障查驗與修復. 

查驗包括: 診斷故障碼查詢

修復包括: 重新對ECU寫入新的配置值

CAN診斷的發起條件

需要通過Diag CAN才能進行診斷.

一般是將直接將CAN硬件工具(診斷儀, PCAN-USB, Vehicle SPY3, CANoe...)的CAN-High, CAN-Low直接接到Diag 診斷CAN上, 然后通過診斷儀, PCAN-Explorer, Vehicle SPY3, CANoe等軟件發送CAN診斷輸入!

也有通過Tbox進行本地診斷或遠程診斷的, 因為Tbox是診斷CAN總線上的唯一節點.

一般 什么人會用到診斷

① 4s店的維修人員, 他們一般只需要做讀取故障碼(19服務), ECU參數寫入服務(2E服務), ECU參數讀取服務(22服務)

② Tbox開發測試, 網關開發測試人員, 由於Tbox可發起本地診斷與遠程診斷, 網關負責診斷信號轉發, 所以都需要測試診斷.

③ 車廠的電子電氣研發部門研發人員.....

CAN診斷標准介紹

統一診斷服務(UDS:Unified Diagnostic Services), 即IOS-14229標准, 絕大大部分汽車廠商用的診斷服務,診斷命令都大同小異, 唯一可能不同的是各廠商某些數據標識符(DID)及程序標識符不一致.

統一診斷服務(UDS)規定了以下診斷發起的服務, 診斷回應規范等:

診斷請求(發起)服務_Request

常用的診斷請求(發起)服務列表:

10: 診斷會話請求服務

  必須先發起診斷會話, 不然無法進行其他診斷服務發起服務.

  也就是說只要診斷, 必須先用10服務, 發起診斷會話session,

  類似於先建立握手,

      常用如:710 02 10 01 (10代表診斷會話發起服務, 01代表默認會話功能)

2E: 寫入配置請求服務

       簡單點說: 對某個ECU寫入配置項數據, 就是常聽說的重新標定.

       常用如:710 07 2E C0 01 01 03 22 FF (C0 01是一個DID數據標識符, 代表某ECU節點的多個參數, 01 03 22 FF代表ECU里的以上多個參數應該設定的值), 

11: 網關復位刷新請求服務

      一般如果用2E寫入ECU配置值值后, 必須對網關刷新復位, 不然這個值可能不會立馬生效.

       常用如: 710 02 11 01 (代表向所有的ECU發起硬復位請求)

27: 安全訪問認證請求服務

      一般如果需要涉及2E寫入ECU配置項等服務時, 必須通過網關的安全認證, 不然無權限修改, 你可以理解成, 沒成功申請到27安全訪問的話, 你的CAN網絡權限是只讀的, 不可寫.

        常用如:710 02 27 03 (代表向網關發起安全認證的請求)

22: 讀取配置請求服務

        簡單點說: 讀取某個ECU配置項信息

        常用如:710 03 22 C0 01 (代表讀取C0 01 這個數據標識符里的多項參數值)

19: 讀取故障碼請求服務

       讀取正常CAN網絡的故障信息, 一般有ECU節點丟失(比如ECU節點松動脫落或者燒壞了等), 電壓過高過低, CAN總線異常(即Bus Off)等...這些故障會記錄在一串超長故障碼(DTC)列表里.

        常用如:710 03 19 02 0C (代表讀取整個CAN網絡的當前已生效的故障碼)

14: 清除故障碼請求服務

       清除所有ECU的診斷故障碼, 包括故障碼相關的快照等,

       如果CAN網絡有故障, 其會源源不斷的反饋以上故障, 

       即使清除后也會立馬再發出. 

      常用如:710 04 14 FF FF FF (代表清除所有ECU上的診斷故障碼(包括故障碼相關的快照等.))

 診斷回應_Responding

任何一輪診斷輸入后, 都會有診斷回應幀, 一般是幀ID是:718

但是分為肯定回應及否定回應.

肯定回應:

即您剛才輸入的診斷命令,目標對方(網關或某節點)已經收到並做了處理返回.

比如以下是: 10 診斷會話服務發起后, 收到的肯定回應,

如下示例:

 

否定回應:

即您剛剛輸入的診斷命令, 目標對方(網關或某節點)因為某些原因,未成功收到或者未做處理就被打回了, 可以理解成吃了閉門羹.

看到7f否定回應碼就知道吃閉門羹了, 所有吃閉門羹的都是7f否定回應碼.

比如以下是: 10 診斷會話服務發起后, 收到的否定回應:

以上的吃閉門羹的原因是: 22條件不符合.

其實還有很多其他的原因會導致吃閉門羹, 常用的有:

11 服務不支持 

12 子功能不支持

13 報文長度錯誤

31 請求超出范圍.....

 

以上只是嘴哥的淺談CAN診斷.

有需要詳細了解CAN診斷的朋友可以看看下面這批文章, 這偏文章寫的超級贊, 算是CAN診斷里寫的最通俗易懂的一篇文章了.

https://wenku.baidu.com/view/f2c2cc6afd0a79563c1e72d7.html?from=search

這是網友分享的眾泰公司的診斷需求說明書.

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM