收藏 分享(赏)

基于ARM7的音乐播放器 2.doc

上传人:s36f12 文档编号:9492482 上传时间:2019-08-10 格式:DOC 页数:33 大小:423.34KB
下载 相关 举报
基于ARM7的音乐播放器 2.doc_第1页
第1页 / 共33页
基于ARM7的音乐播放器 2.doc_第2页
第2页 / 共33页
基于ARM7的音乐播放器 2.doc_第3页
第3页 / 共33页
基于ARM7的音乐播放器 2.doc_第4页
第4页 / 共33页
基于ARM7的音乐播放器 2.doc_第5页
第5页 / 共33页
点击查看更多>>
资源描述

1、IMP3 播放器是利用数字信号处理器DSP(Digital Sign Processing)来完成处理传输和解码MP3 文件的任务的。本设计基于LPC2103 及VS1003B 实现MP3 播放器的整体设计,并以SD卡做为MP3 播放器的存储设备。其中LPC2103 实现对SD卡的读写、FAT32 文件系统的实现、txt 文件的显示、控制LCD 的显示及相关汉字库的实现;而VS1003B 则实现将LPC2103从SD卡中读取出来的MP3 格式音乐进行解码,从而完成MP3 播放器的整体设计和实现。本次设计以分立芯片来实现MP3 播放器各个功能,相较于一般设计中以集成MP3 控制芯片来实现,这种设

2、计更有利于对MP3 播放器的分析和学习。关键字:MP3 解码;USB;SD 卡;FAT32;TXT 文档ABSTRACTAbstract: MP3 player is the use of digital signal processors DSP II(Digital Sign Processing) to complete the processing and transfer the task of decoding the MP3files. The design is based on LPC2103 and VS1003B achieve the overall design of

3、 MP3 players, and using SD card as the storage devices of MP3 players. Implementation of these LPC2103 SD card reader, FAT32 file system to achieve, txt documents show that the LCD display and control related to the realization of Hanzi Ku; VS1003B while achieving LPC2103 from the SD card reader by

4、the MP3format for music Decoder, MP3 players, thus completing the overall design and implementation. The separation of chip design to MP3 players to achieve the various functions, in comparison to the general design of the integrated MP3control chips to achieve, this design is more conducive to anal

5、ysis and study the MP3 player.Keyword: MP3 decoder; USB; SD card; FAT32; TXT documents目 录IV目录摘要.1Abstract.2第一章MP3 播放器的概述.11.1 MP3 播放器的原理.11.2 MP3 播放器的内部结构.11.3 MP3 播放器的历史和发展.1第二章MP3 播放器的功能模块设计.22.1 MP3 的硬件框架.22.2 SD 卡的读写22.3 FAT32 文件系统.42.3.1 FAT32 存储原理.42.3.2 根目录的查找.42.3.3 文件数据的查找102.5 MP3 文件解码132.

6、6 ARM7单片机介绍152.7 硬解码模块介绍18第三章MP3播放器的软硬件设计.193.1 MP3 播放器的硬件设计193.2 MP3 播放器的软件设计193.2.1 USB 通信程序设计203.2.2 电子书、MP3 解码程序213.3 总结22参考文献23目 录III致谢24附录25附录1 程序-main()主函数26附录2 程序-SD驱动程序29外文资料及翻译390第1章MP3 播放器的概述1.1 MP3 播放器工作原理MP3 播放器是利用数字信号处理器DSP(Digital Sign Processing)来完成处理传输和解码MP3 文件的任务的。DSP 掌管随身听的数据传输,设备

7、接口控制,文件解码回放等活动。DSP 能够在非常短的时间里完成多种处理任务,而且此过程所消耗的能量极少(这也是它适合于便携式播放器的一个显著特点)。首先将MP3歌曲文件从内存中取出并读取存储器上的信号到解码芯片对信号进行解码通过数模转换器将解出来的数字信号转换成模拟信号再把转换后的模拟音频放大低通滤波后到耳机输出口,输出后就是我们听到的音乐。1.2 MP3内部结构MP3 播放器由液晶显示屏、微处理器、数码信号处理器(DSP)芯片、输入输出控制器、放大器和一些按钮组成。微处理器是播放器的“大脑”,用来接受用户选择的播放控制,并将当前播放的歌曲信息显示在液晶显示屏上,然后向数据信号处理芯片发出指令

