侵權(quán)投訴
訂閱
糾錯(cuò)
加入自媒體

EPS Bootloader時(shí)序介紹

BL概念

就是APP(應(yīng)用程序)運(yùn)行之前運(yùn)行的一小段程序。

通過(guò)這個(gè)小程序我們主要完成:

1、軟件的刷新,有些也可以讀寫一些需要的DID信息;

2、基本的硬件初始化。

BL啟動(dòng)時(shí)序圖:

在Bootloader模式下,有以下幾種方式,可導(dǎo)致ECU 重啟:

無(wú)論當(dāng)前處于何種會(huì)話模式,“$11 $01”均能重啟ECU。

擴(kuò)展會(huì)話模式或編程會(huì)話模式下,S3_Server 定時(shí)器超時(shí)能重啟ECU。

在編程會(huì)話模式下,“$10 $01”能重啟ECU。

上電/復(fù)位時(shí)序圖:

在上電/復(fù)位后,ECU 執(zhí)行Bootloader程序。

Bootloader程序首先執(zhí)行一些基本的初始化,然后檢查外部編程請(qǐng)求標(biāo)志位是否置為TURE。如果外部編程請(qǐng)求標(biāo)志位置為TURE,即使應(yīng)用程序是有效的,Bootloader程序也會(huì)繼續(xù)運(yùn)行。

如果當(dāng)前沒(méi)有編程請(qǐng)求,則檢查應(yīng)用程序的狀態(tài)。如果應(yīng)用程序是有效的(標(biāo)識(shí)變量為0x5A5A),則判斷在20ms 內(nèi)是否收到特定報(bào)文。

如果收到特定報(bào)文,則繼續(xù)運(yùn)行Bootloader程序;

如果沒(méi)有收到特定報(bào)文,則啟動(dòng)應(yīng)用程序;

如果應(yīng)用程序是無(wú)效的(標(biāo)識(shí)變量為0x0000),則繼續(xù)執(zhí)行Bootloader程序。

編程時(shí)序

編程時(shí)序分為三個(gè)編程階段:

預(yù)編程階段:做編程前的網(wǎng)絡(luò)準(zhǔn)備;

編程進(jìn)行階段:下載程序或數(shù)據(jù);

后編程階段:重同步網(wǎng)絡(luò)。

如果在預(yù)編程、編程進(jìn)行和后編程階段中,任何物理尋址的請(qǐng)求及響應(yīng)不滿足要求,則全部時(shí)序?qū)⒅匦聢?zhí)行,允許重新執(zhí)行的次數(shù)為1 次。

診斷會(huì)話控制$10 $03:?jiǎn)?dòng)擴(kuò)展會(huì)話模式,通過(guò)功能尋址發(fā)送給所有的ECU。

例程控制“檢查預(yù)編程條件” $31 $01 $02 $02:通過(guò)物理尋址檢查ECU 預(yù)編程條件,從而確保系統(tǒng)安全,預(yù)編程條件由ECU 決定,如果有任何不安全的因素,ECU 應(yīng)該拒絕編程,此例程控制不需要安全訪問(wèn)。

注:如果ECU 在未收到“檢查預(yù)編程條件”例程($31$01 $02 $02) 的情況下,收到“$10$02”請(qǐng)求,ECU 應(yīng)該拒絕進(jìn)入Bootloader模式,并且發(fā)送否定響應(yīng)。

控制DTC 設(shè)置$85 $02:關(guān)閉DTC 設(shè)置,通過(guò)功能尋址發(fā)送給所有的ECU。

通信控制0x28 $03 $03:禁止非診斷報(bào)文的發(fā)送和接收,通過(guò)功能尋址發(fā)送給所有的ECU。

讀取數(shù)據(jù) 0x22 $xx $yy:在禁止正常通信后,通過(guò)物理尋址讀取預(yù)編程ECU 的狀態(tài)信息,如:應(yīng)用軟件標(biāo)識(shí)、應(yīng)用數(shù)據(jù)標(biāo)識(shí)、Bootloader軟件標(biāo)識(shí)、VIN 碼和指紋記錄等。數(shù)據(jù)讀取服務(wù)為可選服務(wù),讀取的內(nèi)容由ECU供應(yīng)商定義。

(a)診斷會(huì)話控制$10 $02: ECU 收到此請(qǐng)求后,將分配編程所需的資源。ECU 應(yīng)該在跳轉(zhuǎn)到Bootloader模式之前,發(fā)送肯定響應(yīng)。

(b)安全訪問(wèn)$27 $07/$08:編程事件必須通過(guò)安全訪問(wèn),確保只有授權(quán)的診斷儀能對(duì)ECU 進(jìn)行編程操作。

