ISP1362的U盘MP3播放器设计_第1页
ISP1362的U盘MP3播放器设计_第2页
ISP1362的U盘MP3播放器设计_第3页
ISP1362的U盘MP3播放器设计_第4页
ISP1362的U盘MP3播放器设计_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、【Word版本下载可任意编辑】 ISP1362的U盘MP3播放器设计本文使用AT89C51SND1作为主控制器和MP3解码器,ISP1362作为USB主机,将U盘中的MP3文件读取出来并开展播放,实现了MP3播放器中解码单元与存储单元的分离。 主要芯片简介 AT89C51SND1是ATMEL推出的基于8位C51MCU内核的MP3解码器芯片。它内置MP3硬件解码器,支持48kHz、44.1kHz、32kHz、24kHz、22.05kHz及16kHz采样频率,具有重低音、中音、高音均衡控制和重低环绕声效果。它可以适应市场上不同DAC的可编程音频输出接口,兼容PCM和I2S格式。内置2304BRAM

2、和64KBFlash程序空间,方便用户增加复杂的功能。并通过内置锁相环提供MP3和音频时钟以及USB时钟。 要想读取U盘,USB主机控制器必不可少。为了将来进一步升级系统,本文选用了功能强大的USBOTG芯片ISP1362。ISP1362在单芯片上集成了OTG控制器、主机控制器和外设控制器。ISP1362的OTG控制器完全兼容USB2.0以及On-The-GoSupplement1.0协议,主机和设备控制器兼容USB2.0协议,并支持12Mbps的全速传输和1.5Mbps的低速传输。 530)this.width=530 border=0 图1系统框架图 系统硬件构造 整个系统的搭建围绕AT8

3、9C51SND1开展,如图1所示。由于其内部具有硬件解码器,因此电路构成并不复杂。首先由单片机控制ISP1362,将U盘中的MP3文件读取出来,送到硬件解码器开展解码。解码之后由数字音频接口将数字信号传送至音频DACCS4330,转换之后产生音频信号。由于DAC输出的信号功率有限,在后端又参加了运算放大器,经过放大之后的信号就可以直接输出给音箱或耳机等设备了。 AT89C51SND1是基于51内核的单片机,因此,系统构造非常简单。除了传统单片机的晶振和复位电路之外,还有PLL滤波电路和USB接口电路,如图2所示。 530)this.width=530 border=0 图2PLL滤波电路及US

4、B接口电路 ISP1362是16位总线构造,不能直接和8位单片机接口。因此,将单片机的P0和P2口一同作为数据总线接至ISP1362的16位总线上,将、分别接到单片机的P3.4、P3.7和P3.6,通过仿真读写时序控制它的数据读取等操作。 除了这些基本的总线连接,ISP1362还需要连接一些特殊的控制引脚: A0:用于决定控制器处于命令状态还是数据状态:0表示数据状态,1表示命令状态; A1:用于决定控制器工作于主机还是设备控制模式:0表示处于主机控制(HC)模式;1表示处于设备控制(DC)模式。 接至MCU的P1.5。P1.50时表示处于OTG工作状态,P1.51则表示处于非OTG状态。 I

5、NT1_USB、INT2_USB分别接至MCU的INT0和INT1引脚,用以产生中断。 ISP1362有两个USB端口,分别是OTG端口和主机端口。因为OTG端口包含了主机功能,所以系统中使用OTG端口来连接U盘。根据USB2.0协议,USB主机需要2个15k降TG端口同时又可作为设备端口使用,而设备是没有下拉电阻的。因此ISP1362提供了“软连接”机制,通过内部的存放器来控制电阻的连接与否。所以在硬件设计时并不需要在外部加下拉电阻。而为开漏输出,因此参加了一个10kW的上拉电阻R14_USB。如图3所示。 530)this.width=530 border=0 图3OTG端口电路图 AT8

6、9C51SND1C及ISP1362的初始化 在开始播放MP3文件之前,需要一系列初始化操作。这些操作是通过设置AT89C51SND1C及ISP1362内部的相关存放器来完成的。 AT89C51SND1C的初始化 为了正常播放MP3文件,首先要对主控制器AT89C51SND1C开展以下几方面的设置。 锁相环初始化 MP3解码器和音频输出接口使用的都是内部锁相环提供的时钟。锁相环的初始化是通过设置PLLCON、PLLNDIV和PLLNDIV来完成的。其输出频率的计算公式为:PLLclk=OSCclk(R+1)/(N+1)。 MP3解码器初始化 MP3解码器的初始化需要对MP3CON和MP3CLK开

7、展设置。MP3解码器分缺少数据中断和校验中断两类中断,在MP3CON中可以对其开展设置。简单处理可以采用查询标志位方式,防止使用中断。MP3解码器对时钟有一定的要求,MPEGI格式的MP3数据要求时钟为21MHz,MPEGII格式为10.5MHz。该时钟计算公式为:MP3clkPLLclk/(MPSD4:01)。 音频输出接口初始化 得到两个声道串行数据前需先对音频输出接口的AUDCON0和AUDCON1中的相关部分开展正确的设置。配合DAC芯片CS4330,其设置如下:输出32位数据格式(DSIZ1),声道选择信号中的高电平为左声道(POL1),选择256Fs的数据速率(HLR0),选择MP

