EPS Bootloader時序介紹
BL概念
就是APP(應(yīng)用程序)運行之前運行的一小段程序。
通過這個小程序我們主要完成:
1、軟件的刷新,有些也可以讀寫一些需要的DID信息;
2、基本的硬件初始化。
BL啟動時序圖:
在Bootloader模式下,有以下幾種方式,可導(dǎo)致ECU 重啟:
無論當(dāng)前處于何種會話模式,“$11 $01”均能重啟ECU。
擴(kuò)展會話模式或編程會話模式下,S3_Server 定時器超時能重啟ECU。
在編程會話模式下,“$10 $01”能重啟ECU。
上電/復(fù)位時序圖:
在上電/復(fù)位后,ECU 執(zhí)行Bootloader程序。
Bootloader程序首先執(zhí)行一些基本的初始化,然后檢查外部編程請求標(biāo)志位是否置為TURE。如果外部編程請求標(biāo)志位置為TURE,即使應(yīng)用程序是有效的,Bootloader程序也會繼續(xù)運行。
如果當(dāng)前沒有編程請求,則檢查應(yīng)用程序的狀態(tài)。如果應(yīng)用程序是有效的(標(biāo)識變量為0x5A5A),則判斷在20ms 內(nèi)是否收到特定報文。
如果收到特定報文,則繼續(xù)運行Bootloader程序;
如果沒有收到特定報文,則啟動應(yīng)用程序;
如果應(yīng)用程序是無效的(標(biāo)識變量為0x0000),則繼續(xù)執(zhí)行Bootloader程序。
編程時序
編程時序分為三個編程階段:
預(yù)編程階段:做編程前的網(wǎng)絡(luò)準(zhǔn)備;
編程進(jìn)行階段:下載程序或數(shù)據(jù);
后編程階段:重同步網(wǎng)絡(luò)。
如果在預(yù)編程、編程進(jìn)行和后編程階段中,任何物理尋址的請求及響應(yīng)不滿足要求,則全部時序?qū)⒅匦聢?zhí)行,允許重新執(zhí)行的次數(shù)為1 次。
診斷會話控制$10 $03:啟動擴(kuò)展會話模式,通過功能尋址發(fā)送給所有的ECU。
例程控制“檢查預(yù)編程條件” $31 $01 $02 $02:通過物理尋址檢查ECU 預(yù)編程條件,從而確保系統(tǒng)安全,預(yù)編程條件由ECU 決定,如果有任何不安全的因素,ECU 應(yīng)該拒絕編程,此例程控制不需要安全訪問。
注:如果ECU 在未收到“檢查預(yù)編程條件”例程($31$01 $02 $02) 的情況下,收到“$10$02”請求,ECU 應(yīng)該拒絕進(jìn)入Bootloader模式,并且發(fā)送否定響應(yīng)。
控制DTC 設(shè)置$85 $02:關(guān)閉DTC 設(shè)置,通過功能尋址發(fā)送給所有的ECU。
通信控制0x28 $03 $03:禁止非診斷報文的發(fā)送和接收,通過功能尋址發(fā)送給所有的ECU。
讀取數(shù)據(jù) 0x22 $xx $yy:在禁止正常通信后,通過物理尋址讀取預(yù)編程ECU 的狀態(tài)信息,如:應(yīng)用軟件標(biāo)識、應(yīng)用數(shù)據(jù)標(biāo)識、Bootloader軟件標(biāo)識、VIN 碼和指紋記錄等。數(shù)據(jù)讀取服務(wù)為可選服務(wù),讀取的內(nèi)容由ECU供應(yīng)商定義。
(a)診斷會話控制$10 $02: ECU 收到此請求后,將分配編程所需的資源。ECU 應(yīng)該在跳轉(zhuǎn)到Bootloader模式之前,發(fā)送肯定響應(yīng)。
(b)安全訪問$27 $07/$08:編程事件必須通過安全訪問,確保只有授權(quán)的診斷儀能對ECU 進(jìn)行編程操作。
(c)驅(qū)動下載$34,$36,$37,$31:Flash 驅(qū)動的下載應(yīng)該按照如下時序來進(jìn)行:請求下載、傳輸數(shù)據(jù)、請求傳輸退出。下載完所有字節(jié)后,用“檢查編程完整性”例程($31 $01 $02 $01) 來檢查所有的字節(jié)是否正確下載。
(d)寫入數(shù)據(jù)$2E $F0 $11:在擦除內(nèi)存例程($31 $01 $FF $00)執(zhí)行之前,ECU 需要將應(yīng)用數(shù)據(jù)指紋記錄寫到內(nèi)存中。每個邏輯塊(除了驅(qū)動)下載前,診斷儀都將寫一次應(yīng)用數(shù)據(jù)指紋記錄。當(dāng)下載完邏輯塊后,ECU 根據(jù)邏輯塊的序號將應(yīng)用數(shù)據(jù)指紋記錄存儲。在追溯指紋記錄時,診斷儀將發(fā)報文“$22 $F0$21”,ECU 將發(fā)送報文“$62 $F0 $21…”,根據(jù)邏輯塊的編號返回每一個邏輯塊指紋記錄。
(e)“擦除內(nèi)存”例程$31 $01 $FF $00:如果擦除內(nèi)存例程被調(diào)用,那么應(yīng)用程序有效標(biāo)識變量將被置為無效(0x0000)。
(f)下載過程$34,$36,$37:應(yīng)用程序或數(shù)據(jù)的每一個連續(xù)的數(shù)據(jù)塊下載到ECU 非易失性內(nèi)存中,都需遵循下面的服務(wù)順序完成數(shù)下載:
請求下載($34)
傳輸數(shù)據(jù)($36)
請求傳輸退出($37)
(g)“檢查編程完整性”例程$31 $01 $02 $01:此例程用來檢查所下載的邏輯塊的完整性。
(h)“檢查編程依賴性”例程$31 $01 $FF $01:完成所有的應(yīng)用程序或數(shù)據(jù)的下載,診斷儀將發(fā)送檢查編程依賴性的例程。確保所有邏輯塊的完整性和一致性。
(i)電控單元復(fù)位$11 $01:診斷儀使用物理尋址,發(fā)送一個復(fù)位類型為硬復(fù)位的ECU 復(fù)位服務(wù)($11)
請求報文到CAN 網(wǎng)絡(luò)上。通過ECU 復(fù)位服務(wù)請求將使ECU 結(jié)束編程過程,返回到正常的操作模式。FLASH 驅(qū)動程序必須從RAM緩存中完全清除,避免非預(yù)期的內(nèi)存擦除。
診斷會話控制$10 $01:診斷儀通過功能尋址發(fā)送一個會話類型為默認(rèn)會話的診斷會話控制$10服務(wù)請求報文到網(wǎng)絡(luò)上,所有ECU 進(jìn)入默認(rèn)會話模式。
清除診斷信息$14 $FF $FF $FF:診斷儀通過物理尋址清除編程ECU 的診斷信息。
請輸入評論內(nèi)容...
請輸入評論/評論長度6~500個字
圖片新聞
技術(shù)文庫