毕业设计基于单片机的便携式MP3播放器设计.doc

上传人:laozhun 文档编号:4149596 上传时间:2023-04-07 格式:DOC 页数:29 大小:325.50KB
返回 下载 相关 举报
毕业设计基于单片机的便携式MP3播放器设计.doc_第1页
第1页 / 共29页
毕业设计基于单片机的便携式MP3播放器设计.doc_第2页
第2页 / 共29页
毕业设计基于单片机的便携式MP3播放器设计.doc_第3页
第3页 / 共29页
毕业设计基于单片机的便携式MP3播放器设计.doc_第4页
第4页 / 共29页
毕业设计基于单片机的便携式MP3播放器设计.doc_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《毕业设计基于单片机的便携式MP3播放器设计.doc》由会员分享,可在线阅读,更多相关《毕业设计基于单片机的便携式MP3播放器设计.doc(29页珍藏版)》请在三一办公上搜索。

1、1 便携式MP3播放器基本原理本章首先讨论便携式MP3播放器的结构、然后介绍多种存储器类型、接着介绍各种通信接口及其扩展功能,其中简要介绍了USB2.0通信协议。最后说明便携式MP3播放器的扩展功能。1.1 便携式MP3播放器的结构 对于便携式MP3系统,主要考虑的是其体积小巧、低功耗、高容量、低价格。当前流行的MP3播放器其主要结构如图2.1所示。可见,一个MP3播放器主要应包括:(1)单片机控制系统(2)大容量的移动存储设备(3)MP3解码器(4)D/A转换芯片(5)音频放大电路(6)USB接口(7)LCD显示和键盘电路USB大容量移动存储器LCD显示器键盘按钮单片机控制系统MP3解码D/

2、A转换音频放大声音输出 图2.1 MP3播放器的主要结构示意图事实上,随着MP3播放器的激烈竞争和产品开发的发展。一些芯片厂商已经推出了集成MP3解码及其它附加功能的单片机,使MP3播放器向集成化发展,如ATMEL的AT89C51SND1芯片。另一方面,MP3播放器的附加功能也越来越具有吸引力,如将MP3中的储存器开辟为移动存储设备,增加了MP3录音、调频收音机以及多种现场环境感觉功能的播放模式,在MP3播放器集成时钟功能等。总之,MP3播放器在不断集成化的同时,功能正朝着多样化方向发展。2.2 MP3播放器的通信接口2.2.1 MP3播放器的通信接口MP3的通信方式已从PC并口的Normal

3、方式过渡到ECP或EPP方式,上/下载速率从100Kbytes/s上升到300Kbytes/s;最新的产品,大多已经使用了支持热插拔的USB接口,通信速率最高可达400到500Kbytes/s,用户下载32Mbytes的MP3音乐只需大约一分半钟时间,大大缩短了用户上/下载MP3音乐的时间,有的甚至采用了USB2.0接口。当前,USB已经是便携式MP3通信接口的主流标准,不过,将来甚至可能采用1394火线技术。2.2.2 USB2.0简介通用串行总线(USB)是由INTEL,DEC,MICROSOFT和IBM等公司联合提出的一种新的串行总线标准,主要用于PC机与外接设备的互联。众所周知,计算机

4、外设的丰富及消费电子设备与计算机连接的实现,扩展了PC的应用空间,同时外设的日益丰富也给用户造成了连接上的困难。USB技术的提出就是基于通用连接技术实现外设的简单连接,以达到方便用户,降低成本,扩展PC机外设的目的。通用串行总线是一种快速,灵活的总线接口。与其它通信接口比较,USB接口的最大特点是易于使用,这也是USB的主要设计目标。作为一种高速总线接口,USB适用于多种设备,其易于使用表现在USB接口支持热插拔,并且所有的配置过程都由系统自动完成,无须用户干预。2.2.3 USB协议的传输速率USB是一种支持在USB主机和USB设备之间进行串行数据传输的通信协议。主机作为总线的主叫方,采用两

