OTA功能在机顶盒上的设计与实现
扫描二维码
随时随地手机看文章
何普生1,陈侃松1,蒋碧波1,赵筑雨2,邵 冲1,陈 珂1
(1.湖北大学 计算机与信息工程学院,湖北 武汉 430062;2.贵州黔驰信息股份有限公司,贵州 贵阳 550002)
引 言
近年来,数字电视技术日新月异,用户对机顶盒的功能需求越来越多样和复杂,软件也需要进行不断的更新和升级。欧洲数字视频广播DVB(Digital Video Broadcasting)标准专门制定了系统软件升级(System Software Update,SSU)技术规范,在数字电视领域,它通常被称为 OTA(Over The Air, 空中升级)。
OTA 空中升级是指用户终端可以直接通过信号通道的接收下载方式在机顶盒上进行软件的更新和升级。整个升级过程无需借助外部设备完成,只要保证终端设备能够正常接收到信号,就可以方便快捷的完成系统软件的更新和升级过程, 这种方式极大降低了DVB 升级业务的复杂度。
1 OTA功能概述
1.1 OTA技术规范
OTA 升级过程中,需要把待升级数据复用到普通的音视频流中,待升级数据在复用后的 TS 流中的格式可以根据运营商的要求进行封装。机顶盒终端接收到TS 流后,通过解析 NIT(Network Information Table, 网络信息表),SDT
(Service Description Table,业务描述信息表),BAT(Bouquet Association Table,业务群信息表)等相关表来获取升级信息。
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 规范定义的格式组成TS 包,最后复用到 TS 流中, 对于数字卫星广播系统则利用数字卫星广播系统传输。
1.2 DSM-CC协议
在OTA 数据的处理上,DVB 标准制定了 DSM-CC 规范(Digital Storage Media Command and Control,数字存储媒体命令和控制扩展协议),ISO/IEC 13818-6 标准有对此规范作详细说明。DSM-CC 是为在异构网络环境下传送多媒体宽带业务开发的ISO/IEC 标准,特别适合广播电视网络。
2 系统软件设计与实现
机顶盒首先会根据预设的频点参数锁定信号,然后设置升级数据流的 PID(Packet Identifier,包标识符),table_id,通过Filter 过滤数据,获取DSI,DII,DDB 信息。有效OTA 升级数据下载完成后进行组包,组包完毕且数据校验无误后, 需要将整个BIN 文件数据暂存到内存中,然后根据文件模块类型的不同,烧写到对应模块在Flash上的存储地址空间,完成整个升级过程。
2.1 OTA升级TS流数据格式
DVB 标准中,TS 流是分包发送的,每一个TS packet 长度为188 (B 还有192 B 和204 B 的包),包的结构为,包头为4 B,负载为184 B。TS 流的解析方式是从PID 为 0 的TS packet 内, 解析出PAT 表,然后根据 PAT 表找到各个节目的PID。解码器根据PMT 表的ES 流(Elementary Streams,基本码流)的PID,区分不同的 TS packet,并按不同的ES 流进行解码。
OTA 升级TS 流数据格式需要按照DVB 标准中的定义进行封装,这里定义了section 的长度为 1 KB,因为每一个TS packet 长度为 188 B,所以每个 section 必须由 N 个TS packet 组成。
2.2 终端设备软件设计
终端设备软件的实现主要包括数据解析模块、数据组包模块、交互信息处理模块、Flash 写入模块等几个部分。终端设备软件的实现流程见图 1。
图1 终端设备软件实现流程图
数据解析模块 :机顶盒成功锁定信号且接收到节目后, 启动PAT 滤波,搜索 OTA 业务所在的频点信息及业务标识符, 得到OTA 业务所在PMT 的节目号,根据业务标识符与节目号匹配得到OTA 业务PMT 表的PID。对于数字卫星广播系统, 过滤 NIT 表分析其中描述符 descriptor_tag 为 0x43 的传送系统描述符 satellite_delivery_system_descriptor,根据本机OUI(OrganizationUniqueIdentifier,升级业务厂家唯一标识符),获取升级数据基本流的PID。
根据DSI 信息,得到机顶盒 OUI 对应的所有组,并存储组所对应的信息,包括组标识符和组名。再根据组标识符过滤 DII 信息,并保存该组所有的模块信息,包括模块标识符, 模块段数据大小,升级数据主次版本号和组名等。
数据组包模块 :在对升级数据进行组包过程中,首先会得到所下载的数据的版本号,然后和终端设备中的软件版本号进行比较,当前机顶盒软件版本号低于TS 流OTA 数据软件版本号时,则会进行数据的更新,否则中断数据下载过程,结束OTA 升级。对 TS 流的过滤是按 TS packet 进行的,而我们的 TS section 长度固定为 1 KB,也就是每个TS section 需要分成多个TS packet 进行组包。
Filter 根据 OTA 数据基本流的PID 过滤数据,循环查找TS 流,得到有效的OTA 数据对应的 TS packet。且在检测过程中,若数据包丢失,则需要 Filter 再次进行丢失包的滤取, 直到所有的DDB 数据全部下载完成。还需要根据 OTA 升级TS 流的数据格式,去掉包头和将BIN 文件打包成 TS 流时的增加的数据部分。组包完成后,需要把最终的 OTA 升级数据暂存于内存中。
交互信息处理模块 :在整个数据下载和组包过程中,还必须完成人机交互。在此处通过消息机制去实现,如当检测到下载的数据的版本号低于当前软件的版本号,会向用户界面发送一个版本号有误的消息,用户界面接收到这个消息后,再提示用户。当异常情况出现,如突然终端设备无信号时,发送用户界面终止OTA 升级的消息,用户界面接收到这个消息后, 作出终止OTA 升级的命令。
Flash写入模块 :数据下载完成后是暂存于终端设备的内存中的,需要将 OTA升级数据中用户ID,数据大小等和终端设备存储于Flash中的数据进行相关的比较。满足升级条件后, 需要把下载得到的数据写到Flash中,同时提示用户升级过程开始,以及升级数据完成的进度。数据写入成功后,会重新启动机顶盒,通过查看升级后的软件相关信息,完成OTA升级成功的确认。
3 结 语
本文对OTA 功能在机顶盒上的设计与实现进行了详细的阐述,对 OTA 升级数据封装格式也进行了剖析。数字卫星广播系统在世界各地得到了广泛的应用,OTA 在线升级功能增加了用户更新软件的自由度,有利于数字电视业务更好的发展。
参 考文献
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.