基于ATmega64L的MP3播放器设计

2013-12-08 05:38方天红
湖北工程学院学报 2013年6期
关键词:U盘播放器音量

方天红,陈 勇

(1.湖北工程学院 物理与电子信息工程学院,湖北 孝感 432000 ;2.深圳悠易阅科技有限公司,广东 深圳 518000)

基于ATmega64L的MP3播放器设计

方天红1,陈 勇2

(1.湖北工程学院 物理与电子信息工程学院,湖北 孝感 432000 ;2.深圳悠易阅科技有限公司,广东 深圳 518000)

设计了一款以U盘作存储介质的MP3文件播放系统。以ATmega64L为主控制器,音频解码芯片为VS1003B,CH375为U盘接口芯片,通过单片机控制实现对U盘的识别、文件的读取和处理。利用相应按键来控制歌曲的播放、选择、处理以及对音量、音效和循环模式进行设置,并把信息实时显示在液晶显示器上。实际使用表明,播放器可流畅播放U盘中的MP3文件,人机操作简便,功能较齐全,具有良好的应用前景。

ATmega64L;VS1003B;CH375;MP3播放器

MP3播放器已成为高度商品化的产品,拥有很多的娱乐功能,具有容量大、音质好、易于携带、操作人性化和简单化等特点,因而深受广大消费者的喜爱。虽然播放器的存储单元和播放单元一体化设计使MP3播放器携带方便,更加小巧,形式多样,但是也带来很多的问题。对于那些不便于移动的播放器,更新歌曲将会变得麻烦,比如嵌入了播放器的音响、DVD、车载MP3,如果想存储更多的歌曲,则需要重新买一个更大容量的播放器,导致资源的浪费。若将存储器和播放器分离,不仅能扩大MP3播放器的应用领域,通过对HOST USB的开发,能为各种测控系统中实时数据采集的移动存储提供了一个成本低、通用性强、可靠性高的解决方案[1]。

本文设计并制作一个基于CH375的U盘MP3播放系统,系统功能包括:(1)播放歌曲,显示歌曲名和歌词;(2)显示当前歌曲播放时长、当前循环模式、音效模式以及音量大小;(3)显示当前目录下的歌曲数目、当前歌曲序号和当前歌曲的播放状态;(4)可调整音量大小、音效模式和循环模式;(5)浏览文件和删除文件;(6)多级目录浏览;(7)不在播放界面时,具有自动返回功能。

1 硬件设计

播放歌曲时,主控制器ATmega64L通过总线方式控制CH375来读取U盘中的MP3文件,然后将读取的文件数据缓存起来,通过SPI接口送到VS1003B中进行解码从耳机或者音箱中输出,利用按键改变音量、音效、歌曲文件的选择、循环模式的设置、浏览U盘中的文件、U盘中MP3文件的删除处理,并将这些信息实时显示在液晶屏上。系统结构框图如图1所示。

图1 MP3播放器结构框图

1.1主控制器ATmega64L

ATmega64L是ATMEL公司设计的一款高性能低功耗的8位AVR微处理器,AVR单片机采用先进的RISC体系结构,而且采用了大型快速存取寄存器组、快速单周期指令系统以及单级流水线等先进技术,使得AVR单片机具有高达1MIPS/MHz的高速运行处理能力,有利于MP3文件的顺畅播放。ATmega64L具有丰富的资源,64K字节的系统内设计了可编程Flash,具有独立锁定位的可选Boot代码区,2K字节的EEPROM,4K字节的片内SRAM,64K字节可选外部存储空间,能对锁定位进行编程,以实现用户程序的加密。通过SPI接口进行系统内编程,具有JTAG接口,符合标准JTAG的边界扫描功能,支持扩展的片内调试功能,通过JTAG接口可以实现对Flash、EEPROM、熔丝位和锁定位的编程,这样极大地方便了用户下载程序和调试程序。SPI串行接口可工作于主机和从机模式,拥有53个可编程的I/O口,32个8位通用工作寄存器,全静态工作,只需要两个时钟周期的硬件乘法器,工作于8M时性能高达8MIPS,具一般单片机无法比拟的优点,而且具有很宽的工作电压范围(2.7V-5.5V),内部还具有经过标定的RC振荡器[2-3]。

1.2电源电路

系统采用5V直流电源供电,经变换后获得3.3V和2.5V电压。5V电源电压为USB设备和液晶屏背光灯提供工作电压。3.3V电源电压为单片机ATmega64L和VS1003B的I/O正电源与模拟正电源提供工作电压,2.5V电源电压为VS1003B的数字正电源提供工作电压。3.3V电压由电源芯片CYT8117T33产生,电路图如图2所示。2.5V电压由电源芯片CYT8117T25产生,电路如图3所示。

