The Fourth Dimension Space

枯叶北风寒,忽然年以残,念往昔,语默心酸。二十光阴无一物,韶光贱,寐难安; 不畏形影单,道途阻且慢,哪曲折,如渡飞湍。斩浪劈波酬壮志,同把酒,共言欢! -如梦令

AT89C51SND1(MP3核心器件)

主要内容:
本文介绍了以AT89C51SND1为核心的MP3播放器设计开发步骤,详细分析了MP3各个环节的功能实现,给出了多种实现其功能的方案。具体以AT公司提供的方案为例,详细作了分析,并介绍了关于AT89C51SND1在系统程序烧写的方法,以及MP3实现其功能的各种操作方法。

关键词:

功能简介 系统分析设计 外部通讯 FAT文件 程序烧写

简述:
随着科技的进步,MP3播放器已成为现代消费者首选的随身听产品,它以小巧玲珑的体积,精美的外形,低廉的价格及其强大的功能深得消费者的厚爱。这同时也引起了DIY发烧者的兴趣,他们不惜高价买进元器件,以自己组装的MP3为荣。国际上很多芯片制造商看准商机,开发出以自己生产的芯片为核心的MP3方案,并公布于众,这些核心芯片包括:ATJ-207X系列,AT9015系列,AT161系列,STMP341X系列等。其中,以ATMEL公司生产的AT89X51SND1系列芯片最为著名,这就包括AT89C51SND1.

功能强大的AT89C51SND1
AT89C51SND1单片机是ATMEL公司专门针对开发MP3而设计的,其主要特点是内部集成了MPEG2解码器和USB通讯接口,内含64k的内部程序存储器,支持在系统编辑ISP功能,通过USB或者串行口对芯片进行编程操作,内部数据存储器为2056字节。它最高支持20MHz的工作频率,工作电压为3V,内部集成的MPEG2解码功能支持48,44.1,32,24,22.05及16赫兹的采样序列,可直接与DAC音频转换芯片连接,支持USB1.1协议全速引擎,并提供相应的键盘中断、IDE/ATATPI /MMC及ISP接口。

系统分析设计:

目前MP3DIY主要有两种方案:使用DSP装配和使用专用MP3开发芯片。
DSP系统硬件设计麻烦,程序难以理解,购买DSP芯片的价格也较高,这些使MP3DIY爱好者们不约而同的选择了后一种方法。
国内流行的DIY方案很多,使用的专用芯片也是多种多样,但大部分方案整体上大致相同。以AT89C51SND1为核心的MP3系统主要实现一个MP3播放器的功能,整个系统由AT89C51SND1(MCU)、K9F1208UDF(FLASH芯片)或硬盘、音频转换部分、USB接口、外部控制、串行通讯、电源部分和录音部分组成。

MCU部分:即AT89C51SND1,控制整个系统,提供USB控制和MP3解码功能;
存储器:作为MP3播放文件的存储器;
音频转化部分:将数据流转化成声音信号;
外部控制:对MP3进行操作的外部中断按键;
通讯系统:包括USB及串口通讯。
外部显示:包括了LED发光管指示灯,液晶显示屏等。
电源部分: 为MP3提供所需要的电能;
外部音频输入部分:包括音频输入元件MIC及A/D转换芯片

下面我们具体来了解一下由ATMEL公司在网上公开提供的一款以AT89C51SND1为核心的MP3方案(以下称小板方案)。

电源部分:
整个开发板上的芯片统一采用3.3V供电,对开发板的供电采用两种形式:USB供电和电池供电

USB接口提供5V电压和200mA电流,Imax=500mA, AT89C51SND1C所需的电压为3V(偏差10%),25mA。若使用USB口供电,需将5V转化成3.3V。一般可以采用电阻分压和DC-DC芯片降压。因为MP3属于高速信息传输数码产品,能否有一个良好的电源对MP3使用的稳定性来说至关重要,因此一般采用芯片降压的供电方案,本方案选用的芯片为A1117,它输入电压为4.75-10V,最大输出电流为800mA,转换后输出电压为3.3V,是比较理想的USB电平转换芯片。