(c)驅(qū)動(dòng)下載$34,$36,$37,$31:Flash 驅(qū)動(dòng)的下載應(yīng)該按照如下時(shí)序來(lái)進(jìn)行:請(qǐng)求下載、傳輸數(shù)據(jù)、請(qǐng)求傳輸退出。下載完所有字節(jié)后,用“檢查編程完整性”例程($31 $01 $02 $01) 來(lái)檢查所有的字節(jié)是否正確下載。

(d)寫入數(shù)據(jù)$2E $F0 $11:在擦除內(nèi)存例程($31 $01 $FF $00)執(zhí)行之前,ECU 需要將應(yīng)用數(shù)據(jù)指紋記錄寫到內(nèi)存中。每個(gè)邏輯塊(除了驅(qū)動(dòng))下載前,診斷儀都將寫一次應(yīng)用數(shù)據(jù)指紋記錄。當(dāng)下載完邏輯塊后,ECU 根據(jù)邏輯塊的序號(hào)將應(yīng)用數(shù)據(jù)指紋記錄存儲(chǔ)。在追溯指紋記錄時(shí),診斷儀將發(fā)報(bào)文“$22 $F0$21”,ECU 將發(fā)送報(bào)文“$62 $F0 $21…”,根據(jù)邏輯塊的編號(hào)返回每一個(gè)邏輯塊指紋記錄。

(e)“擦除內(nèi)存”例程$31 $01 $FF $00:如果擦除內(nèi)存例程被調(diào)用,那么應(yīng)用程序有效標(biāo)識(shí)變量將被置為無(wú)效(0x0000)。

(f)下載過(guò)程$34,$36,$37:應(yīng)用程序或數(shù)據(jù)的每一個(gè)連續(xù)的數(shù)據(jù)塊下載到ECU 非易失性內(nèi)存中,都需遵循下面的服務(wù)順序完成數(shù)下載:

請(qǐng)求下載($34)

傳輸數(shù)據(jù)($36)

請(qǐng)求傳輸退出($37)

(g)“檢查編程完整性”例程$31 $01 $02 $01:此例程用來(lái)檢查所下載的邏輯塊的完整性。

(h)“檢查編程依賴性”例程$31 $01 $FF $01:完成所有的應(yīng)用程序或數(shù)據(jù)的下載,診斷儀將發(fā)送檢查編程依賴性的例程。確保所有邏輯塊的完整性和一致性。

(i)電控單元復(fù)位$11 $01:診斷儀使用物理尋址,發(fā)送一個(gè)復(fù)位類型為硬復(fù)位的ECU 復(fù)位服務(wù)($11)

請(qǐng)求報(bào)文到CAN 網(wǎng)絡(luò)上。通過(guò)ECU 復(fù)位服務(wù)請(qǐng)求將使ECU 結(jié)束編程過(guò)程,返回到正常的操作模式。FLASH 驅(qū)動(dòng)程序必須從RAM緩存中完全清除,避免非預(yù)期的內(nèi)存擦除。

診斷會(huì)話控制$10 $01:診斷儀通過(guò)功能尋址發(fā)送一個(gè)會(huì)話類型為默認(rèn)會(huì)話的診斷會(huì)話控制$10服務(wù)請(qǐng)求報(bào)文到網(wǎng)絡(luò)上,所有ECU 進(jìn)入默認(rèn)會(huì)話模式。

清除診斷信息$14 $FF $FF $FF:診斷儀通過(guò)物理尋址清除編程ECU 的診斷信息。

聲明: 本文由入駐維科號(hào)的作者撰寫,觀點(diǎn)僅代表作者本人,不代表OFweek立場(chǎng)。如有侵權(quán)或其他問(wèn)題,請(qǐng)聯(lián)系舉報(bào)。

發(fā)表評(píng)論

0條評(píng)論,0人參與

請(qǐng)輸入評(píng)論內(nèi)容...

請(qǐng)輸入評(píng)論/評(píng)論長(zhǎng)度6~500個(gè)字

您提交的評(píng)論過(guò)于頻繁,請(qǐng)輸入驗(yàn)證碼繼續(xù)

  • 看不清,點(diǎn)擊換一張  刷新

暫無(wú)評(píng)論

暫無(wú)評(píng)論

文章糾錯(cuò)
x
*文字標(biāo)題:
*糾錯(cuò)內(nèi)容:
聯(lián)系郵箱:
*驗(yàn) 證 碼:

粵公網(wǎng)安備 44030502002758號(hào)