电子工程师的网站
首 页 |  新闻资讯 | 最新产品 | 解决方案 | 技术参数
设计应用
电路图 | 技术资料 | 芯片资料 | 技术论坛
  现在位置: 首页 > 设计应用 > 嵌入式系统/ARM技术 > 详细信息
嵌入式系统/ARM技术:基于ISP1362的U盘MP3播放器设计
来源:   时间: 2007-4-15 21:16:54    
     摘  要:本文使用AT89C51SND1作为主控制器和MP3解码器,ISP1362作为USB主机,将U盘中的MP3文件读取出来并进行播放,实现了MP3播放器中解码单元与存储单元的分离。
  
      关键词:AT89C51SND1C;ISP1362;U盘;MP3播放器

      播放器与存储器的一体化设计对MP3播放器的便携性起了关键性的作用,但与此同时,它又带来了很多新的问题。比如存储容量固定,如果想装下更多的歌曲只能去购买新的产品,造成了巨大的浪费。另一方面,一体化又限制了MP3播放器在其它领域的应用,比如汽车电子等。于是,将存储器与播放器分离,成为MP3的另一发展方向,也是开发这款U盘MP3播放器的意义所在。

      主要芯片简介

      AT89C51SND1是ATMEL推出的基于8位C51 MCU内核的MP3解码器芯片。它内置MP3硬件解码器,支持48kHz、44.1kHz、32kHz、24kHz、22.05kHz及16kHz采样频率,具有重低音、中音、高音均衡控制和重低环绕声效果。它可以适应市场上不同DAC的可编程音频输出接口,兼容PCM和I2S格式。内置2304B RAM和64KB Flash程序空间,方便用户增加复杂的功能。并通过内置锁相环提供MP3和音频时钟以及USB时钟。

      要想读取U盘,USB主机控制器必不可少。为了将来进一步升级系统,本文选用了功能强大的USB-OTG芯片ISP1362。ISP1362在单芯片上集成了OTG控制器、高级主机控制器和外设控制器。ISP1362的OTG控制器完全兼容USB2.0以及On-The-Go Supplement 1. 0协议,主机和设备控制器兼容USB 2. 0协议,并支持12Mbps的全速传输和1.5Mbps的低速传输。

按此在新窗口浏览图片


图1  系统框架图

      系统硬件结构

      整个系统的搭建围绕AT89C51SND1进行,如图1所示。由于其内部具有硬件解码器,因此电路构成并不复杂。首先由单片机控制ISP1362,将U盘中的MP3文件读取出来,送到硬件解码器进行解码。解码之后由数字音频接口将数字信号传送至音频DAC CS4330,转换之后产生音频信号。由于DAC输出的信号功率有限,在后端又加入了运算放大器,经过放大之后的信号就可以直接输出给音箱或耳机等设备了。

      AT89C51SND1是基于51内核的单片机,因此,最小系统结构非常简单。除了传统单片机的晶振和复位电路之外,还有PLL滤波电路和USB接口电路,如图2所示。


按此在新窗口浏览图片

图2  PLL滤波电路及USB接口电路

      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.5=0时表示处于OTG工作状态,P1.5=1则表示处于非OTG状态。

      INT1_USB、INT2_USB分别接至MCU的INT0和INT1引脚,用以产生中断。

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


按此在新窗口浏览图片

