OTA功能在機(jī)頂盒上的設(shè)計(jì)與實(shí)現(xiàn)
何普生1,陳侃松1,蔣碧波1,趙筑雨2,邵 沖1,陳 珂1
(1.湖北大學(xué) 計(jì)算機(jī)與信息工程學(xué)院,湖北 武漢 430062;2.貴州黔馳信息股份有限公司,貴州 貴陽 550002)
引 言
近年來,數(shù)字電視技術(shù)日新月異,用戶對(duì)機(jī)頂盒的功能需求越來越多樣和復(fù)雜,軟件也需要進(jìn)行不斷的更新和升級(jí)。歐洲數(shù)字視頻廣播DVB(Digital Video Broadcasting)標(biāo)準(zhǔn)專門制定了系統(tǒng)軟件升級(jí)(System Software Update,SSU)技術(shù)規(guī)范,在數(shù)字電視領(lǐng)域,它通常被稱為 OTA(Over The Air, 空中升級(jí))。
OTA 空中升級(jí)是指用戶終端可以直接通過信號(hào)通道的接收下載方式在機(jī)頂盒上進(jìn)行軟件的更新和升級(jí)。整個(gè)升級(jí)過程無需借助外部設(shè)備完成,只要保證終端設(shè)備能夠正常接收到信號(hào),就可以方便快捷的完成系統(tǒng)軟件的更新和升級(jí)過程, 這種方式極大降低了DVB 升級(jí)業(yè)務(wù)的復(fù)雜度。
1 OTA功能概述
1.1 OTA技術(shù)規(guī)范
OTA 升級(jí)過程中,需要把待升級(jí)數(shù)據(jù)復(fù)用到普通的音視頻流中,待升級(jí)數(shù)據(jù)在復(fù)用后的 TS 流中的格式可以根據(jù)運(yùn)營商的要求進(jìn)行封裝。機(jī)頂盒終端接收到TS 流后,通過解析 NIT(Network Information Table, 網(wǎng)絡(luò)信息表),SDT
(Service Description Table,業(yè)務(wù)描述信息表),BAT(Bouquet Association Table,業(yè)務(wù)群信息表)等相關(guān)表來獲取升級(jí)信息。
OTA 的 控 制 信 息 存 放 在 DSI(Download Server Initiate Message, 下載服務(wù)器初始信息)和 DII(Download Information Indication Message,下載信息標(biāo)識(shí)信息)中,升級(jí)數(shù)據(jù)則存放在DDB(Download Data Block Message,下載數(shù)據(jù)塊信息)中。OTA 的實(shí)現(xiàn)過程中,先將下載數(shù)據(jù)(Download Data)和控制數(shù)據(jù)(Download Control data)封裝成DSM-CC 消息,然后將消息數(shù)據(jù)封裝成Section,所有的 Section 數(shù)據(jù)又按照DVB 規(guī)范定義的格式組成TS 包,最后復(fù)用到 TS 流中, 對(duì)于數(shù)字衛(wèi)星廣播系統(tǒng)則利用數(shù)字衛(wèi)星廣播系統(tǒng)傳輸。
1.2 DSM-CC協(xié)議
在OTA 數(shù)據(jù)的處理上,DVB 標(biāo)準(zhǔn)制定了 DSM-CC 規(guī)范(Digital Storage Media Command and Control,數(shù)字存儲(chǔ)媒體命令和控制擴(kuò)展協(xié)議),ISO/IEC 13818-6 標(biāo)準(zhǔn)有對(duì)此規(guī)范作詳細(xì)說明。DSM-CC 是為在異構(gòu)網(wǎng)絡(luò)環(huán)境下傳送多媒體寬帶業(yè)務(wù)開發(fā)的ISO/IEC 標(biāo)準(zhǔn),特別適合廣播電視網(wǎng)絡(luò)。
2 系統(tǒng)軟件設(shè)計(jì)與實(shí)現(xiàn)
機(jī)頂盒首先會(huì)根據(jù)預(yù)設(shè)的頻點(diǎn)參數(shù)鎖定信號(hào),然后設(shè)置升級(jí)數(shù)據(jù)流的 PID(Packet Identifier,包標(biāo)識(shí)符),table_id,通過Filter 過濾數(shù)據(jù),獲取DSI,DII,DDB 信息。有效OTA 升級(jí)數(shù)據(jù)下載完成后進(jìn)行組包,組包完畢且數(shù)據(jù)校驗(yàn)無誤后, 需要將整個(gè)BIN 文件數(shù)據(jù)暫存到內(nèi)存中,然后根據(jù)文件模塊類型的不同,燒寫到對(duì)應(yīng)模塊在Flash上的存儲(chǔ)地址空間,完成整個(gè)升級(jí)過程。
2.1 OTA升級(jí)TS流數(shù)據(jù)格式
DVB 標(biāo)準(zhǔn)中,TS 流是分包發(fā)送的,每一個(gè)TS packet 長度為188 (B 還有192 B 和204 B 的包),包的結(jié)構(gòu)為,包頭為4 B,負(fù)載為184 B。TS 流的解析方式是從PID 為 0 的TS packet 內(nèi), 解析出PAT 表,然后根據(jù) PAT 表找到各個(gè)節(jié)目的PID。解碼器根據(jù)PMT 表的ES 流(Elementary Streams,基本碼流)的PID,區(qū)分不同的 TS packet,并按不同的ES 流進(jìn)行解碼。
OTA 升級(jí)TS 流數(shù)據(jù)格式需要按照DVB 標(biāo)準(zhǔn)中的定義進(jìn)行封裝,這里定義了section 的長度為 1 KB,因?yàn)槊恳粋€(gè)TS packet 長度為 188 B,所以每個(gè) section 必須由 N 個(gè)TS packet 組成。
2.2 終端設(shè)備軟件設(shè)計(jì)
終端設(shè)備軟件的實(shí)現(xiàn)主要包括數(shù)據(jù)解析模塊、數(shù)據(jù)組包模塊、交互信息處理模塊、Flash 寫入模塊等幾個(gè)部分。終端設(shè)備軟件的實(shí)現(xiàn)流程見圖 1。
圖1 終端設(shè)備軟件實(shí)現(xiàn)流程圖
數(shù)據(jù)解析模塊 :機(jī)頂盒成功鎖定信號(hào)且接收到節(jié)目后, 啟動(dòng)PAT 濾波,搜索 OTA 業(yè)務(wù)所在的頻點(diǎn)信息及業(yè)務(wù)標(biāo)識(shí)符, 得到OTA 業(yè)務(wù)所在PMT 的節(jié)目號(hào),根據(jù)業(yè)務(wù)標(biāo)識(shí)符與節(jié)目號(hào)匹配得到OTA 業(yè)務(wù)PMT 表的PID。對(duì)于數(shù)字衛(wèi)星廣播系統(tǒng), 過濾 NIT 表分析其中描述符 descriptor_tag 為 0x43 的傳送系統(tǒng)描述符 satellite_delivery_system_descriptor,根據(jù)本機(jī)OUI(OrganizationUniqueIdentifier,升級(jí)業(yè)務(wù)廠家唯一標(biāo)識(shí)符),獲取升級(jí)數(shù)據(jù)基本流的PID。
根據(jù)DSI 信息,得到機(jī)頂盒 OUI 對(duì)應(yīng)的所有組,并存儲(chǔ)組所對(duì)應(yīng)的信息,包括組標(biāo)識(shí)符和組名。再根據(jù)組標(biāo)識(shí)符過濾 DII 信息,并保存該組所有的模塊信息,包括模塊標(biāo)識(shí)符, 模塊段數(shù)據(jù)大小,升級(jí)數(shù)據(jù)主次版本號(hào)和組名等。
數(shù)據(jù)組包模塊 :在對(duì)升級(jí)數(shù)據(jù)進(jìn)行組包過程中,首先會(huì)得到所下載的數(shù)據(jù)的版本號(hào),然后和終端設(shè)備中的軟件版本號(hào)進(jìn)行比較,當(dāng)前機(jī)頂盒軟件版本號(hào)低于TS 流OTA 數(shù)據(jù)軟件版本號(hào)時(shí),則會(huì)進(jìn)行數(shù)據(jù)的更新,否則中斷數(shù)據(jù)下載過程,結(jié)束OTA 升級(jí)。對(duì) TS 流的過濾是按 TS packet 進(jìn)行的,而我們的 TS section 長度固定為 1 KB,也就是每個(gè)TS section 需要分成多個(gè)TS packet 進(jìn)行組包。
Filter 根據(jù) OTA 數(shù)據(jù)基本流的PID 過濾數(shù)據(jù),循環(huán)查找TS 流,得到有效的OTA 數(shù)據(jù)對(duì)應(yīng)的 TS packet。且在檢測過程中,若數(shù)據(jù)包丟失,則需要 Filter 再次進(jìn)行丟失包的濾取, 直到所有的DDB 數(shù)據(jù)全部下載完成。還需要根據(jù) OTA 升級(jí)TS 流的數(shù)據(jù)格式,去掉包頭和將BIN 文件打包成 TS 流時(shí)的增加的數(shù)據(jù)部分。組包完成后,需要把最終的 OTA 升級(jí)數(shù)據(jù)暫存于內(nèi)存中。
交互信息處理模塊 :在整個(gè)數(shù)據(jù)下載和組包過程中,還必須完成人機(jī)交互。在此處通過消息機(jī)制去實(shí)現(xiàn),如當(dāng)檢測到下載的數(shù)據(jù)的版本號(hào)低于當(dāng)前軟件的版本號(hào),會(huì)向用戶界面發(fā)送一個(gè)版本號(hào)有誤的消息,用戶界面接收到這個(gè)消息后,再提示用戶。當(dāng)異常情況出現(xiàn),如突然終端設(shè)備無信號(hào)時(shí),發(fā)送用戶界面終止OTA 升級(jí)的消息,用戶界面接收到這個(gè)消息后, 作出終止OTA 升級(jí)的命令。
Flash寫入模塊 :數(shù)據(jù)下載完成后是暫存于終端設(shè)備的內(nèi)存中的,需要將 OTA升級(jí)數(shù)據(jù)中用戶ID,數(shù)據(jù)大小等和終端設(shè)備存儲(chǔ)于Flash中的數(shù)據(jù)進(jìn)行相關(guān)的比較。滿足升級(jí)條件后, 需要把下載得到的數(shù)據(jù)寫到Flash中,同時(shí)提示用戶升級(jí)過程開始,以及升級(jí)數(shù)據(jù)完成的進(jìn)度。數(shù)據(jù)寫入成功后,會(huì)重新啟動(dòng)機(jī)頂盒,通過查看升級(jí)后的軟件相關(guān)信息,完成OTA升級(jí)成功的確認(rèn)。
3 結(jié) 語
本文對(duì)OTA 功能在機(jī)頂盒上的設(shè)計(jì)與實(shí)現(xiàn)進(jìn)行了詳細(xì)的闡述,對(duì) OTA 升級(jí)數(shù)據(jù)封裝格式也進(jìn)行了剖析。數(shù)字衛(wèi)星廣播系統(tǒng)在世界各地得到了廣泛的應(yīng)用,OTA 在線升級(jí)功能增加了用戶更新軟件的自由度,有利于數(shù)字電視業(yè)務(wù)更好的發(fā)展。
參 考文獻(xiàn)
INTERNATIONAL STANDARD(ISO/IEC 13818-1).Information technology — Generic coding of moving pictures and associated audio information :Systems(2000-12-01)[S],2001.
Digital Video Broadcasting(DVB)Specification for System Software Update in DVB Systems. ETSI TS 102 006 V1.3.2(2008- 07)[S],2008.
康曉揚(yáng),蘇凱雄. 數(shù)字機(jī)頂盒 OTA 功能的設(shè)計(jì)與實(shí)現(xiàn) [J]. 有線電視技術(shù),2010(10):82-84.
陳遠(yuǎn). 數(shù)字存儲(chǔ)媒體——命令和控制[J]. 電視廣播與傳輸,200(110): 29-31.
楊建華. 數(shù)字電視原理與應(yīng)用[M]. 北京:北京航空航天大學(xué)出版社,
2006.
趙星,宋建新 .DSM-CC實(shí)現(xiàn)機(jī)制及功能應(yīng)用 [J]. 通信技術(shù)與設(shè)備,
2001(10):33-35.