錢楓 易齊 祝能 王潔
關(guān)鍵詞:汽車主動安全;車載診斷(OBD)系統(tǒng);遠程升級;Bsdiff算法;閃存分區(qū);固件更新
隨著車載診斷(on-boarddiagnostics,OBD)系統(tǒng)終端在汽車上安裝的普及和固件功能的逐漸復(fù)雜,車載終端在運行的過程中,一些設(shè)計缺陷和軟件漏洞逐漸暴露;同時,隨著車載OBD終端國家相關(guān)法規(guī)的完善,舊的固件包已經(jīng)不能滿足相關(guān)法規(guī)的功能需求,升級現(xiàn)有的固件程序在所難免。當前的固件程序升級流程分為現(xiàn)場升級和全量遠程升級?,F(xiàn)場升級每次更換新固件程序需要耗費大量的時間和人力,增加了服務(wù)成本。全量遠程升級需要將新版本固件包完整發(fā)送給車載OBD終端設(shè)備,這不僅讓車載OBD終端設(shè)備在使用網(wǎng)絡(luò)數(shù)據(jù)的過程中需要支付高昂的流量費用,而且在傳輸整個新版本固件包的過程中,必然會耗費大量時間和占用大量網(wǎng)絡(luò)帶寬,更容易由于不確定的外界環(huán)境因素導(dǎo)致系統(tǒng)崩潰。因此如何提升車載OBD終端設(shè)備遠程升級固件包安裝的穩(wěn)定可靠性、減小固件包傳輸體積及提高固件包傳輸速率成為研究和發(fā)展的重點。
空中下載升級(overtheair,OTA)[1]是指利用無線通信技術(shù),通過云升級技術(shù),為聯(lián)網(wǎng)設(shè)備進行遠程管理與升級,分為固件遠程升級(firmwareovertheair,F(xiàn)OTA)和軟件遠程升級(softwareovertheair,SOTA)兩類。
已有大量針對遠程升級的相關(guān)研究。D.Makowski等人在xTCA系統(tǒng)上首次嘗試采用智能平臺管理接口標準完成設(shè)備的固件升級[2]。Y.Kwon等提出了一種適用于無線傳感器網(wǎng)絡(luò)的升級模型[3]。高柱榮等對閃存進行了科學(xué)的分區(qū)、Bootloader程序進行了簡化、終端的升級操作引入了時效性和服務(wù)器IP地址隱藏化,實現(xiàn)了安全、可靠的遠程升級[4]。沈偉等提出了安全穩(wěn)定、批量化直流充電機遠程升級系統(tǒng),該系統(tǒng)在升級文件傳輸?shù)倪^程中不影響充電機的正常業(yè)務(wù),同時支持斷點續(xù)傳和批量升級[5]。K.MAYAMA等提出了針對RTCCANopen的固件更新系統(tǒng),該升級系統(tǒng)可以在線控制自動固件更新的整個過程[6]。
江蘇大學(xué)施超、鮑可進等提出基于MTK平臺和Spreadtrum平臺實現(xiàn)Android操作系統(tǒng)遠程升級,提出了服務(wù)器端自動制作差分升級包的方法,并采用Recovery機制和分區(qū)備份的方法來處理軟件系統(tǒng)升級中斷電的情況[7]。電子科技大學(xué)夏棋等對增量數(shù)據(jù)差分更新算法進行了一系列研究,基于二進制文件差分更新算法,提出了一種減少個人云存儲系統(tǒng)中文件更新時傳輸流量的方法,同時解決了在用戶云存儲系統(tǒng)中更新策略的沖突化解問題[8]。劉洋和王劍等基于Bsdiff差分算法和FastLz77壓縮算法有效地減小了固件包的大小,同時使用跳頻和循環(huán)異或加密技術(shù),提出了一種適用于LoRa通信設(shè)備的固件遠程升級方法[9]。高柱榮和蔣昌茂等采用雙APP程序分區(qū)方案,基于應(yīng)用程序編程技術(shù)設(shè)計了燃氣表終端遠程升級系統(tǒng),一定程度上解決了物聯(lián)網(wǎng)燃氣表終端遠程升級過程中被惡意攻擊、固件文件安全傳輸和可靠更新等問題[10]。沈偉、衛(wèi)龍龍等設(shè)計了遠程升級直流充電機系統(tǒng)并提出了升級方法,該系統(tǒng)及方法支持斷點續(xù)傳和批量升級,并穩(wěn)定有效保證了充電機正常的充電業(yè)務(wù)和數(shù)據(jù)通信[11]。殷杰對Bsdiff算法進行了優(yōu)化并采用混合加密算法來解決FOTA終端的時效性問題與安全性問題[12]。
遠程升級技術(shù)已在各傳統(tǒng)領(lǐng)域得到了廣泛的應(yīng)用。針對車載OBD終端設(shè)備現(xiàn)場升級方法服務(wù)成本高及維護難度大和全量遠程升級占用較大網(wǎng)絡(luò)帶寬和性能不穩(wěn)定等問題,本文設(shè)計了一種基于改進Bsdiff算法的OBD遠程升級系統(tǒng),首先闡述了差分算法的基本原理,并對Bsdiff算法進行了優(yōu)化,然后介紹系統(tǒng)的基本組成,并對閃存(flashmemory,F(xiàn)lash)分區(qū)進行了優(yōu)化設(shè)計,闡述了差分包的上傳、下發(fā)步驟,最后對SpringBoot和STM32F103搭建的測試環(huán)境進行全量升級和差分升級對比試驗,驗證該系統(tǒng)相較于全量遠程升級系統(tǒng)各方面性能指標有大幅度提升。
1算法分析
1.1Bsdiff差分算法
差分升級是指進行固件升級的時候,只對固件變更的地方進行升級,未做變更的地方保持不變。實際流程是:在開發(fā)端,以舊版本固件作為基礎(chǔ),對新版本固件和舊版本固件進行差分對比,生成一個補丁文件;在客戶端,以舊版本固件作為基礎(chǔ),合并補丁文件還原新版本固件進行安裝,如圖1所示。
生成補丁文件的核心是使用差分算法對新舊版本固件進行差分計算。目前應(yīng)用廣泛的二進制文件差分算法有:Xdelta、RTPatch、Exediff、Bsdiff等算法。為了評估這些差分算法在計算補丁文件時的壓縮率和性能,本文使用了參考文獻[13]中的結(jié)論,該文獻對比、分析了補丁文件的壓縮率。本文主要列舉了3種二進制文件:Agrep、gcc、Alimpse,對比分析結(jié)論見表1所示。
從表1中可以看出:對于二進制文件來說,Xdelta算法的壓縮率最低,Exediff算法壓縮率最高,其次Bsdiff算法壓縮率最高。但是Exediff算法對運行的平臺有嚴格要求,所以本文采用能獨立于平臺的Bsdiff算法實現(xiàn)補丁文件的制作。
Bsdiff算法[14]是較為高效的差量更新算法,由于該算法生成的patch補丁文件體積小,因此在各領(lǐng)域得到了廣泛應(yīng)用[15]。Bsdiff算法分為diff過程和patch過程,diff過程是在開發(fā)端對新版本固件與舊版本固件進行差分計算、編碼和壓縮,從而產(chǎn)生補丁文件。patch過程是在客戶端以舊版本固件為基礎(chǔ),按照規(guī)定的解碼規(guī)則還原出補丁文件并和舊版本固件進行合并,從而構(gòu)建出新版本固件進行安裝[16]。
Bsdiff算法首先申請兩個輔助空間并創(chuàng)建一個空的補丁文件,然后采用快速后綴排列算法對舊版本固件的所有后綴按字典順序進行排列得到后綴數(shù)組SA[·],經(jīng)過逆運算后得到名次數(shù)組RANK[·],如表2所示為以AABAB為例的SA[·]和RANK[·]生成過程中下標位置變化的次數(shù)[17]。
利用舊版本固件的后綴數(shù)組和二分查找算法檢索新版本固件和舊版本固件中的相似匹配區(qū)域與不匹配區(qū)域。接下來,對所有近似匹配執(zhí)行相減操作并記錄下近似匹配區(qū)域數(shù)據(jù)的差值和不匹配區(qū)域的內(nèi)容,最后,快速打包出補丁文件。由于這些相似區(qū)域數(shù)據(jù)的差值包含大量的零值,所以可以使用bzip等壓縮算法壓縮該部分差值,以減少補丁文件的大小[18]。整個補丁文件包括頭部區(qū)域、控制區(qū)域、差分區(qū)域和擴展區(qū)域4個部分。
Bsdiff算法在客戶端對新版本固件進行恢復(fù)的過程中,首先會申請開辟2個輔助空間并創(chuàng)建3個并行的解壓進程,并分別用于對補丁文件中的控制區(qū)域、差分區(qū)域和擴展區(qū)域進行解壓。然后執(zhí)行2類操作:復(fù)制操作,依據(jù)控制區(qū)域解壓縮提取的控制信息,對差分區(qū)域解壓縮獲得的數(shù)據(jù)與舊版本固件中對應(yīng)數(shù)據(jù)執(zhí)行相加操作并將生成的數(shù)據(jù)塊復(fù)制到指定區(qū)域;插入操作,將擴展區(qū)域解壓縮獲得的數(shù)據(jù)插入到指定區(qū)域。圖2所示為新版本固件的恢復(fù)流程。
1.2Bsdiff算法優(yōu)化
通過對Bsdiff算法流程的分析可知,Bsdiff算法生成的補丁文件差分區(qū)域數(shù)據(jù)存在大量冗余零值是目前差分算法的不足。針對該問題,本文以減小補丁文件體積及多線程分包下發(fā)為核心思想,對差分區(qū)域數(shù)據(jù)進行了去冗優(yōu)化,并將補丁文件進行分包處理,采用多線程機制對車載OBD終端進行補丁下發(fā)。該方法不僅減少云平臺與車載OBD終端的通信開銷和數(shù)據(jù)傳輸時間,使數(shù)據(jù)傳輸更穩(wěn)定;而且,在車載OBD終端節(jié)約內(nèi)存開銷,讓其他應(yīng)用程序運行更加穩(wěn)定,整個系統(tǒng)運行速度更加流暢。
如圖3所示為Bsdiff算法去零流程圖。步驟如下:
步驟1:使用Bsdiff算法處理新舊版本固件,以獲取補丁文件;
步驟2:移動標志指針p的位置,讓其指向差分區(qū)域首地址;
步驟3:掃描差分區(qū)域,若標志指針p掃描到的是零值,則不做統(tǒng)計與序列編碼,標志指針p直接向后移動一位;若標志指針p掃描到的是非零值,則對該段字節(jié)序列進行差值統(tǒng)計,并插入特征字節(jié);
步驟4:重復(fù)步驟3直到差分區(qū)域字節(jié)數(shù)據(jù)全部編碼完成,最終得到sim-diffblock;
步驟5:掃描差分文件,讀取頭部區(qū)域、控制區(qū)域、差分區(qū)域和擴展區(qū)域字節(jié)數(shù)據(jù)臨界位置信息,并對該信息進行序列編碼與存儲。
對差分文件的非零值進行統(tǒng)計和序列編碼消除了大量冗余零值,減小了差分文件的體積,有利于提高云平臺與車載終端之間的數(shù)據(jù)傳輸速度,節(jié)省車載終端內(nèi)存消耗。
云平臺一般同時備案與管理數(shù)千臺車載OBD終端,車載OBD終端之間寬帶共享。如果每臺車載OBD終端的優(yōu)先級相同,多臺終端設(shè)備一起連接到該云平臺并請求升級差分文件,那么每個車載終端所使用的實際帶寬就是云平臺帶寬的均分。所以,如果接入的車載終端數(shù)量較多,則每個車載終端所占用的帶寬十分有限,差分文件的下載將十分的耗時,導(dǎo)致遠程升級的效率十分低下。
為充分利用服務(wù)器網(wǎng)絡(luò)帶寬資源,提高車載OBD終端CPU的利用率和差分文件傳輸效率,本文采用了多線程分包傳輸方案,如圖4所示為多線程差分文件下載流程圖。步驟如下:
步驟1:車載OBD終端請求升級,并下載記錄了差分包屬性值的配置文件;
步驟2:車載OBD終端根據(jù)步驟1獲取的差分包屬性信息確定分包參數(shù),包括各片文件大小pieceSize、總片數(shù)pieceCount及每片的pieceNumber;
步驟3:車載OBD終端創(chuàng)建差分文件下載任務(wù),并攜帶著分包參數(shù)向云平臺發(fā)送請求,以獲取文件分片記錄信息;
步驟4:根據(jù)步驟3讀取的文件分片記錄信息,車載OBD終端創(chuàng)建pieceCount個線程并分別與云平臺連接,然后發(fā)送指定分片文件下載指令;
步驟5:車載OBD終端對pieceCount個線程進行統(tǒng)一管理,并記錄各自片文件下載信息;
步驟6:主線程監(jiān)聽各子線程數(shù)據(jù)下載完成進度,如果未下載完畢繼續(xù)等待步驟4,直到各線程片文件下載完成后,進行新版本固件的恢復(fù)操作。
2系統(tǒng)設(shè)計
本文設(shè)計的車載OBD遠程升級系統(tǒng)由車載OBD終端、本地開發(fā)環(huán)境和FOTA云平臺組成,見圖5。車載OBD終端搭載ThreadX操作系統(tǒng),外接安全芯片、4G聯(lián)網(wǎng)、應(yīng)用調(diào)試等模塊,見圖6。
本地開發(fā)環(huán)境主要負責通過DS-5開發(fā)工具進行固件代碼的編寫、通過msys64開發(fā)工具對固件進行編譯和通過Bsdiff算法腳本制作差分包;FOTA云平臺主要負責車載OBD終端設(shè)備管理、遠程升級任務(wù)的管理、升級包的管理、遠程升級任務(wù)的下發(fā)和升級狀態(tài)與數(shù)據(jù)的監(jiān)測。
2.1改進閃存分區(qū)設(shè)計
傳統(tǒng)閃存分區(qū)方式將片內(nèi)閃存劃分為Bootloader引導(dǎo)區(qū)和用戶主程序區(qū),如圖7a所示。這種劃分方式需要借助片外閃存來完成遠程更新操作,具體整包升級流程如下。
步驟1:下載更新包數(shù)據(jù)并保存至片外閃存;
步驟2:重啟設(shè)備,進入引導(dǎo)程序;
步驟3:將更新包數(shù)據(jù)從片外閃存拷貝到片內(nèi)主程序區(qū);
步驟4:執(zhí)行新版本程序。
通過分析可知,傳統(tǒng)閃存分區(qū)方式不僅浪費閃存空間,而且在片內(nèi)閃存和片外閃存數(shù)據(jù)交換上耗費大量時間。對此本文提出了一種動態(tài)調(diào)整分區(qū)空間的閃存分區(qū)方式,將閃存劃分為6個區(qū)域,如圖7b所示,分別為Bootloader引導(dǎo)區(qū)、fota_param區(qū)、fota_pkg區(qū)、主分區(qū)、空閑區(qū)和備份區(qū),其中空閑區(qū)屬于主分區(qū),主要用于處理程序中的壞塊問題,以提高系統(tǒng)運行的穩(wěn)定性。fota_param分區(qū)用來存放升級時的一些重要參數(shù)信息,fota_pkg分區(qū)用來存儲升級包。主分區(qū)和備份區(qū)通過一個字節(jié)的標志位來區(qū)分,本系統(tǒng)中0代表主分區(qū),1代表備份區(qū)。主分區(qū)用于存放需要運行的程序。
優(yōu)化后的更新操作如圖8所示。具體差分升級流程如下。
步驟1:下載參數(shù)文件和差分包數(shù)據(jù),并將其分別保存至fota_param分區(qū)和fota_pkg分區(qū);
步驟2:合并、釋放備份區(qū)和空閑區(qū),并將其劃分為一個新的備份區(qū);
步驟3:由步驟1中的fota_param參數(shù)信息對備份區(qū)進行重新劃分,并將新版本固件包數(shù)據(jù)寫入剛劃分好的主分區(qū)中;
步驟4:固件升級完成,重新設(shè)置主分區(qū)和備份區(qū)的標志位,加載指針跳轉(zhuǎn)至主分區(qū)程序入口,執(zhí)行新版本程序。
本文采用動態(tài)調(diào)整分區(qū)空間的方式來操作閃存內(nèi)存空間,與傳統(tǒng)操作閃存內(nèi)存方式相比,具備以下優(yōu)勢:無需申請片外閃存空間,有效的節(jié)約了嵌入式設(shè)備中緊張的存儲資源;主分區(qū)與備份區(qū)的交替使用,提高了閃存存儲空間的利用率;避免執(zhí)行傳統(tǒng)整包升級過程中耗時的數(shù)據(jù)拷貝與數(shù)據(jù)擦除操作,提高了固件更新的效率。
2.2遠程升級網(wǎng)絡(luò)結(jié)構(gòu)
在車載OBD遠程升級系統(tǒng)中,車載終端升級程序主要任務(wù)是通過TCP協(xié)議請求連接到服務(wù)器并維持心跳,在此期間,向服務(wù)器發(fā)送固件版本對比請求、處理服務(wù)器反饋結(jié)果和其他信息數(shù)據(jù)流等。服務(wù)器應(yīng)用程序的主要任務(wù)是可以同時接受多臺終端設(shè)備的接入和有序地處理多臺客戶端的請求并及時做出有效響應(yīng)??紤]到移動終端設(shè)備的唯一性和合法性,每臺車載OBD終端上都會綁定唯一的IMEI編號,當車載OBD終端請求遠程升級之前,首先會攜帶著終端設(shè)備上的IMEI編號進行備案,備案請求通過之后才允許進行遠程固件升級[19,20]。這種網(wǎng)絡(luò)拓撲結(jié)構(gòu)如圖9所示。
2.3遠程升級流程
遠程升級分為4個部分:補丁包制作、補丁包上傳、補丁包下載和舊版本固件升級。遠程升級流程如圖10所示。
根據(jù)優(yōu)化后的差分算法制作可執(zhí)行文件Bsdiff.exe,使用該Bsdiff.exe差分工具對舊版本system文件和新版本system文件進行字節(jié)對比,生成最小系統(tǒng)差分包和非最小系統(tǒng)差分包2個差分文件。然后,將這兩個差分文件上傳到遠程升級云平臺中,創(chuàng)建設(shè)備分組并下發(fā)升級任務(wù)。升級時首先下載最小系統(tǒng)差分文件,下載完成后重啟進入updater升級。完成最小系統(tǒng)的升級后重啟運行的就是最新的可聯(lián)網(wǎng)的最小系統(tǒng),然后再下載非最小系統(tǒng)升級文件,下載完成后校驗,校驗通過后整個升級完成。
3實驗對比分析
本文OBD車載終端設(shè)備使用ARMCortex-R5應(yīng)用處理器,搭載FreeRTOS操作系統(tǒng)實現(xiàn)遠程升級。使用IBMX350M4作為服務(wù)器(Intel(R)Xeon(R)CPUE5~2680v3@2.50GHz),操作系統(tǒng)為CentOS7.364位,采用Java開發(fā)語言配合SpringBoot后端框架編寫服務(wù)接口,數(shù)據(jù)庫采用MongoDB,前端頁面使用Vue框架開發(fā)OTAWeb管理系統(tǒng)。
基于以上硬件和服務(wù)器環(huán)境分別進行優(yōu)化前的差分升級、優(yōu)化后的差分升級和傳統(tǒng)的全量遠程升級試驗。使用本地開發(fā)環(huán)境生成從Test_V1.bin到Test_V5.bin一組測試固件包作為本次實驗樣本。本次實驗所用的樣本數(shù)據(jù)如表3所示,其中從Test_V1.bin到Test_V5.bin文件大小逐步變大,其代碼差異也逐步變大。為消除網(wǎng)絡(luò)、本地環(huán)境等隨機誤差,每個樣本均測試30次。本文以全量遠程升級和差分升級過程中壓縮率和編譯運行時間作為主要評價指標。
對比中壓縮率定義為相較于全量遠程升級,通過差分升級減少的數(shù)據(jù)編譯、傳輸大小的程度。壓縮率越大,表征差分算法性能越好,數(shù)據(jù)編譯時間、傳輸時間、設(shè)備功耗、內(nèi)存占用及網(wǎng)絡(luò)流量占用較少。對比結(jié)果如表3所示。
從表3中Ⅰ、Ⅱ、Ⅲ組試驗可以看出:當試驗樣本文件較小時,優(yōu)化前的差分升級算法壓縮率較大,最高可達68.72%。
從Ⅳ、Ⅴ組試驗可以看出:當試驗樣本文件較大時,優(yōu)化后的差分升級算法具有明顯優(yōu)勢,壓縮率可以達到82.30%,相較于優(yōu)化前的差分升級算法,壓縮性能提高了23.55%。本文優(yōu)化后的差分算法具有良好的壓縮性能。且壓縮率與試驗樣本的文件大小呈現(xiàn)非線性的正相關(guān)。
由表4可知,對比全量遠程升級,差分升級在編譯運行時所耗時間顯著減少;在試驗樣本文件較小時,優(yōu)化前的差分升級和優(yōu)化后的差分升級編譯運行時間相差不大;在試驗樣本文件較大時,相較于優(yōu)化前的差分升級,優(yōu)化后的差分升級編譯運行時間更短,在第Ⅴ組試驗中,優(yōu)化前的差分升級編譯耗時42.7s,優(yōu)化后的差分升級編譯耗時31.6s,節(jié)省約26%的編譯運行時間,提升效果明顯,優(yōu)化后的差分升級算法優(yōu)越性顯著。
差分升級、全量遠程升級傳輸時間對比和占用內(nèi)存對比實驗測試數(shù)據(jù)同樣使用Test_V1.bin到Test_V5.bin該組測試固件包,最終測試結(jié)果如圖11、圖12所示。
對圖11分析可得,使用本文優(yōu)化后的差分升級算法,平均可以減少約73.78%的數(shù)據(jù)傳輸時間。在試驗樣本文件較小時,優(yōu)化前差分升級和優(yōu)化后差分升級傳輸耗時接近,提升比率相差不大。在試驗樣本文件較大時,如第Ⅴ組試驗,優(yōu)化后差分升級傳輸時間更短,耗時5.9s,提升比率為79.15%,相較于優(yōu)化前差分升級算法,高出17.31%。
圖12表明在內(nèi)存開銷方面,當測試包文件較小時,優(yōu)化后差分升級算法優(yōu)勢不太明顯,當文件較大時,優(yōu)化后差分升級算法對比全量遠程升級和優(yōu)化前差分升級算法,提升明顯,最高可達到約80%。
在測試環(huán)境下上述對比試驗表明:相較于優(yōu)化前差分升級算法,優(yōu)化后的差分升級算法在壓縮率、編譯運行時間等指標上均有顯著提升。為進一步驗證優(yōu)化后差分升級實際性能表現(xiàn)及以上試驗結(jié)論,進行如下升級試驗,該試驗在實際環(huán)境下進行,基于以上硬件和服務(wù)器環(huán)境分別進行優(yōu)化后差分升級和全量遠程升級。使用本地開發(fā)環(huán)境對新版本固件源碼進行編譯得到250MB的新版本固件包,編譯期間耗時8min,并使用新版本固件進行了30次全量遠程升級測試,平均下載時間4min,平均安裝時間為15min。根據(jù)2.3所述的遠程升級流程制作了大小為47MB的補丁包文件,補丁包制作期間耗時3min,并使用補丁文件進行了30次差分升級,平均下載時間2min,平均安裝時間2min。測試結(jié)果如表5所示。
表5表明:相比于全量遠程升級,優(yōu)化后差分升級補丁文件要小,編譯耗時要少,下載時間要短以及安裝速度要快,極大地提高了車載OBD的遠程升級效率和減少了遠程升級文件傳輸?shù)牧髁肯摹?/p>
4結(jié)論
本文設(shè)計的一種基于改進Bsdiff算法的車載診斷系統(tǒng)遠程升級系統(tǒng)。主要在以下方面做了優(yōu)化:
1)針對原Bsdiff算法生成的補丁文件差分區(qū)域數(shù)據(jù)存在大量冗余零值的問題,本文以減小補丁文件體積及多線程分包下發(fā)為核心思想,對差分區(qū)域數(shù)據(jù)進行了去冗優(yōu)化,并將補丁文件進行分包處理,采用多線程機制對車載OBD終端進行補丁下發(fā);
2)對單片機閃存分區(qū)做了優(yōu)化設(shè)計,采用動態(tài)調(diào)整分區(qū)空間的方式提高了閃存空間的利用率,避免了傳統(tǒng)閃存分區(qū)執(zhí)行更新操作時拷貝數(shù)據(jù)、擦除數(shù)據(jù)等耗時操作,提高了固件更新效率。
實驗數(shù)據(jù)證明了在車載OBD終端設(shè)備上采用差分遠程升級的可行性和可靠性。同時,與全量升級方法相比,采用優(yōu)化后差分升級的方法在文件大小方面減小了203MB,性能提升81.2%;在文件編譯、固件包下載及安裝的時間方面性能分別提高了62.5%、50.0%和86.7%。從而,本文的升級系統(tǒng)提高了車載終端遠程升級的效率。