图3  OTG端口电路图

      AT89C51SND1C及ISP1362的初始化

      在开始播放MP3文件之前,需要一系列初始化操作。这些操作是通过设置AT89C51SND1C及ISP1362内部的相关寄存器来完成的。

      AT89C51SND1C的初始化

      为了正常播放MP3文件,首先要对主控制器AT89C51SND1C进行以下几方面的设置。

      锁相环初始化

      MP3解码器和音频输出接口使用的都是内部锁相环提供的时钟。锁相环的初始化是通过设置PLLCON、PLLNDIV和PLLNDIV来完成的。其输出频率的计算公式为:PLLclk=OSCclk×(R+1)/(N+1)。

      MP3解码器初始化

      MP3解码器的初始化需要对MP3CON和MP3CLK进行设置。MP3解码器分缺少数据中断和校验中断两类中断,在MP3CON中可以对其进行设置。简单处理可以采用查询标志位方式,避免使用中断。MP3解码器对时钟有一定的要求,MPEG I格式的MP3数据要求最低时钟为21MHz,MPEG II格式为10.5MHz。该时钟计算公式为:MP3clk=PLLclk/(MPSD4:0+1)。

      音频输出接口初始化

      得到两个声道串行数据前需先对音频输出接口的AUDCON0和AUDCON1中的相关部分进行正确的设置。配合DAC芯片CS4330,其设置如下:输出32位数据格式(DSIZ=1),声道选择信号中的高电平为左声道(POL=1),选择256·Fs的数据速率(HLR=0),选择MP3解码器的输出为数据源(SRC=0),18位数据右对齐(JUST4:0=14)。为了听到正常的声音,还需根据MP3的采样率设置MP3CLK来得到正确的音频输出接口的时钟,该时钟的计算公式为:AUDclk=PLLclk/(AUCD4:0+1)。

      按键初始化

      要实现播放MP3的人机交互功能,就需要键盘的支持,AT89C51SND1C专门提供了4个中断的按键接口,当这些中断被使能后就可以简单地通过读取KBSTA得到按键的状态。按键初始化的时候只需要在KBCON开启相应接口的中断,再开启总中断的EA即可。

      ISP1362的设置

      为了能正确地从U盘中读取MP3文件,首先要对USB控制芯片ISP1362进行以下几方面的设置。

      数据缓冲区的划分

      ISP1362内部有4KB的数据缓冲区,可划分为4部分以供USB的四种传输方式使用。其中同步传输为双缓冲,占用ISTL0和ISTL1,一般二者大小是一样的。中断传输占用INTL。控制传输和块传输共用ATL。分别通过HcISTLBufferSize 、HcINTLBufferSize和HcATLBufferSize 来设置ISTL、INTL和ATL的大小。

      中断的设定

      这里的中断并不是指USB中的中断传输,而是传统意义上的硬件中断。如果不使用中断,则应该将其关闭,具体操作为将HcuPInterruptEnable置0,而 HcInterruptDisable中所有位都置1。

      ATL 缓冲的设定

      控制传输是任何USB设备都有的数据传输类型,而在ISP1362中,它占用的是ATL缓冲区,因此对ATL 缓冲的设定是必不可少的。具体的操作是设置以下几个寄存器:HcATLPTDSkipMap、HcATLLastPTD、HcATLBlkSize、HcATLPTDDoneThresholdCount和HcATLPTDDoneThresholdTimeOut。

      其它相关寄存器

      ISP1362还有一些关于硬件的设置,比如端口设定以及过流保护等。除此之外,还需要确定一个帧所发送的最大数据量等信息,这些操作通过设定HcHardwareConfiguration和HcFmInterval两个寄存器完成。

      读取U盘

      U盘在使用USB传输时使用的是块传输方式,操作相对比较复杂。除了最基本的USB协议之外,还需要实现许多其它相关协议,比如Mass Storage、Bulk-Only、SCSI-2、UFI等。但对USB接口芯片ISP1362而言,需要完成的仅是按照协议规定进行数据的传送。

      相关描述符和设置

      U盘一般使用Mass Storage协议进行通信。然而在使用Mass Storage协议通信之前,应首先关注传输协议和U盘的端点描述符。

      Mass Storage中的传输协议常用Bulk_Only,然而在这种传输方式下又可分多种指令集,而U盘常用SCSI指令集。 Bulk_Only的传输方式在通信时应首先读取端点描述符来获取Bulk_In和Bulk_Out这两个端点号,之后才能进行USB的正常通信。

      FAT文件系统

      由于现在U盘的容量普遍较大,对U盘的操作往往都是按块来进行的,其大小一般均为512B。但实际U盘上的数据是以文件系统的方式来存储的,目前U盘常用的文件系统有FAT16和FAT32。而这两种文件系统在很多内容方面都是相同的,因此,在实际访问中可以对其简单的区分,然后分别进行不同的操作,就能实现对不同文件系统的U盘进行访问,提高通用性。

      播放MP3文件

      播放一个MP3文件需要经过以下几个环节:解析U盘的文件系统,获取MP3文件的信息,从U盘中读取指定的MP3文件,将文件中的数据送至AT89C51SND1C内嵌的MP3解码器,解码后的数据经音频输出接口调整格式后输出两个声道的串行数据,再经过DAC芯片CS4330将数字信号转换为模拟信号,最后经集成运放MC33202将信号放大输出。

      初始化相关芯片

      对主控器AT89C51SND1C和USB接口芯片ISP1362的初始化是至关重要的,除了上述一些需要初始化设置的地方,还应注意单片机和ISP1362复位要同步。另外还应对MP3解码器音量控制的相关寄存器进行初始化,默认情况下它们都是0,即处于静音状态。

      获取MP3文件中的数据

      从U盘中获取MP3文件是一个相对烦琐的过程,首先应能按照USB的相关协议读取U盘上指定块的数据,之后还要根据得到的数据解析文件系统,从而得到指定MP3文件的起始块地址,然后通过查FAT表的方法得到后继的数据。并且还应将得到的数据存储在AT89C51SND1C内部开设的数据缓存中,等待MP3解码器缺少数据时使用。由于MP3解码器内部的数据缓存较小,因而就要求获取MP3文件数据的时间要尽可能的少,这就需要该部分的代码要尽量精简。

      MP3解码器解码

      启动MP3解码器之前应先对读取来的MP3数据的帧头进行解析,根据解析得到的采样率设置音频输出接口的时钟。从U盘中读取的数据也应先暂存在AT89C51SND1C内部开设的数据缓存中,开始播放之前需要先通过MP3DAT向MP3解码器的数据缓存中送满1KB的数据,之后待MP3解码器出现缺少数据的状态(MP3STA1寄存器中的MPFREQ=1),再将AT89C51SND1C内部数据缓存中的数据写入MP3解码器中。当数据缓存中的数据全部用完后,就应立即再次读取U盘,如此往复直到整个MP3文件都播放完毕为止。
  
      结语

      本系统很好地实现了对U盘的识别和读取,突破了传统MP3播放器中解码器与存储器一体化的限制,只需使用更大容量的U盘就可以在原有硬件基础上增加存储容量,在音响和汽车电子方面具有良好的应用前景。

