国产美女精品福利一区二区_国产尤物av尤物在线观看_中文字幕在线中文字幕二区_精品国产子伦久久久久久小说_手机在线黄色网址_亚洲一区二区精品

400-821-6015
行業(yè)資訊
您當前的位置:首頁 ? 行業(yè)資訊 ? 行業(yè)資訊
內(nèi)部資訊行業(yè)資訊

Bootloader刷寫流程、刷寫測試、自更新方案梳理

發(fā)布日期:2024-05-28
      Bootloader(以下簡稱Boot)是所有支持重編程的ECU必須具備的軟件功能,正常情況下,ECU中運行的是應(yīng)用軟件。只有在收到10 02診斷指令或者在Boot跳轉(zhuǎn)到App失效,ECU會運行在Boot中。
      之前Boot是無法再次更新的,也就是說出廠后,Boot的軟件版本就是固定的,除非是拆件。不過現(xiàn)在越來越多的主機廠要求Boot也要支持刷寫,即使發(fā)生潛在錯誤時,Boot也可以更新修復(fù)。另外現(xiàn)在越來越多的ECU實施AB區(qū)的刷寫方案。下面主要從Boot啟動流程、ECU刷寫流程升級測試、Boot自更新方案三方面來梳理。

01Boot的啟動流程

      ECU上電后,首先執(zhí)行Boot。Boot首先完成一些基本的初始化,例如CAN驅(qū)動,IO模塊,初始化完成后,開始檢查刷新請求標志位是否為有效,如果刷新請求標志位有效,則等待刷寫指令。如果刷新請求標志位無效,則檢查應(yīng)用軟件的狀態(tài),如果應(yīng)用軟件是有效的,則應(yīng)用軟件代碼將被執(zhí)行,如果應(yīng)用軟件是無效的,則繼續(xù)執(zhí)行Bootloader代碼。當ECU運行在應(yīng)用軟件,當收到進入編程會話指令,ECU將外部刷新請求標志位設(shè)置為有效,并執(zhí)行ECU重啟,如下圖所示。重啟后則按照之前上述的流程檢查。

圖片

 Bootloader啟動時序[來源網(wǎng)絡(luò),侵刪]


02刷寫流程

      刷新時序分為三個編程步驟:

        - 預(yù)刷新步驟:刷新前的CAN網(wǎng)絡(luò)準備;

      - 主刷新步驟:下載應(yīng)用軟件或應(yīng)用數(shù)據(jù);

      - 后刷新步驟:重同步CAN網(wǎng)絡(luò)。


1#. 預(yù)刷新步驟

      預(yù)刷新步驟如下所示。

圖片

圖 預(yù)編程流程

      1、喚醒ECU,喚醒的方法和策略由汽車制造商制定;

      2、為了關(guān)閉DTC存儲和運行0x28服務(wù)關(guān)閉相關(guān)的通信,需運行0x10服務(wù)跳轉(zhuǎn)至擴展會話;

      3、進入擴展會話后,汽車制造商可以進一步進行特定數(shù)據(jù)鏈路的初始化;

      4、運行0x31服務(wù)對刷寫條件進行檢查,例如低壓電是否在正常范圍內(nèi)等。除了條件檢查之外,還會有一些安全機制,保證刷寫安全,避免以下幾種情況:

           a. 來自非法源的下載動作;    

           b. 當前刷新條件不滿足;    

           c.下載錯誤的應(yīng)用軟件或應(yīng)用數(shù)據(jù)到ECU;    

           d.軟件之間不兼容;措施主要包括以下幾種:

          安全訪問:ECU通過診斷0x27服務(wù),SEED&KEY機制進行安全訪問服務(wù)限制,保證ECU免遭未授權(quán)的編程動作影響。    

          刷新預(yù)條件:ECU確保刷新時處于安全狀態(tài),條件不滿足(如高壓上電、低壓異常或車速不為零)時,刷新服務(wù)請求將被拒絕。    

          完整性校驗:ECU對即將下載到flash的程序或數(shù)據(jù)進行完整性檢查,當一個邏輯模塊下載后,使用CRC32算法驗證當前邏輯塊的所有數(shù)據(jù)字節(jié)是否被正確傳輸和寫入。    

          通過“檢查編程完整性”例程控制激活ECU完整性校驗。當ECU接收到此服務(wù)請求時,Bootloader將計算下載數(shù)據(jù)字節(jié)的CRC32值,并將計算結(jié)果與診斷儀請求報文中發(fā)送的校驗值進行比較。    

          一致性檢查:不兼容的軟件不能配合使用,如果配合使用可能會使功能異常或產(chǎn)生致命性錯誤。為此,ECU通過驗證軟件兼容性來檢查刷新程序的一致性,包括應(yīng)用軟件與Bootloader軟件、應(yīng)用數(shù)據(jù) 

                             與應(yīng)用軟件檢驗等。

      5、為了防止刷寫過程中出現(xiàn)異常誤觸發(fā)DTC存儲,運行0x85服務(wù)關(guān)閉DTC的存儲;

      6、該步驟提供給汽車制造商一個接口,可以通過0x31服務(wù)啟動或關(guān)閉ECU的故障安全響應(yīng)(failsafe reaction);

      7、為了提高刷寫速度,降低刷寫程序時總線負載率,通過運行0x28服務(wù)關(guān)閉無關(guān)報文,比如應(yīng)用報文和網(wǎng)絡(luò)管理報文;

      8、在關(guān)閉部分通信之后,通過0x22服務(wù)讀取被刷ECU的狀態(tài)(應(yīng)用軟件和數(shù)據(jù))、軟件指紋信息等;

      9、為了減少刷寫的時間,可以通過0x87服務(wù)提高CAN總線的波特率。


