基于STM32的MP3播放器设计论文.docx
- 文档编号:30105756
- 上传时间:2023-08-05
- 格式:DOCX
- 页数:45
- 大小:1.73MB
基于STM32的MP3播放器设计论文.docx
《基于STM32的MP3播放器设计论文.docx》由会员分享,可在线阅读,更多相关《基于STM32的MP3播放器设计论文.docx(45页珍藏版)》请在冰豆网上搜索。
基于STM32的MP3播放器设计论文
闽江学院
本科毕业论文(设计)
题目基于STM32F的MP3播放器设计
学生姓名
学号
系别物理学与电子信息工程系
年级
专业电子信息工程
指导教师
职称
完成日期2011-05-10
闽江学院毕业论文(设计)诚信声明书
本人郑重声明:
兹提交的毕业论文(设计)《基于STM32F的MP3播放器设计》,是本人在指导老师薛小铃的指导下独立研究、撰写的成果;论文(设计)未剽窃、抄袭他人的学术观点、思想和成果,未篡改研究数据,论文(设计)中所引用的文字、研究成果均已在论文(设计)中以明确的方式标明;在毕业论文(设计)工作过程中,本人恪守学术规范,遵守学校有关规定,依法享有和承担由此论文(设计)产生的权利和责任。
声明人(签名):
年月日
摘要
随着生活水平的提高,人们对消费电子的需求也越来越高。
多功能的MP3播放器也受到越来越多人的青睐。
电子技术快的速发展和消费者的爱好需求,MP3的功能也越来越多,它与PDA、手机一样,都向多功能方面发展,尽可能吸收其它产品的功能,以便增加产品卖点。
系统采用ARMCortex-M3内核的STM32F103RBT6作为微控制器,结合VS1003B音频解码芯片,SD卡存储器,TFT液晶显示屏等外围设备,以及FAT文件操作,设计并实现了集音乐播放﹑电子书阅读﹑游戏﹑触摸画板﹑闹铃时钟﹑USB读卡器等为一体的多功能MP3播放器。
关键词:
STM32F103RBT6;VS1003B;SD卡;TFT液晶;MP3播放器;FAT
Abstract
Alongwithlivingstandardenhancement,thepeopletoexpendelectronicthedemandtobealsogettinghigherandhigher.Themulti-purposeMP3playersalsoreceivemoreandmoreperson'sfavors.Withthefastdevelopment'selectronictechnologyandconsumer'shobbydemand,theMP3hasmorefeatures,itjustlikePDAorMobilephone.Incasetoincreasingtheproduct’ssellingpoint,it’sdevelopingtothemulti-purposeaspectsandabsorbingotherproduct’sfunctionsasfaraspossible.Sothisarticleispreciselyfocusesonthemarketdemand,designsamulti-purposeMP3playerwithMusic,e-book,reader,games,touchalarm,clock,drawingboard,USBcardreaderandotherfunctions.ThissystemusestheSTM32F103RBT6ofCortex-M3asmicrocontrollercoreandcombiningtheVS1003Bdecoderchip,SDcard,TFTLCDandtheFATfileoperationstoachievemulti-functionalMP3player.
Keywords:
STM32F103RBT6;VS1003B;SDcard;TFTLCD;MP3player;FAT
基于STM32F的MP3播放器设计
1前言
1.1选题背景与现状
二十一世纪的第一个十年过去了,随着电子技术的高速发展和嵌入式系统的应用,越来越多的电子产品进入人们的视野。
面对多形式、多渠道的信息,人们对信息的整合运用与随时调整的要求越来越高,消费电子无疑将潜移默化地改变人们的生活。
目前,消费电子产业每年都持续增长,所涉及的产品领域和行业也越来越多。
丰富的电子产品正从各个角度向消费者展示着“数字生活”的新概念,给人们带来了耳目一新的全面享受。
自从1998年世界上第一台MP3播放器[1]推出以来。
MP3播放器市场以极快的速度发展,MP3的功能也越来越多。
国产品牌的MP3播放器也进入市场当中,以纽曼、蓝魔、魅族等企业为代表的MP3播放器企业占据了国内MP3播放器市场主要份额。
现阶段的播放器在保障高品质的前提下,尽可能吸收其它产品的功能,以便增加产品卖点。
1.2设计思路与结构
现阶段MP3播放器技术已经很成熟,但对于缺少实践经验的我们还是有许多吸引力。
抱着学习的态度,同时结合大学四年所学的专业知识,设计并制作了一款多功能的MP3播放器。
本设计采用STM32F103RBT6作为微控制器、VS1003B音频作为解码模块、SD卡作为文件存储模块、触摸TFT作为控制终端。
以下为主要实现的功能:
ØMP3/WMA/MIDI文件播放功能
Ø图片浏览功能
Ø电子书阅读
ØUSB读卡器
Ø触摸画板
Ø温度/时间显示
Ø闹铃功能
Ø游戏功能
本文主要分为三个模块介绍说明了设计的理论与实现:
1)硬件电路模块——分析各个模块的原理以及电路的设计。
2)文件系统模块——详细说明了本设计中使用的FAT文件系统的原理及相关操作方法。
3)系统软件模块——相关的驱动设计及各个功能实现的软件分析。
2系统概述与硬件电路设计
2.1系统的总体构架
MP3播放器其实就是一个功能特定的小型电脑。
在MP3播放器小小的机身里,拥有MP3播放器存储器(存储卡)、MP3播放器显示器(LCD显示屏)、MP3播放器中央处理器MCU(微控制器)或MP3播放器解码DSP(数字信号处理器)等。
本设计采用STM32F103RBT6读取SD卡中的MP3音乐文件,并将数据送入VS1003B进行音频解码,得到模拟的音乐流,从而实现MP3的音乐播放功能。
同时结合TFT触摸屏、DS18B20温度传感器、24C02存储器、STM32F等外围接口设备[2],内嵌了游戏、电子书、闹铃时钟、图片浏览、USB读卡器等功能。
其系统框图如图2-1所示。
图2-1MP3播放器系统框图
硬件模块主要包括电源模块﹑微处理器模块﹑VS1003B音频解码模块﹑TFT触摸液晶模块。
电源模块提供3.3V和2.5V的直流稳压电源。
STM32F微处理器模块主要提供SD卡接口,TFT触摸液晶接口,DS18B20接口,24C02接口以及VS1003B接口。
VS1003B音频解码模块主要获取STM32F103RBT6传入的音频文件信息与控制信息,同时输出音频信号。
TFT触摸液晶模块实现TFT的显示和触摸屏的控制。
2.2电源模块
电源是电子设备中必不可少的一部分,它为设备提供了能量。
电源模块电路如图2-2所示。
USB或5V电源适配器经过AMS1117-3.3和AMS1117-2.5产生3.3V和2.5V的直流电源供系统使用。
C2可以防止电感效应而产生的自激,C6用来减小由于负载电流瞬时变化而引起的高频干扰,C5用来进一步减小输出脉动和低频干扰,使电源输出更加稳定。
D1为电源指示灯。
图2-2电源模块电路
2.3微控制器模块
1.STM32F103RBT6微控制器
本设计中的微控制器采用意法半导体公司出产的STM32F103RBT6[4]芯片,STM32F103RBT6基于ARMCortex-M3内核设计[5],片上集成有丰富的数字和模拟资源,允许最高72MHz的工作频率,是一款性价比很高的32位ARM处理器,是低成本ARM嵌入式应用的极佳选择。
其引脚分布如图2-3所示。
图2-3STM32F103RBT6引脚图
STM32F103RBT6模块接口电路如图2-4所示。
图中,J3为插针,用于选择系统的启动模式:
当BOOT0=1时用户闪存存储器被选为启动区域,此时可以通过串口下载程序;当BOOT0=0时,系统存储器被选为启动区域。
电容C17至C22为STM32F103RBT6电源引脚的旁路电容,能够起到稳定电源的作用,在PCB布板时应尽量靠近MCU。
Y2为8MHz晶振,为STM32F103RBT6提供工作时钟,在设计时也要靠近MCU,避免干扰。
为了PCB布线的方便,本设计中的PC10~PC12引脚模拟VS1003的SPI接口。
STM32F103RBT6微控制器各引脚的接口描述如表2-1所列。
图2-4STM33F103RBT6模块接口电路
表2-1STM32F103RBT6引脚接口分布表
STM引脚编号
连接器件
备注
3,4
32.678kHz晶振Y1
RTC时钟晶振
5,6
8MHz晶振Y2
系统时钟
PA0~PA7,PC0~PC7
触摸液晶模块接口JP1
液晶16位数据口
PB12~PB15
SD卡U2
STM32的SPI接口
PC10~PC12
VS1003的SPI接口U3
采用STM32模拟SPI接口
PA14,PA15,PD2,PB3
VS1033控制接口U3
PB5~PB9
触摸液晶模块接口JP1
液晶控制接口
PB0~PB2,PB10,PB11
触摸液晶模块接口JP1
触摸控制接口
PA11,PA12
USB接口
PA13
18B20数据口J4
PC8,PC9
24C02接口U5
2.DS10B20温度传感器
STM32F103RBT6内置了温度传感器,但其所测温度为CPU的温度,不能很好的反映空气温度,因而本系统另外使用美国DALLAS公司生产的DS18B20[6]。
DS18B20的外形及管脚排列如图2-5所示。
ØI/O为数字信号输入/输出端;
ØGND为电源地;
ØVDD为外接供电电源输入端(在寄生电源接线方式时接地)。
DS18B20的电路图设计很简单,如图2-6所示,只需要将它的数据引脚与STM32F103RBT6的P_DATA引脚相接即可。
图2-5DS10B20引脚图图2-618B20接口电路
3.EEPROM存储器24C02
系统掉电时需要保存一些系统配置信息,用于恢复关机前的状态。
STM32F103RBT6提供了备份数据寄存器BKP_DRx,但BKP_DRx只能保存10个16位数据,这对于本设计而言不能满足需求。
系统中需要保存的数据不是很大,采用24C02[7]即可满足要求。
24C02串行E2PROM是基于I2C总线的存储器件,遵循二线制协议,它具有接口方便,体积小,数据掉电不丢失等特点。
其引脚图如图2-7所示,各引脚的功能如表2-2所列。
图2-724C02引脚图
表2-224C02引脚功能说明
管脚名称
功能
A0﹑A1﹑A2
器件地址选择
SDA
串行数据/地址
SCL
串行时钟
WP
写保护
VCC
电源
VSS
地
24C02接口电路设计如图2-8所示。
由于只用一个24C02,因而A0、A1和A2可直接接地。
WP接地,关闭写保护功能。
图2-824C02电路设计
2.4带触摸功能的TFT液晶显示模块
STM32F103RBT6有丰富的I/O接口,在选择显示器件时有充足的余地。
以往的电路设计一般都采用LCD1602或LCD12864,不过它们都是黑白屏,不能提供彩色图片显示的功能。
随着TFT屏的广泛使用,它的价格也越来越低,并且更符合本设计的要求,因而本系统便采用2.4寸TFT-LCD(型号WXCAT24-TSI#001),它的显示驱动采用ILI9320[8],其特征如下:
Ø320×240分辨率。
Ø供电电压2.5~3.3V。
Ø16位数据接口。
Ø高的对比、高亮度、低功耗。
Ø4-wires模拟电阻式触摸屏。
当触摸屏被按下时会得到模拟的电压值,因此要将该值转换成坐标就需要一个A/D控制器。
这种触摸屏的A/D控制芯片有很多,本系统触摸控制芯片采用TI公司的ADS7846[9]低压I/O触摸屏控制器。
其芯片引脚图见图2-9所示,各个引脚的功能如表2-3所列。
图2-9ADS7846引脚图
表2-3ADS7846芯片引脚说明
引脚号
引脚名称
引脚说明
1
+VCC
电源(2.2V~5.25V)
2
X+
X+位置输入
3
Y+
Y+位置输入
4
X-
X-位置输入
5
Y-
Y-位置输入
6
GND
地
7
VBAT
电池监控器输入
8
AUX
ADC辅助输入
9
VREF
基准电压输入输出(2.5V)
10
+VCC
数字I/O电源(2.2V~5.25V)
11
笔断控制脚
12
DOUT
连续数据输出,数据在DCLK下降沿转换,
为高电平时输出高阻抗
13
BUSY
BUSY输出,
为高电平时输出高阻抗
14
DIN
连续数据输入,数据在DCLK上升沿保持
15
芯片选择输入,控制转换时间,控制连续数据输入输出寄存器。
为高电平时等同于掉电模式,仅仅对ADC有效
16
DCLK
外部时钟输入端。
时钟驱动SAR转换器,并与连续输入输出同步
带触摸功能的TFT液晶显示模块电路如图2-10所示。
图中,三极管Q1用来控制TFT背光,DB0~DB15是显示驱动ILI9320的数据线,JP1为引脚插针,便于和微控制器模块连接。
图2-10带触摸功能的TFT液晶显示模块电路
2.5VS1003音频模块
虽然STM32F103RBT6具有最高72MHz的频率,但它没有独立的DSP音效处理能力,如果直接用它来进行音频数据处理,很难实现优质的音频输出,同时考虑到自己的能力和精力有限,因而本系统的音频解码部分则另采用一款简单实用的音效处理芯片VS1003[10]来完成。
本模块涉及到模拟信号与数字信号,在设计时要考虑信号的隔离措施,模拟信号与数字信号的连接处需串联磁珠或0欧电阻以避免信号干扰。
1.VS1003概述
VS1003是一个单片MP3/WMA/MIDI音频解码器和ADPCM编码器。
它包含一个高性能、自主产权的低功耗DSP处理器核VS_DSP4;一个工作数据存储器,为用户应用提供5KB的指令RAM和0.5KB的数据RAM。
串行的控制和数据接口,4个常规用途的I/O口,一个UART,也有一个高品质可变采样率的ADC和立体声DAC,还有一个耳机放大器和地线缓冲器。
VS1003通过一个串行接口来接收输入的比特流,它可以作为一个系统的从机。
输入的比特流被解码,然后通过一个数字音量控制器到达一个18位过采样多位
DAC。
通过串行总线控制解码器。
除了基本的解码,在用户RAM中它还可以作其他特殊应用,例如DSP音效处理。
VS1003的内部结构及引脚如图2-11所示。
本设计采用的这款芯片为LQFP-48封装,所有的数字口输入电压不能大于3.6V,其引脚功能说明如表2-4所列。
图2-11VS1003内部结构及引脚图
表2-4VS1003引脚功能表
引脚号
管脚名称
管脚功能
4,20,21,22
DGND
处理器核与I/O地
6,14,19
IOVDD
I/O电源(典型值:
2.8V最大值:
3.6V)
38,43,45,47
APWR
模拟电源(典型值:
2.5V最大值:
2.8V)
5,7,24,31
CVDD
处理器内核电源(典型值:
2.8V最大值:
3.6V)
37,40,41,47
AGND
模拟地
1和2
MICP和MICN
同相和反相差分话筒输入,自偏压
3
XRESET
低电平有效,异步复位端
8
DREQ
数据请求,输入总线
9
GPIO2/DCLK
通用I/O2,串行数据总线时钟
10
GPIO3/SDATA
通用I/O3,串行数据总线数据
13
XDCS/BSYNC
数据片选端/字节同步
15
VCO
时钟压控振荡器VCO输出
17和18
XTALO和XTALI
晶振输出和晶振输入
23
XCS
片选输入,低电平有效
26
RX
UART接收口,不用时接IOVDD
27
TX
UART发送口
28
SCLK
串行总线的时钟
29和30
SI和SO
串行输入和串行输出
32
TEST
保留做测试,连接至IOVDD
33
GPIO0/SPIBOOT
通用IO/0,/SPIBOOT,使用100K下拉电阻
34
GPIO1
通用I/O1
39和46
RIGHT和LEFT
右声道输出和左声道输出
42
GBUF
公共地缓冲器
44
RCAP
基准滤波电容
48
LINEIN
线路输入
2.VS1003解码电路设计
在设计VS1003解码电路时,数字地与模拟地必须相互连接并尽量靠近VS1003以避免锁存上拉,为了能播放48KHz采样率的音频文件,输入时钟使用12.288MHz。
具体设计电路如图2-12所示。
VS1003通过MISO﹑MOSI﹑SCK(SPI接口)来接收输入的MP3数据,经过VS1003内置的采样DAC转换为音频模拟量,最后通过Left﹑Right和Gbuf输出。
图2-12VS1003解码模块电路
3FAT文件系统
3.1FAT文件系统简介
MP3文件﹑BMP﹑TXT等文件在SD卡中是以FAT[11]的文件格式存储的,FAT即文件配置表,本系统采用FAT16/32。
以FAT32为例,其数据信息常分为5个部分:
MBR区、DBR区、FAT区、FDT区和DATA区。
由于SD卡一般不做引导盘,一般也不分区,因此通常无MBR区,直接从DBR区开始。
各分区的含义如下。
MBR区:
主引导记录区,该区存储了分区表等信息,位于SD卡的扇区0(物理扇区),在其分区信息里面记录了DBR所在的位置。
DBR区:
内容为系统引导记录,它包括一个引导程序和一个被称为BPB(BiosParameterBlock)的本分区参数记录表。
BPB参数块记录着本分区的起始扇区、结束扇区、文件存储格式、根目录大小、FAT个数,分配单元大小等重要参数。
FAT区:
称为文件分配表(FAT表),一般一个卡上会存在2个FAT表,一个用作备份,一个用作使用。
FAT表一般紧随DBR,另一个FAT表则紧随第一个FAT表。
FAT表记录了每个文件的位置和区域,是一种链式结构,FAT以“F8FFFF0FFFFFFFFF”这样的8个字节为表头,用以表示FAT表的开始,后面的数据每四个字节为一个簇项(从第2簇开始),用来标记下一个簇所在的位置,这样每个位置都存储了下一个簇,只要按着这个表走,就可以找到文件的所有内容。
如果找到下一个簇位置,里面记录的是“FFFFFF0F”,代表这个文件到此就结束了,没有后续簇了,这样一个文件的读取就结束了。
FTD区:
该区的内容为文件目录表,FAT文件系统的一个重要思想是把目录(文件夹)当作一个特殊的文件来处理,FAT32甚至将根目录当作文件处理。
FAT分区中所有目录文件,实际上可以看作是一个存放其它文件(文件夹)入口参数的数据表。
因此,目录占用空间的大小并不等同于其下所有数据的大小,但也不等于0,通常占很小的空间。
其具体的存储原理是:
不管目录文件所占空间为多少簇,一簇为多少扇区、多少字节,系统都会以32个字节为单位,进行目录文件所占簇的分配,各个字段定义如表3-1所列。
DATA区:
该数据区存放文件的内容,SD卡所占用的空间绝大部分为此部分。
如果文件长度大于一个簇的大小,需要多个簇存放该文件,这些簇通过FAT链表串连起来。
表3-1文件目录表各字段定义
FAT32文件目录项32个字节的定义
字节偏移量
字数量
定义
0~7
8
文件名
8~10
3
扩展名
11
1
属性字节
0x00(读写)
0x01(只读)
0x02(隐藏)
0x04(系统)
0x08(卷标)
0x10(子目录)
0x20(归档)
12
1
系统保留
13
1
创建时间的10毫秒位
14~15
2
文件创建时间
16~17
2
文件创建日期
18~19
2
文件最后访问时间
20~21
2
文件起始簇号的高16位
22~23
2
文件的最近修改时间
24~25
2
文件的最近修改日期
26~27
2
文件起始簇号的低16位
28~31
4
表示文件的长度
3.2FAT文件系统的读取操作
一般硬盘的数据结构是按图3-1而建立的。
图3-1FAT文件系统结构图
启动区的内容,也就是第一个扇区,使用WinHex软件查看,如图3-2所示。
其中,带下划线或点线部分为有用内容,具体含义依次如下。
图3-2FAT启动区
EB5990:
跳转指令。
4D53444F53352E30:
厂商标志和dos版本号,这里是MSDOS5.0。
0020(偏移地址0BH,长度2):
注意这里数据的布局,高地址放高字节,低地址放低字节(数据为小端格式组织),所以数据应该是0200,就是512。
表示的意思是,该磁盘每个扇区有512个字节。
有的可能是1024、2048、4096。
08(偏移地址0DH,长度1):
表示每个簇有8个扇区。
这个值不能为0,而且必须是2的整数次方,比如1、2、4、8、16、32、64、128。
但是这个值不能使每个簇超过32KB。
2400(偏移地址0EH,长度2):
转换一下,就是0024,意思是保留区域中的保留扇区数为36个。
那么就可以知道下面的FAT1区的开始的地址就是:
0x24*200(每个扇区的字节数)=0x4800。
02(偏移地址10H,长度1):
此卷中的FAT结构的份数为2,另外一个是备份的。
C603(偏移地址24H,长度2):
每个FAT占用的扇区数,转换一下,为03C6。
那么每个扇区占用的字节数就是0x03C6*200=78C00。
根据启动区、FAT1、FAT2、根目录、数据区的次序,可以依次计算出它们的地址。
通过以上分析我们知道了启动区地址是0x00。
FAT1表的起始地址的为0x4800,如图3-3所示。
FAT2表的起始地址为0x4800+0x78C00=0x7D400,如图3-4所示。
根目录区的起始地址为0x7D400+0x78C00=0xF6000,如图3-5所示。
图3-3FAT1的起始地址
图3-4FAT2的起始地址
图3-5根目录的起始地址
从SD卡中读取数据需要给出数据的地址,而且每次读取都是一个整扇区,512个字节。
找出这些地址后,可以很方便的找到数据。
由此可见读取0扇区的内容,我们就知道FAT文件系统的重要参数了,现在分析下根目录区的内容。
根据前面得到的根目录地址0xF6000,通过软件查看它的内容如图3-6所示。
这里使用的是FAT32短文件目录项,每32个字节表示一个文件(文件夹也是)。
具体含义分别如下。
图3-6根目录中的数据
5A53444C20202020:
驱动器的名称,8个字节。
5445535420202020(偏
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 STM32 MP3 播放 设计 论文