版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、I北大学课程设计说学生姓名:贺彦兴学号:1106044224仪器与电子学院 电子科学与技术基于STM32的MP3播放器设计指导教师:李锦明职称:副教授2015 年 1 月 30 日摘要MP3是一种高质量音乐压缩标准,采用 MP3压缩的数据量可以缩小到1/12,音 质却没有多少损失。由于MP3音乐的较小数据量和高质量的播放效果,使它很 快成为一种集音频播放、数据存储为一身的数码产品,并深受人们的喜爱。本文 采用STM32系列微控制器,结合解码芯片 VS1003、SD卡、LCD等外围设备 设计并实现了 MP3播放器。其主要功能有:播放 VS1003支持的所有音频文件, 如MP3、WMA、WAV文件
2、,且音质非常好;通过摇杆控制播放上一首 /下一首, 通过电位计来控制音量增减,通过 LCD显示音量图标和播放状态等;本系统还 计划实现读卡器功能,PC机可通过USB接口直接对开发板上的SD卡进行读写 操作,以方便拷贝音频文件。关键字:MP3 播放器、CortexM3、STM32、VS1003ABSTRACTIs a high quality MP3 music comp ressi on sta ndard, with MP3 comp ressed data can be reduced to 1 / 12, but there is little loss of sound quality
3、. MP3 music as the smaller amount of data and high-quality p layback, it will soon become a set of audio p layback, the data is stored as a digital p roduct, and very popu lar. I n this paper, STM32 family of microcontrollers, combined with decoder chip VS1003, SD card, LCD and other perip herals de
4、sig n and imp leme ntati on of MP3 p layers. Its main fun cti ons are: PlayVS1003 su pp orts all audio files, such as MP3, WMA, WAV files, and the sou nd quality is very good; through the joystick con trol p layback on a / to the n ext, through a potentiometer to control volume change, through the L
5、CD show the volume icon and p lay status, etc.; The system also plans to achieve reader fun cti on, PC machi ne in terfaces via USB directly to the devel opment board of the SD card read and write op erati ons to facilitate the copying audio files.Key words: MP3 Players; CortexM3; STM32; VS1003附件20第
6、一章绪论目录1.11.2选题背景与现状 设计和研究方向第二章系统概述与硬件电路设计系统的总体构架- 电源模块微控制器模块2.3.1 CortexM3 2.3.2 STM32F103 2.5VS1003音频模块-2.5.1 VS1003 概述-2.5.2 VS1003 解码电路设计2.4 SD 卡2.4.1 SD卡概述2.4.2 FAT16文件系统-2.4.3 SD卡驱动电路 2.5 液晶显示器 2.5.1液晶显示原理 -2.5.2液晶显示模块 -2233445777899910第三章 系统软件设计103.1软件设计总流程3.2底层驱动程序设计3.2.1 VS1003 驱动设计
7、 3.2.2 SD 卡读取驱动3.2.3 RTC时钟驱动-3.2.4液晶显示设计-3.3功能模块的设计3.3.1 音乐播放功能的设计3.3.2 USB 读卡器 101111121414151516第四章 结论17结束语18参考文献19第一章 绪论1.1 选题背景与现状二十一世纪的第一个十年过去了, 随着电子技术的高速发展和嵌入式系统的 应用,越来越多的电子产品进入人们的视野。面对多形式、多渠道的信息,人们 对信息的整合运用与随时调整的要求越来越高, 消费电子无疑将潜移默化地改变 人们的生活。 目前, 消费电子产业每年都持续增长, 所涉及的产品领域和行业也 越来越多。丰富的电子产品正从各个角度向
8、消费者展示着 “数字生活 ”的新概念, 给人们带来了耳目一新的全面享受。随着数字声音作为一种存储、 处理和传输高保真声音的方法在消费电子等领MP3 音乐域的广泛应用,与之相关的数字音频压缩技术也得到了充分的发展,格式的出现和In ternet的日益普及更是将数字音乐推向了高潮。MP3压缩音乐的方式是通过一个运算法则, 去掉声音中高频与低频的部分, 大幅删减不必要的容 量浪费,同时保留了人类所能感受到的音频部分, 因此其好处在于大幅降低了数 字声音文件的容量,而不会破坏原来的音质。音质越低的声音在 MP3 的运算法 则下可以得到越高的压缩比。低数据量和高播放品质的优点使其成为音乐存储、 数字广播
9、、 网上音乐传输的主要方式。 人们不仅可以使用计算机软件, 还可以通 过数字随身听来欣赏音乐。自从1998年世界上第一台MP3播放器推出以来。MP3播放器市场以极快 的速度发展, MP3 的功能也越来越多。 国产品牌的 MP3 播放器也进入市场当中, 以纽曼、蓝魔、魅族等企业为代表的MP3播放器企业占据了国内MP3播放器市 场主要份额。1.2 设计和研究方向STM32系列微控制器采用ARM公司最新的CortexM3内核。VS1003音频解码芯片为 VS10xx 系列的第三代产品,是芬兰 VLSI Solution 公司生产的单片MP3/WMA/MIDI 解码和 ADPCM 编码芯片。本文采用S
10、TM32系列微控制器,结合解码芯片 VS1003、SD卡、LCD等外围设备设计并实现了 MP3 播放器。其主要功能有:播放 VS1003 支持的所有 音频文件,如 MP3、 WMA、 WAV 文件,且音质非常好;通过按键控制播放上 一首 /下一首、音量增减等;通过 LCD 显示音量图标和播放状态;本系统还计划 1实现读卡器功能,PC机可通过USB接口直接对开发板上的SD卡进行读写操作, 以方便拷贝音频文件。第二章系统概述与硬件电路设计2.1系统的总体构架本系统采用STM32作为微控制器,VS1003作为解码芯片,采用SD卡存储 MP3/WMA文件,LCD作为显示器件,最终完成 MP3的播放设计
11、。同时PC机 可以通过USB接口操作开发板上SD卡中的文件,也可以通过串口通信控制音MP3播放功能模块的工作分为两个部分:第一部分是循环播放 MP3歌曲,该功能需要首先做一些初始化工作,MP3解码器一旦开始工作,就会一直向 CPU请求数据,直至歌曲结束,只有通过键 盘操作才会使该功能提前结束。因为MP3文件的数据量较大,在flash存储器内 是以页为单位进行存储的,所以 MP3的播放程序初始化就是要把该文件的首地址和页数先读出到CPU中,然后CPU可以根据如上数据进行取数据工作。第二部分则一直在等待中断发生,该程序是与键盘结合起来的,主要用于使 用者对播放过程的控制。键盘操作对 MP3播放过程
12、的控制还包括后退、跃进、跳到下一首、音量控制等。因为整个播放过程的键盘控制功能比较单一,没有键 的复合操作,所以程序都很容易实现。当 MP3播放器插入到USB接口时,系统执行USB通讯功能模块,该模块主要用于对flash存储器内的文件数据进行管理。2.2电源模块电源是电子设备中必不可少的一部分, 它为设备提供了能量。电源模块电路 如图2-2所示。本系统有以下几种电源:CPU的内核数字和模拟电源电压+1.8 V, CPU的1/O 口数字和模拟电源电压+3.3 V、总线的隔离电源、LCD的驱动电源、 LCD的背光逆变电源、其他外围设备电源电压+5 V等电源。5V电源适配器经过 AMS1117-3.
13、3和AMS1117-2.5产生3.3V和2.5V的直流电源供系统使用。GNDDILN4148CND图2.2 电源电路2.3微控制器模块2.3.1 CortexM3CortexM3是ARM公司最新推出的基于 ARMv7体系架构的处理器核,具有 高性能、低成本、低功耗的特点,专门为嵌入式应用领域设计。ARMv7架构采用了 Thumb2技术,它是在ARM的Thumb代码压缩技术的 基础上发展起来的,并且保持了对现存ARM解决方案完整的代码兼容性3。Thumb2技术比纯ARM代码少使用31%的内存,减小了系统开销,同时能够提 供比Thumb技术高出38%的性能。在中断处理方面,CortexM3集成了嵌
14、套向量中断控制器NVIC(NestedVectored Interrupt Controller)。NVIC 是 CortexM3 处理器的一个紧耦合部分,可 以配置1240个带有256个优先级、8级抢占优先权的物理中断,为处理器提供 出色的异常处理能力。同时,抢占(Pre emption)、尾链(Tail chaining)、迟 到技术(Late arriving)的使用,大大缩短了异常事件的响应时间。CortexM3异常处理过程中由硬件自动保存和恢复处理器状态,进一步缩短了中断响应时 间,降低了软件设计的复杂性。CortexM3体系架构提出了新的单线调试技术, CortexM3处理器的跟踪
15、调试是通过调试访问端口 (Debug Access Port DAP)来实 现的。DAP端口可以作为串行线调试端口(SWDP)或串行JTAG调试端口(SWJDP,允许JTAG或SW协议)使用。其中SWDP只需要时钟和数据2个引脚,实现低成本跟踪调试,避免使用多引脚进行JTAG调试,并全面支持RealView编译器和RealView调试产品。此外CortexM3还具备高度集成化的特 点,大大减小了芯片面积,内部集成了许多紧耦合系统外设, 合理利用了芯片空 间,使系统满足下一代产品的控制需求。2.3.2 STM32F103本设计中的微控制器采用意法半导体公司出产的STM32F103VBT64芯片,
16、STM32F103VBT6增强型系列使用高性能的 ARM Cortex-M3 32位的RISC内核,工作频率为72MHz,内置高速存储器(高达128K字节的闪存和20K字节的SRAM),丰富的增强I/O端口和联接到两条APB总线的外设。所有型号的器件 都包含2个12位的ADC、3个通用16位定时器和一个PWM定时器,还包含标 准和先进的通信接口:多达2个I2C和SPI、3个USART、一个USB和一个CAN 。STM32F103VBT6增强型系列工作于-40 °至+105°C的温度范围,供电电压2.0V至3.6V,一系列的省电模式保证低功耗应用的要求。是一款性价比很高的 3
17、2位ARM处理器,是低成本ARM嵌入式应用的极佳选择。其引脚分布如图2.3所示。innrrnnniLiiiirirrJnrinnirSSS&»3S5 S学SSSS&838,H wS E 8吧胆iWjiPE2CPE3CPE4IZPFftC Pts匸 'BATC PC1J-r4,PFR'fl:TCC PH)3C32_ U C PCl5-O9C32_0UTt VSM c VDD Sc OSC_Nc O9C_0dTi;WFST 匚 PCO c PG1 E FG7r PC5C VJiAc TIEF- r Ticr- c VDOAt RAO-'AHUP c
18、 RAI c 切匕LOrP lOD/54 3? lo A-ro 4 3 3 1 -J- BQ 7 -n 5 4 J 2 1 7 f F F 7 7 £S ft fh 亠 i -ds iT H 5 _P-Lrl s - A 鼻Jrtrrr: J J Jrlnr: 3n Jtoo; BS_2 hcFA 13FA 12 g n nFX FAS PCS 中 rc7 res PAS F31J PD1 J F3PD1IIIKD)OPCA rza PDIO F3H 313 r3125-I U I- U JU LI J-ll-l U l-l U M -I卜O -*1 r-tfl! n. £
19、 £ E 2 上兰豐皀吕吉 Cummijj in LLJ m器Qddddd亠d图2.3 STM32引脚图2.5 VS1003音频模块虽然STM32F103RB具有最高72MHZ勺频率,但它没有独立的DSP音效处理能力,如果直接用它来进行音频数据处理, 很难实现优质的音频输出,同时考虑 到自己的能力和精力有限,因而本系统的音频解码部分则另采用一款简单实用的音效处理芯片VS10030来完成。本模块涉及到模拟信号与数字信号,在设计时要考虑信号的隔离措施,模拟信号与数字信号的连接处需串联磁珠或 0欧电阻以避免信号干扰。2.5.1 VS1003 概述VS1003是一个单片MP3/WMA/MID
20、I音频解码器和ADPCM编码器。它包含一个高性能、自主产权的低功耗 DSP处理器核VS_DSP4; 个工作数据存储 器,为用户应用提供5KB的指令RAM和0.5KB的数据RAM。串行的控制和数 据接口,4个常规用途的I/O 口,一个UART ,也有一个高品质可变采样率的 ADC 和立体声DAC,还有一个耳机放大器和地线缓冲器。18位过采样VS1003通过一个串行接口来接收输入的比特流,它可以作为一个系统的从 机。输入的比特流被解码,然后通过一个数字音量控制器到达一个多位DAC。通过串行总线控制解码器。除了基本的解码,在用户RAM中它还可以作其他特殊应用,例如 DSP音效处理。VS1003的内部
21、结构及引脚如图2.4所示。图2.4 VS1003内部结构及引脚图-aji5ulSOcvmstCVIBSELKWISTXiHraTooHaf(REQAvmJTS/BSlrTCLEFTffn/KLKflOTT旳忙DKPKM(JWCPlDlLHMGUZ/DCLXWOa/SDAl*RCtfTESTAM3金軌4Th:VSKW3 4;* 辛 * * F* 卜 卜 刃 J % 7 s具体特性如下:能解码 MPEG 1 和 MPEG2 音频层 III ( CBR+VBR+ABR); WMA4.0/4.1/7/8/9 5-384kbps 所有流文件; WAV(PCM+IMAAD-PCM); 产生MIDI/S P
22、-MIDI 文件。寸话筒输入或线路输入的音频信号进行 IMAADPCM编码支持MP3和WAV流(低音控制单时钟操作12.13MHZ部PLL锁相环时钟倍频器氐功耗含高性能片上立体声数模转换器,两声道间无相位差含能驱动30欧负载的耳机驱动器莫拟,数字,I/O单独供电为用户代码和数据准备的5.5KB片上RAM串行的控制,数据接口可被用作微处理器的从机特殊应用的SPI Flash引导供调试用途的UART接口新功能可以通过软件和4 GPIO添加引脚功能说明如图2.4所列。引卸号管脚喜称iiGNn吐理器橋三T/cmIOTDDr旳电廉ton型值:2. SV最大值:宜関)33,4TARfR嗪拟电诲f典塑信:2
23、用最大值:Z 3V>5, 4 21. 51CVTD处理器内槟电瀬t典型信! 2.3V最大乜:3. 6V)J 化 40.4?AGND嘆型地1和2HTCP 和 MTCN司相相反相差吕®压3XRESHT抵电平有蝕,界步凭位湍8DEEQ数据请求,卡金入恿线gGPIO2/DCLK诵1/02,色行勉谣总线时訓10GPIOVmATA诵用T/CI3,自行豺弭記苏針抓135rcs/nsYHc豈丈呢片遗端/室竹同歩15VCCi时神压控振落器叱口输出1丁和 leXTALO 和 KTALI昴版输出和昴拣織入S3斗选宥入,個屯平右效2fiEXTJAET接收口,不膚时?e TOVDD27IXTJAST境违
24、±8SULK串行总线的閉忡狛和30SI 和 30串ir摘入和半行鋼匕RZTP肝嘩国做测试,迄摄奎rwrn33CPIOC/SFIEOCT通卬 10/0 , /SFIEOOT > 楝ffl lOCK T进电阻34GFIOL:1I/OL39 和 46EIGHT 和 LEFT右声道揄出和左声道揃出42GBUF仝集地缓冲舒4 +ECAP13LTIfE IM強踣諭入2.5.2 VS1003解码电路设计在设计VS1003解码电路时,数字地与模拟地必须相互连接并尽量靠近VS1003以避免锁存上拉,为了能播放48KHZ采样率的音频文件,输入时钟使用 12.288MHz。具体设计电路如图 2-12
25、 所示。VS1003 通过 MISO、MOSI、SCK(SPI接口)来接收输入的MP3数据,经过VS1003内置的采样DAC转换为音频模拟 量,最后通过Left、Right输出。II/I !&m:.l 而:iChitiEKJ 5屮lira* 仁VJ lf| W:N TTirn IHPtCJC :vnrK KAM nt :VDni IIEJI :TflTlH i.c. :i'wnixvi- I#乳IJhIkIIlli .31:'11咅频解码驱动屯路II' 础IM!Ml HIJHZi庙IEIP.IIIIKCiLl耳机駆动电路id 1hil »1岀J巴一ii
26、K出中 二P 1Inl眉n录持电路图2.7 SD卡内部结构及引脚7图2.6音频解码电路2.4 SD 卡2.4.1SD卡概述SD卡(Secure Digital Memory Card)是一种为满足安全性、容量、性能和使用环境等各方面的需求而设计的一种新型存储器件,SD卡允许在两种模式下工作,即SD模式和SPI模式,本系统采用SPI模式。本小节仅简要介绍在 SPI模式下,STM32处理器如何读写SD卡,如果读者如希望详细了解 SD卡,可以参考相关资料。SD卡内部结构及引脚如图2.7所示,1 I I I I I II=I U: * dbnrllf血 LM_1*一I 苗!.* >i r 匚
27、39;(>= H h L-j i L r I2*''I J <-bSD 卡主要引脚和功能为:CLK :时钟信号,每个时钟周期传输一个命令或数据位,频率可在025MHz 之间变化,SD卡的总线管理器可以不受任何限制的自由产生 025MHz的频率;CMD :双向命令和回复线,命令是一次主机到从卡操作的开始,命令可以 是从主机到单卡寻址, 也可以是到所有卡; 回复是对之前命令的回答, 回复可以 来自单卡或所有卡;DAT03:数据线,数据可以从卡传向主机也可以从主机传向卡。SD卡以命令形式来控制SD卡的读写等操作。可根据命令对多块或单块进行读写操作。在SPI模式下其命令由6
28、个字节构成,其中高位在前。2.4.2 FAT16 文件系统SD卡如果采用FAT16文件格式,按照其不同的特点和作用大致可分为 5部 分:MBR区、DBR区、FAT区、FDT区和DATA区。由于SD卡一般不做引导 盘,一般也不分区,因此通常无 MBR 区,直接从 DBR 区开始。下面对后面四 个区分别作简介DBR 区BPB(Bios MBR 将系统 如果有则将其读 BPB 参数块记录着本分区的起始扇区、结束 FAT个数,分配单元大小等重要参数。内容为系统引导记录,它包括一个引导程序和一个被称为Parameter Block)的本分区参数记录表。弓I导程序的主要任务是当 控制权交给它时, 判断本分
29、区根目录是否有操作系统引导文件, 入内存,并把控制权交给该文件。扇区、文件存储格式、根目录大小、FAT 区该区内容为文件分配表,FAT16文件系统进行空间分配的最基本单位是簇。 文件分配表反映了 SD 卡所有簇的使用情况, 通过查文件分配表可以得知任一簇 的使用情况。对于 FAT16 来说, FAT 表每项占用两个字节。 FAT 表的第一项通 常为FFF8H。对于其它项,若其值为 0000H表示可用;FFF7H表示为坏簇; FFF8H-FFFFH 之间表示该簇为某文件或目录的最后一个簇, FFF0H-FFF6H 之间 为保留值;其它值则指示下一个簇的簇号。FDT 区该区的内容为文件目录表,FA
30、T文件系统的一个重要思想是把目录(文件夹) 当作一个特殊的文件来处理,FAT32甚至将根目录当作文件处理。FAT分区中所 有目录文件,实际上可以看作是一个存放其它文件 (文件夹)入口参数的数据表。 因此,目录占用空间的大小并不等同于其下所有数据的大小,但也不等于0,通 常是占很小的空间。其具体的存储原理是:不管目录文件所占空间为多少簇, 簇为多少扇区、多少字节;系统都会以 32个字节为单位,进行目录文件所占簇 的分配。DATA 区该数据区存放文件的内容,SD卡所占用的空间绝大部分为此部分。如果文 件长度大于一个簇的大小,需要多个簇存放该文件,这些放通过FAT链表串连起来。2.4.3 SD卡驱动
31、电路使用SPI总线与STM32处理器连接,如图2.8所示DGND图2.8 SD连接器与STM32处理器SPI连接图2.5液晶显示器2.5.1液晶显示原理1602液晶模块内部的字符发生存储器(CGROM)已经存储了 160个不同的图2.9 LCD1602字符表2.5.2液晶显示模块LCD液晶显示模块主要完成数据显示、 输出数据与显示数据的同步等功能, 可为使用者提供曲目信息。,前期为了简化电路的设计,以及充分利用开发板资 源,此次系统显示模块设计采用 STM32V100开发板有自带的LCD液晶屏,如 果时间允许,我将对支持汉字液晶屏进行研究以用于显示歌词,音量等。LCD液晶屏硬件电路如图图2.1
32、0 LCD1602硬件电路图2.10所示I-5V DGND第三章系统软件设计3.1软件设计总流程本系统在软件设计上主要包括 2部分:底层驱动的设计和各功能模块的设 计。软件设计平台使用 RealView MDK13。图3.1系统软件总流程各个功能的选择菜单仿照手机九空格的操作界面,实现多各个功能之间的选 择与切换,系统软件设计的总体流程图 3.1所示。3.2 底层驱动程序设计3.2.1 VS1003 驱动设计要让VS1003实现音乐播放功能,首先要实现写命令功能,然后通过写命令 操作初始化VS1003。完成以上步骤之后,就可以送入音频数据,播放音乐了。1. VS1003 写命令要控制 VS10
33、03 首先要实现的就是写命令,这是控制是否成功的前提。VS1003 通信方式是一种同步串行接口方式( SPI 从机模式 ),它要求 SCLK 信 号必须由外部电路产生,数据(SDATA)在SCLK的上升沿或下降沿时被写入。 写命令的过程如下:(1)(2)(3)(4)等待 DREQ 为高(当 DREQ 为低时,说明芯片还没有就绪) ; 将 XCS (命令片选)拉低;写入 0x02;写入寄存器地址;(5) 分别写入数据的高字节与低字节;(6) 将 XCS 置高。2. VS1003 初始化如其它芯片一样,初始化对于 VS1003 来说同样是极其重要的。初始化的过程大致是这样的:(1)(2)(3)(4
34、)(5)(6)(7)硬件复位:接 XRESET 拉低;延时,将 XDCS、XCS、XRESET 置高;向 MODE 中写入 0X0804; 等待 DREQ 为高;设置 VS1003 的时钟:SCI_CLOCKF=0x9800,3 倍频;设置VS1003的采样率:SPl_AUDATA=0xbb81,采样率48kHz,立体声; 设置重音: SPI_BASS=0x0055;(8)(9)3. VS1003 对音频文件的处理设置音量: SCI_VOL=0x2020;向VS1003发送4个字节的无效数据,用以启动 SPI发送。在完成 VS1003 初始化之后就可以对其写入 MP3 文件数据了。主要就是看D
35、REQ信号,在VS1003的FIFO能够接受数据的时候输出高电平。每次可以写入 32个字节的数据。而 DREQ 变低时,单片机就要停止数据的发送。写数据的具体的方法如下:将XDCS拉低;等待DREQ为高;通过SPI写入数据;缓冲区;在文件没有结束前不断重复2与3操作;在所有的数据都发送完后,再发送2048无效字节以清除VS1003的数据将XDCS置高。3.2.2 SD卡读取驱动SD卡12 ( Secure Digital Memory Card )是一种为满足安全性、容量、性能和使用环境等各方面的需求而设计的一种新型存储器件, SD卡允许在两种模式 下工作,即SD模式和SPI模式,本系统采用S
36、PI模式。SD卡引脚功能如表3-1 所列,各引脚的具体含义如下。CLK :时钟信号,每个时钟周期传输一个命令或数据位,频率可在025MHz 之间变化,SD卡的总线管理器可以不受任何限制的自由产生025MHz的频率。表3-1 SD卡引脚功能表针脚123456789SPI模式CSMOSIVSSVCCCLKVSSMISONCNCCMD :双向命令和回复线,命令是一次主机到从卡操作的开始,命令可以 是从主机到单卡寻址,也可以是到所有卡;回复是对之前命令的回答,回复可以 来自单卡或所有卡。DATO3:数据线,数据可以从卡传向主机也可以从主机传向卡。VCC和VSS :电源和地。SPI模式下,SD卡的几个重
37、要操作命令如表 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
38、SD卡R1回应格式SD卡R1回应格式BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT00参数 错误地址错误连续擦 除错误命令CRC错 误非法 命令擦除 复位IDLE 状态SD卡典型的初始化过程如下:(1)初始化与SD卡连接的硬件条件(MCU的SPI配置,10 口配置);上电延时(>74个CLK);复位卡(CMD0);(4) 激活卡,内部初始化并获取卡类型(CMD1 (用于MMC卡)、CMD55、CMD41);(5) 查询OCR,获取供电状况(CMD58);(6) 是否使用 CRC(CMD59);(7) 设置读写块数据长度(CMD16);(8) 读取CSD,获取存储卡的其他信
39、息(CMD9);(9) 发送8CLK后,禁止片选.在SD卡初始化完成后,就可以读 SD卡读写数据。SD卡读取数据通过CMD17完成,具体步骤如下:发送CMD17 ;接收卡响应R1;接收数据起始令牌0XFE ;丢掉;(6) 8CLK之后禁止片选;SD卡写数据通过CMD24完成,具体步骤如下:(1)发送 CMD24 ;接收卡响应R1 ;接收数据;接收2个字节的CRC,如果没有开启CRC,这两个字节在读取后可以发送写数据起始令牌0XFE ;(4)发送数据;发送2字节的伪CRC;(6) 8CLK之后禁止片选。323 RTC时钟驱动STM32F103RBT6内带RTC模块,它拥有一组连续运行的计数器,可
40、以通 过适当的软件设置提供日历时钟功能和闹铃功能。RTC的驱动时钟可以是一个使用外部晶体的32.768kHz的振荡器,RTC具有一个32位的可编程计数器,使 用比较寄存器可以进行长时间的测量。有一个20位的预分频器用于时基时钟,默认情况下时钟为32.768kHz时,它将产生一个1秒长的时间基准。通过设置RTC的相关寄存器,就可以实现时钟和闹铃功能了。RTC工作的一般步骤如下:? 使能电源时钟和备份区域时钟, RCC->A PB1ENR|=3vv27。? 取消备份区写保护,P WR->CR|=1<< 8。? 复位备份区域,开启外部低速振荡器,RCC->BDCR|=1
41、<<16。? 选择 RTC 时钟,并使能,RCC->BDCR|=1<<0,RCC->BDCR|=1<<15。? 设置 RTC的分频,以及配置 RTC时钟,RTC->PRLH与RTC->PRLL。 ? 更新配置,设置 RTC中断,RTC->CRH|=0X01。? 进入中断服务程序。3.2.4液晶显示设计液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块 的忙标志为低电平,表示不忙,否则此指令失效。要显示字符时要先输入显示字 符地址,也就是告诉模块在哪里显示字符,表 3-4是DM-1602的内部显示地址。SR行第二行
42、表3-4 DM-1602的内部显示地址比如第二行第一个字符的地址是 40H,那么是否直接写入40H就可以将光 标定位在第二行第一个字符的位置呢?这样不行,因为写入显示地址时要求最高位D7恒定为高电平1所以实际写入的数据应该是01000000B( 40H)+10000000B(80H)=11000000B(C0H)具体流程图如图3.2所示开始TI液品勿始化.宇*I取号赫号I収显小7符站束图3.2液晶显示流程图3.3功能模块的设计3.3.1音乐播放功能的设计要实现音乐播放功能,需要获得相应的音乐文件数据,根据FAT文件的存储格式并结合SD卡读取驱动,得到相应的文件数据,每次读取 512个字节。当V
43、S1003已经初始化完成并等待接收数据(DREQ引脚为高电平)时,将读到的 数据以每次32字节的速度送入VS1003的RAM中,VS1003会自动去处理这些 数据并得到模拟音频信号。在每次读取新的音频文件时,采用文件名比较(只比较前3个字节)的方法 查找存在SD卡中的歌词文件,如果存在歌词文件,就将文件数据全部复制到RAM中(超过6144个字节的部分将丢弃),同时初始化30ms中断的定时器用 于歌词显示的刷新操作。音乐播放功能实现的具体流程如图 3.3所示。23图3.3音乐播放功能的实现流程可以实现USB读卡器的功SD卡读写部分。根据ST官MSD_WriteBuffer 函数,用3.3.2 U
44、SB读卡器STM32F103RBT6 内置 1 个 USB 2.0 全速接口,能。该功能的实现需要2个部分:USB传输部分和网提供的例程,USB读卡器用到2个函数:一个是 于向SD卡写入数据,当你要 COPY文件到SD卡的时候,就是由这个函数完 成的;另一个是 MSD_ReadBuffer函数,该函数用于读取 SD卡上面的数据。下载 ST 官网的例程,移植到本设计中即可实现USB 读卡器功能。第四章 结论还可以进一步利用英蓓特Player 的功能,例如利用 ADC 来调节音量、利用几本系统实现了简易 MP3 Player 的基本原型设计,STM103V100-II 评估板资源来完善和丰富该 M
45、P3Joystick 来选择歌曲、利用 LCD 来显示歌曲名、利用个 LED 灯来表示音量大小。如果能完成以上所有相关设计,则可以基本熟悉 STM32 处理器的各种应用开发。结束语本文提出了一种基于 STM32 的 MP3 播放器设计方案, 并使用 ARM 开发工 具 RealView MDK 实现了该方案的原型。尽管该方案无法作为一个通用 MP3 的 方案,但是对于某些音频需要的工业控制、 汽车电子、 医疗电子等方案具有一定 的参考性。本系统也可以尝试采用更有效的中断方式,在内存中设置一个环形的缓冲 区,SPI1从SD卡读取的MP3文件数据存放在其中,当 VS1003需要数据时其 DREQ
46、引脚将产生低电平, 利用其产生中断, 在中断服务程序中从缓冲区读取数 据送VS1003,直至DREQ引脚恢复为高电平时退出中断。限于时间与篇幅的问 题,我将不对上述情况予以实现。参考文献1百度百科.MP3 播放器EB/OL . 2010-11-262 薛小铃,刘志群,贾俊荣单片机接口模块应用与开发详例 M 北京:北京 航空航天大学出版社, 20103 AMS1117 技术手册EB/OL 1 17 , 2010-7-21.4 STM32F103 增强型系列数据手册EB/OL 2009/0513/1405.htm,l 2009-05-13/2011-03-015 王永红,徐炜,郝立平 STM32
47、系列 ARM Cortex-M3 微控制器原理与实践M 北京:北京航天航空大学出版社,20086 DS18B20 技术文档EB/OL http:/www.maxim- 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 df, 2008-08-04.11 张涛,左谨平,马华玲.FatFs在32位微控制器STM32上的移植J.电子技 术, 2010,(03).12 SD 卡规范EB/OL 2010-05
48、-05.13 李宁 ARM 开发工具 RealViewMDK 使用入门 M 北京:北京航空航天大 学出版社,2008原理图:附件-亠二.-亠 車 Hrrurt'iADT卜一rix-._J:.”0 : f'Fyy;y:i 讣I刃O LI" m-=PCB:rk.&戏©p "" -n 1 k Qis空0o_de® 审乔淨&爲 0 咎。一。不 一0。 ,-上4-N1-Jwi飽a;0産-鱼2 0 O 0 曲。倉srM<丄一HL帮0 Q60 <0 宜g 0 一 0 mg6里.<3m.oxiZS枸 d亘劭TJ
49、 B112 RiH-z 卩霸ipO型¥r4li协&*0 L 1 一 - Dhi_ ?m草3,71一亠卜©卜. < 1 ht 1;T外围电路PCB电路图29代码:/* 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 void SetupUART1(void);extern void SetupClock(void);extern void Speake
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 轻冶浆液调整输送工安全操作测试考核试卷含答案
- 电子真空镀膜工创新方法水平考核试卷含答案
- 2026年初中教师遴选考试试题及答案
- 电动搬运车培训模拟考试试题及答案
- 2026年电商顾问培训服务合同
- 2026年工程配送猎头招聘合同
- 2026东北石油大学招聘博士研究生117人备考题库(黑龙江)附答案详解(黄金题型)
- 2026湖北恩施州顺鑫达劳务有限责任公司招聘劳务派遣人员备考题库及一套答案详解
- 2026云南曲靖市马龙区科学技术协会公益性岗位招聘1人备考题库附答案详解(b卷)
- 2026华颐(河南)控股发展有限公司及所属企业社会招聘3人备考题库附答案详解(巩固)
- 2026年中医基础理论试题库(附答案)
- 2026年广东省中考语文二模试卷(含详细答案解析)
- 2026四川资阳市本级(高新区、临空经济区)引进急需紧缺专业人才229人笔试备考试题及答案解析
- 四川省乐山市高中2023级第二次调查研究考试(乐山二调)地理+答案
- 压力容器、压力管道、叉车应急预案演练(方案+总结)2026版
- 露天矿山综合信息管理与监控系统技术方案
- 武威市2026事业单位联考-综合应用能力A类综合管理模拟卷(含答案)
- T/CNSS 003-2020医疗机构人乳库建立与管理规范
- 狼和小羊剧本
- 餐饮连锁企业运营管理手册
- 糕点切片机设计
评论
0/150
提交评论