电池供电可采用两种方式:直接串接电池法和高频振荡升压法
前一种用两节1.5V的电池串联形成3V的电压直接接入MP3,这种方法不需要什么外围电路,芯片工作正常,但普通电池压降比较明显,当电池使用一段时间后,压降后的电压会导致MP3长期工作于不稳定的低压状态,对其音质和机体有很大的损害。

后一种则将1.5V的电压经高频振荡后送入电平转换芯片,将其转换成3.3V电压。这种方法是目前最常用的电源技术,它只需要一节电池供电,占用体积小,由于电压是经过高频振荡后转化而来的,所以电池的压降不会影响最终输出的电压,这也大大延长了电池的使用寿命,真正做到节能,是现代各种随身产品的首选供电方式。

 


在小板方案中,其电源转换主要是由SP6641(直流推进转换器)和SP6231(万用串列总线外围设备)构成,电路中,场效应管SI2312DS与按键SW5构成了电源开关控制电路,每触发一下SW5,SI2312DS将作导通和断开电源,电感L1和肖特基二极管BAT54S构成高频振荡电路,它将高频电流送入SP6231处理后,再由它送入SP6641进行直流电压转换,最终将3.3V电压送至整个设备。


直流电源]和数字电源的区别:在一些数字电路中,我们会发现会有DVDD(数字电源)和AVDD(模拟电源)两种电源,在小板方案中也不例外,这是因为一些芯片制造商在设计芯片时,为了让芯片工作于一个稳定的环境里,特意为其设计了专用电源DVDD。原则上,数字电源与模拟电源没有什么大的区别,但模拟电源工作的环境中,可能会出现大的压降或其他影响整个电源的情况。为保证系统的稳定性,通常在设计时,将数字电源和模拟电源分开设计,最后用一跳线将两个电源连接在一起,这样可以避免模拟电源对数字电源的影响,以保证系统的稳定性。
外部通讯系统:


外部通讯系统主要由USB通讯和串口通讯两种通讯方式,通过他们都可以进行程序烧写(51SND支持系统在线编辑功能),但通过USB接口还可进行文件的存储,即具有U盘通讯功能,所以一般直需要完成USB通讯接口就可以了。
串口通讯的实现:和其他的单片机串口通讯一样,要使用MAX232进行TTL电平转换,然后直接将信号送入51SND1的25,26脚(串行通讯接口),通过51SND1内部的程序支持和计算机上的软件来完成串口的信息通讯,串口通讯需要注意波特率问题,选用不当的波特率有可能造成通讯失败,最常用的波特率是9600和19200。


USB接口的实现则是通过51SND1自带的USB1.1协议通讯端口,它不需要使用飞利浦等公司生产的USB接口转换芯片,此方案则是通过两个27欧姆的电阻后直接接入51SND的21,22脚,这两个电阻的阻值是官方站对自己所开发的芯片提供的,最好使用精度高的电阻,否则,会因为电阻分压不当而导致计算机无法识别51SND芯片。该方案中,有一PNP三级管2N2907,它的作用是作为一个开关,在实现U盘功能时,I/O口将硬件响应信号送入三极管的基极,使其CE导通,电源VDD通过1.5K电阻拉高USB的D+端口电位,以告知计算机有新的硬件接入。我们在设计电路时,通常在三极管CE上设一跳线开管,在烧写MP3程序时,需手动拉高D+口电位。

 

外部音频输入部分:

89C51SND1芯片提供了外部录音功能,在程序的支持下,通过外部设备MIC及其模数转换芯片向其送入音频信息,51SND1将其转化成WAV文件后保存在存储器中,通过MP3放音功能可将其音频信息读出。该方案中,实现MIC到CPU转换的是MAXIM公司生产的MAX4468(增益带宽涌流器), 它的主要功能是将MIC的信号放大,并将其转化成数字信息,通过CPU将数字信息储存在存储器中,从而实现MP3的录音功能。

