IMP3播放器是利用数字信号处理器DSP(DigitalSignProcessing)来完成处理传输和解码MP3文件的任务的。本设计基于LPC2103及VS1003B实现MP3播放器的整体设计,并以SD卡做为MP3播放器的存储设备。其中LPC2103实现对SD卡的读写、FAT32文件系统的实现、txt文件的显示、控制LCD的显示及相关汉字库的实现;而VS1003B则实现将LPC2103从SD卡中读取出来的MP3格式音乐进行解码,从而完成MP3播放器的整体设计和实现。本次设计以分立芯片来实现MP3播放器各个功能,相较于一般设计中以集成MP3控制芯片来实现,这种设计更有利于对MP3播放器的分析和学习。关键字:MP3解码;USB;SD卡;FAT32;TXT文档ABSTRACTIIAbstract:MP3playeristheuseofdigitalsignalprocessorsDSP(DigitalSignProcessing)tocompletetheprocessingandtransferthetaskofdecodingtheMP3files.ThedesignisbasedonLPC2103andVS1003BachievetheoveralldesignofMP3players,andusingSDcardasthestoragedevicesofMP3players.ImplementationoftheseLPC2103SDcardreader,FAT32filesystemtoachieve,txtdocumentsshowthattheLCDdisplayandcontrolrelatedtotherealizationofHanziKu;VS1003BwhileachievingLPC2103fromtheSDcardreaderbytheMP3formatformusicDecoder,MP3players,thuscompletingtheoveralldesignandimplementation.TheseparationofchipdesigntoMP3playerstoachievethevariousfunctions,incomparisontothegeneraldesignoftheintegratedMP3controlchipstoachieve,thisdesignismoreconducivetoanalysisandstudytheMP3player.Keyword:MP3decoder;USB;SDcard;FAT32;TXTdocuments目录III目录摘要.......................................................1Abstract...................................................2第一章MP3播放器的概述.....................................11.1MP3播放器的原理.......................................11.2MP3播放器的内部结构...................................11.3MP3播放器的历史和发展.................................1第二章MP3播放器的功能模块设计.............................22.1MP3的硬件框架.........................................22.2SD卡的读写............................................22.3FAT32文件系统.........................................42.3.1FAT32存储原理.......................................42.3.2根目录的查找.........................................42.3.3文件数据的查找......................................102.5MP3文件解码..........................................132.6ARM7单片机介绍........................................152.7硬解码模块介绍........................................18第三章MP3播放器的软硬件设计...............................193.1MP3播放器的硬件设计..................................193.2MP3播放器的软件设计..................................193.2.1USB通信程序设计....................................203.2.2电子书、MP3解码程序................................213.3总结..................................................22参考文献..................................................23目录IV致谢......................................................24附录......................................................25附录1程序--main()主函数..................................26附录2程序--SD驱动程序....................................29外文资料及翻译............................................39第1章MP3播放器的概述1第1章MP3播放器的概述1.1MP3播放器工作原理MP3播放器是利用数字信号处理器DSP(DigitalSignProcessing)来完成处理传输和解码MP3文件的任务的。DSP掌管随身听的数据传输,设备接口控制,文件解码回放等活动。DSP能够在非常短的时间里完成多种处理任务,而且此过程所消耗的能量极少(这也是它适合于便携式播放器的一个显著特点)。首先将MP3歌曲文件从内存中取出并读取存储器上的信号→到解码芯片对信号进行解码→通过数模转换器将解出来的数字信号转换成模拟信号→再把转换后的模拟音频放大→低通滤波后到耳机输出口,输出后就是我们听到的音乐。1.2MP3内部结构MP3播放器由液晶显示屏、微处理器、数码信号处理器(DSP)芯片、输入输出控制器、放大器和一些按钮组成。微处理器是播放器的“大脑”,用来接受用户选择的播放控制,并将当前播放的歌曲信息显示在液晶显示屏上,然后向数据信号处理芯片发出指令,使其准确地处理音频信号。数码信号处理器先用解压算法将MP3文件解压,接着用数模转换器将数码信息转换成波形信息,然后由放大器将信号放大并送到音频端口,最后我们就可以通过接在音频端口的耳机听到动听的音乐了。1.3MP3播放器历史和发展MP3至今已有10年的发展历程。从最初只对MP3的支持到现在不仅支持WMA,而且对AVI、FLV格式视频的支持;从最初的闪存式到现在的大容量硬盘式MP3。10年的MP3之路使其走过了大战MD、音质为王、彩屏流行、视频当道四个阶段,如今的MP3更是向全能性进军:拍照、电子书、双核、大容量,可说是只要你曾经想过的,未来他就有可能让其成为现实。2第2章MP3播放器的功能模块设计本文设计的MP3播放器是以ARM7做主控芯片,辅以VS1003B芯片做MP3格式音乐的解码之用。不同于现在大部分MP3播放器用一块集成芯片实现整体功能,这种分立式设计增加了功能性设计的灵活性,同样也增加了一定的困难。2.1MP3的硬件框架图2-1硬件框架2.2SD卡读写由上图可知,整个设计是以SD卡为存储介质,LPC2103为主控芯片来实现相关功能。所以读写SD卡的内容是整个设计的基石。SD卡的读写有两种模式:SPI、SDBUS。由于LPC2103只支持SPI,所以在设计中我采用SPI对SD卡和第2章MP3播放器的功能模块设计3LPC2103进行连接。为了使SD卡初始化进入SPI模式,我们需要使用的命令有3个:CMD0,ACMD41,CMD55。在设计中,我将2103设为SPI的主控方,通过发送相关指令来实现SD卡的操作。而SD卡则对2103发送过来的指令进行相关操作,并返回一定的返回值来告知主控芯片操作的情况及传回所需的数据。在所有的指令中,唯独CMD0特殊,在向SD卡发送以前需要向SD卡发送74+个时钟。那么为什么要74个CLK呢?因为在上电初期,电压的上升过程据SD卡组织的计算约合64个CLK周期才能到达SD卡的正常工作电压他们管这个叫做Supplyrampuptime,其后的10个CLK是为了与SD卡同步,之后开始CMD0的操作。在SD卡读写过程中除用CMD0,ACMD41,CMD55来进行SPI的初始化外,我们还用了三条指令来进行读写操作,分别为CMD16,CMD17,CMD24。此六条指令的作用及相关返回值的意思如下表:表2-1指令作用(4设计中整个SD卡的读写除了最开始的硬件SPI初始化外,就是通过以上六条指令实现所有操作。其中SD卡的读写其命令写入和数据的读写允许的最高速度并不相同,彼此相差30倍左右。所以整个SD的读写程序中,必须改变SPI的读写速度,才能达到最大值。再者SD卡的读写必须以扇区的起始为读写点,否者将不能成功读写。2.3FAT32文件系统如果说SD卡读写是整个设计的基石,那毫无疑问FAT32文件系统是这个系统的血脉,因为所有的文件的操作和存储都遵循着FAT32文件系统的规则。由于FAT32文件系统涉及太多,所以本处只从文件系统的读着眼进行对FAT32的叙述。FAT32文件系统将逻辑盘的空间划分为三部分,依次是引导区(BOOT区)、文件分配表区(FAT区)、数据区(DATA区)。引导区和文件分配表区又合称为系统区。就本设计而言,我们只需要从系统区获得存储介质(即SD卡)中文件根目录的所在,然后通过根目录逐个找到我们相应所需要找到的文件。2.3.1FAT32存储原理FAT32是个非常有功劳的文件系统,Microsoft成功地设计并运用了它,直到今天NTFS铺天盖地袭来的时候,FAT32依然占据MicrosoftWindows文件系统中重要的地位。FAT32最早是出于FAT16不支持大分区、单位簇容量大以致空间急剧浪费等缺点设计的。实际应用中,FAT32还是成功的。图2-2标出了FAT32分区的基本构成:图2-2FAT32的组织形式第2章MPS播放器的功能模块设计5FAT32在格式化的过程中就根据分区的特点构建好了它的DBR,其中BPB参数是很重要的,可以回过头来看一下表4和表5。首先FAT32保留扇区的数目默认为32个,而不是FAT16的仅仅一个。这样的好处是有助于磁盘DBR指令的长度扩展,而且可以为DBR扇区留有备份空间。上面我们已经提到,构建在FAT32上的win98或win2000、winXP,其操作系统引导代码并非只占一个扇区了。留有多余的保留扇区就可以很好的拓展OS引导代码。在BPB中也记录了DBR扇区的备份扇区编号。备份扇区可以让我们在磁盘遭到意外破坏时恢复DBR。FAT32的文件分配表的数据结构依然和FAT16相同,所不同的是,FAT32将记录簇链的二进制位数扩展到了32位,故而这种文件系统称为FAT32。32位二进制位的簇链决定了FAT表最大