隨著嵌入式操作系統(tǒng)技術(shù)的發(fā)展,在網(wǎng)絡(luò)終端設(shè)備中有越來(lái)越廣泛的應(yīng)用。在實(shí)際使用中,為了擴(kuò)展業(yè)務(wù)功能、解決軟件中存在的問(wèn)題和提升設(shè)備性能,或者為了滿足設(shè)備的定制業(yè)務(wù)(如廣告業(yè)務(wù)),需要對(duì)嵌入式設(shè)備的軟件系統(tǒng)或者資源文件及時(shí)進(jìn)行更新,就是軟件系統(tǒng)的升級(jí)業(yè)務(wù)。目前,嵌入式設(shè)備軟件更新有2種方式:一種是在本地使用PC機(jī)通過(guò)串口(或者網(wǎng)口)將軟件下載到設(shè)備中完成軟件系統(tǒng)的升級(jí);另一種是利用網(wǎng)絡(luò)進(jìn)行在線升級(jí)。前者只能在本地進(jìn)行軟件升級(jí)操作,不能夠批量更新,適合于實(shí)驗(yàn)室調(diào)試使用,而后者能夠?qū)W(wǎng)絡(luò)中在線終端進(jìn)行批量升級(jí),得到廣泛的應(yīng)用。實(shí)際上,軟件在線升級(jí)已經(jīng)成為網(wǎng)絡(luò)終端設(shè)備的一項(xiàng)基本功能,軟件在線升級(jí)的方案不同,升級(jí)過(guò)程的特點(diǎn)和安全性也不相同。
1 系統(tǒng)軟件升級(jí)常用方案
網(wǎng)絡(luò)終端設(shè)備的系統(tǒng)軟件保存在FLASH中,系統(tǒng)啟動(dòng)時(shí)把系統(tǒng)軟件加載到內(nèi)存中運(yùn)行,軟件升級(jí)的本質(zhì)是從網(wǎng)絡(luò)下載新的系統(tǒng)軟件內(nèi)容,把原來(lái)系統(tǒng)軟件內(nèi)容擦除,然后寫(xiě)入新的系統(tǒng)軟件,系統(tǒng)重啟后加載新的系統(tǒng)軟件。常用的升級(jí)方案包括單系統(tǒng)升級(jí)方案和雙系統(tǒng)升級(jí)方案:
(1)單系統(tǒng)升級(jí)方案(如圖1所示):系統(tǒng)啟動(dòng)后進(jìn)行正常的業(yè)務(wù)功能,此時(shí)網(wǎng)絡(luò)后臺(tái)檢測(cè)終端版本號(hào)判斷是否有新版本可升級(jí),如果檢測(cè)到當(dāng)前終端的版本號(hào)低于最新版本號(hào),則立即從網(wǎng)絡(luò)下載升級(jí)包啟動(dòng)升級(jí)過(guò)程,在用戶進(jìn)行業(yè)務(wù)功能的過(guò)程中后臺(tái)完成對(duì)于原系統(tǒng)軟件的擦除,并寫(xiě)入新的系統(tǒng)軟件和更新當(dāng)前版本號(hào)。該升級(jí)過(guò)程對(duì)于用戶是透明的,用戶只有在終端重啟后再加載新的系統(tǒng)軟件。但是該升級(jí)方案的安全性比較弱,因?yàn)槿绻麅?nèi)容擦除后終端斷電或者重啟,則終端中系統(tǒng)軟件被破壞,沒(méi)有可用的系統(tǒng)軟件,終端以后再不能正常啟動(dòng),必須技術(shù)支持人員到現(xiàn)場(chǎng)完成軟件修復(fù)升級(jí)。另外,如果新寫(xiě)入的系統(tǒng)軟件因?yàn)榫W(wǎng)絡(luò)傳輸或者其他原因存在錯(cuò)誤時(shí),也會(huì)上面的結(jié)果。這種升級(jí)方案存在較明顯的安全性缺陷,現(xiàn)在已經(jīng)較少使用。
(2)雙系統(tǒng)升級(jí)方案(如圖2所示):為了增強(qiáng)升級(jí)過(guò)程的安全性,出現(xiàn)了雙系統(tǒng)的升級(jí)方案,通常的處理是終端中存在一個(gè)基本運(yùn)行系統(tǒng)和一個(gè)正常運(yùn)行系統(tǒng),分別處于FLASH的不同分區(qū)中,基本運(yùn)行系統(tǒng)只用于升級(jí)正常運(yùn)行系統(tǒng)軟件,正常運(yùn)行系統(tǒng)完成用戶的正常業(yè)務(wù)。業(yè)務(wù)過(guò)程中自動(dòng)從網(wǎng)絡(luò)檢測(cè)最新版本號(hào),判斷是否需要升級(jí)系統(tǒng)軟件,如果檢測(cè)到有需要升級(jí)的系統(tǒng)軟件,則終端設(shè)置從基本運(yùn)行系統(tǒng)啟動(dòng)并提示用戶重啟系統(tǒng)。終端從基本運(yùn)行系統(tǒng)啟動(dòng)后,從網(wǎng)絡(luò)下載正常運(yùn)行系統(tǒng)軟件并完成升級(jí)過(guò)程,寫(xiě)入完成后更新當(dāng)前版本號(hào),設(shè)置從正常運(yùn)行系統(tǒng)啟動(dòng)后重啟,終端從正常運(yùn)行系統(tǒng)啟動(dòng),進(jìn)行正常的用戶業(yè)務(wù)。
該升級(jí)方案克服上單系統(tǒng)升級(jí)方案中安全性的缺陷,升級(jí)過(guò)程中如果出現(xiàn)終端異常斷電或者重啟,只有正常運(yùn)行系統(tǒng)軟件的被破壞,最小備份系統(tǒng)保持正常是升級(jí)功能,系統(tǒng)重啟后繼續(xù)從最小備份系統(tǒng)啟動(dòng),完成系統(tǒng)升級(jí)功能。目前網(wǎng)絡(luò)設(shè)備中常會(huì)使用該升級(jí),但這種升級(jí)方案每次都需要重啟系統(tǒng),且用戶需要停止業(yè)務(wù)進(jìn)行系統(tǒng)軟件的升級(jí),整個(gè)升級(jí)過(guò)程用戶只能等待,對(duì)于現(xiàn)在用戶體驗(yàn)越來(lái)越重要的終端設(shè)備,該升級(jí)方案有較明顯的易用性缺陷。
2 基于關(guān)鍵點(diǎn)控制的系統(tǒng)軟件升級(jí)方案
基于關(guān)鍵點(diǎn)控制的升級(jí)方案是針對(duì)于上述雙系統(tǒng)升級(jí)方案的優(yōu)化和改進(jìn),通過(guò)業(yè)務(wù)分析和統(tǒng)計(jì),為了修改增強(qiáng)業(yè)務(wù)功能或者修改BUG,終端升級(jí)的絕大部分場(chǎng)景是需要升級(jí)正常運(yùn)行系統(tǒng),如果能夠?qū)崿F(xiàn)在正常運(yùn)行系統(tǒng)中能夠升級(jí)自身,升級(jí)過(guò)程對(duì)用戶透明,則能夠解做到絕大部分升級(jí)過(guò)程用戶不可見(jiàn)。同時(shí)由于基本運(yùn)行系統(tǒng)也會(huì)存在BUG或者需要增強(qiáng)功能,也有需要升級(jí)基本運(yùn)行系統(tǒng)的情況。
本方案通過(guò)在系統(tǒng)中設(shè)定關(guān)鍵點(diǎn),在升級(jí)過(guò)程中通過(guò)關(guān)鍵點(diǎn)值控制升級(jí)的流程,保證系統(tǒng)軟件升級(jí)安全性,同時(shí)做到升級(jí)過(guò)程對(duì)用戶透明,而且除了能夠升級(jí)正常運(yùn)行系統(tǒng)外還可以升級(jí)基本運(yùn)行系統(tǒng)(如基本運(yùn)行系統(tǒng)中存在BUG需要修改時(shí)),增強(qiáng)了終端的靈活性,另外升級(jí)過(guò)程引入了XML格式的升級(jí)控制文件,有效的控制了網(wǎng)絡(luò)版本的兼容性。關(guān)鍵點(diǎn)記錄了當(dāng)前系統(tǒng)軟件的狀態(tài)。根據(jù)當(dāng)前系統(tǒng)軟件狀態(tài)的不同,軟件升級(jí)的流程不同,在基本運(yùn)行系統(tǒng)和正常運(yùn)行系統(tǒng)中都包含下面的關(guān)鍵點(diǎn),各個(gè)關(guān)鍵點(diǎn)的取值和代表含義如下:
(1)系統(tǒng)啟動(dòng)未驗(yàn)證(SSNV):系統(tǒng)升級(jí)完成后沒(méi)有啟動(dòng)過(guò),此時(shí)不能保證系統(tǒng)能夠正常啟動(dòng),不能保證系統(tǒng)能夠運(yùn)行業(yè)務(wù)功能,即沒(méi)有驗(yàn)證系統(tǒng)的升級(jí)功能;正常運(yùn)行系統(tǒng)處于SSNV狀態(tài)時(shí),不能在該正常運(yùn)行系統(tǒng)下升級(jí)基本運(yùn)行系統(tǒng),否則可能會(huì)出現(xiàn)2個(gè)系統(tǒng)都不能正常啟動(dòng)的狀態(tài)。同樣基本運(yùn)行系統(tǒng)處于SSNV狀態(tài)時(shí),不能在該基本運(yùn)行系統(tǒng)中升級(jí)正常運(yùn)行系統(tǒng)。
(2)系統(tǒng)升級(jí)未驗(yàn)證(SUNV):系統(tǒng)已經(jīng)正常啟動(dòng),業(yè)務(wù)功能正常運(yùn)行,但沒(méi)有驗(yàn)證系統(tǒng)的升級(jí)功能。如果正常運(yùn)行系統(tǒng)的升級(jí)功能沒(méi)有驗(yàn)證,則不能在該系統(tǒng)下升級(jí)基本運(yùn)行系統(tǒng),否則可能會(huì)造成基本運(yùn)行系統(tǒng)被破壞,同時(shí)正常運(yùn)行系統(tǒng)沒(méi)有升級(jí)功能的情況,以后終端再也不具有在線升級(jí)的功能。同樣基本運(yùn)行系統(tǒng)處于SUNV狀態(tài)時(shí),不能在正常運(yùn)行系統(tǒng)中直接升級(jí)正常運(yùn)行系統(tǒng)本身,需要重啟進(jìn)入基本運(yùn)行系統(tǒng)進(jìn)行升級(jí);
(3)系統(tǒng)升級(jí)已驗(yàn)證(SUV):系統(tǒng)除了業(yè)務(wù)功能正常外,升級(jí)功能已經(jīng)驗(yàn)證過(guò),能夠進(jìn)行正常的升級(jí)。該狀態(tài)表明系統(tǒng)功能完全經(jīng)過(guò)驗(yàn)證,如基本運(yùn)行系統(tǒng)處于SUV狀態(tài),則在正常運(yùn)行系統(tǒng)中可以自動(dòng)升級(jí)自身,正常運(yùn)行系統(tǒng)處于SUV狀態(tài)時(shí),可以在正常運(yùn)行系統(tǒng)中升級(jí)基本運(yùn)行系統(tǒng)。
升級(jí)方案的具體控制流程中包含了關(guān)鍵點(diǎn)控制和判斷使用的時(shí)機(jī),終端啟動(dòng)后判斷從哪個(gè)系統(tǒng)啟動(dòng),如果從正常運(yùn)行系統(tǒng)啟動(dòng)成功,此時(shí)假設(shè)正常運(yùn)行系統(tǒng)的關(guān)鍵點(diǎn)狀態(tài)為SSNV狀態(tài),則設(shè)置為SUNV狀態(tài)(如圖3所示)。
系統(tǒng)運(yùn)行過(guò)程中檢測(cè)到有新版本需要升級(jí)正常運(yùn)行系統(tǒng),則判斷基本運(yùn)行系統(tǒng)的關(guān)鍵點(diǎn)狀態(tài),如果為SUV狀態(tài),則直接在正常運(yùn)行系統(tǒng)中升級(jí)該升級(jí)包,否則需要設(shè)置從基本運(yùn)行系統(tǒng)啟動(dòng),并重啟終端后在基本運(yùn)行系統(tǒng)中升級(jí)該升級(jí)包。如果檢測(cè)到需要升級(jí)基本運(yùn)行系統(tǒng),則判斷正常運(yùn)行系統(tǒng)關(guān)鍵點(diǎn)狀態(tài),如果為SUV狀態(tài),則直接在基本運(yùn)行系統(tǒng)中升級(jí)該升級(jí)包,升級(jí)完成后設(shè)置正常運(yùn)行系統(tǒng)的關(guān)鍵點(diǎn)狀態(tài)為SSNV狀態(tài),否則忽略該升級(jí)包(如圖4所示)。在基本運(yùn)行系統(tǒng)啟動(dòng)成功,如果此時(shí)基本運(yùn)行系統(tǒng)的關(guān)鍵點(diǎn)狀態(tài)為SSNV狀態(tài),則設(shè)置為SUNV狀態(tài)(如圖5所示)。基本運(yùn)行系統(tǒng)的主要功能就是完成正常運(yùn)行系統(tǒng)的升級(jí)。啟動(dòng)后如果檢測(cè)到有新版本需要升級(jí)正常運(yùn)行系統(tǒng),則下載該升級(jí)包進(jìn)行升級(jí)業(yè)務(wù),升級(jí)完成后設(shè)置正常運(yùn)行系統(tǒng)的關(guān)鍵點(diǎn)狀態(tài)為SSNV狀態(tài),并表示基本運(yùn)行系統(tǒng)的關(guān)鍵點(diǎn)狀態(tài)為SUV狀態(tài)(如圖6所示)。
通過(guò)上述的關(guān)鍵點(diǎn)控制,該升級(jí)方案保證了任何情況下都有一個(gè)系統(tǒng)是能夠正常運(yùn)行升級(jí)系統(tǒng),不會(huì)出現(xiàn)終端因?yàn)樯?jí)過(guò)程斷電等因素造成升級(jí)失敗后,不能再自動(dòng)恢復(fù)的問(wèn)題,對(duì)終端升級(jí)的安全性有較大的提升。例如在正常運(yùn)行系統(tǒng)中升級(jí)正常運(yùn)行系統(tǒng)時(shí),基本運(yùn)行系統(tǒng)保證是SUV狀態(tài),如果出現(xiàn)斷電情況,終端重啟后進(jìn)入基本運(yùn)行系統(tǒng)中可以把正常運(yùn)行系統(tǒng)升級(jí);在正常運(yùn)行系統(tǒng)中升級(jí)基本運(yùn)行系統(tǒng)時(shí),正常運(yùn)行系統(tǒng)保證是SUV狀態(tài),如果出現(xiàn)斷電情況,終端重啟后進(jìn)入正常運(yùn)行系統(tǒng)可以繼續(xù)升級(jí)基本運(yùn)行系統(tǒng);在基本運(yùn)行系統(tǒng)中升級(jí)正常運(yùn)行系統(tǒng)時(shí),基本運(yùn)行系統(tǒng)保證是SUV狀態(tài),如果出現(xiàn)斷電情況,終端重啟后進(jìn)入基本運(yùn)行系統(tǒng)可以繼續(xù)升級(jí)正常運(yùn)行系統(tǒng)。該升級(jí)方案中不允許在基本運(yùn)行系統(tǒng)中升級(jí)自身。
3 結(jié)語(yǔ)
該方法在醫(yī)療呼叫系統(tǒng)中進(jìn)行了應(yīng)用與驗(yàn)證,嵌入式系統(tǒng)基于S3C2440處理器,負(fù)責(zé)系統(tǒng)中醫(yī)療信息的發(fā)布、查詢,語(yǔ)音呼叫及醫(yī)療增援服務(wù),其中床頭機(jī)、醫(yī)護(hù)機(jī)、門(mén)口機(jī)均采用該系統(tǒng),醫(yī)療呼叫系統(tǒng)需要全天候工作,不可能指定時(shí)間對(duì)系統(tǒng)升級(jí),且升級(jí)過(guò)程需要用戶不可見(jiàn),通過(guò)應(yīng)用本方法能夠方便的升級(jí)系統(tǒng)軟件,以修復(fù)軟件BUG或者增強(qiáng)軟件服務(wù)。升級(jí)過(guò)程中用戶不可見(jiàn),且升級(jí)完成后不需要重啟終端,對(duì)于升級(jí)的易用性和友好性有較大改進(jìn)。
本文分析了常用的網(wǎng)絡(luò)終端設(shè)備在線升級(jí)的方案,在保證在線升級(jí)過(guò)程安全的基礎(chǔ)上,通過(guò)對(duì)雙系統(tǒng)升級(jí)方法的優(yōu)化和改進(jìn),通過(guò)關(guān)鍵點(diǎn)狀態(tài)的記錄和判斷,實(shí)現(xiàn)了絕大部分情況下,可以在正常運(yùn)行系統(tǒng)中直接升級(jí)正常運(yùn)行系統(tǒng),升級(jí)完成后不需要重啟系統(tǒng),做到升級(jí)過(guò)程對(duì)用戶透明。同時(shí)在原來(lái)只能升級(jí)正常運(yùn)行系統(tǒng)的基礎(chǔ)上,支持升級(jí)基本運(yùn)行系統(tǒng)的功能,對(duì)于提升網(wǎng)絡(luò)終端設(shè)備在線升級(jí)的易用性和安全性有較大的幫助。
-
處理器
+關(guān)注
關(guān)注
68文章
19409瀏覽量
231204 -
嵌入式
+關(guān)注
關(guān)注
5093文章
19178瀏覽量
307718 -
網(wǎng)絡(luò)
+關(guān)注
關(guān)注
14文章
7600瀏覽量
89257
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
通過(guò)InConnect平臺(tái)實(shí)現(xiàn)終端設(shè)備遠(yuǎn)程訪問(wèn)
【OK210申請(qǐng)】用戶級(jí)手持終端設(shè)備
通過(guò)MCU串口管理CC2530協(xié)調(diào)器。實(shí)現(xiàn)終端設(shè)備入網(wǎng)添加,刪除,網(wǎng)絡(luò)內(nèi)終端設(shè)備實(shí)時(shí)網(wǎng)絡(luò)狀態(tài)查詢,請(qǐng)問(wèn)哪種方案更好?
請(qǐng)問(wèn)下:網(wǎng)絡(luò)建立好后,如果,協(xié)調(diào)器重啟后,為什么需要再次重啟終端設(shè)備?
請(qǐng)問(wèn)zigbee 終端設(shè)備如何離開(kāi)當(dāng)前網(wǎng)絡(luò)?
基于NXP i.MX6UL打造手持終端設(shè)備方案解決倉(cāng)儲(chǔ)管理需求
如何利用ATmega64實(shí)現(xiàn)終端設(shè)備顯示控制?
如何利用現(xiàn)有局域網(wǎng),在不添加中間網(wǎng)關(guān)的情況下,控制終端設(shè)備。
證通電子人臉支付終端設(shè)備ZT8623通過(guò)OpenHarmony兼容性測(cè)評(píng)
證通電子人臉支付終端設(shè)備ZT8623通過(guò)OpenHarmony兼容性測(cè)評(píng)
OLT(光纜終端設(shè)備)是什么
網(wǎng)絡(luò)終端設(shè)備的安裝與配置及結(jié)構(gòu)
![<b class='flag-5'>網(wǎng)絡(luò)</b><b class='flag-5'>終端設(shè)備</b>的安裝與配置及結(jié)構(gòu)](https://file.elecfans.com/web2/M00/49/CF/pYYBAGKhvGOAdNHVAAAbryKP_i8987.jpg)
關(guān)鍵點(diǎn)控制網(wǎng)絡(luò)嵌入式設(shè)備在線升級(jí)設(shè)計(jì)實(shí)現(xiàn)
![<b class='flag-5'>關(guān)鍵</b><b class='flag-5'>點(diǎn)</b><b class='flag-5'>控制</b><b class='flag-5'>網(wǎng)絡(luò)</b>嵌入式<b class='flag-5'>設(shè)備</b><b class='flag-5'>在線</b><b class='flag-5'>升級(jí)</b>設(shè)計(jì)<b class='flag-5'>實(shí)現(xiàn)</b>](https://file.elecfans.com/web2/M00/4A/1E/pYYBAGKhvJuAE0SxAAA1AWJEOKc751.png)
基于關(guān)鍵點(diǎn)控制的網(wǎng)絡(luò)嵌入式設(shè)備在線升級(jí)的實(shí)現(xiàn)
![基于<b class='flag-5'>關(guān)鍵</b><b class='flag-5'>點(diǎn)</b><b class='flag-5'>控制</b>的<b class='flag-5'>網(wǎng)絡(luò)</b>嵌入式<b class='flag-5'>設(shè)備</b><b class='flag-5'>在線</b><b class='flag-5'>升級(jí)</b>的<b class='flag-5'>實(shí)現(xiàn)</b>](https://file1.elecfans.com//web2/M00/A6/FD/wKgZomUMQaaAYYx5AAAPjzSMny0223.jpg)
2021華為開(kāi)發(fā)者大會(huì):超級(jí)終端設(shè)備體驗(yàn)升級(jí)
![2021華為開(kāi)發(fā)者大會(huì):超級(jí)<b class='flag-5'>終端設(shè)備</b>體驗(yàn)<b class='flag-5'>升級(jí)</b>](https://file.elecfans.com/web2/M00/18/F5/poYBAGFyYviAd1MGAAWJ-RFUEWU459.png)
評(píng)論