随着人们对便携式音乐播放器要求的提高,MP3播放器以其较小的体积和较好的音质受到广大音乐爱好者的青睐。起初,MP3文件由电脑来播放,后来互联网的发展促进了MP3播放器的产生,同时MP3播放器也发生了一系列的变化,其更加小巧精致,更人机化和情趣化。现在市场上MP3的款式越来越多,功能越来越丰富,但现有MP3播放器大多是将解码器与存储器一体化的。这种设计使MP3播放器方便携带,但也带来了问题:一是存储容量不易扩展;二是不利于MP3播放器在其他领域的应用。将播放器与存储器分离是MP3播放器目前发展的一个方向[1-3].本系统采用STC89C58RD+单片机,结合USB接口芯片CH375、解码芯片VS1011E、Nokia5110液晶等外围设备设计并实现MP3播放器,该系统以USB-HOST方式读取U盘的MP3文件并将其解码播放,同时具备读取音乐标签,U盘电子书和贪吃蛇游戏等功能。
系统总体设计
MP3播放器是一种新兴的数字音乐播放器,播放MP3、WMA等格式的文件。通过用MPEG-1 Layer 3编码技术,可以得到大约12:1压缩的有损音乐信号。尽管MP3文件是有损的,它在压缩过程中对功率谱较弱的信号有所丢失,但它同CD原声区别不大,不影响一般音乐爱好者对音乐的欣赏。MP3大大缩小了声音文件的长度,使音乐的传输和存储更方便。MP3播放器系统结构如图1所示。系统启动后,STC89C58RD+单片机 通过USB接口芯片CH375,从U盘中获取MP3格式文件的数据,并存入片内RAM进行缓冲,然后单片机定时将数据从缓冲区送到MP3音频解码芯片VS1011E,实现解码并输出音频信号到耳机或有源音响。用户可以通过键盘实现“启动”、“停止”、“上一曲”、“下一曲”和“音量控制”等功能,并通过Nokia5110液晶显示播放状态信息。系统在硬件上主要包括数据读取模块、音频解码模块和液晶显示模块等。
系统硬件模块的实现
数据读取模块
单片机读取MP3数据模块包括STC89C58RD+单片机、USB接口芯片CH375和MP3格式数据存储U盘三部分。
STC89C58RD+单片机
系统采用STC89C58RD+单片机,该单片机是美国STC公司设计,国内宏晶公司生产的新一代51增强型单片机,引脚和指令系统均与51单片机兼容。它具有加密性强、超强抗干扰、超低功耗、在系统可编程、内含MAX810专用复位电路等特点[4].
该单片机采用MCS51内核,其内含32KB的FLASH和16KB的EEPROM,同时内含1KB的内部SRAM存储空间。因而可用于音频数据处理和显示数据处理需要进行较大数据缓冲的情况下。该单片机最高可工作于33MHz时钟,本系统中,它工作在30MHz时钟下,能满足系统对数据带宽的要求。
CH375接口芯片
CH375是一种通用USB总线接口芯片,其内部集成PLL倍频器、数据缓冲区、主从USB接口SIE、被动并行接口、异步串行接口、命令解释器、控制传输的协议处理器和通用的固件程序等[5].它有USB-HOST和USB-SLAVE两种方式,其中USB-HOST方式支持各种常用的USB全速设备,外部单片机、MCU、DSP可以通过CH375按照相应的USB协议与USB设备通信,这是由于在本地端,CH375具有读、写、片选控制线以及中断输出四条控制总线和八位数据总线,可以方便地挂接到单片机等控制器的系统总线上。CH375芯片内部各部分的功用如下:①PLL倍频器用于将外部输入的12MHz时钟倍频到48MHz,作为USB接口SIE时钟。②数据缓冲区用于缓冲USB接口SIE收发的数据。③主从USB接口SIE用于完成物理的USB数据接收和发送。④被动并行接口与异步串行接口用于与外部单片机交换数据。⑤URT串行接口用于代替并行接口与外部单片机交换数据。⑥命令解释器用于分析并执行外部单片机提交的各种命令。⑦控制传输的协议处理器用于自动处理常用的控制传输的多个阶段,简化外部固件的编程,降低了开发难度。⑧通用的固件程序实现USB传输的相关协议。
数据读取原理
数据读取电路如图2所示。系统利用单片机实现将U盘中的音频数据经CH375的USB串行接口传送至单片机内部RAM缓冲,以等待解码。硬件上只需在单片机系统中增加一个CH375芯片,综合成本较低,这是由于CH375内置了USB通信协议,省去了对USB通信协议的了解,单片机可以直接调用API库读写U盘中的文件数据。CH375芯片工作时,需外部为它提供12MHz的时钟信号,它支持全速的USB-HOST主机接口,外围元器件只需要少量晶体和电容,便可支持5V和3.3V电源电压。
VS1011E解码芯片
系统采用VS1011E芯片对MP3音频进行解码。VS1011E音频解码芯片为VS10XX系列的第三代产品,是芬兰VLSI Solution Oy公司生产的单片MP3/WMA/MIDI音频解码芯片,其内部结构如图3所示。它包含一个高性能、低功耗的DSP处理核(VSDSP),5KB的指令RAM,0.5KB的数据RAM,串行的控制和数据输入接口,四个通用I/O口,一个UART口,一个可变采样率的ADC,一个立体声DAC以及音频耳机放大器。芯片可工作于12.288~14MHz或24.576~28MHz时钟下。可用于解码MPEG1&2Layer1,2,3以及MPEG2.5Layer3格式、和WAV等格式文件[6].
VS1011E芯片工作流程
VS1011E芯片工作时,首先将MP3或WAV格式音频文件通过SDI总线送入芯片内部并解码。解码后,如果SCL_AIADDR!=0,则执行应用区代码(代码地址由相应的地址寄存器提供),然后再按照SCL_BASS寄存器(SB_AMPLITUDE位和ST_AMPLITUDE位)的设置,将数据送到低音和高音优化器进行音效处理,之后再将数据通过音量控制单元备份到音频FIFO中。音频FIFO用于保持数据,并将数据作为采样率转换器和DAC的输入。采样率转换器可将所有不同采样率转换成CLKI/512信号送给DAC,再由DAC按位依次产生立体声模拟信号,然后由系统将这些信号送到耳机功放。VS1011E的工作流程如图4所示。
实现VS1011E芯片控制协议
VS1011E芯片与主机进行数据和控制信息的通信需要利用工作于从模式的SPI串行总线,通过串行数据接口(SDI)传送音频数据,通过串行控制接口(SCI)传送控制数据。VS1011E的SPI接口具有VS1002新模式(SM_SDINEW=1)和VS1001兼容模式(SM_SDINEW=0)两种工作模式。当SM_SDISHARED=1时,数据信号和控制信号的传送共用xCS作同步信号;SM_SDISHARED=0时,则分别采用xDCS和xCS为同步信号。作为从机工作模式,VS1011E可通过一个信号线DREQ指示是否允许主机传送数据。当DREQ为高时,VS1011E至少可以接收32KB的SDI数据或SCI控制命令。下面以VS1002模式简单分析SPI协议:
(1)SDI数据协议线
xDCS为同步控制线,低电平时激活,可输入数据,高电平时结束当前操作,以使串行接口处于等待状态,当SM_SDISHARED=1时,由xCS替换该引脚。SCK为时钟线,由主控芯片提供时钟。SI为数据输入线,可在SCK上升沿采样输入SI数据。
(2)SCI控制命令线
xCS为同步控制线,低电平时激活,高电平结束当前操作,以使串口处于等待状态,同时使SO输出线为高阻态。SCK(复用)为时钟线。SI(复用)为控制命令输入,可在SCK上升沿采样输入SI数据,若xCS被拉低,则在SCK的第一个上升沿写入数据线的第一个数据位。SO为数据输出线,当主控制器读VS1011E内部控制寄存器状态时,可在SCK下降沿输出数据,如果当前为写操作,MJH SO为高阻态。
VS1011E芯片与单片机的接口电路
VS1011E芯片与STC89C58RD+单片机的接口电路如图5所示。系统启动后,由单片机控制,通过CH375USB接口芯片将存储于U盘中文件的MP3数据格式流信息送入到VS1011E芯片中,再通过VS1011E芯片解码及其内含高质量的立体声DAC和耳机驱动电路,实现MP3文件的播放。VS1011E的所有控制命令和数据均通过SPI总线接口实现,而STC89C58RD+单片机没有SPI接口,因此,为了达到实现SPI通信功能,采用该单片机的3个I/O口模拟SPI时序。
液晶显示模块
系统采用Nokia5110液晶显示播放状态,该液晶为84×48点阵的LCD,可显示四行汉字,并支持串行通信协议,如图6所示为其串行通信模式下的控制时序。其传输速率高达4Mb/s,可全速写入显示数据,方便与单片机进行通信。该液晶外部只有九条信号线,节约了I/O口。
系统软件设计
图7为MP3播放器的软件流程。采用C51语言对本系统单片机的软件设计进行编写,源程序共分单片机驱动CH375程序、单片机控制VS1011E实现音频解码程序及按键与显示驱动程序三个部分。为了简化程序设计,采用从官方网站下载CH375的API函数库“CH375HF4.LIB”文件对CH375模块部分程序进行编写。由于单片机的硬件资源比较有限,在硬件调试过程中,当出现传送频率较高的MP3文件时可能会造成声音失真,因此为了保证MP3文件播放流畅,在系统开发过程中应优化程序。
系统启动后,先进行初始化,然后等待U盘插入,再通过CH375芯片将U盘中的MP3文件传送至单片机内部RAM缓冲。单片机是通过SPI总线方式读出音频信息的,并将MP3的码流信息送入到VS1011E芯片中,通过VS1011E芯片及其内含的高质量立体声DAC和耳机驱动电路,实现MP3文件的播放功能。在按键的控制下,通过Nokia5110中菜单选项的选择,实现对MP3文件选择及音量控制等功能;播放时,显示在Nokia5110上的信息包括MP3文件名称、播放进度和音量等。经过运行测试,该系统可正常流畅地播放出320kb/s的高音质MP3文件,而且其功耗比较低,使用500mA锂电池可连续正常播放十小时。
-
芯片
+关注
关注
453文章
50299浏览量
421369 -
单片机
+关注
关注
6030文章
44505浏览量
632364 -
播放器
+关注
关注
5文章
394浏览量
37368
发布评论请先 登录
相关推荐
评论