基于STM32的MP3播放器设计 .doc

上传人:yy****2 文档编号:97628191 上传时间:2024-06-19 格式:DOC 页数:33 大小:3.54MB
返回 下载 相关 举报
基于STM32的MP3播放器设计 .doc_第1页
第1页 / 共33页
基于STM32的MP3播放器设计 .doc_第2页
第2页 / 共33页
点击查看更多>>
资源描述

《基于STM32的MP3播放器设计 .doc》由会员分享,可在线阅读,更多相关《基于STM32的MP3播放器设计 .doc(33页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、中北大学课 程 设 计 说 明 书学生姓名:贺彦兴学 号:学 院:仪器与电子学院专 业:电子科学与技术题 目:基于STM32的MP3播放器设计指导教师: 李锦明 职称: 副教授 2015 年 1月 30 日摘要MP3是一种高质量音乐压缩标准,采用MP3压缩的数据量可以缩小到1/12,音质却没有多少损失。由于MP3音乐的较小数据量和高质量的播放效果,使它很快成为一种集音频播放、数据存储为一身的数码产品,并深受人们的喜爱。本文采用STM32系列微控制器,结合解码芯片VS1003、SD卡、 LCD等外围设备设计并实现了MP3播放器。其主要功能有:播放VS1003支持的所有音频文件,如MP3、WMA、

2、WAV文件,且音质非常好;通过摇杆控制播放上一首/下一首,通过电位计来控制音量增减,通过LCD显示音量图标和播放状态等;本系统还计划实现读卡器功能,PC机可通过USB接口直接对开发板上的SD卡进行读写操作,以方便拷贝音频文件。关键字:MP3播放器、CortexM3、STM32、VS1003ABSTRACTIs a high quality MP3 music compression standard, with MP3 compressed data can be reduced to 1 / 12, but there is little loss of sound quality. MP3

3、 music as the smaller amount of data and high-quality playback, it will soon become a set of audio playback, the data is stored as a digital product, and very popular. In this paper, STM32 family of microcontrollers, combined with decoder chip VS1003, SD card, LCD and other peripherals design and im

4、plementation of MP3 players. Its main functions are: Play VS1003 supports all audio files, such as MP3, WMA, WAV files, and the sound quality is very good; through the joystick control playback on a / to the next, through a potentiometer to control volume change, through the LCD show the volume icon

5、 and play status, etc.; The system also plans to achieve reader function, PC machine interfaces via USB directly to the development board of the SD card read and write operations to facilitate the copying audio files.Key words: MP3 Players; CortexM3; STM32; VS1003目录第一章 绪论.11.1选题背景与现状11.2 设计和研究方向1第二章

6、 系统概述与硬件电路设计.22.1系统的总体构架22.2电源模块22.3微控制器模块32.3.1 CortexM332.3.2 STM32F10342.5VS1003音频模块42.5.1 VS1003概述52.5.2 VS1003解码电路设计72.4SD卡72.4.1 SD卡概述72.4.2 FAT16文件系统82.4.3 SD卡驱动电路92.5液晶显示器92.5.1 液晶显示原理92.5.2 液晶显示模块10第三章 系统软件设计.103.1 软件设计总流程103.2 底层驱动程序设计113.2.1 VS1003驱动设计113.2.2 SD卡读取驱动123.2.3 RTC时钟驱动143.2.4

7、液晶显示设计143.3 功能模块的设计153.3.1音乐播放功能的设计153.3.2 USB读卡器16第四章 结论. 17结束语 .18参考文献. 19附件.20第一章 绪论1.1选题背景与现状二十一世纪的第一个十年过去了,随着电子技术的高速发展和嵌入式系统的应用,越来越多的电子产品进入人们的视野。面对多形式、多渠道的信息,人们对信息的整合运用与随时调整的要求越来越高,消费电子无疑将潜移默化地改变人们的生活。目前,消费电子产业每年都持续增长,所涉及的产品领域和行业也越来越多。丰富的电子产品正从各个角度向消费者展示着“数字生活”的新概念,给人们带来了耳目一新的全面享受。随着数字声音作为一种存储、

8、处理和传输高保真声音的方法在消费电子等领域的广泛应用,与之相关的数字音频压缩技术也得到了充分的发展,MP3音乐格式的出现和Internet的日益普及更是将数字音乐推向了高潮。MP3压缩音乐的方式是通过一个运算法则,去掉声音中高频与低频的部分,大幅删减不必要的容量浪费,同时保留了人类所能感受到的音频部分,因此其好处在于大幅降低了数字声音文件的容量,而不会破坏原来的音质。音质越低的声音在MP3的运算法则下可以得到越高的压缩比。低数据量和高播放品质的优点使其成为音乐存储、数字广播、网上音乐传输的主要方式。人们不仅可以使用计算机软件,还可以通过数字随身听来欣赏音乐。自从1998年世界上第一台MP3播放

9、器1推出以来。MP3播放器市场以极快的速度发展,MP3的功能也越来越多。国产品牌的MP3播放器也进入市场当中,以纽曼、蓝魔、魅族等企业为代表的MP3播放器企业占据了国内MP3播放器市场主要份额。1.2 设计和研究方向STM32系列微控制器采用ARM公司最新的CortexM3内核。VS1003音频解码芯片为 VS10xx系列的第三代产品,是芬兰VLSI Solution 公司生产的单片MP3/WMA/MIDI解码和ADPCM编码芯片。本文采用STM32系列微控制器,结合解码芯片VS1003、SD卡、 LCD等外围设备设计并实现了MP3播放器。其主要功能有:播放VS1003支持的所有音频文件,如M

10、P3、WMA、WAV文件,且音质非常好;通过按键控制播放上一首/下一首、音量增减等;通过LCD显示音量图标和播放状态;本系统还计划实现读卡器功能,PC机可通过USB接口直接对开发板上的SD卡进行读写操作,以方便拷贝音频文件。第二章 系统概述与硬件电路设计2.1系统的总体构架本系统采用STM32作为微控制器,VS1003作为解码芯片,采用SD卡存储MP3/WMA文件,LCD作为显示器件,最终完成MP3的播放设计。同时PC机可以通过USB接口操作开发板上SD卡中的文件,也可以通过串口通信控制音乐播放。具体方案图如图3.4所示图2.1 总体设计方案框图MP3播放功能模块的工作分为两个部分:第一部分是

11、循环播放MP3歌曲,该功能需要首先做一些初始化工作,MP3解码器一旦开始工作,就会一直向CPU请求数据,直至歌曲结束,只有通过键盘操作才会使该功能提前结束。因为MP3文件的数据量较大,在flash存储器内是以页为单位进行存储的,所以MP3的播放程序初始化就是要把该文件的首地址和页数先读出到CPU中,然后CPU可以根据如上数据进行取数据工作。第二部分则一直在等待中断发生,该程序是与键盘结合起来的,主要用于使用者对播放过程的控制。键盘操作对MP3播放过程的控制还包括后退、跃进、跳到下一首、音量控制等。因为整个播放过程的键盘控制功能比较单一,没有键的复合操作,所以程序都很容易实现。当MP3播放器插入

12、到USB接口时,系统执行USB通讯功能模块,该模块主要用于对flash存储器内的文件数据进行管理。2.2电源模块电源是电子设备中必不可少的一部分,它为设备提供了能量。电源模块电路如图2-2所示。本系统有以下几种电源:CPU的内核数字和模拟电源电压+1.8 V,CPU的IO口数字和模拟电源电压+3.3 V、总线的隔离电源、LCD的驱动电源、LCD的背光逆变电源、其他外围设备电源电压+5 V等电源。5V电源适配器经过AMS1117-3.3和AMS1117-2.5产生3.3V和2.5V的直流电源供系统使用。图2.2 电源电路2.3微控制器模块2.3.1 CortexM3CortexM3是ARM公司最

13、新推出的基于ARMv7体系架构的处理器核,具有高性能、低成本、低功耗的特点,专门为嵌入式应用领域设计。ARMv7 架构采用了Thumb2技术,它是在ARM的Thumb代码压缩技术的基础上发展起来的,并且保持了对现存ARM解决方案完整的代码兼容性3。 Thumb2技术比纯ARM代码少使用31%的内存,减小了系统开销,同时能够提供比Thumb技术高出38%的性能。在中断处理方面,CortexM3集成了嵌套向量中断控制器NVIC(Nested Vectored Interrupt Controller)。NVIC是CortexM3处理器的一个紧耦合部分,可以配置1240个带有256个优先级、8级抢占

14、优先权的物理中断,为处理器提供出色的异常处理能力。同时,抢占(Preemption)、尾链(Tailchaining)、迟到技术(Latearriving)的使用,大大缩短了异常事件的响应时间。CortexM3异常处理过程中由硬件自动保存和恢复处理器状态,进一步缩短了中断响应时间,降低了软件设计的复杂性。CortexM3体系架构提出了新的单线调试技术,CortexM3处理器的跟踪调试是通过调试访问端口(Debug Access Port,DAP)来实现的。DAP端口可以作为串行线调试端口(SWDP)或串行JTAG调试端口(SWJDP,允许JTAG或SW协议)使用。其中SWDP只需要时钟和数据2

15、个引脚,实现低成本跟踪调试,避免使用多引脚进行JTAG调试,并全面支持RealView编译器和 RealView调试产品。此外CortexM3还具备高度集成化的特点,大大减小了芯片面积,内部集成了许多紧耦合系统外设,合理利用了芯片空间,使系统满足下一代产品的控制需求。2.3.2 STM32F103本设计中的微控制器采用意法半导体公司出产的STM32F103VBT64芯片,STM32F103VBT6增强型系列使用高性能的ARM Cortex-M3 32位的RISC内核,工作频率为72MHz,内置高速存储器(高达128K字节的闪存和20K字节的SRAM),丰富的增强I/O端口和联接到两条APB总线

16、的外设。所有型号的器件都包含2个12位的ADC、3个通用16位定时器和一个PWM定时器,还包含标准和先进的通信接口:多达2个I2C和SPI、3个USART、一个USB和一个CAN。STM32F103VBT6增强型系列工作于-40C至+105C的温度范围,供电电压2.0V至3.6V,一系列的省电模式保证低功耗应用的要求。是一款性价比很高的32位ARM处理器,是低成本ARM嵌入式应用的极佳选择。其引脚分布如图2.3所示。图2.3 STM32引脚图2.5VS1003音频模块虽然STM32F103RBT6具有最高72MHz的频率,但它没有独立的DSP音效处理能力,如果直接用它来进行音频数据处理,很难实

17、现优质的音频输出,同时考虑到自己的能力和精力有限,因而本系统的音频解码部分则另采用一款简单实用的音效处理芯片VS100310来完成。本模块涉及到模拟信号与数字信号,在设计时要考虑信号的隔离措施,模拟信号与数字信号的连接处需串联磁珠或0欧电阻以避免信号干扰。2.5.1VS1003概述VS1003是一个单片MP3/WMA/MIDI音频解码器和ADPCM编码器。它包含一个高性能、自主产权的低功耗DSP处理器核VS_DSP4;一个工作数据存储器,为用户应用提供5KB的指令RAM和0.5KB的数据RAM。串行的控制和数据接口,4个常规用途的I/O口,一个UART,也有一个高品质可变采样率的ADC和立体声

18、DAC,还有一个耳机放大器和地线缓冲器。VS1003通过一个串行接口来接收输入的比特流,它可以作为一个系统的从机。输入的比特流被解码,然后通过一个数字音量控制器到达一个18位过采样多位DAC。通过串行总线控制解码器。除了基本的解码,在用户RAM中它还可以作其他特殊应用,例如DSP音效处理。VS1003的内部结构及引脚如图2.4所示。图2.4VS1003内部结构及引脚图具体特性如下:能解码 MPEG 1 和MPEG2 音频层 III(CBR+VBR+ABR);WMA 4.0/4.1/7/8/9 5-384kbps 所有流文件;WAV(PCM+IMAAD-PCM);产生MIDI/SP-MIDI 文

19、件。对话筒输入或线路输入的音频信号进行IMAADPCM编码支持 MP3 和WAV 流高低音控制单时钟操作12.13MHz内部PLL锁相环时钟倍频器低功耗内含高性能片上立体声数模转换器,两声道间无相位差内含能驱动30 欧负载的耳机驱动器模拟,数字,I/O 单独供电为用户代码和数据准备的5.5KB片上RAM串行的控制,数据接口可被用作微处理器的从机特殊应用的SPI Flash引导供调试用途的UART接口新功能可以通过软件和4 GPIO 添加引脚功能说明如图2.4所列。图2.5VS1003引脚功能表2.5.2VS1003解码电路设计在设计VS1003解码电路时,数字地与模拟地必须相互连接并尽量靠近V

20、S1003以避免锁存上拉,为了能播放48KHz采样率的音频文件,输入时钟使用12.288MHz。具体设计电路如图2-12所示。VS1003通过MISOMOSISCK(SPI接口)来接收输入的MP3数据,经过VS1003内置的采样DAC转换为音频模拟量,最后通过LeftRight输出。图2.6 音频解码电路2.4SD卡2.4.1 SD卡概述SD卡(Secure Digital Memory Card)是一种为满足安全性、容量、性能和使用环境等各方面的需求而设计的一种新型存储器件,SD卡允许在两种模式下工作,即SD模式和SPI模式,本系统采用SPI模式。本小节仅简要介绍在SPI模式下,STM32处

21、理器如何读写SD卡,如果读者如希望详细了解SD卡,可以参考相关资料。SD卡内部结构及引脚如图2.7 所示图2.7 SD卡内部结构及引脚SD卡主要引脚和功能为:CLK:时钟信号,每个时钟周期传输一个命令或数据位,频率可在025MHz之间变化,SD卡的总线管理器可以不受任何限制的自由产生025MHz的频率;CMD:双向命令和回复线,命令是一次主机到从卡操作的开始,命令可以是从主机到单卡寻址,也可以是到所有卡;回复是对之前命令的回答,回复可以来自单卡或所有卡;DAT03:数据线,数据可以从卡传向主机也可以从主机传向卡。SD卡以命令形式来控制SD卡的读写等操作。可根据命令对多块或单块进行读写操作。在S

22、PI模式下其命令由6个字节构成,其中高位在前。2.4.2 FAT16文件系统SD卡如果采用FAT16文件格式,按照其不同的特点和作用大致可分为5 部分:MBR区、DBR区、FAT区、FDT区和DATA区。由于SD卡一般不做引导盘,一般也不分区,因此通常无MBR区,直接从DBR区开始。下面对后面四个区分别作简介DBR区内容为系统引导记录,它包括一个引导程序和一个被称为BPB(Bios Parameter Block)的本分区参数记录表。引导程序的主要任务是当MBR将系统控制权交给它时,判断本分区根目录是否有操作系统引导文件,如果有则将其读入内存,并把控制权交给该文件。BPB参数块记录着本分区的起

23、始扇区、结束扇区、文件存储格式、根目录大小、FAT个数,分配单元大小等重要参数。FAT区该区内容为文件分配表,FAT16文件系统进行空间分配的最基本单位是簇。文件分配表反映了SD卡所有簇的使用情况,通过查文件分配表可以得知任一簇的使用情况。对于FAT16来说,FAT表每项占用两个字节。FAT表的第一项通常为FFF8H。对于其它项,若其值为0000H表示可用;FFF7H表示为坏簇;FFF8H-FFFFH之间表示该簇为某文件或目录的最后一个簇,FFF0H-FFF6H之间为保留值;其它值则指示下一个簇的簇号。FDT区该区的内容为文件目录表,FAT文件系统的一个重要思想是把目录(文件夹)当作一个特殊的

24、文件来处理,FAT32甚至将根目录当作文件处理。FAT分区中所有目录文件,实际上可以看作是一个存放其它文件(文件夹)入口参数的数据表。因此,目录占用空间的大小并不等同于其下所有数据的大小,但也不等于0,通常是占很小的空间。其具体的存储原理是:不管目录文件所占空间为多少簇,一簇为多少扇区、多少字节;系统都会以32个字节为单位,进行目录文件所占簇的分配。DATA区该数据区存放文件的内容,SD卡所占用的空间绝大部分为此部分。如果文件长度大于一个簇的大小,需要多个簇存放该文件,这些放通过FAT链表串连起来。2.4.3 SD卡驱动电路使用SPI总线与STM32处理器连接,如图2.8所示图2.8 SD连接

25、器与STM32处理器SPI连接图2.5液晶显示器2.5.1 液晶显示原理1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,如表(1)所示,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码。图2.9 LCD1602字符表2.5.2 液晶显示模块 LCD液晶显示模块主要完成数据显示、输出数据与显示数据的同步等功能,可为使用者提供曲目信息。,前期为了简化电路的设计,以及充分利用开发板资源,此次系统显示模块设计采用STM32V100开发板有自带的LCD液晶屏,如果时间允许,我将对支持汉字液晶屏进行研究以用于显示歌词,

26、音量等。LCD液晶屏硬件电路如图2.10所示图2.10 LCD1602硬件电路图第三章 系统软件设计3.1 软件设计总流程本系统在软件设计上主要包括2部分:底层驱动的设计和各功能模块的设计。软件设计平台使用RealView MDK13。各个功能的选择菜单仿照手机九空格的操作界面,实现多各个功能之间的选择与切换,系统软件设计的总体流程图3.1所示。 图3.1 系统软件总流程3.2 底层驱动程序设计3.2.1 VS1003驱动设计要让VS1003实现音乐播放功能,首先要实现写命令功能,然后通过写命令操作初始化VS1003。完成以上步骤之后,就可以送入音频数据,播放音乐了。1. VS1003写命令要

27、控制 VS1003 首先要实现的就是写命令,这是控制是否成功的前提。VS1003通信方式是一种同步串行接口方式(SPI从机模式 ),它要求SCLK信号必须由外部电路产生,数据(SDATA)在 SCLK 的上升沿或下降沿时被写入。写命令的过程如下:(1) 等待 DREQ 为高(当 DREQ 为低时,说明芯片还没有就绪);(2) 将 XCS (命令片选)拉低;(3) 写入 0x02;(4) 写入寄存器地址;(5) 分别写入数据的高字节与低字节;(6) 将 XCS 置高。2. VS1003初始化如其它芯片一样,初始化对于 VS1003 来说同样是极其重要的。初始化的过程大致是这样的:(1) 硬件复位

28、:接 XRESET拉低;(2) 延时,将XDCS、XCS、XRESET 置高;(3) 向MODE中写入0X0804;(4) 等待DREQ为高;(5) 设置VS1003的时钟:SCI_CLOCKF=0x9800,3倍频;(6) 设置VS1003的采样率:SPI_AUDATA=0xbb81,采样率48kHz,立体声;(7) 设置重音:SPI_BASS=0x0055;(8) 设置音量:SCI_VOL=0x2020;(9) 向VS1003发送4个字节的无效数据,用以启动SPI发送。3. VS1003对音频文件的处理在完成VS1003初始化之后就可以对其写入MP3文件数据了。主要就是看DREQ 信号,在

29、VS1003的FIFO能够接受数据的时候输出高电平。每次可以写入32个字节的数据。而DREQ变低时,单片机就要停止数据的发送。写数据的具体的方法如下:(1) 将XDCS拉低;(2) 等待DREQ为高;(3) 通过SPI写入数据;(4) 在文件没有结束前不断重复2与3操作;(5) 在所有的数据都发送完后,再发送2048无效字节以清除VS1003的数据缓冲区;(6) 将XDCS置高。3.2.2 SD卡读取驱动SD卡12(Secure Digital Memory Card)是一种为满足安全性、容量、性能和使用环境等各方面的需求而设计的一种新型存储器件,SD卡允许在两种模式下工作,即SD模式和SPI

30、模式,本系统采用SPI模式。SD卡引脚功能如表3-1所列,各引脚的具体含义如下。CLK:时钟信号,每个时钟周期传输一个命令或数据位,频率可在025MHz之间变化,SD卡的总线管理器可以不受任何限制的自由产生025MHz的频率。表3-1 SD卡引脚功能表针脚123456789SPI模式CSMOSIVSSVCCCLKVSSMISONCNCCMD:双向命令和回复线,命令是一次主机到从卡操作的开始,命令可以是从主机到单卡寻址,也可以是到所有卡;回复是对之前命令的回答,回复可以来自单卡或所有卡。DAT03:数据线,数据可以从卡传向主机也可以从主机传向卡。VCC和VSS:电源和地。SPI模式下,SD卡的几

31、个重要操作命令如表3-2所列。其中,R1回应的数据格式如表3-3所列。表3-2 SPI模式下SD卡部分操作指令命令参数回应描述CMD0(0X00)NONER1复位SD卡CMD9(0X09)NONER1读取卡特定数据寄存器CMD10(0X0A)NONER1读取卡标志数据寄存器CMD16(0X10)块大小R1设置块大小(字节数)CMD17(0X11)地址R1读取一个块的数据CMD24(0X18)地址R1写入一个块的数据CMD41(0X29)NONER1引用命令的前命令CMD55(0X37)NONER1开始卡的初始化CMD59(0X3B)仅最后以为有效R1设置CRC开启(1)或关闭(0)表3-3 S

32、D卡R1回应格式SD卡R1回应格式BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT00参数错误地址错误连续擦除错误命令CRC错误非法命令擦除复位IDLE状态SD卡典型的初始化过程如下:(1) 初始化与SD卡连接的硬件条件(MCU的SPI配置,IO口配置);(2) 上电延时(74个CLK); (3) 复位卡(CMD0); (4) 激活卡,内部初始化并获取卡类型(CMD1(用于MMC卡)、CMD55、CMD41); (5) 查询OCR,获取供电状况(CMD58); (6) 是否使用CRC(CMD59); (7) 设置读写块数据长度(CMD16); (8) 读取CSD,获取存储卡的其他

33、信息(CMD9); (9) 发送8CLK 后,禁止片选.在SD卡初始化完成后,就可以读SD卡读写数据。SD卡读取数据通过CMD17完成,具体步骤如下:(1) 发送CMD17; (2) 接收卡响应R1; (3) 接收数据起始令牌0XFE; (4) 接收数据; (5) 接收2个字节的CRC,如果没有开启CRC,这两个字节在读取后可以丢掉;(6) 8CLK之后禁止片选;SD卡写数据通过CMD24完成,具体步骤如下:(1) 发送CMD24;(2) 接收卡响应R1; (3) 发送写数据起始令牌0XFE;(4) 发送数据; (5) 发送2字节的伪CRC;(6) 8CLK之后禁止片选。3.2.3 RTC时钟

34、驱动STM32F103RBT6内带RTC模块,它拥有一组连续运行的计数器,可以通过适当的软件设置提供日历时钟功能和闹铃功能。RTC的驱动时钟可以是一个使用外部晶体的32.768kHz的振荡器,RTC具有一个32位的可编程计数器,使用比较寄存器可以进行长时间的测量。有一个20位的预分频器用于时基时钟,默认情况下时钟为32.768kHz时,它将产生一个1秒长的时间基准。通过设置RTC的相关寄存器,就可以实现时钟和闹铃功能了。RTC工作的一般步骤如下: 使能电源时钟和备份区域时钟,RCC-APB1ENR|=3CR|=1BDCR|=1BDCR|=1BDCR|=1PRLH与RTC-PRLL。 更新配置,

35、设置 RTC中断,RTC-CRH|=0X01。 进入中断服务程序。3.2.4 液晶显示设计液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,表3-4是DM-1602的内部显示地址。表3-4 DM-1602的内部显示地址比如第二行第一个字符的地址是40H,那么是否直接写入40H就可以将光标定位在第二行第一个字符的位置呢?这样不行,因为写入显示地址时要求最高位D7恒定为高电平1所以实际写入的数据应该是B(40H)+B(80H)=B(C0H) 具体流程图如图3.2所示图3.2

36、液晶显示流程图3.3 功能模块的设计3.3.1 音乐播放功能的设计要实现音乐播放功能,需要获得相应的音乐文件数据,根据FAT文件的存储格式并结合SD卡读取驱动,得到相应的文件数据,每次读取512个字节。当VS1003已经初始化完成并等待接收数据(DREQ引脚为高电平)时,将读到的数据以每次32字节的速度送入VS1003的RAM中,VS1003会自动去处理这些数据并得到模拟音频信号。在每次读取新的音频文件时,采用文件名比较(只比较前3个字节)的方法查找存在SD卡中的歌词文件,如果存在歌词文件,就将文件数据全部复制到RAM中(超过6144个字节的部分将丢弃),同时初始化30ms中断的定时器用于歌词

37、显示的刷新操作。 音乐播放功能实现的具体流程如图3.3所示。图3.3 音乐播放功能的实现流程3.3.2 USB读卡器STM32F103RBT6内置1个USB 2.0全速接口,可以实现USB读卡器的功能。该功能的实现需要2个部分:USB传输部分和SD卡读写部分。根据ST官网提供的例程,USB读卡器用到2个函数:一个是MSD_WriteBuffer函数,用于向 SD卡写入数据,当你要 COPY 文件到 SD卡的时候,就是由这个函数完成的;另一个是 MSD_ReadBuffer函数,该函数用于读取 SD卡上面的数据。下载ST官网的例程,移植到本设计中即可实现USB读卡器功能。第四章 结论本系统实现了

38、简易MP3 Player的基本原型设计,还可以进一步利用英蓓特STM103V100-II评估板资源来完善和丰富该MP3 Player的功能,例如利用Joystick来选择歌曲、利用LCD来显示歌曲名、利用ADC来调节音量、利用几个LED灯来表示音量大小。如果能完成以上所有相关设计,则可以基本熟悉STM32处理器的各种应用开发。结束语本文提出了一种基于STM32的MP3播放器设计方案,并使用ARM开发工具RealView MDK实现了该方案的原型。尽管该方案无法作为一个通用MP3的方案,但是对于某些音频需要的工业控制、汽车电子、医疗电子等方案具有一定的参考性。本系统也可以尝试采用更有效的中断方式

39、,在内存中设置一个环形的缓冲区,SPI1从SD卡读取的MP3文件数据存放在其中,当VS1003需要数据时其DREQ引脚将产生低电平,利用其产生中断,在中断服务程序中从缓冲区读取数据送VS1003,直至DREQ引脚恢复为高电平时退出中断。限于时间与篇幅的问题,我将不对上述情况予以实现。参考文献1 百度百科MP3播放器EB/OL,2010-11-262 薛小铃,刘志群,贾俊荣单片机接口模块应用与开发详例M北京:北京航空航天大学出版社,20103 AMS1117技术手册EB/OL ,2010-7-21.4 STM32F103增强型系列数据手册EB/OL,2009-05-13/2011-03-015

40、王永红,徐炜,郝立平STM32系列ARM Cortex-M3微控制器原理与实践M北京:北京航天航空大学出版社,20086 DS18B20技术文档EB/OL,2011-2-15.7 24C02中文资料EB/OL,2011-3-22.8 ILI9320手册EB/OL,2011-2-15.9 ADS7846 EB/OL ,2010-6-10.10 VS1003-MP3/WMA音频解码器EB/OL,2008-08-04.11 张涛,左谨平,马华玲FatFs在32位微控制器STM32上的移植J电子技术,2010,(03).12 SD卡规范EB/OL,2010-05-05.13 李宁ARM开发工具Real

41、ViewMDK使用入门M北京:北京航空航天大学出版社, 2008原理图:PCB:主芯片最小板的PCB 图外围电路PCB 电路图代码:/* Includes -*/#include stm32f10x_lib.h#include hw_config.h#include config.h#include fat16.h#include msd.h#include vs1003.h/* Global define -*/u8 Stream_Buffbuffsize;u8 readNextBytes;u32 mp3data_pointer;/* Extern declare -*/extern voi

42、d SetupUART1(void);extern void SetupClock(void);extern void Speaker_Timer_Config(void);extern void Get_Medium_Characteristics(void);extern void VS1003_Config(void);extern void Mp3Reset(void);extern void SPI_Config(u16 BaudRatePrescaler);extern void Delay(int);extern u32 Mass_Block_Count;extern u32 M

43、ass_Block_Size;extern u32 Mass_Memory_Size;/* Function Name : USART_Scanf_Name* Description : Gets Char values from the hyperterminal.* Input : None* Output : None* Return : Length*/u8 USART_Scanf_Name(u8 * str) u8 index = 0; while(1) /* Loop until RXNE = 1 */ while(USART_GetFlagStatus(USART1, USART_FLAG_RXNE) = RESET) strindex+

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 成人自考

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