8、3解码器的输出为数据源(SRC0),18位数据右对齐(JUST4:014)。为了听到正常的声音,还需根据MP3的采样率设置MP3CLK来得到正确的音频输出接口的时钟,该时钟的计算公式为:AUDclkPLLclk/(AUCD4:01)。 按键初始化 要实现播放MP3的人机交互功能,就需要键盘的支持,AT89C51SND1C专门提供了4个中断的按键接口,当这些中断被使能后就可以简单地通过读取KBSTA得到按键的状态。按键初始化的时候只需要在KBCON开启相应接口的中断,再开启总中断的EA即可。 ISP1362的设置 为了能正确地从U盘中读取MP3文件,首先要对USB控制芯片ISP1362开展以下几

9、方面的设置。 数据缓冲区的划分 ISP1362内部有4KB的数据缓冲区,可划分为4部分以供USB的四种传输方式使用。其中同步传输为双缓冲,占用ISTL0和ISTL1,一般二者大小是一样的。中断传输占用INTL。控制传输和块传输共用ATL。分别通过HcISTLBufferSize、HcINTLBufferSize和HcATLBufferSize来设置ISTL、INTL和ATL的大小。 中断的设定 这里的中断并不是指USB中的中断传输,而是传统意义上的硬件中断。如果不使用中断,则应该将其关闭,具体操作为将HcuPInterruptEnable置0,而HcInterruptDisable中所有位都置

10、1。 ATL缓冲的设定 控制传输是任何USB设备都有的数据传输类型,而在ISP1362中,它占用的是ATL缓冲区,因此对ATL缓冲的设定是必不可少的。具体的操作是设置以下几个存放器:HcATLPTDSkipMap、HcATLLastPTD、HcATLBlkSize、HcATLPTDDoneThresholdCount和HcATLPTDDoneThresholdTimeOut。 其它相关存放器 ISP1362还有一些关于硬件的设置,比方端口设定以及过流保护等。除此之外,还需要确定一个帧所发送的数据量等信息,这些操作通过设定HcHardwareConfiguration和HcFmInterval两

11、个存放器完成。 读取U盘 U盘在使用USB传输时使用的是块传输方式,操作相比照较复杂。除了基本的USB协议之外,还需要实现许多其它相关协议,比方MassStorage、Bulk-Only、SCSI2、UFI等。但对USB接口芯片ISP1362而言,需要完成的仅是按照协议规定开展数据的传送。 相关描述符和设置 U盘一般使用MassStorage协议开展通信。然而在使用MassStorage协议通信之前,应首先关注传输协议和U盘的端点描述符。 MassStorage中的传输协议常用Bulk_Only,然而在这种传输方式下又可分多种指令集,而U盘常用SCSI指令集。Bulk_Only的传输方式在通信

12、时应首先读取端点描述符来获取Bulk_In和Bulk_Out这两个端点号,之后才能开展USB的正常通信。 FAT文件系统 由于现在U盘的容量普遍较大,对U盘的操作往往都是按块来开展的,其大小一般均为512B。但实际U盘上的数据是以文件系统的方式来存储的,目前U盘常用的文件系统有FAT16和FAT32。而这两种文件系统在很多内容方面都是相同的,因此,在实际访问中可以对其简单的区分,然后分别开展不同的操作,就能实现对不同文件系统的U盘开展访问,提高通用性。 播放MP3文件 播放一个MP3文件需要经过以下几个环节:解析U盘的文件系统,获取MP3文件的信息,从U盘中读取指定的MP3文件,将文件中的数据

13、送至AT89C51SND1C内嵌的MP3解码器,解码后的数据经音频输出接口调整格式后输出两个声道的串行数据,再经过DAC芯片CS4330将数字信号转换为模拟信号,经集成运放MC33202将信号放大输出。 初始化相关芯片 对主控器AT89C51SND1C和USB接口芯片ISP1362的初始化是至关重要的,除了上述一些需要初始化设置的地方,还应注意单片机和ISP1362复位要同步。另外还应对MP3解码器音量控制的相关存放器开展初始化,默认情况下它们都是0,即处于静音状态。 获取MP3文件中的数据 从U盘中获取MP3文件是一个相对烦琐的过程,首先应能按照USB的相关协议读取U盘上指定块的数据,之后还

14、要根据得到的数据解析文件系统,从而得到指定MP3文件的起始块地址,然后通过查FAT表的方法得到后继的数据。并且还应将得到的数据存储在AT89C51SND1C内部开设的数据缓存中,等待MP3解码器缺少数据时使用。由于MP3解码器内部的数据缓存较小,因而就要求获取MP3文件数据的时间要尽可能的少,这就需要该部分的代码要尽量精简。 MP3解码器解码 启动MP3解码器之前应先对读取来的MP3数据的帧头开展解析,根据解析得到的采样率设置音频输出接口的时钟。从U盘中读取的数据也应先暂存在AT89C51SND1C内部开设的数据缓存中,开始播放之前需要先通过MP3DAT向MP3解码器的数据缓存中送满1KB的数

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论