5、种信令模式:全速模式12Mb/S和低速模式1.5Mb/S。目前普通采用的USB1.1主要应用在中低速外部设备上,它提供的传输速率有低速1.5Mb/S和全速12Mb/S两种。扣除用于总线状态,控制和错误监测等的数据传输,USB的最大理论传输速率仍达1.2Mb/S或9.6Mb/S, 高于一般的串行总线接口。现在的2.0可以达到500Mb/S。总的来说,中速的传输是同步的,低速的数据来自交互的设备。USB设计的初速率是针对桌面计算机而不是应用于可移动的环境下的。软件系统通过对各种主机控制器提供支持以保证将完成USB的扩充。2.2.4 USB的4个层次USB物理设备(USB physical devi

6、ce):USB上的一种硬件,可运行一些用户程序。客户软件(dent software):为一个特定的USB设备而在主机上运行的软件。这种软件由USB设备的提供者提供或由操作系统提供。USB系统软件(USB system software):此软件用于在特定的操作系统中支持USB,它由操作系统提供。与具体的USB设备无关,也独立于客户软件。USB主机控制器(USB host controvert):总线在主机方面的总和。用于支持USB设备通过USB连接到主机上。一台主机与一个USB设备间的连接是由许多层上的连接组成的。USB总线接口层提供了在主机和设备之间的物理连接,发送连接,数据包连接。USB

7、设备层对USB系统软件是可见的,系统软件基于它所见的设备层 完成对设备的一般的USB操作。应用层可以通过与之相配合的客户软件向主机提供一些额外的功能。USB设备层和应用层的通信是逻辑上的,对应于这些逻辑通信的实际物理通信由USB总线接口层速完成。2.3便携式MP3播放器的扩展功能播放数字音乐的同时,消费者还希望能够有多种功能,比如用于实时记录语音信号等,一些厂商在他们的MP3中又加入了使用G.726标准的ADPCM语音编码算法,实现MP3的实时语音录音功能,由于该算法的编码速率为32Kbps,因而可以在32Mbytes的Flash中连续录音2个小时左右,能够满足一般记录语音的质量要求。许多MP

8、3还具有日历、秒表甚至万年历等辅助功能。此外,市面上还出现了嵌入MP3播放器功能的各种形式的电子产品,如能够播放MP3的手机,PDA,车载音响和数字相机等。2 便携式MP3播放器的方案分析本章分两大部分MP3播放器的硬件解决方案和MP3播放器的软件解决方案4。硬件方面包括:基于分离芯片的MP3播放器方案、基于集成MP3功能单片机的MP3播放器方案、基于定制ASIC电路的MP3播放器方案及彩FPGA实现MP3播放器的方案。3.1 MP3播放器的硬件解决方案从技术角度上说,MP3播放器存在多种方案,其分类方法也较多。这里仅从主要的MP3解码芯片类型,即按MP3播放器内部的主要芯片类型进行分类,大体

9、可分为:基于分离芯片的MP3播放器(存在多种方案)基于集成MP3功能单片机(MCU)的MP3播放器基于定制ASIC电路的MP3播放器采用FPGA实现MP3播放器的方案2.1.1 基于分离芯片的MP3播放方案采用分离芯片的MP3的播放器,主要包括MP3解码芯片、立体声D/A转换芯片、移动存储设备、微控制器芯片(单片机)和LCD显示电路等,下面分别介绍这些芯片的可选方案,并简述其技术特性。1、MP3解码芯片早期的MP3播放器大多采用基于解码芯片的方案,随着MP3播放器市场的发展,几乎所有的半导体公司都推出了自己的MP3解码芯片和MP3解决方案。2、立体声D/A转换器立体声D/A转换器是MP3播放器

10、极其重要的部件。其功能是将已经解码的立体声位流数据转换为合适大小级别的模拟电压,并通过耳机或扬声器进行播放。可以说,人们从MP3播放器听到的声音质量几乎完全取决于该部件,因此,选择一个高质量的D/A转换器是至关重要的。3、微控制器(单片机)对MP3播放器而言,一个微控制器是必需的,作为播放器的控制器,它从内存中读入数据,并将数据发送给MP3解码器,获取键盘和按钮的输入,处理用户选择,并提供给LCD控制器控制信号和数据。4、大容量的可擦除存储器对于便携式MP3播放器,大容量的可擦除存储器是其必备的,同时该设备的类型,质量和容量大小,直接决定了MP3播放器的价格,当前MP3播放器都具有大容量的可擦

