您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 基于S3C244O 的MP3设计
基于S3C2440的MP3播放器设计报告设计者:陆伟学号:100603138指导老师:耿鹏设计时间:2013.8.18—2012.9.13前言随着社会的日益信息化,计算机和网络已经全面渗透到日常生活的每一个角落。对于我们每个人来说,需要的已经不再仅仅是那种放在桌上处理文档、进行工作管理和生产控制的计算机机器。任何一个普通人都可能拥有从小到大的各种使用嵌入式技术的电子产品,小到MP3、PDA等微型数字化产品,大到网络家电、智能家电、车载电子设备等。目前,各种各样的新型嵌入式系统设备在应用数量上已经远远超过了通用计算机。在工业和服务领域中,使用嵌入式技术的数字机床、智能工具、工业机器人、服务机器人正在逐渐改变着传统的工业生产和服务方式。MP3是现实生活娱乐中最常见的工具,但是MP3也是嵌入式的最主要应用之一。一个成型的MP3具有开始、暂停、继续播放、下一曲、循环列表等功能。本文重点讨论基于S3C2440的MP3的功能的实现,包括开发环境的建立、内核的配置与编译以及代码的流程与解释。近几年,嵌入式系统技术得到了广泛的应用,普适计算、无线传感器网络、可重构计算等新兴技术的出现又为嵌入式系统技术的研究与应用注入了新的活力。智能手机、信息家电、汽车电子、家用机器人……嵌入式系统已“无处不在”。嵌入式系统是当今最热门的概念之一。作为一个系统,往往是在硬件和软件双螺旋式交替发展的支撑下逐渐趋于稳定和成熟,嵌入式系统也不例外。嵌入式系统的最初应用是基于单片机的。20世纪70年代单片机的出现,使得汽车、家电、工业机器、通信装置以及成千上万种产品可以通过内嵌电子装置来获得更佳的使用性能,更容易使用、更快、更便宜。这些装置已经初步具备了嵌入式的应用特点,但是这时的应用只是使用8位的芯片,执行一些单线程的程序,还谈不上系统的概念。从20世纪80年代早期开始,嵌入式系统的程序员开始用商业级的“操作系统”编写嵌入式应用软件,这使得开发人员可以进一步缩短开发周期,降低开发成本并提高开发效率。1981年,ReadySystem开发出世界上第一个商业嵌入式实时内核(VTRX32)。这个实时内核包含了许多传统操作系统的特征,包括任务管理、任务间通信、同步与相互互斥、中断支持和内存管理等功能。此后,一些公司也纷纷推出了自己的嵌入式操作系统,如IntegratedSystemIncorporation(ISI)的PSOS、WindRiver的VxWorks和QNX公司的QNX等。这些嵌入式操作系统都具有嵌入式的典型特点:它们均采用占先式的调度,响应的时间很短,任务执行的时间可以确定;系统内核很小,具有可裁剪性、可扩充性和可移植性,可以移植到各种处理器上;较强的实时性和可靠性,适合嵌入式应用。这些嵌入式实时多任务操作系统的出现,使得应用开发人员从小范围的开发中解放出来,同时也促使嵌入式有了更为广阔的应用空间。20世纪90年代以后,随着对实时性要求的提高,软件规模不断上升,实时内核逐渐发展为实时多任务操作系统(RTOS),并作为一种软件平台逐步成为目前国际嵌入式操作系统的主流。这时更多的公司看到了嵌入式系统的广阔的发展前景,开始大力发展自己的嵌入式操作系统。除了上面的几家老牌公司以外,还出现了PalmOS、WindowsCE、嵌入式Linux、Lynx、Nucleus以及国内的Hopen、DeltaOS等嵌入式操作系统。随着嵌入式技术的发展前景日益广阔,相信会有更多的嵌入式操作系统软件出现。根据IEEE(国际电气和电子工程师协会)的定义,嵌入式系统是“控制、监视或者辅助设备、机器和车间运行的装置”。这主要是从应用上加以定义的,从中可以看出嵌入式系统是软件和硬件的综合体,还可以涵盖机械等附属装置。不过,上述定义并不能充分体现出嵌入式系统的精髓。目前,国内一个普遍被认同的定义是:以应用为中心、以计算机技术为基础,软硬件可剪裁,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算。一般而言,嵌入式系统的构架可以分成4个部分,即处理器、存储器、输入/输出(I/O)和软件(由于多数嵌入式设备的应用软件和操作系统都是紧密结合的,在这里对其不加区分,这也是嵌入式系统和Windows系统的最大区别)。从前面对嵌入式系统所作的定义可以看出嵌入式系统的几个重要特征。(1)系统内核小,由于嵌入式系统一般应用于小型电子装置,系统资源相对有限,所以内核较之传统的操作系统要小得多。例如ENEA公司的OSE分布式系统,内核只有5KB,而Windows的内核则要大得多。(2)专用性强。嵌入式系统的个性化很强,其中的软件系统和硬件的结合非常紧密,一般要针对硬件进行系统的移植,即使在同一品牌,同一系列的产品中也需要根据系统硬件的变化和增减不断进行修改。同时针对不同的任务,往往需要对系统进行较大更改,程序的编译下载要和系统相结合,这种修改和通用软件的升级是完全不同的概念。(3)系统精简。嵌入式系统一般没有系统软件和应用软件的明显区别,不要求其功能设计及实现上过于复杂,这样一方面利于控制系统成本,同时也利于实现系统安全。(4)高实时性的操作系统软件是嵌入式软件的基本要求。而且软件要求固化存储,以提高速度。软件代码要求高质量和高可靠性。(5)嵌入式软件开发要想走向标准化,就必须使用多任务的操作系统。嵌入式系统的应用程序可以没有操作系统而直接在芯片上运行;但是为了合理地调度多任务,利用系统资源、系统函数以及专家库函数接口,用户必须自行选配RTOS开发平台,这样才能保证程序执行的实时性、可靠性,并减少开发时间,保障软件质量。第一章总体方案设计1.1项目介绍本次项目是在Linux操作系统中,在飞凌S3C2440开发板上,运用C语言编写的一个MP3的程序。目前主要实现的功能的是:1、将start与pause功能集中在key1上。2、将continute功能置于key2中。3、将nextone功能置于key3中。4、将prev功能置于key4中。整体思路是:在UBUNTO中编写C程序并且利用arm-linux-gcc指令将写好的可执行文件移植到已装有linux内核的飞凌的S3C2440的开发板上,并且将按键驱动以及madplay在开发板上整合起来就可以实现一个简易的MP3播放器了。1.2硬件平台介绍采用飞凌S3C2440开发板,飞凌S3C2440开发板是飞凌有限公司开发的嵌入式系统开发平台,本开发板采用的是ARM9系统芯片S3C2440作为主控芯片,搭配3.2英寸液晶触摸屏,以及自带音频解码芯片,配有丰富的硬件接口,是当今最热门的开发开发平台之一。是当今最热门的开发开发平台之一。该开发板可以实现车载GPS,以及MP3音乐播放器,MP4视频播放器等高端消费电子产品。用本开发板实现MP3播放器的整体思路是,在移植操作系统的基础上,只需添加SD卡相关驱动和液晶触摸屏的相关驱动,便可以轻松挂载SD卡外设,实现SD卡中文件的快速读取,并通过相关软件设计出又好的图形用户接口,用户只需通过触摸屏幕,便可实现和平台的交互。并且,TQ2440开发板自带音频解码芯片UDA1341,能够完全胜任MP3文件的解码工作。1.3软件平台介绍1.3.1VMwareWorkstation由于Linux的兼容性差,目前很多常用软件并不支持在Linux平台上运行,这就导致如果直接安装Linux,那么在Linux环境中,将会有很多不便。因此,我们在此采用虚拟机下安装Linux的方案。虚拟机的工具我们选择VmwareWorkstation。VMwareWorkstation允许操作系统(OS)和应用程序(Application)在一台虚拟机内部运行。虚拟机是独立运行主机操作系统的离散环境。在VMwareWorkstation中,你可以在一个窗口中加载一台虚拟机,它可以运行自己的操作系统和应用程序。你可以在运行于桌面上的多台虚拟机之间切换,通过一个网络共享虚拟机(例如一个公司局域网),挂起和恢复虚拟机以及退出虚拟机—这一切不会影响你的主机操作和任何操作系统或者它正在运行的应用程序。VMwareWorkstation是一款功能强大的桌面虚拟计算机软件,提供用户可在单一的桌面上同时运行不同的操作系统,和进行开发测试部署新的应用程序的最佳解决方案。VMwareWorkstation可在一部实体机器上模拟完整的网络环境,以及可便于携带的虚拟机器,其更好的灵活性与先进的技术胜过了市面上其他的虚拟计算机软件。对于企业的IT开发人员和系统管理员而言,VMware在虚拟网路,实时快照,拖曳共享文件夹,支持PXE等方面的特点使它成为必音频设备PCS3c2440不可少的工具。1.3.2madplay介绍MP3技术使音乐数据压缩比率大,回放质量高,较小数据量和近乎完美的播放效果使其在网络上传输得以实现。随着MP3播放器的出现及其技术的发展,对MP3播放器的要求越来越高,制造商在选型、设计、开发、附加功能和适用领域等方面做了很多努力,设计了多种方案。对MP3文件进行解码可以采用软件解码和硬件解码两种方法。硬件解码如采用专用解码芯片MAS3507D,实现简单但增加硬件成本。软件解码需占用大量CPU时间。实现难度较大,但硬件成本低、处理灵活。madplay是友善之臂移植的一个基于控制台下的mp3播放器。它有多种播放控制模式,可以运行“madplay-h”查看其使用帮助。其移植过程主要包括源代码的获取,相应库的安装,详细过程如下所示:(1)准备源代码。可以到http://sourceforce.net/project/showfiles.php?qroupid=12349下载Madplay源代码和相关依赖包:Madplay-0.15.2b.tar.gzLibid3tag-0.15.2b.tar.gzlibmad-0.15.2b.tar.gz(2)安装zlib-1.2.3。新建目录install。作为库文件的安装路径。解压zlib-1.2.3.tar.gz,在当前目录下生成的zlib-1.2.3目录就是zlib-1.2.3源代码所在路径。$mkdirinstall$tarxzvfzlib-1.2.3.tar.gz编译zlib-1.2.3。进入zlib-1.2.3目录,在交叉编译时需要修改Makefile文件的CC=arm-linux-gcc,profix=$(PWD)/…/install,然后进行编译。$make$makeinstall(3)编译安装Libid3tag-0.15.2b。解压Libid3tag-0.15.2b.tar.gz,在当前目录下生成的Libid3tag-0.15.2b目录就是安装目录。使用configure命令配置库编译选项,包括C编译器、编译选项、链接选项和安装路径等,然后用ARM编译工具交叉编译libid3,将编译好的库安装到指定目录下,然后用以下目录安装到指定目录下。$make$makeinstall(4)编译安装libmad-0.15.2b。解压libmad-0.15.2b.tar.gz,在当前目录下生成的libmad-0.15.2b就是安装路径。使用configure命令配置库编译选项,包括C编译器、编译选项、链接选项和安装路径等,然后用ARM编译工具交叉编译libid3,将编译好的库安装到指定目录下,然后用以下目录安装到指定目录下。$make$makeinstall(5)可执行文件的拷贝编译成功后生成的可执行文件madplay在/opt/FriendlyARM/mini2440/madplay/target-arm/bin目录下,编译成功后生成的madplay的库文件/opt/FriendlyARM/mini2440/madplay/target-arm/lib目录下。将可执行文件放到开发板的/usr/bin目录下将madplay的库文件放到开发板的/usr/lib目录下方法:u盘,nfs,ftp等。(6)madplay在开发板上的测试最简单的测试方法在开发板终端输入“madplayXXXX.Mp3”,此时将以缺省模式播放XXXX.M
本文标题:基于S3C244O 的MP3设计
链接地址:https://www.777doc.com/doc-3259740 .html