mp3音频转换部分:

AT89C51SND1支持PCM和I2S两种音频结构,音频数据流可以来自MP3解码的输出,也可以来自MCU直接的音频输出,和MP3解码部分类似,整个音频部分和51内核也通过5个寄存器来进行数据和控制信息的交流,这5个寄存器是:

1.音频接口控制寄存器0 AUDCON0 (AUDIO INTERFACE CONTROL REGISTER 0)
2.音频接口控制器 1 AUDCON 1 ( AUDIO INTERFACE CONTROL REGISTER 1 )
3.音频接口状态寄存器 AUDSTA (AUDIO INTERFACE STATUS REGISTER)
4.音频接口数据寄存器 AUDDAT (AUDIO INTERFACE DATA REGISTER)
5.音频时钟分频寄存器 AUDCLK (AUDIO CLOCK DIVIDER REGISTER )

当音频数据的第一位送入DA转换器的时候就会产生时钟信号。从MP3解码器送出的数据被送入MP3缓冲器,MP3的解码数据缓存和解码器通过一个握手信号进行通讯,可以通过AUDCON1寄存器中的DERQEN位来决定是否需要数据。

 

存储器:


目前市场上的MP3,其存储器是多种多样的,按照其存储器的不同,大致可分为:FLASH芯片存储,CF卡存储和硬盘存储三种。当然,不能否认还有一些使用的是碟片或者其它芯片存储。

FLASH芯片存储的MP3最常见,因为其体积小,存储速度快,耗电省等特点,已成为现在MP3存储器的首选(目前市场上的大部分MP3都使用这种存储器),本方案使用的FLASH存储器是韩国三星公司生产的K9F系列FLASH存储器,这些存储器从16M到256M不等,但价格比较高,一片64M的芯片售价是130元左右,256M的售价300多元,用户可根据需要来选择,但选用不同的FLASH芯片时,应注意程序兼容的问题,比如设定存储器的大小,FLASH存储器读出和写入的入口地址等等。

CF卡存储器最早应该是应用在数码相机上,它的特点是支持插拔,更换碟片容易,市场上很容易买到,其价格也比较便宜。这类MP3在市场上不常见,因为其体极大,存储量又不如硬盘,常用于数码摄像机机带MP3功能的存储器。但因为CF卡价格便宜,多为DIY者选用。

上边介绍的两种存储器存储量远远满足不了需要,于是人们便把目光投向了硬盘。一些公司看准商机,生产出专门用于MP3的微型硬盘,它的容量大小从几个G到几十个G,但此类MP3 目前售价较高,使很多MP3爱好者望尘莫及。在MP3DIY一族里,已经有不少高手使用普通硬盘完成了硬盘MP3,使用的CPU正是51SND1。51SND1与硬盘通讯的方法多种多样,最常用的方法是利用锁存器74373和38译码器74138作为接口扩展,32KRAM62256作为缓冲器与硬盘的IDE接口连接,由于硬盘需使用12V和5V两种电源,其耗电量也非常大,不适合随身携带,所以大部分DIY的硬盘MP3多是以台式的方式出现,并配上了液晶显示及功放电路。

用硬盘作为MP3的存储器要比使用FLASH芯片和CF卡复杂的多,不仅仅要了解硬盘接口的定义,在编写驱动程序时,还要完全读懂FAT文件,这个文件包括软盘数据的逻辑存储、硬盘中的数据组织、硬盘主引导记录(DBR)及其结构、引导记录及其结构、文件分配表FAT、文件目录表、分区表等等。要想完全看懂这些东西,必须要对计算机原理作充分的了解,理清程序算法,这些不亚于学好几门高等数学。在国内的DIY人群中,能看懂FAT文件,写出硬盘驱动的人也寥寥无几,大部分DIY者是使用别人写好的HEX文件。正因为这个原因,51SND1控制硬盘的源程序到目前还没有公开。若读者对此感兴趣,可到21IC网去下载硬盘FAT文件作具体分析,在此不多作介绍。

 