11、除存储器,而且其容量有越来越大之趋势。5、液晶显示面板为了实现良好的交互操作,MP3基本上都提供了一个液晶显示面板LCD,主流的MP3通常都采用字符型LCD。 2.1.2 基于集成MP3功能单片机的MP3播放方案当前市场比较流行的是基于集成MP3功能单片机的MP3播放器,该方案仅需少量的外围器件就可以构成MCU单芯片的MP3播放器,这些芯片提供丰富的接口功能。2.1.3 基于定制ASIC电路的MP3播放器方案MP3播放器有一块定制的ASIC电路,它比通常MCU的功能要强大,且速度也快。由于该设计的ASIC具有并口和USB口可复用通信的特性,因而使用不同连接电缆和适配器,就能够实现与PC机不同的

12、通信方式,对于PC仅有并口的用户和具有USB口的用户均能使用该款机器。使用PC并口通信时,最高可达300KB/s的通信频率;使用USB通信时,最高可达400500KB/s的通信频率。2.1.4 采用FPGA实现MP3播放器的方案Xilinx公司采用了具有现场可编程门阵列(FPGA)的MP3,实现具有先进用户接口特性的MP3播放器。其中,FPGA器件主要用于实现存储器与输入/输出器件的管理和接口功能。2.1.5 各个方案的比较基于分离芯片的MP3播放器成本大,现在已经逐渐淘汰。现在大部分采用的是基于集成MP3功能单片机的MP3播放方案。基于定制ASIC电路的MP3播放器方案的显著特点是电路集成度

13、高,可降低成本,扩展功能,增强竞争力,但不普及。采用FPGA实现MP3播放器的方案比较完美,但难度大我没有采用。基于以上分析,又由于本人能力和时间所限,本文采用基于集成MP3功能单片机进行MP3的研究和设计。4基于AT89C51SND1的MP3播放器设计开发AT89C51SND1C单片机是ATMEL公司的系列单片机之一,本章将以该芯片为核心来开发MP3播放器。4. 1 系统分析本系统主要实现一个MP3播放器的功能,由于涉及文件传输和存储问题,所以附带需要实现USB存储器的功能。整个系统由AT89C51SND1C(MCU)、K9F2808U0A(Flash芯片),电源部分、音频部分、串行通信部分

14、和人机接口部分组成。MCU部分:控制整个系统,提供USB控制和MP3解码功能;Flash芯片:存放系统文件;电源部分:提供系统工作所需要的电源,包括1个升压和1个降压部分;音频部分:把数据流转化为声音信号;人机接口部分:包括按键和LED指示等等为了方便调试,系统中还提供了串行通信部分,在这个部分中主要详细介绍电源、音频部分。电源部分:整个开发板上所有芯片统一采用3.3伏供电,对开发板的供电采取2种形式:USB供电和7号电池供电。USB供电模式:USB供电参数如下:USB接口提供5V电压和200mA电流,Imax=500mA;PC机为500mA;笔记本电脑为100mA。由于AT89C51SND1

15、所需要的电压为3V(10%),25mA,所以能够满足需要。把5V电压转为成3.3V电压方案有两种:电位器分压和DC-DC芯片。在ATMEL提供的开发板中采用的是第一种方案,为了保证输出电压的稳定,我采取第2种方案:第2种方案备选芯片为AS1117和MAX1626/7,参数比较如表4.1所列。表4.1 降压电源芯片比较名 称性 能价 格AS1117IOUT=10 mA,VIN=5.0V0IOUT800 mA,4.75VIN10V1元MAX1626/715IOUT50 mA,3.0VIN16.5V$1.50电池供电模式:考虑到产品的完整性,故同时设置用7号干电池进行供电的模式,这就需要一个1.53

16、.3V的DC芯片,备选芯片为LM2621和MAX1642/3。参数比较如表4.2所列。本设计中选MAX856芯片。表4.2 升压电源芯片比较名 称性 能价 格LM26211.2至14 V Input Voltage1.24至14 V Adjustable Output VoltageUp to 1A Load Current$0.75MAX856Vout=3.3 V 0.7Vm1.65 V Iout=0.03 A$1.76结合比较,在系统设计中我们分别选择芯片AS1117和MAX856。音频部分:AT89C51SND1C的音频输出提供PCM和I2S2种模式,使得音频芯片的选择变得比较容易。综合