图2 3.3V变换电路

图3 2.5V变换电路

图4 VS1003B音频解码电路

1.3音频解码电路

VS1003B是一个单片MP3/WMA/MIDI音频解码器和ADPCM编码器。包含一个高性能,自主产权的低功耗DSP处理器核VS_DSP,拥有工作数据存储器,为用户应用提供5KB的指令RAM和0.5KB的数据RAM。串行的控制和数据端口,4个GPIO口,一个UART,有一个高品质可变采样率的ADC和一个立体声DAC,还有一个耳机放大器和地线缓冲器[4]。VS1003B音频解码电路如图4所示。

VS1003B所有数据和控制命令都是通过SPI总线接口实现,它与主控制器的连接比较简单,只有3条SPI数据线和4条控制线,其中SO、SI和SCLK是与主控制器连接的SPI接口,XRESET是VS1003B的异步复位端口,XCS是VS1003B的命令片选端口,XDCS是VS1003B的数据片选端口,DREQ是VS1003B的数据请求端口,当DREQ为高时,可以向VS1003B中发送数据。在不使用UART时,RX必须接IOVDD。为了能播放48KHz采样率的音频,至少要用12.288MHz的晶振才能获得正确的播放速度,故本电路采用的是12.288MHz晶振,并且在晶振两端并联一个1M电阻,使振荡电路容易起振。

1.4 U盘读取电路

CH375是南京沁恒电子生产的一款USB总线的通用接口芯片,可支持HOST主机方式和SLAVE设备方式[5]。在本地端,CH375具有8位数据总线和读、写、片选控制线及中断输出,可以方便地接到单片机/DSP/MCU/MPU等控制器的系统总线上。在USB主机方式下,CH375提供有串行通讯方式,可通过串行输入、串行输出和中断输出与单片机/DSP/MCU/MPU等相连。外部单片机/DSP/MCU/MPU也可以通过CH375按照相应的USB协议与USB设备进行通信,简化了设计人员设计开发USB的工作。CH375还内置了连接Mass-Storage海量存储设备的专用通讯协议固件,外部单片机可以直接以扇区为基本单位读写常用的USB存储设备(包括USB硬盘/USB闪存盘/U盘)。CH375在主机方式下,可以工作于并口和串口两种方式。考虑到本系统需要快速读取文件,实现流畅的MP3文件播放,本文在设计上选用并口方式,因此CH375芯片的TXD引脚应该接地。CH375 U盘读取电路如图5所示。

图5 U盘读取电路

1.5按键电路

按键电路由五个按键组成:包括播放键PLAY、音量键VOL、模式键MODE、向前键PREV和向后键NEXT。播放键具有播放、暂停、停止和返回等功能;音量键具有进入音量调节模式和浏览目录时的返回功能;模式键具有进入不同模式和确定功能;向前键具有播放前一首歌曲、减小音量等功能;向后键具有播放下一首歌曲、增大音量等功能;向前键和向后键是“连发”的。按键电路如图6所示。

图6 按键电路

2 软件设计

2.1读取U盘数据

CH375提供了U盘文件级子程序库,单片机可以直接调用子程序读写U盘中的文件数据,CH375的U盘文件级子程序库支持常用的FAT12、FAT16和FAT32文件系统,支持U盘最大容量100GB。一个U盘中可以有多个文件,每个文件都是一组数据的集合,通过按名存取。本系统直接采用沁恒公司提供的子程序库读取U盘数据的,U盘文件的读写方式采取扇区模式。下面列举系统软件中用到的函数:CH375的初始化函数CH375LibInit();查询U盘是否准备就绪函数CH375DiskReady();打开指定名称的文件或目录、搜索枚举文件函数CH375FileOpen();关闭当前文件CH375FileClose();搜索枚举指定目录下的文件,返回文件名函数CH375FileEnumer();以扇区为单位移动当前文件指针函数CH375FileLocate();删除文件并关闭函数CH375FileErase();以扇区为单位从当前文件读取数据函数CH375FileReadX()和CH375FielRead()。CH375FileReadX()支持双缓冲区读操作,可以指定读取数据存放的位置[6]。

2.2 VS1003B控制协议

VS1003B工作在从模式下,通过SPI串行总线与主控制器进行通讯。当数据信号XDCS为低时表示传送数据,当控制信号XCS为低时表示传送控制命令。控制命令为16位,通过读、写不同的寄存器实现对VS1003的控制[7]。当信号线DREQ为高时,表示可以向VS1003B发送至少32Byte的SDI数据或一个SCI命令,当DREQ变低时,发送器必须停止发送新的数据。在设置VS1003B时钟频率的时候,内部的时钟会暂时运行在12.288MHz,所以在写命令的时候,统一使SPI工作在低速模式,保证命令的正确发送。在发送数据的时候,将SPI的速度提高,以便MP3文件顺畅播放。在播放WMA格式的音频文件之前,要对VS1003B进行软复位。

