1. ECU的啟動順序
ECU上電或者復位后,Bootloader代碼首先被執行。Bootloader執行基本的初始化,檢查是否有外部重編程請求。如果沒有外部重編程請求,檢查應用程序的狀態。如果應用程序有效,ECU執行應用程序,如果應用程序無效,ECU繼續執行Bootloader,且Bootloader的默認會話被激活。
1. 診斷會話
傳統ECU的診斷會話包括默認會話模式,擴展會話模式和編程模式。
ECU在擴展會話執行有效的應用程序,編程會話請求可激活Bootloader,因此,應用程序應設置外部重編程請求標志并復位,復位后直接進入Bootloader的編程會話。
Bootloader不支持從編程會話切換至擴展會話。
2. 升級步驟
ECU的刷新升級列分為預編程步驟、編程步驟和后置編程步驟三個步驟
2.1. 預編程步驟
1. ECU重編程前需要禁止DTC設置和網絡常規通信,因此,使用功能尋址發送擴展會話診斷$10$03請求使網絡中所有ECU進入擴展會話。
2.重編程前需要檢查系統的重編程條件。此例程控制服務用于檢查系統的狀態是否為安全狀態。此診斷服務必須響應。(例如:重編程條件要求車速為0Km/h、ECU處于正常工作電壓狀態下,其他編程條件由車廠確定,ECU實現。)
3.重編程過程中為了避免誤報故障,應該關閉網絡中所有ECU的DTC檢測和存儲功能。使用功能尋址發送DTCSettingType為“OFF”的ControlDTCSetting診斷服務請求。
4.通信控制服務用于禁止網絡上所有ECU非診斷報文的發送和接收。因此,使用功能尋址發送此診斷服務。
5.通過標識符讀取數據是可選服務,用于獲取ECU相關信息。
2.2. 編程步驟
編程步驟用于編程一個或多個邏輯塊,此步驟的所有診斷服務都使用物理尋址。如果編程步驟中發生錯誤,則應重新執行完整序列。
1. 當ECU運行在應用程序的擴展會話中,收到診斷會話控制服務($10 $02)后應判斷是否允許跳轉到編程會話,具體是判斷是否已經執行例程控制 “預編程條件檢查”($31 $01 )并且響應為肯定響應,如果不是,ECU應拒絕進入編程會話,如果是,應用程序應設置外部重編程請求標志并發送否定響應,然后,ECU通過復位的方式跳轉到Bootloader,并Bootloader發出肯定響應,肯定響應發送成功后激活Bootloader的編程會話。當ECU運行在Bootloader程序的擴展會話中,收到診斷會話控制服務($10 $02)后直接回復肯定響應,并進入編程會話。
2.在Flash重編程之前,需要經過ECU安全認證。安全訪問服務子功能$11請求種子,使用$12發送密鑰。
3.通過$2E$F184寫入指紋信息應存儲在ECU的非易失性存儲器中。該指紋信息使用“通過標識符寫數據”服務寫入ECU。
4.例程控制-啟動擦除內存$31 $01 $FF00。
5.邏 輯 塊 的 所 有 段 的 數 據 通 過 $34(RequestDownload),$36(TransferData),$37(RequestTransferExit)服務下載到ECU。
6.通過$31 $01 $0201 啟動完整性校驗例程,確保下載數據的完整性(真實性)。
7.發送 $31 $01 $FF01啟動編程依賴性檢查。例程執行后,需將檢查結果反饋給DPC或者診斷儀。
2.1. 后置編程步驟
1.發送$11 $01進行ECU 復位.ECU復位服務用于結束Flash重編程使ECU進入正常的操作模式。
2.進入擴展模式發送$10$03.
3.發送$28 $00 $01診斷服務,恢復網絡正常通信。
4.發送$85 $01診斷服務,恢復網絡正常DTC設置。
5.發送$10 $01診斷服務,使網絡上的ECU返回默認會話。
審核編輯 :李倩
-
編程
+關注
關注
88文章
3637瀏覽量
93946 -
ecu
+關注
關注
14文章
892瀏覽量
54719
原文標題:ECU Bootloader的三部曲
文章出處:【微信號:智能汽車電子與軟件,微信公眾號:智能汽車電子與軟件】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論