AUTOSAR基礎篇之DTC

2021-10-18 19:33:51 字數 3719 閱讀 1273

dtc基本介紹

dtc顧名思義即為診斷故障碼,一種用來記錄當某ecu發生或檢測到某種故障時所呈現在大家目前的標識碼,通過該標識碼便可以查表的方式獲得該故障資訊,如故障觸發條件、故障解除條件、系統功能表現等。這是當前**商與主機廠普遍用來監測並識別故障的基礎手段,所以也同樣存在標準,普遍使用的標準是iso15031-6,該標準中規定了dtc的基本組成,dtc如何命名等資訊。

根據上述iso標準,dtc由以下兩個部分組成:dtc catogory 與failure type,其中dtc catogory 又可以根據powertrain、body、chasis、n etwork四大子系統來進一步定義其範圍,簡稱pbcu四大子系統,如下表1-1所示:

1-1  dtc catogory 範圍定義

在上表中可以看到每個子系統都劃分為4個子範圍,如b0-b3,c0-c3,p0-p3,u0-u3;其中值得注意的是b0、c0、p0、p2、p3、u0、u3這幾個子範圍被iso預留以供未來使用,因此嚴格來說,現在很多**商定義的dtc不符合規定,但一般來說不影響使用。接下來,我們就來看一下該dtc catogory 占用的每個bi t的具體說明,如下圖1-2所示:

1-2 dtc catogory bit定義

圖中標號1表示後12bit大小範圍可以為000-fff;標號2表示對於動力系統而言,如00,10都是iso/sae特殊定義的範圍;標號3則表示對於動力系統而言,即便定義為11,可以被**商或主機廠自定義的範圍為p3000-p33ff,而p3400-p3fff則已被iso/sae預先定義。了解了iso對於dtc c atogory的定義之後,接下來看個具體例項1-3:

1-3 3位元組dtc基本組成

正如我們經常在客戶診斷調查表見到的p(00)、c(01)、b(10)、u(11)來實現我們所說的dtc診斷顯示碼(pbcu開頭碼)與日常使用的3位元組dtc轉換 關係,實際上只需要將pbcu四個子系統對應的bit組合關係替換進去,便可以得到我們常說的dtc,這點很多小夥伴可能都會有誤區,特此說明一下。

其中上圖所示的低位元組就是我剛剛說到的failure type,該failure type也不是隨意填寫,iso都有規定,如常見的timeout應該用0x87,訊號無效應該為0x81等等,該位元組如何定義需要參考iso15031-6並找到對應的故障單元來選擇,值得注意的是:一般對於排放相關的ecu的dtc最低字位均為00,而對於非排放相關的ecu則需要參考iso標準來定義。

上述四大故障基本上涵蓋了所有ecu所用到的dtc故障型別,這對於我們設計一款新的ecu產品將會有一些指導作用。

聯絡:dtc與event區別與聯絡

區別:

聯絡:

2. dtc狀態位

當出現dtc時,我們只知道有故障發生了這乙個基本事實,但是並不知道該故障什麼時候發生,現在是否已經恢復、發生過幾次,恢復過幾次等細節性資訊,因此國際標準組織iso發布14229-1來引入dtc狀態位這一概念來得到上述細節性資訊,使我們對該故障的生前生後有個清晰的認識,便於我們快速定位問題所在。每乙個dtc均有對應的dtc狀態位,該dtc狀態位由乙個位元組表示,每個bit都有其重要含義,具體解釋如下圖2所示:

圖2 dtc status bit

具體解釋如下:

3. dtc資訊儲存

dtc a 同時map了event 1 ~ event n,則dtc a status即為上述map的或集,但是具體是哪個event先報,則取決於event之間的優先順序以及上報策略來綜合判斷。

snapshot data:顧名思義快照資訊即為故障發生時刻存下來的瞬態的環境資料,一般是指電源模式、溫度、時間戳、車速等資訊。

extended data:即為在故障發生時其他的輔助故障資訊,如aging counter、aged counter 、fault counter以及event id等。

另外,對於dtc資訊儲存一般簡單理解可以分為兩部分儲存空間,該劃分更多的是邏輯意義上的定義,這樣區分的意義在於能夠更好的實現主機廠與**商的資訊隔離,防止出現不必要的誤解與多餘資訊的討論。

primary memory:對主機廠以及ecu**商可見的dtc資訊空間,如dtc status、snapshot data、extended data等;

second memory:僅ecu**商內部可見的資訊,如event id、itc等資訊。

限於主題,所以nvm資訊儲存點到為止,後續關於nvm資訊儲存的機制會通過專題與大家一起分享學習。

4. dtc資訊及狀態讀取

dtc會在ecu執行過程中產生、變化並被實時記錄下來,對於ecu**商或者主機廠則可以通過診斷服務的方式來實現dtc資訊及狀態位的讀取,如下圖4所示,通過以下幾種方式便可以得到ecu支援的dtc、當前或歷史dtc、snapshot data、extended data ,dtc status等資訊。

圖4 dtc資訊診斷獲取方式

AUTOSAR實驗之DIO配置

利用eb tresos軟體為工程新增相應dio用作診斷io,本例則基於s32v234平台,增加pgood,fsob故障診斷管腳功能。對於pmic晶元,除了電壓電流等波動引發故障暫存器置位意外,存在通用的故障診斷管腳,即pgood和fsob,兩者區別可以通俗理解為故障程度的不同。對於ov,uv,ili...

AUTOSAR之FEE模組介紹

fee flash eeprom emulation 即flash模擬eeprom。為什麼要用flash模擬eeprom?下面我們來看下兩者之間的區別。non volatile memory,非易失性儲存器,就是斷電後可以儲存資料的儲存器。我們知道flash和eeprom都屬於這類儲存器,可是它們兩...

AutoSAR 之作業系統

作業系統引入原因 1.任務多樣化 2.週期複雜化 3.分層呼叫巢狀 4.多核系統引入 這個和linux 裡面多執行緒程式設計很類似,比如 我們有三個執行緒要跑,其中thread1 負責應用功能asw,thread2負責基礎功能bsw,thread3負責系統監控 功能安全和診斷等,這個如果還是用裸機上...