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

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

聊一聊汽車控制器的啟動——BOOT

發(fā)布日期:2023-03-03

一、BOOT來源


  你有沒有遇到過電腦新安裝了軟件,然后提示你Reboot的場景?這里的Reboot,大家都知道是重啟,而Boot就是啟動的意思。但你有沒有想過為什么電腦啟動會叫做Boot? Boot不是靴子嗎?

  Boot作為啟動術(shù)語的來源確實與靴子有關(guān)。因為計算機的啟動都是從硬件上電開始的,此時軟件還沒工作,需要一個引導程序把它拉起來。而拉起軟件的動作又需要軟件自身的啟動和運行,這個過程就很像一句英文諺語:


Pull oneself up by one's bootstraps.


  意思是通過鞋帶把自己提起來,寓意自食其力,靠自己振作起來。由于兩者思想如出一轍,計算機發(fā)展初期就把啟動的引導程序稱作BootStrap Loader,或BootloaderBoot

 

圖片

1:用鞋帶把自己拉起來的示意圖


二、Bootloader簡介


      Bootloader,又稱為引導程序,對操作系統(tǒng)非常重要,是計算機和汽車控制器的一個關(guān)鍵組成部分。然而,因為它往往在后臺發(fā)揮作用,它經(jīng)常被忽視。那么Bootloader的具體工作原理是怎樣的呢?我們以下圖中的PIC16單片機作為例子來具體看看。
  按單片機設計,芯片通電后就會從Flash0x000地址開始執(zhí)行指令,也就是說芯片上電后,第一行代碼就從0X000開始執(zhí)行。如左所示,用戶可以通過UART串口將整個用戶程序燒錄到Flash上,這樣整個存儲區(qū)都可以用于用戶程序。但是每次燒寫都很麻煩。如右所示,如果在0X000開始布置三行指令,用于跳轉(zhuǎn)到Bootloader區(qū)(即下圖右方的跳轉(zhuǎn)1),然后在0XF00區(qū)域開始執(zhí)行Bootloader引導程序,正常啟動時,Bootloader執(zhí)行完會再跳轉(zhuǎn)到用戶程序(即下圖右方的跳轉(zhuǎn)2)。在Bootloader程序中,可以進行特殊的開發(fā)例程或者刷寫新的用戶程序,這樣對開發(fā)和刷寫都更加友好。

圖片 

2Bootloader示意圖


  不同處理器的具體Bootloader細節(jié)略有差異,但是整體邏輯和思路都是相同的。例如對于電腦上的CPUBootloader還會初始化硬件,將操作系統(tǒng)內(nèi)核從硬盤加載到內(nèi)存,再將操作系統(tǒng)從加載到內(nèi)存,然后操作系統(tǒng)會進一步將需要運行的應用程序從硬盤加載到內(nèi)存中執(zhí)行。總的來說,就是處理器硬件啟動后自動執(zhí)行的第一行代碼會跳轉(zhuǎn)到Bootloader,然后再由Bootloader引導執(zhí)行用戶代碼。

三、Flash Bootloader


  如上文所述,Bootloader的優(yōu)勢主要是為用戶軟件的刷寫提供便利性。而汽車上傳統(tǒng)的控制器都是高度嵌入式系統(tǒng),而且各個控制器從開發(fā)到量產(chǎn)到售后都有軟件更新的需求,Bootloader剛好就能用來完成刷寫控制器軟件的任務。這個以刷寫更新軟件為目的的Bootloader在汽車行業(yè)就被廣泛稱之為Flash BootloaderFBL)。它主要用于MCU等傳統(tǒng)嵌入式系統(tǒng)的軟件刷寫。


  實際上,Flash Bootloader應該算是Bootloader引導后的第二道程序。第一道被引導起來的Bootloader會判斷ECU狀態(tài),再根據(jù)這個狀態(tài)來拉起應用程序或者進入Flash Bootloader。由于簡略表達或者概念模糊,在實際工作場合中很多時候都會聽到有人把BootloaderFlash Bootloader混為一談。我們可以根據(jù)場合保持溝通的連貫性,但心里應該清晰區(qū)分兩者的區(qū)別。


  在汽車行業(yè)的實際應用中,Bootloader還常細分為Primary BootloaderPBL)和Secondary BootloaderSBL)。其中SBL更加接近于Flash Bootloader。下圖是一種常見的PBLSBLMCU存儲器的關(guān)系示意圖。
