搜索历史
热搜词
单向式DVB—C/S机顶盒的设计与实现
DVBCN数字电视中文网 | 2010-08-06 14:00

1 引言

目前,就解码芯片而言有很多芯片可供选择。除了完成基本的音视频解码功能外,还应该从以下几个方面加以考虑:第一,对条件接收和交互功能的支持;第二,含有标准硬盘接口,支持对TS流的存储;第三,较低的芯片成本;第四,较好的可扩充性和兼容性;第五,较低的开发成本和较快的开发周期等。

从以上几点出发,本文选择ST公司的用于低端机顶盒产品的高性能单片解码芯片STi55 18来实现DVB-C和DVB—S机顶盒方案。

2 芯片内部结构和主要特征

STi55 18是单片MPEG音视频解码芯片,集成了32位的速度达81 MHz的CPU。主要特征如下:
(1) 集成的32bit CPU,2 KB数据cache (缓存),2 KB指令cache,另有4 KB的SRAM 可配置成数据cach/~;
(2) 音频解码支持Dolby5.1声道/MPEG-2多声道;
(3)视频解码支持MPEG2 MP@ML,可编程实现Zoom—in/Zoom-out功能;
(4)支持2-8 bit/pixel OSD;
(5)兼容PAL/NTSC/SECAM,支持10 bit DAC的CVBS,Y/C,RGB,YUV输出格式;
(6) 共享的SDRAM 存储器接口,支持1×16bit或2x16 Mbit或lx64 Mbit的125 MHz SDRAM;
(7) 前端接口支持串行/并行/ATAPI接口,兼容DVD,VCD,SVCD和CD—DA格式,硬件sector过滤器,集成CSS解密;(8)硬件TS流解复用支持并/串输入,DES/DVB解扰和32路PID;
(9) 集成多种外围接口,包括2个UART,FC接口控制器,2个SMARTCARD,MODEM 及红外收发等。更详细的芯片介绍请参阅该芯片手册。

3 系统方案与实现

DVB-C和DVB-S主要区别在于信道调制方法不同, 因此对于机顶盒系统的组成和实现而言,选用与各自调制方式对应的不同的调谐器和解调芯片,再配以相同的后端解码和显示模块即可。从系统设计框图(图1)可以获得整个系统的更为直观的印象。
DVB—C l 前端模块存储器模块FLASH,SDRAM。E~PROMAV输出模块视频滤波放大音频D/A,放大外围接口模块RS-232,SMARTCARD,前面板,D1数字视频接口等

3.1前端模块

DVB-C机顶盒前端选用Thomson公司的一体化前端模块DCF87 10。它包含一个VHF/UHF调谐器(Zarlink公司的SP5730,频率范围51-833 MHz),和一个单片QAM 解调器(ST的STV0297)。提供并行/串行MPEG TS流输出接口, 可与STi5518直接无缝连接对它的调谐、频带改变、初始化和控制通过FC总线由STi5518完成。DVB-S机顶盒前端选用国产的一体化前端模块DSQ-3W2001,该模块包含一个卫星调谐器(Philips公司的TSA5059), 和一个单片QPSK解调芯片(ST的STV0299)以及FEC电路。对串/并行TS流输出的控制也是通过PC总线实现。

3.2 存储器模块

存储器模块包含I片8 Mbit FLASH,I片或2片64 Mbit SDRAM (大小可扩充), 和一片64 KbitE2PRoM。FLASH 用于存储机顶盒运行程序。E2PRoM 用于存储一些用户开机状态、频道参数。I片占用SMI空间的SDRAM 用于存储音视频解码数据、OSD位图,同时还存储应用程序运行时的数据。如果应用程序比较复杂,I片SDRAM 不够用时可再加I片占用EMI空间的SDRAM, 使应用程序在这个区域中运行,将SMI空间的SDRAM 全部用作音视频解码数据和OSD 位图的缓存区。两片SDRAM 占用不同的地址空间,它STi5518芯片上分别有对应的接口引脚,这种配置显著提高了系统性能。

