基于STC12C5A60S2的U盘音频播放器设计
扫描二维码
随时随地手机看文章
摘要 设计了一个基于STC12C5A60S2的U盘音频播放器,介绍了播放器的设计思路和原理框图,分别就播放器的3个模块给出具体的实现电路,并提供了软件程序流程图。运行结果表明,播放器实现了预期功能,且具有较高的性价比和可拓性。
关键词 U盘;MP3播放器;STC12C5A60S2;VS1003
U盘即闪存盘,是一种用闪存进行数据存储的介质,通常使用USB插头。U盘体积极小、重量轻、可热插拔也可以重复写入。自其面世后,迅速普及并取代传统的软盘,成为主要的便携存储模式。随着U盘体积的不断减小、存储容量却不断加大,使得U盘的使用范围也不断拓展。然而U盘所储存的数据,现今仍大多通过计算机提取并进行处理,这也局限了U盘的发展范围。
笔者认为,针对某一特定功能,剥离相应数据对计算机的依赖性,一方面可充分利用U盘数据,另一方面也发挥出USB协议的通用性,使U盘实现所用即所得的便携特性。基于此,设计了U盘MP3播放器电路,主要完成U盘存储的音频文件的数据提取及功能运行任务。该播放器等同于个人计算机的音频处理模块,不仅可识别、提取U盘所存储的MP3、WMA或MIDI格式的文件,并可自行完成音频解码等数据处理工作,最后送入扬声器或耳机进行播放。
1 播放器组成原理框图
播放器组成原理如图1所示,共由3个主要模块组成:单片机处理模块,由STC12C4A60S52单片机及其外围电路组成;U盘读写模块,由CH375及其外围电路组成;为音频解码模块,由VS1003芯片及其外围电路组成。
播放器的工作过程是:MCU通过CH375读取来自USB存储设备的数据,并依据功能键的控制指令,将USB存储设备的相关数据送入音频解码模块,在VS1003解码后,送入扬声器或耳机。设置6个人机交互功能按键,分别实现播放、暂停、上一曲、下一曲、增大音量、减小音量等基本操作功能。
2 硬件电路设计
如图1所示,主要完成U盘读写、单片机处理及音频解码3个模块的电路设计。
2.1 U盘读写模块
U盘读写模块由CH375及其外围电路组成,其构成如图2所示。
CH375是USB总线通用接口芯片,支持USB主机及从设备方式。在本地端,CH375具有8位数据总线和读、写、片选控制线以及中断输出,可以方便地挂接到单片机/DSP/MCU/MPU等控制器的系统总线上。在USB主机方式下,CH375还提供了串行通讯方式,通过串行输入、输出和中断输出与单片机/DSP/MCU/MPU等相连接。
CH375的USB主机方式支持常用的USB全速设备,外部单片机可通过CH375按照相应的USB协议与USB设备通讯。CH375还内置了处理Mass-Storage海量存储设备的专用通讯协议的固件,外部单片机可以直接以扇区为基本单位读写常用的USB存储设备。
设计中,CH375采用主机方式,图中J1为USB插座,可连接U盘等存储设备,D1为指示LED,当检测到USB设备连接时灯亮。当TXD引脚连接到地时,CH375工作在并口方式,此时图中JP1接口D0~D7为双向数据总线,连接单片机。
单片机连接图中JP2接口,通过程序控制CH375,其功能及特性如表1所示。
单片机通过写命令来和数据来控制CH375,并通过CH375获得U盘数据。CH375内置相关的固件程序,自动处理了USB等协议。单片机可以通过CH375直接获取U盘扇区的数据,因此只需处理FAT文件系统层就可以实现对U盘文件的操作。
2.2 MCU模块
MCU模块,由STC12C4A60S52单片机及其外围电路组成。STC12C5A60S2是宏晶科技生产的单时钟/机器周期的单片机,指令代码完全兼容传统8051,但速度快8~12倍,提供Flash程序存储器60 kByte,1 kByte的EEPROM,片上集成1 280 Byte RAM。工作电压5.5~3.5 V,内部集成MAx810专用复位电路,4个定时器,2个串口,2路PWM,8路高速10位A/D转换,ISP/IAP,内置看门狗电路,外部掉电检测电路等。
图3为播放器MCU模块的硬件电路原理图,其中,JP4为电源输入接口,D1为电源指示灯,排阻Rp1为P0口的上拉电阻。JP2和JP3接到U盘读写模块对应的接口上。由于单片机在5 V电源下工作,而VS1003在3.3 V电源下,所以工作P1口应该接限流电阻到JP1再到音频解码模块对应的接口上。电路设置5个功能按键,“UP”为增大音量,“DOWN”为减小音量,“LEFT”为选择上一曲,“DOWN”为选择下一曲,而“PLAY”为播放/暂停键。
2.3 音频解码模块
音频解码模块,由VS1003芯片及其外围电路组成。VS1003是一个单片MP3/WMA/MIDI音频解码器和ADPCM编码器。它包含一个高性能低功耗的DSP处理器核VS_DSP、工作数据存储器、为用户应用提供5 kB的指令RAM和0.5 kB的数据RAM、串行控制和数据接口、4个常规用途的I/O口、1个UART、1个高品质可变采样率的ADC和立体声DAC、1个耳机放大器和地线缓冲器。
VS1003通过一个串行接口接收输入的bit流,可作为—个系统的从机。输入的bit流被解码,然后通过数字音量控制器到达1个18位过采样多位ε-△DAC。VS1003通过串行总线控制解码器,除了基本解码功能,在用户RAM中还可以做其他特殊应用,例如DSP音效处理。
图4为播放器的VS1003外围硬件电路原理图,其中,AVDD为模拟正电源3.3 V,CVDD为数字正电源2.5 V,IOVDD为I/O正电源3.3 V,模拟地与数字地用0电阻隔离。J1、J2均为3.5音频插座,J1为音频输出,J2为音频输入。
单片机通过对VS1003寄存器的写入来设置VS1003芯片,对VS1003数据缓冲区写入数据,使其解码。
3 软件程序流程图
单片机程序主要解决读取CH375数据,和写入VS1003寄存器用于播放音乐两个问题。其中,5种功能分别与图3的5个功能按键一一对应。软件程序流程图如图5所示。
4 结束语
如图所示,旨在将音频处理功能从计算机剥离,拓展U盘使用范围,设计了针对U盘音频文件数据处理的播放器电路,并用C语言编写了相关程序。该电路主要由3个模块构成,其中主控器选用增强型51单片机STC12C5A60S2,语音解码芯片采用芬兰VLSI公司的VS1003,而USB设备接口芯片选用南京沁恒公司的CH375,采用USB主机方式,外部单片机无需处理USB协议,就可直接以扇区为基本单位读写常用USB存储设备。
实际运行结果证明,该播放器完全符合设计预期,U盘即插即用,不仅可播放U盘中指定目录中的MP3文件、WMA文件、MIDI文件,还可以通过按键控制,实现各种功能。整个系统电路的性价比较高,具有较强的可拓性。