圖片

3Flash Bootloader與內(nèi)存關(guān)系示意框圖


  PBL的作用是在應用軟件有效時引導它。PBL存儲在MCU芯片的Flash,它一般是產(chǎn)品出廠時一次性刷好的,芯片上電或重啟后,第一批執(zhí)行的代碼就是PBL。需要刷寫軟件時,PBL可以通過統(tǒng)一診斷服務(UDS),基于CAN或以太網(wǎng)等底層總線協(xié)議與外界診斷儀通信。在校核完診斷儀的權(quán)限后,PBL會將診斷儀上的SBL下載到MCU的內(nèi)存RAM上,然后由SBL進行刷寫。SBL包含PBL提供的所有服務以及閃存驅(qū)動器(Flash Driver和一些額外的UDS服務。通過UDS觸發(fā),SBL會利用Flash Driver擦除舊軟件,并把新軟件寫到對應的存儲區(qū)。具體流程如下圖4所示:


圖片

4MCU刷寫流程示意圖


  為了避免應用軟件被意外誤刷寫或者刪除,PBL中一般不包含Flash Driver,不能直接操作閃存。每次刷寫時,包含Flash DriverSBL都會從診斷儀中重新加載到內(nèi)存。這種PBLSBL的分工方案,有這些好處:


     1.平時防止應用軟件被誤刷寫。

     2.提高網(wǎng)絡安全性。每次從診斷儀下載SBL時,都可以通過安全鑒權(quán)機制,確保合法的診斷儀才能觸發(fā)刷寫。

     3.通過SBL還能反向刷寫更新PBL,提高了Bootloader的整體靈活度。



四、SoC的啟動和刷寫


  上面說的Flash Bootloader是針對傳統(tǒng)高度嵌入式系統(tǒng)的。但相信各位汽車同仁也感受到,越來越多的高性能計算芯片正在汽車上普及,汽車中央電腦等方案也是不絕于耳。對于這些高性能計算芯片,行業(yè)內(nèi)常以SoCSystem on Chip)相稱。SoC的啟動和刷寫方案和MCU如出一轍,但由于其內(nèi)部存儲管理系統(tǒng)和內(nèi)部總線更加復雜,啟動的具體實現(xiàn)與MCU略有差異,其細節(jié)更接近于我們熟悉的個人電腦。總體的啟動流程如下圖所示。


圖片

5BIOSUEFI啟動流程示意圖


  傳統(tǒng)計算機的啟動一般采用上圖上部分的BIOS啟動。BISOBasic Input Output System的縮寫,是計算機硬件與軟件第一次相遇的地方。BIOS的代碼通常被嵌入到電腦的主板的EEPROM中。BIOS可以完成計算機上電后的基本自檢,并指示計算機如何執(zhí)行基本功能,如啟動和鍵盤控制。在BIOS也可以選擇配置啟動參數(shù)。對,這就是我們以前重裝電腦系統(tǒng)時,在BIOS可以選擇從光盤還是硬盤啟動等操作的原因。然后BIOS會調(diào)用硬盤起始位置的MBRMaster Boot Record,然后按照其中的分區(qū)表拉起Bootloader,然后是操作系統(tǒng)內(nèi)核,再到操作系統(tǒng)和應用。


  當然BIOS的設計已經(jīng)有年頭了。現(xiàn)在生產(chǎn)的電腦基本都是使用UEFIUnified Extensible Firmware Interface,汽車上的高性能計算單元也一樣。從實現(xiàn)功能上來看,UEFI可以認為是升級版的BIOS


  UEFI是一個微型操作系統(tǒng),它在內(nèi)存中加載Bootloader,再執(zhí)行額外的操作程序。作為微型操作系統(tǒng),UEFI運行在固件之上,可以支持的功能比BIOS多得多,包括系統(tǒng)驗證等安全功能。其中最核心的區(qū)別是,UEFI支持更大的尋址空間,并且可以在32位或64位模式下運行(BIOS只支持16位),也就是UEFI可以支持更大的硬盤或者網(wǎng)絡共享,并且啟動速度更快。


  由于SoC一般采用基于文件系統(tǒng)的操作系統(tǒng),可以通過文件系統(tǒng)升級軟件,再加上UEFI具有更靈活的啟動分區(qū)引導,所以車上的高性能計算平臺一般還支持A/B分區(qū)升級。也就是在A系統(tǒng)運行時,悄悄升級冗余的B系統(tǒng),完成安裝升級后再重啟SoC,然后再切換到B系統(tǒng)。其總體過程如下圖所示。
