劉曉冬 趙星陽 劉曉波
摘要:目前市場主流對域控制器OTA升級采用A/B分區(qū)系統(tǒng)方案,極大地浪費(fèi)硬件存儲(chǔ)資源。因此,提出一種新的OTA升級策略,對需要升級的文件進(jìn)行備份。當(dāng)升級失敗時(shí),將備份文件直接替換升級文件,這樣既做到安全升級,又能降低硬件存儲(chǔ)資源消耗。
關(guān)鍵詞:域控制器;OTA;升級策略
中圖分類號:U463? 收稿日期:2023-11-12
DOI:10.19999/j.cnki.1004-0226.2024.02.014
1 前言
在汽車行業(yè)“電動(dòng)化、網(wǎng)聯(lián)化、智能化、共享化”新“四化”的影響和推動(dòng)下,各家汽車廠商紛紛推出集成大量智能硬件的汽車平臺,進(jìn)而對相關(guān)軟件數(shù)量和質(zhì)量的要求也在不斷提升。伴隨國家對汽車行業(yè)相關(guān)法規(guī)的逐漸完善與硬件平臺的標(biāo)準(zhǔn)化,如何通過軟件服務(wù)的差異化在眾多汽車品牌中突出重圍成為各大汽車廠商思考的核心問題。
在傳統(tǒng)的汽車研發(fā)過程中,一旦汽車生產(chǎn)下線,那么其性能和提供的服務(wù)都被確定下來,而車輛發(fā)生任何故障,消費(fèi)者也基本只有去4S店才能解決。這種僵化的生產(chǎn)服務(wù)體系顯然已不符合時(shí)代的要求,消費(fèi)者需要更加快速和便捷的服務(wù)以及持續(xù)不斷的新鮮體驗(yàn)。OTA技術(shù)的出現(xiàn)使得汽車廠商迎來了曙光,解決了發(fā)展的困境。汽車廠商不但可以通過OTA快速解決汽車故障缺陷降低召回成本,還可以借助OTA持續(xù)優(yōu)化車輛性能和添加新的功能元素,為消費(fèi)者提供個(gè)性化優(yōu)質(zhì)服務(wù)。
2 汽車OTA發(fā)展與現(xiàn)狀
汽車OTA(Over-The-Air,空中下載技術(shù))指車輛通過無線網(wǎng)絡(luò)與遠(yuǎn)程服務(wù)器交互,下載安裝軟件升級包,修復(fù)汽車軟件故障,為汽車增加新功能或優(yōu)化軟件功能等[1]。早在2000年左右,OTA的雛形已在日本汽車廠商中間出現(xiàn),即使用遠(yuǎn)程升級服務(wù)對T-Box(Telematics Box,汽車的通信模塊)進(jìn)行升級。但此時(shí),各大汽車廠商并沒有意識到OTA這項(xiàng)技術(shù)對汽車行業(yè)所帶來的強(qiáng)大變革力量。直至2012年,特斯拉Model S的推出及其后續(xù)依賴OTA表現(xiàn)出的“自我進(jìn)化”能力才吸引了眾多汽車廠商的持續(xù)關(guān)注,特斯拉也被視為整車OTA的鼻祖[2]。隨著汽車智能化、網(wǎng)聯(lián)化等趨勢的發(fā)展以及“軟件定義汽車”理念在全球的風(fēng)靡,OTA也越來越被各大汽車廠商視為未來汽車行業(yè)發(fā)展的核心技術(shù)之一。到2022年為止,全球各大汽車廠商已在不同程度上實(shí)現(xiàn)了汽車OTA功能。
3 汽車OTA的優(yōu)勢與缺點(diǎn)
汽車OTA主要分為FOTA(Firmware-OTA,固件在線升級)和SOTA(Software-OTA,軟件在線升級)。前者是對驅(qū)動(dòng)和系統(tǒng)的升級,技術(shù)實(shí)現(xiàn)難度高,對車輛安全與駕駛影響大,并且難以保證百分之百成功;后者偏向?qū)τ趹?yīng)用軟件的升級,技術(shù)實(shí)現(xiàn)難度稍低,升級失敗也不會(huì)對整車駕駛安全造成影響。
OTA技術(shù)的優(yōu)勢表現(xiàn)在以下幾點(diǎn):
a.汽車出現(xiàn)軟件質(zhì)量問題時(shí)可通過OTA快速進(jìn)行修補(bǔ),節(jié)約召回費(fèi)用,避免影響品牌價(jià)值。
b.能夠通過OTA實(shí)現(xiàn)對汽車原有功能與服務(wù)的快速迭代,提升產(chǎn)品的使用體驗(yàn)。
c.為汽車安裝性能與功能冗余的硬件,通過OTA服務(wù)逐步解鎖新功能,為汽車廠商創(chuàng)造新的業(yè)務(wù)增長點(diǎn)。
然而,OTA技術(shù)的使用也為汽車的安全帶來了新的隱患:
a.為汽車提供OTA服務(wù)的云服務(wù)器可能被黑客入侵,非法獲取車輛信息等[3]。
b.汽車通過OTA終端從服務(wù)器下載的軟件升級包可能被黑客截獲和篡改,造成升級失敗,甚至影響車輛駕駛安全等。
盡管OTA存在以上安全弊端,但它給各大汽車廠商帶來的好處卻遠(yuǎn)遠(yuǎn)大于其弊端,因此對于OTA的熱情有增無減。然而,由于傳統(tǒng)汽車廠商的生產(chǎn)研發(fā)模式和歷史包袱導(dǎo)致其軟件研發(fā)能力存在不足,自研OTA的進(jìn)展一直不容樂觀,反而是以特斯拉、蔚來、理想等造車新勢力在OTA技術(shù)方面發(fā)展迅猛,都取得了不錯(cuò)成果。從長遠(yuǎn)來看,OTA技術(shù)必將成為未來汽車的標(biāo)準(zhǔn)配置[4]。
4 域控制器OTA升級方案設(shè)計(jì)
本文提出一種汽車域控制器軟件升級框架,如圖 1所示,該方案將整個(gè)域控制器軟件升級流程分為三個(gè)階段,每個(gè)階段又分為三個(gè)步驟。
a.服務(wù)器將軟件升級信息推送給預(yù)期需要升級服務(wù)的目標(biāo)車型,汽車上的通信模塊收到升級推送信息后,立馬回復(fù)服務(wù)器“收到”,服務(wù)器收到車輛反饋后不再向其發(fā)送信息,最后通信模塊通過車上的人機(jī)交互系統(tǒng)詢問車主是否升級。
b.汽車的通信模塊收到車主的反饋信息后,進(jìn)行下一步的升級操作。若是不同意升級,整個(gè)流程到此終止;反之,汽車的通信模塊便向服務(wù)器請求下載軟件升級包,服務(wù)器在確認(rèn)車輛信息后便與車輛建立穩(wěn)定、安全的網(wǎng)絡(luò)連接,為其傳輸軟件升級包。
c.汽車在升級完成后,需要向服務(wù)器報(bào)告自己的升級結(jié)果及相關(guān)日志信息。若升級成功,服務(wù)器僅需要更新該車輛搭載的軟件版本信息;若反饋升級失敗,服務(wù)器則需要根據(jù)相關(guān)日志信息分析升級失敗的原因,為客戶提供升級幫助。
本框架前兩個(gè)階段的主要目的是將軟件升級包從服務(wù)器上下載到汽車需要升級的域控制器上,關(guān)鍵點(diǎn)在于網(wǎng)絡(luò)傳輸安全,需要網(wǎng)絡(luò)安全人員為云服務(wù)器與汽車之間的信息交互進(jìn)行加密處理,同時(shí)又不能影響二者之間的信息傳輸效率。本文對上述升級流程框架中的第三階段進(jìn)行重點(diǎn)研究。詳細(xì)介紹域控制器上搭載的Linux操作系統(tǒng)是如何完成升級與如何處理升級失敗結(jié)果的。
4.1 EMMC分區(qū)
域控制器上Linux系統(tǒng)的升級主要分為兩大部分:Linux內(nèi)核的升級與根文件系統(tǒng)的升級。在本文中,存儲(chǔ)Linux相關(guān)系統(tǒng)文件的存儲(chǔ)介質(zhì)為EMMC(Embedded Multi-Media Card,嵌入式多媒體控制器)。為了方便描述上述二者的升級流程,本文需要先行介紹一下EMMC的分區(qū)、各分區(qū)內(nèi)部存儲(chǔ)的內(nèi)容以及各分區(qū)在域控制器Linux系統(tǒng)的升級過程中分別發(fā)揮了什么樣的作用。
如圖2所示,EMMC被分為5個(gè)分區(qū)。第一個(gè)分區(qū)用來放置Linux內(nèi)核,假設(shè)內(nèi)核-0為正在使用的Linux內(nèi)核,內(nèi)核-1為舊版內(nèi)核。如果需要對內(nèi)核進(jìn)行升級,那么就使用新版內(nèi)核替換內(nèi)核-1的內(nèi)容,然后可以通過修改U-Boot的啟動(dòng)參數(shù)引導(dǎo)啟動(dòng)內(nèi)核-1。此時(shí),內(nèi)核-1變?yōu)檎谑褂玫膬?nèi)核,內(nèi)核-0變?yōu)榕f版內(nèi)核。第二和第三個(gè)分區(qū)分別存儲(chǔ)根文件系統(tǒng)-0與輔助更新根文件系統(tǒng)-0的一個(gè)占用內(nèi)存小且功能相對簡單的Linux系統(tǒng)。這種根文件系統(tǒng)的分區(qū)方案與采用A/B分區(qū)雙備份的模式相比,盡管在系統(tǒng)的穩(wěn)定性上有所下降并且更新算法相對復(fù)雜,但是該方案占用存儲(chǔ)空間小,可有效降低成本。隨后便是數(shù)據(jù)區(qū)與日志區(qū),分別用來保存系統(tǒng)和應(yīng)用的關(guān)鍵數(shù)據(jù)與運(yùn)行日志。
4.2 內(nèi)核升級策略
假設(shè)新版本內(nèi)核的名稱為內(nèi)核-2,如圖3所示,在進(jìn)行內(nèi)核升級之前,首先需要啟動(dòng)Linux操作系統(tǒng),提前將內(nèi)核-2下載至根文件系統(tǒng)-0之中。升級流程開始后,需將內(nèi)核所在EMMC分區(qū)掛載到根文件系統(tǒng)-0之下,然后使用內(nèi)核-2覆蓋內(nèi)核-1的內(nèi)容。如若不考慮升級失敗的情形,那么接下來就是在Linux環(huán)境下重寫U-Boot的內(nèi)核引導(dǎo)參數(shù),將從內(nèi)核-0啟動(dòng)改為從內(nèi)核-2啟動(dòng)。最后重啟Linux,由U-Boot引導(dǎo)內(nèi)核-2啟動(dòng)Linux操作系統(tǒng)。
然而,升級內(nèi)核并不能保證百分之百成功。為了使得內(nèi)核升級失敗后,能夠使得系統(tǒng)再次恢復(fù)正常使用狀態(tài),本文額外設(shè)立了一個(gè)標(biāo)志位F,其被保存在存儲(chǔ)器的某個(gè)地址空間,用來指示U-Boot進(jìn)行內(nèi)核切換操作。在將內(nèi)核-2覆蓋內(nèi)核-1的同時(shí),系統(tǒng)應(yīng)同時(shí)將標(biāo)志位F進(jìn)行置位,表示下次啟動(dòng)時(shí),U-Boot會(huì)從內(nèi)核-2啟動(dòng)Linux。若內(nèi)核-2啟動(dòng)失敗,系統(tǒng)再次重啟,U-Boot仍然檢測到標(biāo)志位F為1,那么U-Boot會(huì)自行改變啟動(dòng)參數(shù),從內(nèi)核-2啟動(dòng)切換為從內(nèi)核-0啟動(dòng),恢復(fù)到原本正常的狀態(tài)。不管內(nèi)核是否成功升級,Linux最終會(huì)將標(biāo)志位F清零,表示下次啟動(dòng)時(shí)U-Boot會(huì)從引導(dǎo)當(dāng)前使用的內(nèi)核啟動(dòng),不再選擇切換內(nèi)核啟動(dòng)Linux系統(tǒng)。
4.3 根文件系統(tǒng)升級策略
為了節(jié)約存儲(chǔ)空間,本文在設(shè)計(jì)Linux根文件系統(tǒng)的升級方案時(shí)并沒有選擇A/B分區(qū)的方式,而是選擇在一個(gè)根文件系統(tǒng)上進(jìn)行迭代升級。如圖4所示,首先將升級根文件系統(tǒng)的軟件包下載到根文件系統(tǒng)-0之中。由于根文件系統(tǒng)中不同的文件更新時(shí)所需的解決的依賴以及要求的狀態(tài)不同,所以對于不同文件的升級需要執(zhí)行的指令以及過程都存在差異。為了解決這個(gè)難題,本文提出在軟件升級包中額外包含一份“升級方案”來決定本次升級的具體實(shí)現(xiàn)。
具體地,升級過程存在兩種路徑:a.在當(dāng)前運(yùn)行的根文件系統(tǒng)中進(jìn)行原地更新操作;b.啟用toolsys這個(gè)工具系統(tǒng),將根文件系統(tǒng)-0掛載到toolsys下進(jìn)行更新。toolsys是一個(gè)僅僅具備更新文件系統(tǒng)能力的小型Linux操作系統(tǒng)。采用第一種更新方案時(shí)應(yīng)謹(jǐn)慎處理文件的依賴關(guān)系,及時(shí)停止依賴需要升級的文件運(yùn)行的應(yīng)用,防止系統(tǒng)功能異常的出現(xiàn),該方法適合于少量非系統(tǒng)核心文件的更新;采用第二種升級方案則相對安全,不過執(zhí)行的更新步驟也要更加繁瑣,適合大量系統(tǒng)文件同時(shí)更新。如圖5所示。選用上述哪種方式升級根文件系統(tǒng)取決于更新的文件是否會(huì)影響Linux系統(tǒng)的正常運(yùn)轉(zhuǎn)以及更新的文件規(guī)模大小。若升級失敗,則根據(jù)升級過程中記錄的日志進(jìn)行反向操作,直到將根文件系統(tǒng)恢復(fù)原貌。
5 結(jié)語
OTA技術(shù)的出現(xiàn)與發(fā)展給傳統(tǒng)汽車行業(yè)注入了新的活力,通過OTA為汽車增加新功能拓展了汽車服務(wù)的邊界,也為汽車廠商創(chuàng)造了新的盈利模式。此外,OTA可以快速、有效地解決軟件故障和風(fēng)險(xiǎn)問題,使得汽車發(fā)生駕駛安全問題的風(fēng)險(xiǎn)大大降低。
本文提出了一種搭載Linux操作系統(tǒng)的域控制器OTA升級框架,并給出了具體的Linux內(nèi)核與根文件系統(tǒng)的升級方案,簡要探討了升級過程中可能存在的問題以及解決方法,對汽車域控制器OTA技術(shù)開發(fā)人員具有一定參考意義。
參考文獻(xiàn):
[1]姜楠,姜姍姍,韓小鵬.汽車在線升級系統(tǒng)(OTA)開發(fā)淺析[J].時(shí)代汽車,2021(21):11-12.
[2]南夕.OTA技術(shù)正在引領(lǐng)和改變汽車行業(yè)[J].產(chǎn)品可靠性報(bào)告,2022(1):74-80.
[3]叢聰;孫瀟;史家濤.基于OTA場景的電控信息安全研究[J].電子技術(shù)與軟件工程,2020(18):232-235
[4]武翔宇,趙德華,郝鐵亮.淺談汽車OTA的現(xiàn)狀與未來發(fā)展趨勢[J].汽車實(shí)用技術(shù),2019(3):214-216.
作者簡介:
劉曉冬,男,1995年生,研究方向?yàn)橹悄荞{駛技術(shù)。