DAB电子节目指南的解码设计及其实现方案
目前在许多国家和地区已经有了DAB广播,特别是在欧洲和亚洲的一些国家和地区DAB覆盖率很高,且已经成功实现商业化。伴随DAB技术在中国的推广应用,市场对DAB接收机的需求也越来越迫切。
从技术原理和标准来说,DAB接收机通常包括三个模块:RF解调模块、基带解码(信道解码和音频解码)模块和控制模块。其中控制模块主要用于快速信息通道(FIC)解码的实现和人机界面的显示和控制。电子节目指南(EPG)[1]给用户提供音频和各种数据业务的节目说明信息,它在FIC中声明,通过主业务信道(MSC)传输,通常作为人机界面的一部分,给用户提供可选节目的信息,是DAB接收机的重要组成部分。本文主要针对英国BBC和Digital One广播的EPG数据,采用西芯微电子公司的ID200 DAB基带解码芯片和TI公司的MSP430等器件,提出对EPG信息的软件解码方案并实现。该项目的结果将被用于西芯微电子公司的DAB/DMB接收机评估板中。
EPG介绍
1. EPG传送内容
在DAB系统中,EPG用来传输音频和各种数据业务的节目说明信息,经接收终端解码后将这些说明信息显示给用户,以方便用户选择节目。这些说明信息主要包括信号群(一个固定频率上的所有电台称为一个信号群)说明信息、业务(各种节目的统称)说明信息以及节目时间表、节目说明信息等与业务和业务内容相关的说明信息。
2. EPG编码结构
在DAB广播站发送端,音频和各种数据业务的节目说明信息首先被处理成可扩展置标语言(XML)[2]格式的文件,在这一过程中,为了描述节目相关的说明信息采用了如图1所示的层次嵌套结构描述EPG信息中的音频和各种数据业务的节目说明信息之间的层次关系。
EPG中用元素[3]表示相关信息的统称,元素内部可包含多个其它元素和属性;属性[3]表达具体含义,比如节目的起始时间、结束时间等。该结构体现了不同层次元素之间的从属关系,以及属性与元素的所属关系。最外层为父元素,父元素的属性和其子元素属于同一层,类似的,子元素的属性和二级子元素属于同一层。各级元素有其独有的属性,属性值代表了具体的含义。
图1:EPG编码结构
在DAB接收端,EPG解码的目标就是将各级元素及其对应属性值以适合液晶屏幕显示和人们看懂的方式为表示出来。父元素是相对的,任何一级的元素的编码结构都相同,都是标签(tag),长度(len)和值(value)的组合,tag标识不同的元素和属性,len表明value的长度,value是属性的值,或者是下级元素和属性。这样在解码端可以方便地实现有选择的解码,对不感兴趣的元素可以直接跳过Len长度的数据,为高效解码提供了可能途径。
3. EPG的传输
EPG的编码流程如图2所示。将应用层的待传输文件即经过EPG编码的文件,经过多媒体对象传输(MOT)编码器产生完整的包括附加信息在内的MOT对象。把这些对象切割成适当大小的块,接着将这些块转化成适合DAB传送的数据包,通过包模式[4]或者在X-PAD[4]数据区来传送。
图2:EPG编解码流程示意图
a. 传输层数据处理
经过EPG编码之后的码流采用MOT数据传输协议传输。为了便于灵活的处理大量的数据(如File),MOT编码器将对象(在正文前面加上头即成为对象)分割成多个块,如图3所示。
图3:MOT对象的块处理过程
从图3中可以看出原始文件首先被加上头,然后头信息和正文分别被独立地分割成许多的块,然后给每个块也分别分配一个头,用来标识块的大小以及在传输中的重复次数等重要信息。最后头信息块和正文信息块组成不同类型的MSC数据组,数据组的类型及其它相关的信息都在MSC数据组头中定义。 {{分页}}
b. 网络层数据处理
DAB系统中,包含MOT数据的数据组可以通过包模式和X-PAD数据通道两种方式来传送。这里仅以包模式为例来说明数据处理。将包含MOT的数据组打包,给每个包分别加上包头和包尾信息,以数据包的形式在DAB信道中传输(如图4所示)。
图4:MSC数据组打包过程
EPG解码的软件实现
当有大量的EPG信息需要传送的时候,常以包模式传输,因此这里以包模式来讨论。
EPG的解码过程需要先从网络层开始,即先解包,然后处理传输层,即MOT解码,最后处理应用层,即EPG解码。但是由于整个过程最终要在便携设备上实现,不可能一层一层的解码,因此我们采取的方法是每收到一个包就一直处理到EPG解码完成,然后再处理下一个包。
解包的过程就是去掉包头包尾,从而恢复MSC数据组。包头中提供包的长度以及包在MSC数据组中的位置等重要信息。包尾用作CRC[3]校验,为了简化软件设计可以省去CRC校验过程,处理时直接跳过包尾即可。另外,处理CRC校验对处理器要求较严格,又由于DAB作为广播系统,它的EPG信息本身就被反复重传,所以没有必要浪费资源,可以省去CRC校验过程。后面的解码过程中还将多次遇到不同层次的CRC校验,都可以跳过不处理。
解MSC数据组过程同样也是去掉数据组的首尾,恢复出正文的块,将块按照数据组的类型分类并按顺序组合,即可恢复正文内容。再对正文进行EPG解码,则最终实现EPG解码。
另外值得注意的是,根据DAB的EPG协议,EPG解码有两个Profile可供选择,分别是Basic Profile和Advance Profile[3],需根据硬件资源进行选择。由于本设计针对便携设备,选择的处理器是较为低端的产品,所以选择Basic Profile,这样对硬件要求和处理速度要求都较低。具体EPG解码流程如图5所示。
图5:具体的EPG解码流程图
EPG解码的硬件电路
本设计方案中采用的DAB解码芯片是西芯微电子公司的ID200 DAB。ID200能对Eureka-147标准的DAB传输帧进行全速解码,包括数字混频、同步/跟踪和解调,可同时对传输帧内的两路音频、数据或视频节目进行解码,解码后的音频节目可以通过片内MPEG L2音频解码器播放,而数据/视频节目可以通过SPI接口送出,用其他器件进一步处理直到显示。 {{分页}}
采用的MCU是TI公司的MSP430F147处理器,它是超低功耗Flash型16位RISC指令集单片机,具有强大的处理能力、丰富的片上外围模块和方便的开发方式。它提供32kb的FLASH ROM、1kb RAM。同时为了适应低端便携DAB接收机的要求,所以采用Basic Profile来实现EPG解码。
本设计的硬件原理框图如图6所示,首先DAB广播进入RF模块后,被转换为中频信号,经过A/D转换后送入基带解码模块,进行信道和音频解码,同时基带解码模块将FIC信息送入MCU进行软件解码。对于EPG解码,MCU首先对FIC进行分析,判断选择与EPG相关的MSC,然后从基带解码模块中读取相关数据,再对其进行EPG解码,最后将解码后的EPG数据送至显示设备。
本文小结
本设计利用单片机实现对DAB EPG数据信息的软件解码,并将其作为DAB接收机人机界面中的一个模块。这种设计方法不仅可以降低基带解码模块的硬件复杂度,而且有利于根据实际情况灵活地对产品进行软件升级,同时留出下一层的软件解码接口,方便针对更高级MCU而采用Advanced Profile EPG协议的升级应用。
参考文献:
[1] Digital Audio Broadcasting (DAB);Multimedia Object Transfer (MOT) Protocol. ETSI EN 301 234 . 2006.1.
[2] Digital Audio Broadcasting (DAB); XML Specification for DAB Electronic Programme Guide (EPG). ETSI TS 102 818 .2006.2.
[3] Digital Audio Broadcasting (DAB); Digital Radio Mondiale (DRM);Transportation and Binary Encoding Specification for Electronic Programme Guide (EPG). ETSI TS 102 371 .2005.1.
[4] Mingying Lu, Guoyu Wang, Hongsheng Zhang , Embedded DAB Decoder IP for 3G/4G Mobile Application, 2005 Global Mobile Congress, 2005.10:236-240
[5] Radio broadcasting systems; Digital Audio Broadcasting (DAB) to mobile, portable and fixed receivers.ETSI EN 300 401.2006.1
评论