新四季網

機頂盒軟體空中升級數據下載的方法

2023-05-04 21:45:16 3

專利名稱:機頂盒軟體空中升級數據下載的方法
技術領域:
本發明涉及機頂盒的維護方法,尤其涉及機頂盒的軟體升級的方法。
背景技術:
數字機頂盒是典型嵌入式產品中的一種,幾乎所有的嵌入式產品都會涉及到產品軟體升級的問題。不同的產品有可能不同的升級方式,參見圖1,機頂盒可以使用的升級方式有空中升級、串口升級、USB存儲設備升級以及機頂盒對機頂盒的升級等。其中的空中升級,是指前端通過相應的信道,如:DVB-S (Digital Video Broadcast-Satellite,衛星數字視頻廣播)使用衛星發射無線電波、DVB-C (Digital Video Broadcast-Cable,有線數字視頻廣播)採用線纜傳輸信號等,將升級數據發送到終端設備,也就是機頂盒。終端設備接收並解析數據,校驗確認數據被完整接收到後,更新軟體到新的版本。對於機頂盒來說,空中升級功能是在產品投放市場之前必須具備的基本功能之一,在機頂盒的軟體升級的過程中,主要的時間開銷在於下載數據和擦寫Flash存儲器。下載數據主要涉及到傳輸流解復用過程。在數字機頂盒技術中,是將視頻信息、音頻信息、控制狀態信息等在模擬世界時連續的信息轉換成數字信息之後被拆分成一小塊一小塊然後再將這些小塊的數據打包成TS (Transport Stream,傳輸流)包。每一個TS包的大小固定為188個字節,每一個包都會有一個13位的身份編號,稱為PID (PacketIdentifier,包識別碼)。另外還有表識別碼TablelD、擴展表識別碼TableID_Ext和數據段編號Section Number等,這幾個參數通常用來做為篩選數據的條件。在機頂盒軟體空中升級中,通常是將升級文件拆分成若干個TS包,每個TS包都使用同一個PID和同一個TablelD。在機頂盒的DEMUX (Demultiplex 解復用)模塊只要設置了這兩個值就可以正確獲取到所有的升級數據。根據傳輸流的傳輸特點:數據循環輪播,也就是說,錯過了這一次還可以在下次同樣的數據到來的時候接收, 輪播的數據的最小單位是TS包。比TS包更上一級的傳輸單位是Section (數據段),一個Section最多為4096個字節。一個Section可以被分成若干個TS包。升級數據可以拆分成很多個Section,可以給每個Section進行編號
。如此,在升級傳輸流文件中,每一個Section都有一個統一的PID和TablelD。根據DEMUX的特點,如果設置的篩選條件只有PID和TableID的話,那麼每個Section將被隨機的接收,而如果將Section的編號也做為數據篩選條件的話,那麼DEMUX就會接收到這個完整的Section數據。但是由於數據包是採用循環輪播的方式,如果指定接收某個Section的話,那就會需要一定的隨機等待時間。假設:升級文件被拆分成2000個數據塊Section,任意接收一個Section的時間為0.01秒,即每秒可以接收到100個Section,那麼每個Section的平均等待時間為20秒。實際應用中,通過DEMUX中所採用的一些技術,實際每個Section的等待時間大約為2-3秒,那麼升級文件的全部接收完成需要2000*2=4000秒,超過I小時。由於在升級的過程中機頂盒不能播放電視節目,因此該過程要求以儘可能短的時間完成,現在通常要求控制在數分鐘以內。可見,實有必要對現有的空中升級的數據下載速度進行優化。

