專利名稱:嵌入式系統(tǒng)的數(shù)據(jù)遠(yuǎn)程升級方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種嵌入式系統(tǒng)的數(shù)據(jù)遠(yuǎn)程升級方法,特別是一種嵌入式系統(tǒng)的數(shù)據(jù)的差異升級和斷點(diǎn)續(xù)傳的升級方法。
背景技術(shù):
現(xiàn)有嵌入式系統(tǒng)程序升級的方法,比如以太網(wǎng)遠(yuǎn)程升級、U盤本地升級都是用新程序整個取代嵌入式節(jié)點(diǎn)里面的現(xiàn)有程序。隨著無線網(wǎng)絡(luò)的發(fā)展,嵌入式無線節(jié)點(diǎn)的增多,如何安全可靠的升級嵌入式無線節(jié)點(diǎn)程序成為了一個新的課題?,F(xiàn)有數(shù)據(jù)方法已經(jīng)不適合無線網(wǎng)絡(luò)數(shù)據(jù)通信或程序升級。嵌入式無線節(jié)點(diǎn)自身通信的特殊性,比如信號不穩(wěn)定、通訊數(shù)據(jù)包數(shù)據(jù)量小,都要求盡量減少升級程序的大小,并且當(dāng)受到干擾造成升級失敗時能在原有升級的基礎(chǔ)上繼續(xù)升級,提高程序升級的效率和可靠性。
發(fā)明內(nèi)容
發(fā)明目的本發(fā)明所要解決的技術(shù)問題是針對現(xiàn)有技術(shù)的不足,提供一種嵌入式系統(tǒng)的數(shù)據(jù)遠(yuǎn)程升級方法,解決目前嵌入式無線節(jié)點(diǎn)缺少有效的程序(數(shù)據(jù))升級方法,不能滿足實際應(yīng)用的問題。為了解決上述技術(shù)問題,本發(fā)明公開了一種嵌入式系統(tǒng)的數(shù)據(jù)遠(yuǎn)程升級方法,在本地服務(wù)器和一個遠(yuǎn)程嵌入式系統(tǒng)之間采用差異升級方式進(jìn)行數(shù)據(jù)升級;
所述差異升級方式指將嵌入式系統(tǒng)內(nèi)現(xiàn)有數(shù)據(jù)和本地服務(wù)器的新數(shù)據(jù)按照一定大小分成多個子文件,并進(jìn)行差異對比形成差異子文件和版本控制文件,根據(jù)版本控制文件對差異的子文件進(jìn)行升級,相同的子文件不升級。本發(fā)明中,所述版本控制文件按照二進(jìn)制編碼方式映射各個差異子文件,映射方法如下
所述版本控制文件的每一個二進(jìn)制bit位對應(yīng)著本地服務(wù)器新數(shù)據(jù)中的一個子文件; 用二進(jìn)制bit位0表示本地服務(wù)器新數(shù)據(jù)中的子文件和嵌入式系統(tǒng)內(nèi)現(xiàn)有數(shù)據(jù)中的子文件相同,不需要升級;用二進(jìn)制bit位1表示本地服務(wù)器的新數(shù)據(jù)中的子文件和嵌入式系統(tǒng)內(nèi)現(xiàn)有數(shù)據(jù)中的子文件不同,需要升級; 或者,
用二進(jìn)制bit位1表示本地服務(wù)器新數(shù)據(jù)中的子文件和嵌入式系統(tǒng)內(nèi)現(xiàn)有數(shù)據(jù)中的子文件相同,不需要升級;用二進(jìn)制bit位0表示本地服務(wù)器的新數(shù)據(jù)中的子文件和嵌入式系統(tǒng)內(nèi)現(xiàn)有數(shù)據(jù)中的子文件不同,需要升級。本發(fā)明中,數(shù)據(jù)遠(yuǎn)程升級開始時,嵌入式系統(tǒng)獲取新的版本控制文件并和自身的版本控制文件進(jìn)行bit位掃描對比,掃描順序可以從前往后正序掃描,也可以從后往前倒序掃描,根據(jù)該bit位的值判斷是該bit位映射的子文件是否是差異子文件,如果是則進(jìn)行升級,否則不升級。本發(fā)明中,根據(jù)對版本控制文件二進(jìn)制掃描的結(jié)果,嵌入式系統(tǒng)獲取本地服務(wù)器上的差異子文件,獲取成功后嵌入式系統(tǒng)修改自身的版本控制文件,表示該差異子文件已經(jīng)和本地服務(wù)器上的差異子文件相同。本發(fā)明中,在本地服務(wù)器和一個遠(yuǎn)程嵌入式系統(tǒng)之間采用斷點(diǎn)續(xù)傳方式進(jìn)行數(shù)據(jù)升級;
所述斷點(diǎn)續(xù)傳方式指如果本次升級失敗只升級了部分差異子文件,下一次升級時,已成功升級差異子文件將不再升級,僅僅升級未完成差異子文件。本發(fā)明中,如果一次升級失敗,只升級了部分差異子文件,已升級的部分差異子文件對應(yīng)在版本控制文件中對應(yīng)的bit位已經(jīng)被修改,下次升級進(jìn)行bit位掃描時將跳過該 bit位,不對該bit位對應(yīng)的差異子文件升級。有益效果本發(fā)明方法簡單,使用方便,效率高,占用資源少等優(yōu)點(diǎn)。提高了傳統(tǒng)嵌入式系統(tǒng)程序升級方法的效率,能安全可靠的升級嵌入式無線節(jié)點(diǎn)程序。同時本發(fā)明同樣能提高傳統(tǒng)的以太網(wǎng)遠(yuǎn)程升級、U盤本地升級的升級效率和可靠性。
下面結(jié)合附圖和具體實施方式
對本發(fā)明做更進(jìn)一步的具體說明,本發(fā)明的上述和 /或其他方面的優(yōu)點(diǎn)將會變得更加清楚。圖1為實施例流程圖。
具體實施例方式本發(fā)明公開了一種嵌入式系統(tǒng)的數(shù)據(jù)遠(yuǎn)程升級方法,在本地服務(wù)器和一個遠(yuǎn)程嵌入式系統(tǒng)之間采用差異升級方式進(jìn)行數(shù)據(jù)升級;所述差異升級方式指將嵌入式系統(tǒng)內(nèi)現(xiàn)有數(shù)據(jù)和本地服務(wù)器的新數(shù)據(jù)按照一定大小分成多個子文件,并進(jìn)行差異對比形成差異子文件和版本控制文件,根據(jù)版本控制文件對差異的子文件進(jìn)行升級,相同的子文件不升級。本發(fā)明中,所述版本控制文件按照二進(jìn)制編碼方式映射各個差異子文件,映射方法如下所述版本控制文件的每一個二進(jìn)制bit位對應(yīng)著本地服務(wù)器新數(shù)據(jù)中的一個子文件;
用二進(jìn)制bit位0表示本地服務(wù)器新數(shù)據(jù)中的子文件和嵌入式系統(tǒng)內(nèi)現(xiàn)有數(shù)據(jù)中的子文件相同,不需要升級;用二進(jìn)制bit位1表示本地服務(wù)器的新數(shù)據(jù)中的子文件和嵌入式系統(tǒng)內(nèi)現(xiàn)有數(shù)據(jù)中的子文件不同,需要升級; 或者,
用二進(jìn)制bit位1表示本地服務(wù)器新數(shù)據(jù)中的子文件和嵌入式系統(tǒng)內(nèi)現(xiàn)有數(shù)據(jù)中的子文件相同,不需要升級;用二進(jìn)制bit位0表示本地服務(wù)器的新數(shù)據(jù)中的子文件和嵌入式系統(tǒng)內(nèi)現(xiàn)有數(shù)據(jù)中的子文件不同,需要升級。本發(fā)明中,數(shù)據(jù)遠(yuǎn)程升級開始時,嵌入式系統(tǒng)獲取新的版本控制文件并和自身的版本控制文件進(jìn)行bit位掃描對比,掃描順序可以從前往后正序掃描,也可以從后往前倒序掃描,根據(jù)該bit位的值判斷是該bit位映射的子文件是否是差異子文件,如果是則進(jìn)行升級,否則不升級。本發(fā)明中,根據(jù)對版本控制文件二進(jìn)制掃描的結(jié)果,嵌入式系統(tǒng)獲取本地服務(wù)器上的差異子文件,獲取成功后嵌入式系統(tǒng)修改自身的版本控制文件,表示該差異子文件已
4經(jīng)和本地服務(wù)器上的差異子文件相同。本發(fā)明中,在本地服務(wù)器和一個遠(yuǎn)程嵌入式系統(tǒng)之間采用斷點(diǎn)續(xù)傳方式進(jìn)行數(shù)據(jù)升級;
所述斷點(diǎn)續(xù)傳方式指如果本次升級失敗只升級了部分差異子文件,下一次升級時,已成功升級差異子文件將不再升級,僅僅升級未完成差異子文件。本發(fā)明中,如果一次升級失敗,只升級了部分差異子文件,已升級的部分差異子文件對應(yīng)在版本控制文件中對應(yīng)的bit位已經(jīng)被修改,下次升級進(jìn)行bit位掃描時將跳過該 bit位,不對該bit位對應(yīng)的差異子文件升級。
實施例如圖1所示,本實施例是在本地PC服務(wù)器和遠(yuǎn)程GPRS嵌入式終端之間實現(xiàn)。prog為GPRS嵌入式終端上運(yùn)行程序,大小為72K byte ; ver為GPRS嵌入式終端上的版本控制文件,預(yù)知文件內(nèi)容為0x00,0x00, ..,0x00 (共30個,初始化的數(shù)量和升級的最大程序大小有關(guān))。(一)差異升級的實現(xiàn)過程。A 如圖1中步驟1,在本地服務(wù)器上將prog和progNew按照IOK大小分成多個子文件對比后,形成3個差異子文件分別是prog007,progOOS, prog009 ;同時形成版本控制文件verNew,除去固定的文件頭和文件尾,0x80,0x03,0x00,,...,0x00 (共30個字節(jié)),其中的二進(jìn)制bit 1和形成的差異子文件映射。B 通過短信發(fā)送遠(yuǎn)程喚醒升級幀,啟動嵌入式系統(tǒng)升級程序,如圖1中步驟2 ;嵌入式系統(tǒng)升級程序首先將嵌入式終端的版本控制文件ver全部bit位清0,然后嵌入式系統(tǒng)遠(yuǎn)程獲取本地PC服務(wù)器上的版本控制文件verNew,如圖1中步驟3 ;
C 嵌入式系統(tǒng)獲取版本控制文件verNew后,將verNew和ver按bit位進(jìn)行掃描比較。 本例中采用倒續(xù)掃描,因為后面的28個0x00字節(jié)相同,所以被跳過。第一個差異bit為 0x03 (00000011b)的最低位bit為1,這個bit位1表示需要獲取差異子文件prog008,如圖 1中步驟4 ;嵌入式系統(tǒng)遠(yuǎn)程獲取本地PC服務(wù)器差異子文件progOOS,如圖1中步驟5,如果嵌入式系統(tǒng)遠(yuǎn)程獲取本地PC服務(wù)器差異子文件不成功,則返回步驟2;獲取該文件成功后, 將文件ver的內(nèi)容修改為0x00,0x01, ..,0x00 (共30個),如圖1中步驟6。D 第二個差異bit為0x02 (00000010b)的第二位bitl,這個bit位1表示需要獲取差異子文件prog009,獲取該文件成功后,將文件ver的內(nèi)容修改為OxOOx,0x03,.., 0x00(共30個)。因為尚有差異子文件需要升級,所以本過程重復(fù)圖1中步驟4、步驟5和步驟6。E 第三個差異bit為0x80 (10000000b)的最高位bitl,這個bit位1表示需要獲取差異子文件prog. 007,獲取該文件成功后,將文件ver的內(nèi)容修改為0x80,0x03,.., 0x00(共30個)。因為尚有差異子文件需要升級,所以本過程重復(fù)圖1中步驟4、步驟5和步驟6。F 至此,步驟4中判斷無差異子文件,即全部差異子文件升級完畢,程序升級成功,升級程序退出,如圖1中步驟7。(二)斷點(diǎn)續(xù)傳的實現(xiàn)過程。
假定程序升級過程中受到干擾,第二個差異子文件prog009升級失敗,此時版本控制文件ver的內(nèi)容更新為0x00,0x01, ..,0x00 (共30個)。通過短信發(fā)送遠(yuǎn)程喚醒升級幀,啟動嵌入式系統(tǒng)升級程序,如圖1中步驟2 ; 嵌入式系統(tǒng)升級程序首先將嵌入式終端的版本控制文件ver全部bit位清0,然后嵌入
式系統(tǒng)遠(yuǎn)程獲取本地PC服務(wù)器上的版本控制文件verNew,如圖1中步驟3 ;
嵌入式系統(tǒng)獲取版本控制文件verNew后,將verNew和ver按bit位進(jìn)行掃描比較。第一個差異bit為0x02 (00000010b)的第2個bit為1,這個bit位1表示需要獲取差異子文件prog009,如圖1中步驟4 ;
升級程序從步驟4開始,循環(huán)執(zhí)行圖1中步驟4、步驟5、步驟6,直至步驟4中判斷無差異子文件,即差異子文件全部升級完畢,升級完成程序退出,如圖1中步驟7,步驟5中如果嵌入式系統(tǒng)遠(yuǎn)程獲取本地PC服務(wù)器差異子文件不成功,則返回步驟2。升級程序啟動后,升級程序重新獲取PC機(jī)版本控制文件,并和嵌入式系統(tǒng)內(nèi)部版本控制文件進(jìn)行對比,已成功升級文件將不重復(fù)升級,實現(xiàn)了斷點(diǎn)續(xù)傳。本發(fā)明提供了一種嵌入式系統(tǒng)的數(shù)據(jù)遠(yuǎn)程升級的思路及方法,具體實現(xiàn)該技術(shù)方案的方法和途徑很多,以上所述僅是本發(fā)明的優(yōu)選實施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng)視為本發(fā)明的保護(hù)范圍。本實施例中未明確的各組成部分均可用現(xiàn)有技術(shù)加以實現(xiàn)。
權(quán)利要求
1.一種嵌入式系統(tǒng)的數(shù)據(jù)遠(yuǎn)程升級方法,其特征在于,在本地服務(wù)器和一個遠(yuǎn)程嵌入式系統(tǒng)之間采用差異升級方式進(jìn)行數(shù)據(jù)升級;所述差異升級方式指將嵌入式系統(tǒng)內(nèi)現(xiàn)有數(shù)據(jù)和本地服務(wù)器的新數(shù)據(jù)按照一定大小分成多個子文件,并進(jìn)行差異對比形成差異子文件和版本控制文件,根據(jù)版本控制文件對差異的子文件進(jìn)行升級,相同的子文件不升級。
2.根據(jù)權(quán)利要求1所述的嵌入式系統(tǒng)的數(shù)據(jù)遠(yuǎn)程升級方法,其特征在于,所述版本控制文件按照二進(jìn)制編碼方式映射各個差異子文件,映射方法如下所述版本控制文件的每一個二進(jìn)制bit位對應(yīng)著本地服務(wù)器新數(shù)據(jù)中的一個子文件;用二進(jìn)制bit位0表示本地服務(wù)器新數(shù)據(jù)中的子文件和嵌入式系統(tǒng)內(nèi)現(xiàn)有數(shù)據(jù)中的子文件相同,不需要升級;用二進(jìn)制bit位1表示本地服務(wù)器的新數(shù)據(jù)中的子文件和嵌入式系統(tǒng)內(nèi)現(xiàn)有數(shù)據(jù)中的子文件不同,需要升級;或者,用二進(jìn)制bit位1表示本地服務(wù)器新數(shù)據(jù)中的子文件和嵌入式系統(tǒng)內(nèi)現(xiàn)有數(shù)據(jù)中的子文件相同,不需要升級;用二進(jìn)制bit位0表示本地服務(wù)器的新數(shù)據(jù)中的子文件和嵌入式系統(tǒng)內(nèi)現(xiàn)有數(shù)據(jù)中的子文件不同,需要升級。
3.根據(jù)權(quán)利要求2所述的嵌入式系統(tǒng)的數(shù)據(jù)遠(yuǎn)程升級方法,其特征在于,數(shù)據(jù)遠(yuǎn)程升級開始時,嵌入式系統(tǒng)獲取新的版本控制文件并和自身的版本控制文件進(jìn)行bit位掃描對比,掃描順序為從前往后正序掃描或者從后往前倒序掃描,根據(jù)該bit位的值判斷是該bit 位映射的子文件是否是差異子文件,如果是則進(jìn)行升級,否則不升級。
4.根據(jù)權(quán)利要求3所述的嵌入式系統(tǒng)的數(shù)據(jù)遠(yuǎn)程升級方法,其特征在于,根據(jù)對版本控制文件二進(jìn)制掃描的結(jié)果,嵌入式系統(tǒng)獲取本地服務(wù)器上的差異子文件,獲取成功后嵌入式系統(tǒng)修改自身的版本控制文件,表示該差異子文件已經(jīng)和本地服務(wù)器上的差異子文件相同。
5.根據(jù)權(quán)利要求1至4中任意一項所述的嵌入式系統(tǒng)的數(shù)據(jù)遠(yuǎn)程升級方法,其特征在于,在本地服務(wù)器和一個遠(yuǎn)程嵌入式系統(tǒng)之間采用斷點(diǎn)續(xù)傳方式進(jìn)行數(shù)據(jù)升級;所述斷點(diǎn)續(xù)傳方式指如果本次升級失敗只升級了部分差異子文件,下一次升級時,已成功升級差異子文件將不再升級,僅僅升級未完成差異子文件。
6.根據(jù)權(quán)利要求1至5中任意一項所述的嵌入式系統(tǒng)的數(shù)據(jù)遠(yuǎn)程升級方法,其特征在于,如果一次升級失敗,只升級了部分差異子文件,已升級的部分差異子文件對應(yīng)在版本控制文件中對應(yīng)的bit位已經(jīng)被修改,下次升級進(jìn)行bit位掃描時將跳過該bit位,不對該 bit位對應(yīng)的差異子文件升級。
全文摘要
本發(fā)明公開了一種嵌入式系統(tǒng)的數(shù)據(jù)遠(yuǎn)程升級方法,在本地服務(wù)器和一個遠(yuǎn)程嵌入式系統(tǒng)之間采用差異升級方式進(jìn)行數(shù)據(jù)升級;所述差異升級方式指將嵌入式系統(tǒng)內(nèi)現(xiàn)有數(shù)據(jù)和本地服務(wù)器的新數(shù)據(jù)按照一定大小分成多個子文件,并進(jìn)行差異對比形成差異子文件和版本控制文件,根據(jù)版本控制文件對差異的子文件進(jìn)行升級,相同的子文件不升級。它解決了目前嵌入式系統(tǒng)遠(yuǎn)程升級過程中速度慢、數(shù)據(jù)量大、傳輸不可靠,不能滿足實際應(yīng)用需要等問題。具有方法簡單,使用方便,效率高,占用通信資源少等優(yōu)點(diǎn)。
文檔編號G06F9/445GK102325189SQ201110277708
公開日2012年1月18日 申請日期2011年9月19日 優(yōu)先權(quán)日2011年9月19日
發(fā)明者師曉敏, 查付政, 芮曉玲 申請人:江蘇省郵電規(guī)劃設(shè)計院有限責(zé)任公司