基于嵌入式Linux的MP3播放器的设计与实现毕业设计论文.docx
- 文档编号:6910272
- 上传时间:2023-01-12
- 格式:DOCX
- 页数:45
- 大小:1.42MB
基于嵌入式Linux的MP3播放器的设计与实现毕业设计论文.docx
《基于嵌入式Linux的MP3播放器的设计与实现毕业设计论文.docx》由会员分享,可在线阅读,更多相关《基于嵌入式Linux的MP3播放器的设计与实现毕业设计论文.docx(45页珍藏版)》请在冰豆网上搜索。
基于嵌入式Linux的MP3播放器的设计与实现毕业设计论文
基于嵌入式Linux的MP3播放器的设计与实现毕业设计论文
摘要
伴随嵌入式系统的持续发展以及普通用户对多媒体应用越来越旺盛的需求,具有多媒体播放功能设备逐渐成为嵌入式系统中必不可少的重要功能。
此毕业设计将设计一个基于嵌入式Linux的MP3播放器,系统硬件采用基于ARM架构的开发板。
论文首先介绍了嵌入式操作系统的最新发展、嵌入式Linux、ARM的特点以及Qt等的相关知识。
重点介绍了如何使用开源播放器MPlayer、解码库libmad、QtCreator工具来开发一个有图形界面的MP3播放器。
还介绍了如何移植U-boot、Linux内核、Qt和文件系统,并在移植好之后烧写到开发板之上,得到一个能独立运行在开发板上的MP3播放器。
系统测试表明,该MP3播放器能实现如下功能:
“播放”、“暂停”、“停止”、“音量调节”、“退出程序”和“歌曲播放时间”,系统运行稳定,基本达到了设计要求。
关键词:
嵌入式Linux;移植;Linux;Qt
Abstract
Alongwiththesustainabledevelopmentoftheembeddedsystemandtheincreasinglydemandsformultimediaapplications,anelectronicequipmenthasafunctionsofplayingsongsgraduallybecomeindispensably.ThisdesignwillintroduceanimplementionforaMP3player,basedonembeddedLinuxsystemandanARMarchitecturedevelopmentboard.
ThisPaperintroducesthelatestdevelopmentforembeddedoperatingsystem,embeddedLinux,thecharacteristicsoftheARM,Qtandotherrelatedknowledges.Especially,thispaperdisplayshowtousetheopensourceplayerMPlayer,adecodinglibrarycalledlibmad,QtCreatortoolstodevelopagraphicalinterfaceofanMP3player.Inthispaper,theworkoftransplanttheboot,theLinuxkernel,Qt,andfilesystemsisalsointroduced.Afterallsystemimagesareburnedintothedevelopmentboard,onedevelopmentboardcanrunaMP3playerisobtained.
SystemtestshowsthatthisMP3playercanrealizethefollowingfunction:
"Play","Pause","Stop","VolumeControl","Exit"and"ShowSongsPlayingState".Thewhloesystemrunsstably,andreachedthebasicdesignrequirement.
Keywords:
embededLinux;transplant;Linux;Qt
第一章绪论
1.1课题研究背景和意义
随着社会的日益信息化,计算机和网络已经全面渗透到日常生活的每一个角落。
对于我们每个人来说,需要的已经不再仅仅是那种放在桌上处理文档、进行工作管理和生产控制的计算机机器。
任何一个普通人都可能拥有各种使用嵌入式技术的电子产品。
如今,各种新式嵌入式设备从数量来说已经完胜常规计算机了。
尤其在工业中,几十年来,具有嵌入式技术的数控机床、工业智能机器人、智能设备、服务型机器人一直都对传统的工业生产方式不断改善和提高着。
MovingPictureExpertsGroupAudioLayerIII(MPEG-1AudioLayer3,动态影像专家压缩标准音频层面3),经常称为MP3,是当今相当流行的一种数字音频编码和有损压缩格式,它被设计来大幅降低音频数据量,而对于大多数用户的人体自身听觉感受来说,重放的音质与最初的不压缩音频相比并没有极其明显的下降。
MP3播放器是嵌入式系统的主要应用之一,高端的MP3已经不仅仅着眼于音乐播放这一功能,而是同时具备了图片浏览、文本阅读、甚至视频播放等强大功能。
本文重点讨论基于S3C2440芯片的MP3播放器的实现,还包括开发环境建立、内核裁剪与编译、Qt开发等一系列过程。
像以前需要两块甚至多块芯片才能处理的数据,现在基本上可以通过单块ARM芯片完成,不仅仅降低系统成本,同时也简化了系统的设计过程。
而且嵌入式Linux操作系统的出现,使得应用软件的开发也变得相对简单,此外Linux天生的多平台兼容性,使其移植到ARM平台相对简单,再加上其可裁剪的优点,使得嵌入式Linux成为当前嵌入式开发的主流系统。
所以课题选择基于嵌入式Linux的MP3播放器的设计与实现,具有一定的现实意义。
同时,毕业设计也是将大学所学知识的一次综合运用,也会使得在文献检索、查阅资料、科学研究素养和文档写作等方面的能力得到进一步提高。
1.2嵌入式系统发展和现状
1.2.1嵌入式操作系统
英国电机工程师协会BIEE(BritainInstituteofEletricalEngineers)对嵌入式系统的定义是:
嵌入式系统为控制、监视或辅助设备、机器甚至工厂运作的装置[1]。
从20世纪80年代开始,在嵌入式系统出现了“操作系统”概念,这使得开发人员可以进一步缩短开发周期,降低开发成本并提高开发效率。
例如著名的VxWorks,该系统如今被华为、H3C、中兴等众多网络设备和通信设备厂商所采用。
而思科采用了基于UNIX开发而来的“网际互联操作系统”(InternetOperationSystem,缩写为IOS);另一家网络设备厂商Juniper所使用的JunOS系统直接运行于FreeBSD内核之上,和内核联系紧密。
20世纪90年代之后,随着对实时性要求的提高、软件规模不断增加,逐渐发展出实时多任务操作系统,并作为一种软件平台逐步成为目前嵌入式操作系统的主流。
许多大公司看到了嵌入式系统的无限美好的发展前景,开始大力发展自己的嵌入式操作系统如PalmOS、PalmWebOS、WindowsCE、嵌入式Linux、Symbian、BlackBerryOS、µC/OS-II、eCOS、uITRON等嵌入式操作系统。
[2]
21世纪第一个十年的后半叶,出现了三大系统:
2007年,苹果公司发布了改变人们生活的iPhone和iOS操作系统;随后,2008年,谷歌发布了Andriod操作系统;微软于2010年发布WindowsPhone7系统、2012年发布了WindowsPhone8系统。
这几年里,基于这三大智能系统的智能手机、平板电脑的数量爆发式增长,提高了人们的工作效率和生活舒适度。
尤其是平板电脑,使人们对嵌入式设备和电脑界限的划分逐渐模糊。
除了上面的这些操作系统之外,三星、Ubuntu甚至是Firefox等公司都发布了自己的操作系统和手机。
三星、Ubuntu等许多公司的系统都是是基于Linux开发而来的,仅有少数是个例外如FirefoxOS,该系统是基于HTML5的,毕竟火狐本身就是一个浏览器厂商。
在这场操作系统之争中,如PalmOS、WebOS、WindowsCE、Meego等系统已经淡出了历史的舞台,而Symbian、BlackBerryOS则在垂死挣扎。
嵌入式Linux和Andriod是开源的系统。
开发基于Andriod的系统时,需要向其他厂商如微软、诺基亚、三星等公司缴纳专利授权费用,而基于嵌入式Linux开发的系统就没有这个问题,适合小型厂商和个人的商业开发。
1.2.2嵌入式Linux和Linux
嵌入式系统和通用计算机系统相比具有如下特点:
可裁剪性好、系统内核小、功耗低、可靠性高、实时性好等。
嵌入式Linux和Linux应用程序开发没有太大区别,但是,嵌入式Linux系统的开发过程中同纯粹基于Linux环境下的开发流程有着一个本质的不同之处:
前者需要在宿主机器上交叉编译、交叉调试,而在目标机上运行被调试程序;而后者都是在通用计算机上进行本机编辑,本机编译、连接、调试、运行的。
UNIX,作为现代操作系统的祖先,从贝尔实验室流传出来。
而在UNIX的发展过程中,产生的C语言,是贝尔实验室对科技发展的又一重大贡献。
贝尔实验室的母公司——美国电话和电报公司(AT&T),见有利可图,就禁止免费使用UNIX并推出了收费版本UNIXSystemV。
之后UNIX分化成了许多不同分支和发行版本,最著名就是FreeBSDUNIX。
GNU,即GNU’sNotUNIX。
该组织建立与1983年,其目标是创建一套完全免费的、自由的UNIX-like系统。
该组织编写出了一个完整操作系统的大部分内容,如编译器、系统管理工具、网络工具、Office套件、多媒体和绘图软件,除了内核。
Linux由LinusTrovalds于1991年发明,是1990年后出现的新学派Unix阵营(也包括FreeBSD、NetBSD、OpenBSD和Darwin)的领头羊,代表了整个阵营的设计方向[3]。
一个叫Linus的大二学生写出了一个内核,被GNU看中,然后就有了今天的Linux。
Linux,最大的特色是开源和免费,遵循着GPL开发者们可以根据自身需要灵活的进行定制化开发,因此也产生了相当多的Linux的发行版本。
1.2.3ARM的介绍
嵌入式处理器与常见的基X86架构处理器的PC相比,最大的优势是低功耗。
此外,嵌入式操作系统是实时操作系统,着眼于调度所有可以使用的资源来完成实时控制任务,而桌面操作系统如UNIX、Linux和Windows都是分时操作系统。
按照处理器内核的体系结构,可以将嵌入式处理器分为:
MIPS处理器、ARM处理器、PowerPC处理器、ColdFire/68K处理器等。
智能手机和平板电脑的流行,让“ARM”这一词语频繁出现在人们的视野中,普通人都常常能到报纸、电视上见到这个词。
什么事“ARM”?
ARM是AdvancedRISCMachines(高级精简指令集处理机)的缩写,表示一种知识产权核。
同时“ARM”也是一家公司的名称,ARM这家公司于1991年成立于英国剑桥,该公司的特点是只设计基于ARM架构的处理器内核,再将该产品及相关专利授权给其他半导体厂商、软件厂商和OEM厂商公司使用或生产,包括Intel、Apple、微软、三星、高通、索尼等[4],ARM公司本身没有任何工厂。
英特尔当前是全球PC处理器的主导者,市场份额超过了80%。
但2012年全球PC市场在过去的10年间首次出现下滑,而ARM的份额逐年稳步增长。
ARM公司与2012年十月发布的Cortex-A50核心,面向服务器领域,此番旨在同Intel争夺其基于X86体系的服务器市场。
几乎在同时,AMD宣布基于此核心来开发64位ARM架构的处理器,这使得AMD成为业界中不仅唯一一家具有独立制造CPU和GPU能力的厂商,而且将是唯一一家能提供基于X86和ARM架构的处理器芯片的厂商。
微软于2012年10月发布基于ARM架构CPU的SurfaceWindowsRT,同时也意味着视窗操作系统从Windows8开始可以在ARM平台上运行了。
ARM处理器分为如下几个系列:
ARM7、ARM9、ARM9E、ARM10E、ARM11、Cortex-A8、Cortex-A9、Cortex-A15等。
本毕业设计基于三星S3C2440的XC2400开发板,其微处理器为基于ARM9内核的ARM920T。
1.2.4Qt的介绍
Qt是挪威TrollTech公司开发的跨平台C++图形用户界面研发工具。
2008年该公司被Nokia收购。
2009年Nokia公开了Qt的源代码。
2012年,Nokia将Qt售予芬兰软件公司Digia,而Qt仍将保持开源。
Digia计划将Qt推广到Andriod、iOS和Windows8平台。
Qt的一个显著特点是跨平台特性。
通过对不同平台的私有API,如文字处理、网络协议、进程处理、线程、数据库访问等进行封装。
Qt可以在多个平台(Unix、Linux、Windows、Mac等)上运行,从某种意义上讲,Qt类似于Microsof的MFC或Borland的VCL,都是C++的一个函数库。
不同的是它封装不同操作系统的访问细节,而且能实现跨平台应用[5]。
QT的版本比较多,对于初学者容易搞混。
现分别介绍:
(1)Qt/X11:
是指用专门于Linux或者Unix的版本。
如:
qt-x11-opensource-src-4.6.3.tar.gz,它是用于PC机linux平台的Qt源码包。
Linux操作系统中的常见的KDE桌面就是用Qt/X11开发的;
(2)QtWindows:
是指用于Windows的Qt版本;
(3)Qt-everywhere:
在配置时加上不同参数的话,选择性地编译用于X86,或者用于ARM平台,如qt-everywhere-opensource-src-4.6.3.tar.gz;
(4)Qt/Embedded:
即Qt/E。
其是专门用于ARM平台的Qt版本。
如qt-embedded-linux-opensource-src-4.6.3.tar.gz,它是用于嵌入式ARM的qt源码包。
本次毕业设计将在X86平台上安装面向Qt/X11的Qt,软件版本为qt-SDK-linux-x86-opensource-2010.04。
安装在/opt目录下,在桌面会生出QtCreator快捷方式,打开后进行一些参数的设置之后即可进行程序的开发,例如指定qmake的路径。
1.3论文所做的工作和结构
1.3.1论文所做的工作
本毕业设计在RedHatEnterpriseLinux中安装QtCreator开发工具,实现在嵌入式Linux下的MP3播放器。
能通过图形界面控制播放和暂停、快进快退、上下曲、音量增减、显示歌曲状态信息等功能。
本课题的主要研究内容包括:
(1)了解一个嵌入式Linux系统的开发流程;
(2)开发平台的搭建:
包括交叉编译环境的建立、环境变量的配置等;
(3)掌握Linux内核的移植、开源MP3音乐播放器的移植、用Qt开发的程序及其移植;
(1)了解Bootloader的功能和作用;
(2)掌握嵌入式Linux的程序开发,以及编译、调试方法和步骤。
需要解决的关键性问题:
(1)熟悉嵌入式Linux和其开发流程中涉及的的裁剪和移植;
(2)开源播放器MPlayer的移植和播放测试;
(3)用Qt实现对播放器的图形界面的开发,并实现相应的功能。
1.3.2论文结构
本论文共分六章:
论文的第一章,是绪论部分。
主要是对课题的研究目的及意义,课题现状以及作者所做的工作进行简略的介绍;对嵌入式操作系统进行梳理和介绍和以比较;介绍ARM体系的基本发展和特性;对Qt进行基本的介绍。
第二章主要介绍了本系统的硬件平台。
首先是对系统的整体架构进行了介绍;对系统的硬件电路和功能模块进行了介绍。
第三章主要是搭建嵌入式开发平台。
介绍RedHat、VMwareStation及其相关的使用和技巧。
第四章主要是详细MPlayer的编译和移植工作,以及Qt程序的开发和移植工作。
第五章主要是实验结果和毕业设计过程中遇到的一些问题。
第六章是总结与展望,回顾了本次毕业设计及其中的不足之处。
第二章系统总体方案设计
2.1系统框架概述
根据嵌入式MP3媒体播放器系统的需求分析,本文选择了基于ARM9内核的处理器的开发板作为本系统的实现的平台,下文将对其中硬件设备做介绍。
软件平台选择嵌入式Linux操作系统。
毕业设计中的开发平台是RedHatEnterpriseLinux6.3操作系统,其是安装在VMwareStation9.0虚拟化平台中的,可以方便的与Windows操作系统进行数据共享和传输。
为了搭建整个开发环境,还需要交叉建立交叉编译环境。
播放器系统的整体结构由下到上为:
应用层(Qt、MPlayer)、操作系统层(Linux)、驱动层(音频驱动、液晶屏幕驱动等)和物理层(ARM芯片以及外围电路)。
2.2开发板硬件介绍
本次毕业设计使用XC2440开发板,如图2.1所示:
包括S3C2440处理器、NANDFlash、NORFlash、SDRAM、串口、下载接口、音频解码芯片和接口、LCD和触摸屏接口、时钟电路、复位电路等。
图2.1XC2440开发板
2.2.1主要硬件及其参数
●CPU:
主频为400MHz的三星S3C2440A
●内存:
64MBytesSDRAM
●闪存:
256MBytesNandflash+2MBytesNorflash
●板载复位电路
●板载电源管理芯片
●内部RTC(Real-TimeClock,实时时钟)功能
●180Pin管脚以1.27mm间距排针形式引出
●4.3寸TFTLCD,带触摸屏,分辨率480×272
2.2.2接口资源
●1个100M以太网接口
●1个RS232电平串口
●2个TTL电平串口
●1个USBHOST接口
●1个USBDEVICE接口
●1个LCD接口
●1个Camera接口
●1个microSD/TF卡接口
●2个音频接口,uda1341音频芯片,使用IIS和L3总线,一路立体声输入,一路立体声输出
●1个温度传感器
●1个红外接收管
●2个电位器
●4个用户LED
●4个用户按键
●1个蜂鸣器
●1个JTAG接口
●1个mircoSD/TF卡接口
●板载EEPROM
●板载RTC供电电池
2.2.3NAND和NORFlash的相关介绍:
“NAND”这个名称表示其是由“与非”逻辑门电路构成,而“NOR”则表明其内部有“或非”逻辑门电路构成。
从对数据传输速率来看,NAND要比NOR快很多,因为NAND是按页操作的而NOR是按字节操作的。
NOR是和SRAM一样的可随机存储的,也不需要驱动,因此,其受限于地址线,地址就是有限的,所以容量普遍较小;NOR的优点则表现在读取速度快,而且程序可以直接在芯片内部运行,不需要再读入SDRAM中了。
再从价格上来看,NOR的价格更高。
从实际应用来看,NOR较多的用在工业领域,特别是用于程序存储等少量数据存储的需求;NAND较多使用再在消费领域中,适合大量数据存储。
U-boot程序不支持从Nandflash启动,但是S3C2440支持从Nandflash启动。
开发板加电后S3C2440将Nandflash的前4k(保存有U-boot的部分功能)中的内容拷贝到SDRAM。
这就需要修改U-boot源码,使得U-boot在得到执行权后能够将其自身拷贝到开发板上SDRAM中,以便处理器能够执行U-boot。
幸好这些工作已经由开发板厂商完成了,不需要用户自行开发。
2.2.4S3C2440的启动方式说明
如果把S3C2440配置成从NANDFlash启动(开发板启动开关拔至NAND端)S3C2440的NAND控制器会自动把NANDflash中的前4K代码数据复制至内部SRAM中(地址为0x40000000),同时还把这块SDRAM的地址映射为0x00000000(CPU总是从0x00000000地址开始运行程序)。
如果将S3C2440配置成从NORFlash启动(开发板启动开关拔至NOR端),0x00000000就是NORFlash实际的起始地址,Norflash中的程序就从这里开始运行,不会涉及到数据拷贝和地址映射。
2.3用于本设计MP3播放器的硬件架构
该MP3播放器系统总体框图如图2.2所示:
包括基于ARM价格的三星S3C2440处理器,NAND、SDRAM存储器、音频处理模块、LCD和触摸屏接口、复位按键、J-link接口等。
图2.2MP3播放器硬件框图
本方案的说明:
采用基于ARMS3C2440的开发板。
XC2440开发板采用ARM9系列芯片S3C2440作为核心芯片,搭配4.3英寸液晶触摸屏,以及自带音频解码芯片UDA1341,完全胜任MP3文件的解码工作。
NORFlash用来存放着引导程序U-boot;NAND中除了放着U-boot还有系统内核及文件系统,以及歌曲文件;SDRAM用于存放着系统的运行中产生的数据;液晶触摸屏可以让用户进行操作,播放视频时还可以看到视频;
系统采用嵌入式Linux系统,Linux操作系统具有很多优点,如内核可裁剪、高度的可移植性等,支持几乎所有的主流芯片,并且还在不断地被移植至新的芯片上。
此外采用开源Linux系统,不需要像其它一些系统那样需要缴纳专利授权费用。
第三章嵌入式Linux的开发流程
3.1开发环境的搭建概述
3.1.1硬件平台
ARM开发板,主机,局域网。
3.1.2软件平台
(1)操作系统
本次毕业设计使用虚拟化平台VMwareStation,并在其中建立虚拟机,进而在该虚拟机之中安装RedHatEnterpriseLinux系统。
(2)交叉编译环境
交叉编译是指:
在PC机上编译,在目标板上直接可以执行,不需要重新在目标平台上面进行编译了。
交叉编译环境主要包括:
目标板操作系统、目标板CPU体系架构、编译器等。
目标板操作系统:
经过裁剪的Linux系统。
目标板使用的CPU:
基于ARM9架构的ARM920t内核。
编译器:
gcc,arm-linux-gcc、makefile工具、库函数等。
3.主机和开发板之间的通信接口
串口:
用串口控制板子。
可用DNW软件设置好要控制的串口、波特率。
使用串口线也可以传输文件至开发板,但是速率较慢。
USB下载线:
可以使用DNW软件下载U-boot、系统内核、文件系统镜像文件到开发板,传输速率较快。
RJ-45以太网接口:
设置好开发板、PC网卡的IP地址后,可以用NFS挂载的方式来共享主机需要下载到开发板上编译好的代码,也可以使用FTP、TFTP工具来传输文件,这样速率非常快,并且很方便使用。
在配置好网络后,就可以用Telnet客户端控制开发板,这样就可以免去频繁的切换目录了。
3.2安装软件平台和搭建开发环境的步骤
3.2.1虚拟化平台的介绍与安装
毕业设计中的开发平台是Linux操作系统,其是安装在VMwareStation9.0这个虚拟化平台中的,可以方便的与Windows操作系统进行数据共享和传输。
目前,Windows操作系统中的很多常用软件并不支持在Linux平台上运行,如果直接安装Linux,那么在
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 嵌入式 Linux MP3 播放 设计 实现 毕业设计 论文