一种基于STB7100芯片的IPTV机顶盒的设计方案
IPTV是Internet Protocol Television的缩写,即交互式网络电视,是一种利用宽带有线电视网,集互联网、多媒体、通讯等多种技术于一体,向家庭用户提供包括数字电视在内的多种交互式服务的技术。
机顶盒(Set Top Box,STB)是一个连接电视机与外部信号源的设备。它可以将压缩的数字信号转成电视内容,并在电视机上显示出来。
人们对于高质量高清晰影音服务的需求使得高清电视的发展成为必然趋势,高清电视与IPTV的结合将成为当前网络方面最具发展潜力和盈利前景的应用之一。
2总体设计
IPTV机顶盒嵌入式系统的设计包括硬件设计和软件设计两部分。硬件设计包括网络的接入、音频与视频的解码和输出等。软件设计也占有重要地位,因为电视节目内容的重现、操作界面的实现以及机顶盒和因特网互联等都需要软件来实现。
总体设计主要包括以下内容:硬件平台、嵌入式操作系统、设备驱动程序、流媒体传输协议、流媒体播放器、图形化的系统平台、网络浏览器、支持软件远程升级等。
根据高清IPTV机顶盒所具备的功能,本文选择ST公司的STB7100芯片进行设计。该产品支持H.264/AVC和MPEG-2高清标准,可实现高性能多标准的视频解码电路和机顶盒所需的功能。STB7100的嵌入式操作系统可采用Linux、OS21、WinCE中任一种,为上层的软件开发提供了很大的选择余地。
3硬件设计
制定的硬件结构总体框架如图l所示,选用专用的机顶盒解码芯片作为主控CPU,并设计主控芯片的外围电路。本地存储器接口模块(Local Memory Interface,LMI)的32位DDR存储器用于系统运行和音视频数据存储;外部存储器接口模块(External Memory Interface,EMI)用于提供对各种外设的支持,包括Flash、ROM和网卡等。音视频输出模块用于输出音视频信号;外部接口完成CPU对USB、SATA、UART等功能模块的控制功能。
3.1主控芯片
主控芯片选用STB7100,它性价比很高,在一个单片上集成了STB的所有功能,可同时解码多个高清视频流,并把合成的视频输出到2个电视机。它是一款集成了SH4-202 32位RISC CPU核,专门用于MPEG-2、H.264/AVC音视频解码的集成电路。其指令CACHE(高速缓冲存储器)和数据CACHE分设,其中指令CACHE为16kB,数据CACHE为32kB,并且两者都为两路组相联CACHE。它支持标清和高清两路显示,支持PAL/NTSC&SECAM编码输出,支持DVI/HDMI数字高清视频输出,支持S/PDIF数字音频输出。音视频解码器支持多编码格式、支持DVD、SVCD子画面,前端接口兼容DVD、VCD、SVCD、CD-DA,支持I2S、串口、并口、USB2.0和SATA接口,硬件TS解复用器支持串/并输入。它集成了丰富的外围接口:I2C控制器、两个SmartCards接口、两个PWM输出、四个通用异步收发器(UART),支持Modem,还有48个可编程I/O口,IR发送/接收器。它支持ANSI C编译器和库,给开发带来极大的方便。其指令集简单,支持高级语言,编程方便。
主频为266MHz的高性能ST40是器件的CPU核心,负责控制芯片的其他部分,包括与2个ST231CPU之间的通信。还有2个主频都是400MHz的ST231CPU用于处理音频和视频。
3.2本地存储器接口模块(LMI)
为满足不同类型视频的要求,必须有足够的内存空间用于存储和解码音视频流。本地存储器接口模块选择64Mbyte大小的内存,用于H.264解码或MPEG-2双向解码。其中,DDR一个内存芯片存在4个Bank,内部块寻址由BA0和BAl决定,可寻址4个内存块。2个32Mbyte内存芯片同时工作,用同一个片选信号CS控制,也用相同的BA0和BAl信号来控制Bank的选择。
3.3外部存储器接口模块(EMI)
外部存储器接口(EMI)是一个16位通用接口,可以连接系统Flash、同步Flash或者是ATAPI设备等。
外部地址最多可有五个不同的可用段,每一个都可以配置其特定的存储时序,并有单独的片选信号。其中的一个段提供与PC卡兼容的选通脉冲,用于连接Cable Card、ATAPI或者DVB-CI模块接口。
3.4传输流子系统
传输流子系统包含TS流合并/路由器和一个可编程TS传输流接口。STB7100有两个外部TS输入口和一个双向TS口,这些端口均可以配置成串行或是并行格式。TS合并/路由器有2路输出,1路输出连接到PTI上,另一路则可通过TS I/O端口对外输出。
NRSS-A接口允许STB7100和一个NRSS-A兼容的CA模块进行数据收发。可编程TS接口(PTI)可同时对三个TS流进行PID过滤、解复用、解扰和数据过滤,同时提取具有时间戳的PCR,供时钟恢复和视音频同步。PTI可使用三种过滤模式提供PID过滤,匹配的数据分段被传输到内存缓冲区中由软件进行处理。PTI最大可同时处理96个PID。
3.5视频及显示处理子系统
STB7100的视频解码器适用于高清、标清视频流解码。解码器采用软、硬件混合的架构,具有硬件数据通道和400MHz的ST231 CPU内核,可方便地进行软件升级。H.264/MPEG-2视频解码器可以用于双MPEG-2 MP@HL流解码。
输入本系统的视频可以是经解码的视频,也可以是标清未压缩数字视频信号。STB7100可同时输出两路视频信号。视频及显示处理子系统中集成了一个分离视频时序发生器(VTGs),确保两路视频可以格式不同。此外,视频及显示处理子系统还负责完成源视频到显示视频的格式转换。辅助显示处理器对视频格式的转换被限制在标清格式内,其输出供VCR或者第二台电视机使用。
主视频显示输出包含5个图层,从底向上分别是背景层、图形层GDP1、主视频显示层、图形层GDP2和光标层。辅助视频显示输出包含2个图层,从底向上分别是辅助视频显示层和图形层GDP2。
主视频的数字输出是HDMI,模拟输出是RGB或YPbPr,也支持720P、1080I、480P/576P、480I/576I等多种视频格式。辅助视频只输出模拟信号,视频格式是Y/C或C
3.6音频子系统
STB7100的音频子系统也采用软、硬件结合架构,集成了一个400MHz ST231 CPU内核用于解码多通道压缩音频流。STB7100的音频解码器支持各种格式,包括MPEG-1/2、AAC-LC、MP3等。音频子系统还集成了一个S/PDIF播放器和两个PCM播放器,这些播放器从内存中读取数据并输出到立体声数模变换器。音频解码器也可以同时解码两个不同的音频编码流。音频子系统能够将被解码的音频与一个存储在内存中的PCM文件进行混合并完成采样率的调整。PCM混合完全由集成的ST231 CPU内核中的软件执行。
4软件设计
机顶盒软件结构分为三层:内核层、中间件层和应用层,如图3所示。内核层包括嵌入式操系统的内核和各种硬件驱动,用于完成对硬件设备的操作,为上层提供支持;中间层将应用层软件和内核层分开,降低应用软件对硬件的依赖性,提高代码的可移植性,这一层承上启下,将应用程序翻译成CPU能够识别的指令,利用硬件设备完成相应的操作,该层主要包括浏览器扩展插件、设备管理、网络管理、媒体控制;应用层可直接由用户操作,实现媒体播放、信息浏览、机顶盒配置等功能。
机顶盒选用STLinux嵌入式操作系统,此操作系统内核可裁剪、移植性好、效率高,还内含了完整的TCP/IP网络协议栈。应用层软件为多线程,线程之间用信号量来同步,完成传输流解复用、MPEG-4或H.264/AVC视频解码、用户界面等功能。
把传统的Linux转化为能应用于嵌入式产品的Linux系统需要解决三个主要问题:Linux所采用的非抢占式事件处理方式、过于冗长的阻塞时间、过于公平的调度原则。
STLinux利用Linux自身所支持的实时能力,在Linux基础上仅对内核做了一些很基本的改动,使其完全成为一个支持抢占式的内核。进程级应答速度无论从平均水平还是最坏情况下都得到显著改善。由于该方式是利用Linux自身所支持的实时能力而没有插入新的内核,所以不会对原来的API产生任何不良影响。
STLinux的调度模块是完全开放的,并且符合GPL对Linux模块的规定,此模块能很好地进行进程选择,从而消除前面所提到的过于冗长的阻塞时间。它采用了比标准Linux更短的时间片,从而满足了实时性要求。
5结语
本文介绍了IPTV基本结构,设计了基于STB7100的高清机顶盒系统。此系统具有强大的音视频处理能力,可以通过丰富的外围接口进行扩展,实现多种功能,例如音视频的播放、网页的浏览、与媒体设备的通信。
暂无评论