17、考虑数据精度和供电电压等因素,选择CS4330为音频DAC芯片,CS4330可是兼容性标准的48kHz、44.1kHz和32kHz音频信号,音频信号通过串行数据口SDATA送入,左右时钟信号LRCK控制左右声道和描绘数据和串行时钟系统的其它部分可以参照前面章节中提到的设计思想。4.2 系统开发系统开发包括硬件和软件两个部分,其中硬件主要是指开发电路板,软件部分主要包括软件模块分析,解码和音频的分析。4.2.1 硬件设计整个系统划分成几个部分:电源部分、控制器部分、存储器部分、音频部分、人机接口和RS232通信部分。电路图见附录A。电源部分:整个系统采用3V电源供电,系统电源可以取自USB接口,

18、也可来自干电池,所以系统电源由两个部分组成,一个部分提供从USB接口的5到3V的DC-DC降压转化;另外一个部分提供从1.5V干电池到3V的DC-DC升压转化。图4.1是利用AS1117进行电压转换的电路图。如图4.1所示,从USB接口出来的5V电源通过AS1117芯片被转化为3V电源,给整个系统供电。 图4.1 利用AS117进行电压转化XX-1117芯片(其中XX是公司给产品的系列名字,如AS-1117、LM1117等,其大体功能相同,只是在具体参数上有细微的差别)有多种不同的封装形式,重要的是有不同的电压输出型号,在本系统中一定要选择XX-1117芯片输出电压是3V的芯片,否则调试起来很

19、麻烦。图4.2是利用MAX856进行升压的电路图,通过MAX856把干电池的1.5V电压转化为供系统使用的3V电压。整个电路中比较重要的是二极管1N5817,总的说来,按照图4.2连接之后,在输入端加上1.5V电压,就可以在输出端上得到需要的电压,相当方便。图4.2 MAX856外围电路控制器部分:控制器是整个系统的核心部分,其电路图如图4.3所示。需要注意的是,由于在系统中有MP3和USB传输等相对来说是高频的信号,为了避免噪声对系统的影响,尤其是对音频输出信号的影响,所以在AT89C51SND1C的正负电源之间需要加上一个RC滤波电路以消除电路中的噪声,而且对于AVDD和UVDD两个模拟电

20、压和数字电源而言,两者需要在数字地和模拟地处单点通过一个磁珠相连接,以避免数字电源和模拟电源之间的影响,在系统中A3V是模拟电源,3V是数字电源。图4.3 控制芯片AT89C51SND1C 音频部分:音频部分是整个系统中最为重要的一个部分,在把数字信号转化为模拟信号的过程中,容易产生噪声,这个关系到MP3播放器的声音效果的好坏。本系统选择的是CS4330芯片,其外围电路连接如图4.4所示。CS4330能够兼容48kHz、44.1kHz和32kHz的音流频。声音数据通过串行输入引脚SDATA输入。左右输入时钟LRCK决定了左右声道,而在串行输入时钟SCLK的驱动下数据被送入CS4330的数据缓存

21、中,而主时钟决定了数据滤波器的使用。图4.4 CS4330的外围电路(a)图4.4 CS4330的外围电路(b) 1、主时钟Master Clock(MCLK)主时钟MCLK必须是采样时钟的256、384或者512倍,采样时钟和LRCK的频率相等,而MCLK对LRCK的频率可以自动的检测和初始化。CS4330内部的分频器在初始化的时候自动把时钟信号转化为需要的时钟信号。2、串行时钟Serial Clock(SCLK)串行时钟驱动了数据的输入,CS4330支持内部和外部的串行时钟模式。3、初始化和掉电模式CS4330进入掉电模式决定于初始化上电。内部分类滤波器和delta-sigma调制器重置,

22、内部的电压参考,一位数字-模拟转化器选择电容低通滤波器并且掉电。一直到MCLK和LRCK提供,CS4330都会保持在掉电模式。当检测到MCLK和LRCK后,MCLK将计算一个LRCK时钟周期来决定MCLK/LRCK的频率。随即根据供给内部的电压参考,决定是5V或者3V电压模式。最后,电压提供给D/A转化器和选择电容滤波器,模拟输入也会变化为大约2.3V(1.3V在3V模式下)。这个过程需要大约1ms,1024个LRCK时钟周期。在一个LRCK时钟周期下,如果MCLK或者CRCK都没有,CS4330进入掉电模式。当MCLK和LRCK恢复后初始化顺序马上进行。如果MCLK/LRCK频率或者电压在掉