8、,使其准确地处理音频信号。数码信号处理器先用解压算法将MP3 文件解压,接着用数模转换器将数码信息转换成波形信息,然后由放大器将信号放大并送到音频端口,最后我们就可以通过接在音频端口的耳机听到动听的音乐了。1.3 MP3 播放器历史和发展MP3 至今已有10 年的发展历程。从最初只对MP3 的支持到现在不仅支持WMA,而且对AVI、FLV 格式视频的支持;从最初的闪存式到现在的大容量硬盘式MP3。10 年的MP3 之路使其走过了大战MD、音质为王、彩屏流行、视频当道四个阶段,如今的MP3 更是向全能性进军:拍照、电子书、双核、大容量,可说是只要你曾经想过的,未来他就有可能让其成为现实。第 2

9、章 MP3 播放器的功能模块设计1第2章 MP3播放器的功能模块设计本文设计的MP3 播放器是以ARM7 做主控芯片,辅以VS1003B 芯片做MP3 格式音乐的解码之用。不同于现在大部分MP3 播放器用一块集成芯片实现整体功能,这种分立式设计增加了功能性设计的灵活性,同样也增加了一定的困难。2.1 MP3 的硬件框架图2-1 硬件框架2.2 SD 卡读写由上图可知,整个设计是以SD 卡为存储介质,LPC2103 为主控芯片来实现相关功能。所以读写SD卡的内容是整个设计的基石。SD 卡的读写有两种模式:SPI、SD BUS。由于LPC2103 只支持SPI,所以在设计中我采用SPI对SD卡和L

10、PC2103 进行连接。为了使SD卡初始化进入SPI 模式,我们需要使用2的命令有3 个:CMD0,ACMD41,CMD55。在设计中,我将2103 设为SPI 的主控方,通过发送相关指令来实现SD卡的操作。而SD 卡则对2103 发送过来的指令进行相关操作,并返回一定的返回值来告知主控芯片操作的情况及传回所需的数据。在所有的指令中,唯独CMD0 特殊,在向SD卡发送以前需要向SD卡发送74+个时钟。那么为什么要74 个CLK 呢?因为在上电初期,电压的上升过程据SD卡组织的计算约合64 个CLK 周期才能到达SD 卡的正常工作电压他们管这个叫做Supply ramp up time,其后的1

