免费看叼嘿_日韩美女一区_密臀av网站_日本乱码卡一卡二新区不卡_日本伦理一区二区三区_日本高清色倩视频在线观看

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

聊一聊汽車(chē)控制器的啟動(dòng)——BOOT

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

一、BOOT來(lái)源


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

  Boot作為啟動(dòng)術(shù)語(yǔ)的來(lái)源確實(shí)與靴子有關(guān)。因?yàn)橛?jì)算機(jī)的啟動(dòng)都是從硬件上電開(kāi)始的,此時(shí)軟件還沒(méi)工作,需要一個(gè)引導(dǎo)程序把它拉起來(lái)。而拉起軟件的動(dòng)作又需要軟件自身的啟動(dòng)和運(yùn)行,這個(gè)過(guò)程就很像一句英文諺語(yǔ):


Pull oneself up by one's bootstraps.


  意思是通過(guò)鞋帶把自己提起來(lái),寓意自食其力,靠自己振作起來(lái)。由于兩者思想如出一轍,計(jì)算機(jī)發(fā)展初期就把啟動(dòng)的引導(dǎo)程序稱(chēng)作BootStrap Loader,或BootloaderBoot

 

圖片

1:用鞋帶把自己拉起來(lái)的示意圖


二、Bootloader簡(jiǎn)介


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

圖片 

2Bootloader示意圖


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

三、Flash Bootloader


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


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


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

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


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


圖片

4MCU刷寫(xiě)流程示意圖


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


     1.平時(shí)防止應(yīng)用軟件被誤刷寫(xiě)。

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

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



四、SoC的啟動(dòng)和刷寫(xiě)


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


圖片

5BIOSUEFI啟動(dòng)流程示意圖


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


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


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


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

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



五、車(chē)載控制器啟動(dòng)的挑戰(zhàn)


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


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


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

圖片

 7:一種MCUSoC安全啟動(dòng)方案的示意圖


啟動(dòng)時(shí)長(zhǎng)的挑戰(zhàn)


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

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


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


圖片

8Windows 8冷啟動(dòng)和從休眠中的啟動(dòng)時(shí)長(zhǎng)對(duì)比示意圖


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


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



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

上海創(chuàng)程車(chē)聯(lián)網(wǎng)絡(luò)科技有限公司版權(quán)所有 滬ICP備11045498號(hào)-1   技術(shù)支持:網(wǎng)站建設(shè)
主站蜘蛛池模板: 精品乱码卡1卡2卡3免费开放 | 久久蜜桃av | 91超碰caoporm国产香蕉 | 视频免费一区 | 欧美中文字幕第一页 | 妺妺窝人体色777777 | 国产欧美一区二区精品仙草咪 | 亚洲高清免费观看在线视频 | 亚洲三级中文字幕在线看 | 久热精品在线播放 | 欧美国产精品日韩在线 | 无人高清视频免费观看在线 | 91九色论坛| 超碰97人人爱 | 国产无套中出学生姝 | 精品国产91久久久久久一区黄无 | 日韩aⅴ一区二区三区 | 深夜看国产毛片在线视频香蕉 | 青青草华人在线 | 国产www亚洲а∨天堂 | 99影音| www.免费av| 女人15一17毛片 | 一区二区三区精品视频免费播放 | 色两性网欧美 | 中文WWW新版资源在线 | 亚洲高清穴 | 欧美做受又硬又粗又大视频 | 老人内射视频代码免费视频 | 午夜久操 | 女同一区二区三区 | 大香伊蕉最新视频 | 一级片xxxx | 日本在线播放一二三区 | 亚洲成av人不卡无码影片 | 91av视屏| 人妻系列无码专区久久五月天 | 强插女教师AV在线 | 欧美多人乱大交xxxxx | 成年人在线免费观看视频网站 | 国语国产精精品国产国语清晰对话 |