基于C51单片机的MP3播放器设计
扫描二维码
随时随地手机看文章
0 引言
便携式MP3播放器作为一种集音频播放、数据存储为一身的数码产品,其功能结构为电子设计人员所津津乐道。MP3是MPEG一1音频 III(1ayerIII)的简称。MPEG一1音频(ISO/IECll 172—3)是目前普遍应用的音频压缩标准,其中层III的算法最为复杂,但压缩比最大,效果也最好,在低码率的条件下基本能达到CD的音质效果。MP3 标准用尽可能低的码流实现CD音质的声音而不会产生数据损失。如果对于一段声音不进行压缩的话,那么每存储一秒钟的立体声CD音质音乐必须用 1.4Mbit,这是个十分大的开销。通过运用MPEG音频标准的压缩技术,我们可以把存储空间压缩到原来的1/12而不会降低声音的音质。即使使用 1/24的压缩因子,仍然比单纯降低采样率的音质要好。低数据量和高播放品质的优点使其成为音乐存储、数字广播、网上音乐传输的主要方式。人们不仅可以使用计算机软件,还可以通过数字随身听来欣赏音乐。本设计以C51内核单片机为核心,设计了MP3播放器。
1 MP3硬件设计
在该硬件系统的设计中,采用Atme 1公司生产的AT89C51SNDlC作为主控MCU。AT89C5lSNDlC是ATMEL公司专门针对MP3的需求而设计的一款多媒体8位微处理器,使用通用的C51内核,片上集成了多种外设,为MP3产品提供了一套方便的解决方案。该芯片对电路的高度集成大大降低了系统的耗电和发热,提高了系统的稳定性和速度,抗干扰能力也显著增强。AT89C51SNDlC具有如下外设的集成,大大简化了电路的设计:a.MP3硬件解码器;b.可编程音频输出接口 DAC;c.8位MCU C51:d.USBl.1控制器;e.内建锁相环PLL;f.多媒体卡接口适配器;g.SPI接口适配器;h.IDE/ATAPI接口;i.两路10位 ADC,8kHz;j.44个通用I/0;k.两个16位定时器/计数器;1.硬件看门狗定时器;m.标准全工UART;n.两线主被动模式控制器;o.SPI主被动模式控制器;p.电源管理模块。
整个播放器的结构框图如图l所示。PC机通过USB接口实现对U盘的MP3歌曲、文档等数据信息的存储。系统启动后,由MCU控制将储存于Flasht辛歌曲的码流信息送入MP3解码芯片中解码,并产生解码输出。在系统的DAC模块通过CS4340芯片把解码输出转换为模拟音频声音后, 经功放电路一级音频放大并驱动耳机,实现MP3歌曲的播放。系统硬件包括主控MCU、解码器、Flash存储系统、供电系统、按键和D/A转换器等几部分。
1.1 解码部分
这是MP3播放器的核心部件, 本设计采用硬件解码技术。在本系统中笔者采用AT89C51SNDlC芯片。该芯片是一块自带MPEG I/II—Layer硬件解码器和Human Interface的51内核单片机。它可支持对8~320kbps基本数据流的解码,支持的取样频率范围为16~48kHz,非常适合于MPEG的音频解码, 并带有数字语音录音的MPEG播放模块, 具有很高的性价比。解码后的信号是可以直接输出到DAC的立体声、单声道或双声道的数字信号,SP—CA751A与DAC的接口是可编程的。只要通过通用的串行I/0口和控制接口就能对MPEG比特流进行I/0和回放控制,系统控制器能很轻易地对MPEG音频信号进行解码。通过一个通用的可编程I2S接口,就能把一解码的音频PCM数据输出到外部的DAC中,因此,大多数常用的音频DAC都能和本芯片兼容,本设计采用的是CS4340芯片。
1.2 存储部分
现采用1GB的FLASH存储器,该存储器能够存储19小时128kbps(达到CD音质)的音乐,该系统采用了SAMSUNG公司的1GB FLASH存储芯片K9F5608UOB。
1.3 接口部分
一般通过PC的USB接口进行MP3文件的下载,传输速率为12Mbps。由于Atmel公司生产的AT89C5lSNDlC芯片仅支持USBl.1技术规范,因此接口速度稍慢。但对于MP3播放来说,可以满足需要。
1.4 电源管理
便携式MP3的体积小,可以使用两节7号电池(3VDC)供电,同时也可以通过USB接口取电,因此采用低电压以及进行有效的功率管理是非常必要的。
2 MP3软件设计
硬件是设计的基础,软件是设计的灵魂。MP3程序由两大部分组成:MP3播放功能模块和USB通讯功能模块。此外,为了调试方便,还有调试功能模块。此模块在系统软件调试中使用,当MP3系统正常工作时去除。
MP3播放功能模块的工作分为两个部分:
第一部分是循环播放MP3歌曲,该功能需要首先做一些初始化工作,MP3解码器一旦开始工作,就会一直向CPU请求数据,直至歌曲结束,只有通过键盘操作才会使该功能提前结束。因为MP3文件的数据量较大,在flash存储器内是以页为单位进行存储的,所以MP3的播放程序初始化就是要把该文件的首地址和页数先读出到CPU中,然后CPU可以根据如上数据进行取数据工作。
第二部分则一直在等待中断发生,该程序是与键盘结合起来的,主要用于使用者对播放过程的控制。键盘操作对MP3播放过程的控制还包括后退、跃进、跳到下一首、音量控制等。因为整个播放过程的键盘控制功能比较单一,没有键的复合操作,所以程序都很容易实现。当MP3播放器插入到USB接口时,系统执行USB 通讯功能模块,该模块主要用于对flash存储器内的文件数据进行管理。固件程序是该模块开发的主要工作,由于AT89C5lSNDlC没有外部中断引脚,USB中断没有中断向量地址入口,因此该固件程序的框架采用查询工作方式。
3 FAT文件格式
因为该系统还要具有U盘的功能,所以存储器中的文件还要能够让计算机读写和识别,也就是所有的文件还要严格满足计算机文件系统格式的要求。在所有计算机文件系统中,FAT是比较常用的一种。
一个FAT文件系统卷由4个部分组成:保留区、FAT区、根目录区、文件和目录数据区。其中保留区中的第一个分区必须是BPB,也称作“引导扇区”,因为它含有对文件系统进行识别的关键信息,计算机将以此信息识别存储器文件格式,因此十分重要。
FAT区存放的是文件分配表。操作系统的存储空间是按簇来分配的,簇是操作系统分配的最小存储单元,每个簇在FAT表中占据一个16位的位置,称为一个表项。同一个文件的数据并不一定存放在存储区的一个连续的区域内,往往会分成若干段,像一条链子一样的存放,这种存储方式称为文件的链式存储。为了实现文件的链式存储,必须准确地记录哪些簇已经被占用,还必须为每一个已经占用的簇指明后继内容的下一个簇的簇号,对于一个文件的最后一个簇,则要指明本簇没有后继簇,这些就是由FAT表来存储的。
根目录区存放的是目录项,每个目录项为32个字节,记录一个文件或目录的信息。目录项所占的空间与目录项的个数有关。
文件和目录数据区是真正存放文件数据的位置,所有数据都是按照以上信息分配存储的。
4 结束语
MP3为取得较好的压缩效果而采用相对复杂的技术,宽带音频信号的取样率也较高(一般为44.1kHz以上),所以MP3编解码的运算量和数据量都相当庞大。MPEGLayer III解码算法在AT89C51SNDlC上验证通过并获得较好的效果,在通过优化后可流畅播放。由于51内核单片机的性能限制,在缓冲时可能会有停顿。以上内容叙述了由AT89C51SNDlC构成的最小系统的结构,具备了便携式MP3播放器的基本功能。其实AT89C51SNDlC还支持LCD显示和 IDE接口,还可以通过对以上接口模块进行扩展,构成更大更复杂的系统。