侵權投訴
訂閱
糾錯
加入自媒體

EPS Bootloader時序介紹

2019-04-01 15:41
汽車底盤
關注

BL概念

就是APP(應用程序)運行之前運行的一小段程序。

通過這個小程序我們主要完成:

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

2、基本的硬件初始化。

BL啟動時序圖:

在Bootloader模式下,有以下幾種方式,可導致ECU 重啟:

無論當前處于何種會話模式,“$11 $01”均能重啟ECU。

擴展會話模式或編程會話模式下,S3_Server 定時器超時能重啟ECU。

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

上電/復位時序圖:

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

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

如果當前沒有編程請求,則檢查應用程序的狀態(tài)。如果應用程序是有效的(標識變量為0x5A5A),則判斷在20ms 內是否收到特定報文。

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

如果沒有收到特定報文,則啟動應用程序;

如果應用程序是無效的(標識變量為0x0000),則繼續(xù)執(zhí)行Bootloader程序。

編程時序

編程時序分為三個編程階段:

預編程階段:做編程前的網(wǎng)絡準備;

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

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

如果在預編程、編程進行和后編程階段中,任何物理尋址的請求及響應不滿足要求,則全部時序將重新執(zhí)行,允許重新執(zhí)行的次數(shù)為1 次。

診斷會話控制$10 $03:啟動擴展會話模式,通過功能尋址發(fā)送給所有的ECU。

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

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

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

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

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

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

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

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

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

(e)“擦除內存”例程$31 $01 $FF $00:如果擦除內存例程被調用,那么應用程序有效標識變量將被置為無效(0x0000)。

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

請求下載($34)

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

請求傳輸退出($37)

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

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

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

請求報文到CAN 網(wǎng)絡上。通過ECU 復位服務請求將使ECU 結束編程過程,返回到正常的操作模式。FLASH 驅動程序必須從RAM緩存中完全清除,避免非預期的內存擦除。

診斷會話控制$10 $01:診斷儀通過功能尋址發(fā)送一個會話類型為默認會話的診斷會話控制$10服務請求報文到網(wǎng)絡上,所有ECU 進入默認會話模式。

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

聲明: 本文由入駐維科號的作者撰寫,觀點僅代表作者本人,不代表OFweek立場。如有侵權或其他問題,請聯(lián)系舉報。

發(fā)表評論

0條評論,0人參與

請輸入評論內容...

請輸入評論/評論長度6~500個字

您提交的評論過于頻繁,請輸入驗證碼繼續(xù)

暫無評論

暫無評論

文章糾錯
x
*文字標題:
*糾錯內容:
聯(lián)系郵箱:
*驗 證 碼:

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