USB数字电视接收棒的设计与实现
扫描二维码
随时随地手机看文章
0 引 言
近年来,电视数字化的发展十分迅速,我国于2007年8月正式实施自主开发的国家地面数字电视广播DMB-TH标准,基于DMB-TH标准的便携产品成为数字电视技术及产业发展的热点,市场潜力巨大。USB 2.0标准于2004年4月推出,增加了高速模式,将USB接口的速度提高到了480 Mb/s,是原来全速模式速度的40倍,拓展了USB接口的应用范围,使得通过USB接口传输高速率的标清乃至高清数字电视变为可能。
本文所研究与设计的USB数字电视接收棒正是基于USB 2.0以及DMB-TH标准的便携式设备,它可实现在笔记本电脑,台式机等带USB接口的设备上对数字电视的接收,并通过相应的上层播放软件实时的播放数字电视节目。
1 系统总体设计方案
1.1 系统框架
USB数字电视接收棒系统主要有以下4个模块构成,如图1为系统的原理图。
(1)高频头:负责将天线接收到的高频信号转换为基带信号,并将信号传输至信道解调器。
(2)信道解调器:完成自动增益控制、PN帧头捕获、信道估计与均衡、自动侦测与锁频、FFT变换等,将基带信号转换成TS码流输出,并将TS码流输至USB传输控制芯片。
(3)USB传输控制模块:该模块作为主控模块,加载相应的驱动程序后,通过I2C总线完成对高频头和信道解调器的初始化和后续控制,并将TS码流传输至PC机端。
(4)PC机端应用软件:实现对TS码流的接收,并通过播放器实时播放节目。
1.2 硬件资源
硬件方面,由于USB数字电视接收棒是一种体积小,功耗低,移动性好的便携式设备,且针对的是国标DMB-TH,所以选择的芯片也必须在这些方面特别考虑。经过研究,高频头选择Analog Device公司的AD-MTV102,信道解调芯片选择凌汛公司的LGS-8GL5芯片,它们都支持DMB-TH标准,USB传输控制芯片选择Cypress公司的CY7C68013芯片,由这三块芯片搭建的硬件系统只需要USB接口的5 V电压就可以满足其功耗要求,且体积小巧(普通U盘大小),便于携带,完全满足系统的设计要求。
1.3 软件资源
软件方面,PC机端应用程序的核心部分是实时播放器,需要播放的是TS码流,这是MPEG-2标准定义的一种码流。本方案采用基于DirectShow技术搭建的媒体播放器。DirectShow是DirectX家族中的成员,它为在Windows平台上处理各种格式的多媒体文件的回放、音视频采集等高性能要求的多媒体应用提供了完整的解决方案,重要的是它很好地支持了MPEG-2标准,它使应用程序开发人员从复杂的数据传输、硬件差异、同步性等工作解脱出来,总体应用框架和底层工作由DirectShow来完成,大大加快了开发进度。
2 硬件驱动程序的设计
硬件驱动程序是系统设计中很关键的一个部分,它直接关系到各硬件芯片是否能正常稳定的工作。硬件的驱动是由主控芯片来完成,在本方案中将uSB传输控制芯片CY7C68013作为主控芯片,它内置增强型的8051内核,通过I2C总线来控制前端的高频头和信道解调芯片,完成对前端的驱动。
硬件驱动程序设计主要是根据硬件电路的设计特点来编写CY7C68013的固件程序。固件程序可以处理来自系统的USB标准请求,完成各种数据的交换工作和事物处理。CypreSS公司提供了固件程序框架,用户可在此框架上增加自己的功能代码以完成相应功能。整个硬件驱动流程图如图2所示。
(1)设定USB芯片的工作方式为Slave FIFO,Au-to In模式,利用端点2(设为1 024×4 b大小)进行传输。在这种模式下USB芯片内的数据传输不需要8051内核的干预,利用CY7C68013特有的量子FIFO自动完成数据的传输,这样可以保证数据的传输速率不受到8051内核的频率限制而达到一个较高的速度,满足USB 2.0高速传输的要求。
(2)打开I2C总线,初始化高频头,延迟1 s后设定高频头的扫描频率,这里延迟1 s是为了保证高频头在初始化后能正常稳定的工作,是芯片在技术上的要求。
(3)初始化信道解调器,并将其设定为自动模式,使其自动检测信号参数并将信息反馈给高频头,协调两块芯片之间的某些参数(如增益等),使两者配合工作。
(4)判断信号是否锁定,如未锁定,再判断是否是第一次进行锁频,如果先前未曾锁频过则需改变高频头的扫描频率,再次检测,直到锁定。如果曾经锁频过,则无需改变频率,再次自动检测即可。
(5)在锁定信号以后,每间隔5 s再次检测锁定情况,如果失锁则返回第四步再次进行检测。循环判断信号锁定情况的目的是为了避免系统在正常工作时,由于信号质量变差而造成失锁导致系统不能正常工作(例如系统接收时进入隧道等环境),通过定时检测信号锁定情况就可以在发生此类事件后进行必要的操作,让系统重新正常工作。
3 PC机应用程序设计
3.1 应用程序的主要功能
PC机应用程序是用户与底层资源信息交互的一个平台。在本方案中,应用程序主要完成以下两大功能。
(1)从USB端口接收CY7C68013所传输进来的TS码流,存入缓冲区内。这个功能相对简单,利用Cy-press公司提供的通用驱动程序和_些相应的API函数,在打开USB设备获得设备句柄之后,设置每次读取数据量的大小,然后开启一个线程循环读取数据,就能连续不断的得到TS码流。其中每次读取数据量的大小对于播放的流畅度影响很大,在本方案中曾经将该参数分别设为1 024 B,8 192 B,10 240 B,30 720 B,61 440 B等数值进行测试比较,发现该参数的值越大播放效果越好,它直接影响着丢包率。最终本方案将该值设为61 440 B,这也是实测所能得到的最大数值,在这个参数下节目播放出来的效果最好。
(2)搭建实时媒体播放器,将所接收到的TS码流解码播放。这是PC机应用程序的核心部分。在选择搭建实时媒体播放器的策略上有两种方法:一是利用开源的播放器进行修改,但绝大多数开源播放器都是基于Linux平台下编写的,要在Windows平台下使用需要经过移植才行,移植工作量很大,且移植后播放器稳定性较难控制。另一个是基于DirectShow技术,自行编写播放器。DirectShow是微软DirectX家族中的成员,与Windows有着天然的“血缘”关系,是Windows平台下搭建媒体播放器的最佳选择。并且微软提供了相应的开发套件,使得开发工作量得以减少,开发周期大大缩短。基于以上原因,本方案选择基于DirectShow技术搭建实时媒体播放器。
3.2 DirectShow技术在系统中的应用
在DirectShow技术中,一个播放器由多个功能不同的Filter连接而成,这些Filter不是独立工作,而是互相联系、互相配合,是一个有机的整体,这个整体称之为Filter Graph。一般将Filter分为以下几类,见表1。
本系统搭建的Filter Graph如图3所示。
4 实验结果
在完成了USB数字电视接收棒的系统总体方案设计之后,根据所选用的芯片,参照相应技术手册,设计了电路原理图并制作了印刷电路板。在硬件制作期间,同时进行软件的开发工作。在硬件制作完成后,利用KEILC和VC6++进行了调试。利用笔记本电脑在室内和运动状态下分别进行了长时间(12 h)测试,USB端口接收数据的速度稳定在1.8 MB/s。测得厦门地区国标DMB-TH数字电视的参数见表2。
实验结果表明:无论在静止和运动状态下,整个系统长时间工作稳定,体积小,功耗低,接收效果好,误码率低,音视频同步,节目播放清晰流畅,频道切换小于1 s,达到了设计要求。播放效果如图4所示,播放频道为厦门卫视,图中右下脚为USB数字电视接收棒及配套天线。
5 结 语
本文首先介绍了USB数字电视接收棒的系统总体设计方案,然后详细介绍了系统实现的两个关键点——硬件驱动程序的设计和PC主机应用程序的设计。随着国标DMB-TH的标准的实施和推广,各地地面数字电视节目的增多,USB数字电视接收棒作为便携式、可热插拔的数字电视接收设备必将受到人们的青睐,实用价值和市场前景看好。