2#. 主刷新步驟

      在預(yù)刷新步驟之后,是主刷新步驟。主刷新時序是單個ECU刷新事件的應(yīng)用,因此所有服務(wù)的請求都使用物理尋址。

圖片

圖 主刷寫流程

      其中:

      1、運行0x10服務(wù)進入programmingSession;

      2、運行0x27服務(wù)進入特定的安全等級;

      3、運行0x2E服務(wù)將指紋信息寫入ECU;

      4、運行0x34、0x36、0x37服務(wù)將永久存儲區(qū)寫入默認值;

      5、運行0x31服務(wù)檢查步驟4是否成功,另外一種方法是通過0x37的響應(yīng)確定是否成功;

      6、運行0x31服務(wù)對特定的Flash進行擦除;

      7、分別運行0x34、0x36、0x37服務(wù)將Flash driver下載至內(nèi)存中;

      8、運行0x31服務(wù)檢查Flash driver下載是否成功;

      9、分別運行0x34、0x36、0x37服務(wù)將軟件和數(shù)據(jù)下載至ECU的flash中;

      10、運行0x31服務(wù)檢查步驟9是否下載成功;

      11、運行0x31服務(wù)驗證程序是否能正常運行,例如checksum、標志位等;

      12、在下載完軟件和數(shù)據(jù)后,汽車制造產(chǎn)商需要一些特定的操作,比如寫入VIN碼等。


3#. 后刷新步驟

      該步驟主要通過0x11服務(wù)對ECU進行復(fù)位或者通過0x10服務(wù)切換至默認會話,如圖3所示,如果在預(yù)編程中中調(diào)整了波特率,須通過特定的操作將波特率調(diào)整至正常值。通常操作是運行0x11服務(wù)使ECU復(fù)位,回到正常狀態(tài)。

圖片

▲圖 后刷新步驟


03刷寫測試用例

      刷寫功能開發(fā)完之后,通常都是要按照測試用例進行測試的,那一般都要做哪些測試呢,才能證明刷寫功能是OK的呢?主要分為4部分測試。首先是模擬診斷儀正常刷寫,測試用例主要包括下圖所示,圖中測試用例還考慮了標定數(shù)據(jù)的刷寫。

圖片

▲圖 正常刷寫用例

      然后是錯誤注入測試,其前提是錯誤刷寫不損壞系統(tǒng)Boot,當重新上電后,DUT可以正常更新應(yīng)用程序。用例如下所示。

圖片

▲圖 故障注入測試用例

      再之后是刷寫完整性測試,測試用例如下所示。

圖片

▲圖 完整性測試用例

      最后就是刷寫流程以及預(yù)條件測試,主要測試3E服務(wù),前置條件,刷寫失敗等,測試用例如下圖所示。

圖片

▲圖 刷寫流程和預(yù)條件用例


04Boot自更新

      Boot自更新的需求現(xiàn)在也是越來越多,主要為了修復(fù)Boot軟件中存在的Bug。以下有幾種Boot自更新的方案


1#. Supplier Boot(SB) + Customer Boot(CB)

      通常情況下,供應(yīng)商都有自己的平臺軟件,包括Boot和Appl。而各主機廠都有自己不同的軟件升級規(guī)范,為了適配主機廠的需求,通常的做法是加一層Customer Boot來實現(xiàn)客戶的需求。那軟件的運行順序就是SB->CB->Appl,如圖1所示。這種做法可以簡單、快速的滿足CB也可以更新。

圖片

▲圖 SB+CB的升級方式[來源網(wǎng)絡(luò),侵刪]

      不過這種方式,通常情況下通過SB更新CB是通過供應(yīng)商自己定義的升級流程,并且通過自己的上位機來實現(xiàn)升級。也就意味著這種方式只適應(yīng)項目開發(fā)階段,因為供應(yīng)商的升級流程無法接入到整車的OTA流程。這種方式的優(yōu)點就是簡單,能很快地適配客戶的需求,而且即使面向不同的客戶,只需要簡單的更改CB就可以滿足需求,適應(yīng)性比較好。但是缺點就是會浪費Flash空間。


