1、2 0 1 0. 0 5 ( 上 旬 刊 )摘 要 以微处理器 S3C2440 为核心,基于 QT技术,设计了 MP3 GUI 用户界面,并基于定点运算的高精度 MPEG音频解码库 LIBMAD的移植,设计并实现了以 ARM- LINUX为平台的 MP3 播放器 。该播放器效率高,界面友好,具有声音 、真彩 、触摸等特点 。实际应用表明,通过该系统的设计使学生能直观 、快速 、深刻地掌握基于 QT的 MP3 多媒体技术在ARM嵌入式的关键技术,并且系统具有很强大的扩展性和推广意义 。关键词 多媒体技术 Linux 操作系统 ARM微处理器 QT技术 Libmad1 引言目前, ARM处理器的运
2、算能力不断提高,功能模块不断完善,运用范围不断扩展1,因此掌握基于 ARM- LINUX 的开发显得尤为必要 。基于此,在实验教学中,充分利用 Linux操作系统稳定性高 、源码完全公开 、可移植 、可裁剪和兼容性好等优点2,采用 QT技术,设计 MP3 GUI 人机交互界面,并以高精度的 MPEG 音频解码库 Libmad 进行音频解码,实现 MP3 歌曲的点播功能 ; 使该系统具备 GUI 界面友好,直观,播放器支持播放控制 、播放列表和均衡器等优点,扩展功能强 ;使学生通过该系统的设计,充分掌握基于 QT的 GUI界面设计和基于 ARM- LINUX平台的多媒体播放软件的应用和操作系统的
3、移植,改变以往以验证实验为主,以创新性 、综合性为目标,激发学生学习积极性 。2 系统硬件设计2.1 系统框图MP3 多媒体控制系统以三星 ARM9 系列 S3C2440 芯片为核心微处理器,为 ARM920T 核,标准工作频率在400MHz。处理器外接 64M 的 Nandflash 和两片 32M 的SDRAM3。外接 320*240 的触摸屏,其中触摸功能开通与否可通过软件设置,并扩展有 USB 接口和 SD 卡接口,系统框图见图 1。2.2 音频电路设计该 MP3 采用音频解码芯片 UDA1341,该芯片是 Philips的单片立体声 A/D、D/A 转换器,工作电压为 3.0V,信噪
4、比为97db,具有双通道功能4,采样频率在 16KHZ、32KHZ和 44.1kHZ之间可选,芯片提供了一个 L3 端口,利用 CPLD控制器对L3 的 L3DATA、L3MODE 和 L3CLOCK 三个引脚进行编程,可以设置其内部的寄存器 。当 L3MODE 引脚为高电平时,L3DATA引脚将输入有关寄存器设置的数据信息,音频电路见图 2。使用前,先需移植声卡驱动程序到开发板上,重新编译生成 zImage 后烧写到 ARM板上 。2.3 LCD 显示控制S3C2440 的 LCD 控制器是将存储器内显示缓冲区的LCD图像数据传送到外部 LCD驱动器中 。内置的 LCD控制器支持单色 、彩色
5、 STNLCD屏和 TFT屏 。支持 TFT时,可提供 4/8/16/32 位颜色模式 。配置 LCD控制器重要的一步是指定显示缓冲区,显示的内容就是从缓冲区中读出来的,其大小由屏幕分辨率和显示颜色数决定 。在本实验系统中,采用的是东华 TFT显示屏,在 240*320 分辨率下可提供 16 位彩色显示 。显示屏的接口原理图见图 3。VFRAME,VLINE,VM,VCLK 是控制信号线, VD0VD23 为数据线,该系统中的 16色 TFT屏采用 5: 6: 5 显示方式 。屏的触摸功能可通过软件设置 。基于 ARM-LINUX 的 MP3 多媒体技术在嵌入式教学中的应用陆玲霞1严明贵2(1
6、浙江大学电气工程学院 浙江 杭州 310027;2三星半导体研究开发有限公司 浙江 杭州 310052)中图分类号: G434 文献标识码: A 文章编号: 1672-7894( 2010) 13-085-02图 2 音频电路图 1 MP3 多媒体控制系统框图NANDflashSDRAMSD- MMCUSB( nost)S3C2440电源LCD触摸屏串口 UARTUDA1341耳机理工852 0 1 0. 0 5 ( 上 旬 刊 )2.4 I2S 总线通过 I2S 总线,微处理器把解压后的音频数据发送到数字音频设备 UDA1341。通过对串行时钟 SCLK、帧时钟 LR-CK以及串行数据线 S
7、DATA和 SD 的控制,将数据和时钟信号分离,避免因时差诱发的失真 。3 基于 S3C2440_ARM平台的软件开发3.1 系统多媒体界面设计该系统的 GUI 界面采用 QT技术,需下载和安装软件包搭建交叉编译环境,见图 4。主要用到的代码如下:exportPATH=/usr/local/arm/crosstools_3.4.5_soft-float/gcc- 3.4.5- glibc- 2.3.6/arm- linux/bin:$PATH;export TMAKEDIR=/home/ema/src/tmake- 1.11;export TMAKEPATH= $TMAKEDIR/lib/qw
8、s/ lin-ux- arm- g+;要注意库文件的路径指定和环境变量的设定 。界面设计与移植过程流程图见图 5。先 输 入 progen- t app- omp3.pro 命令产生工程文件mp3.pro。启动 QT 编辑器后,在 Qt- 2.3.2 路径下运行图形设计器( designer),新建窗体,设置属性,并按需求布局,本系统用了两个按钮和一个文本框 。保存该界面文件为 mp3.ui,见图 6。界面可根据需求做改动,这里只介绍最基本的设计 。使用 uic 工具产生 mp3 窗体类的头文件 mp3.h 和实现文件 mp3.cpp,通过 uic- o mp3.hmp3.ui 和 uic-
9、omp3.cpp- impl mp3.h mp3.ui 可实现 。然后编写主函数 main.cpp,利用信号和插槽通讯机制,完成如下功能:一按 PLAY按钮,开始播放,并显示歌名,按 stop,播放停止 。若添加菜单,可自行选择播放列表,过程类似 。由于编译器是根据 Makefile文件的内容进行编译的,所以需要生成 makefile 文件 , 输 入 指 令 : tmake- omakefile mp3.pro,并将其链接到交叉编译工具 toolchain 库 。最后编译链接整个工程, make 生成的二进制文件 mp3 就是可以在 S3C2440 上运行的可执行文件,将该应用和二进制库烧写
10、到 S3C2440 的 flash, mp3 界面移植过程完成 。3.2 mp3 播放器设计要实现 ARM- LINUX 平台下的 MP3 播放,先移植声卡UDA1341 的驱动程序,然后下载并编译 zlib, libid3tag, lib-mad, madplay 软件包,完成 MP3播放器的移植,本文选用mad 作为 linux 系统下的 MP3播放软件,该播放器的工作流程见图 7。然后移植 madplay 和 MP3歌曲到 ARM板同一个目录下并运行 ./MP3(歌曲名 )- qws 指令 。4 结论该系统在 ARM- LINUX 平台下,结合 QT 技术,设计了MP3 人机交互界面 。
11、利用 Libmad 技术实现了对 MP3文件的解码和播放,采用信号与槽机制,实现 MP3 播放与歌曲名称同步显示以及歌曲实时启停控制和选择播放功能 。结果证明,播放器效率高,人机界面友好,操作简洁 。实际应用表明,通过该系统的设计,学生能直观 、快速 、深刻地掌握基于QT的多媒体技术在 ARM- Linux平台下的开发 。该系统不仅可满足教学的需要,还可以作为多媒体设备使用,非常实用,并具有很强的扩展性和推广性 。参考文献1 张公礼 ,闫海燕 ,王东明 .基于嵌入式 Linux的 MP3 歌词同步显示 .电子器件 ,2008,31(5):14631465,1471.2 汪永好 ,周延森 .基于
12、嵌入式 Linux 的 MP3 播放器的设计与实现 .计算机工程与设计 ,2009,30(17):39483949,4076.3 王伟能 ,吴烁宇 ,陈弟虎 ,魏爱香 .基于 S3C2410 和 Qt/Embedded 的数码相框设计 .嵌入式系统应用 .2009,25(6- 2):8183.4 王道乾 ,刘定智 ,文俊浩 .基于 ARM处理器的 MP3 播放器分析与实现 .计算机工程与设计 ,2007,28(7):15951597.责任编辑 秦艾桢图 3 显示屏的接口原理图图 6 MP3 设计界面图 4 系统交叉编译环境的搭建安装交叉编译工具( crosstools3.4.5 softfloat)安装和编译 tmake安装和编译qt- embedded安装qt- 2.3.2图 7 MP3 播放器工作流程读取 mp3 文件文件读取未结束mp3 播放子进程进行解码得到 16 位 PCM数字信号模拟信号传送到耳机把 PCM数字信号发送到UDA1341 解码转换模拟信号并放大图 5 MP3 界面移植流程图新建工程文件mp3.pro生成界面文件mp3.ui生成头文件mp3.h生成实现文件mp3.cpp编写主函数main()编辑工程文件mp3.pro生成 make file文件编译链接整个工程理工86