在UP-TECH S3C2410 DVK1.1 开发平台下,提出了一个触摸式的嵌入式掌上娱乐系统设计方案。本系统主要包括多媒体播放器和游戏的基本功能。本系统可以播放现有的大多数的音频视频文件;设计了嵌入式游戏,增加了系统的娱乐性。使用触摸屏方便作为人机交互的平台。采用跨平台性能良好的Qt4 设计了应用程序和人机界面,界面友好,汉化显示,美观,操作简便,运行流畅。整个系统模块化设计,充分考虑了软件系统自身所占的存储空间以及可扩展性,具有广阔的市场前景。
嵌入式系统是以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。近年来,随着微处理器技术、DSP 技术、多媒体编解码技术以及嵌入式技术的发展,多媒体娱乐终端已经成为消费性电子产品的热点。同时,逐渐成熟的市场随着MP3 在市场上取得的巨大成功,以及MP4、数字电视、3G 通讯等相关技术的起步,在未来几年内都将会得到快速发展。多媒体终端正是数字信息产业的一个重要组成部分, 所以在这个背景下,MultimediaTerminal 蕴含着极大地发展潜力。本文是基于Linux 嵌入式操作系统在UP-TECHS3C2410 DVK1.1 开发平台下设计并实现了一个高性能、低功耗、低成本的嵌入式掌上娱乐系统。
1 系统概述
本系统以UP-TECH S3C2410 DVK1.1 为开发平台,使用嵌入式linux 作为操作系统。
本系统的实现包括两个方面,一是底层系统的搭建。本系统是在通用的嵌入式Linux 操作系统上进行适当的裁剪,使其符合系统的硬件平台,并且初始化开发底层的驱动,实现了对系统的控制以及数据的存储和传输。二是应用层的实现。
系统的底层包括文件系统的搭建以及各种接口部件的驱动程序,这些驱动程序通过嵌入式Linux 操作系统进行调用,然后完成应用的功能,为上层的接口层和应用层提供服务[5]。
中间的嵌入式GUI 为接口层,采用QT4 作为用户GUI 的界面库。QT4 是基于服务器-客户端的一种用户界面中间件,提供了丰富的功能控件和精美的界面设计功能,可以便捷的设计出所需要的各种功能模块。
系统的最上层就是直接面向用户的应用层。该层采用QT4 设计,向用户提供了精美的用户界面,用户可以通过触摸屏方便的调用相关功能。系统的软件结构框图如图1 所示:
图2 系统硬件结构框图
2.2 软件开发平台介绍
在系统层,由于UP-TECH S3C2410 DVK1.1 开发板提供原始的系统(vivi、linux-2.4、root.cramfs)版本低,因此,针对多媒体娱乐系统,裁剪移植了适合本系统的Uboot-1.1.6、linux-2.6.24 内核和yaffs 文件系统。该系统使用较为通用的bootloader:UBoot,网络资源较多的内核linux2.6 和可读可写的yaffs 文件系统,易于系统的开发。并配置了LCD 屏驱动、网卡驱动、SD 卡等驱动。
在应用层,采用QT SDK 设计所有的应用程序。
Qt 是一个跨平台的C++图形用户界面(GUI)库,包括跨平台类库、集成开发工具和跨平台IDE.使用Qt“一次开发,多次编译”,无须重新编写源代码,便可跨不同桌面和嵌入式操作系统部署这些应用程序。
3 实现原理
应用层软件的设计主要包括两个模块:多媒体播放器以及游戏模块。用户主界面设计了一个主框架,然后将其他功能模块的图标放在该框架内,完成了整体的规划设计。下面详细介绍这两个功能模块的设计与实现。
3.1 播放器的实现
对于音频和视频的播放,本系统使用QT 设计一个前端播放、控制界面,并使用Mplayer 作为后端程序,能播放mp3、ogg、ogm、wma、wav、asf、au、avi、mpeg、mpg、mv1、mov、wmv、pls、m3u、mp4、 m4a 等音频和视频格式。播放器模块的结构图如图3 所示,播放器使用Mplayer 作为后端程序(红色部分),使用QT4开发前端程序(绿色部分)。
图4 播放器软件流程图。
通过定义一个QProcess 对象调用已编译好的Mplayer。
QProcess *process = new QProcess();
process-》setProcessChannelMode(QProcess::MergedChannels);
Process-》start(“mplayer –ac –mad xxxxx”);
在命令中添加 -slave 和 -quiet 就可以通过命令设置Mplayer 实现相应的功能。Process-》start(“mplayer–slave –quiet –ac –mad xxxxx”)。
下面对播放器的暂停播放功能和音量调节进行介绍。
① 播放暂停功能设计
通过这段代码可以设置Mplayer 暂停:process-》write(“pause ”);执行这段代码的时候在播放状态下就会暂停,暂停状态下就会继续播放。
② 音量调节
下面代码即可实现音量调节的功能:
Process-》write(“volume -1 ”); //音量减小;
Process-》write(“volume +1 ”); //音量增加;
Process-》write(“volume XX 1 ”); //音量设置成指定值
该系统使用如下代码实现音量调节:
QString cmd=“volume” +QString::number(value)+“ 1 ”;
process-》write(cmd.toLocal8Bit()。data());
系统最终实现的实验效果图如图5 所示:
图6 游戏模块实验结果图
4 总结
本系统采用开源的Linux 操作系统和QT4 界面设计工具,整个系统采用模块化设计,具有良好的可扩展性。硬件平台采用的是 UP-TECH S3C2410 DVK1.1嵌入式系统,该芯片采用ARM 架构,其独特的架构设计具有功耗低、功能强的特点,因此非常适合用于手持式设备;采用LCD 触摸屏与用户进行交互,使用简单,符合便携式终端的发展趋势。
全部0条评论
快来发表一下你的评论吧 !