工作指示部分:

市场上的MP3都有一个漂亮的液晶屏来显示工作状态,如果自己DIY,所要使用的液晶屏都必须含驱动电路,其体积过大不易携带,所以大部分DIY者将这一部分省下了,取而代之的是4个LED发光管。通过程序控制,4个发光管分别表示不同的状态,由4个按键来控制整个MP3的工作过程。

程序部分:
MP3的强大功能与其程序是分不开的,没有合适的程序任何一个硬件都无法工作,关于MP3的程序设计在网上和一些相关的书籍上都有介绍,如果对其感兴趣,可到网上下在源程序研究,也可下在编译过的HEX程序直接进行烧写。


程序烧写:
前面已经介绍过,89C51SND1具有在系统编译功能,可用ISP端口控制,通过USB口或串口进行烧写,下面就一些程序烧写问题进行介绍:

1. 安装89C51SND1的在系统烧写软件flip2.2。

2. 通过开始菜单运行InstUsb.exe(建议在开始菜单中运行,否则会出现路径找不到,系统建议用2000,xp兼容性太差。)

 

3.将PCB板上的ISP接地,USB的D+电位拉高(即短接三极管CE两脚),注意一定要过1.5K电阻,否则硬件不能被识别。


4.连接USB线(或串口线),出现硬件响应后选择自动安装程序。

5.打开flip2.2,选择芯片为AT89C51SND1,连接方式为USB(或串口)。

6.将SBV中的F0改为FC,调入所要烧写的HEX文件(文件所在路径中不能含有中文)。


7.进行烧写后,即可完成自己的MP3。

Mp3功能操作:
本方案中共有4个按键:
S1: 播放/停止/确定键
S2: NEXT键
S3: BACK键
S4: 功能选择键

其指示灯也表示4种状态:
L1: 播放指示灯/音量大小
L2: 录音指示灯/高音
L3: U盘联机指示灯/中音
L4: 格式化指示灯/低音

用选择键选取相应功能的指示灯按确定键即可实现其功能,在播放过程中,可用S2和S3来选择上一首和下一首歌曲。若在播放中按选择键,播放指示灯便会高速闪烁,此时可按S2和S3控制音量大小,若继续按选择键,可依次调节高、中、低音效控制。

U盘功能:停止播放歌曲,选择U盘联机功能,按确定即可作为U盘使用,在此可为MP3增加歌曲和存储其它文件。

注:U盘功能在2000以上系统免驱,其它系统必须到ATMEL公司的网站下载相应的驱动程序。


总结:
本文系统的介绍了关于ATMEL公司生产的89C51SND1芯片开发MP3功能的方法,但对于89C51SND1来说,实现MP3只是它强大功能的一部分,还需要广大DIY爱好者深入开发,但51SND还有很多不足之处。有不少使用者反映,89C51SND1的数据传输速度跟不上,用其开发硬盘MP3易出现声音 断断续续的。除此以外,51SND1的稳定性也不好,长期的上电掉电会导致51SND1内部程序混乱,更有甚者成为“老年痴呆症患者”。但51SND1强大的功能早已弥补了这一点的不足,在当今MP3DIY爱好者中,89C51SND1仍然是装备MP3的首选芯片。

 

参考资料:
《51系列单片机高级实例开发指南》 作者:李军 北京航空航天大学出版社
AT89C51SND1芯片说明 ATMEL www. ATMEL .com
AT89C51SND1硬件电路设计 ATMEL www. ATMEL .com
AT89C51SND1控制硬盘硬件电路 蓝牙 www. mp3DIY .com
EMU控制硬盘方案 未知 www. 21IC .com
硬盘FAT资料 未知 www.21IC.com
MP3程序烧写资料 未知 安然技术论坛

posted on 2009-06-06 23:54 abilitytao 阅读(1293) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理