2#. 將Boot先放到RAM中運行,然后更新Boot的Flash區(qū)域

      這種方式只需要一份Boot,其具體方案是,在Boot的鏈接文件中,將程序和數(shù)據(jù)映射到特性的RAM空間,然后在控制器上電時,首先將Boot的代碼和數(shù)據(jù)搬運到RAM中,程序運行在RAM中,當收到更新Boot的需求時(這里需要上位機在發(fā)送更新指令的時候,區(qū)別是更新Boot還是App,比如通過在0x31服務(wù)寫入不同的標志位進行區(qū)分),通過RAM中的程序以及上位機下載的Flash Driver,將Boot的Flash區(qū)域進行更新。

圖片

▲圖 方案二

      這種方式的優(yōu)點就是節(jié)省Flash空間,而且如果客戶想把Boot自更新的功能保留到量產(chǎn)之后,也是可以的,因此控制器的升級是完全遵循主機廠的要求的。不過這種方式有個缺點,就是在更新過程中,不能斷電,一旦斷電,控制器就會變成板磚,需要換件。另外程序運行在RAM中,對踩內(nèi)存這種行為更加敏感。不過在整車上,出現(xiàn)意外斷電的情況應(yīng)該很少。首先升級之前會檢查低壓蓄電池的電壓水平,甚至對新能源車來說,可以啟動DCDC,來保證12V的穩(wěn)定供應(yīng)。


3#. 兩個CB+minBoot

      這種方案下,有兩個CB和一個miniBoot,miniBoot的作用很簡單,就是根據(jù)引導(dǎo)區(qū)的標志位來決定切換到哪個Boot。

      其具體的運行方式是,當軟件收到Boot更新指令時,軟件復(fù)位,首先跳轉(zhuǎn)到miniBoot,在miniBoot中,根據(jù)引導(dǎo)區(qū)標記(標記所需運行的Boot號,比如1代表Boot1,2代表Boot2)跳轉(zhuǎn)到相應(yīng)的Boot,假設(shè)當前運行是Boot1,在Boot1中根據(jù)刷新指令,將Boot2的Flash區(qū)域進行更新,更新完之后,將引導(dǎo)區(qū)標記寫為2,然后軟件復(fù)位,那么下次運行的時候就會切換到Boot2運行了。

圖片

▲圖 2個CB+miniBoot方案

      這種方案的優(yōu)勢就是可以保證刷新過程中斷電不會導(dǎo)致控制器變成板磚,而且也可以在SOP之后繼續(xù)使用。缺點也很明顯,空間占用率比較大,軟件復(fù)雜,需要三個Boot。


轉(zhuǎn)自汽車ECU開發(fā)

上海創(chuàng)程車聯(lián)網(wǎng)絡(luò)科技有限公司版權(quán)所有 滬ICP備11045498號-1   技術(shù)支持:網(wǎng)站建設(shè)
主站蜘蛛池模板: 天天操导航 | 国产精品伦一区二区三区视频 | 久久中文综合 | 丰满白嫩大屁股ass 一起艹在线观看 | 国产gaysexchain男同men高清 | 国产在线一区二区综合免费视频 | 欧美一区二区三区精品免费 | 97人妻人人做人碰人人爽 | 亚洲av成人无码网站 | 久久香蕉国产线看观看猫咪AV | 日本www在线视频 | 日本无遮挡在线观看 | 中文av在线免费观看 | 亚洲国产精品久久久久婷婷图片 | 印度老妇性视频毛茸茸 | 久久机这里只有精品 | 野花WWW成人免费视频 | 视频一区二区三区中文字幕 | 日韩欧美一区二区三区在线观看 | 欧美在线播放成人a | 涩狠狠狠狠色 | 亚洲国产福利一区 | 免费色视频在线观看 | 欧美午夜一区二区福利视频 | 深夜精品福利 | 欧美黑人巨大videos极品 | 中文字幕内射无码制服剧情 | 激情五月婷婷综合网 | 国产精成人品日日拍夜夜免费 | 日韩精品亚洲专区 | 免费毛片在线不卡 | 成人性生交大片兜免费看r 日本视频免费高清一本18 | 真实国产精品VR专区 | 国产乱叫456在线 | 伊人久久大香线蕉成人综合网 | av日韩精品在线观看 | 麻豆爱爱 | 久久亚洲精品国产 | 精品国产乱码 | 人妻内射AV六九无码一零八零P | 欧美人与牲口杂交在线播放免费 |