23、电模式下发生了改变,CS4330将进行相应的改变。在有时钟输入的时候,CS4330最好不要进行上电操作。4、供电模式CS4330名义上的供电可以是5V或者3V。“SMART类似电路”在进入初始化的时候或者跳出掉点模式的时候将自动的选择电压。当VA+引脚上输入电压为4.755.5V时候,输出电压是3.7V;当VA+引脚上输入电压为2.74.0V时,输出电压为1.85V。在4.04.75V的时候,输出电压将是3.7V,但是这种情况必须要尽量避免,因为这种情况将带来极大的功耗损失。同样的,CS4330也需要加上滤波电路,而且这个电路离CS4330越近越好。CS4330的模拟滤波器是一个开关电容滤波器

24、,而且该滤波器的频率决定于时钟频率以及采样频率。(1)人机接口部分人机接口部分主要是提供一个人和系统进行信息交换的接口,包括键盘输入、LED显示以及串行接口3个部分。键盘输入提供给用户选择功能的能力、LED显示系统现在的工作状态,如前面章节中提到,串行接口可以方便开发过程中的调试,通过串行调试助手等工具,把系统运行情况反馈到PC机的屏幕。键盘输入、数码管、拨码以及LED的显示电路图如图4.5,图4.6和图4.7。以下给出各个人机接口的功能定义。图4.5 键盘输入电路 图4.6 数码管显示电路 图4.7 LED显示和拨码开关拨码开关1(供电选择):用于控制由USB接口还是由干电池给系统供电,当拨

25、码位于左边时候,由USB接口供电,USB电缆给系统提供5V电压,电压通过AS1117转化为3V供给芯片;当拨码位于右边的时候,由7号干电池通过MAX856升压后给芯片供电,串口不可用。(这个控制开关的设置是为了方便调试,否则可以把这个控制开关和拨码开关合二为一)。拨码开关2(系统功能选择):用于控制系统是执行U盘功能还是MP3功能,这两者的初始化状态不同。当拨码位于左边时,执行U盘功能,系统上电之后处于U盘初始化状态;当拨码位于右边时候,执行MP3功能,系统上电之后处于MP3初始化状态。拨码开关3(系统上电):由于开始给系统供电,当拨码位于左边时候,系统上电,控制器根据系统能够选择的不同位于不

26、同的初始化状态,对应的指示灯2/3亮/灭;当拨码位于右边时候,系统断电,关闭。拨码开关4(ISP选择):当拨码位于左边时候,AT89C51SND1的ISP引脚为低电平,允许进行ISP编程,否则接到高电平,不允许进行ISP编程。指示灯1(供电指示灯1):当53V供电正常时,供电指示灯1亮。指示灯2(供电指示灯2):当1.53V供电正常时候,供电指示灯2亮。指示灯3(U盘指示灯):当执行U盘功能时,无数据传输时灯亮,有数据传输时闪烁。指示灯4(MP3指示灯):当执行MP3功能时候,等待播放的时候该灯亮,播放时候该灯闪烁。按键1(系统复位键):按该铵钮几秒钟,整个系统回到系统上电时候的状态。按键2(

27、MP3歌曲选择键):每按一次,歌曲序号自动向上加1,马上从该首进行播放,当到最后一首时候从第一首开始计数。按键3(MP3声音控制键):每按一次,声音级别自动向上加1,当达到31级时候从0级开始重新播放。按键4(MP3开始键):当处于MP3系统初始化状态时候,按一下开始播放歌曲,指示灯3开始闪烁;如果没有歌曲可供播放,则没有作用。数码管:在U盘模式下显示U字样;在MP3模式下显示现在播放的是第几首歌曲。U盘初始化状态:上电后,当系统功能拨码开关位于左边时,数码管显示U字,等待和PC进行数据变换。MP3初始化状态:上电后,当系统功能拨码开关位于右边时,数码管显示整个MP3存储器中一共有几首歌曲可供