相关信息
发表评论
打印本页 关闭本页
ST推出低功耗双核USB2.0闪存驱动控制器
    意法半导体(ST)公司近日推出用于高性能USB2.0闪存驱动的创新双核控制器——ST72681。这种器件用于提供所期望的设计灵活性和低成本,它采用基于ST7 8位微控制器(MCU)的先进架构,以及快速16位每指令一周期输入/输出处理器,该处理器专用于闪存接口,而Reed-Solomon纠错处理器用于MLC NAND闪存器件。   通过提供高性能,甚至在配合不同品牌NAND闪存时也是如此,这款新型双核控制器芯...
>>详细内容
基于USB2.0标准的闪存移动存储器控制芯片
  1、产品及其简介   芯邦自主设计的第一个产品CBM2080型是基于USB2.0标准的闪存移动存储控制芯片,采用0.18微米工艺。该领域打破了外国芯片垄断的格局而且性能指标超过国际同类芯片。芯邦的芯片包含芯邦一系列自主知识产权的核心技术和取得的多项专利成果,并于2004年初被评为“深圳市高新技术项目”,2005年1月,芯邦的usB2.0/1.1控制芯片获得中国半导体行业协会和863超大规模集成电...
>>详细内容
USB1.1和USB2.0相关标准
  USB1.1技术规范概要   USB通用串行总线(UniversalSerialBus)是众多计算机厂商和电讯厂商共同开发的用于计算机外设连通到计算机的规范。它被设计用来解决安装计算机外设时遇到的种种技术性问题。并且符合Microsoft的即插即用规范--也就是说用户安装外设不必再像原来一样按部就班的关机,启动了,而是可以热插拔了。而且它能以雏菊链的方式同时连接127个外设!USB总线能提供两种传输速度-...
>>详细内容
具备全速USB2.0连接功能的闪存PIC单片机
    美国微芯科技公司(Microchip Technology)日前推出首款具备全速USB2.0连接功能的闪存PIC单片机。该产品工作频率达48MHz,数据传输速率高达12Mbps。与新器件配套的一系列片上外设和纳瓦技术(nanoWatt)的功耗管理功能,该系列器件针对采用USB的工业、医疗和其它多种嵌入式应用,为设计人员提供了全套嵌入式控制解决方案。   Microchip新款USB PIC单片机系列即使遇到恶劣的操作环境或...
>>详细内容
USB2.0摄像头微处理器硬件设计及外围电路分布
  1.引言 USB2.0摄像头微处理器支持高速USB2.0接口,内嵌强劲的图像后处理单元,JPEG高速编译码器,支持高达200万像素的CMOS传感器接口和CCD传感器接口,处理器设计的产品可以实现独特的运动监测功能与脸部追踪功能,这不仅大大加强了显示效果,提高了画面的品质,更拓展了PC摄像头的应用领域,如增强的实时视频聊天功能和门禁监测系统。 主要功能:USB2.0高速传输并兼容USB1.1;高速图...
>>详细内容
基于层次模型的USB2.0接口芯片IP核固件的设计
  1 引言 USB2.0规范的推出极大地刺激了包括各类计算机外设在内的多种电子消费产品的开发设计, USB已成为微机和众多电子设备的重要标准接口。目前国外一些大公司已陆续推出了符合USB2.0规范的接口芯片,但国内对该领域的研究尚处于较初级的阶段。本文对USB IP核设计方法,提出了一种USB2.0设备接口IP核固件的实现方案,该方案采用合理定义的层次模型并已被实现,实验结果表明该方案具...
>>详细内容
已有(
)位对此新闻感兴趣的网发发表了看法 >>更多评论
内 容:
     
 
热点新闻
一周排行
关于我们 | 服务项目 | 付款方式 | 广告服务 | 联系我们 | 友情链接 | 投诉 建议 合作 | 网站地图 | 加入收藏
Copyright © 2007-2008 WEEQOO.COM Corp.All Rights Reserved. 版权所有 经营许可证编号:浙B2-20050339 法律声明
维库电子旗下网站:维库电子市场网 | ChinaICMart | 维库电子开发网 | 维库电子人才网
总部:杭州市下城区朝晖路182号国都发展大厦1号楼80A
电话:0571-85889139-8007 QQ:303939539 | MSN:zh1226@hotmail.com |  邮箱:laz8258@163.com dzsc51@163.com