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