2.3软件实现

上电后,首先对CH375、VS1003B、按键、液晶屏所使用端口进行初始化,设置定时器,对VS1003B芯片进行初始化,液晶屏初始化,然后对CH375芯片进行初始化,检查是否有U盘插入,判断U盘是否准备好,再获取根目录信息,从EEPROM中读取上次对音效、音量、循环模式的设置信息,根据这些信息对系统进行配置,初始化播放界面,开中断,判断是否有按键按下。如果有,则进行相应的菜单处理,否则,进行自动返回处理,接着进行音乐播放处理。如果歌曲名、歌词或目录有更新,则立即进行显示处理,最后返回到按键检查。菜单处理主要是通过按键完成对VS1003B的音量、音效的设置,歌曲循环模式的设置,歌曲的选择,浏览U盘中的文件和对U盘文件的删除处理,这些信息会实时显示在液晶屏上。自动返回处理是指在没有任何按键按下,并且当前不在播放界面下,系统会自动跳到播放界面。音乐播放处理是负责播放当前所选择的歌曲。系统软件的流程图如图7所示,音乐播放界面和浏览界面分别如图8和图9所示。

图7 软件流程图

图8 播放界面

图9 浏览界面

3 结束语

本文以ATmega64L为主控制器,设计了一个MP3播放器。经过测试,设计的MP3播放器不仅能流畅播放U盘中的MP3文件,音质效果好,突破了MP3播放器中播放单元与存储单元的一体化限制,而且能实现对歌曲文件播放、选取、处理、音量的调节以及对音效、循环模式的设置。该MP3在音响、汽车电子、DVD以及测控系统中数据采集存储方面具有很好的应用前景。

[1] 陈博,刘天宏,刘锦高.基于CH375的USB-HOST MP3播放器[J].华东师范大学学报:自然科学版,2009(2):136-140.

[2] ATMEL.ATmega64L[EB/OL].http://www.atmel.com/devices/ATMEGA64.aspx?tab=documents.

[3] 马潮.AVR单片机嵌入式系统原理与应用实践[M].北京:北京航空航天大学出版社,2007:9-14.

[4] VLSI.VS1003 datasheet[EB/OL].http://www.21icsearch.com/pdf-DB4EF1C4E54F180F/VS1003.html#.

[5] 肖踞雄.USB技术及应用设计[M].北京:清华大学出版社,2003:15-20.

[6] 沁恒电子.CH375中文手册[EB/OL].(2007-11-09). http://www.wch.cn/download/list.asp?id=13.

[7] 王辉,何永刚.嵌入式Linux下基于VS1003B的播放系统的设计与实现[J].电声技术,2012,36(4):59-62.

(责任编辑:张凯兵)

DesignofMP3PlayerBasedonATmega64L

Fang Tianhong1,Chen Yong2

(1.SchoolofPhysicsandElectronicInformationEngineering,HubeiEngineeringUniversity,Xiaogan,Hubei432000,China;2.ShenzhenUmidoCo.,Ltd,Shenzhen,Guangdong518000,China)

This paper develops an MP3 player system using U disk storage media. The proposed system uses ATmega64L as a main controller, VS1003B as audio decoder chip, and CH375 as U disk interface chip, to achieve the recognition of U disk, reading and processing of MP3 files controlled by microprocessor. It may control the playing, selecting, volume, audio selection and cycle mode settings of songs by the corresponding keys. Moreover, the playing information can be displayed on the LCD monitor in real time. Practice shows that the designed player has the features of smooth playing, simple man-machine interface, and complete functions with certain practical value.

ATmega64L; VS1003B; CH375; MP3 player

TP368.1

A

2095-4824(2013)06-0011-05

2013-09-29

湖北工程学院教学研究项目(2009B18)

方天红(1979- ),男,湖北赤壁人,湖北工程学院物理与电子信息工程学院讲师,硕士。

陈 勇(1987- ),男,湖北赤壁人,深圳悠易阅科技有限公司工程师。

猜你喜欢
U盘播放器音量
测测你的“音量值”
解放手机的音量键
Walkman诞生40周年 索尼适时发布NW-ZX500和NW-A100系列播放器
采用U盘文件冗余方案实现TSP系统的可靠装载
自动辨认插口方向的U盘
基于STM32的MP3播放器设计
Moon ACE播放器/放大器一体机
请放心地扭大音量看电影听音乐吧!Mclntosh Sonus Faber家庭影院套装
播放器背板注塑模具设计
细火慢炖增加音量调节级数