大学毕业设计基于stm32的mp3音频播放器制作.docx
- 文档编号:25638788
- 上传时间:2023-06-11
- 格式:DOCX
- 页数:30
- 大小:3.15MB
大学毕业设计基于stm32的mp3音频播放器制作.docx
《大学毕业设计基于stm32的mp3音频播放器制作.docx》由会员分享,可在线阅读,更多相关《大学毕业设计基于stm32的mp3音频播放器制作.docx(30页珍藏版)》请在冰豆网上搜索。
大学毕业设计基于stm32的mp3音频播放器制作
本科毕业论文
基于STM32的MP3音频播放器制作
二级学院
机械与电子工程学院
专业
电子信息工程
年级
学号
学生姓名
指导教师
职称
完成时间
独创性声明
本人郑重声明:
所呈交的毕业论文(设计)是本人在指导老师指导下取得的研究成果。
除了文中特别加以注释和致谢的地方外,论文(设计)中不包含其他人已经发表或撰写的研究成果。
与本研究成果相关的所有人所做出的任何贡献均已在论文(设计)中作了明确的说明并表示了谢意。
签名:
年 月 日
授权声明
本人完全理解贺州学院有关保留、使用本科生毕业论文(设计)的规定,即:
学院有权保留并向国家有关部门或机构送交毕业论文(设计)的复印件和磁盘,允许毕业论文(设计)被查阅和借阅。
本人授权贺州学院可以将毕业论文(设计)的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存、汇编论文(设计)。
本人论文(设计)中有原创性数据需要保密的部分为:
无。
签名:
年 月 日
指导教师签名:
年 月 日
基于STM32的MP3音频播放器的设计
作者
指导教师
摘要:
本毕业策画是一款基于STM32的音频MP3播放器创作,功能包含:
音频播放,电子图书,图片浏览,画板,录像,录音机,日历,游戏,收音机,记事本,计算器等。
整个系统组成主要由音频解码部分、收音机部分、音效处理部分、SD卡部分、功率放大、电源部分、人机交互等几个部分组成,整个系统由一块MCU(STM32F103RBt6)控制运行,各个局部协调运作。
关键词:
STM32;MP3音频播放;
引言
伴随电子畛域的各个技术的迅速发展,各类电子产品的消费也产生了革命性的转变,引领新技术、创新产品层见叠出。
特别是跟着网络媒体的技术的遍及、数字音频视频技术的迅速发展,和种种视频,音频数据压缩标准和相应的终端设备相继问世,已成为消费电子产品新的快速增长点。
集成MP3的优点,同时拥有更多的新技术。
第一款MP3的出现是在1998年,从它问世电子消费市场短短的几个月时间就在市场上站稳的脚,而且消费的趋势一直呈上增长,直到2005年之后MP5的出现,而MP5的出现,更是把MP3几乎挤出了市场,MP5不光能够播放MP3、MP4,更是可以直接播放AVI和RMVB等合流的影片格式,说白了便是MP5具备MP3、MP4的全部功效,同时还具有他们不具备的功效,是以MP5代替MP3只是时间的问题,当前MP5的价钱较高是最主要的缘由,要是MP5的价钱降下来了,便是MP3离开消费者的时候了。
当前此外一个数码产物-数码相框,跟着数码相机的不断广泛应用,也在偷偷的袭来,数码相框便是能直接播放JPG/JPEG的一个微型显示器,正常的数码相框比MP3体积大,然而它们的本来目的不是面向移动设备的,数码相框重要作用在于家庭,它们主要功能不再移动上面,实际上,数码相框主要功能是显示照片,如果做成移动设备的话,体积必定不能太大,但是体积小带来的结果是图片显示效果就不好。
现在的数码相框显示屏分辨率一般是480*720,对于日常的照片显示效果还是可以应付过来的,当然数码相框的开发者对图像显示进行了精心设计,使得我们的照片的分辨率不管是怎么样的,它都会执行最优的选择,以用来显示最佳效果,同时数码相框一般还具有其他附加功能,MP3便是其中一个功能,可以让图片与声音同时播放,为相片的浏览添加了声音的色彩,同时数码相框还拥有TV-OUT的功效,这就很好的提高了分辨率的显示,让照片可以在电视上显示,可以大大的提高相片的观赏价值。
通过对以上两款数码产品的分析,可以发现,新出的数码产品都包含了MP3的功能,但是又不限于此,也就是集成了MP3的优点,同时拥有原来MP3不具有的功能。
这样,大大的提高了消费者对新的数码产品需求。
1方案设计
1.1主要内容
本设计课题是一个由STM32f103RBt6主控来完成MP3音频播放设计的软硬件相结合类的设计题目。
能够实现MP3的基本播放功能,也具有其他多样化的外扩功能,系统的整体功能包含:
音频播放,电子图书,图片浏览,画板,录像,录音机,日历,游戏,收音机,记事本,计算机等。
系统的组成部分只要有VS1003的音频解码、TEA5767的收音制作、CD3314音量级处理、SD卡控制、功率放大、电源、人机交互等,全系统由一块小型MPU(STM32F103RBT6)掌管运行,利用各模块通信协议协调运转。
本系统实现多样化功能,非常具有挑战性,主要的重心难点在于FAT32文件及系统的解析,JPEG/BMP图片数据格式解码,触摸屏的运转等。
由于本系统的特点需要,采用了各个击破的方法,一一实现以上功能,最终完成整个系统的功能。
2系统硬件设计
2.1整体设计思路
MP3音频播放重点完成图片浏览和音乐播放等,所以本设计要求对MCU内存运行、处理的能力比较高,因为图片解码压缩需要的RAM比较多,对于MP3播放,要求较高的处理速度,特别是320Kbps的MP3格式数据的处理,为了保证MP3歌曲的流畅播放处理速度必须要快。
可选择的MCU有16位的AVR,8位的STC等,可选择的32位的处理器有SAMSUNG、NXP、STM32、ATMEL等。
在RAM方面来说,对于8位单片机内部的RAM一般在4Kbyte以内,更多的内存是需要外部提供,32位的单片机里面,SAMSUNG很少自带RAM,也要外部提供,对于本设计来说,成本越低越好,外部提供的RAM必定会提高成本的开发,所以为了更好的掌控成品的高低,尽可能的选用MCU自带有FLASH和RAM的。
其次,本设计有MP3歌曲的播放以及JPEG/BMP图片浏览等功能,但是这两种文件格式需要较大的存储空间,可供选择的FLASH芯片,如SAMSUNG公司的K9F系列,但是这样的话,整个系统的容量就不可以改变了,需要扩容是困难。
相比较来说U盘和SD卡是个不错的选择,但SD卡相比较与U盘,在掌控上面较容易,而且相同的容量SD卡价格便宜一些,故系统选择SD卡作为存储媒介。
第三,MP3音乐的播放是在读取SD卡和VS1003的同时进行的,它们用到的都是SPI通讯协议,所以需要主控芯片要有两个或两个以上SPI共使用,这样才能有效的把读取速度提高。
综上所述,本设计采用STM32f103RBT6作为主控芯片,该芯片具有的内部资源加上一点外扩之后可以胜任本设计。
2.2硬件器件的选择
在系统实现的过程中,硬件选择是非常重要的一部分,主控芯片已经确定好了,接下来就是其他芯片的选取,来实现其相对应的功能,下面我们重点分析以下几个芯片的选型。
2.2.1MP3解码芯片选择
使用STM32主控芯片解码有两种方法,第一是通过处理器的软件解码,第二是通专用芯片解码,第一种方法要求芯片运算速度非常高,而且声音不是很流畅,对播放的采样有极大要求,故选择第二种专用芯片解码。
本设计使用解码MP3的芯片是VS1003,它支持WAV格式、MP3格式、MIDI格式、WMA格式等,同时可以设置调整音量高低等,而且还有一个功能是可以支持MICI,此外还可以扩展录音功能。
2.2.2收音机芯片选择
本设计的收音功能只适用于FM收音,选用TEA5767芯片来实现,TEA芯片是飞利浦公司生产的一款低功耗电调谐调的立体声收音机芯片,该芯片通过IIC总线协议可以直接控制。
可以实现调频接收,频率的范围在76MHZ~108MHZ,而且接收的是立体声,带信号强弱指示,但由于芯片体积较小,焊接困难,所以直接采用模块来实现,使用非常方便,可以提高本设计效果,节约时间以及成本。
2.2.3EEPROM芯片选择
本设计需要保存用户的部分数据,而STM32需要外部扩展EEPROM,防止系统掉电之后整个系统的数据将会复位,利用外扩的EEPROM芯片可以实现用户数据的存储,EEPROM芯片有很多可供选择的,由于在学习过程中比较常用的是ATMEL的24CXX系列的,而且价格便宜,故本设计最终采用了ATMEL的24C16芯片。
2.2.4功率放大芯片选择
本设计包含两块放大芯片,一块是用来放大从CD3314输出的音频信号以方便驱动耳机,另一块是功率放大,用来驱动扬声器的。
一级放大可供选择非常多,比如TDA2822,TPA152等,但是TPA152与TDA2822比较事,后者的优势比较大,TDA2822对音质失真控制不好,THD大概在10%,而TPA152在带有32Ω负载的前提下THD是2%,在带有10KΩ负载的前提下小于0.01%。
而且TPA152的输出功率比TDA2822大,总输出可以达到1.5W。
因此,这里选取音质相对好的TPA152芯片,作为耳机驱动芯片。
2.2.4电源芯片选择
本设计要求系统电压输入:
2.5V,3.3V,5V.所以对电源的处理需要满足能输出以上电压,
系统电源主要包括给数字芯片供电,这些电源需要的功率小,可以选用REG1117-2.5和REG1117-3.3V稳压芯片供给2.5V和3.3V的电压。
REG1117的输出电流为800ma,符合设计要求。
对于5V输入,也是采用LM2576,因为整个系统的数字部分电源供给都是来自5V的,所以它的电流较大。
2.3硬件系统框图
综上分析,可以得出,整个设计系统由STM32F103RBT6芯片掌控,各个模块电路的详细介绍也在下面一一介绍,如图2.1所示是整个硬件系统设计框图。
图2.1硬件系统框图
图2.1描述了各个模块与主控芯片之间的联系,由于电源不被MCU控制,所以在图2.1内没有画出。
由上图2.1可以得出,整个硬件系统设计以STM32F103RBT6为核心,通过各种方式控制各个模块的工作,使整个系统完成预定的功能。
2.4硬件模块化原理图设计
在此节中,将根据上面的硬件系统框图进行具体的硬件设计介绍,整个设计可以分为若干个模块。
下面对这些模块进行逐一介绍。
2.4.1MCU和DS18B20模块电路设计
MCU为整个设计系统的核心,它控制着这个系统的运行,让主控芯片稳定运行是必要前提,下图(图2.2)为MCU的原理图,包含一个后备电源UPS1,一个主电源VCC3.3和一个模拟电源,模拟电源通过从VCC3.3加滤波电路得到。
MCU外围的必须电路由滤波电容,下载电路(串口1)以及复位开关组成。
同时,考虑到系统需要时钟功能,给时钟部分增加了后背电源电路,通过二极管连接到VBAT脚,给实时时钟供电。
这里采用了双电源结构,即在电源有外部供电的时候,后备电池不给时钟供电,时钟的电源来自外部,只有当外部电源断开的时候,后备电源才给时钟供电,以保持时钟的计时,这样可以延长后备电池的使用时间。
同时,为了方便调试,电路中还添加一个多余的按键以及LED,以方便在调试时使用,而且为了最大化的使得布线难度的降低,布局的美观,对一些IO的控制做了相应的调整,而且所以的IO也全部引出,方便以后功能的扩展,如:
门禁系统等。
与此同时,SMT32F103RBT6自带的USB口也引出,方便日后升级使用。
这里值得注意的是,因为CD3314,TEA5767,AT24C16这三个器件使用的是同一IIC接口,可以节省IO。
图2.2MCU模块电路
2.4.2MP3解码模块电路设计
MP3播放需要解码,这里选用了VS1003解码芯片,该芯片能解码以下几种格式的文件:
MP3、WMA、MIDI、和WAV音频文件,同时还具备录音功能,此功能本设计暂时没有用到,不过对其音频录音的电路设计保留了下来,以便日后使用。
整个模块电路如图2.3所示。
图2.3MP3解码模块电路
VS1003的电源分模拟电源和数字电源两种,对这两种电源电路的设计对音质的好坏有直接的影响,所以经考虑本设计采用了许多具有滤波和去耦功能的电容,选择了LC设计电路,为VS1003工作提供一个稳定的环境。
2.4.3收音机模块电路设计
由于本系统直接采用TEA5767的收音机模块来实现收音机功能,所以使得其外部电路大大简化,只要通过少数的几个元件就能实现收音机功能了。
电路原理图如图2.4所示:
图2.4收音机模块电路
需要注意的是,收音机模块对电源敏感,同时对外部电路的干扰也较大,所以在这里,对模块电源的处理采用了RC滤波加大电容的方式,能有效的降低收音机模块对外部电源的干扰。
也能保证收音机模块电源的稳定。
图中ANT为天线接口,通过外接天线,可以提高收音机的灵敏度。
2.4.4SD卡模块电路设计
因为MCU没有自带的专门SD卡模式接口,只能通过SPI通信模式访问SD卡如下电路图2.5s所示:
图2.5SD卡模块电路
SD卡使用的是SPI模式,把它挂在MCU的SPI2模式上面。
SD卡上面的SPI通信需要在每个IO上接一个42K左右的上拉电阻,这里选择45K。
SD卡电路连接比较简单,只要连接没有出错,一般不会有什么大的问题STM32的SPI口在72M时钟下,SPI的时钟传送速度可以达到18M,也就是SD卡最大的读写速度可以达到2.25Mbyte/s,足够播放音频格式了。
2.4.5音效处理模块电路设计
这里选择的是CD3314作为音效处理芯片,电路图如图2.6所示,CD3314支持最多四个输入通道,这里我们用了其中三个,通道2对应收音机音源,通道3对应外部音源,通道4对应MP3音源。
通过IIC控制,可以实现这三个音源的切换。
经过处理的音频信号从输出端输出到耳机放大器TPA152,通过放大驱动耳机,这样我们就能听到所要听的声音了。
图2.6音效处理模块电路
2.4.6FM24C16模块电路设计
铁电存储器FM24C16的电路也是很简单,只要通过简单的供电,然后连接IIC总线,就可以了。
电路如图2.7所示:
图2.7FM24C16模块电路
2.4.7功放模块电路设计
因为本系统既有耳机输出,又有喇叭输出,所以有两个音频放大电路:
(一)基于TPA152的立体声耳机放大电路;
(二)基于TPA3100D02的功率放大电路。
耳机放大电路如图2.8所示,耳机放大电路采用官方推荐的电路结构,对从PT2314送来的音频信号进行缓冲输出,推动耳机工作。
耳机输出采用五针的专用耳机插座,这个插座具有开管功能,信号从1,4脚输入,从2,3脚输出,第五脚是地。
如果没有耳机插上,则有音频信号从2,3脚输出,如果耳机插上了,则2,3脚不会有音频信号输出。
这样通过连接2,3脚到D类功放上面,就可以实现耳机,功率输出同一时间只能有一个工作。
由于TPA152也是音频信号输出的一部分,对于这个芯片的供电,也是采用了LC滤波的形式,减少电源干扰对音质的影响。
图2.8TPA152耳机放大电路
功率放大电路如图2.9所示:
图2.9TPA3100D02功率放大图
该芯片提供的输出功率与负载电阻和输入电压有关。
这里,我们采用12VDC供电,负载电阻为4欧姆,则能提供的输出功率为15W。
从而根据其DATASHEET可以计算输出LC滤波环路的参数,电感取15mH,电容分别为1uF和0.22uF。
图中的功能选择部分可以有两种选择模式:
(一)把MUTE接地,则会使芯片一直处于工作状态。
(二)把MUTE和FAULT相接则可以实现短路检测,在没有出现输出短路的时候,芯片正常工作,在出现输出短路的时候,FAULT输出高电平,通过MUTE控制芯片停止输出,这样可以有效地保护芯片。
2.4.8TFTLCD2.8寸驱动电路设计
TFTLCD驱动电路如图2.10所示,该部分电路也比较简单。
图2.10TFTLCD电路图控制设计
2.4.9电源电路设计
图2.14输入电源电路
这个电路采用两块REG1117芯片给系统提供电源,一块提供3.3V的数字电源和模拟电源,它们通过电感连接,以减少数字电源对模拟电源的干扰。
另外一块提供2.5V的电压,给VS1003的DSP提供核心电压。
两者的输入电压均来自功率电源的5V输出。
2.5硬件PCB设计
PCB硬件设计的时候主要注意一下若干点就好了:
(1)对于电流比较大的走线,必须使用较宽的线宽
(2)对于功率放大,最好以单点接地的方式连接。
这样可以有效的降低各部分信号的相互干扰,以达到最好的放大效果。
(3)对于走线,不可以走锐角的线,直角也最好少走,最佳的是走弧线。
因为锐角和直角的走线会在尖端产生EMI,尤其在高频信号较明显。
(4)对于去耦电容,离芯片越近越好。
(5)对于信号线,不要长距离的平行走线,可以有效的防止信号耦合
2.6本章小结
在本章节中,首先是对整个系统的设计方案进行总体规划,包含媒介存储的选择,主控芯片的选型,硬件器件的选取以及互交方式的确定,经过总体方案的研究眼总结,得出初步的技术方案,具体确定了硬件器件的型号选取。
接着详细介绍了各个模块之间的使用已经设计,并说明了一些PCB布线的规则,接下来就是进入到软件的设计了,在下一章节中,将对软件进行详细的说明。
3系统软件的设计
3.1设计思路
经过上一章介绍,多功能MP3的硬件系统已经完成了基本设计,但是一个完整的系统必须要有硬件和软件的相互配合才能正常运行,如果没有软件没那么硬件形同虚设。
软件是硬件的灵魂,硬件的实现价值体现在软件的控制下。
所以软件和硬件二者缺一不可,缺一就等于失去了整个设计系统的可行性。
多功能MP3的软件设计涉及很多编程,这是一个很复杂的软件设计系统,不可能保证一次就把所有的代码调试完成达到预期效果。
这里我对应对各个模块的功能一一的验证过后,在通过最终的大整合在一起,从而实现最终想要的功能。
3.2软件模块化设计
从本设计来说,可以把软件分为两部分来区分:
第一个是与硬件有直接联系的底层驱动软件子系统。
第二个是与硬件无关的应用型软件系统的设计。
这样可以把两个软件系统的设计分成许多个模块。
下面就一一介绍各个模块的区分以及编程思路。
3.2.1LCD模块驱动程序设计
系统采用的LCD驱动芯片型号为ILI9320,它是单芯片的Soc驱动的晶体管显示器,320x240的分辨率,包括720路源极驱动与及320路栅极驱动,自带显存。
颜色的深度是根据数据的大小来决定的。
在此仅讲解部分重要指令,指令00h,当读操作的时候,读取控制器的型号;当写操作的时候,打开/关闭OSC振荡器。
当写操作设置OSC为高电平时,开启内部振荡器;为0的时候,停止振荡器。
至少要等待10ms的时钟稳定之后,才可以继续其他的功能设置。
指令03h,进入模式命令。
在此仅注意AM、I/D1、I/D0这3个位。
具体的设置与及效果见图21。
图21液晶显示方向控制
3.2.2触摸屏模块驱动程序设计
本设计的输入系统选用的是四线电阻式触摸屏加ADS7846实现的,整个设计系统的控制都是通过触摸屏控制的,所以,触摸屏控制算法的好坏对系统有着举足轻重的作用,这里有必要认识触摸屏和ADS7846的工作原理。
触摸屏工作原理:
触摸摸是放置在显示器的最外边的,当知道触点在显示器上的触发坐标时,则可依据触发位置相应坐标点显示内容或图符获知触摸者的意图。
电阻式触摸屏在嵌入式系统中采用得较多。
电阻屏的组成,如图3.2,最底层是玻璃或有机玻璃构成的基层。
当触摸到屏幕时,两导电层在触摸点处相碰。
触摸屏输入系统意图如图3.3所示
图3.2触摸屏触摸示意图
图3.3触摸屏输入系统的组成
3.2.3SD卡模块驱动程序设计
SD卡通信协议有两种:
SPI模式和SD模式。
SD卡读写的标准方式是SD模式,不过选用SD模式时需要选择自带带有SD控制器接口的MCU,或者必须加入支持SD卡的读写的控制单元。
由于SD卡控制器接口在STM32F103RBT6没有自带的,不过STM32F103RBT6却拥有强大的SPI接口,故本设计选用SPI模式读取SD卡。
CS低电平有效则进入SPI模式,反之工作在SD总线模式。
SD卡初始化流程图如图3.7所示。
图3.7SD卡初始化
3.2.4VS1003模块驱动程序设计
VS1003通讯模式为SPI,本设计采用的是SPI1,这里主要对VS1003如何初始化操作进行介绍。
VS1003与MCU相联系的主要的7根数据线为:
:
XRST、XDCS、XCS、DREQ、SCK、SO、SI。
XRST:
VS1003复位线,低电平有效。
XDCS:
数据片选信号,低电平有效。
XCS:
命令片选信号,低电平有效。
DREQ:
数据请求,输入总线。
SCK、SI、SO:
SPI接口线。
VS1003模块初始化步骤:
●硬复位,XRST=0;
●延时,XDCS、XCS、XRST置1;
●等待DREQ为高;
●软件复位:
SPI_MODE=0X0804;
●等待DREQ为高(软件复位结束);
●设置VS1003的时钟:
SCI_CLOCKF=0X9800,3倍频;
●设置VS1003的采样率:
SPI_AUDATA=0XBB81,采样率48K,立体声;
●设置重音:
SPI_BASS=0X0055;
●设置音量:
SCI_VOL=0X2020;
●向VS1003发送四个字节无效数据,启动SPI发送;
3.2.5FM24C16模块驱动程序设计
FM24C16也是采用IIC总线和MCU通信,通过标准的IIC操作,很容易实现对FM24C16的读写。
FM24C16的器件地址与页地址是连在一起的,这里需要注意。
FM24C16的高四位为固定的1010,而第四位用来表示页地址0~7,每页拥有256个字节,这样FM24C16的总大小为2048字节。
对FM24C16的读操作,先写入0XAx(x:
0~7),再写入要写入的地址,紧跟着就可以写入数据了。
而对于FM24C16的读操作,则稍微复杂一点在执行写操作的上述过程之后,再写入0XAx+1,代表执行读操作,紧随着就可以读数据了。
3.2.6TEA5767模块驱动程序设计
TEA5767收音机模块支持IIC和三线模式,这里我们选择IIC来控制。
TEA5767的器件地址是0XC0,在对TEA5767的读操作通过写入0XC1来执行。
TEA5767的读操作与写操作基本相同,只是IIC开始之后写入0XC1,将发送一个字节改为接收一个字节就可以了。
3.2.7RCT时钟驱动程序设计
RTC实时时钟是利用STM32F103RBT6内部的时钟模块实现的,根据STM32的DATASHEET,得到RTC实时时钟的初始化过程如下:
●使能备份区域时钟
●取消备份区域写保护
●软复位备份区域
●开启外部低速晶振
●等待晶振就绪
●设置LSI作为RTC时钟
●RTC时钟使能
●设置时钟分频系数
●等待RTC寄存器操作结束
●允许RTC配置
●配置秒钟寄存器
●配置更新
●等待RTC寄存器操作完成
RTC时钟的设置到这里就结束了,在RTC时钟完成上述配置之后,就会每隔一段固定的时间,对秒钟寄存器(RTC->CNT)进行加1。
这个操作软件不参与,一切由硬件执行。
时钟分频系数(RTC->PRL)确定固定时间,理论上因为外部低频晶振是32.768Khz,所以只要在RTC->PRL内写入32768-1就可以得到精确的1秒了,不过因为晶振的误差率,往往需要对这个值进行调整,以确保得到比较准确的走时。
3.2.8JPEG/BMP解码模块程序设计
JPEG/BMP图片播放是本系统的一个重要功能,两者的解码均采用软件实现,BMP的解码相对JPEG比较简单,这里重点对JPEG的解码原理进行介绍。
JPEG解码算法原理:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 大学 毕业设计 基于 stm32 mp3 音频 播放 制作
![提示](https://static.bdocx.com/images/bang_tan.gif)