亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于改進(jìn)Bsdiff算法的車載診斷系統(tǒng)遠(yuǎn)程升級(jí)系統(tǒng)

        2023-04-29 00:44:03錢楓易齊祝能王潔
        關(guān)鍵詞:優(yōu)化

        錢楓 易齊 祝能 王潔

        關(guān)鍵詞:汽車主動(dòng)安全;車載診斷(OBD)系統(tǒng);遠(yuǎn)程升級(jí);Bsdiff算法;閃存分區(qū);固件更新

        隨著車載診斷(on-boarddiagnostics,OBD)系統(tǒng)終端在汽車上安裝的普及和固件功能的逐漸復(fù)雜,車載終端在運(yùn)行的過程中,一些設(shè)計(jì)缺陷和軟件漏洞逐漸暴露;同時(shí),隨著車載OBD終端國(guó)家相關(guān)法規(guī)的完善,舊的固件包已經(jīng)不能滿足相關(guān)法規(guī)的功能需求,升級(jí)現(xiàn)有的固件程序在所難免。當(dāng)前的固件程序升級(jí)流程分為現(xiàn)場(chǎng)升級(jí)和全量遠(yuǎn)程升級(jí)?,F(xiàn)場(chǎng)升級(jí)每次更換新固件程序需要耗費(fèi)大量的時(shí)間和人力,增加了服務(wù)成本。全量遠(yuǎn)程升級(jí)需要將新版本固件包完整發(fā)送給車載OBD終端設(shè)備,這不僅讓車載OBD終端設(shè)備在使用網(wǎng)絡(luò)數(shù)據(jù)的過程中需要支付高昂的流量費(fèi)用,而且在傳輸整個(gè)新版本固件包的過程中,必然會(huì)耗費(fèi)大量時(shí)間和占用大量網(wǎng)絡(luò)帶寬,更容易由于不確定的外界環(huán)境因素導(dǎo)致系統(tǒng)崩潰。因此如何提升車載OBD終端設(shè)備遠(yuǎn)程升級(jí)固件包安裝的穩(wěn)定可靠性、減小固件包傳輸體積及提高固件包傳輸速率成為研究和發(fā)展的重點(diǎn)。

        空中下載升級(jí)(overtheair,OTA)[1]是指利用無線通信技術(shù),通過云升級(jí)技術(shù),為聯(lián)網(wǎng)設(shè)備進(jìn)行遠(yuǎn)程管理與升級(jí),分為固件遠(yuǎn)程升級(jí)(firmwareovertheair,F(xiàn)OTA)和軟件遠(yuǎn)程升級(jí)(softwareovertheair,SOTA)兩類。

        已有大量針對(duì)遠(yuǎn)程升級(jí)的相關(guān)研究。D.Makowski等人在xTCA系統(tǒng)上首次嘗試采用智能平臺(tái)管理接口標(biāo)準(zhǔn)完成設(shè)備的固件升級(jí)[2]。Y.Kwon等提出了一種適用于無線傳感器網(wǎng)絡(luò)的升級(jí)模型[3]。高柱榮等對(duì)閃存進(jìn)行了科學(xué)的分區(qū)、Bootloader程序進(jìn)行了簡(jiǎn)化、終端的升級(jí)操作引入了時(shí)效性和服務(wù)器IP地址隱藏化,實(shí)現(xiàn)了安全、可靠的遠(yuǎn)程升級(jí)[4]。沈偉等提出了安全穩(wěn)定、批量化直流充電機(jī)遠(yuǎn)程升級(jí)系統(tǒng),該系統(tǒng)在升級(jí)文件傳輸?shù)倪^程中不影響充電機(jī)的正常業(yè)務(wù),同時(shí)支持?jǐn)帱c(diǎn)續(xù)傳和批量升級(jí)[5]。K.MAYAMA等提出了針對(duì)RTCCANopen的固件更新系統(tǒng),該升級(jí)系統(tǒng)可以在線控制自動(dòng)固件更新的整個(gè)過程[6]。

        江蘇大學(xué)施超、鮑可進(jìn)等提出基于MTK平臺(tái)和Spreadtrum平臺(tái)實(shí)現(xiàn)Android操作系統(tǒng)遠(yuǎn)程升級(jí),提出了服務(wù)器端自動(dòng)制作差分升級(jí)包的方法,并采用Recovery機(jī)制和分區(qū)備份的方法來處理軟件系統(tǒng)升級(jí)中斷電的情況[7]。電子科技大學(xué)夏棋等對(duì)增量數(shù)據(jù)差分更新算法進(jìn)行了一系列研究,基于二進(jìn)制文件差分更新算法,提出了一種減少個(gè)人云存儲(chǔ)系統(tǒng)中文件更新時(shí)傳輸流量的方法,同時(shí)解決了在用戶云存儲(chǔ)系統(tǒng)中更新策略的沖突化解問題[8]。劉洋和王劍等基于Bsdiff差分算法和FastLz77壓縮算法有效地減小了固件包的大小,同時(shí)使用跳頻和循環(huán)異或加密技術(shù),提出了一種適用于LoRa通信設(shè)備的固件遠(yuǎn)程升級(jí)方法[9]。高柱榮和蔣昌茂等采用雙APP程序分區(qū)方案,基于應(yīng)用程序編程技術(shù)設(shè)計(jì)了燃?xì)獗斫K端遠(yuǎn)程升級(jí)系統(tǒng),一定程度上解決了物聯(lián)網(wǎng)燃?xì)獗斫K端遠(yuǎn)程升級(jí)過程中被惡意攻擊、固件文件安全傳輸和可靠更新等問題[10]。沈偉、衛(wèi)龍龍等設(shè)計(jì)了遠(yuǎn)程升級(jí)直流充電機(jī)系統(tǒng)并提出了升級(jí)方法,該系統(tǒng)及方法支持?jǐn)帱c(diǎn)續(xù)傳和批量升級(jí),并穩(wěn)定有效保證了充電機(jī)正常的充電業(yè)務(wù)和數(shù)據(jù)通信[11]。殷杰對(duì)Bsdiff算法進(jìn)行了優(yōu)化并采用混合加密算法來解決FOTA終端的時(shí)效性問題與安全性問題[12]。

        遠(yuǎn)程升級(jí)技術(shù)已在各傳統(tǒng)領(lǐng)域得到了廣泛的應(yīng)用。針對(duì)車載OBD終端設(shè)備現(xiàn)場(chǎng)升級(jí)方法服務(wù)成本高及維護(hù)難度大和全量遠(yuǎn)程升級(jí)占用較大網(wǎng)絡(luò)帶寬和性能不穩(wěn)定等問題,本文設(shè)計(jì)了一種基于改進(jìn)Bsdiff算法的OBD遠(yuǎn)程升級(jí)系統(tǒng),首先闡述了差分算法的基本原理,并對(duì)Bsdiff算法進(jìn)行了優(yōu)化,然后介紹系統(tǒng)的基本組成,并對(duì)閃存(flashmemory,F(xiàn)lash)分區(qū)進(jìn)行了優(yōu)化設(shè)計(jì),闡述了差分包的上傳、下發(fā)步驟,最后對(duì)SpringBoot和STM32F103搭建的測(cè)試環(huán)境進(jìn)行全量升級(jí)和差分升級(jí)對(duì)比試驗(yàn),驗(yàn)證該系統(tǒng)相較于全量遠(yuǎn)程升級(jí)系統(tǒng)各方面性能指標(biāo)有大幅度提升。

        1算法分析

        1.1Bsdiff差分算法

        差分升級(jí)是指進(jìn)行固件升級(jí)的時(shí)候,只對(duì)固件變更的地方進(jìn)行升級(jí),未做變更的地方保持不變。實(shí)際流程是:在開發(fā)端,以舊版本固件作為基礎(chǔ),對(duì)新版本固件和舊版本固件進(jìn)行差分對(duì)比,生成一個(gè)補(bǔ)丁文件;在客戶端,以舊版本固件作為基礎(chǔ),合并補(bǔ)丁文件還原新版本固件進(jìn)行安裝,如圖1所示。

        生成補(bǔ)丁文件的核心是使用差分算法對(duì)新舊版本固件進(jìn)行差分計(jì)算。目前應(yīng)用廣泛的二進(jìn)制文件差分算法有:Xdelta、RTPatch、Exediff、Bsdiff等算法。為了評(píng)估這些差分算法在計(jì)算補(bǔ)丁文件時(shí)的壓縮率和性能,本文使用了參考文獻(xiàn)[13]中的結(jié)論,該文獻(xiàn)對(duì)比、分析了補(bǔ)丁文件的壓縮率。本文主要列舉了3種二進(jìn)制文件:Agrep、gcc、Alimpse,對(duì)比分析結(jié)論見表1所示。

        從表1中可以看出:對(duì)于二進(jìn)制文件來說,Xdelta算法的壓縮率最低,Exediff算法壓縮率最高,其次Bsdiff算法壓縮率最高。但是Exediff算法對(duì)運(yùn)行的平臺(tái)有嚴(yán)格要求,所以本文采用能獨(dú)立于平臺(tái)的Bsdiff算法實(shí)現(xiàn)補(bǔ)丁文件的制作。

        Bsdiff算法[14]是較為高效的差量更新算法,由于該算法生成的patch補(bǔ)丁文件體積小,因此在各領(lǐng)域得到了廣泛應(yīng)用[15]。Bsdiff算法分為diff過程和patch過程,diff過程是在開發(fā)端對(duì)新版本固件與舊版本固件進(jìn)行差分計(jì)算、編碼和壓縮,從而產(chǎn)生補(bǔ)丁文件。patch過程是在客戶端以舊版本固件為基礎(chǔ),按照規(guī)定的解碼規(guī)則還原出補(bǔ)丁文件并和舊版本固件進(jìn)行合并,從而構(gòu)建出新版本固件進(jìn)行安裝[16]。

        Bsdiff算法首先申請(qǐng)兩個(gè)輔助空間并創(chuàng)建一個(gè)空的補(bǔ)丁文件,然后采用快速后綴排列算法對(duì)舊版本固件的所有后綴按字典順序進(jìn)行排列得到后綴數(shù)組SA[·],經(jīng)過逆運(yùn)算后得到名次數(shù)組RANK[·],如表2所示為以AABAB為例的SA[·]和RANK[·]生成過程中下標(biāo)位置變化的次數(shù)[17]。

        利用舊版本固件的后綴數(shù)組和二分查找算法檢索新版本固件和舊版本固件中的相似匹配區(qū)域與不匹配區(qū)域。接下來,對(duì)所有近似匹配執(zhí)行相減操作并記錄下近似匹配區(qū)域數(shù)據(jù)的差值和不匹配區(qū)域的內(nèi)容,最后,快速打包出補(bǔ)丁文件。由于這些相似區(qū)域數(shù)據(jù)的差值包含大量的零值,所以可以使用bzip等壓縮算法壓縮該部分差值,以減少補(bǔ)丁文件的大小[18]。整個(gè)補(bǔ)丁文件包括頭部區(qū)域、控制區(qū)域、差分區(qū)域和擴(kuò)展區(qū)域4個(gè)部分。

        Bsdiff算法在客戶端對(duì)新版本固件進(jìn)行恢復(fù)的過程中,首先會(huì)申請(qǐng)開辟2個(gè)輔助空間并創(chuàng)建3個(gè)并行的解壓進(jìn)程,并分別用于對(duì)補(bǔ)丁文件中的控制區(qū)域、差分區(qū)域和擴(kuò)展區(qū)域進(jìn)行解壓。然后執(zhí)行2類操作:復(fù)制操作,依據(jù)控制區(qū)域解壓縮提取的控制信息,對(duì)差分區(qū)域解壓縮獲得的數(shù)據(jù)與舊版本固件中對(duì)應(yīng)數(shù)據(jù)執(zhí)行相加操作并將生成的數(shù)據(jù)塊復(fù)制到指定區(qū)域;插入操作,將擴(kuò)展區(qū)域解壓縮獲得的數(shù)據(jù)插入到指定區(qū)域。圖2所示為新版本固件的恢復(fù)流程。

        1.2Bsdiff算法優(yōu)化

        通過對(duì)Bsdiff算法流程的分析可知,Bsdiff算法生成的補(bǔ)丁文件差分區(qū)域數(shù)據(jù)存在大量冗余零值是目前差分算法的不足。針對(duì)該問題,本文以減小補(bǔ)丁文件體積及多線程分包下發(fā)為核心思想,對(duì)差分區(qū)域數(shù)據(jù)進(jìn)行了去冗優(yōu)化,并將補(bǔ)丁文件進(jìn)行分包處理,采用多線程機(jī)制對(duì)車載OBD終端進(jìn)行補(bǔ)丁下發(fā)。該方法不僅減少云平臺(tái)與車載OBD終端的通信開銷和數(shù)據(jù)傳輸時(shí)間,使數(shù)據(jù)傳輸更穩(wěn)定;而且,在車載OBD終端節(jié)約內(nèi)存開銷,讓其他應(yīng)用程序運(yùn)行更加穩(wěn)定,整個(gè)系統(tǒng)運(yùn)行速度更加流暢。

        如圖3所示為Bsdiff算法去零流程圖。步驟如下:

        步驟1:使用Bsdiff算法處理新舊版本固件,以獲取補(bǔ)丁文件;

        步驟2:移動(dòng)標(biāo)志指針p的位置,讓其指向差分區(qū)域首地址;

        步驟3:掃描差分區(qū)域,若標(biāo)志指針p掃描到的是零值,則不做統(tǒng)計(jì)與序列編碼,標(biāo)志指針p直接向后移動(dòng)一位;若標(biāo)志指針p掃描到的是非零值,則對(duì)該段字節(jié)序列進(jìn)行差值統(tǒng)計(jì),并插入特征字節(jié);

        步驟4:重復(fù)步驟3直到差分區(qū)域字節(jié)數(shù)據(jù)全部編碼完成,最終得到sim-diffblock;

        步驟5:掃描差分文件,讀取頭部區(qū)域、控制區(qū)域、差分區(qū)域和擴(kuò)展區(qū)域字節(jié)數(shù)據(jù)臨界位置信息,并對(duì)該信息進(jìn)行序列編碼與存儲(chǔ)。

        對(duì)差分文件的非零值進(jìn)行統(tǒng)計(jì)和序列編碼消除了大量冗余零值,減小了差分文件的體積,有利于提高云平臺(tái)與車載終端之間的數(shù)據(jù)傳輸速度,節(jié)省車載終端內(nèi)存消耗。

        云平臺(tái)一般同時(shí)備案與管理數(shù)千臺(tái)車載OBD終端,車載OBD終端之間寬帶共享。如果每臺(tái)車載OBD終端的優(yōu)先級(jí)相同,多臺(tái)終端設(shè)備一起連接到該云平臺(tái)并請(qǐng)求升級(jí)差分文件,那么每個(gè)車載終端所使用的實(shí)際帶寬就是云平臺(tái)帶寬的均分。所以,如果接入的車載終端數(shù)量較多,則每個(gè)車載終端所占用的帶寬十分有限,差分文件的下載將十分的耗時(shí),導(dǎo)致遠(yuǎn)程升級(jí)的效率十分低下。

        為充分利用服務(wù)器網(wǎng)絡(luò)帶寬資源,提高車載OBD終端CPU的利用率和差分文件傳輸效率,本文采用了多線程分包傳輸方案,如圖4所示為多線程差分文件下載流程圖。步驟如下:

        步驟1:車載OBD終端請(qǐng)求升級(jí),并下載記錄了差分包屬性值的配置文件;

        步驟2:車載OBD終端根據(jù)步驟1獲取的差分包屬性信息確定分包參數(shù),包括各片文件大小pieceSize、總片數(shù)pieceCount及每片的pieceNumber;

        步驟3:車載OBD終端創(chuàng)建差分文件下載任務(wù),并攜帶著分包參數(shù)向云平臺(tái)發(fā)送請(qǐng)求,以獲取文件分片記錄信息;

        步驟4:根據(jù)步驟3讀取的文件分片記錄信息,車載OBD終端創(chuàng)建pieceCount個(gè)線程并分別與云平臺(tái)連接,然后發(fā)送指定分片文件下載指令;

        步驟5:車載OBD終端對(duì)pieceCount個(gè)線程進(jìn)行統(tǒng)一管理,并記錄各自片文件下載信息;

        步驟6:主線程監(jiān)聽各子線程數(shù)據(jù)下載完成進(jìn)度,如果未下載完畢繼續(xù)等待步驟4,直到各線程片文件下載完成后,進(jìn)行新版本固件的恢復(fù)操作。

        2系統(tǒng)設(shè)計(jì)

        本文設(shè)計(jì)的車載OBD遠(yuǎn)程升級(jí)系統(tǒng)由車載OBD終端、本地開發(fā)環(huán)境和FOTA云平臺(tái)組成,見圖5。車載OBD終端搭載ThreadX操作系統(tǒng),外接安全芯片、4G聯(lián)網(wǎng)、應(yīng)用調(diào)試等模塊,見圖6。

        本地開發(fā)環(huán)境主要負(fù)責(zé)通過DS-5開發(fā)工具進(jìn)行固件代碼的編寫、通過msys64開發(fā)工具對(duì)固件進(jìn)行編譯和通過Bsdiff算法腳本制作差分包;FOTA云平臺(tái)主要負(fù)責(zé)車載OBD終端設(shè)備管理、遠(yuǎn)程升級(jí)任務(wù)的管理、升級(jí)包的管理、遠(yuǎn)程升級(jí)任務(wù)的下發(fā)和升級(jí)狀態(tài)與數(shù)據(jù)的監(jiān)測(cè)。

        2.1改進(jìn)閃存分區(qū)設(shè)計(jì)

        傳統(tǒng)閃存分區(qū)方式將片內(nèi)閃存劃分為Bootloader引導(dǎo)區(qū)和用戶主程序區(qū),如圖7a所示。這種劃分方式需要借助片外閃存來完成遠(yuǎn)程更新操作,具體整包升級(jí)流程如下。

        步驟1:下載更新包數(shù)據(jù)并保存至片外閃存;

        步驟2:重啟設(shè)備,進(jìn)入引導(dǎo)程序;

        步驟3:將更新包數(shù)據(jù)從片外閃存拷貝到片內(nèi)主程序區(qū);

        步驟4:執(zhí)行新版本程序。

        通過分析可知,傳統(tǒng)閃存分區(qū)方式不僅浪費(fèi)閃存空間,而且在片內(nèi)閃存和片外閃存數(shù)據(jù)交換上耗費(fèi)大量時(shí)間。對(duì)此本文提出了一種動(dòng)態(tài)調(diào)整分區(qū)空間的閃存分區(qū)方式,將閃存劃分為6個(gè)區(qū)域,如圖7b所示,分別為Bootloader引導(dǎo)區(qū)、fota_param區(qū)、fota_pkg區(qū)、主分區(qū)、空閑區(qū)和備份區(qū),其中空閑區(qū)屬于主分區(qū),主要用于處理程序中的壞塊問題,以提高系統(tǒng)運(yùn)行的穩(wěn)定性。fota_param分區(qū)用來存放升級(jí)時(shí)的一些重要參數(shù)信息,fota_pkg分區(qū)用來存儲(chǔ)升級(jí)包。主分區(qū)和備份區(qū)通過一個(gè)字節(jié)的標(biāo)志位來區(qū)分,本系統(tǒng)中0代表主分區(qū),1代表備份區(qū)。主分區(qū)用于存放需要運(yùn)行的程序。

        優(yōu)化后的更新操作如圖8所示。具體差分升級(jí)流程如下。

        步驟1:下載參數(shù)文件和差分包數(shù)據(jù),并將其分別保存至fota_param分區(qū)和fota_pkg分區(qū);

        步驟2:合并、釋放備份區(qū)和空閑區(qū),并將其劃分為一個(gè)新的備份區(qū);

        步驟3:由步驟1中的fota_param參數(shù)信息對(duì)備份區(qū)進(jìn)行重新劃分,并將新版本固件包數(shù)據(jù)寫入剛劃分好的主分區(qū)中;

        步驟4:固件升級(jí)完成,重新設(shè)置主分區(qū)和備份區(qū)的標(biāo)志位,加載指針跳轉(zhuǎn)至主分區(qū)程序入口,執(zhí)行新版本程序。

        本文采用動(dòng)態(tài)調(diào)整分區(qū)空間的方式來操作閃存內(nèi)存空間,與傳統(tǒng)操作閃存內(nèi)存方式相比,具備以下優(yōu)勢(shì):無需申請(qǐng)片外閃存空間,有效的節(jié)約了嵌入式設(shè)備中緊張的存儲(chǔ)資源;主分區(qū)與備份區(qū)的交替使用,提高了閃存存儲(chǔ)空間的利用率;避免執(zhí)行傳統(tǒng)整包升級(jí)過程中耗時(shí)的數(shù)據(jù)拷貝與數(shù)據(jù)擦除操作,提高了固件更新的效率。

        2.2遠(yuǎn)程升級(jí)網(wǎng)絡(luò)結(jié)構(gòu)

        在車載OBD遠(yuǎn)程升級(jí)系統(tǒng)中,車載終端升級(jí)程序主要任務(wù)是通過TCP協(xié)議請(qǐng)求連接到服務(wù)器并維持心跳,在此期間,向服務(wù)器發(fā)送固件版本對(duì)比請(qǐng)求、處理服務(wù)器反饋結(jié)果和其他信息數(shù)據(jù)流等。服務(wù)器應(yīng)用程序的主要任務(wù)是可以同時(shí)接受多臺(tái)終端設(shè)備的接入和有序地處理多臺(tái)客戶端的請(qǐng)求并及時(shí)做出有效響應(yīng)??紤]到移動(dòng)終端設(shè)備的唯一性和合法性,每臺(tái)車載OBD終端上都會(huì)綁定唯一的IMEI編號(hào),當(dāng)車載OBD終端請(qǐng)求遠(yuǎn)程升級(jí)之前,首先會(huì)攜帶著終端設(shè)備上的IMEI編號(hào)進(jìn)行備案,備案請(qǐng)求通過之后才允許進(jìn)行遠(yuǎn)程固件升級(jí)[19,20]。這種網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)如圖9所示。

        2.3遠(yuǎn)程升級(jí)流程

        遠(yuǎn)程升級(jí)分為4個(gè)部分:補(bǔ)丁包制作、補(bǔ)丁包上傳、補(bǔ)丁包下載和舊版本固件升級(jí)。遠(yuǎn)程升級(jí)流程如圖10所示。

        根據(jù)優(yōu)化后的差分算法制作可執(zhí)行文件Bsdiff.exe,使用該Bsdiff.exe差分工具對(duì)舊版本system文件和新版本system文件進(jìn)行字節(jié)對(duì)比,生成最小系統(tǒng)差分包和非最小系統(tǒng)差分包2個(gè)差分文件。然后,將這兩個(gè)差分文件上傳到遠(yuǎn)程升級(jí)云平臺(tái)中,創(chuàng)建設(shè)備分組并下發(fā)升級(jí)任務(wù)。升級(jí)時(shí)首先下載最小系統(tǒng)差分文件,下載完成后重啟進(jìn)入updater升級(jí)。完成最小系統(tǒng)的升級(jí)后重啟運(yùn)行的就是最新的可聯(lián)網(wǎng)的最小系統(tǒng),然后再下載非最小系統(tǒng)升級(jí)文件,下載完成后校驗(yàn),校驗(yàn)通過后整個(gè)升級(jí)完成。

        3實(shí)驗(yàn)對(duì)比分析

        本文OBD車載終端設(shè)備使用ARMCortex-R5應(yīng)用處理器,搭載FreeRTOS操作系統(tǒng)實(shí)現(xiàn)遠(yuǎn)程升級(jí)。使用IBMX350M4作為服務(wù)器(Intel(R)Xeon(R)CPUE5~2680v3@2.50GHz),操作系統(tǒng)為CentOS7.364位,采用Java開發(fā)語言配合SpringBoot后端框架編寫服務(wù)接口,數(shù)據(jù)庫(kù)采用MongoDB,前端頁面使用Vue框架開發(fā)OTAWeb管理系統(tǒng)。

        基于以上硬件和服務(wù)器環(huán)境分別進(jìn)行優(yōu)化前的差分升級(jí)、優(yōu)化后的差分升級(jí)和傳統(tǒng)的全量遠(yuǎn)程升級(jí)試驗(yàn)。使用本地開發(fā)環(huán)境生成從Test_V1.bin到Test_V5.bin一組測(cè)試固件包作為本次實(shí)驗(yàn)樣本。本次實(shí)驗(yàn)所用的樣本數(shù)據(jù)如表3所示,其中從Test_V1.bin到Test_V5.bin文件大小逐步變大,其代碼差異也逐步變大。為消除網(wǎng)絡(luò)、本地環(huán)境等隨機(jī)誤差,每個(gè)樣本均測(cè)試30次。本文以全量遠(yuǎn)程升級(jí)和差分升級(jí)過程中壓縮率和編譯運(yùn)行時(shí)間作為主要評(píng)價(jià)指標(biāo)。

        對(duì)比中壓縮率定義為相較于全量遠(yuǎn)程升級(jí),通過差分升級(jí)減少的數(shù)據(jù)編譯、傳輸大小的程度。壓縮率越大,表征差分算法性能越好,數(shù)據(jù)編譯時(shí)間、傳輸時(shí)間、設(shè)備功耗、內(nèi)存占用及網(wǎng)絡(luò)流量占用較少。對(duì)比結(jié)果如表3所示。

        從表3中Ⅰ、Ⅱ、Ⅲ組試驗(yàn)可以看出:當(dāng)試驗(yàn)樣本文件較小時(shí),優(yōu)化前的差分升級(jí)算法壓縮率較大,最高可達(dá)68.72%。

        從Ⅳ、Ⅴ組試驗(yàn)可以看出:當(dāng)試驗(yàn)樣本文件較大時(shí),優(yōu)化后的差分升級(jí)算法具有明顯優(yōu)勢(shì),壓縮率可以達(dá)到82.30%,相較于優(yōu)化前的差分升級(jí)算法,壓縮性能提高了23.55%。本文優(yōu)化后的差分算法具有良好的壓縮性能。且壓縮率與試驗(yàn)樣本的文件大小呈現(xiàn)非線性的正相關(guān)。

        由表4可知,對(duì)比全量遠(yuǎn)程升級(jí),差分升級(jí)在編譯運(yùn)行時(shí)所耗時(shí)間顯著減少;在試驗(yàn)樣本文件較小時(shí),優(yōu)化前的差分升級(jí)和優(yōu)化后的差分升級(jí)編譯運(yùn)行時(shí)間相差不大;在試驗(yàn)樣本文件較大時(shí),相較于優(yōu)化前的差分升級(jí),優(yōu)化后的差分升級(jí)編譯運(yùn)行時(shí)間更短,在第Ⅴ組試驗(yàn)中,優(yōu)化前的差分升級(jí)編譯耗時(shí)42.7s,優(yōu)化后的差分升級(jí)編譯耗時(shí)31.6s,節(jié)省約26%的編譯運(yùn)行時(shí)間,提升效果明顯,優(yōu)化后的差分升級(jí)算法優(yōu)越性顯著。

        差分升級(jí)、全量遠(yuǎn)程升級(jí)傳輸時(shí)間對(duì)比和占用內(nèi)存對(duì)比實(shí)驗(yàn)測(cè)試數(shù)據(jù)同樣使用Test_V1.bin到Test_V5.bin該組測(cè)試固件包,最終測(cè)試結(jié)果如圖11、圖12所示。

        對(duì)圖11分析可得,使用本文優(yōu)化后的差分升級(jí)算法,平均可以減少約73.78%的數(shù)據(jù)傳輸時(shí)間。在試驗(yàn)樣本文件較小時(shí),優(yōu)化前差分升級(jí)和優(yōu)化后差分升級(jí)傳輸耗時(shí)接近,提升比率相差不大。在試驗(yàn)樣本文件較大時(shí),如第Ⅴ組試驗(yàn),優(yōu)化后差分升級(jí)傳輸時(shí)間更短,耗時(shí)5.9s,提升比率為79.15%,相較于優(yōu)化前差分升級(jí)算法,高出17.31%。

        圖12表明在內(nèi)存開銷方面,當(dāng)測(cè)試包文件較小時(shí),優(yōu)化后差分升級(jí)算法優(yōu)勢(shì)不太明顯,當(dāng)文件較大時(shí),優(yōu)化后差分升級(jí)算法對(duì)比全量遠(yuǎn)程升級(jí)和優(yōu)化前差分升級(jí)算法,提升明顯,最高可達(dá)到約80%。

        在測(cè)試環(huán)境下上述對(duì)比試驗(yàn)表明:相較于優(yōu)化前差分升級(jí)算法,優(yōu)化后的差分升級(jí)算法在壓縮率、編譯運(yùn)行時(shí)間等指標(biāo)上均有顯著提升。為進(jìn)一步驗(yàn)證優(yōu)化后差分升級(jí)實(shí)際性能表現(xiàn)及以上試驗(yàn)結(jié)論,進(jìn)行如下升級(jí)試驗(yàn),該試驗(yàn)在實(shí)際環(huán)境下進(jìn)行,基于以上硬件和服務(wù)器環(huán)境分別進(jìn)行優(yōu)化后差分升級(jí)和全量遠(yuǎn)程升級(jí)。使用本地開發(fā)環(huán)境對(duì)新版本固件源碼進(jìn)行編譯得到250MB的新版本固件包,編譯期間耗時(shí)8min,并使用新版本固件進(jìn)行了30次全量遠(yuǎn)程升級(jí)測(cè)試,平均下載時(shí)間4min,平均安裝時(shí)間為15min。根據(jù)2.3所述的遠(yuǎn)程升級(jí)流程制作了大小為47MB的補(bǔ)丁包文件,補(bǔ)丁包制作期間耗時(shí)3min,并使用補(bǔ)丁文件進(jìn)行了30次差分升級(jí),平均下載時(shí)間2min,平均安裝時(shí)間2min。測(cè)試結(jié)果如表5所示。

        表5表明:相比于全量遠(yuǎn)程升級(jí),優(yōu)化后差分升級(jí)補(bǔ)丁文件要小,編譯耗時(shí)要少,下載時(shí)間要短以及安裝速度要快,極大地提高了車載OBD的遠(yuǎn)程升級(jí)效率和減少了遠(yuǎn)程升級(jí)文件傳輸?shù)牧髁肯摹?/p>

        4結(jié)論

        本文設(shè)計(jì)的一種基于改進(jìn)Bsdiff算法的車載診斷系統(tǒng)遠(yuǎn)程升級(jí)系統(tǒng)。主要在以下方面做了優(yōu)化:

        1)針對(duì)原Bsdiff算法生成的補(bǔ)丁文件差分區(qū)域數(shù)據(jù)存在大量冗余零值的問題,本文以減小補(bǔ)丁文件體積及多線程分包下發(fā)為核心思想,對(duì)差分區(qū)域數(shù)據(jù)進(jìn)行了去冗優(yōu)化,并將補(bǔ)丁文件進(jìn)行分包處理,采用多線程機(jī)制對(duì)車載OBD終端進(jìn)行補(bǔ)丁下發(fā);

        2)對(duì)單片機(jī)閃存分區(qū)做了優(yōu)化設(shè)計(jì),采用動(dòng)態(tài)調(diào)整分區(qū)空間的方式提高了閃存空間的利用率,避免了傳統(tǒng)閃存分區(qū)執(zhí)行更新操作時(shí)拷貝數(shù)據(jù)、擦除數(shù)據(jù)等耗時(shí)操作,提高了固件更新效率。

        實(shí)驗(yàn)數(shù)據(jù)證明了在車載OBD終端設(shè)備上采用差分遠(yuǎn)程升級(jí)的可行性和可靠性。同時(shí),與全量升級(jí)方法相比,采用優(yōu)化后差分升級(jí)的方法在文件大小方面減小了203MB,性能提升81.2%;在文件編譯、固件包下載及安裝的時(shí)間方面性能分別提高了62.5%、50.0%和86.7%。從而,本文的升級(jí)系統(tǒng)提高了車載終端遠(yuǎn)程升級(jí)的效率。

        猜你喜歡
        優(yōu)化
        超限高層建筑結(jié)構(gòu)設(shè)計(jì)與優(yōu)化思考
        PEMFC流道的多目標(biāo)優(yōu)化
        能源工程(2022年1期)2022-03-29 01:06:28
        民用建筑防煙排煙設(shè)計(jì)優(yōu)化探討
        關(guān)于優(yōu)化消防安全告知承諾的一些思考
        一道優(yōu)化題的幾何解法
        由“形”啟“數(shù)”優(yōu)化運(yùn)算——以2021年解析幾何高考題為例
        圍繞“地、業(yè)、人”優(yōu)化產(chǎn)業(yè)扶貧
        事業(yè)單位中固定資產(chǎn)會(huì)計(jì)處理的優(yōu)化
        4K HDR性能大幅度優(yōu)化 JVC DLA-X8 18 BC
        幾種常見的負(fù)載均衡算法的優(yōu)化
        電子制作(2017年20期)2017-04-26 06:57:45
        亚洲精品亚洲人成在线下载 | 蜜桃18禁成人午夜免费网站| 亚洲精品国产一区av| 亚洲精品国产av日韩专区 | 日韩在线不卡一区三区av| 久久无码人妻丰满熟妇区毛片| 日本50岁丰满熟妇xxxx| 免费毛片视频网站| 国产成人综合亚洲国产| 中文字幕乱码亚洲无限码| 亚洲欧美日韩在线不卡| 国产成人国产在线观看入口| 色婷婷亚洲十月十月色天| 男奸女永久免费视频网站| 久久久国产乱子伦精品作者| 国产精品video| 久久迷青品着产亚洲av网站| 两人前一后地插着她丰满| 中文字幕aⅴ人妻一区二区| 99国产精品视频无码免费 | 久久精品女人天堂av麻| 色综合久久蜜芽国产精品| 亚洲自偷自拍熟女另类| 午夜无码大尺度福利视频| 亚洲AV秘 无码一区二区久久| 91精品国产91综合久久蜜臀| 波多野结衣的av一区二区三区| 免费一级特黄欧美大片久久网| 国产精品亚洲精品日产久久久| 亚洲精品久久区二区三区蜜桃臀| 忘忧草社区www日本高清| 亚洲国产成人久久一区www妖精| 亚洲av一区二区网址| 人妻无码第一区二区三区| 影音先锋中文字幕无码资源站| 伊人影院综合在线| 99精品又硬又爽又粗少妇毛片| 中字乱码视频| 欧洲日本一线二线三线区本庄铃| 在线偷窥制服另类| 日本黄色3级一区二区|