圖片

6A/B分區(qū)升級示意圖



五、車載控制器啟動的挑戰(zhàn)


  新年伊始,萬象更新。每年的開始階段對這一整年的影響都舉足輕重。對車載控制器的啟動來說也是類似,好的開始是成功的一半。正是由于啟動的重要性,也有不少挑戰(zhàn)要通過啟動過程來解決。其中最突出的就是關(guān)于信息安全和啟動時間的挑戰(zhàn)。


啟動的信息安全挑戰(zhàn)


  一年之計在于春。試想如果有人把你給孩子春節(jié)期間立下的flag偷偷換掉,然后你孩子還按照這個假的flag執(zhí)行,如果flag是惡意的,那問題是不是大了?對車載控制器來說也是類似,啟動過程中加載的Bootloader或者操作系統(tǒng)如果是被惡意替換了,不就破防了?
  為了迎接這個挑戰(zhàn),在啟動過程中,會引入安全啟動(secure boot機制。其目的是在系統(tǒng)啟動之前先驗證系統(tǒng)簽名的合法性,從而判斷將要啟動的系統(tǒng)的合法性。如果系統(tǒng)合法,則繼續(xù)加載拉起系統(tǒng),如果非法則報錯或自動回滾到上一個合法系統(tǒng)。由于傳統(tǒng)嵌入式MCU和高性能計算芯片SoC的架構(gòu)區(qū)別,二者在實施安全啟動時也略有差別。如下圖所示,MCU一般會使用內(nèi)嵌的HSMHardware Security Module,硬件安全模塊來存儲密鑰和驗證簽名。而SoC一般會使用TEETrusted Execution Environment,可信執(zhí)行環(huán)境)架構(gòu)來獲取密鑰和驗證簽名。兩者在安全層面根據(jù)芯片架構(gòu)采用不同策略,但是其目的和效果都是一樣的。

圖片

 7:一種MCUSoC安全啟動方案的示意圖