發明內容
本發明要解決的技術問題在於克服上述現有技術存在的不足,而提出一種機頂盒軟體空中升級數據下載的方法,可以有效地優化升級數據下載速度。本發明針對上述技術問題而提出的技術方案包括,提出一種機頂盒軟體空中升級數據下載的方法,包括:將升級數據組合成一文件,將該文件在邏輯上切分為若干個數據塊,將這些數據塊連續編號,並將有關該文件的描述信息封裝到起始塊中;將各數據塊分別對應於一個數據段,並 使數據段的擴展表ID號及段號與數據塊的編號相對應;將該升級數據以數據段的形式傳輸;從數據流中捕獲到對應於起始塊的數據段,通過解析起始塊中的塊描述信息,獲取數據總長度和塊的總數;以數據段的形式解析各數據塊,直至所有的數據塊接收完成。所述的以數據段的形式解析各數據塊,直至所有的數據塊接收完成的過程,具體包括:依數據塊的編號次序,一塊一塊地解析各數據塊,直至所有的數據塊接收完成的過程,以實現數據塊的順序接收。所述的以數據段的形式解析各數據塊,直至所有的數據塊接收完成的過程,具體包括:創建一個數組來記錄每個數據塊的接收情況,該數組的長度與升級數據的塊的總數相等,數組的每個元素對應一個數據塊,每個元素的值可用以標記該元素所對應的數據塊是否已經接收完成,以實現數據塊的隨機接收。每個元素均是以I表示數據塊已經接收完成並以O表示數據塊未接收完成的。如果在接收到一些數據塊之後重複出現已經接收完成的數據塊的情形,則重置數據塊的編號,使其從頭開始,依數據塊的編號次序,一塊一塊地解析各數據塊,直至所有的、先前未接收完成的數據塊全部接收完成,以實現數據塊的順序接收。所述的將這些數據塊連續編號的過程,具體包括:按
的順序進行數據塊的編號,所述的起始塊對應編號為0,起始塊之外的各數據塊為[1,2,3,…N]。所述的使數據段的擴展表ID號及段號與數據塊的編號相對應,具體包括:數據段的擴展表ID號=數據塊的編號/256,數據段的段號=數據塊的編號%256。所述的從數據流中捕獲到對應於起始塊的數據段的過程,具體包括:將針對數據段的篩選器的擴展表ID號項設置為O。起始塊之外的各數據塊的接收完成,具體包括:將針對數據段的篩選器的擴展表ID號項設置為數據塊所對應的數據段的擴展表ID號,將針對數據段的篩選器的數據段的段號項設置為數據塊所對應的數據段的段號。每個數據塊的大小是可設置的,每個數據塊的最大值不超過一個數據段的最大值。與現有技術相比,本發明的機頂盒軟體空中升級數據下載的方法,通過將升級數據進行邏輯分塊並對分塊賦予連續編號,可以有效地優化升級數據下載速度。