28、播放,声音级别位于第10级。(2)Flash存储芯片MP3系统仍然选择了前面USB实验系统中使用的Flash芯片K9F2808U0A,Flash芯片的电路,如图4.8所示。图4.8 Flash芯片电路图4.2.2 软件系统设计1、软件模块分析MP3播放系统中的软件设计按照模块可以划分为以下几个部分:Flash存储模块、USB通信驱动模块、MP3解码控制模块、音频解码接口模块。2 、Flash存储部分对Flash的读/写操作的相关知识在本小节中仅仅对FAT文件系统进行详细地介绍。一个FAT(FAT12/FAT16/FAT32)文件系统卷(卷可以理解为是一张软盘、一个硬盘或是一个Flash电子盘)

29、由4个部分组成:保留区(reserved region),FAT区,根目录区(root directory region)和文件和目录数据区。FAT分配空间的时候,是按簇来分配的,但是其给出的地址却是LBA(Logical Block Address),即它只给出一个扇区号,比如对此Flash而言,若给出LBA为0x40,代表簇1的扇区1。因此需要将Logical Block Address转换为物理地址,这样,才可以对数据进行存取操作。根据我们定义的结构,转换公式为:Flash的Block=Logical Block Address/0x20Flash的Page=Logical Block

30、Address/0x20因此簇和扇区的概念只是在BPB中给出存储介质信息的时候告之系统就可以了,我们只要做好LBA与物理地址间的转换即可。由于作为U盘的Flash不要求启动,因此可以没有MBR区,只包含DBR、FAT、DIR和DATA4个区。当Host发出READ命令后,Flash读/写操作即告开始,Host首先读取MBR,得到有关存储介质的信息,诸如扇区长度、每簇扇区数以及总扇区数等内容,以便知道此盘有多大。如果读取正确,会接着读取文件分配表,借以在PC机上的可移动盘符中显示文件目录,并可以复制、删除或是创建文件。系统自动将这些命令都转换成READ或WRITE两种命令,通过USB的READ或

31、WRITE命令块描述符来从Flash中相应扇区读取数据,或是将特定长度的数据写入Flash相应簇中。3 、MP3解码部分AT89C51SND1C提供一个MPEG I/II的解码器,而不仅仅是一个MP3解码器。MPEG I标准仅仅支持48Hz、44.1Hz以及32Hz的采样频率。在这些层中,第三层压缩率能够在保持CD音质的前提下达到以12:1的压缩比率。举一个例子,3分钟的CD音频(16位PCM编码,44.1Hz)数据需要的存储容量大概是32MB,而对应的压缩MPEG I第三层压缩率的数据仅仅需要2.7M的空间。在MPEG II中提供了另外三种采样频率24kHz、22.05kHz以及15kHz。

32、AT89C51SND1C能够实时解码MPEG I第三层音频流到PCM音频流,同时也支持MEPG II中提出的附加频率。AT89C51SND1C同时还提供类似于声音控制、重音控制等附加功能。MSC-51核和MP3的解码器接口是通过11个特殊功能寄存器来实现的。这11个寄存器如下:(1)MP3控制寄存器MP3CON(the MP3 Control register)。(2)MP3解码状态寄存器MP3STA(MP3 Decoder Status Register)。(3)MP3数据寄存器MP3DAT(MP3 Data Register)。(4)MP3状态寄存器1 MP3STA1(MP3 State

33、Resigter1)。(5)MP3附加数据寄存器MP3ANC(MP3 Ancillary Data Register)。(6)MP3左声道控制寄存器MP3VOL(MP3 Volume Left Control Register)。(7)MP3右声道控制寄存器MP3VOR(MP3 Volume Right Control Register)。(8)MP3重音控制寄存器MP3BAS(MP3 Volume Bass Control Register)。(9)MP3中音控制寄存器MP3MED(MP3 Volume Medium Control Register)。(10)MP3高音控制寄存器MP3TR

34、E(MP3 Volume Treble Control Register)。(11)MP3时钟寄存器MP3CLK(MP3 Clock Divider Register)。MP3解码器要在一个完整的数据帧到达输入缓存中之后才开始解码操作。为了管理MP3数据帧在缓存中的负担,使用一个硬件的握手协议来管理数据的需求和确认。每当MP3解码器需要MP3数据时候,其设置MP3STA和MP3STA1寄存器中相应的MPREQ、MPFREQ和MPBREQ标志位。MP3的解码时钟由锁相环的时钟分频率产生,这个分频参数可以由MP3CLK寄存器重的MPCD4:0位决定,而解码时钟由MP3的数据帧所决定。当对MP3数据