啟動時長的挑戰(zhàn)


  隨著車載計算平臺的發(fā)展,其所需要管理的硬件資源越來越豐富,也越來越復雜。這讓控制器啟動時需要加載的數(shù)據(jù)越來越大,需要初始化的設備也越來越多,導致其啟動時長也越來越長。這就像20年前的諾基亞手機開機可能只需要幾秒鐘,現(xiàn)在智能手機開機則要幾十秒甚至一分鐘以上。據(jù)行業(yè)觀察,當下流行的幾款SoC正常啟動時長很少少于10秒鐘,如果加上安全啟動等過程,則啟動時長更長。有些控制器甚至從上電到上層功能業(yè)務應用開始工作,需要差不多1分鐘。

  車載業(yè)務對于啟動時間又非常敏感。例如當下大家都習慣的倒車影像,我們通常坐上車、系好安全帶、發(fā)動車輛掛倒擋,就希望影像能夠出現(xiàn)在中控屏。試想如果整個啟動時長需要1分鐘,那我們就需要在車上等待幾十秒,或者脫離輔助功能“盲開”出去了,這樣的用戶體驗會很差。


  為了迎接這個挑戰(zhàn),車載域控制器或計算平臺經(jīng)常會引入休眠模式。這也類似我們電腦的休眠模式,就是讓原本掉電丟失的內(nèi)存上的內(nèi)容先存儲到硬盤里,下次啟動時再將所有內(nèi)容重新加載到內(nèi)存上,而不是采用重新從UEFI加載Bootloader到內(nèi)核再初始化的那一套流程。這樣控制器技能長時間保持低功耗,又能在需要喚醒時能夠快速啟動工作。當然,這需要耗費硬盤上的額外空間來存儲休眠時的內(nèi)存數(shù)據(jù)。以下圖Windows 8的示意圖為例,傳統(tǒng)冷啟動需要耗費大量的時間來初始化系統(tǒng),但是從休眠模式中啟動時,只需把硬盤中的休眠數(shù)據(jù)(Hiberfile加載到內(nèi)存,就可以開始用戶登錄了。


圖片

8Windows 8冷啟動和從休眠中的啟動時長對比示意圖


  而除了休眠模式,控制器還可以通過優(yōu)化安全啟動策略縮短啟動時長。有些情況下,可以允許控制器先拉起Bootloader,操作系統(tǒng)和應用,并記錄其啟動的簽名、指紋等關(guān)鍵數(shù)據(jù)。待系統(tǒng)工作后,TEE會在后臺再次校驗已經(jīng)啟動的系統(tǒng)是否合法,如果非法則進入相應的安全模式。這種做法比先驗證再啟動的方案會損失安全性,但是能縮短啟動時長。基于整車網(wǎng)絡安全架構(gòu)的分析,可以讓部分較為安全的控制器(例如不與外網(wǎng)直接通訊的本地控制器)采用這種策略。


  當然,產(chǎn)品的發(fā)展都是多維度而不是單一維度的。車載控制器的啟動過程也應該按照多維度標準去取舍和開發(fā)。這就像當年傳統(tǒng)非智能手機的啟動時間是很快,也很安全,沒有那么多病毒。但還是被現(xiàn)在啟動時間更長、安全風險更大的智能手機所取代了。春節(jié)期間大家在家看的智能電視也是一個道理。在汽車智能化的大趨勢下,啟動過程相信也會不斷平衡,做得更加智能、高效、安全。



轉(zhuǎn)自汽車電子與軟件

上海創(chuàng)程車聯(lián)網(wǎng)絡科技有限公司版權(quán)所有 滬ICP備11045498號-1   技術(shù)支持:網(wǎng)站建設
主站蜘蛛池模板: 最近免费中文高清在线观看 | a软片免费看在线 | 99久热| 国产69精品久久久久久 | 国产精品全国免费观看高清 | 亚洲中文字幕无线无码毛片 | 国产成人日日夜夜 | 成年人一级视频 | 国产三区四区视频 | 欧美视频精品 | 国产乱码精品一区二区三区手机版 | 91精品无人成人www | 99久久99久久久精品色圆 | 母乳1区在线| 少妇一级淫片免费放正片 | 亚洲欧美人成网站aaa | 国产免费一区二区三区在线网站 | 国产精品一区人伦免视频播放 | 视频一区国产精品 | 日本美女bbw | 久久性网站| 国产视热频国只有精品 | 日日操夜夜操免费视频 | 日产中文字幕在线观看 | 亚洲区色 | a级毛片毛片免费观看久 | 青青网站 | 色婷婷香蕉在线一区二区 | 无码精品一区二区三区潘金莲 | 一级做a爰片毛片 | 欧美大波少妇在厨房被 | 精品91一区二区三区 | 国产艳妇AV在线 | 国产伦精品一区二区三区视频我 | av污在线观看 | 国产精品玖玖资源站大全 | 亚洲精品乱码久久久久久中文字幕 | 国产高清免费AV片在线观看不卡 | 98超碰在线| 18禁成年免费无码国产 | 国产裸体视频网站 |