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