一種機頂盒軟件升級的方法和系統(tǒng)的制作方法
【專利摘要】本發(fā)明實施例提供的一種機頂盒軟件升級的方法,包括:當(dāng)所述機頂盒中當(dāng)前運行的軟件需要進行升級時,解析與所述軟件的當(dāng)前運行狀態(tài)相對應(yīng)的升級標志,得到所述軟件的升級方式;依據(jù)所述升級方式執(zhí)行與所述升級方式相對應(yīng)的通訊協(xié)議獲取所述軟件升級所需的升級信息文件;依據(jù)所述升級信息文件對所述機頂盒中當(dāng)前運行的軟件進行升級。采用本申請的一種機頂盒軟件升級的方法和系統(tǒng),通過統(tǒng)一格式的升級信息文件簡化了當(dāng)Loader集成兩種及以上升級方式時的升級方法和升級系統(tǒng)。
【專利說明】一種機頂盒軟件升級的方法和系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于機頂盒領(lǐng)域,尤其涉及一種機頂盒軟件升級的方法和系統(tǒng)。
【背景技術(shù)】
[0002]數(shù)字視頻變換盒(set-top box, STB),通常稱作機頂盒,是一個連接電視機與外部信號源的設(shè)備。
[0003]機頂盒作為一個嵌入式計算機系統(tǒng),軟件在其中起到了重要的作用。為了適應(yīng)新業(yè)務(wù)的不斷增加和技術(shù)更新,也為了讓用戶及時享受新服務(wù)、感受新技術(shù),對機頂盒軟件進行升級顯得尤其重要,一般采用通過載入器(Loader )對機頂盒軟件進行升級。
[0004]現(xiàn)有的機頂盒軟件升級從升級類型劃分,可分為以下4種方式:
[0005](l)、Cable升級,是指通過有線電視網(wǎng)將升級信息文件打包成TS流傳送到用戶機頂盒,機頂盒Cable升級程序從TS流中獲取升級信息、比對查看是否符合升級條件、下載并解析數(shù)據(jù)、對數(shù)據(jù)的有效性進行驗證、將有效數(shù)據(jù)寫到Flash上、更新版本信息,完成軟件升級;
[0006](2)、USB升級,是指將升級信息文件放在USB存儲設(shè)備,機頂盒USB升級程序檢測、加載USB設(shè)備、獲取升級信息,后續(xù)類同Cable升級;
[0007](3)、串口升級,是指用戶機頂盒通過串口線與電腦主機連接,通過串口握手協(xié)議將升級信息文件傳給機頂盒串口升級程序,后續(xù)類同Cable升級;
[0008](4)、IP升級,是指將升級文件放在升級服務(wù)器上,機頂盒IP升級程序根據(jù)應(yīng)用層配置的IP地址或DHCP (Dynamic Host Configuration Protocol,動態(tài)主機設(shè)置協(xié)議)方式自動獲取的IP地址,去連接指定的升級服務(wù)器地址,連接成功后利用指定的協(xié)議(TFTP、FTP、HTTP)從升級服務(wù)器上得到升級信息文件,后續(xù)類同Cable升級。
[0009]由上述可知,每種升級方式都需要使用專用的Loader工具按照相關(guān)協(xié)議下載專用的升級信息文件,機頂盒升級程序根據(jù)該協(xié)議解析升級文件、下載數(shù)據(jù)、寫入Flash并更新版本信息。每種升級方式都各自定義了一套升級格式,每種升級格式對應(yīng)的升級信息文件不同,升級軟件時,需要設(shè)置與升級方式相對應(yīng)的升級模塊,每種升級方式的升級模塊不同。當(dāng)Loader集成兩種及以上的升級方式時,軟件的升級系統(tǒng)中需要分別設(shè)置與升級方式對應(yīng)的升級模塊,使得升級系統(tǒng)復(fù)雜。
【發(fā)明內(nèi)容】
[0010]有鑒于此,本申請?zhí)峁┮环N機頂盒軟件升級的方法和系統(tǒng),通過統(tǒng)一格式的升級信息文件,簡化了當(dāng)Loader集成兩種及以上升級方式時的升級系統(tǒng)。
[0011]一種機頂盒軟件升級的方法,包括:
[0012]當(dāng)所述機頂盒中當(dāng)前運行的軟件需要進行升級時,解析與所述軟件的當(dāng)前運行狀態(tài)相對應(yīng)的升級標志,得到所述軟件的升級方式;
[0013]依據(jù)所述升級方式執(zhí)行與所述升級方式相對應(yīng)的通訊協(xié)議獲取所述軟件升級所需的升級信息文件;
[0014]依據(jù)所述升級信息文件對所述機頂盒中當(dāng)前運行的軟件進行升級。
[0015]上述的方法,優(yōu)選的,所述依據(jù)所述升級信息文件對所述機頂盒中當(dāng)前運行的軟件進行升級包括:
[0016]判斷所述升級信息文件是否滿足預(yù)設(shè)的升級信息文件格式,當(dāng)滿足時,依據(jù)所述升級信息文件對所述機頂盒中當(dāng)前運行的軟件進行升級。
[0017]上述的方法,優(yōu)選的,所述預(yù)設(shè)的升級信息文件格式包括:文件頭、升級數(shù)據(jù)和至少一個索引表;
[0018]所述文件頭包括升級信息文件的基本屬性信息;
[0019]所述索引表包括與所述索引表對應(yīng)的需要升級的軟件的模塊的屬性信息,以及與所述索引表相對應(yīng)的升級數(shù)據(jù)的屬性信息。
[0020]上述的方法,優(yōu)選的,所述依據(jù)所述升級信息文件對所述機頂盒中當(dāng)前運行的軟件進行升級包括:
[0021]當(dāng)依據(jù)所述文件頭判定所述升級信息文件滿足預(yù)設(shè)的升級條件時,依據(jù)任一索引表中的信息獲取與所述索引表相對應(yīng)的升級數(shù)據(jù);
[0022]依據(jù)與所述索引表相對應(yīng)的升級數(shù)據(jù)對所述索引表對應(yīng)的軟件的模塊進行升級。
[0023]上述的方法,優(yōu)選的,還包括:
[0024]升級完成后,對所述升級標志的內(nèi)容進行清除。
[0025]一種機頂盒軟件升級的系統(tǒng),包括:
[0026]分析模塊,用于當(dāng)所述機頂盒中當(dāng)前運行的軟件需要進行升級時,解析與所述軟件的當(dāng)前運行狀態(tài)相對應(yīng)的升級標志,得到所述軟件的升級方式;
[0027]獲取模塊,用于依據(jù)所述升級方式執(zhí)行與所述升級方式相對應(yīng)的通訊協(xié)議獲取所述軟件升級所需的升級信息文件;
[0028]升級模塊,用于依據(jù)所述升級信息文件對所述機頂盒中當(dāng)前運行的軟件進行升級。
[0029]上述的系統(tǒng),優(yōu)選的,所述升級模塊包括:
[0030]第一判斷子模塊,用于判斷所述升級信息文件是否滿足預(yù)設(shè)的升級信息文件格式。
[0031]上述的系統(tǒng),優(yōu)選的,所述升級模塊還包括:
[0032]第二判斷子模塊,用于依據(jù)所述文件頭判斷所述升級信息文件是否滿足預(yù)設(shè)的升級條件。
[0033]本發(fā)明實施例提供的一種機頂盒軟件升級的方法,包括:當(dāng)所述機頂盒中當(dāng)前運行的軟件需要進行升級時,解析與所述軟件的當(dāng)前運行狀態(tài)相對應(yīng)的升級標志,得到所述軟件的升級方式;依據(jù)所述升級方式執(zhí)行與所述升級方式相對應(yīng)的通訊協(xié)議獲取所述軟件升級所需的升級信息文件;依據(jù)所述升級信息文件對所述機頂盒中當(dāng)前運行的軟件進行升級。采用本申請的一種機頂盒軟件升級的方法和系統(tǒng),通過統(tǒng)一格式的升級信息文件簡化了當(dāng)Loader集成兩種及以上升級方式時的升級方法和升級系統(tǒng)。
【專利附圖】
【附圖說明】[0034]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0035]圖1是本申請一種機頂盒軟件升級的方法實施例1的流程圖;
[0036]圖2是本申請一種機頂盒軟件升級的方法中升級信息文件格式圖;
[0037]圖3是本申請一種機頂盒軟件升級的方法實施例1的一具體流程圖;
[0038]圖4是本申請一種機頂盒軟件升級的方法實施例2的流程圖;
[0039]圖5是本申請一種機頂盒軟化升級的系統(tǒng)實施例1的結(jié)構(gòu)示意圖;
[0040]圖6是本申請一種機頂盒軟化升級的系統(tǒng)實施例1的一具體結(jié)構(gòu)示意圖。
【具體實施方式】
[0041]為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0042]本申請是基于NAND Flash方案的Linux平臺,實現(xiàn)了用于一次升級的所有的升級信息全部集中在一個升級信息文件中。
[0043]本申請?zhí)峁┑囊环N機頂盒軟件升級的方法中,統(tǒng)一格式的升級信息文件是在生成升級信息文件的過程中,通過升級文件工具軟件調(diào)用統(tǒng)一的API函數(shù)將對應(yīng)軟件需要升級的模塊的數(shù)據(jù)加上索引和文件頭生成統(tǒng)一格式的升級文件.suf,獲取得到的升級信息文件就是該統(tǒng)一格式的升級文件.SUf0
[0044]參見圖1,示出了本申請一種機頂盒軟件升級的方法實施例1的流程圖,包括:
[0045]步驟SlOl:當(dāng)所述機頂盒中當(dāng)前運行的軟件需要進行升級時,解析與所述軟件的當(dāng)前運行狀態(tài)相對應(yīng)的升級標志,得到所述軟件的升級方式;
[0046]在Flash中專門設(shè)置有存儲升級標志的存儲空間。
[0047]當(dāng)機頂盒中當(dāng)前運行正在運行的軟件需要進行升級時,解析與該軟件當(dāng)前運行狀態(tài)相對應(yīng)的升級標志,得到該軟件的升級方式。
[0048]軟件的升級方式包括:Cable升級、IP升級、USB升級和串口升級等方式。
[0049]步驟S102:依據(jù)所述升級方式執(zhí)行與所述升級方式相對應(yīng)的通訊協(xié)議獲取所述軟件升級所需的升級信息文件;
[0050]依據(jù)與所述軟件的當(dāng)前運行狀態(tài)相對應(yīng)的升級標志,得到所述軟件的升級方式后,啟動與該升級方式相對應(yīng)的通訊協(xié)議,執(zhí)行該通訊協(xié)議獲取所述軟件升級所需的升級信息文件。
[0051]具體包括:
[0052]當(dāng)所述升級方式為Cable升級時,通過與所述機頂盒相連的有線電視網(wǎng)的TS獲取所述軟件的升級信息文件;
[0053]當(dāng)所述升級方式為USB升級時,通過USB接口獲取USB設(shè)備中的所述軟件的升級信息文件;[0054]當(dāng)所述升級方式為串口升級時,通過所述機頂盒的串口線設(shè)置的串口握手協(xié)議獲取電腦主機中的所述軟件的升級信息文件;
[0055]當(dāng)所述升級方式為IP升級時,自動獲取所述機頂盒的IP地址,連接指定的升級服務(wù)器地址,連接成功后利用預(yù)設(shè)的協(xié)議從升級服務(wù)器上獲取所述軟件的升級信息文件。
[0056]增加一種升級方式,只需增加相應(yīng)的通訊協(xié)議即可。
[0057]步驟S103:依據(jù)所述升級信息文件對所述機頂盒中當(dāng)前運行的軟件進行升級。
[0058]獲取得到升級信息文件,判斷所述升級信息文件是否滿足預(yù)設(shè)的升級信息文件格式,當(dāng)滿足時,依據(jù)所述升級信息文件對所述機頂盒中當(dāng)前運行的軟件進行升級。
[0059]與獲取的方式無關(guān),每個升級信息文件都應(yīng)該是滿足預(yù)設(shè)的升級信息文件格式的,當(dāng)獲取的升級信息文件滿足上述的預(yù)設(shè)的升級信息時,說明該升級信息文件是正確的,采用后續(xù)的步驟依據(jù)文件中的信息進行軟件升級;當(dāng)不滿足時,說明數(shù)據(jù)傳輸錯誤或是數(shù)據(jù)源產(chǎn)生了錯誤,再進行后續(xù)的升級步驟已沒有意義,結(jié)束升級。
[0060]參見圖2示出的升級信息文件的格式,包括:文件頭、升級數(shù)據(jù)和至少一個索引表。
[0061]所述文件頭包括升級信息文件的基本屬性信息,包括以下字段:
[0062](11)文件標志:4字節(jié),使用文件后綴,表明文件類型;
[0063]本申請的實施例中采用的是.suf四個字母的ASCII碼。
[0064]升級信息文件采用統(tǒng)一的文件后綴,不管硬件是什么的Flash,升級信息文件的后綴都是統(tǒng)一的。
[0065]該suf為Startimes Upgrade Format的首字母,實際實施中也可為其他字母。
[0066](12)文件版本:4字節(jié),表示升級文件版本號,即升級信息文件實現(xiàn)庫版本;
[0067]比如為1.0.0.0。
[0068](13)文件大小:4字節(jié),表示升級文件整個大小;
[0069]升級文件最大可為4G。
[0070](14) CRC 32 (Cyclical Redundancy Check,循環(huán)冗余碼校驗):4 字節(jié),表示升級文件除文件頭外數(shù)據(jù)CRC32驗證碼,即包括索引表和升級數(shù)據(jù);
[0071]CRC32檢驗保證整個文件數(shù)據(jù)正確,以及每個需要升級的模塊的數(shù)據(jù)的完整。
[0072](15)廠家代碼:2字節(jié),表示廠家代碼;
[0073]最多65536個廠家。
[0074](16)升級個數(shù):2字節(jié),表示需要升級的模塊數(shù)量或者是需要升級的文件數(shù)量,最多65536個;
[0075](17)硬件版本:4字節(jié),表示需要進行升級的終端設(shè)備硬件版本號;
[0076](18)軟件版本:4字節(jié),表示需要進行升級的終端設(shè)備軟件版本號;
[0077](19)設(shè)備序列號:8字節(jié),前四位表示開始序列號,后四位表示結(jié)束序列號;
[0078](20)下載日期:4字節(jié),表示升級文件制作日期。
[0079]當(dāng)所述升級信息文件頭滿足上述的升級信息文件格式時,依據(jù)所述升級信息文件對所述機頂盒中當(dāng)前運行的軟件進行升級,參見圖3所示的具體流程圖,本步驟包括:
[0080]步驟S201:當(dāng)依據(jù)所述文件頭判定所述升級信息文件滿足預(yù)設(shè)的升級條件時,依據(jù)任一索引表中的信息獲取與所述索引表相對應(yīng)的升級數(shù)據(jù);[0081]首先需要對升級信息文件進行解析,該解析過程是通過與之前生成統(tǒng)一格式升級信息文件的API函數(shù)相對應(yīng)的解析函數(shù)完成的,解析完成后,就能得到該統(tǒng)一格式的升級信息文件中包括的數(shù)據(jù)內(nèi)容,包括:文件頭、索引表和升級數(shù)據(jù)。
[0082]預(yù)設(shè)的升級條件包括:升級信息文件的類型必須為指定類型,升級信息文件的文件頭信息和機頂盒Flash固化的相關(guān)信息相比較,二者的廠家代碼、硬件版本、軟件版本和設(shè)備序列號相同,且所示升級信息文件的文件版本高于所述機頂盒當(dāng)前運行的軟件的文件版本。即,在升級信息文件類型符合要求的前提下,二者的文件類型、生產(chǎn)廠家、硬件版本等是相同的,而升級信息文件的文件版本高于所述機頂盒當(dāng)前運行的軟件的文件版本。
[0083]CRC32中包含有該升級信息文件的索引表和升級數(shù)據(jù)。
[0084]索引表包括對應(yīng)的需要升級的模塊的屬性信息及與所述升級模塊相對應(yīng)的升級數(shù)據(jù)的屬性信息,包含與文件頭中“升級個數(shù)”中標定數(shù)目的索引項。
[0085]每個索引表包括以下字段:
[0086](21)偏移量:4字節(jié),表不對應(yīng)數(shù)據(jù)相對升級文件開始的偏移量;
[0087](22) Flash類型:2字節(jié),表示升級數(shù)據(jù)的Flash類型;
[0088]實際應(yīng)用中,可設(shè)置O表示NOR Flash,I表示NAND Flash,2表示SPI Flash,也可為其他組合方式,支持所有Flash類型。
[0089](23)升級模塊標識,2字節(jié),表示需要升級哪個模塊;
[0090]需要升級的模塊可為開機畫面、應(yīng)用程序、Loader、U-B00T、kernel、文件系統(tǒng)等軟件中的一個或多個組成部分。
[0091](24)數(shù)據(jù)大小:4字節(jié),表示該索引表對應(yīng)的數(shù)據(jù)的大小。
[0092]各個索引表中數(shù)據(jù)大小之和為文件頭中的文件大小。
[0093]每個索引表對應(yīng)一個軟件的模塊,該模塊需要進行升級。
[0094]依據(jù)索引表中的偏移量字段,得到該索引表對應(yīng)的升級數(shù)據(jù)相對所述升級信息文件開始的偏移量,即該索引表對應(yīng)的升級數(shù)據(jù)的位置;
[0095]依據(jù)索引表中升級模塊標志,得到需要進行升級的模塊。
[0096]步驟S202:依據(jù)與所述索引表相對應(yīng)的升級數(shù)據(jù)對所述索引表對應(yīng)的軟件的模塊進行升級。
[0097]依據(jù)所述索引表對應(yīng)的數(shù)據(jù)的位置,得到與該索引表對應(yīng)的升級的模塊需要的升級數(shù)據(jù),將所述升級數(shù)據(jù)寫入與該索引表對應(yīng)的Flash中,完成對該升級的模塊進行升級。
[0098]依次對索引表對應(yīng)的升級的模塊進行升級。
[0099]實際實施中,當(dāng)機頂盒中運行的軟件中的某個模塊需要更新時,可采用本地升級或是自動升級進行升級。
[0100]本地升級:依據(jù)用戶的選擇開啟相應(yīng)的升級方式,同時相應(yīng)的更新升級標志,準備升級。
[0101]自動升級:前端發(fā)送事先定義好的鏈接描述符,機頂盒端解析此鏈接描述符,當(dāng)該鏈接描述符符合該機頂盒的要求時,更新升級標志,準備升級。
[0102]比如,當(dāng)廣播電視局中通過有線電視網(wǎng)或IP網(wǎng)將存在升級信息文件的鏈接描述符傳輸給有線電視用戶的機頂盒,機頂盒在接收電視節(jié)目信號時也接收到該信息提示,當(dāng)某一機頂盒依據(jù)該信息提示中攜帶的該升級信息文件的基礎(chǔ)信息判定符合本機頂盒的軟件時,更改升級標志為需要更新。所述升級信息文件的信息提示包括:廠家代碼、硬件版本、軟件版本、設(shè)備序列號等,當(dāng)接受到該升級信息文件的信息提示的機頂盒與該信息提示相符合時,可確定該升級信息文件為該機頂盒的可用的,可對該機頂盒內(nèi)的軟件進行升級。
[0103]參見圖4,示出了本申請一種機頂盒軟件升級的方法實施例2的流程圖,本實施例是在實施例1的步驟S103之后還包括:
[0104]步驟S 104:升級完成后,對所述升級標志的內(nèi)容進行清除。
[0105]每次升級成功后,為了下次機頂盒軟件啟動時不再依據(jù)升級標志直接進入升級狀態(tài),對含有本次升級所對應(yīng)的升級方式的升級標志的內(nèi)容進行清除,下次啟動直接加載Kernel啟動應(yīng)用程序。
[0106]與上述的本申請一種機頂盒軟件升級的方法相對應(yīng),本申請還提供了一種機頂盒軟件升級的系統(tǒng)。
[0107]參見圖5,示出了本申請一種機頂盒軟件升級的系統(tǒng)實施例1的結(jié)構(gòu)示意圖,包括:分析模塊101、獲取模塊102和升級模塊103。
[0108]其中,所述分析模塊101,用于當(dāng)所述機頂盒中當(dāng)前運行的軟件需要進行升級時,解析與所述軟件的當(dāng)前運行狀態(tài)相對應(yīng)的升級標志,得到所述軟件的升級方式;
[0109]在Flash中專門設(shè)置有存儲升級標志的存儲空間。
[0110]當(dāng)機頂盒中當(dāng)前運行正在運行的軟件需要進行升級時,分析模塊101解析與該軟件當(dāng)前運行狀態(tài)相對應(yīng)的升級標志,得到該軟件的升級方式。
[0111]軟件的升級方式包括=Cable升級、IP升級、USB升級和串口升級等方式。
[0112]其中,所述獲取模塊102,用于依據(jù)所述升級方式執(zhí)行與所述升級方式相對應(yīng)的通訊協(xié)議獲取所述軟件升級所需的升級信息文件;
[0113]依據(jù)與所述軟件的當(dāng)前運行狀態(tài)相對應(yīng)的升級標志,得到所述軟件的升級方式后,獲取模塊102獲取該升級方式相對應(yīng)的升級路徑,依據(jù)該升級路徑獲取所述軟件升級所需的升級信息文件。
[0114]具體包括:
[0115]依據(jù)與所述軟件的當(dāng)前運行狀態(tài)相對應(yīng)的升級標志,得到所述軟件的升級方式后,啟動與該升級方式相對應(yīng)的通訊協(xié)議,執(zhí)行該通訊協(xié)議獲取所述軟件升級所需的升級信息文件。
[0116]具體包括:
[0117]當(dāng)所述升級方式為Cable升級時,獲取模塊102通過與所述機頂盒相連的有線電視網(wǎng)的TS獲取所述軟件的升級信息文件;
[0118]當(dāng)所述升級方式為USB升級時,獲取模塊102通過USB接口獲取USB設(shè)備中的所述軟件的升級信息文件;
[0119]當(dāng)所述升級方式為串口升級時,獲取模塊102通過所述機頂盒的串口線設(shè)置的串口握手協(xié)議獲取電腦主機中的所述軟件的升級信息文件;
[0120]當(dāng)所述升級方式為IP升級時,獲取模塊102自動獲取所述機頂盒的IP地址,連接指定的升級服務(wù)器地址,連接成功后利用預(yù)設(shè)的協(xié)議從升級服務(wù)器上獲取所述軟件的升級信息文件。
[0121]增加一種升級方式,獲取模塊中只需增加相應(yīng)的通訊協(xié)議,采用某種升級方式時,啟動獲取模塊中的相應(yīng)的通訊協(xié)議獲取升級信息文件。
[0122]其中,升級模塊103,用于依據(jù)所述升級信息文件對所述機頂盒中當(dāng)前運行的軟件進行升級。
[0123]獲取得到升級信息文件,首先需要對升級信息文件進行解析,該解析過程是通過與之前生成統(tǒng)一格式升級信息文件的API函數(shù)相對應(yīng)的解析函數(shù)完成的,解析完成后,就能得到該統(tǒng)一格式的升級信息文件中包括的數(shù)據(jù)內(nèi)容,包括:文件頭、索引表和升級數(shù)據(jù),升級模塊103對解析完成所述升級信息文件進行判斷,判斷是否滿足預(yù)設(shè)的升級信息文件格式,當(dāng)滿足時,依據(jù)所述升級信息文件對所述機頂盒中當(dāng)前運行的軟件進行升級。
[0124]參見圖6所示,所示升級模塊103包括:第一判斷子模塊1031和第二判斷子模塊1032。
[0125]其中,所述第一判斷子模塊1031,用于判斷所述升級信息文件是否滿足預(yù)設(shè)的升級信息文件格式;
[0126]與獲取的方式無關(guān),每個升級信息文件都應(yīng)該是滿足預(yù)設(shè)的升級信息文件格式的,當(dāng)獲取的升級信息文件滿足上述的預(yù)設(shè)的升級信息時,說明該升級信息文件是正確的,采用后續(xù)的步驟依據(jù)文件中的信息進行軟件升級;當(dāng)不滿足時,說明數(shù)據(jù)傳輸錯誤或是數(shù)據(jù)源產(chǎn)生了錯誤,再進行后續(xù)的升級步驟已沒有意義,結(jié)束升級。
[0127]參見圖2示出的升級信息文件的格式,包括:文件頭、升級數(shù)據(jù)和至少一個索引表。
[0128]所述文件頭包括升級信息文件的基本屬性信息,包括以下字段:
[0129](11)文件標志:4字節(jié),使用文件后綴,表明文件類型;
[0130]本申請的實施例中采用的是.suf四個字母的ASCII碼。
[0131]升級信息文件采用統(tǒng)一的文件后綴,不管硬件是什么的Flash,升級信息文件的后綴都是統(tǒng)一的。
[0132]該suf為Startimes Upgrade Format的首字母,實際實施中也可為其他字母。
[0133](12)文件版本:4字節(jié),表示升級文件版本號,即升級信息文件實現(xiàn)庫版本;
[0134]比如為1.0.0.0。
[0135](13)文件大小:4字節(jié),表示升級文件整個大小;
[0136]升級文件最大可為4G。
[0137](14) CRC 32 (Cyclical Redundancy Check,循環(huán)冗余碼校驗):4 字節(jié),表示升級文件除文件頭外數(shù)據(jù)CRC32驗證碼,即包括索引表和升級數(shù)據(jù);
[0138]CRC32檢驗保證整個文件數(shù)據(jù)正確,以及每個需要升級的模塊的數(shù)據(jù)的完整。
[0139](15)廠家代碼:2字節(jié),表示廠家代碼;
[0140]最多65536個廠家。
[0141](16)升級個數(shù):2字節(jié),表示需要升級的模塊數(shù)量或者是需要升級的文件數(shù)量,最多65536個;
[0142](17)硬件版本:4字節(jié),表示需要進行升級的終端設(shè)備硬件版本號;
[0143](18)軟件版本:4字節(jié),表示需要進行升級的終端設(shè)備軟件版本號;
[0144](19)設(shè)備序列號:8字節(jié),前四位表示開始序列號,后四位表示結(jié)束序列號;
[0145](20 )下載日期:4字節(jié),表示升級文件制作日期。[0146]當(dāng)所述升級信息文件頭滿足上述的升級信息文件格式時,依據(jù)所述升級信息文件對所述機頂盒中當(dāng)前運行的軟件進行升級。
[0147]其中,所述第二判斷子模塊1032,用于依據(jù)所述文件頭判斷所述升級信息文件是否滿足預(yù)設(shè)的升級條件。
[0148]預(yù)設(shè)的升級條件包括:升級信息文件的類型必須為指定類型,升級信息文件的文件頭信息和機頂盒Flash固化的相關(guān)信息相比較,二者的廠家代碼、硬件版本、軟件版本和設(shè)備序列號相同,且所示升級信息文件的文件版本高于所述機頂盒當(dāng)前運行的軟件的文件版本。即,在升級信息文件類型符合要求的前提下,二者的文件類型、生產(chǎn)廠家、硬件版本等是相同的,而升級信息文件的文件版本高于所述機頂盒當(dāng)前運行的軟件的文件版本。
[0149]CRC32中包含有該升級信息文件的索引表和升級數(shù)據(jù)。
[0150]索引表包括對應(yīng)的需要升級的模塊的屬性信息及與所述升級模塊相對應(yīng)的升級數(shù)據(jù)的屬性信息,包含與文件頭中“升級個數(shù)”中標定數(shù)目的索引項。
[0151]每個索引表包括以下字段:
[0152](21)偏移量:4字節(jié),表不對應(yīng)數(shù)據(jù)相對升級文件開始的偏移量;
[0153](22) Flash類型:2字節(jié),表示升級數(shù)據(jù)的Flash類型;
[0154]實際應(yīng)用中,可設(shè)置O表示NOR Flash,I表示NAND Flash,2表示SPI Flash,也可為其他組合方式,支持所有Flash類型。
[0155](23)升級模塊標識,2字節(jié),表示需要升級哪個模塊;
[0156]需要升級的模塊可為開機畫面、應(yīng)用程序、Loader、U-B00T、kernel、文件系統(tǒng)等軟件中的一個或多個組成部分。
[0157](24)數(shù)據(jù)大小:4字節(jié),表示該索引表對應(yīng)的數(shù)據(jù)的大小。
[0158]各個索引表中數(shù)據(jù)大小之和為文件頭中的文件大小。
[0159]每個索引表對應(yīng)一個軟件的模塊,該模塊需要進行升級。
[0160]依據(jù)索引表中的偏移量字段,能夠得到該索引表對應(yīng)的升級數(shù)據(jù)相對所述升級信息文件開始的偏移量,即該索引表對應(yīng)的升級數(shù)據(jù)的位置;
[0161]依據(jù)索引表中升級模塊標志,能夠得到需要進行升級的模塊。
[0162]升級模塊103依據(jù)所述索引表對應(yīng)的數(shù)據(jù)的位置,得到與該索引表對應(yīng)的升級的模塊需要的升級數(shù)據(jù),將所述升級數(shù)據(jù)寫入與該索引表對應(yīng)的Flash中,完成對該升級的模塊進行升級。
[0163]對所述軟件進行的升級包括依次對索引表對應(yīng)的升級的模塊進行升級。
[0164]實際實施中,機頂盒軟件升級的系統(tǒng)一般采用Loader。依據(jù)所述升級標志判定所述軟件需要升級時,啟動升級所需的系統(tǒng)參數(shù)即啟動Loader的參數(shù),進入升級方式(Cable升級、IP升級、USB升級或串口升級等)相應(yīng)的通訊協(xié)議下載升級信息文件。Loader程序是一個壓縮的鏡像包,包括支持initramfs精簡后的kernel以及精簡后的Ram fs,以及放置在Ram fs中升級下載模塊,精簡的部分只包括升級所需的內(nèi)容,減小Loader占用的Flash空間,也便于Loader的備份和同步。
[0165]實際實施中,為了保證升級的安全性和可靠性,一般采用Loader備份。
[0166]實際實施中,當(dāng)機頂盒中運行的軟件中的某個模塊需要更新時,可采用本地升級或是自動升級進行升級。[0167]本地升級:依據(jù)用戶的選擇開啟相應(yīng)的升級方式,同時相應(yīng)的更新升級標志,準備升級。升級方式包括=USB升級、IP升級、串口升級等。
[0168]自動升級:前端發(fā)送事先定義好的鏈接描述符,機頂盒端解析此鏈接描述符,當(dāng)該鏈接描述符符合該機頂盒的要求時,更新升級標志,準備升級。升級方式包括=Cable升級
坐寸ο
[0169]比如,當(dāng)廣播電視局中通過有線電視網(wǎng)或IP網(wǎng)將存在升級信息文件的鏈接描述符傳輸給有線電視用戶的機頂盒,機頂盒在接收電視節(jié)目信號時監(jiān)控是否收到該描述符,當(dāng)某一機頂盒依據(jù)該描述符中攜帶的該升級信息文件的基礎(chǔ)信息判定符合本機頂盒的軟件時,更改升級標志為需要更新。所述升級信息文件的信息提示包括:廠家代碼、硬件版本、軟件版本、設(shè)備序列號等,當(dāng)接收到的描述符與本機頂盒信息相匹配時,可對該機頂盒內(nèi)的軟件進行升級。
[0170]實際實施中,判斷模塊可以為U-B00T,所述U-BOOT放置在NAND Flash中,負責(zé)引導(dǎo)系統(tǒng)進入升級模式或是應(yīng)用模式,當(dāng)需要進行升級時,進入升級模式,開始升級;不需要進行升級時,進入應(yīng)用模式,接收有線電視信號,進行節(jié)目播放。
[0171]本說明書中各個實施例采用遞進的方式描述,每個實施例重點說明的都是與其它實施例的不同之處,各個實施例之間相同或相似部分互相參見即可。
[0172]對所公開的實施例的上述說明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本申請。對這些實施例的多種修改對本領(lǐng)域的專業(yè)技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本申請的精神或范圍的情況下,在其它實施例中實現(xiàn)。因此,本申請將不會被限制于本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的范圍。
【權(quán)利要求】
1.一種機頂盒軟件升級的方法,其特征在于,包括: 當(dāng)所述機頂盒中當(dāng)前運行的軟件需要進行升級時,解析與所述軟件的當(dāng)前運行狀態(tài)相對應(yīng)的升級標志,得到所述軟件的升級方式; 依據(jù)所述升級方式執(zhí)行與所述升級方式相對應(yīng)的通訊協(xié)議獲取所述軟件升級所需的升級信息文件; 依據(jù)所述升級信息文件對所述機頂盒中當(dāng)前運行的軟件進行升級。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述依據(jù)所述升級信息文件對所述機頂盒中當(dāng)前運行的軟件進行升級包括: 判斷所述升級信息文件是否滿足預(yù)設(shè)的升級信息文件格式,當(dāng)滿足時,依據(jù)所述升級信息文件對所述機頂盒中當(dāng)前運行的軟件進行升級。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述預(yù)設(shè)的升級信息文件格式包括:文件頭、升級數(shù)據(jù)和至少一個索引表; 所述文件頭包括升級信息文件的基本屬性信息; 所述索引表包括與所述索引表對應(yīng)的需要升級的軟件的模塊的屬性信息,以及與所述索引表相對應(yīng)的升級數(shù)據(jù)的屬性信息。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述依據(jù)所述升級信息文件對所述機頂盒中當(dāng)前運行的軟件進行升級包括: 當(dāng)依據(jù)所述文件頭判定所述升級信息文件滿足預(yù)設(shè)的升級條件時,依據(jù)任一索引表中的信息獲取與所述索引表相對應(yīng)的升級數(shù)據(jù); 依據(jù)與所述索引表相對應(yīng)的升級數(shù)據(jù)對所述索引表對應(yīng)的軟件的模塊進行升級。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括: 升級完成后,對所述升級標志的內(nèi)容進行清除。
6.一種機頂盒軟件升級的系統(tǒng),其特征在于,包括: 分析模塊,用于當(dāng)所述機頂盒中當(dāng)前運行的軟件需要進行升級時,解析與所述軟件的當(dāng)前運行狀態(tài)相對應(yīng)的升級標志,得到所述軟件的升級方式; 獲取模塊,用于依據(jù)所述升級方式執(zhí)行與所述升級方式相對應(yīng)的通訊協(xié)議獲取所述軟件升級所需的升級信息文件; 升級模塊,用于依據(jù)所述升級信息文件對所述機頂盒中當(dāng)前運行的軟件進行升級。
7.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述升級模塊包括: 第一判斷子模塊,用于判斷所述升級信息文件是否滿足預(yù)設(shè)的升級信息文件格式。
8.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,所述升級模塊還包括: 第二判斷子模塊,用于依據(jù)所述文件頭判斷所述升級信息文件是否滿足預(yù)設(shè)的升級條件。
【文檔編號】G06F9/445GK103458298SQ201210179224
【公開日】2013年12月18日 申請日期:2012年6月1日 優(yōu)先權(quán)日:2012年6月1日
【發(fā)明者】何伯虎, 趙亞文, 焦立波 申請人:北京四達時代軟件技術(shù)股份有限公司