对于一个比较简单的应用程序来说,配置1个8 Mbit FLASH,1个64 Mbit SDRAM 和1个64 KbitE2PRoM 就足可完成任务了。在笔者设计的DVB-S机顶盒中,就采用了这种配置。而对于应用程序较复杂的情况,如在机顶盒平台上运行中间件,就需要有更多的程序和数据存储空间。用于存储程序的FLASH 在不外加逻辑的条件下, 由于受到Sti5518引出的地址线数目的限制,最大可以达到32 Mbit,即4 MB。如果想再扩大,例如扩大为8 MB,可以外加逻辑电路,利用EMI的Bank选通端作为最高位的地址线,使这8 MB存储空间的物理地址跨在2个Bank之间,每个Bank各占4MB。在DVB-C机顶盒方案中,笔者就是采用了这样的方法,实现了8MB FLASH,64 Mbit SDRAM(位于SMI区)和128Mbit SDRAM(位于EMI区)配置,从而为中间件的运行提供了足够的空间。

3.3 输出模块

&n[FS:Page]bsp; 输出包含音视频输出和串口输出。Sti5518可直接输出数字或模拟视频信号。数字信号可直接连接数字设备。模拟信号格式含CVBS,Y/C,YuV,RGB。输出信号经过“1r”形滤波和放大后送往显示设备。STi5518输出的音频PCM 信号通过外接的CS4334进行D/A转换后再经过LM833模拟放大送往音频播放设备。

3.4 其它外设接口和可选CI模块

其它外设接口均由STi5518直接提供; 而可选的CI模块则可由一片STV0700和PCMCIA接口组成,它可根据功能需求确定是否要加入这个模块。在本设计中该部分没有包含在内,故在此不作详细介绍。

4 软件结构及实现

4.1 软件结构

DVB—S和DVB—C 的软件层次结构如图2所示。
整个软件可以分为操作系统、底层驱动和上层应用三个层次。操作系统采用的是ST提供的专用操作系统STLite/OS20, 但也可以支持通用操作系统如pSOS。底层驱动主要对硬件进行操作,屏蔽硬件特性,为应用程序提供统一和方便的接口。ST提供了基本的驱动接口,在开发过程中则可根据需要来增加和修改适当的模块,如前端(TUNER)~ 调、前面板的LED显示、遥控接收、FLASH 存储和高级图形API等。软件开发的很多工作集中在上层应用部分,它们包括节目数据管理及存储、显示和交互界面等。

4.2 中文字库的实现

字库一般可分为矢量字库和点阵字库两类,前者可以被无限缩放,而后者则大小固定。若要实现不同大小字体显示,则需要不同的点阵字库,但前者存储数据量大而且显示时运算复杂,而后者的单个字库数据量小且显示时运算简单。由于存储空间和运算能力限制,在机顶盒中一般使用点阵字库。所谓点阵,就是字符由mxn的点矩阵来标记,需要显示的地方记为1,并用一个数据结构存储下来,点阵字库就是这样的数据结构的集合。汉字有很多标准的编码字符集,但最常用的是GB2312—80编码字符集,共收录6 763个汉字,其中又可以分为一级汉字(3 755个)和二级汉字。在实现时可以根据存储容量的大小来确定所需要的汉字集。在低端的机顶盒中由于存储容量有限,可以只实现应用程序中出现的汉字的字库。在制作汉字字库时使用了标准的bdf(GlyphBitmap Distribution Format)文件,该文件格式中包含了字体的点阵和显示位置及尺寸信息,这些信息可以为计算字符串显示时所需要的长度和高度提供便利。将bdf文件转换为程序所需的格式,然后从中挑选所需要的汉字,和ASCII字符集合在一起即可构成应用程序的字库。另外可以做一个汉字字符编码和它在字库中的索引查找表,这样在显示汉字时就可以直接输入汉字,然后通过查找表得到该汉字的点阵。这样做可以提高中文显示的灵活性。

4.3 用户界面程序

友好美观的OSD选单程序将会使所设计的机顶盒有更大的用户群。在选单程序中充分考虑了用户可能有的各种需求, 在添加了中文字库之后,它将有望成为中国市场上绝对有竞争力的一款机顶盒。

4.4 节目信息的FLASH 存储

