电竞比分网-中国电竞赛事及体育赛事平台

分享

汽車控制器(ECU)中DTC的狀態(tài)位

 LSxtens1nmw0p1 2019-03-28

從汽車ECU中讀取儲(chǔ)存的DTC(故障碼)時(shí),除了故障碼本身,還可以讀出很多其他的信息,包括優(yōu)先級(jí)、發(fā)生次數(shù)計(jì)數(shù)器、發(fā)生時(shí)的里程和時(shí)間,以及本文中所講的狀態(tài)位(DTC status )。

這個(gè)狀態(tài)位包含1個(gè)byte,這里面的8個(gè)bit都有各自的含義,但是這8個(gè) bit不一定都要使用,各個(gè)主機(jī)廠可以根據(jù)自己的需求使用其中的幾個(gè),當(dāng)然也可以全部使用。下圖是UDS對DTC status這8個(gè)bit的定義。

DTC status中8個(gè)狀態(tài)bit的定義

bit 0 : testFailed

通常來說,ECU內(nèi)部以循環(huán)的方式不斷地針對預(yù)先定義好的錯(cuò)誤路徑進(jìn)行測試,如果在最近的一次測試中,在某個(gè)錯(cuò)誤路徑中發(fā)現(xiàn)了故障,則相應(yīng)DTC的這一個(gè)狀態(tài)位就要被置1,表征出錯(cuò)。此時(shí)DTC的testFailed位被置1,但是它不一定被ECU存儲(chǔ)到non-volatile memory中,只有當(dāng)pendingDTC或confirmedDTC被置1時(shí)DTC才會(huì)被存儲(chǔ)。而pendingDTC或confirmedDTC被置1的條件應(yīng)該是檢測到錯(cuò)誤出現(xiàn)的次數(shù)或時(shí)間滿足某個(gè)預(yù)定義的門限。當(dāng)錯(cuò)誤消失或者診斷儀執(zhí)行了清除DTC指令時(shí),testFailed會(huì)再次被置為0。

bit 1 :testFailedThisOperationCycle

這個(gè)bit用于標(biāo)識(shí)某個(gè)DTC在當(dāng)前的operation cycle中是否出現(xiàn)過testFailed置1的情況,即是否出現(xiàn)過錯(cuò)誤。operation cycle的起始點(diǎn)是ECU通過網(wǎng)絡(luò)管理喚醒到ECU通過網(wǎng)絡(luò)管理進(jìn)入睡眠,對于沒有網(wǎng)絡(luò)管理的ECU,這個(gè)起始點(diǎn)就是KL15通斷。通過bit 0我們無法判斷某個(gè)DTC是否出現(xiàn)過,比如,當(dāng)前testFailed = 0, 說明當(dāng)前這個(gè)DTC沒有出錯(cuò),如果testFailedThisOperationCycle = 1的話,就說明這個(gè)DTC在當(dāng)前這個(gè)operation cycle中出過錯(cuò),但是當(dāng)前錯(cuò)誤又消失了。

bit 2 : pendingDTC

根據(jù)規(guī)范的解釋,pendingDTC = 1表示某個(gè)DTC在當(dāng)前或者上一個(gè)operation cycle中是否出現(xiàn)過。pendingDTC位其實(shí)是位于testFailed和confirmedDTC之間的一個(gè)狀態(tài),有的DTC被確認(rèn)的判定條件比較嚴(yán)苛,需要在多個(gè)operation cycle中出現(xiàn)才可以被判定為confirmed的狀態(tài),此時(shí)就需要借助于pendingDTC位了。pendingDTC = 1的時(shí)候,DTC就要被存儲(chǔ)下來了,如果接下來的兩個(gè)operation cycle中這個(gè)DTC都還存在,那么confirmedDTC就要置1了。如果當(dāng)前operation cycle中,故障發(fā)生,pendingDTC = 1,但是在下一個(gè)operation cycle中,故障沒有了,pendingDTC 仍然為 1,再下一個(gè)operation cycle中,故障仍然不存在,那么pendingDTC 就可以置0了。

bit 3 : confirmedDTC

當(dāng)confirmedDTC = 1時(shí),則說明某個(gè)DTC已經(jīng)被存儲(chǔ)到ECU的non-volatile memory中,說明這個(gè)DTC曾經(jīng)滿足了被confirmed的條件。但是請注意,confirmedDTC = 1時(shí),并不意味著當(dāng)前這個(gè)DTC仍然出錯(cuò),如果confirmedDTC = 1,但testFailed = 0,則說明這個(gè)DTC表示的故障目前已經(jīng)消失了。將confirmedDTC 重新置0的方法只有刪除DTC,UDS用0x14服務(wù),OBD用0x04服務(wù)。

bit 4 : testNotCompletedSinceLastClear

這個(gè)bit用于標(biāo)識(shí),自從上次調(diào)用了清理DTC的服務(wù)(UDS用0x14服務(wù),OBD用0x04服務(wù))之后,是否成功地執(zhí)行了對某個(gè)DTC的測試(不管測試結(jié)果是什么,只關(guān)心是否測了)。因?yàn)楹芏郉TC的測試也是需要滿足某些邊界條件的,并不是ECU上電就一定會(huì)對DTC進(jìn)行檢測。

testNotCompletedSinceLastClear = 1 : 自從清理DTC之后還沒有完成過針對該DTC的測試。

testNotCompletedSinceLastClear = 0 : 自從清理DTC之后已經(jīng)完成過針對該DTC的測試。

bit 5 : testFailedSinceLastClear

這個(gè)位與bit 1 :testFailedThisOperationCycle有些類似,后者標(biāo)識(shí)某個(gè)DTC在當(dāng)前的operation cycle中是否出現(xiàn)過testFailed置1的情況,而testFailedSinceLastClear標(biāo)識(shí)的是在上次執(zhí)行過清理DTC之后某個(gè)DTC是否出過錯(cuò)。

testFailedSinceLastClear = 0 , 自從清理DTC之后該DTC沒有出過錯(cuò)。

testFailedSinceLastClear = 1, 自從清理DTC之后該DTC出過至少一次錯(cuò)。

bit 6 : testNotCompletedThisOperationCycle

這個(gè)位與bit 4 : testNotCompletedSinceLastClear類似,后者標(biāo)識(shí)自從上次調(diào)用了清理DTC的服務(wù)之后,是否成功地執(zhí)行了對某個(gè)DTC的測試。而testNotCompletedThisOperationCycle則標(biāo)識(shí)在當(dāng)前operation cycle中是否成功地執(zhí)行了對某個(gè)DTC的測試。

testNotCompletedThisOperationCycle = 1 : 在當(dāng)前operation cycle中還沒在完成過針對該DTC的測試。

testNotCompletedThisOperationCycle = 0 : 在當(dāng)前operation cycle中已經(jīng)完成過針對該DTC的測試。

bit 7 : warningIndicatorRequested

某些比較嚴(yán)重的DTC會(huì)與用戶可見的警告指示相關(guān)聯(lián),比如儀表上的報(bào)警燈,或者是文字,或者是聲音。這個(gè)warningIndicatorRequested就用于此類DTC。

warningIndicatorRequested = 1 : ECU請求激活警告指示。

warningIndicatorRequested = 0: ECU不請求激活警告指示。

注意,如果這個(gè)DTC不支持警告指示,則這個(gè)位永遠(yuǎn)置0。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多