35、帧头进行解码之后就可以得到MP3的版本号,在MPEG I中,最小的MP3时钟为21MHz,而在MPEG II中为10.5MHz。MP3解码器提供了对左右声道的控制,MP3VOR和MP3VOL寄存器提供了一个32级别的音量控制。该解码器也可以调节声音的高音(3300kHz以上)、中音(7503300kHz)、低音(低于750kHz),同样有32级别调节。在AT89C51SND1C中断之后,根据中断的不同,硬件将进入中断并且把对应的数据位置位,在程序编写过程中可以从不同的中断入口进入相应的中断服务子程序,图4.9是对应的MP3解码器服务流程,整个MP3解码程序的书写可以参照这个流程。 读MP3ST

36、A寄存器数据要求?MPFREQ=1?附加数据?MPANC=1?同步错误?ERRSYN=1?层错误?ERRLAY=1?CRC错误处理再次读入MP3帧数据要求处理写数据到MP3DAT附加数据处理写入附加数据同步错误处理重写数据到MP3DAT层错误处理YNNYNYNY图4.9 MP3解码流程4.3 MP3播放器的主要程序代码分析以下将要介绍关于MP3解码部分的部分代码。4.3.1 MP3解码部分MP3解码部分中有以下函数:MP3_Reg_Init(),MP3寄存器初始化函数,对MP3的各个寄存器进行初始化,主要是MP3CON寄存器中间的中断控制位的设置。MP3_Data_Input(),把数据送入到

37、MP3解码缓存中去,需要送入1024字节,当缓存中需要数据的时候,位于MP3STA寄存器中的MPREQ被置位,在对MP3STA进行读操作之后被清除。如果缓存没有满,那么MPFREQ位一直被置位,并且MPBREQ位也被置位,不同的是当缓存被装满时候MPFREQ才复位,而MPBREQ是每次写入一字节数据之后就会复位一次。本函数通过查询MPREQ、MPFREQ和MPBREQ的状态来决定是否给缓存中送入数据。MP3_Error_Del(),这是一个错误处理函数,当出现层错误、同步错误和CRC校验错误中任意一种的时候,这个时候需要重新往缓存中装载数据。MP3_Clk_Contr(),这是MP3解码器的时

38、钟控制函数,根据MPVER和MPFS1:0的获取MPEG的标准类型和采样率,然后根据标准类型和采样率对解码是时钟进行设置。MP3_Audio_Contr(),根据人机接口提供的相应数据对MP3解码器中的音量、声道和音效进行控制。MP3_AncData_Contr(),对MP3文件中的附加数据进行处理,在本系统中无处理。MP3_Int_Del(),这是中断处理函数,在进入处理过程后再根据相应位的状态来判断引起中断的原因,进行相应的处理。部分解码程序见附录B。4.3.2 音频控制部分在音频处理部分中有以下函数:Audio_Reg_ Init():这是MP3音频部分的初始化函数,用于初始化音频控制器

39、的寄存器控制信号;Audio_ Clk_Set():用于设置音频部分的时钟信号,在下面的例子中假设外部提供的PLL时钟是24M;Audio_ Data_ Input():根据外部的启动信号来控制对数据的获取和音频信号的输出。提示:AT89C51SND1C音频部分的数据可以来源于C51核和MP3解码部分,本小节仅仅给出了对MP3部分的控制。 图4.10给出了音频系统工作流程图,程序的编写可以参照这个流程MP3模式配置编程音频时钟配置接口HLR=XDSIZ=XPOL=X SRC=0JUST4:0= XXXXXb启动DAC时钟AUDEN=1等待DAC设置等待数据DRQEN=1图4.10 音频配置流程

40、 结 论由于MP3的普及,MP3受到越来越多的重视。同时由于MP3技术的复杂性,使得MP3播放器的实现更加困难,更具挑战性。本文讨论便携式MP3播放器的结构、多种存储器类型、各种通信接口及其扩展功能。通过对各类便携式MP3播放器的方案进行了总结和分析,以基于AT89C51SND1芯片的MP3播放器为例,实现一个MP3播放器的功能。本文主要成果和结论如下:以MP3播放器的原理及其系统构成为基础,对各种便携式MP3播放器的方案进行了总结和分析,包括:1、分离芯片的MP3播放器方案、基于集成MP3功能单片机的MP3播放器方案、基于定制ASIC电路的MP3播放器方案及以FPGA实现MP3播放器的方案。