ST原来的Demo程序没有将解析出来的节目信息存储在外部非易失存储器上, 而是直接存在SDRAM 中,这样就导致每次开机必须重新建立节目信息数据库,大大增加了机顶盒从开机到播放上次关机时正在收看的节目的时间。对于卫星机顶盒,首先预存一些转发器频道到机顶盒的FLASH 里面,通过机顶盒的软件分析出各个转发器频道中所包含的节目信息, 并将这些节目信息也存储到FLASH 中,这样事实上只需要在生产阶段将节目信息一次性灌入FLASH 中,出厂以后用户只输入节目号或者上一个频道、下一个频道就.-I以收看相应的电视节目。与此同时,选单软件还为用户提供了增加转发器频道的功能。机顶盒中可以存储的节目数量只与FLASH 的存储容量有关。FLASH与SDRAM 有所不同,FLASH 的存储具有这样的特点:整个芯片被分为若干个BLOCK,若要对写过的单元进行重写,则必须先擦除这个单元所在的BLOCK,擦除和写的速度相对较慢,擦除一个BLOCK和写一个单元分别需要1 8和10 la,S左右的时间。为了减少存储时间和擦除/写的次数,在存储一个信息块的时候并不是先把整个BLOCK擦掉再把数据写进去,而是接着上次没写过的存储单元继续写直到这个BLOCK被写完, 然后再擦除这个块。于是整个设计方案为:把整个BLOCK分成若干个固定大小的区间,区间的大小约为信息块大小加两字节,在存储时,在信息块的头部和尾部分别加一个0字节,所以如果读取区间的头字节为0则表明这个区间已经被写过了(BLOCK被擦除后的状态是FF),如果读取区间的尾字节为0则表明信息块写到这个区间完成(没有掉电或关机发生)。系统实现和几点调试经验目前,按照上述方案已经设计并实现了DVB-C和DVB-S的机顶盒系统样机。系统调试过程中有3点值得注意的问题:

第一,电源电压对系统工作稳定性的影响。在测试中发现,3.3 V供电FLASH 芯片对电源电压的要求比较苛刻, 电源电压偏低0.2 V则有可能导致无法对FLASH 进行正常的读写操作。

第二,RESET信号的产生要保证该信号有足够的低电平响应时间, 以使所有的芯片都能够完全RESET。

第三,时钟等关键信号线的布线问题。在布线中要特别注意系统时钟线,TS流输入信号的时钟线,TS流有效线等关键信号线的布线一定要尽可能短,并且线两侧最好是地线或者地平面,从而减小和别的信号间的干扰。整个样机实现成本低,功能丰富,PCB板面积小(18 emx13 cm),性能优良,在样机基础上,可以再方便地进行硬盘接口扩展,实现数字录像机功能,或接Modem 实现交互功能, 或接cI模块实现[FS:Page]符合DVB-CI的条件接收等,具有很好的可扩充性。

6 机顶盒软硬件的改进

6.1 卫星机顶盒成本大大降低

目前在国内市场上的卫星机顶盒大都是低端产品, 降低成本成了各大厂商迫切需求。与ST的Demo版相比,此次设计的机顶盒成本降低了很多,而基本音视频输出性能相同, 去掉与RS-232串口和SCART输出,用分立元件替代原来视频放大输出芯片,去掉DVB-CI芯片,高频头也采用了国产的。

6.2 有线机顶盒存储器最大

由于中国目前尚未正式颁布有线电视广播标准,所以笔者设计的DVB—C机顶盒主要是为中间件的开发提供一个硬件平台,因此,根据中间件的需要该机顶盒的SDRAM 存储器总共有24 MB,而FLASH也加大到了8 MB,这是sTi5518芯片所能支持的最大的存储容量。

6.3 卫星机顶盒软件的改进

卫星机顶盒的选单程序比ST的Demo软件友好美观,更易于操作,并且实现了中文显示。节目信L号ASH存储使用户更易于使用,操作起来完全与模拟电视相同,不需要了解更多的数字卫星广播方面的知识。

阅读 参与讨论 评论(0)

强化五一假期效应 虹魔方发力大屏运营
 04月28日
强化五一假期效应 虹魔方发力大屏运营
倪健中会长:推动中国发起全球元宇宙大会联合会
 01月04日
倪健中会长:推动中国发起全球元宇宙大会联合会
第五届数智中国科技周·全球元宇宙大会(深圳站)收官战报...
 01月04日
第五届数智中国科技周·全球元宇宙大会(深圳站)收官战报来啦!
学术盛宴!人工智能国际治理学术论坛12月18日下午重磅举办!
 01月02日
学术盛宴!人工智能国际治理学术论坛12月18日下午重磅举办!
深广电王斌:数字科技引领媒体融合
 01月02日
深广电王斌:数字科技引领媒体融合