圖1是機頂盒軟體空中升級的流程示意。
圖2是本發明的機頂盒軟體空中升級數據下載的方法第一實施例的流程示意。圖3a和圖3b是本發明的機頂盒軟體空中升級數據下載的方法第二實施例的流程示意,其中,圖3a是主流程,圖3b是分支流程。
具體實施例方式以下結合附圖,以機頂盒為例,對本發明予以進一步地詳盡闡述。本發明的構思是:將升級數據組合成一文件,將該文件在邏輯上切分為若干個數據塊,將這些數據塊連續編號,並將有關該文件的描述信息封裝到起始塊中;將各數據塊分別對應於一個數據段,並使數據段的擴展表ID號及段號與數據塊的編號相對應;將該升級數據以數據段的形式傳輸;從數據流中捕獲到對應於起始塊的數據段,通過解析起始塊中的塊描述信息,獲取數據總長度和塊的總數;以數據段的形式解析各數據塊,直至所有的數據塊接收完成。本發明,引入了一個數據塊Block的概念:把需要升級的程序文件使用一個PC工具打包成一個文件,然後將這一個文件在邏輯上切分成若干個數據塊,每個數據塊的大小可以設置。並且將這些數據塊進行連續的編號
,並且定義塊號為O的塊為該文件的一些描述信息,比如:文件的長度、每一個塊的大小、總的塊數、文件校驗和等。先接收到編號為O的數據塊。然後根據該數據塊的解析結果繼續接收後面的數據。要篩選出來編號為O的數據塊可以設置擴展表ID即TableID_Ext為O。剩餘的數據TableID_Ext為I到65535,而Section Number為O到255循環。也即:塊號為I的時候,TableID_Ext 值為 1、Section Number 為 O ;塊號為 2 的時候,TableID_Ext 為 1、SectionNumber為I ;塊號為3的時候,TableID_Ext為l、Section Number為2 ;塊號為256的時候,TableID_Ext 為 USection Number 為 255 ;塊號為 257 的時候,TableID_Ext 為 2、SectionNumber為O ;塊號為258的時候,TableID_Ext為2、Section Number為I ;因此總共可以編號的數據塊數目為65535*256=16776960,而一個塊的最大值為一個Section的最大值:4096個字節。這樣可以被拆分的文件的最大容量為16776960*4096=68718428160個字節,顯然目前根本不可能有這麼大的文件做為升級文件。解包是數據打包的逆過程,只要解析出這個隨機接收到的Section的TableID_Ext和Section Number的值,就可以計算出該Section是文件中的第幾塊數據。根據這個索引再結合對數據塊O的解析中數據塊的大小,就可以將該數據塊拷貝到目標內存數據的相應位置。同時在此之前,根據對數據塊O的解析可以知道總的塊數,可以創建一個總塊數大小的數組,用該數組的每個元素的值表示該數據塊是否已經接收完成,如果為O表示沒有接收,如果為I表示已經接收,所以每接收到一個完整的數據塊,只需要簡單地將一個數組元素賦值為I即可,同時將記錄已經接收到數據塊的總數加I。這樣就可以通過比較已經接收到數據塊的總數和對數據塊O的解析得到總的塊數的數目進行一個大小比較以判斷是否接收完成。與此同時,可以通過遍歷前面的接收狀態數組就獲悉有哪些數據塊沒有接收到。綜上,本發明的機頂盒軟體空中升級數據下載的方法具有以下幾個特點。1、使用一個數組來記錄每一個數據塊的接收情況,在接收前將所有的數組值設置為0,當某個數據塊成功接收之後,將其對應的數組元素的值設置為1,因此在後續的任意時段可以通過查詢該數組元素的值就可以知道某個數據塊是否已經接收,也可以通過遍歷該數組對未接收到的數據塊重新接收。2、進一步地,可以由順序接收Section變為隨機接收,隨機接收的實現原理是升級文件從頭至尾被拆分為編號連續的數據塊。因為每個數據塊的大小為一個確定的值,這樣根據接收到的數據塊的編號就可以知道該數據塊在文件中的位置,這樣就可以實現即使是隨機接收數據塊也可以還原文件的全部數據。3、如果由於碼流的播放速度或者DEMUX的驅動的原因不能夠一次性全部接收完所有的數據塊,也就是在所有的數據塊接收完成之前有已經接收過的數據塊再次被接收至IJ。那麼就通過遍歷上述的數組,對沒有接收到的Section進行針對於特定數據塊的接收處理。參見圖2,本發明的機頂盒軟體空中升級數據下載的方法第一實施例,具體流程大致包括以下步驟:
5101:設置 Channel (通道)的 PID ;
5102:設置 Filter (篩選器)的 TableID ;
5103:設置 Filter 的 TableID_Ext=0,該 Section 為塊描述信息;
5104:解析塊描述信息,獲取數據總長度和塊的總數Total ;
S105:依數據塊的編號次序,一塊一塊地解析各數據塊,直至所有的數據塊接收完成的過程,以實現數據塊的順序接收。

