機頂盒的軟件升級方法及裝置制造方法
【專利摘要】本發(fā)明公開了一種機頂盒的軟件升級方法及裝置。其中,該方法包括:機頂盒(STB)通過以太網(wǎng)數(shù)據(jù)通過同軸電纜傳輸(EOC)局端設備,接收管理服務器下發(fā)的軟件升級命令消息,其中,軟件升級命令消息中攜帶版本服務器的以太網(wǎng)協(xié)議(IP)地址和最新軟件版本的版本名稱;STB根據(jù)IP地址和版本名稱登錄版本服務器后,獲取最新版本的版本文件;STB根據(jù)版本文件將STB當前使用的軟件版本升級至最新軟件版本。通過本發(fā)明,達到了有效節(jié)約網(wǎng)絡帶寬資源、降低軟件升級成本的效果。
【專利說明】機頂盒的軟件升級方法及裝置
【技術領域】
[0001]本發(fā)明涉及通信領域,具體而言,涉及一種機頂盒的軟件升級方法及裝置。
【背景技術】
[0002]軟件升級是機頂盒(Set Top Box,簡稱為STB)中一項非常重要的功能,隨著業(yè)務的增長,各種各樣的功能集成到機頂盒中,新增功能以及軟件缺陷修改等都需要對機頂盒進行軟件升級。目前機頂盒升級的主要方式是運營商在前端將升級文件封裝成MPEG-2標準的傳輸流(Transport Stream,簡稱為TS),與電視節(jié)目流復用后,調(diào)制到電視網(wǎng)進行廣播,同時根據(jù)數(shù)字視頻廣播(Digital Video Broadcasting,簡稱為DVB)標準將升級TS流的定位信息添加在網(wǎng)絡信息表(Network Information Table,簡稱為NIT)或者BAT表中播發(fā);對應的,終端機頂盒中包括應用程序和加載程序(Loader)兩個版本,其中Loader專門用以機頂盒的升級,機頂盒在NIT或者BAT表中檢測到升級信息后,與用戶交互確認升級,保存升級定位信息到閃存(FLASH)中,重啟機頂盒進入Loader,調(diào)頻至升級TS流頻點并接收升級流,更新應用程序。
[0003]對于這種機頂盒升級方式,升級流在網(wǎng)絡中某個頻點播發(fā),因此,除非機頂盒有兩個解調(diào)器(Tuner),否則,用戶無法在升級的同時收看電視節(jié)目,同時升級的過程需要重啟兩次機頂盒,對用戶收視的影響較大;另外這種升級方式升級流以及升級信息均采用廣播的方式,前端無法對終端的升級進行管理或者監(jiān)控,一旦因為某些因素導致機頂盒無法升級,就只能將機頂盒返廠維修,或者進行本地升級,大大增加了維護的成本;另外,由于無法得知用戶何時開機升級,必須在網(wǎng)絡中長期播發(fā)升級流,造成網(wǎng)絡帶寬的浪費。
[0004]以太網(wǎng)數(shù)據(jù)通過同軸電纜傳輸(Ethernet Over Coax,簡稱為E0C)技術是在同軸電纜中進行以太網(wǎng)數(shù)據(jù)信號的傳輸,主流是將以太網(wǎng)信號經(jīng)過調(diào)制后在同軸電纜中進行數(shù)據(jù)傳輸,其頻率不占用有線電視頻率段,和有線電視信號共存,既不影響有線電視信號的傳輸,又有雙向獨享的寬帶綜合業(yè)務接入,可以大大簡化混合光纖同軸電纜(HybridFiber-Coax,簡稱為HFC)網(wǎng)絡的雙向改造,利用現(xiàn)有的廣電HFC網(wǎng)絡為用戶提供數(shù)字電視,互動電視和寬帶業(yè)務。
[0005]針對相關技術中的軟件升級機頂盒方法維護成本過高,容易造成網(wǎng)絡帶寬浪費問題,目前尚未提出采用EOC技術對機頂盒進行軟件升級的有效解決方案。
【發(fā)明內(nèi)容】
[0006]本發(fā)明提供了一種機頂盒的軟件升級方法及裝置,以至少解決上述問題。
[0007]根據(jù)本發(fā)明的一個方面,提供了一種機頂盒的軟件升級方法,包括:機頂盒(STB)通過以太網(wǎng)數(shù)據(jù)通過同軸電纜傳輸(EOC)局端設備,接收管理服務器下發(fā)的軟件升級命令消息,其中,軟件升級命令消息中攜帶版本服務器的以太網(wǎng)協(xié)議(IP)地址和最新軟件版本的版本名稱;STB根據(jù)IP地址和版本名稱登錄版本服務器后,獲取最新版本的版本文件;STB根據(jù)版本文件將STB當前使用的軟件版本升級至最新軟件版本。[0008]優(yōu)選地,在機頂盒(STB)通過以太網(wǎng)數(shù)據(jù)通過同軸電纜傳輸(EOC)局端設備,接收管理服務器下發(fā)的軟件升級命令消息之前,該方法還包括:STB啟動后向管理服務器發(fā)送上線消息,其中,上線消息中攜帶STB的序列號和STB的媒體接入控制(MAC)地址。
[0009]優(yōu)選地,機頂盒STB通過以太網(wǎng)數(shù)據(jù)通過同軸電纜傳輸EOC局端設備,接收管理服務器下發(fā)的軟件升級命令消息,包括:待管理服務器根據(jù)序列號和MAC地址將STB添加到管理服務器管理的STB活動信息中后,STB通過EOC局端設備接收管理服務器下發(fā)的軟件升級命令消息。
[0010]優(yōu)選地,STB根據(jù)版本文件將STB當前使用的軟件版本升級至最新軟件版本,包括=STB根據(jù)版本文件中的循環(huán)冗余校驗(CRC)校驗字段對版本文件進行CRC校驗;在版本文件校驗正確的情況下,STB對版本文件的版本頭進行合法性檢查,其中,版本頭包括終端類型和廠商標識;當對終端類型和廠商標識的檢查結(jié)果為合格時,STB將STB當前使用的軟件版本升級至最新軟件版本。
[0011]優(yōu)選地,軟件升級命令消息中還攜帶升級延遲時長和最新軟件版本的統(tǒng)一資源定位符(URL)。
[0012]優(yōu)選地,STB根據(jù)IP地址和版本名稱登錄版本服務器后,獲取最新版本的版本文件,包括:STB根據(jù)IP地址和版本名稱登錄版本服務器;STB按照最新軟件版本的URL找到最新軟件版本后,下載最新軟件版本。
[0013]優(yōu)選地,在STB從軟件升級命令消息中解析出升級延遲時長之后,包括:STB在等待升級延遲時長終止后,開始將STB當前使用的軟件版本升級至最新軟件版本的軟件升級操作。
[0014]根據(jù)本發(fā)明的另一方面,提供了一種機頂盒的軟件升級裝置,包括:接收模塊,用于通過以太網(wǎng)數(shù)據(jù)通過同軸電纜傳輸(EOC)局端設備,接收管理服務器下發(fā)的軟件升級命令消息,其中,軟件升級命令消息中攜帶版本服務器的以太網(wǎng)協(xié)議(IP)地址和最新軟件版本的版本名稱;獲取模塊,用于根據(jù)IP地址和版本名稱登錄版本服務器后,獲取最新版本的版本文件;升級模塊,用于根據(jù)版本文件將機頂盒(STB)當前使用的軟件版本升級至最新軟件版本。
[0015]優(yōu)選地,該裝置還包括:發(fā)送模塊,用于在STB啟動后向管理服務器發(fā)送上線消息,其中,上線消息中攜帶STB的序列號和STB的媒體接入控制(MAC)地址。
[0016]優(yōu)選地,接收模塊包括:接收單元,用于待管理服務器根據(jù)序列號和MAC地址將STB添加到管理服務器管理的STB活動信息中后,通過EOC局端設備接收管理服務器下發(fā)的軟件升級命令消息。
[0017]優(yōu)選地,升級模塊包括:校驗單元,用于根據(jù)版本文件中的循環(huán)冗余校驗(CRC)校驗字段對版本文件進行CRC校驗;檢查模塊,用于在版本文件校驗正確的情況下,對版本文件的版本頭進行合法性檢查,其中,版本頭包括終端類型和廠商標識;升級單元,用于當對終端類型和廠商標識的檢查結(jié)果為合格時,將STB當前使用的軟件版本升級至最新軟件版本。
[0018]通過本發(fā)明,采用在機頂盒中內(nèi)置EOC模塊同時結(jié)合外部的EOC局端設備,利用機頂盒與EOC局端設備之間的雙向接入通道的方式,可以在不影響用戶的正常收視的同時進行軟件升級,并且可以使運營商實現(xiàn)對機頂盒升級過的管理和監(jiān)控,無需長期播發(fā)升級流,解決了軟件升級機頂盒方法維護成本過高,容易造成網(wǎng)絡帶寬浪費問題的問題,從而達到了有效節(jié)約網(wǎng)絡帶寬資源、降低軟件升級成本的效果。
【專利附圖】
【附圖說明】
[0019]此處所說明的附圖用來提供對本發(fā)明的進一步理解,構(gòu)成本申請的一部分,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當限定。在附圖中:
[0020]圖1是根據(jù)本發(fā)明實施例的機頂盒的軟件升級方法流程圖;
[0021]圖2是根據(jù)本發(fā)明實施例的機頂盒的軟件升級裝置的結(jié)構(gòu)框圖;
[0022]圖3是根據(jù)本發(fā)明優(yōu)選實施例的機頂盒的軟件升級裝置的結(jié)構(gòu)框圖;
[0023]圖4是根據(jù)本發(fā)明優(yōu)選實施例的機頂盒的組網(wǎng)結(jié)構(gòu)示意圖;
[0024]圖5是根據(jù)本發(fā)明優(yōu)選實施例的機頂盒的軟件升級過程的示意圖;
[0025]圖6是根據(jù)本發(fā)明優(yōu)選實施例一的機頂盒的軟件升級流程圖;
[0026]圖7是根據(jù)本發(fā)明優(yōu)選實施例二的機頂盒的軟件升級流程圖;
[0027]圖8是根據(jù)本發(fā)明優(yōu)選實施例三的機頂盒的軟件升級流程圖。
【具體實施方式】
[0028]下文中將參考附圖并結(jié)合實施例來詳細說明本發(fā)明。需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。
[0029]圖1是根據(jù)本發(fā)明實施例的機頂盒的軟件升級方法流程圖,如圖1所示,該方法主要包括以下步驟(步驟S102-步驟S106):
[0030]步驟S102,機頂盒(STB)通過以太網(wǎng)數(shù)據(jù)通過同軸電纜傳輸(EOC)局端設備,接收管理服務器下發(fā)的軟件升級命令消息,其中,軟件升級命令消息中攜帶版本服務器的以太網(wǎng)協(xié)議(IP)地址和最新軟件版本的版本名稱;
[0031]步驟S104,STB根據(jù)IP地址和版本名稱登錄版本服務器后,獲取最新版本的版本文件;
[0032]步驟S106,STB根據(jù)版本文件將STB當前使用的軟件版本升級至最新軟件版本。
[0033]在本實施的步驟S102之前,該方法還可以包括:STB啟動后向管理服務器發(fā)送上線消息,其中,上線消息中攜帶STB的序列號和STB的媒體接入控制(MAC)地址。
[0034]在本實例中,步驟S102可以這樣實施:待管理服務器根據(jù)序列號和MAC地址將STB添加到管理服務器管理的STB活動信息中后,STB通過EOC局端設備接收管理服務器下發(fā)的軟件升級命令消息。
[0035]在本實例中,步驟S106可以這樣實施:STB根據(jù)版本文件中的循環(huán)冗余校驗(CRC)校驗字段對版本文件進行CRC校驗;在版本文件校驗正確的情況下,STB對版本文件的版本頭進行合法性檢查,其中,版本頭包括終端類型和廠商標識;當對終端類型和廠商標識的檢查結(jié)果為合格時,STB將STB當前使用的軟件版本升級至最新軟件版本。
[0036]在本實例中,軟件升級命令消息中還可以攜帶升級延遲時長和最新軟件版本的統(tǒng)一資源定位符(URL)。
[0037]進一步地,步驟S106可以這樣實施:STB根據(jù)IP地址和版本名稱登錄版本服務器;STB按照最新軟件版本的URL找到最新軟件版本后,下載最新軟件版本。[0038]進一步地,在STB從軟件升級命令消息中解析出升級延遲時長之后,STB需要等待升級延遲時長終止時,才能開始將STB當前使用的軟件版本升級至最新軟件版本的軟件升級操作。
[0039]采用本實施例提供的機頂盒的軟件升級方法,可以在不影響用戶的正常收視的同時進行軟件升級,并且可以使運營商實現(xiàn)對機頂盒升級過的管理和監(jiān)控,無需長期播發(fā)升級流,有效節(jié)約了網(wǎng)絡帶寬資源。
[0040]圖2是根據(jù)本發(fā)明實施例的機頂盒的軟件升級裝置的結(jié)構(gòu)框圖,該裝置用以實現(xiàn)上述實施例提供的機頂盒的軟件升級方法,如圖2所示,該裝置主要包括:接收模塊10、獲取模塊20以及升級模塊30。其中,接收模塊10,用于通過以太網(wǎng)數(shù)據(jù)通過同軸電纜傳輸(EOC)局端設備,接收管理服務器下發(fā)的軟件升級命令消息,其中,軟件升級命令消息中攜帶版本服務器的以太網(wǎng)協(xié)議(IP)地址和最新軟件版本的版本名稱;獲取模塊20,連接至接收模塊10,用于根據(jù)IP地址和版本名稱登錄版本服務器后,獲取最新版本的版本文件;升級模塊30,連接至獲取模塊20,用于根據(jù)版本文件將機頂盒(STB)當前使用的軟件版本升級至最新軟件版本。
[0041]圖3是根據(jù)本發(fā)明優(yōu)選實施例的機頂盒的軟件升級裝置的結(jié)構(gòu)框圖,如圖3所示,該優(yōu)選實施例提供的裝置還可以包括:發(fā)送模塊40,與接收模塊10連接,用于在STB啟動后向管理服務器發(fā)送上線消息,其中,上線消息中攜帶STB的序列號和STB的媒體接入控制(MAC)地址。
[0042]在該優(yōu)選實施例提供的裝置中,接收模塊10可以包括:接收單元12,用于待管理服務器根據(jù)序列號和MAC地址將STB添加到管理服務器管理的STB活動信息中后,通過EOC局端設備接收管理服務器下發(fā)的軟件升級命令消息。
[0043]該優(yōu)選實施例提供的裝置中,升級模塊30可以包括:校驗單元32,用于根據(jù)版本文件中的循環(huán)冗余校驗(CRC)校驗字段對版本文件進行CRC校驗;檢查模塊34,連接至校驗單元32,用于在版本文件校驗正確的情況下,對版本文件的版本頭進行合法性檢查,其中,版本頭包括終端類型和廠商標識;升級單元36,連接至檢查模塊34,用于當對終端類型和廠商標識的檢查結(jié)果為合格時,將STB當前使用的軟件版本升級至最新軟件版本。
[0044]采用本實施例提供的機頂盒的軟件升級裝置,可以在不影響用戶的正常收視的同時進行軟件升級,并且可以使運營商實現(xiàn)對機頂盒升級過的管理和監(jiān)控,無需長期播發(fā)升級流,有效節(jié)約了網(wǎng)絡帶寬資源。
[0045]下面結(jié)合圖4至圖8,以及優(yōu)選實施例一、優(yōu)選實施例二和優(yōu)選實施例三對上述實施例提供的機頂盒的軟件升級方法和機頂盒的軟件升級裝置進行詳細說明。
[0046]圖4是根據(jù)本發(fā)明優(yōu)選實施例的機頂盒的組網(wǎng)結(jié)構(gòu)示意圖,如圖4所示,該機頂盒內(nèi)置有EOC模塊,EOC模塊主要采用Home Plug AV或其它EOC技術,與EOC局端設備等接入網(wǎng)設備共同構(gòu)成基于HFC的雙向數(shù)據(jù)通道,同時,網(wǎng)絡側(cè)提供以太網(wǎng)接入,機頂盒中還內(nèi)置有數(shù)字視頻廣播(Digital Video Broadcasting,簡稱為DVB)模塊,其同EOC模塊相連接,通過雙向數(shù)據(jù)通道中的EOC通道接入網(wǎng)絡,從而實現(xiàn)DVB的雙向數(shù)據(jù)業(yè)務。
[0047]圖5是根據(jù)本發(fā)明優(yōu)選實施例的機頂盒的軟件升級過程的示意圖,如圖5所示,該升級過程主要包括以下步驟(步驟S502-步驟S512):
[0048]步驟S502,機頂盒啟動后自動獲取IP地址,由機頂盒中的網(wǎng)絡協(xié)議模塊通過EOC通道向管理服務器發(fā)送上線消息,消息中攜帶有該機頂盒的序列號、該機頂盒的MAC地址等識別息;
[0049]步驟S504,管理服務器收到機頂盒上線消息后,將該機頂盒添加至其管理的機頂盒活動列表;
[0050]步驟S506,管理服務器對機頂盒下發(fā)升級命令消息,消息中攜帶版本服務器的IP地址、版本服務器上存儲的軟件版本的版本文件名稱等信息;
[0051]步驟S508,機頂盒中的網(wǎng)絡協(xié)議模塊收到升級命令后,由升級模塊啟動線程,在后臺向版本服務器發(fā)送升級請求,獲取版本文件;
[0052]步驟S510,機頂盒獲取版本文件后,對版本文件進行校驗和合法性檢查,提取版本文件中的控制字段,檢查正確無誤后,向管理服務器發(fā)送升級成功響應;
[0053]步驟S512,機頂盒根據(jù)版本文件中的控制字段,在不影響用戶收視前提下,更新相應的模塊,或者將版本文件燒寫至對應的閃存(FLASH)分區(qū)。
[0054]下面結(jié)合幾種實施場景實例對實施例一、優(yōu)選實施例二和優(yōu)選實施例三做進一步描述。需要說明的是,以下各優(yōu)選實施例中的網(wǎng)絡拓撲圖均為圖4中的結(jié)構(gòu),其中,機頂盒在接收有線電視信號的同時,可以通過EOC模塊接入以太網(wǎng),在網(wǎng)絡側(cè)與管理服務器和版本服務器連接,管理服務器用于實現(xiàn)對機頂盒的管理,在以下三個優(yōu)選實施例中,僅涉及對機頂盒升級相關流程的管理,版本服務器用于存儲待升級的版本文件。
[0055]實施例一
[0056]圖6是根據(jù)本發(fā)明優(yōu)選實施例一的機頂盒的軟件升級流程圖,在該實施例中,機頂盒采用雙版本的模式,經(jīng)由EOC通道與管理服務器和版本服務器進行數(shù)據(jù)通信,完成版本升級,該用例可以做到完全不影響用戶收視,如圖6所示,該流程主要包括以下步驟:
[0057]步驟S602A,機頂盒啟動,向管理服務器發(fā)送上線消息;
[0058]機頂盒啟動后,讀取本地配置信息,獲取IP地址后,通過網(wǎng)絡接口模塊向管理服務器發(fā)送上線消息,消息中攜帶機頂盒序列號、MAC地址等信息,管理服務器根據(jù)機頂盒序列號來對機頂盒進行識別,為了達到更好的效果,機頂盒還可以在該消息中攜帶版本號信息,使得管理服務器可以及時獲取其當前運行版本。
[0059]步驟S602A,管理服務器收到機頂盒上報的上線消息后,向機頂盒發(fā)出響應,以通知機頂盒管理服務器已經(jīng)收到上線消息;
[0060]步驟S604,管理服務器向機頂盒下發(fā)升級命令消息;
[0061]管理服務器對機頂盒下發(fā)升級命令消息,該消息中至少需要包含版本類型,版本文件位置URL等信息,優(yōu)選的,可以包含版本服務器認證用戶名以及密碼,文件大小,升級延遲時間等信息,本實施用例中版本文件采用FTP傳輸方式,也可以采用HTTP等傳輸方式;升級延遲時間表示機頂盒在收到升級命令與開始升級之間的時間間隔。
[0062]步驟S606A,機頂盒對升級命令消息進行臨時響應;
[0063]機頂盒在運行時,后臺啟動監(jiān)聽線程,由網(wǎng)絡接口模塊監(jiān)聽網(wǎng)絡側(cè)來自管理服務器的消息。
[0064]步驟S606B,在收到升級命令消息時,網(wǎng)絡接口模塊首先響應該消息,再將版本文件位置URL通知給升級模塊,以使升級模塊下載版本文件;
[0065]步驟S608A,升級模塊根據(jù)版本文件位置URL來下載版本文件,如果版本服務器需要認證,則攜帶升級命令中的用戶名和密碼信息,如果升級命令中攜帶升級延遲時間信息,則延遲相應的時間后開始下載;
[0066]步驟S608B,如果版本服務器無響應或者因為其他與原因?qū)е芦@取升級文件失敗,機頂盒向管理服務器發(fā)送升級失敗響應,該響應中攜帶失敗錯誤碼;
[0067]在實際應用中,升級命令中還可以包含文件大小的信息,機頂盒根據(jù)此信息來判斷是否有足夠空間下載文件,或者則盡可能釋放空間來下載文件,如果無足夠空間,機頂盒向管理服務器發(fā)送失敗響應,響應中攜帶失敗錯誤碼。
[0068]步驟S610,機頂盒對版本文件進行版本校驗;
[0069]機頂盒接收到完整的版本文件后,對文件進行CRC校驗以及合法性檢查,確保文件的正確性。版本文件最后四個字節(jié)為CRC校驗字段,機頂盒升級模塊對版本文件進行CRC校驗保證其正確性;優(yōu)選的,版本文件中包含版本頭,版本頭中攜帶版本類型、版本號、終端類型、廠商標識等相關信息,以保證文件的合法性,升級模塊解析版本頭,判斷終端類型、廠商標識等信息是否與當前設備匹配,如果信息不匹配,則取消升級,機頂盒通過網(wǎng)絡接口模塊向服務器發(fā)送升級失敗響應,該響應中攜帶升級失敗的錯誤碼,管理服務器收到升級失敗的消息后對失敗原因進行診斷,管理員可以根據(jù)失敗原因做進一步處理;
[0070]步驟S612,機頂盒中的版本管理模塊對版本文件進行版本燒寫;
[0071]版本文件校驗以及合法性檢查通過后,版本管理模塊將版本文件去掉版本頭以及CRC校驗字段,燒寫到備用版本分區(qū)中。
[0072]本實施用例采用升級完整機頂盒軟件的方案,機頂盒對兩個版本分別劃分FLASH分區(qū),此處命名為VERS10N_1和VERS10N_2分區(qū),版本管理模塊首先讀取當前運行版本所在分區(qū),然后將升級版本文件燒結(jié)到另一分區(qū),例如當前運行版本為VERS10N_1分區(qū)軟件,則將升級版本文件燒寫在VERS10N_2分區(qū)中。
[0073]在實際應用中,在能夠保證軟件模塊兼容性的前提下,還可以將FLASH劃分為內(nèi)核、文件系統(tǒng)、Middleware中間件、UI界面資源等分區(qū),分別存儲不同的模塊,從而可以靈活的選擇模塊單獨進行升級,使得升級更加靈活,同時節(jié)約網(wǎng)絡以及機頂盒系統(tǒng)資源,在此方案中,版本頭中的版本類型信息對應了各個模塊,版本管理模塊根據(jù)此字段來區(qū)分各個模塊并燒寫版本。
[0074]在版本文件燒寫FLASH完成后,機頂盒可以通過網(wǎng)絡接口模塊向管理服務器上報升級成功的消息,優(yōu)選的,該消息中可以攜帶升級后的版本號;如果燒寫失敗,機頂盒盡量上報升級失敗消息,對于部分消息無法上報的情況,譬如機頂盒斷電,網(wǎng)管服務器等待升級結(jié)果消息超時,升級失敗。
[0075]在實際應用中,在燒寫FLASH的過程中,在電視界面底部提示用戶后臺正在升級,暫時不要斷電,避免因用戶關機導致的升級失敗。
[0076]步驟S614,機頂盒的版本管理模塊進行版本切換并更新;
[0077]在版本文件燒寫成功后,版本管理模塊修改FLASH中的版本選擇標識位,提示用戶機機頂盒升級完成,重啟機頂盒進入升級后的軟件版本。
[0078]版本的啟動選擇由Boot來完成,機頂盒啟動時,Boot首先從FLASH特定分區(qū)中讀取版本選擇標識位,根據(jù)讀取結(jié)果從不同的FLASH分區(qū)啟動系統(tǒng),該實施用例中,版本選擇標識位以字符串的形式存儲在FLASH中,“star_tver_flag=0”代表從VERS10N_1分區(qū)啟動,“start_ver_flag=l”代表從VERS10N_2分區(qū)啟動,本例中設置該標識位為1,機頂盒再次啟動時,從VERS10N_2分區(qū)啟動升級后的軟件版本;
[0079]在實際應用中,待升級完成后,不通知用戶,在用戶下次啟動機頂盒時進入升級后的版本,進一步降低了升級對于用戶收視的影響。
[0080]在本實施例中,機頂盒整個升級過程完全經(jīng)過EOC通道通過后臺線程完成,既不占用節(jié)目碼流通道,也不影響機頂盒收視線程,基本上消除了升級對用戶收視的影響?’另外,該實施用例采用了雙版本的方案,增強了系統(tǒng)的穩(wěn)定性,但同時也需要較大的FLASH空間。
[0081]實施例二
[0082]圖7是根據(jù)本發(fā)明優(yōu)選實施例二的機頂盒的軟件升級流程圖,該實施例在不影響用戶收視的基礎上,能夠有效地節(jié)約FLASH空間以及網(wǎng)絡帶寬,如圖7所示,該流程主要包括以下步驟:
[0083]步驟S702~步驟S708:同步驟S602~步驟S608 ;
[0084]步驟S710,機頂盒對軟件版本進行保存;
[0085]版本文件校驗成功后,由于機頂盒應用程序可能正在運行,為避免用戶收視,不能立即覆蓋更新,因此,將版本文件保存在當前文件系統(tǒng)升級文件緩存文件夾下,同時,在系統(tǒng)配置文件中設置升級標識字段以及版本文件名,在下次程序啟動時更新。
[0086]需要說明的是,該實施例需要在該文件系統(tǒng)所在分區(qū)中保留一定空間以保證能夠保存升級文件,該預留空間應大于應用程序最大模塊的大小。對于升級文件大于預留空間導致暫存失敗的,機頂盒發(fā)送失敗響應到管理服務器,該響應中攜帶失敗錯誤碼。
[0087]如果版本文件保存成功,發(fā)送升級成功響應至管理服務器。
[0088]步驟S712,機頂盒進行版本文件讀取操作;
[0089]在機頂盒再次啟動時,運行機頂盒中的啟動腳本,首先執(zhí)行升級檢測程序,讀取系統(tǒng)配置文件中的升級標識字段,如果有模塊需要升級,則在升級文件緩存文件夾中讀取版本文件并處理,否則直接啟動應用程序。
[0090]步驟S712中提到的機頂盒啟動腳本在操作系統(tǒng)啟動后執(zhí)行,至少需要包含升級檢測程序和系統(tǒng)應用程序啟動命令,優(yōu)選的還可以增加其他系統(tǒng)資源檢查或程序調(diào)用。
[0091]步驟S714,機頂盒進行版本更新操作;
[0092]升級檢測程序讀取待升級版本文件后,解析其版本頭中的版本類型,根據(jù)版本類型獲取該模塊的模塊名以及模塊目錄等信息,之后將版本文件去掉版本頭以及CRC校驗字段,拷貝到該模塊目錄下覆蓋原有模塊,同時刪除原升級緩存文件夾下的文件。
[0093]步驟S716,機頂盒進行版本文件啟動操作;
[0094]機頂盒啟動腳本在執(zhí)行完升級檢測程序,完成模塊覆蓋更新后,啟動機頂盒應用程序,在該應用程序中,待更新模塊已經(jīng)為新升級的版本。
[0095]需要說明的是,新版本啟動時,會向管理服務器上報上線消息,管理服務器可以根據(jù)消息中攜帶的版本號來獲取該機頂盒的軟件版本,優(yōu)選的,機頂盒提供版本查詢接口,管理服務器可以通過該接口查詢機頂盒當前軟件版本。
[0096]該實施例使用單獨的更新模塊,有效地節(jié)省了網(wǎng)絡帶寬,在本實施例中,還可以實現(xiàn)動態(tài)的新增功能模塊,而不需要重新啟動機頂盒。基于FLASH空間的考慮,該用例較適用于應用程序模塊的更新,對于整個內(nèi)核或者文件系統(tǒng)等的更新,優(yōu)選采用其他方案,該用例可以作為其他升級方式的補充手段,實現(xiàn)模塊的實時更新。
[0097]實施例三
[0098]圖8是根據(jù)本發(fā)明優(yōu)選實施例三的機頂盒的軟件升級流程圖,該實施例的作用為通過EOC通道更新機頂盒的Loader程序,傳統(tǒng)機頂盒包括系統(tǒng)應用軟件和Loader,其中系統(tǒng)應用軟件即機頂盒正常運行時的軟件,Loader是指專門用以升級的程序,在應用程序檢測到升級請求時,機頂盒重啟進入Loader更新系統(tǒng)應用軟件,而機頂盒一般不提供更新Loader的接口,本實施用例提供了一種更新Loader的方法,用以解決某些情況下Loader需要更新的問題,該流程主要包括以下步驟:
[0099]步驟S802?步驟S808:同步驟S602?步驟S608 ;
[0100]其中,在步驟S804中,升級命令中的版本類型信息可以指定為Loader。
[0101]步驟S810,機頂盒對版本文件進行版本校驗操作;
[0102]機頂盒接收到完整的Loader軟件后,對文件進行CRC校驗以及合法性檢查,確保文件的正確性;在該步驟中,包括對Loader的合法性檢查,優(yōu)選的,還包括對加密的版本頭,終端類型,版本類型,版本號,版本頭校驗等信息進行合法性檢查。對于校驗或檢查錯誤的軟件,機頂盒發(fā)送升級失敗響應至管理服務器,響應中攜帶失敗錯誤碼。
[0103]步驟S812,機頂盒對版本文件進行版本燒寫操作;
[0104]待版本檢查正確后,機頂盒燒寫Loader軟件到其分區(qū),完成Loader的更新。燒寫完成后,機頂盒發(fā)送升級成功的響應到管理服務器。如果燒寫失敗,機頂盒盡量發(fā)送升級失敗響應,對于部分消息無法發(fā)送的情況,譬如機頂盒斷電,管理服務器等待升級超時,升級失敗。
[0105]該實施例中的機頂盒采用傳統(tǒng)的Loader升級方法,作為容錯手段,提供了一種遠程更新Loader的方法,增強了機頂盒的穩(wěn)定性。
[0106]采用上述實施例提供的機頂盒的軟件升級方法及裝置,通過在機頂盒中內(nèi)置EOC模塊同時結(jié)合外部的EOC局端設備,利用機頂盒與EOC局端設備之間的雙向接入通道,可以在不影響用戶的正常收視的同時進行軟件升級,并且可以使運營商實現(xiàn)對機頂盒升級過的管理和監(jiān)控,無需長期播發(fā)升級流,從而達到了有效節(jié)約網(wǎng)絡帶寬資源、降低軟件升級成本的效果。
[0107]從以上的描述中,可以看出,本發(fā)明實現(xiàn)了如下技術效果:使用上述實施例提供的升級方法,能夠使機頂盒通過EOC通道與管理服務器進行通信,并獲取版本文件進行升級,該方法相比目前機頂盒升級方式有如下優(yōu)點:(I)不需要在電視網(wǎng)絡中長期播發(fā)升級流,有效節(jié)省帶寬;(2)不通過有線電視數(shù)據(jù)通道進行數(shù)據(jù)傳輸,在升級時不影響正常的用戶收視;(3)升級方式更加靈活,協(xié)議擴展更加簡單;(4)可控性以及容錯性更強,可以做為主要升級方式,也可以作為現(xiàn)有升級方式的補充,對于使用現(xiàn)有升級方式升級失敗的機頂盒進行升級。
[0108]顯然,本領域的技術人員應該明白,上述的本發(fā)明的各模塊或各步驟可以用通用的計算裝置來實現(xiàn),它們可以集中在單個的計算裝置上,或者分布在多個計算裝置所組成的網(wǎng)絡上,可選地,它們可以用計算裝置可執(zhí)行的程序代碼來實現(xiàn),從而,可以將它們存儲在存儲裝置中由計算裝置來執(zhí)行,并且在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟,或者將它們分別制作成各個集成電路模塊,或者將它們中的多個模塊或步驟制作成單個集成電路模塊來實現(xiàn)。這樣,本發(fā)明不限制于任何特定的硬件和軟件結(jié)合。
[0109]以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領域的技術人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。
【權利要求】
1.一種機頂盒的軟件升級方法,其特征在于,包括: 機頂盒STB通過以太網(wǎng)數(shù)據(jù)通過同軸電纜傳輸EOC局端設備,接收管理服務器下發(fā)的軟件升級命令消息,其中,所述軟件升級命令消息中攜帶版本服務器的以太網(wǎng)協(xié)議IP地址和最新軟件版本的版本名稱; 所述STB根據(jù)所述IP地址和所述版本名稱登錄所述版本服務器后,獲取所述最新版本的版本文件; 所述STB根據(jù)所述版本文件將所述STB當前使用的軟件版本升級至所述最新軟件版本。
2.根據(jù)權利要求1所述的方法,其特征在于,在機頂盒STB通過以太網(wǎng)數(shù)據(jù)通過同軸電纜傳輸EOC局端設備,接收管理服務器下發(fā)的軟件升級命令消息之前,所述方法還包括: 所述STB啟動后向所述管理服務器發(fā)送上線消息,其中,所述上線消息中攜帶所述STB的序列號和所述STB的媒體接入控制MAC地址。
3.根據(jù)權利要求2所述的方法,其特征在于,機頂盒STB通過以太網(wǎng)數(shù)據(jù)通過同軸電纜傳輸EOC局端設備,接收管理服務器下發(fā)的軟件升級命令消息,包括: 待所述管理服務器根據(jù)所述序列號和所述MAC地址將所述STB添加到所述管理服務器管理的STB活動信息中后,所述STB通過所述EOC局端設備接收所述管理服務器下發(fā)的軟件升級命令消息。
4.根據(jù)權利要求1所述的方法,其特征在于,所述STB根據(jù)所述版本文件將所述STB當前使用的軟件版本升級至所述最新軟件版本,包括: 所述STB根據(jù)所述版本文件中的循環(huán)冗余校驗CRC校驗字段對所述版本文件進行CRC校驗; 在所述版本文件校驗正確的情況下,所述STB對所述版本文件的版本頭進行合法性檢查,其中,所述版本頭包括終端類型和廠商標識; 當對所述終端類型和所述廠商標識的檢查結(jié)果為合格時,所述STB將所述STB當前使用的軟件版本升級至所述最新軟件版本。
5.根據(jù)權利要求1所述的方法,其特征在于,所述軟件升級命令消息中還攜帶升級延遲時長和所述最新軟件版本的統(tǒng)一資源定位符URL。
6.根據(jù)權利要求5所述的方法,其特征在于,所述STB根據(jù)所述IP地址和所述版本名稱登錄所述版本服務器后,獲取所述最新版本的版本文件,包括: 所述STB根據(jù)所述IP地址和所述版本名稱登錄所述版本服務器; 所述STB按照所述最新軟件版本的URL找到所述最新軟件版本后,下載所述最新軟件版本。
7.根據(jù)權利要求5所述的方法,其特征在于,在所述STB從所述軟件升級命令消息中解析出所述升級延遲時長之后,包括: 所述STB在等待所述升級延遲時長終止后,開始將所述STB當前使用的軟件版本升級至所述最新軟件版本的軟件升級操作。
8.一種機頂盒的軟件升級裝置,其特征在于,包括: 接收模塊,用于通過以太網(wǎng)數(shù)據(jù)通過同軸電纜傳輸EOC局端設備,接收管理服務器下發(fā)的軟件升級命令消息,其中,所述軟件升級命令消息中攜帶版本服務器的以太網(wǎng)協(xié)議IP地址和最新軟件版本的版本名稱; 獲取模塊,用于根據(jù)所述IP地址和所述版本名稱登錄所述版本服務器后,獲取所述最新版本的版本文件; 升級模塊,用于根據(jù)所述版本文件將機頂盒STB當前使用的軟件版本升級至所述最新軟件版本。
9.根據(jù)權利要求8所述的裝置,其特征在于,所述裝置還包括: 發(fā)送模塊,用于在所述STB啟動后向所述管理服務器發(fā)送上線消息,其中,所述上線消息中攜帶所述STB的序列號和所述STB的媒體接入控制MAC地址。
10.根據(jù)權利要求9所述的裝置,其特征在于,所述接收模塊包括: 接收單元,用于待所述管理服務器根據(jù)所述序列號和所述MAC地址將所述STB添加到所述管理服務器管理的STB活動信息中后,通過所述EOC局端設備接收所述管理服務器下發(fā)的軟件升級命令消息。
11.根據(jù)權利要求8所述的裝置,其特征在于,所述升級模塊包括: 校驗單元,用于根據(jù)所述版本文件中的循環(huán)冗余校驗CRC校驗字段對所述版本文件進行CRC校驗; 檢查模塊,用于在所述版本文件校驗正確的情況下,對所述版本文件的版本頭進行合法性檢查,其中,所述版本頭包括終端類型和廠商標識; 升級單元,用于當對所述終端類型和所述廠商標識的檢查結(jié)果為合格時,將所述STB當前使用的軟件版本升級至所述最新軟件版本。
【文檔編號】H04N21/458GK103546809SQ201210243101
【公開日】2014年1月29日 申請日期:2012年7月13日 優(yōu)先權日:2012年7月13日
【發(fā)明者】王從容 申請人:中興通訊股份有限公司