基于STM32的MP3播放系统设计毕业设计论文.docx
《基于STM32的MP3播放系统设计毕业设计论文.docx》由会员分享,可在线阅读,更多相关《基于STM32的MP3播放系统设计毕业设计论文.docx(39页珍藏版)》请在冰豆网上搜索。
基于STM32的MP3播放系统设计毕业设计论文
信息工程大学
毕业设计(论文)报告
(地方学生)
课题名称基于STM32的MP3播放系统设计
毕业设计(论文)原创性声明和使用授权说明
原创性声明
本人郑重承诺:
所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。
尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。
对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。
作者签名:
日 期:
指导教师签名:
日 期:
使用授权说明
本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:
按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。
作者签名:
日 期:
学位论文原创性声明
本人郑重声明:
所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。
除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。
对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。
本人完全意识到本声明的法律后果由本人承担。
作者签名:
日期:
年月日
学位论文版权使用授权书
本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。
本人授权 大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
涉密论文按学校规定处理。
作者签名:
日期:
年月日
导师签名:
日期:
年月日
摘要
MP3是一种高质量音乐压缩标准,采用MP3压缩的数据量可以缩小到1/12,音质却没有多少损失。
由于MP3音乐的较小数据量和高质量的播放效果,使它很快成为一种集音频播放、数据存储为一身的数码产品,并深受人们的喜爱。
本文采用STM32系列微控制器,结合解码芯片VS1003、SD卡、LCD等外围设备设计并实现了MP3播放器。
其主要功能有:
播放VS1003支持的所有音频文件,如MP3、WMA、WAV文件,且音质非常好;通过摇杆控制播放上一首/下一首,通过电位计来控制音量增减,通过LCD显示音量图标和播放状态等;本系统还计划实现读卡器功能,PC机可通过USB接口直接对开发板上的SD卡进行读写操作,以方便拷贝音频文件。
关键字:
MP3播放器、CortexM3、STM32V100、VS1003
ABSTRACT
IsahighqualityMP3musiccompressionstandard,withMP3compresseddatacanbereducedto1/12,butthereislittlelossofsoundquality.MP3musicasthesmalleramountofdataandhigh-qualityplayback,itwillsoonbecomeasetofaudioplayback,thedataisstoredasadigitalproduct,andverypopular.Inthispaper,STM32familyofmicrocontrollers,combinedwithdecoderchipVS1003,SDcard,LCDandotherperipheralsdesignandimplementationofMP3players.Itsmainfunctionsare:
PlayVS1003supportsallaudiofiles,suchasMP3,WMA,WAVfiles,andthesoundqualityisverygood;throughthejoystickcontrolplaybackona/tothenext,throughapotentiometertocontrolvolumechange,throughtheLCDshowthevolumeiconandplaystatus,etc.;Thesystemalsoplanstoachievereaderfunction,PCmachineinterfacesviaUSBdirectlytothedevelopmentboardoftheSDcardreadandwriteoperationstofacilitatethecopyingaudiofiles.
Keywords:
MP3Players;CortexM3;STM32V100;VS1003
第一章绪论
1.1选题背景
随着信息技术的飞速发展,形式多样的数字化产品已经开始成为继PC机后的信息处理工具,在这种数字化潮流下,嵌入式系统已成为当前研究和应用的热点之一,嵌入式手持设备的视音频多媒体应用也越来越广泛。
由于嵌入式系统的应用要求及成本因素决定了嵌入式系统在系统资源,包括硬件资源和软件资源方面都是非常精简和高效的。
随着数字编解码及压缩技术的发展,语音文件也朝着高压缩比、高保真的方向发展,从MP1、MP2到目前的MP3格式。
便携式MP3播放器作为一种集音频播放、数据存储为一身的数码产品,其功能结构为电子设计人员所津津乐道。
MP3是MPEG一1音频III(1ayerIII)的简称。
MPEG一1音频(ISO/IECll172—3)是目前普遍应用的音频压缩标准,其中层III的算法最为复杂,但压缩比最大,效果也最好,在低码率的条件下基本能达到CD的音质效果。
MP3标准用尽可能低的码流实现CD音质的声音而不会产生数据损失。
如果对于一段声音不进行压缩的话,那么每存储一秒钟的立体声CD音质音乐必须用1.4Mbit,这是个十分大的开销。
通过运用MPEG音频标准的压缩技术,我们可以把存储空间压缩到原来的1/12而不会降低声音的音质。
即使使用1/24的压缩因子,仍然比单纯降低采样率的音质要好。
低数据量和高播放品质的优点使其成为音乐存储、数字广播、网上音乐传输的主要方式。
人们不仅可以使用计算机软件,还可以通过数字随身听来欣赏音乐。
1.2国内外研究现状及意义
MP3全称是MPEGLayer3,狭义的讲就是以MPEGLayer3标准压缩编码的一种音频文件格式。
在INTERNET广泛普及的今天,MP3音乐以其较小数据量和近似完美的播放效果已经成为计算机上和INTERNET最流行的音乐格式了。
将CD格式的音乐数据压缩成MP3格式,音效相差无几(除非你有很好的音响和鉴赏力),文件大小至少可以压缩12倍(每首PCM格式的CD歌曲大约40~50MB数据量)。
自韩国世韩(Seahan)公司1998年推出世界上第一台MP3随身听以来,MP3播放器以其小巧的外形,不错的近乎于CD的音质,前卫的功能,越来越受到消费者的青睐,也就成为业界甚至大众媒体关注的一个热门话题。
它的记录媒介是芯片或卡,无需转动部件,彻底摆脱了磁带和光碟的束缚,因而,抗震和节电性能更好。
在市场消费刺激下,各大公司纷纷推出了自己的mp3播放器产品,IC供应商提供了众多的MP3解码芯片及其解决方案。
除了Micronas方案(MAS3507+DAC3550)、ST方案(ST92163+STA013/015)、Crystal软解压单芯片方案(EP7209,EP7212)、TI软解压单芯片方案(TMS320C5409),还有台湾创品方案(T33510,T33520)、美国SigmaTel方案(STMP3400)和TI的DA-250解决方案。
这使mp3播放器的研制与生产变得更加容易,成本也大大降低,市场更加广阔。
1.3设计和研究方向
STM32系列微控制器采用ARM公司最新的CortexM3内核。
VS1003音频解码芯片为VS10xx系列的第三代产品,是芬兰VLSISolution公司生产的单片MP3/WMA/MIDI解码和ADPCM编码芯片。
本文采用STM32系列微控制器,结合解码芯片VS1003、SD卡、LCD等外围设备设计并实现了MP3播放器。
其主要功能有:
播放VS1003支持的所有音频文件,如MP3、WMA、WAV文件,且音质非常好;通过摇杆控制播放上一首/下一首,通过电位计来控制音量增减等;通过LCD显示音量图标和播放状态;本系统还计划实现读卡器功能,PC机可通过USB接口直接对开发板上的SD卡进行读写操作,以方便拷贝音频文件。
第二章系统设计理论基础
2.1Arm嵌入式系统
嵌入式系统的体系结构(architecture)是嵌入式设备的一种抽象,这意味着体系结构是系统的一般化,它典型的展现详细的现实信息,例如软件源代码或硬件电路设计。
在体系结构层次,一个嵌入式系统中的硬件和软件组件表示为相互作用的要素的某种组合。
要素是硬件或软件的表示,它们的实现细节被抽象掉了,只留下行为和相互关系的信息。
体系结构的要素可以在内部集成于嵌入式设备之中,或者存在于嵌入式系统外部并且与内部的要素相互作用。
简而言之,嵌入式体系结构包括嵌入式系统的要素、与嵌入式系统相互作用的要素、每个单独的要素的属性、以及要素之间相互作用的关系。
2.2STM32V100Arm开发板
STM32F103VBT6增强型系列使用高性能的ARMCortex-M332位的RISC内核,工作频率为72MHz,内置高速存储器(高达128K字节的闪存和20K字节的SRAM),丰富的增强I/O端口和联接到两条APB总线的外设。
所有型号的器件都包含2个12位的ADC、3个通用16位定时器和一个PWM定时器,还包含标准和先进的通信接口:
多达2个I2C和SPI、3个USART、一个USB和一个CAN。
STM32F103VBT6增强型系列工作于-40°C至+105°C的温度范围,供电电压2.0V至3.6V,一系列的省电模式保证低功耗应用的要求。
2.3SD卡
SD卡(SecureDigitalMemoryCard)是一种为满足安全性、容量、性能和使用环境等各方面的需求而设计的一种新型存储器件,SD卡允许在两种模式下工作,即SD模式和SPI模式,本系统采用SPI模式。
本小节仅简要介绍在SPI模式下,STM32处理器如何读写SD卡,如果读者如希望详细了解SD卡,可以参考相关资料。
SD卡内部结构及引脚如图2-1所示
图2.1SD卡内部结构及引脚
SD卡主要引脚和功能为:
CLK:
时钟信号,每个时钟周期传输一个命令或数据位,频率可在0~25MHz之间变化,SD卡的总线管理器可以不受任何限制的自由产生0~25MHz的频率;
CMD:
双向命令和回复线,命令是一次主机到从卡操作的开始,命令可以是从主机到单卡寻址,也可以是到所有卡;回复是对之前命令的回答,回复可以来自单卡或所有卡;
DAT0~3:
数据线,数据可以从卡传向主机也可以从主机传向卡。
SD卡以命令形式来控制SD卡的读写等操作。
可根据命令对多块或单块进行读写操作。
在SPI模式下其命令由6个字节构成,其中高位在前。
SD卡命令的格式如表1所示,其中相关参数可以查阅SD卡规范。
2.4FAT16文件系统
SD卡如果采用FAT16文件格式,按照其不同的特点和作用大致可分为5部分:
MBR区、DBR区、FAT区、FDT区和DATA区。
由于SD卡一般不做引导盘,一般也不分区,因此通常无MBR区,直接从DBR区开始。
下面对后面四个区分别作简介
2.4.1DBR区
内容为系统引导记录,它包括一个引导程序和一个被称为BPB(BiosParameterBlock)的本分区参数记录表。
引导程序的主要任务是当MBR将系统控制权交给它时,判断本分区根目录是否有操作系统引导文件,如果有则将其读入内存,并把控制权交给该文件。
BPB参数块记录着本分区的起始扇区、结束扇区、文件存储格式、根目录大小、FAT个数,分配单元大小等重要参数。
2.4.2FAT区
该区内容为文件分配表,FAT16文件系统进行空间分配的最基本单位是簇。
文件分配表反映了SD卡所有簇的使用情况,通过查文件分配表可以得知任一簇的使用情况。
对于FAT16来说,FAT表每项占用两个字节。
FAT表的第一项通常为FFF8H。
对于其它项,若其值为0000H表示可用;FFF7H表示为坏簇;FFF8H-FFFFH之间表示该簇为某文件或目录的最后一个簇,FFF0H-FFF6H之间为保留值;其它值则指示下一个簇的簇号。
2.4.3FDT区
该区的内容为文件目录表,FAT文件系统的一个重要思想是把目录(文件夹)当作一个特殊的文件来处理,FAT32甚至将根目录当作文件处理。
FAT分区中所有目录文件,实际上可以看作是一个存放其它文件(文件夹)入口参数的数据表。
因此,目录占用空间的大小并不等同于其下所有数据的大小,但也不等于0,通常是占很小的空间。
其具体的存储原理是:
不管目录文件所占空间为多少簇,一簇为多少扇区、多少字节;系统都会以32个字节为单位,进行目录文件所占簇的分配。
2.4.4DATA区
该数据区存放文件的内容,SD卡所占用的空间绝大部分为此部分。
如果文件长度大于一个簇的大小,需要多个簇存放该文件,这些放通过FAT链表串连起来。
2.5音频编解码器
音频编码解码器芯片主要由围绕一些处理硬件的一个模数转换器(ADC)和一个数模转换器(DAC)组成,但它们只是众所周知的海底冰山露出来的一角。
最近一段时间,大部分工程师认为音频编解码器就是在DSP平台上运行的压缩和解压缩算法。
在整个音频频率范围里,“语音”编解码器适合数字电话应用,而“音频”编解码器则适合娱乐音频应用。
在这个意义上,音频编解码器是从Dolby公司的噪音抑制技术演变成Dolby和其它一些公司更综合性的压缩方法。
它们的出现还与国际标准组织(ISO)的运动图像专家小组(MPEG)有关,该工作小组负责为数字音频和视频的编码表示制定相应的标准。
尽管语音编解码器技术的发展一定程度上处于静止状态,但音频编解码器技术一直在向前演进。
2.6液晶显示器
定义:
通常,我们在数字式电子表与手提电脑上所看到的显示数字之玻璃薄片即称之为液晶显示器(LiquidCrysplay,简称LCD)。
优点:
平面型显示,体积小,重量轻,功耗低,驱动电压低,可用大规模集成电路直接驱动,可以在明亮的境下显示,不含有害射线等。
种类:
①按显示方式,可分为透射型、反射型的投影显示三大类。
②按显示机理,可分为如下五种:
TN(TwistNematic)扭曲向列型
HTN(HighTwistNematic)高扭曲向列型
STN(SuperTwistNematic)超扭曲向列型
FSTN(FilmSuperTwistNematic)薄膜超扭曲向弄列型
TFT(Thin-filmTransistor)薄膜晶体管
2.7电路焊接
在焊接模块外引线、接口电路时,应按如下规程进行操作:
1)烙铁头温度小于280℃。
2)焊接时间小于3~4s。
3)焊接材料:
共晶型、低熔点。
4)不要使用酸性助焊剂,一般选择松香。
5)重复焊接不要超过3次,且每次重复需间隔3分钟。
第三章系统总体方案设计
3.1设计目标
本文采用STM32系列微控制器,结合解码芯片VSl003、SD卡、LCD等外围设备设计并实现了MP3播放器。
其主要功能有:
播放VSl003支持的所有音频文件,如MP3、WMA、WAV文件,且音质非常好;通过摇杆控制播放上一首/下一首、音量增减等;通过LCD显示歌曲名字和播放状态;本系统还实现了读卡器功能,PC机可通过USB接口直接对开发板上的SD卡进行读写操作,以方便拷贝音频文件。
3.2设计原理
3.2.1中央处理器工作原理
STM32处理器
CortexM3是ARM公司最新推出的基于ARMv7体系架构的处理器核,具有高性能、低成本、低功耗的特点,专门为嵌入式应用领域设计。
ARMv7架构采用了Thumb2技术,它是在ARM的Thumb代码压缩技术的基础上发展起来的,并且保持了对现存ARM解决方案完整的代码兼容性\[3\]。
Thumb2技术比纯ARM代码少使用31%的内存,减小了系统开销,同时能够提供比Thumb技术高出38%的性能。
在中断处理方面,CortexM3集成了嵌套向量中断控制器NVIC(NestedVectoredInterruptController)。
NVIC是CortexM3处理器的一个紧耦合部分,可以配置1~240个带有256个优先级、8级抢占优先权的物理中断,为处理器提供出色的异常处理能力。
同时,抢占(Preemption)、尾链(Tailchaining)、迟到技术(Latearriving)的使用,大大缩短了异常事件的响应时间。
CortexM3异常处理过程中由硬件自动保存和恢复处理器状态,进一步缩短了中断响应时间,降低了软件设计的复杂性。
CortexM3体系架构提出了新的单线调试技术,CortexM3处理器的跟踪调试是通过调试访问端口(DebugAccessPort,DAP)来实现的。
DAP端口可以作为串行线调试端口(SWDP)或串行JTAG调试端口(SWJDP,允许JTAG或SW协议)使用。
其中SWDP只需要时钟和数据2个引脚,实现低成本跟踪调试,避免使用多引脚进行JTAG调试,并全面支持RealView编译器和RealView调试产品。
此外CortexM3还具备高度集成化的特点,大大减小了芯片面积,内部集成了许多紧耦合系统外设,合理利用了芯片空间,使系统满足下一代产品的控制需求。
STM32系列是基于CortexM3核的微控制器,它在CortexM3内核的基础上扩展了高性能的外围设备。
3.2.2电源部分原理
电源设计是一个系统设计中的关键部分,对于整个系统,一个稳定的、具有一定功率的电源和合理的电源管理是必不可少的。
本系统有以下几种电源:
CPU的内核数字和模拟电源电压+1.8V,CPU的I/O口数字和模拟电源电压+3.3V、总线的隔离电源、LCD的驱动电源、LCD的背光逆变电源、其他外围设备电源电压+5V等电源。
3.2.3音频解码器介绍
VS1003是一个单片MP3/WMA/MIDI音频解码器和ADPCM编码器。
它包含一个高性能,自主产权的低功耗DSP处理器核VS_DSP4,工作数据存储器,为用户应用提供5KB的指令RAM和0.5KB的数据RAM。
串行的控制和数据接口,4个常规用途的I/O口,一个UART,也有一个高品质可变采样率的ADC和立体声DAC,还有一个耳机放大器和地线缓冲器。
其具体特性如下:
●能解码MPEG1和MPEG2音频层III(CBR+VBR+ABR);WMA4.0/4.1/7/8/95-384kbps所有流文件;WAV(PCM+IMAAD-PCM);产生MIDI/SP-MIDI文件。
●对话筒输入或线路输入的音频信号进行IMAADPCM编码
●支持MP3和WAV流
●高低音控制
●单时钟操作12..13MHz
●内部PLL锁相环时钟倍频器
●低功耗
●内含高性能片上立体声数模转换器,两声道间无相位差
●内含能驱动30欧负载的耳机驱动器
●模拟,数字,I/O单独供电
●为用户代码和数据准备的5.5KB片上RAM
●串行的控制,数据接口
●可被用作微处理器的从机
●特殊应用的SPIFlash引导
●供调试用途的UART接口
●新功能可以通过软件和4GPIO添加
图3.1VS1003芯片
3.2.5液晶显示原理
1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,如表
(1)所示,这些字符有:
阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”
表3.2LCD1602字符表
3.3模块设计方案对比
3.3.1控制模块
方案一:
此方案采用89C51单片机实现,单片机软件编程自由度大,可用编程实现各种控制算法和逻辑控制。
但是89C51需外接模数转换器来满足数据采样。
如果系统增加语音播放功能,还需外接语音芯片,对外围电路来说,比较复杂,且软件实现也较麻烦。
另外,51单片机需要用仿真器来实现软硬件调试,较为繁琐。
方案二:
此方案采用SPCE061A单片机实现,此单片机内置8路ADC,2路DAC,且集成开发环境中,配有很多语音播放函数,用SPCE061A实现语音播放相对方便。
但5V的工作电压,16位的处理器芯片,较低的闪存,使得功耗比较大,处理速度比较慢,工作效率比较低,存储量受到限制。
方案三:
此方案采用STM32V100ARM板实现,它使用高性能的ARMCortex-M332位的RISC内核,工作频率为72MHz,内置高速存储器(高达128K字节的闪存和20K字节的SRAM),丰富的增强型I/O端口以及包含2个12位的ADC、3个通用16位定时器和一个PWM定时器。
使得处理速度大大提高,机器功耗大大降低,整体性能得到很大提高。
32位的处理器使得控制更加稳定、迅速,窗口型看门狗,使得程序运行更加高效。
另外,比较方便的是该板支持硬件仿真,通过Ulink仿真器可以方便实现在线逐步调试,这大大方便了系统的开发与调试工作。
3.3.2电源模块
1)在各种电子设备中,直流稳压电源是必不可少的组成部分,它是电子设备唯一能量来源,它的设计思路可以根据我们以前学过的模电知识来完成,既做一个稳压电源,将交流220V的电压经过变压器、整流电路、滤波电路和稳压电路四个部分,输出我们想要得的+5V电压。
2)可以用四节干电池和稳压三极管进行稳压,从而得到我们要用的+5V直流电压,通过外接排针CN12,从外板供电。
3)可以通过主板上USB端口(CN1)供电,供电电流小于500mA。
出于调试的方便和即插即用性,以及本系统的侧重点在MP3播放器上,所以我采用USB为系统供电,如此一来使系统的实现变得更加简便、迅速。
3.3.3音频解码器模块
VS1003特性:
VS1003可以作为一个微控制器的从机,通过串行SPI接口来接收输入的比特流,输入的比特流被解码后,可以通过一个数字音量控制器到达一个18位过采样多位DAC。
通过串行总线控制解码器。
这样利用一个VS1003芯片与STM32F103x处理器配合,STM32处理器读取SD卡中的MP3文件,将其通过SPI接口送往VS1003芯片播放,然后再利用STM32F10X处理器的一些GPIO口来控制VS1003即可以实现一个MP3Player的原形设计。
3.3.4显示模块
1)常见的基于单片机设计的音乐播放器基本不能显示歌曲。
该音乐播放系统设计上增加液晶显示器,LCD显示模块主要完成数据显示、输出数据与显示数据的同步等功能,可为使用者提供曲目信息。
由于LED数码管只能