其中,步驟S105可進一步細分為以下子步驟:
51051:判斷當前接收的數據塊的塊號BlockNo是否〈Total ,是的話,轉S1052,否則,轉 S1054 ;
51052:設置 Filter 的 TableId_Ext=BlockNo/256,
Filter 的 SectionNum=BlockNo%256 ;
51053:解析 Section 數據,然後 BlockNo 加 1,返回 S1051 ;
51054:所有數據接收完成,結束。參見圖3a和圖3b,本發明的機頂盒軟體空中升級數據下載的方法第二實施例,具體流程大致包括以下步驟:
5201:設置 Channel 的 PID ;
5202:設置 Filter 的 TableID ;
5203:設置 Filter 的 TableID_Ext=0,該 Section 為塊描述信息;
5204:解析塊描述信息,獲取數據總長度和塊的總數Total ;
5205:只設置 Channel 的 PID 和 Filter 中的 TableId ;
5206:通過一個數組來記錄每個數據塊的接收情況,該數組的長度與升級數據的塊的總數相等,數組的每個元素對應一個數據塊,每個元素的值可用以標記該元素所對應的數據塊是否已經接收完成,以實現數據塊的隨機接收;
5207:當出現接收重複時,即出現ReCe[Bl0CkN0]=l的情形時,數據塊的編號,使其從頭開始,也就是=BlockNo從I開始直到等於Total,依數據塊的編號次序,一塊一塊地解析各數據塊,直至所有的、先前未接收完成的數據塊全部接收完成,以實現數據塊的順序接收,需要說明的是,期間遇到先前已經接收完成的數據塊時,是可以直接跳過、無須再次接收的。
需要說明的是,如果實際應用中每次隨機接收到的Section都不會重複,直到全部接收完成,那麼就只需要進行上述的圖3a所示的主流程。但是實際測試可以發現:當接收到一定數據的Section之後,就會出現重複接收到前面已經接收過的Section的現象,出現重複接收的時間和碼流的播放速度和DEMUX模塊的驅動有關,由於這部分內容與本發明的相關性不大,在此不予進一步展開論述。針對於這種現象,本發明相應地提出了一種均衡的解決辦法,也就是,圖3b所示的分支流程,對應於上述的步驟S207。其中,步驟S206可進一步細分為以下子步驟:
52061:判斷當前已接收的數據塊數量ReceivedBlockNum是否〈Total ,是的話,,轉S2062,否則,轉 S2065 ;
52062:解析數據 BlockNo = (TableID_Ext_l) *256 +SectionNo ;
52063:判斷當前接收的數據塊是否已經存在ReCe[Bl0CkN0]==l ,是的話,轉分支B,也就是步驟S207,否則,轉S2064 ;
52064:該數據塊是新接收的,Rece [BlockNo] =1,ReceivedBlockNum 加 I,返回 S2061 ;
52065:所有數據接收完成,結束。其中,步驟 S207可進一步細分為以下子步驟:
52071:重置BlockNo,使其從頭開始;
52072:判斷是否同時滿足Rece[BlockNo]==0並且BlockNo〈Total ,是的話,轉S20732,否則,轉 S2075 ;
52073:設置 Filter 的 TableId_Ext=BlockNo/256,
Filter 的 SectionNum=BlockNo%256 ;
52074:解析 Section 數據,然後 BlockNo 加 1,返回 S2072 ;
52075:所有數據接收完成,結束。與現有技術相比,本發明的機頂盒軟體空中升級數據下載的方法,通過引入數據塊及相應的管理辦法,可以使各個數據段的接收過程獨立,進一步地,通過設置數組來對數據塊的接收狀態進行管理,可以使數據段的接收由順序轉換為隨機,從而能夠有效地實現升級數據下載速度的優化。上述內容,僅為本發明的較佳實施例,並非用於限制本發明的實施方案,本領域普通技術人員根據本發明的主要構思和精神,可以十分方便地進行相應的變通或修改,故本發明的保護範圍應以權利要求書所要求的保護範圍為準。
權利要求
1.一種機頂盒軟體空中升級數據下載的方法,其特徵在於,包括: 將升級數據組合成一文件,將該文件在邏輯上切分為若干個數據塊,將這些數據塊連續編號,並將有關該文件的描述信息封裝到起始塊中;將各數據塊分別對應於一個數據段,並使數據段的擴展表ID號及段號與數據塊的編號相對應;將該升級數據以數據段的形式傳輸; 從數據流中捕獲到對應於起始塊的數據段,通過解析起始塊中的塊描述信息,獲取數據總長度和塊的總數;以數據段的形式解析各數據塊,直至所有的數據塊接收完成。
2.依據權利要求1所述的方法,其特徵在於,所述的以數據段的形式解析各數據塊,直至所有的數據塊接收完成的過程,具體包括: 依數據塊的編號次序,一塊一塊地解析各數據塊,直至所有的數據塊接收完成的過程,以實現數據塊的順序接收。
3.依據權利要求1所述的方法,其特徵在於,所述的以數據段的形式解析各數據塊,直至所有的數據塊接收完成的過程,具體包括: 創建一個數組來記錄每個數據塊的接收情況,該數組的長度與升級數據的塊的總數相等,數組的每個元素對應一個數據塊,每個元素的值可用以標記該元素所對應的數據塊是否已經接收完成,以實現數據塊的隨機接收。
4.依據權利要求3所述的方法,其特徵在於,每個元素均是以I表示數據塊已經接收完成並以O表示數據塊未接收完成的。
5.依據權利要求3所述的方法,其特徵在於,如果在接收到一些數據塊之後重複出現已經接收完成的數據塊的情形,則重置數據塊的編號,使其從頭開始,依數據塊的編號次序,一塊一塊地解析各數據 塊,直至所有的、先前未接收完成的數據塊全部接收完成,以實現數據塊的順序接收。
6.依據權利要求1所述的方法,其特徵在於,所述的將這些數據塊連續編號的過程,具體包括: 按[O,I, 2,3,…N]的順序進行數據塊的編號,所述的起始塊對應編號為O,起始塊之外的各數據塊為[1,2,3,…N]。
7.依據權利要求6所述的方法,其特徵在於,所述的使數據段的擴展表ID號及段號與數據塊的編號相對應,具體包括: 數據段的擴展表ID號=數據塊的編號/256,數據段的段號=數據塊的編號%256。
8.依據權利要求7所述的方法,其特徵在於,所述的從數據流中捕獲到對應於起始塊的數據段的過程,具體包括:將針對數據段的篩選器的擴展表ID號項設置為O。
9.依據權利要求7所述的方法,其特徵在於,起始塊之外的各數據塊的接收完成,具體包括:將針對數據段的篩選器的擴展表ID號項設置為數據塊所對應的數據段的擴展表ID號,將針對數據段的篩選器的數據段的段號項設置為數據塊所對應的數據段的段號。
10.依據權利要求1至9任一所述的方法,其特徵在於,每個數據塊的大小是可設置的,每個數據塊的最大值不超過一個數據段的最大值。
全文摘要
一種機頂盒軟體空中升級數據下載的方法,包括將升級數據組合成一文件,將該文件在邏輯上切分為若干個數據塊,將這些數據塊連續編號,並將有關該文件的描述信息封裝到起始塊中;將各數據塊分別對應於一個數據段,並使數據段的擴展表ID號及段號與數據塊的編號相對應;將該升級數據以數據段的形式傳輸;從數據流中捕獲到對應於起始塊的數據段,通過解析起始塊中的塊描述信息,獲取數據總長度和塊的總數;以數據段的形式解析各數據塊,直至所有的數據塊接收完成。本發明可以有效地優化升級數據下載速度。
文檔編號G06F9/445GK103167348SQ20111041405
公開日2013年6月19日 申請日期2011年12月13日 優先權日2011年12月13日
發明者劉光勇 申請人:深圳長城開發科技股份有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