嵌入式固件差分升級的文件生成和合成的方法和系統的製作方法
2023-12-02 11:31:51 1
嵌入式固件差分升級的文件生成和合成的方法和系統的製作方法
【專利摘要】本發明公開了嵌入式固件差分升級的文件生成和合成的方法和系統,包括以下步驟:A、差分升級文件的生成:根據終端已有固件和需要更新的固件比較出二者不同的數據字節,以數據字節為單位取得刪除包和增添包,將刪除包與增添包合成為升級包;B、下載所述升級包;C、差分升級文件的合成:將所述升級包解析為刪除包和增添包,將刪除包、增添包以及終端已有固件合成需要更新的固件。本發明通過區分兩個文件的中同與不同的數據字節,來打包數據進行差分升級的升級包,壓縮升級文件大小,縮短升級時間和減少資源消耗,實現固件的快速升級。
【專利說明】嵌入式固件差分升級的文件生成和合成的方法和系統
【技術領域】
[0001]本發明涉及通過空中接口技術,對嵌入式固件進行更新升級,具體是一種嵌入式固件差分升級文件的生成方法,以及通過差分升級文件合成相應嵌入式固件的合成方法和系統。
【背景技術】
[0002]隨著物聯網產業的興起,低功耗無線通信技術藍牙和Zigbee的發展,需求日新月異,需要能快速有效的對嵌入式產品進行升級。傳統的一對一式的固件升級技術,升級過程佔用太多資源,耗費數據流量巨大,升級過程緩慢,已經越來越不能滿足客戶的需求。
[0003]因此出現了一種通過差分包升級的方式,已經被越來越多的人採用。但是原有的差分包升級方式,針對手機等大型嵌入式軟體產品,不能適合基於低速率低功耗的藍牙和zigbee等無線通信技術空中接口升級的產品。如申請號為201210209785.4的發明專利《升級包生成方法和系統、動態文件差分升級的方法和終端》,這種升級方式是針對大型嵌入式系統固件,這種固件帶文件系統的,升級可控制區分的是每一個文件。
[0004]如圖1所示,該專利打包升級包的思想是,如果終端(手機)上已經擁有這個文件,打包升級包的時候,就不用打包進去,如果沒有這個文件,他就把它打包到升級包裡面去。這樣,因為大多數文件是相同的,沒有改變的,不同的文件就比較少,所以打包的升級包也是比較小的,能在一定程度上縮短升級時間和減少資源消耗。
[0005]這個升級思想比較宏觀。就好像一個書櫃,我們要更新書柜上面的書籍,就會看著書籍的名字和封面,就可以把需要撤下來的書籍就拿下來,需要更新上去的書籍就放上去。
[0006]這種升級思想雖然在一定程度上在一定程度上縮短升級時間和減少資源消耗,但仍未找到最為有效的方案,因為單個文件不是最小的數據單位,單個文件它包含大量的字節數據,當升級過程中需要更新的只是某些字節數據時,更新整個文件也是極其緩慢和浪費資源的,尤其是在低速率低功耗的藍牙和zigbee等無線通信技術空中接口升級的產品O
【發明內容】
[0007]為解決上述技術問題,本發明的目的是提供一種可實現快速升級的嵌入式固件差分升級文件生成和合成的方法和系統。
[0008]本發明採用的技術方案是:
嵌入式固件差分升級的文件生成和合成的方法,包括以下步驟:
A、差分升級文件的生成:根據終端已有固件和需要更新的固件比較出二者不同的數據字節,以數據字節為單位取得刪除包和增添包,將刪除包與增添包合成為升級包;
B、下載所述升級包;
C、差分升級文件的合成:將所述升級包解析為刪除包和增添包,將刪除包、增添包以及終端已有固件合成需要更新的固件。
[0009]進一步的,所述步驟A中刪除包包含的內容為終端已有固件有而需要更新的固件沒有的,增添包包含的內容為終端已有固件沒有而需要更新的固件有的。
[0010]進一步的,所述步驟C中終端已有固件參與合成的內容為終端已有固件和需要更新的固件二者相同的部分。
[0011]其中,所述升級包還包括升級包長度、升級包類型、刪除包長度、增添包長度、升級固件校驗值、文件校驗。
[0012]進一步的,所述步驟B下載完成之後、所述步驟C解析升級包之前設置有一校驗程序,當校驗成功則進入步驟C。
[0013]本發明還包括與上述方法基於同一個發明構思的一種嵌入式固件差分升級的文件生成和合成的系統,包括至少一伺服器和/或主機設備端、以及與伺服器和/或主機設備端交互的至少一終端;
該伺服器和/或主機設備端用於差分升級文件的生成:根據終端已有固件和需要更新的固件比較出二者不同的數據字節,以數據字節為單位取得刪除包和增添包,將刪除包與增添包合成為升級包;
該終端包括一協議棧模塊、一升級包解析模塊、一固件組裝模塊、一固件升級模塊,其中,協議棧模塊與伺服器和/或主機設備端交互以下載所述升級包,升級包解析模塊將所述升級包解析為刪除包和增添包,固件組裝模塊將刪除包、增添包以及終端已有固件合成需要更新的固件,固件升級模塊將終端已有固件升級為需要更新的固件。
[0014]進一步的,所述刪除包包含的內容為終端已有固件有而需要更新的固件沒有的,增添包包含的內容為終端已有固件沒有而需要更新的固件有的。
[0015]進一步的,所述終端已有固件參與合成的內容為終端已有固件和需要更新的固件二者相同的部分。
[0016]其中,所述升級包還包括升級包長度、升級包類型、刪除包長度、增添包長度、升級固件校驗值、文件校驗。
[0017]進一步的,下載升級包完成之後、解析升級包之前設置有一校驗程序,當校驗成功則進入解析環節。
[0018]本發明的有益效果:
本發明提出一種嵌入式固件差分升級文件生成和合成的方法和系統,通過區分兩個文件的中同與不同的數據字節,來打包數據進行差分升級的升級包,壓縮升級文件大小,縮短升級時間和減少資源消耗,實現固件的快速升級。
【專利附圖】
【附圖說明】
[0019]下面結合附圖對本發明的【具體實施方式】做進一步的說明。
[0020]圖1是現有固件升級方案流程圖;
圖2是本發明DBOTA升級系統結構圖;
圖3是固件升級包結構圖;
圖4是本發明實施例固件升級包生成裝置框圖;
圖5是本發明實施例固件升級包合成裝置框圖;
圖6是本發明實施例所述固件升級方案流程圖。
[0021]
【具體實施方式】
首選,需要說明的是,在文件系統中,靜態文件是指在終端中版本發布時就已經確定,且不會由於用戶使用/修改配置等因素改變的文件,這種文件用戶不能通過菜單等方式修改,對於同一個版本的不同終端來說,是相同的,本實施例中所述的固件即靜態文件。
[0022]參考圖2所示,為本發明的一種嵌入式固件差分升級的文件生成和合成的系統,包括一伺服器和/或主機設備端、以及與伺服器和/或主機設備端交互的一終端,該終端為客戶端或終端設備端;
該伺服器和/或主機設備端用於差分升級文件的生成:根據終端已有固件和需要更新的固件比較出二者不同的數據字節,以數據字節為單位取得刪除包和增添包(二者稱為差分包),將刪除包與增添包合成為升級包;
該終端包括一協議棧模塊、一升級包解析模塊、一固件組裝模塊、一固件升級模塊,其中,協議棧模塊與伺服器和/或主機設備端交互以下載所述升級包,升級包解析模塊將所述升級包解析為刪除包和增添包,固件組裝模塊將刪除包、增添包以及終端已有固件合成需要更新的固件,並通知協議棧模塊固件的組裝結果;固件升級模塊將終端已有固件升級為需要更新的固件,並通知協議棧模塊固件的升級結果。
[0023]在取差分包的過程中,其工作原理是通過對原始固件進行操作,刪除不同的部分,添加沒有的部分,保持相同的部分,從而獲得了我們需要進行升級的固件。故所述刪除包包含的內容為終端已有固件有而需要更新的固件沒有的,增添包包含的內容為終端已有固件沒有而需要更新的固件有的,而所述終端已有固件參與合成的內容為終端已有固件和需要更新的固件二者相同的部分。
[0024]其中,如圖3所示,所述升級包包括升級包長度、升級包類型、刪除包、增添包、刪除包長度、增添包長度、升級固件校驗值、文件校驗。
[0025]本發明還包括與上述系統基於同一個發明構思的嵌入式固件差分升級的文件生成和合成的方法,包括以下步驟:
A、差分升級文件的生成:如圖4,根據終端已有固件和需要更新的固件比較出二者不同的數據字節,以數據字節為單位取得刪除包和增添包(二者稱為差分包),將刪除包與增添包合成為升級包;
B、下載所述升級包;
C、差分升級文件的合成:如圖5,將所述升級包解析為刪除包和增添包,將刪除包、增添包以及終端已有固件合成需要更新的固件。
[0026]在上述取差分包的過程中,其工作原理是通過對原始固件進行操作,刪除不同的部分,添加沒有的部分,保持相同的部分,從而獲得了我們需要進行升級的固件。故所述步驟A中刪除包包含的內容為終端已有固件有而需要更新的固件沒有的,增添包包含的內容為終端已有固件沒有而需要更新的固件有的;所述步驟C中終端已有固件參與合成的內容為終端已有固件和需要更新的固件二者相同的部分。
[0027]其中,如圖3,所述升級包還包括升級包長度、升級包類型、刪除包、增添包、刪除包長度、增添包長度、升級固件校驗值、文件校驗。
[0028]如圖6所示,本發明實施例所述固件升級方案流程,包括具體步驟:
Ql、開始升級流程; Q2、終端接收到主機或伺服器升級固件的通知;
Q3、協議棧模塊與伺服器交互通信,下載升級包;
Q4,檢驗是否下載完成,若完成則進入下一步,否則返回Q3 ;
Q5、通過升級包的文件校驗進行校驗,校驗通過進入下一步,否則跳至Q13 ;
Q6、解析模塊對升級包進行解析;
Q7、判斷是否解析成功,若解析成功則進入下一步,否則跳至Q13 ;
Q8、固件組裝模塊對解析的數據和原有固件數據進行組裝;
Q9、檢驗是否組裝成功,若組裝成功則進入下一步,否則跳至Q13 ;
Q10、固件升級模塊使用組裝後的固件進行升級;
Q11、檢驗是否升級成功,若升級成功則進入Q13,否則進入Q12;
Q12、終端或客戶端重啟,回滾到升級前的系統;
Q13、上報伺服器升級結果;
如上所述,本發明提出一種嵌入式固件差分升級文件生成和合成的方法和系統,通過區分兩個文件的中同與不同的數據字節,來打包數據進行差分升級的升級包,壓縮升級文件大小,相比傳統技術以文件為最小單位差分升級,本發明可以更好的縮短升級時間和減少資源消耗,實現固件的快速升級,尤其是適用於中小型嵌入式系統固件,當然大型嵌入式系統也是可以實現的,升級小型的嵌入式產品一般只需要一個文件就可以了。當然,我們升級的方法,升級兩個,三個,多個的文件也是沒有問題的。
[0029]以上所述僅為本發明的優先實施方式,本發明並不限定於上述實施方式,只要以基本相同手段實現本發明目的的技術方案都屬於本發明的保護範圍之內。
【權利要求】
1.嵌入式固件差分升級的文件生成和合成的方法,其特徵在於包括以下步驟: A、差分升級文件的生成:根據終端已有固件和需要更新的固件比較出二者不同的數據字節,以數據字節為單位取得刪除包和增添包,將刪除包與增添包合成為升級包; B、下載所述升級包; C、差分升級文件的合成:將所述升級包解析為刪除包和增添包,將刪除包、增添包以及終端已有固件合成需要更新的固件。
2.根據權利要求1所述的嵌入式固件差分升級的文件生成和合成的方法,其特徵在於:所述步驟A中刪除包包含的內容為終端已有固件有而需要更新的固件沒有的,增添包包含的內容為終端已有固件沒有而需要更新的固件有的。
3.根據權利要求2所述的嵌入式固件差分升級的文件生成和合成的方法,其特徵在於:所述步驟C中終端已有固件參與合成的內容為終端已有固件和需要更新的固件二者相同的部分。
4.根據權利要求1所述的嵌入式固件差分升級的文件生成和合成的方法,其特徵在於:所述升級包還包括升級包長度、升級包類型、刪除包長度、增添包長度、升級固件校驗值、文件校驗。
5.根據權利要求4所述的嵌入式固件差分升級的文件生成和合成的方法,其特徵在於:所述步驟B下載完成之後、所述步驟C解析升級包之前設置有一校驗程序,當校驗成功則進入步驟C。
6.嵌入式固件差分升級的文件生成和合成的系統,其特徵在於: 包括至少一伺服器和/或主機設備端、以及與伺服器和/或主機設備端交互的至少一終端; 該伺服器和/或主機設備端用於差分升級文件的生成:根據終端已有固件和需要更新的固件比較出二者不同的數據字節,以數據字節為單位取得刪除包和增添包,將刪除包與增添包合成為升級包; 該終端包括一協議棧模塊、一升級包解析模塊、一固件組裝模塊、一固件升級模塊,其中,協議棧模塊與伺服器和/或主機設備端交互以下載所述升級包,升級包解析模塊將所述升級包解析為刪除包和增添包,固件組裝模塊將刪除包、增添包以及終端已有固件合成需要更新的固件,固件升級模塊將終端已有固件升級為需要更新的固件。
7.根據權利要求6所述的嵌入式固件差分升級的文件生成和合成的系統,其特徵在於:所述刪除包包含的內容為終端已有固件有而需要更新的固件沒有的,增添包包含的內容為終端已有固件沒有而需要更新的固件有的。
8.根據權利要求7所述的嵌入式固件差分升級的文件生成和合成的系統,其特徵在於:所述終端已有固件參與合成的內容為終端已有固件和需要更新的固件二者相同的部分。
9.根據權利要求6所述的嵌入式固件差分升級的文件生成和合成的系統,其特徵在於:所述升級包還包括升級包長度、升級包類型、刪除包長度、增添包長度、升級固件校驗值、文件校驗。
10.根據權利要求9所述的嵌入式固件差分升級的文件生成和合成的系統,其特徵在於:下載升級包完成之後、解析升級包之前設置有一校驗程序,當校驗成功則進入解析環 節。
【文檔編號】G06F9/445GK104184814SQ201410422666
【公開日】2014年12月3日 申請日期:2014年8月25日 優先權日:2014年8月25日
【發明者】盧軍營, 沈阜山 申請人:中山市永衡日用製品有限公司