1、VR虚拟现实基于ARM的音乐播放器的设计与实现 精品摘 要多媒体技术融计算机、声音、文本、图像、动画、视频和通信等多种功能于一体,是当今信息技术领域发展最快、最活跃的技术,是新一代电子技术发展和竞争的焦点。嵌入式设备与多媒体技术的融合使得PDA,智能手机,平板等智能终端得到快速发展。未来,智能终端与物联网的结合将推动嵌入式设备快速发展。所以,基于嵌入式终端的应用前景广阔。设计目的是在嵌入式平台上开发一款基于开源Linux操作系统的多媒体播放器,它以mplayer作为核心播放程序,将支持更多的文件播放格式甚至可以与PC机上的媒体播放器相媲美。多媒体播放器的硬件部分:以S3C2440开发板为硬件平
2、台,它的外围设备可以外插U盘作为存储器、TFT-LCD触屏、key23键盘,以及外接耳机作音频设备。因为播放器开发是基于成熟的硬件平台,主要工作集中在软件部分,主要包括:搭建开发环境,配置编译mplayer可执行程序,编写触屏驱动,及key23驱动,编写主控程序等等,最后将程序移植安装到开发板,完成基于Linux的嵌入式播放器的设计。经过测试,播放器符合设计要求。关键词: 触屏,移植,线程,嵌入式Abstract The multimedia technology involves sound, text, image, animation, video and munications and
3、 other functions. Information technology is one of fastest growing technologies. Obviously, it is a new generation of electronic technology development and the focus of petition. The integration of embedded equipment and multimedia technology contributes a rapid development for PDA, smart phones, sl
4、ab intelligent terminal. In the future, intelligent terminal will promote the network embedded equipment rapid development. So, the application that based on embedded terminal has a bright future. The purpose of this design is to design multimedia player on an embedded platform by using the open sou
5、rce in Linux operating system. It is take mplayer as core broadcast program, which will support more file format, and even is more parable with the PC media players. The hardware part of Multimedia player takes S3C2440 development board for the hardware platform, which use the USB disk, tft-lcd touc
6、h screen, key23 keyboard, and external earphone for audio equipment. Because the player development is based on mature hardware platform, the main work focused on software part, which main includes these works, such as the development environment set up, the piled configuration of mplayer, the drive
7、 of touch screen and key23, and the program of master control, etc. Finally, the developed program can be installed to development board based on the Linux. After testing, player can meet the design requirements. Keywords: touch screen; transplant; thread; embedded;第1章 绪论选题背景多媒体是全面的综合性的信息资源,它常常指信息表示
8、媒体的多样化,常见的形式有文字、资料、图形、影像、动画、视讯、声音、特殊效果,再经由电脑表现出来,它能用来达成信息传播中的任何媒体资源。多媒体技术的产生和发展,是技术和应用发展的必然。在信息社会,人们迫切希望计算机能以人类习惯的方式提供信息服务,因而多媒体技术应运而生。它的出现,使得原本“面无表情”、“死气沉沉”的计算机有了一副“生动活泼”的面孔。用户不仅可以通过文字信息,还可以通过直接看到的影像和听到的声音,来了解感兴趣的对象,并可以参与或改变信息的演示。一般而言,嵌入式系统的构架可以分成四个部分:处理器、存储器、输入输出(I/O)和软件,嵌入式系统目前最主要的组成部分。根据操作系统的工作特
9、性,实时是指物理进程的真实时间。实时操作系统具有实时性,能从硬件方面支持实时控制系统工作的操作系统。其中实时性是第一要求,需要调度一切可利用的资源完成实时控制任务,其次才着眼于提高计算机系统的使用效率,重要特点是要满足对时间的限制和要求。嵌入式系统一般由嵌入式计算机系统和执行机构组成,嵌入式计算机系统是由硬件层、中间层、系统软件层和应用软件层组成的。执行机构也作为控制对象,它可以接收由嵌入式计算机系统发出的控制命令,执行所需的操作或任务。执行器可以很简单,如手机上的微小型点击,手机在振动时机大开,也可以是非常复杂的,如SONY智能机器人集成以上的小型和微型控制电机,以及各种传感器,它可以执行各
10、种复杂的动作和感情的各种状态信息。嵌入式微处理器在世界上有超过1000种,30多个系列,其中的主流体系结构有ARM,MIPS,PowerPC上,X86和SH等。但不像全球PC市场,没有那种嵌入式微处理器能够主宰市场,就32个产品而言,有超过100种嵌入式微处理器。嵌入式微处理器的选择是由具体应用决定的。这几年掀起的嵌入式系统的应用热潮主要有以下几种原因:首先,芯片技术的发展,使一个单一的芯片具有更强的处理能力,而且集成多种接口已成为可能,许多芯片制造商焦点在这方面。另一方面,其原因在于应用需求,产品的可靠性,成本,更换为嵌入式系统的需求不断增加,从纯硬件实现的和使用通用计算机来实现的的应用中脱
11、颖而出,成为令人关注的焦点 Linux以它的高效性和灵活性著称。它能够在PC计算机上实现全部的Unix特性,具有多任务、多用户的能力。Linux是在GNU公共许可权限下免费获得的,是一个符合POSIX标准的操作系统。Linux操作系统软件包不仅包括完整的Linux操作系统,而且还包括了文本编辑器、高级语言编译器等应用软件。它还包括带有多个窗口管理器的X-Windows图形用户界面,如同我们使用Windows NT一样,允许我们使用窗口、图标和菜单对系统进行操作。Linux之所以受到广大计算机爱好者的喜爱,主要原因有两个,一是它属于自由软件,用户不用支付任何费用就可以获得它和它的源代码,并且可以
12、根据自己的需要对它进行必要的修改,无偿对它使用,无约束地继续传播。另一个原因是,它具有Unix的全部功能,任何使用Unix操作系统或想要学习Unix操作系统的人都可以从Linux中获益。绝大多数基于Linux内核的的操作系统使用了大量的GNU软件,包括了shell程序、工具、程序库、编译器及工具,还有许多其他程序,例如Emacs。 大多数系统还包括了像提供GUI界面的XFree86之类的曾经运行于BSD的程序。软件可移植性指一种计算机上的软件转置到其它计算机上的能力(也可称作软件自动搬家)。软件移植是实现功能的等价联系,而不是等同联系软件可移植性的主要标志是:这类软件有个通用的标准文本;它们独
13、立于具体的计算机。软件相对于具体计算机的独立性,从狭义上讲,是指可移植软件应独立于计算机的硬件环境;从广义上讲,可移植软件还应独立于计算机的软件,即高级的标准化的软件,它的功能与机器系统结构无关,可跨越很多机器界限。从一种计算机向另一种计算机移植软件时,首先要考虑所移植的软件对宿主机硬件及操作系统的接口,然后设法用对目标机的接口代换之。因此,接口的改造容易与否,是衡量一个软件可移植性高低的主要标志之一。多媒体已成为我们日常生活的重要组成部分,但一个优秀的播放器,却往往因为系统环境,不开源等问题,而不是被广泛认可、使用,这是我们的损失。因此,跨平台的多媒体播放器移植有很好的市场前景。研究意义未来
14、对多媒体的研究,主要有以下几个研究方面:数据压缩、多媒体信息特性与建模、多媒体信息的组织与管理、多媒体信息表现与交互、多媒体通信与分布处理、多媒体的软硬件平台、虚拟现实技术、多媒体应用开发。 展望未来,网络和计算机技术相交融的交互式多媒体将成为21世纪多媒体发展方向。所谓交互式多媒体是指不仅可以从网络上接受信息、选择信息,还可以发送信息,其信息是以多媒体的形式传输。利用这一技术,人们能够在家里购物、点播自己喜欢的电视节目。21世纪的交互式多媒体技术的实现将会极大的改变我们的生活。由于Linux是一套具有Unix全部功能的免费操作系统,它在众多的软件中占有很大的优势,为广大的计算机爱好者提供了学
15、习、探索以及修改计算机操作系统内核的机会。Linux不仅为用户提供了强大的操作系统功能,而且还提供了丰富的应用软件。用户不但可以从Internet上下载Linux及其源代码,而且还可以从Internet上下载许多Linux的应用程序。可以说,Linux本身包含的应用程序以及移植到Linux上的应用程序包罗万象,任何一位用户都能从有关Linux的网站上找到适合自己特殊需要的应用程序及其源代码,这样,用户就可以根据自己的需要下载源代码,以便修改和扩充操作系统或应用程序的功能。 开源的特性也决定了它使用的人越多,程序进步越快的特点。我们可以预见在不久的将来,linux一定会大行其道,linux的强大
16、的兼容性,可移植性也将发挥的淋漓尽致。含有嵌入式系统设备统称嵌入式系统,如:手机,电子手表,多媒体播放器等,覆盖消费类电子产品,汽车电子,军用电子,生产,工业控制,通信,网络等领域。随着技术的进步,越来越高性能的嵌入式设备被广泛使用。操作系统是通过软件的运行带动硬件工作。然而,大部分的软件对操作系统有要求。 这就要进行软件的移植,使其在需要的其他操作系统下也能正常工作。在这种情况下,一个好的软件就不会仅仅局限于一个小领域,例如:把Iphone上的应用移植到其他平台上,从而改善我们的生活,促进技术进步的发展。第2章 需求分析与方案制定本章分析了设计需求,并对设计的可行性进行分析,阐述了设计的主要
17、目标以及设计的大体流程,并最终制定了系统的实施方案。功能性分析用S3C2440开发板作为产品的主体,LCD Moduile V1.1作为一个控制面板,通过可触摸的LCD Moduile实现播放控制。以u-boot作为bootloader,采用Linux2.6内核和yaffs格式的文件系统,核心媒体播放程序为MPlayer-1.0rc3,核心解码器为libmad1.7。可以实现绝大部分Mplayer的功能:1)实现市场上几乎所有流行的音频文件播放。 2)可正常播放损坏了报头的AVI文件。3)可以解码大部分的网络流媒体文件。4)人性化的触屏操作。可行性分析随着人们的生活水平不断提高,精神资料的需求
18、逐渐提高,多媒体已经成为生活中必不可少的一部分。各式各样的多媒体迅速充斥了我们的生活,现在,多媒体正在向便携个人多媒体发展。我们生活中数字信息的数量在今后几十年中将急剧增加,质量上也将大大地改善。多媒体正在迅速的、意想不到的方式进入人们生活的多个方面,大的趋势是各个方面都将朝着当今新技术综合的方向发展。他们可以归结为两大类:音频,视频。但是现在多媒体的格式越来越多,比较流行的多媒体格式就有十多种,他们音质画质参差不齐,便携式设备上可用的媒体播放器较PC上的应用还有不小的差距。那些在电脑上运行的播放器经常因为操作环境等原因而不能在我们的机器上运行。这就凸显处软件移植的必要性,现在的手机大部分都带
19、有嵌入式操作系统,这为我们软件的移植提供了一定程度的方便,我们完全可以把一款优秀的多媒体播放器软件如Mplayer移植到手机上,它几乎支持几乎所有的音频视频文件,方便我们享受多媒体的乐趣。设计的主要目标任务这次设计的主要任务是将一款Linux下的开源多媒体播放器Mplayer从电脑上移植到arm平台上,实现一款软件可以跨平台运行的播放器。本设计主要研究了软件在不同平台上运行所需要的条件,以及达到触屏操作所需要的一系列要求,并研究了应用程序是如何进行不同程序及资源间调度配合。本次设计最终达到触屏控制软件实现软件在原来环境下的功能等效果。可以流畅播放多种格式的视频音频文件。系统方案制定本系统分为两
20、大部分:软件部分,硬件部分。软件部分包含经过arm交叉编译器编译生成的Mplayer可执行程序,libmad解码库,触屏驱动源代码,以及arm-linux-gcc交叉编译工具链,Windows自带的超级终端,linux操作系统,Bootloader,内核,根文件系统以及在Windows下的连接工具,烧录软件等。硬件部分包括S3C2440开发板,串口线,并口线,LCD触摸屏,5V变压器,带串、并口的PC机。将bootloader,内核,根文件系统烧录到S3C2440开发板上,在pc机上完成主控程序编写,和交叉编译工作,然后将程序序放到开发板上测试,运行。本章小结本章首先对设计的功能进行分析,通过
21、对开发环境以及开发语言的分析,得到的结论是开发环境完全可以支持设计的开发,接着对Mplayer的功能支持进行分析,结论是足以支持播放器的开发,最后在论证成功的情况下确定了一套可行的系统的方案。第3章 系统功能模块介绍本章首先详细的介绍了开发板的各个部件,然后介绍了三星的S3C2440芯片,并介绍了用于实现播放器人机界面的显示器及触摸屏,最后系统的介绍软件是如何实现对应功能的。S3C2440开发板简介这里所用的S3C2440嵌入式系统开发板功能比较强大,配备了完备的硬件资源和开发软件,开发板的结构如图3.1所示。图3.1 开发板结构图S3C2440A是韩国三星公司推出的16/32位RISC微控制
22、器,其CPU采用的是ARM920T内核。电源电路实现了5v直流输入到3.3v、1.8v、1.2v输出转换的功能,为板上各功能模组的正常工作提供所需电压。通讯接口部分,板上提供了以SPI、I2C、RS232异步串行接口、USB转串口接口、USB主/从通讯接口、太网接口等。多媒体的处理方面,开发板提供了TV输出、VGA接口、摄像头接口、耳机/喇叭输出接口、TFT显示输出接口,在非易失性存储器方面,板上提供了8M的Norflash和64M的Nandflash存储器,还有SD卡接口,另外提供了SATA大容量硬盘接口,可以扩充存储空间。S3C2440芯片特性简介S3C2440芯片采用的是ARM920T的
23、芯片结构,它的结构如图3.2所示。图 3.2 芯片结构(ARM920T)S3C2440芯片参数S3C2440芯片的工作电压、操作频率、电源管理参数如下:1)具有PLL时钟发生器,主频最高可达533M。2)内核1.2V供电最高400M,1.3V供电最高533M。3)存储器支持1.8V、2.5V、3.0V、3.3V,I/O均支持3.3V供电。4)s3c2440为单机器周期执行指令集。具有电源管理功能,可以使系统以普通方式、慢速方式、空闲方式和掉电方式工作,降低产品功耗。内核结构内核结构具有如下特点:1)采用ARM920T内核,具有16KB指令Cache、16KB数据Cache和存储器管理单元MMU
24、。2)指令高速存储缓冲器(I-Cache),数据高速存储缓冲器(D-cache)提高指令执行效率及数据存储效率,减少主存带宽和响应性带来的影响。3)加强的ARM体系结构MMU,用于支持winCE、linux等操作系统。4)内部高级微控制总线(AMBA)体系结构(AMB2.0,AHB/APB)。总线结构S3C2440芯片采用的是ARM920T结构,ARM920T的总线结构如图3.3所示。图3.3 总线结构处理器通用模块1有60个中断源,可以设定1个为快速中断,其余为普通中断,有24个外部中断,可编程电平/边沿触发方式。1个看门狗定时器、5个定时器、9个UART、24个外部中断、4个DMA中断、2
25、个RTC中断、2个ADC中断、1个IIC、2个SPI、1个SD、2个USB、1个LCD、1个触摸屏中断、1个电池故障、1个NAND、2个摄像头、1个AC97。处理器通用模块23个通道的UART,带有16字节的TX/RX FIFO,支持IrDA1.0功能。8通道的10位A/D转换器,最高速率可达500kSPS、提供有触摸屏接口。具有130个通用I/O口。有4个具有PWM功能的16位定时器和1个16位内部定时器。看门狗定时器。存储器接口sram、sdram、norflash、NANDflash、外部存储器控制器,可扩展8组,每组128MB,总容量达1GB、支持NandFlash作为启动存储器及数据
26、存储器、支持最高达256M的SDRAM存储器接口、支持NOR FLASH、SRAM存储器接口、4通道的DMA,并且有外部请求引脚。外围总线接口32位地址总线、8/16/32位可编程数据总线、控制总线,具有2通道的SPI、1个通道的IIC串行总线接口和1个通道的IIS音频总线接口,有2个USB主机总线端口,1个USB设备总线端口,兼容MMC的SD卡接口。人机接口带有四线电阻式触摸屏接口,有LCD控制器,支持4K色的STN和256K色的TFT,配置有DMA通道,支持多种屏幕尺寸,典型的屏幕尺寸有640*480,320*320,160*160,集成Camer摄像头控制器,具有日历功能的RTC。LCD
27、模块介绍电阻式触摸屏是一种传感器,它将矩形区域中触摸点(X,Y)的物理位置转换为代表X坐标和Y坐标的电压。很多LCD模块都采用了电阻式触摸屏,这种屏幕可以用四线、五线、七线或八线来产生屏幕偏置电压,同时读回触摸点的电压。电阻式触摸屏基本上是薄膜加上玻璃的结构,薄膜和玻璃相邻的一面上均涂有ITO(纳米铟锡金属氧化物)涂层,ITO具有很好的导电性和透明性。当触摸操作时,薄膜下层的ITO会接触到玻璃上层的ITO,经由感应器传出相应的电信号,经过转换电路送到处理器,通过运算转化为屏幕上的X、Y值,而完成点选的动作,并呈现在屏幕上。原理:触摸屏包含上下叠合的两个透明层,四线和八线触摸屏由两层具有相同表面
28、电阻的透明阻性材料组成,五线和七线触摸屏由一个阻性层和一个导电层组成,通常还要用一种弹性材料来将两层隔开。当触摸屏表面受到的压力(如通过笔尖或手指进行按压)足够大时,顶层与底层之间会产生接触。所有的电阻式触摸屏都采用分压器原理来产生代表X坐标和Y坐标的电压。分压器通过将两个电阻进行串联来实现的。上面的电阻连接正参考电压,下面的电阻接地。两个电阻连接点处的电压测量值与下面那个电阻的阻值成正比。为了在电阻式触摸屏上的特定方向测量一个坐标,需要对一个阻性层进行偏置:将它的一边接VREF,另一边接地。同时,将未偏置的那一层连接到一个ADC的高阻抗输入端。当触摸屏上的压力足够大,使两层之间发生接触时,电
29、阻性表面被分隔为两个电阻。它们的阻值与触摸点到偏置边缘的距离成正比。触摸点与接地边之间的电阻相当于分压器中下面的那个电阻。因此,在未偏置层上测得的电压与触摸点到接地边之间的距离成正比。触摸屏结构主要由6部分构成:1)信号输入通道2)触摸屏接口3)8转1切换开关4)中断信号发生器5)A/D转换器6)控制逻辑软件模块介绍1)子进程:在子进程中:启动Mplayer,参数规定通过命名管道进行通信。Mplayer会自动从命名管道中读取主进程发来的命令。Mplayer发出的内容通过把标准输出重定向到命名管道中,父进程通过读管道就可以读到Mplayer发出的信息。然后在父进程实现任务调度及调用各用户界面显示
30、模块来实现信息同步的功能。2)父进程:1进行相应的窗口创建,界面的初始化。(把歌曲列表显示到屏幕上)2检测触摸屏,通过返回按键,向命名管道写命令。3开线程1:给Mplayer发获取歌曲播放进度的命令。4开线程2:读命名管道,即读Mplayer发来的信息。5开线程3:解析收到的Mplayer发来的信息。3、4、5步实现播放进度条所需信息的获得。(获取进度信息后进行相应的界面处理)驱动程序模块:LCD驱动、触摸屏驱动、键盘驱动、音频驱动Linux内核:内核是负责创建和终止进程和处理与他们和外界联系(输入和输出)。在不同的进程之间的通信(通过信号,管道,进程间通信原语)是整个系统的功能是基本的,这也
31、是由内核来处理。Linux内核的主要用途就是为了与计算机硬件进行交互,实现对硬件的编程控制和接口操作,调度对硬件资源的访问,并为计算机上的用户程序提供一个高级的执行环境和对硬件的虚拟接口。目前,操作系统内核的结构模式主要可分为整体式的单内核模式和层次式的微内核模式。单内核模式的主要优点是内核代码结构紧凑、执行速度快,不足之处主要是层次结构性不强。在单内核模式的系统中,操作系统所提供服务的流程为:应用主程序使用指定的参数值执行系统调用指令(int x80),使CPU从用户态(User Mode)切换到核心态(Kernel Model),然后操作系统根据具体的参数值调用特定的服务程序,而这些服务程
32、序则根据需要再调用底层的一些支持函数以完成特定的功能。在完成了应用程序所要求的服务后,操作系统又使CPU从核心态切换回用户态,从而返回到应用程序中继续执行后面的指令。因此概要地讲,单内核模式的内核也可粗略地分为3个层次:调用服务的主程序层、执行系统调用的服务层和支持系统调用的底层函数。播放器界面主要包括主窗口、操作窗口、播放列表窗口,歌曲信息窗口,歌词显示窗口。主窗口有一个显示屏和一些控制按钮,包括播放、暂停、快进、快退、下一首、上一首、音量调整以及播放进度条和播放时间显示。播放列表窗口可以使用户选择要播放的文件。播放列表用来播放最近播放的几个多媒体文件。本章小结本章详细的介绍了开发环境,包括开发板的结构,ARM920T的架构,以及内核的结构,并总体介绍了程序的结构以及程序实现的功能,其中详细阐述了如何使用线程和进程来控制播放器的。第4章 硬件系统本章系统介绍了各部分硬件的实现原理并着重阐述了与控制模块有关的触摸屏模块的原理,然后简单介绍了开发板个部分的原理。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1