雷丰中,刘 鹏
(郴州技师学院 电气工程系,湖南 郴州 423000)
随着信息时代的到来,家庭娱乐朝着数值化、网络化、智能化发展[1],同时嵌入式多媒体系统越来越复杂,多媒体数据也朝着数据量大、数据类型多、数据类型间区别大、输入和输出复杂的方向进发,传统的处理器已不能满足多媒体数据处理的功能。在不断优化软件处理数据能力的同时,也不断要求硬件性能提升和功能增加。
利用S3C6410开发的多媒体系统平台与赵智雅[2]等人设计的嵌入式图像采集系统的平台相比,在图像采集速率、解码速度、多媒体接口种类以及系统稳定性等方面具有明显的优势。由于本系统充分利用S3C6410处理器丰富的硬件多媒体处理资源和高速的数据传输能力,使开发人员可以集中精力开发与图像视频处理相关的最大化附加值的产品上来,而不用占用太多系统资源来完成多媒体信息的常规操作,例如图片和视频的读入编解码操作,从而保证开发人员短时间开发出的嵌入式多媒体系统具有实时性、可靠性。
由三星公司开发的基于ARM11的S3C6410处理器是一个16/32RISC微处理器,能在667 MHz主频上稳定工作,DDR数据传输速率可达266 Mbit/s。采用64/32位内部总线架构,该结构由AXI,AHB和APB总线组成。S3C6410处理器内部集成了多个功能强大的2D/3D硬件加速器和JPEG图片硬件编解码单元,BIT处理器嵌入在其内部能提高图像处理的性能,在BIT处理器上运行多媒体程序实现MPEG-4/H.264/H.263/VC-1的视频编解码。硬件编码器/解码器可以实现实时视频会议及NTSC和PAL格式的TV输出。图1是利用S3C6410丰富的硬件资源和外围电路设计的基于S3C6410的多媒体系统框图,该系统具有各种多媒体接口,例如,TV out接口、VGA接口、S-Video接口、Camera输入接口、键盘接口、TTL/LVDS多款液晶屏接口等。
BIT处理器被优化后处理比特流的性能非常好,可处理如MPEG-4,H.264视频压缩比特流,本质是一个可编程的16位数字信号处理器,在处理大量比特流时,BIT处理器可以控制视频编解码并且通过APB(Advanced Peripheral Bus)总线接口与主处理器通信,通过AXI(Advanced Extensible Interface)总线接口可以实现同外部存储器进行通信。内部编解码单元能达到以下性能[3]:
1)全双工通信的VGA接口,可实现30 f/s视频压缩和解压的性能;
2)全双工通信的720×480图像处理单元,同样可以实现30 f/s视频压缩和解压性能。
S3C6410的编解码单元包括BIT处理器和视频编解码单元,为了使视频编解码性能更好和容错能力更强,S3C6410中视频比特流数据的处理由BIT处理器来完成。BIT处理器能形成多媒体数据比特流和对视频编解码进行控制,内部一些硬件加速器资源可以实现比特流的加速处理。编解码单元的硬件经过优化后降低了系统复杂性,并且不同视频格式的数据在编解码时可以使用相同功能的模块。复杂度高的运动估计模块通过单独设计的一块查找RAM来减少外部SDRAM(Synchronous Dynamic Random Access Memory)的带宽,通常运动估计模块从外部SDRAM读取参考像素值然后装载到查找RAM 并存储,AHB(Advanced High performance Bus)总线可以对查找RAM进行访问。主处理器与编解码单元的数据交换是通过API(Application Programming Interface)接口,在BIT处理器上运行的程序和多媒体数据可以使用APB和AXI总线下载使用。BIT处理器和视频编解码模块的功能如图2所示。
为了方便人机控制,提出选用BC7210为解码芯片对嵌入式多媒体开发平台实现红外遥控控制。采用飞利浦公司推出的RC5编码方式,RC5编码方式采用双相位编码方式,用不同相位分别代表“0”和“1”。传送每一位的固定时间为1.778 ms。RC5表示方式如图3所示。
每一个指令包括1.5 bit的起始位(2个逻辑1)、1个翻转位、5位系统码(地址码)以及6位命令码(键码),因此最多可以支持64个按键。图4为RC5的编码格式及各位代表含义。
在每次有新的按键按下时翻转一次,新的按键也包括同一个按键按下后再次按下则翻转位也会翻转一次,如果某个按键按下不放,则编码芯片会不断重复发送同样数据,翻转位保持不变,而如果某个按键按下后抬起再次按下,则发送的数据翻转位发生翻转,其他数据位保持不变。
红外遥控电路采用RC5解码方式,所以BC7210的MOD引脚接高电平。同时注意解码模式只能在复位时设定,工作过程中改变MOD引脚的电平不会改变解码模式,当复位时MOD引脚为高电平,芯片工作为RC5解码模式。
BC7210的CC引脚不接上拉电阻,则BC7210工作在使用用户码的状态下,用户码通过拨码开关设置,BC7210在复位时读取用户码(地址码)的设置,在解码时将收到的遥控信号的用户码(地址码)与设置的用户码进行对比,只有当接收数据的用户码与设置的用户码相同时,才会将按键码数据输出,否则将数据忽略[3]。在这种模式下,BC7210只输出1 byte的按键码数据,而且数据中只有5位地址码因此只有D0~D4来设置地址码,通过D0~D4上接下拉电阻来设置地址码,电阻值要小于5 kΩ。若要设置相应的地址码为1,则合上拨码开关。
BC7210的S/P引脚的连接方式决定了解码结果的输出方式,采用BC7210的S/P引脚接地,则数据采取串行输出方式,采用标准的SPI连接方式,------ACT为接受数据有效指示信号,D7(DAT)接XspiMISO,D6(CLK)接Xspi-CLK,D5(SS)接XspiCS。图5给出了红外遥控电路设计图以及与S3C6410的连接方式。
基于S3C6410的BSP支持多种不同类型、不同显示分辨力的液晶显示屏,其支持不同类型的显示器种类多于吴英丽等[4]人设计的一种改进的嵌入式智能视频监控系统,为了保证LCD显示屏能够正确显示,在编译内核驱动程序之前要保证显示驱动与用户手中的液晶显示屏型号相对应,若要更改显示屏则需要更改内核显示驱动程序并重新编译内核程序,更改内核程序的方法为:
使用的显示屏型号需要选用正确的预编译头文件,这里选用群创7 in的液晶屏,保存文件,重新编译BSP将生产的NK.bin文件烧写到平台,接上对应的液晶屏即可使用,实验测试该显示屏性能良好。图6为显示屏测试图像。
本系统的TV out接口是标准复合视频信号,如图7所示,支持NTSLPAL格式,可直接连接各种视频播放设备,将电视视频信号线接入多媒体系统的TV out接口,接通电源开机进入WinCE 6.0系统,运行TV out测试程序将输出切换到电视显示,显示界面如图8所示。
将本实验室开发的电表图像数字识别嵌入式软件运行在S3C6410的嵌入式多媒体平台上,运行界面如图9所示。在运行过程中测试电表图像(300万像素)的读入及运算过程中比较耗时的几个过程解码、识别所耗费的时间与李侃[5]等人设计的内核为ARM926EJ,主频为445 MHz的基于S3C2410与嵌入式Linux的图像采集应用平台作比较,如表1所示。
由实验数据发现,S3C2410系统平台由于不带硬件解码单元和在图片解码过程中耗时过长,而S3C6410电表图片解码时间可达实时,说明本平台在开发多媒体系统时具有明显的性能优势。
表1 实验对比数据
笔者用基于ARM11的S3C6410设计了嵌入式多媒体开发系统,结合S3C6410的多媒体硬件资源和外围电路设计使该系统具有丰富的多媒体接口,为了方便人机交互为该系统采用一种新的方式设计了红外遥控电路。最后对该平台的多媒体接口进行(VGA接口、LCD接口、TV接口等)测试,硬件解码单元测试性能良好,并把在该平台上运行的电表识别嵌入式软件耗费时间与S3C2410系统平台的作比较,该系统在处理多媒体数据时具有明显的优势,为开发其他的嵌入式多媒体软件提供了可靠的平台。
[1]曾捷.一种多媒体IPTV的设计与实现[J].电视技术,2009,33(12):64-66.
[2]赵智雅,王泽勇.嵌入式图像采集系统的平台设计[J].计算机系统应用,2009,8(12):136-139.
[3]叶俊华.基于ARM11的嵌入式视频处理终端设计[D].长沙:中南大学,2009.
[4]吴英丽,陈胜权,刘旭明.一种改进的嵌入式智能视频监控系统[J].电视技术,2008,32(4):91-93.
[5]李侃,廖启征.基于S3C2410平台与嵌入式Linux的图像采集应用[J].微计算机信息,2006,22(8):125-127.