耿建平,何学良
(桂林电子科技大学,广西 桂林 541004)
基于SMP8653芯片的高清播放机设计方案,能够实现1080 p分辨力输出,支持H.264,VC-1等视频编码标准和DTS,AC-3等音频编码标准及MKV等封装格式,既可以播放本地储存设备上的文件,也可以通过网络实现视频点播功能[1]。
通过对高清播放机的特点的详细分析,并综合目前国内外高清播放机发展的实际状况,该设计的高清播放机满足以下功能。
为了尽可能满足需求,在媒体接口方面,支持HDMI数字输出接口、CVBS接口、YPbPr分量接口、左/右声道模拟音频输出接口、SPDIF数字音频输出接口。在外设接口方面,支持红外接口,方便用户通过遥控器对播放机进行文件播放、设置等相关操作;为实现本地播放功能,支持了SATA硬盘接口;为实现网络播放功能,还支持了RJ45网络接口;扩展了4个USB接口,实现与移动硬盘或U盘等储存设备的通信,通过USB接口,可以外接无线网卡,实现WiFi无线上网。
高清播放机除了应拥有能输出高清视频图像的能力外,还应拥有强大的高清音频/视频解码能力。此播放机可以解码 MPEG-1/2/4,VC-1,H.264,XVID 等视频编码格式和AC-3,AAC,DTS等音频编码格式及TS,MKV等封装格式[2]。
根据高清播放机的功能需求,以SMP8653为核心的高清播放机硬件结构如图1所示,主要分为4部分:处理器、存储模块、通信模块、音视频模块。存储模块包括外围总线接口(PBI)连接的Flash,本地存储器接口(LMI)连接的SDRAM、E2PROM、硬盘及SD卡;通信模块包括USB接口及网络接口;音视频模块包括模拟音视频输出接口、数字音频输出接口及HDMI接口[3]。
图1 硬件结构图
系统工作原理图如图2所示,系统总线由多路传输分配器分配给各模块使用,处理器从外围输入设备(硬盘、U盘)中读取音视频数据,根据不同的数据信息通过总线分配到音视频处理单元中处理,调用高清视频硬件解码器,对解码后的数据进行块状降噪、伽马校正等处理后输出视频信号,音频数据通过I2S接口送到DAC转换器中转换为模拟信号输出。
图2 系统工作原理图
SMP8653是Sigma Designs于2009年推出的为IPTV与高清播放机而设计的高集成解码芯片[4]。由主处理器模块、视频解码子系统,音视频处理子系统、主接口模块等专用处理模块组成,各模块间使用 G-Bus,M-Bus,V-Bus数据总线相连接。
2.2.1 主处理器模块
SMP8653是一款32 bit RISC处理器,最高工作频率为500 MHz,拥有32 kbyte的指令缓存和32 kbyte的数据缓存,3个中断控制器,2个可编程定时计数器和3个通用异步接收/发送装置和1个智能卡控制器。
2.2.2 视频解码、处理子系统
SMP8653包含有一个高性能的16 bit视频解码器,是一个基于处理器和硬件逻辑处理的解码器,最高运行频率为333 MHz,提供主要的视频解码算法,可解码播放H.264等常见的高清视频编码格式。提供有2D硬件图形加速,拥有优质的显示处理能力,可以高效地读取与解码图形、视频图像信息,并根据接口类型作相应的信号输出。拥有4个DAC模拟输出接口和1个高清多媒体接口,可实现YPbPr,CVBS,HDMI输出接口,所有接口可支持最高1080 p分辨力输出。
2.2.3 音频处理子系统
SMP8653集成有一个基于DSP的32 bit音频处理子系统,可为音频信号的解码提供处理算法及进行解码工作,最高工作频率为333 MHz,这种基于硬件算法的结构为系统提供了高效的执行效率。此音频处理系统可以解码的音频格式有 Dolby True-HD 7.1,MP3,AAC,DTS,AC-3等格式及常见的音频格式,包含3个I2S输出通道、1个S/PDIF输出通道和1个立体声I2S或S/PDIF音频输入通道。
2.3.1 存储单元
SMP8653的存储单元按其接口类型分为5类:PBI总线接口、LMI总线接口、I2C总线接口、SATA接口和SDIO接口。
在PBI总线上外接的NAND Flash采用三星公司的K9F1G08U0B-PCB0,如图 3 所示,其中 D[7:0]为数据传输总线,/RE,/WE为数据读写允许,CLE,ALE为命令及地址锁存允许引脚,R/B为空闲、忙输出标志引脚。为系统扩展了128 Mbyte的程序存储空间,主要用于存储引导程序和应用程序代码,其中应用程序代码在系统启动后通过引导程序由NAND Flash调入到SDRAM中运行,如图3所示。
图3 Flash连接图
在LMI总线接口上外接两片Hynix公司的HY5PS-1G1631CFP,每片容量为64 M×16 bit,为系统提供了容量为64 M×32 bit的DDR2外部存储器,作为用户程序运行过程中的程序代码空间和系统各模块运行中的数据存储器,其连接图及信号流向如图4所示。
图4 SDRAM连接图
2.3.2 音频输出接口
采用AKM半导体公司的AK4420ET数模转换器对数字音频信号进行转换,实现模拟立体声左、右声道输出。AK2400ET包含一个24 bit D/A转换器,采用AKM公司独有的多位调制器结构,包含有开关电容器和连续时间滤波器,在采样频率范围为8~192 kHz,既能改善谐波失真又能保持输出的线性度。通过此数模转换器,可将SMP8653输出的音频数字信号高品质地转换为左/右声道模拟信号输出,其连接如图5所示,其中GP1FA550TZ为光纤数字音频输出接口,BICK,SDTI为音频数据串行时钟数据输入,MCLK为主时钟输入引脚,SMUTE为静音控制。
图5 音频输出连接图
2.3.3 HDMI输出
SMP8653集成HDMI v1.2音/视频输出接口,传输带宽为165 MHz,此处外接1片Silicon公司生产的SLI10121A,支持HDMI v1.3输出,可以高品质地传送未经压缩的高清视频和多声道音频数据,最高数据传输速度达5 Gbit/s,输出图像分辨力最高为1080 p,连接图如图6所示,D[23:0]为视频数据总线,MCLK为主时钟输入,BCLK和SDATA[3:0]为串行时钟和串行数据输入,VSYNC和HSYNC为垂直同步和水平同步信号线。
图6 HDMI接口图
2.3.4 USB控制模块
SMP8653包含有1个独立于系统总线运行的USB2.0控制器,支持高速、全速及低速传输,此处外接了1片Alcor Micro公司生产的AU6254芯片,达到了USB 2.0集线器规范的高速集线器要求,支持了4个USB下行端口,且每个下行端口都内置过电流检测电压控制开关,工作于高速模式并兼容了全速及低速传输,其连接图如图7所示,DM,DP是连接USB控制器的差分信号线,下游的4个USB接口与处理器间的通信都必须通过此信号线,TPS2052为双电源分配转换器,每个TPS2052可以为USB接口提供2路稳定的5 V,500 mA的电源供USB设备使用。
2.3.5 网络管理模块
SMP8653包含有以太网MAC控制功能,只需外接物理层接口即可连接到互联网,与RTL8201CP相结合,提供了连接互联网的接入通道。RTL8201CP是Realtek公司的一款高集成的10/100 Mbit/s以太网控制器,具有物理层编码子层、物理层介质连接设备、双绞线物理媒介子层,其连接图如图8所示,TXD[3:0]和RXD[3:0]是发送与接收信号线,TXC,RXC为发送与接收时钟线,TXEN与RXDV分别为发送允许和接收使能引脚。
图7 USB模块连接图
图8 网络模块连接图
SMP8653支持Win CE和Linux两大操作系统,由于Linux具有源代码开放、软件可裁剪等特点,该设计采用Linux操作系统实现,主要应用软件有图形用户界面、浏览器、播放器等模块[5-6]。高清播放机的全部应用程序软件都运行在实时操作系统上,系统架构如图9所示,从下到上主要分为4个层次,分别为硬件层、核心层、中间层及用户界面层。
图9 系统架构图
核心层主要包括嵌入式Linux操作系统、高清播放机硬件驱动,主要完成对硬件设备的控制,包括所有硬件的初始化、I/O接口操作、调用网络协议等工作。
中间层包括系统抽象层、中间件及字库等各种功能服务模块,主要实现将用户界面层传递下来的命令转化为对底层驱动的控制操作,建立软件模块之间相互操作的机制,屏蔽底层环境的复杂性。
用户界面层主要完成与用户的交互通信工作,根据业务的规划和实现逻辑的不同,可以分为驻留应用程序和下载应用程序两种。通过界面程序,能方便地对存储器和其他接口进行控制,启动图形用户界面后,用户可以使用遥控器进行相关操作。
开发环境的建立主要用到由芯片厂商Sigma Designs公司提供的软件工具包,其建立过程如下[7]:
1)交叉编译工具链的生成。在宿主机上使用“make”命令对toolchain开发包进行编译,编译生成的内容包括编译工具GCC4.0.4,二进制工具合集binutils2.17,调试工具gdb6.5,C库及内核头文件,并创建环境文件“toolchain-path.env”。
2)Bootloader的编译。对boot_loader工具包进行编译,在“bin”目录下生成二进制文件”zboot2.bin”,在这个文件中包括了Xenv及zboot2镜像,在“tools/genxenv/configs”目录下将配置信息文件更名为“xenv.config”。执行“make yamon”命令,在“bin”目录下生成二进制文件“zbimage-yamon”。
3)建立文件系统。编译rootfs工具包,选择busybox 1.2.2.1,在内核源代码包中运行“source rootfspath.env”,从toolchain工具链中向根文件系统加入“runtime”共享库。此时,根文件系统基本建立。
4)编译内核。编译kernel_source工具包,对linux-2.6.15内核文件进行预设置,使用“make modules_install”命令,在根文件目录下生成编译的内核模块,再次在“rootfs”根目录下执行“make”命令,此时,内核模块已集成到根文件系统中。编译内核镜像文件,在“./arch/mips/boot/directory”目录下生成“zbimage-linux-xrpc”的 ROM文件系统镜像。
开发环境建立后,在YAMON命令行下使用load命令可以将zboot、yamon或内核分别下载到目标板中,使用pflash命令将目标代码烧写到目标板中。
该高清播放机的应用软件设计主要分为主控模块,播放器模块,浏览器,系统管理模块,增值业务模块,如图10所示。主控模块负责播放器、浏览器,增值业务、系统管理模块的消息处理与分发;播放器模块主要负责音视频文件的播放,运行和退出时都必须将其消息发送给主控模块;系统管理模块属于浏览器的一个应用,通过系统管理模块,可以查询和设置用户信息、网络状态;增值业务模块主要是实现下载或其他应用软件功能,核心部分是JAVA虚拟机。这里主要对主控模块和播放器模块进行展开。
图10 系统软件功能模块图
主控模块主要负责对播放器、浏览器、系统管理及增值业务进行消息处理与分发,主控模块与各模块的关系如图11所示。主控模块需要向播放器、浏览器、增值业务模块报告系统状态和当前网络状态消息,并接收来自线程监控等模块的消息,调用线程监控子模块和按键事件子模块,完成对线程的监控和对按键事件的分发处理。在按键事件的处理过程中,主控需要访问系统全局变量,用于确定事件的接管对象。
图11 系统主控模块与各模块关系图
播放器模块分为播放管理模块和播放通信模块两个主模块。播放管理模块包含播放器的消息管理、信息管理和状态管理,实现对播放系统消息的集中管理和播放控制功能及系统状态、缓冲状态和视频输出状态的维护等功能;播放通信模块实现GUI消息通信和窗口管理,由消息接收单元接收GUI进程的消息,并完成消息分发,决定消息由接收窗口处理还是提交给消息主控单元。当播放器接收到播放命令后,执行的操作流程如图12所示,主要包括系统初始化、判断是否为音视频文件、文件解析、设置硬件解码器和音视频解码五个步骤,SMP8653集成了完善的音视频硬件解码器,只需将音视频数据按要求送入解码缓冲区,解码工作即可由硬件完成。
图12 播放器播放流程图
系统测试分为上电前检查、电源测试、系统核心部分测试、外围器件测试4个部分[6]。上电前检查是检查芯片和电解电容等有极性器件安装方向是否正确,用万用表测量电源与地、电源与电源之间是否有发生短路等故障。电源测试主要是用示波器测量各组电源的电压及纹波,确保电压输出正常,测量各芯片的电源输入,保证各芯片供电正常。系统核心部分测试主要是对处理器,Flash,SDRAM等系统核心器的测试,保证操作系统能正常加载与运行,利用交叉网线将高清播放机与PC相连,再通过交叉编译工具将程序编译成Linux的目标代码,利用网络下载到播放机中。外围器件测试主要是对USB,SD卡等进行测试,主要测试各器件的时钟、读写控制等关键信号。
通过用电视机做终端显示测试,此高清播放机能实现网络及USB接口连接,支持IEEE 802.3.x协议,可支持网络远程软件升级,可以清晰流畅地播放H.264,VC-1,MKV,MP3等格式媒体文件,最大输出分辨力可以达到1080 p,测试表明此高清播放机工作稳定,输出效果良好,设计达到高清播放机系统要求。
文章主要介绍了基于Sigma Designs的解码芯片SMP8653的高清播放机设计,具有低功耗、可靠性高,功能强等特点,可实现高质量的音视频输出,支持以太网协议IEEE 802.3x,可接收音视频流媒体数据,实现视频点播、多媒体文件存储播放等功能。随着高清播放技术的成熟,高清播放机应该能得到广泛的应用。
[1]沈宜.IPTV 机顶盒的设计与实现[J]. 通信技术,2009,42(7):145-146.
[2]殷月伟,郑烇.基于SMP8654的MKV播放器设计与实现[J].电子技术,2010(6):46-48.
[3]张新安.基于STi7105的AVS IPTV机顶盒的设计与实现[J].电视技术,2009,33(7):34-37.
[4]Sigma Designs Company.SMP8652/3 datasheet[EB/OL].[2011-08-01].http://www.sigmadesigns.com.
[5]赵维亮.IPTV嵌入式流媒体播放器的设计与实现[D].北京:北京邮电大学,2010.
[6]DENG Feng,HU Jianliang,QI Xiangdong,et al.An embedded system design for high definition media player[C]//Proc.ICCSNA 2010.Hong Kong:IEEE Press ,2010:1-4.
[7]张勇.IPTV机顶盒的设计与实现[D].成都:电子科技大学,2008.