11、0 个CLK 是为了与SD 卡同步,之后开始CMD0的操作。在SD 卡读写过程中除用CMD0,ACMD41,CMD55 来进行SPI 的初始化外,我们还用了三条指令来进行读写操作,分别为CMD16,CMD17,CMD24。此六条指令的作用及相关返回值的意思如下表:表2-1 指令作用第 2章 MPS 播放器的功能模块设计3(4设计中整个SD 卡的读写除了最开始的硬件SPI初始化外,就是通过以上六条指令实现所有操作。其中SD 卡的读写其命令写入和数据的读写允许的最高速度并不相同,彼此相差30 倍左右。所以整个SD 的读写程序中,必须改变SPI的读写速度,才能达到最大值。再者SD卡的读写必须以扇区的

12、起始为读写点,否者将不能成功读写。2.3 FAT32 文件系统如果说SD 卡读写是整个设计的基石,那毫无疑问FAT32 文件系统是这个系统的血脉,因为所有的文件的操作和存储都遵循着FAT32 文件系统的规则。由于FAT32 文件系统涉及太多,所以本处只从文件系统的读着眼进行对FAT32的叙述。FAT32 文件系统将逻辑盘的空间划分为三部分,依次是引导区(BOOT区)、文件分配表区(FAT 区)、数据区( DATA 区)。引导区和文件分配表区又合称为系统区。就本设计而言,我们只需要从系统区获得存储介质(即SD 卡)中文件根目录的所在,然后通过根目录逐个找到我们相应所需要找到的文件。2.3.1 F

13、AT32 存储原理FAT32 是个非常有功劳的文件系统,Microsoft成功地设计并运用了它,直到今天NTFS铺天盖地袭来的时候,FAT32 依然占据Microsoft Windows文件系统中重要的地位。FAT32 最早是出于FAT16 不支持大分区、单位簇容量大以致空间急剧浪费等缺点设计的。实际应用中,FAT32 还是成功的。图2-2标出了FAT32 分区的基本构成:第 2章 MPS 播放器的功能模块设计5图2-2 FAT32的组织形式FAT32 在格式化的过程中就根据分区的特点构建好了它的DBR,其中BPB参数是很重要的,可以回过头来看一下表4 和表5。首先 FAT32 保留扇区的数目

14、默认为32 个,而不是FAT16 的仅仅一个。这样的好处是有助于磁盘DBR指令的 长度扩展,而且可以为DBR扇区留有备份空间。上面我们已经提到,构建在FAT32上的win98 或win2000 、winXP,其操作系统引导代码并非只占一个扇区了。留有多余的保留扇区就可以很好的拓展OS引导代码。在BPB中也记录了DBR扇区的备份扇区编号。 备份扇区可以让我们在磁盘遭到意外破坏时恢复DBR。FAT32 的文件分配表的数据结构依然和FAT16 相同,所不同的是, FAT32 将记录簇链的二进制位数扩展到了32 位,故而这种文件系统称为FAT32。32 位二进制位的簇链 决定了 FAT表最大可以寻址2

15、T个簇。这样即使簇的大小为1 扇区,理论上仍然能够寻址1TB范围内的分区。但实际中FAT32 是不能寻址这样大的空间的,随着分区空间大小的增加,FAT表的记录数会变得 臃肿不堪,严重影响系统的性能。所以在实际中通常不格式化超过32GB的FAT32 分区。WIN2000及之上的OS已经不直接支持对超过32GB的分区格式化成FAT32, 但WIN98 依然可以格式化大到127GB的FAT32 分区,但这样没必要也不推荐。同时FAT32 也有小的限制,FAT32 卷必须至少有65527 个簇,所以对于小的分区,仍然需要使用FAT16 或FAT12。分区变大时,如果簇很小,文件分配表也随之变大。仍然会

16、有上面的效率问题存在。既要有效地读写大文件,又要最大可能的减少空间的浪费。FAT32同样规定了相应的分区空间对应的簇的大小,见下表:表2-2 FAT32 分区大小与对因簇大小6簇的取值意义和FAT16 类似,不过是位数长了点罢了,比较见下表:表2-3 FAT 各系统记录项的取值含义(16 进制)FAT32 的另一项重大改革是根目录的文件化,即将根目录等同于普通的文件。第 2章 MPS 播放器的功能模块设计7这样根目录便没有了FAT16 中512 个目录项的限制,不够用的时候增加簇链,分配空簇即可。而且,根目录的位置也不再硬性 地固定了,可以存储在分区内可寻址的任意簇内,不过通常根目录是最早建立

17、的(格式化就生成了)目录表。所以,我们看到的情况基本上都是根目录首簇占簇区顺序上的第1 个簇。FAT32 对簇的编号依然同FAT16。顺序上第1 个簇仍然编号为第2 簇,通常为根目录所用(这和FAT16 是不同的,FAT16 的根目录并不占簇区空间,32 个扇区的根目录以后才是簇区第1 个簇)FAT32 的文件寻址方法与FAT16 相同,但目录项的各字节参数意义却与FAT16 有所不同,一方面它启用了FAT16 中的目录项保留字段,同时又完全支持长文件名了。对于短文件格式的目录项,其参数意义见下表:表2-4 FAT32 短文件目录项32 个字节的表示定义8说明:(1)、这是FAT32 短文件格

18、式目录项的意义。其中文件名、扩展名、时间、日期的算法和FAT16 时相同的。(2)、由于FAT32 可寻址的簇号到了32 位二进制数。所以系统在记录文件(文件夹)开始簇地址的时候也需要32 位来记录,FAT32 启用目录项偏移0x120x13 来表示起始簇号的高16 位。(3)、文件长度依然用4 个字节表示,这说明FAT32 依然只支持小于4GB的文件(目录),超过4GB的文件(目录),系统会截断处理。FAT32 的一个重要的特点是完全支持长文件名。长文件名依然是记录在目录项中的。为了低版本的OS 或程序能正确读取长文件名文件,系统自动为所有长文件名文件创建了一个对应的短文件名,使 对应数据既

19、可以用长文件名寻址,也可以用短文件名寻址。不支持长文件名的OS 或程序会忽略它认为不合法的长文件名字段,而支持长文件名的OS 或程序则会以长文件名为显式项来记录和编辑,并隐藏起短文件名。当创建一个长文件名文件时,系统会自动加上对应的短文件名,其一般有的原则:(1)、取长文件名的前6 个字符加上“1“形成短文件名,扩展名不变。(2)、如果已存在这个文件名,则符号“后的数字递增,直到5。(3)、如果文件名中“后面的数字达到5,则短文件名只使用长文件名的前两个字母。通过数学操纵长文件名的剩余字母生成短文件名的后四个字母,然后加后缀“1“直到最后(如果有必要,或是其他数字以避免重复的文件名)。(4)、

20、如果存在老OS 或程序无法读取的字符,换以“_“长文件名的实现有赖于目录项偏移为0xB 的属性字节,当此字节的属性为:只读、隐藏、系统、卷标,即其值为0FH 时,DOS 和WIN32 会认为其不合法而忽略其存在。这正是长文件名存在的依据。将目录项的0xB 置为0F,其他就任由系统定义了,Windows9x 或Windows 2000、XP 通常支持不超过255 个字符的长文件名。系统将长文件名以13 个字符为单位进行切割,每一组占据一个目录项。所以可能一个文件需要多个目录项,这时长文件名的 各个目录项按倒序排列在目录表中,以防与其他文件名混淆。第 2章 MPS 播放器的功能模块设计9长文件名中

21、的字符采用unicode 形式编码(一个巨大的进步哦),每个字符占据2 字节的空间。其目录项定义如表表2-5 FAT32 长文件目录项32 个字节的表示定义系统在存储长文件名时,总是先按倒序填充长文件名目录项,然后紧跟其对应的短文件名。从表15 可以看出,长文件名中并不存储对应文件的文件开始簇、文件大小、各种时间和日期属性。文件的这些属性还是存放在短文件名目录项中,一个长文件名总是和其相应的短文件名一一对应,短文件名没有了长文件名还可以读,但长文件名如果没有对应的短文件名,不管什么系统都将忽略其存在。所以短文件名是至关重要的。在不支持长文件名的环境中对短文件名中的文件名和扩展名字段作更改(包括

22、删除,因为删除是对首字符改写E5H),10都会使长文件名形同虚设。 长文件名和短文件名之间的联系光靠他们之间的位置关系维系显然远远不够。其实,长文件名的0xD字节的校验和起很重要的作用,此校验和是用短文件名的11 个字符通过一种运算方式来得到的。系统根据相应的算法来确定相应的长文件名和短文件名是否匹配。这个算法不太容易用公式说明,我们用一段c程序来加以说明。假设文件名11 个字符组成字符串shortname,校验和用chknum表示。得到过程如下:int i,j,chknum=0;for (i=11; i0; i-)chksum = (chksum 如果通过短文件名计算出来的校验和与长文件名中

23、的0xD 偏移处数据不相等。系统无论如何都不会将它们配对的。依据长文件名和短文件名对目录项的定义,加上对簇的编号和链接,FAT32上数据的读取便游刃有余了。2.3.2 根目录的查找若要正确的找到根目录的所在,我们必先得确定引导扇区的位置。一般而言,引导扇区位于SD 卡的0 扇区,但由于SD 卡存在坏道的可能性,在格式化工程中,系统会另找一个扇区存放引导扇区。所以我们可以通过比照各扇区前八个字节的数据来判断是否是引导扇区。若为引导扇区,其数值为“0xEB, 0x58, 0x90,0x4D, 0x53, 0x44, 0x4F, 0x53”。确定了引导扇区,我们就可以借助其数值来判断根目录的位置,具

24、体查找方法如下:第一步:我们要确定是否为FAT32 或FAT16:在FAT32 中由52H,53H,54H,55H,56H 来确定,若此五字节为FAT32,此则说明此卷为FAT32 文件系统,若不是应查找36H,37H,38H,39H,3AH,3BH,若此五字节为FAT16,则说明此卷为FAT16 文件系统(因为现在的操作系统格式化时已经没有FAT16 选项,所以这五字节都是为“FAT32”)。第二步:我们要确定的是的每各扇区的字节数:由0BH,0CH 来决定,共两字节,一般都是512BYTE。第 2章 MPS 播放器的功能模块设计11第三步:我们要确定的是每簇所占的扇区数:由0DH 决定,一

25、个字节(512M的为一簇占8 扇区)。第四步:查看隐藏扇区大小,此处关系FAT1,FAT2,根目录地址:1CH,1DH,1EH,1FH 所决定,共四字节。第五步:保留扇区,这对编程而言很重要,他关系到你的FAT1,FAT2,和根目录的地址:由0EH,0FH 决定,共两个字节(FAT1 的起始扇区为保留扇区+隐藏扇区)。第六步:查看文件分配表的个数,一般都是两个,但关系到根目录的地址,还是查下比较好:由10H 决定,一个字节。第七步:查看此卷的大小,即分区所占扇区数:20H,21H,22H,23H 所决定,共四字节:此四字节数再乘以每个扇区所占字节数,即为此卷的实际大小。第八步:查看FAT 的大

26、小,即FAT1,FAT2 所占扇区数,此处关系根目录的地址:24H,25H,26H,27H 所决定,共四字节(根目录地址即为保留扇区数+隐藏扇区+FAT 扇区数*2)由以上几步我们就可以得到根目录的扇区地址,通过上文所说的SD 卡的读写方法,我们就可以将根目录的数据读取出来进行处理。根目录区中的目录项变化较多,一个目录项占32 字节,可以是文件目录项、子目录项、卷标项(仅跟目录有)、已删除目录项、长文件名目录项等。全部32字节的定义如下:(1) 0-7字节文件正名。(2) 8-10字节文件扩展名。(3) 11字节文件属性,按二进制位定义,最高两位保留未用,0至5位分别是只读位、隐藏位、系统位、

27、卷标位、子目录位、归档位。(4) 12-13字节仅长文件名目录项用,用来存储其对应的短文件名目录项的文件名字节校验和等。(5) 14-15字节16位二进制的文件建立时间,其中的高5位为小时,次6位为分钟。12(6) 16-17字节16位二进制的文件建立日期,其中的高7位为相对于1980年的年份值,次4位为月份,后5位为月内日期。(7) 18-19字节16位二进制的文件最新访问日期,定义同(6)。(8) 20-21字节起始簇号的高16位。(9) 22-23字节16位二进制的文件最新修改时间,其中的高5位为小时,次6位为分钟,后5位的二倍为秒数。(10) 24-25字节16位二进制的文件最新修改日

28、期,定义同(6)。(11) 26-27字节起始簇号的低16位。(12) 28-31字节32位的文件字节长度。对于子目录项,其28-31 字节为零;已删除目录项的首字节值为E5H。在可以使用长文件名的FAT32 系统中,文件目录项保存该文件的短文件名,长文件名用若干个长文件名目录项保存,长文件名目录项倒序排在文件短目录项前面,全部是采用双字节内码保存的,每一项最多保存十三个字符内码,首字节指明是长文件名的第几项,11 字节一般为0FH,12 字节指明类型,13 字节为校验和,26-27 字节为零。2.3.3 文件数据的查找通过根目录我们可以找到相应的文件目录,但从文件目录到相应的数据仍为至关重要

29、的一步,子目录相较于根目录的目录项而言比较简单点,其仍为32字节,定义如下:表2-6 子目录定义第 2章 MPS 播放器的功能模块设计13通过簇号,可以得知文件数据相对于根目录的扇区数(FAT32 中,根目录起始扇区为2 号簇),我们据此可以得到数据的扇区为:根目录开始扇区+(文件簇号-2)*8。通过上述方法我们就可以得到我们所需要的MP3 或TXT 文件的数据。2.5 MP3文件解码既然本次设计是做一个MP3播放器,那MP3文件的解码当然是必不可少的了。本次设计中我采用是对MP3文件进行硬件解码,从而得到高品质的音乐享受。本次设计我们采用VS1003B对MP3文件进行解码,VS1003B是一

30、块DSP芯片,支持对MP3和WMA的解码,理论上其支持5-384Kbps所有流文件MP3 文件是由帧(frame)构成的,帧是MP3 文件最小的组成单位。MP3 的全称应为MPEG1 Layer-3 音频文件,MPEG(Moving Picture Experts Group)在汉语中译为活动图像专家组,特指活动影音压缩标准,MPEG音频文件是MPEG1 标准中的声音部分,也叫MPEG 音频层,它根据压缩质量和编码复杂程度划分为三层,即Layer-1、Layer2、Layer3,且分别对应MP1、MP2、MP3 这三种声音文件,并根据不同的用途,使用不同层次的编码。MPEG 音频编码的层次越高

31、,编码器越复杂,压缩率也越高,MP1 和MP2 的压缩率分别为4:1 和6:1-8:1,而MP3 的压缩率则高达10:1-12:1,也就是说,一分钟CD 音质的音乐,未经压缩需要10MB的存储空间,而经过MP3 压缩编码后只有1MB 左右。不过MP3 对音频信号采用的是有损压缩方式,为了降低声音失真度,MP3 采取了“感官编码技术”,即编码时先对音频文件进行频谱分析,然后用过滤器滤掉14噪音电平,接着通过量化的方式将剩下的每一位打散排列,最后形成具有较高压缩比的MP3 文件,并使压缩后的文件在回放时能够达到比较接近原音源的声音效果。VS1003B原本是一块自动控制码流的解码芯片,但是不知我所购

32、买的那块流片不成功还是其他原因,并不能自动控制码流,所以必须得自己控制码流。虽然说在程序上增添了些许难度,但从学习的角度而言,却是一个不错的机会,所以我也没有更换芯片,用软件来实现码流控制。因此我们必须得知道一首歌曲的码流才能对其进行较好的解码,而这无疑就涉及到一些MP3结构的问题,下面就码流控制这一块相关的结构进行介绍:MP3文件大体可以分成三个部分:ID3V2,帧,ID3V1。其ID3V2,ID3V1都是介绍歌曲的一些相关信息,如作者,歌词等等。对整个解码工作有用的数据均在数据帧上,其结构如下:表2-7 数据帧结构帧头 CRC 数据4字节 0-2字节 由数据帧算出其帧头结 构如下: 表2-

33、8 帧 头结构第 2章 MPS 播放器的功能模块设计15由上述的帧头信息就可以算出帧长出来:帧长=144*取样率/采样频率+帧长调节对于VS1003B而言,其可以自己计算帧长,所以对此我们只需要从帧头提取出取样率,再加以软件控制就可以了。2.6 ARM7单片机介绍ARM(Advanced RISC Machines)是微处理器行业的一家知名企业,设计了大量高性能、廉价、耗能低的RISC处理器、相关技术及软件。技术具有性能高、成本低和能耗省的特点。适用于多种领域,比如嵌入控制、消费/教育类多媒体、DSP和移动式应用等。 ARM将其技术授权给世界上许多著名的半导体、软件和OEM厂商,每个厂商得到的

34、都是一套独一无二的ARM相关技术及服务。利用这种合伙关系,ARM很快成为许多全球性RISC标准的缔造者。 目前,总共有30家半导体公司与ARM签订了硬件技术使用许可协议,其中包括Intel、IBM、LG半导体、NEC、SONY、菲利浦和国民半导体这样的大公司。至于软件系统的合伙人,则包括微软、升阳和MRI等一系列知名公司。 ARM架构是面向低预算市场设计的第一款RISC微处理器。 16产品介绍 ARM提供一系列内核、体系扩展、微处理器和系统芯片方案。由于所有产品均采用一个通用的软件体系,所以相同的软件可在所有产品中运行(理论上如此)。典型的产品如下。 CPU内核 -ARM7:小型、快速、低能耗

35、、集成式RISC内核,用于移动通信。 - ARM7TDMI(Thumb):这是公司授权用户最多的一项产品,将ARM7指令集同Thumb扩展组合在一起,以减少内存容量和系统成本。同时,它还利用嵌入式ICE调试技术来简化系统设计,并用一个DSP增强扩展来改进性能。该产品的典型用途是数字蜂窝电话和硬盘驱动器。 -ARM9TDMI:采用5阶段管道化ARM9内核,同时配备Thumb扩展、调试和Harvard总线。在生产工艺相同的情况下,性能可达ARM7TDMI的两倍之多。常用于连网和顶置盒。 体系扩展 - Thumb:以16位系统的成本,提供32位RISC性能,特别注意的是它所需的内存容量非常小。 嵌入

36、式ICE调试 由于集成了类似于ICE的CPU内核调试技术,所以原型设计和系统芯片的调试得到了极大的简化。 微处理器 -ARM710系列,包括ARM710、ARM710T、ARM720T和ARM740T:低价、低能耗、封装式常规系统微型处理器,配有高速缓存(Cache)、内存管理、写缓冲和JTAG。广泛应用于手持式计算、数据通信和消费类多媒体。 -ARM940T、920T系列:低价、低能耗、高性能系统微处理器,配有Cache、内存管理和写缓冲。应用于高级引擎管理、保安系统、顶置盒、便携计算机和高档打印机。 -StrongARM:性能很高、同时满足常规应用需要的一种微处理器技术,与DEC联合研制,

37、后来授权给Intel。SA110处理器、SA1100 PDA系统芯片和SA1500多第 2章 MPS 播放器的功能模块设计17媒体处理器芯片均采用了这一技术。 -ARM7500和ARM7500FE:高度集成的单芯片RISC计算机,基于一个缓存式ARM7 32位内核,拥有内存和I/O控制器、3个DMA通道、片上视频控制器和调色板以及立体声端口;ARM7500FE则增加了一个浮点运算单元以及对EDO DRAM的支持。特别适合电视顶置盒和网络计算机(NC)。ARM技术特点:32位RISC架构;大量使用寄存器,指令执行速度更快;支持Thumb/ARM双指令集;兼容8位/16位IC;大多数数据操作在寄存

38、器中完成;寻址方式简单灵活,执行效率高;指令长度固定。2.7 硬解码模块介绍本设计采用VS1003模块来进行MP3的硬解码VS1003 特性:能解码 MPEG 1 和MPEG2 音频层 III(CBR+VBR+ABR);WMA 4.0/4.1/7/8/9 5-384kbps 所有流文件;WAV(PCM+IMAAD-PCM);产生MIDI/SP-MIDI 文件。对话筒输入或线路输入的音频信号进行IMAADPCM编码18支持 MP3 和WAV 流高低音控制单时钟操作1213MHz内部PLL锁相环时钟倍频器低功耗内含高性能片上立体声数模转换器,两声道间无相位差内含能驱动30 欧负载的耳机驱动器模拟,

39、数字,I/O 单独供电为用户代码和数据准备的5.5KB片上RAM串行的控制,数据接口可被用作微处理器的从机特殊应用的SPI Flash引导供调试用途的UART接口新功能可以通过软件和4 GPIO 添加到此,整个MP3播放器的所有功能原理我已经全部介绍,为了更直接了解本文设计的MP3播放器,在下一章将配合相关实物图介绍其软硬件设计。第 3 章 MP3 播放器的软硬件设计19第3章MP3播放器的软硬件设计3.1 MP3播放器的硬件设计在本次的硬件设计中我采用的成熟的硬件模块,包括一块LPC2103核心板,VS1003B核心板。LPC2103开发板中包含LPC2103的最小系统外。而其中的SD卡模块

40、,并无多少可以介绍的,因为其只是一些机械的原理和一些电路上简单连线,不过值的说的一点对于SD卡同样也采用SPI模式进行传送。本设计中的VS1003B核心板是由ICDEV设计的基于VS1003B芯片的MP3解码板。VS1003B是一块独立的DSP芯片,功能甚是强大,所以必须对其进行单独的电路设计,需要配置独立的晶振和外围电路设计,这一块已经被ICDEV的前辈们做好了,所以我秉着“拿来主义”,直接进行借用,其同样是用SPI进行数据传送的。对于VS1003核心板而言,其一共引出10个引脚,除了供电线及地之外,还需要7个lpc2103相对应的IO口与其对应。其中MISO、MOSI、SCLK为SPI的两

41、条数据和时钟线,分别于LPC2103中模拟SPI的三个IO口:p0.14、p0.21、p0.30相连接。CS、RESET、DREQ、DCS分别为VS1003的片选、重启、状态、数据片选线,分别与LPC2103的p1.17、p0.28、p0.2、p0.8相连,从而保证了VS1003核心板的正常解码工作。3.2 MP3播放器的软件设计不同于硬件,在软件设计是由我自己独自完成,所以对这一块比较熟悉。就如果上文介绍的几个功能模块一样,在软件编写上同样的分成那么几块,下图显示彼此间的关系:20图3-1 软件设计由上图可知,SD 卡读写是整个系统的最基本的一块,因为不论是什么是哪一块功能都涉及到SD 卡的

42、读写,所以在程序中我将其做成了子函数,向外只提供三个子函数,所有关于SD 的操作均是由这两个函数完成的。初始化函数SD_INIT()SD 读出函数SD_READ(INT8U *Buffer, INT16U Bytes,INT32U Number_Sector)SD 写入函数SD_WRITE(INT8U* Buffer,INT32U Number_Sector)上述功能对整个软件而言,无疑是最底层的设计,对于MP3 播放器中的最主要功能MP3 解码而言都是需要用到的,所以做子函数更有利于整个程序的模块式设计。3.2.1 USB 通信程序设计第 3章 MP3 播放器的软硬件设计21对于MP3 的三

43、大功能,相较于其它两个,USB 通信更为独立些,因为USB的通信均是由中断实现的,所以除了在主函数中涉及到其的初始化以外,在其它部分并没有有联系的地方。其函数框图如下:22图3-2 初始化框图3.2.2 电子书、MP3 解码程序由于电子书和MP3 均涉及到FAT32 文件系统,所以两者在程序上关联性较大,所以在很大程序上两者的程序是混在一起的,只是到最后才分开。其框图如下:第 3章 MP3 播放器的软硬件设计23图3-3 文件系统框图3.3 总结本次MP3 播放器采用分立芯片设计,不同现有MP3 芯片整体集成化趋向。采用分立芯片设计能最大限度的发挥不同芯片的功能,因为MP3 解码采用独立芯片,

44、理论上能达到更好的音质。但在实际设计中,由于自身能力有限,未能发挥两块芯片的全部功能,如不能对WMA 解码等,希望在以后的工作学习中能对其加以完善。24参考文献:1.周立功、张华.深入浅出ARM7 北京航空航天大学出版社.20062.Icdev 驱动你的vs1003 20063.博创科技MP3 播放器与U 盘设计自己动手打造心仪的个性MP3 20044.精英科技译SCSI 总线和IDE 接口:协议、应用和编程20015.陈逸等译USB大全中国电力出版社20016.廖济林USB2.0应用系统开发实例精讲电子工业出版社20067.谭浩强C语言程序设计(第二版) 清华大学出版社20028.严蔚敏等数据结构(C语言版) 清华大学出版社19969.阎石数字电子技术基础(第四版) 高等教育出版社200510.Frank USB项目技术报告200211.网友解读FAT32文件系统200712.北京北亚数据恢复中心FAT文件原理200713.Bluewater MP3文件格式200414.21IC电脑圈圈USB入门系列200715.智林测控Z213X-4X 开发板手册200616.philips user.manual.lpc2148 200617.ISO iso11172-3 200218.SanDisk Corporation Secure Digital Card 2003

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报