41、然后介绍MP3播放器的软件解决方案。2、以基于AT89C51SND1芯片的MP3播放器为例,实现一个MP3播放器的功能。整个系统由AT89C51SND1C(MCU)、K9F2808U0A(Flash芯片),电源部分、音频部分、串行通信部分和人机接口部分组成并给出了解码和音频控制部分的参考程序。由于本人能力和时间的限制,我只是对MP3播放器的硬件方面做了一些初步的研究。其中不足之出希望各位老师谅解。我以后还要在MP3播放器方面进行进一步的研究。致 谢经过三个多月的努力,我终于顺利地完成了毕业设计。在我论文写作期间的工作自始自终都是在指导老师张庆思全面、具体地指导下进行的,大到文章的选题谋篇、布局

42、结构,小到文章的词语搭配、标点符号。张庆思老师多次以民主的方式引导学生以自己的视角发现问题、分析问题、解决问题,使自己体会到毕业论文不仅是对大学所学知识的再学习、再检验、再提高的过程,更是一次将所学运用到实践将其升华的过程。导师在学术上孜孜不倦、严谨求实,在我的学习过程中,这种精神时刻影响和激励着我。老师渊博的学识、敏锐的思维、民主而严谨的作风使学生受益匪浅,并终身难忘。在此表示衷心的感谢!导师给予我的不仅仅有知识上、学术上的帮助,更有方法上、思想上的,这些将使我受益终生。再一次感谢我的导师张庆思老师!同时非常感谢在完成毕业设计期间给予我各方面支持与帮助的其他老师。非常感谢我的学友和朋友们的支

43、持与鼓励!参考文献1 李军51系列单片机高级开发指南M北京:北京航空航天大学出版社,2004,287-3042 杨心怀,周洁便携MP3播放器的设计J电子技术的应用,2003(2):55-57.3 李华主编MCS-51系列单片机实用接口技术M北京:北京航空航天大学出版社,1996,103-1124 尹罗生,吉吟东,孙新亚,朱善尹一种USB外设的实现方法J工程计算机2002,22-265 谭浩强C程序设计M北京:清华大学出版社,2000,9-116 罗亚菲凌阳十六位单片机应用基础M北京:北京航空航天大学出版社,2003,98-1027 刘守义等单片机技术基础M西安:西安电子科技大学出版社,2007

44、,121-1258 陈堂敏,刘焕平主编单片机原理与应用M.北京:北京理工大学出版社,2007,178-1809 李广弟等单片机基础M. 北京:北京航空航天出版社,2001,87-90附录A 附录B 解码程序头文件#define unit nusingned int#define uchar unsingned char#define MP3_ON 1 #define MP3_OFF 0Bit MP3 _SwitchUchar Key_VolUchar Key_BasUchar Key_MedUchar Key_Tre/以上为键盘读入的声音控制参数/MP3COM寄存器内部位定义sbit MPEN

45、=MP3CON7sbit MPBBST= MP3CON6sbit CRCET=MP3CON5待添加的隐藏文字内容1sbit MSKANC=MP3CON4sbit MSKREQ=MP3CON3sbit MSKLAY=MP3CON2sbit MSKSYN=MP3CON1sbit MSKCRC=MP3CON0/MP2STA1寄存器内部位定义sbit MPFREQ=MP3STA14sbit MPFREQ=MP3STA13Mp3_Reg_Init(); Mp3_Data_Input();Mp3_Error_Del()Mp3_Clk_Set()Mp3_Audio_Contr()Mp3_AncData_De

46、l()void Mp3_Int_Del()解码程序#include#includeMp3_Reg_Init()If(MP3_Switch= = MP3_ON) MP3CON=0xBF;else MP3CON=px3F; MP3_Data_Input()If (MPFREQ= =1 )&(MPBREQ= =1)= =1) MP3DAT= MP3_Data; MP3_Error_Del()If(ERRLAY= =1)/提示If(ERRCRC= =1)/ go on/以上两部分对应的错误提示用户可以自行根据系统进行设置If(ERRSYN= =1)MP3_Data_Input();MP3_Clk_Set()If(MPVER= =1)MP3CLK=0ElseMP3CLK=1;MP3_Audio_Contr() MP3VOL = Key_Vol;MP3VOLR=

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

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号