0 引 言
随着电子技术的发展, MP3 播放器是目前市场上流行的消费类数码产品之一, 具有大容量、高音质、小巧便携等特点而倍受广大消费者的青睐 。本文采用ETC 公司的微控制器ST C89C58RD+ , 结合解码芯片VS1003、USB 接口芯片CH375、LCD 等外围设备设计并实现了MP3 播放器。主要功能有: 播放VS1003 支持的所有音频文件, 包括MP3, WMA, WAV 文件[ 2] ,且音质非常好, 具有按键控制播放上一首/ 下一首、音量增减等, 可通过LCD 显示歌曲名字和播放状态信息等功能。
1 硬件系统设计
系统工作原理框图如图1 所示。系统启动后, 单片机通过USB 接口芯片CH375, 从U 盘中获取MP3 格式文件的数据, 并存入片内RAM 进行缓冲, 然后单片机定时将数据从缓冲区送到MP3 音频解码芯片VS1003, 实现解码并输出音频信号到耳机或者有源音响输出。用户可以通过键盘实现 “启动”、 “上一曲”、 “下一曲”、“音量控制”及 停止!等功能, 并将播放状态信息通过LCD 显示。系统框图如图1 所示。
1. 1 单片机读取MP3 数据模块
数据读取模块包括单片机控制器, U SB 串行数据转换成8 位并行数据CH375 芯片和MP3 格式数据存储U 盘3 部分。
1. 1. 1 单片机控制器
采用宏晶公司的ST C89C58RD+ 单片机, 该单片机最高可工作于33 MHz 时钟, 具有32 KB 的FLASH, 1 KB 的内部RAM, 引脚与指令系统均与51 单片机兼容 。本设计中, 单片机工作在30 MHz的系统时钟下, 能满足系统对数据带宽的要求。
1. 1. 2 USB 接口芯片CH375
CH375 是一个USB 总线通用接口电路, 支持HOST 主机方式和SLAVE 设备方式。CH375 内部集成了PLL 倍频器、主从U SB 接口SIE、数据缓冲区、被动并行接口、异步串型接口、命令解释器、控制传输的协议处理器、通用的固件程序等 。在本地端, CH375 具有8 位数据总线和读、写、片选控制线及中断输出, 可以方便地挂接到单片机、DSP 等控制器的系统总线上, 并内置海量存储固件 。CH375 的USB 主机方式支持各种常用的USB 全速设备, 外部单片机、DSP、MCU 可以通过CH375 按照相应的USB 协议与USB 设备通信, 支持常用的12 Mb/ s 全速U SB 设备。
1. 1. 3 工作原理
利用单片机实现将U 盘中的音频数据经CH375的USB 转串行接口传送至单片机内部RAM 缓冲, 以等待解码。其中CH375 是一款USB 总线的通用接口芯片, 可以方便地挂接到单片机的控制总线上, 同时CH375 的U SB 主机方式支持常用的USB 全速设备,外部单片机可以通过CH375 按照相应的U SB 通信协议与U SB 设备通信。
由于CH375 内置了USB 通信协议, 省去了对USB 通信协议的了解, 单片机可以直接调用A PI 库读写U 盘中的文件数据, 硬件上只需在51 单片机系统中增加一个CH375 芯片, 综合成本较低。CH375 支持全速的U SB??HOST 主机接口, 外围元器件只需要少量晶体和电容, 便可支持5 V 电源电压和3. 3 V 电源电压,CH375 芯片还支持低功耗模式, 正常工作时, 需要外部为它提供12 MHz 的时钟信号。电路原理如图2 所示。
1. 2 音频解码模块
音频解码模块包括2 大部分单片机控制器和专用MP3 音频解码芯片VS1003。
1. 2. 1 音频解码芯片VS1003
VS1003 是一个单片MP3/ WMA/ MIDI 音频解码器和ADPCM 编程器。它包含一个高性能、自主产权的低功耗DSP 处理器核VS_DSP, 并提供5KB 的指令RAM 和0. 5 KB 的数据RAM。产生MIDI/ SP??MIDI文件, 内含高性能片上立体声数/ 模转换器, 两声道, 无相位差, 在播放音频文件时不需要外加驱动电路,VS1003 内部自带耳机功放 , 只要调试好电路系统,接入耳机就可以听到美妙的音乐。同时, VS1003 为用户提供5. 5 KB 的片上RAM, 并支持SPI 串行通信的控制数据接口。
1. 2. 2 工作原理
系统上电启动后, 由单片机控制将存储于U 盘中歌曲的MP3 数据格式流信息通过CH375USB 接口芯片送入到V S1003 芯片中, 通过VS1003 芯片解码及其内含高质量的立体声DAC 和耳机驱动电路, 实现MP3歌曲的播放, 在按键的控制下, 可实现对歌曲的选择、音量增减等功能。VS1003 的所有数据和控制命令均通过SPI 总线接口实现, 由于设计中所采用的单片机没有SPI 接口, 因此, 在设计中采用单片机的3 个I/ O 口来模拟SPI 时序, 以达到实现SPI 通信功能。电路如图3所示。
1. 3 键盘及显示模块
键盘采用的是独立按键, 与单片机P30~ P34 相连接, 实现 开始!、 下一曲!、 上一曲!、 音量+ ! 和音量- !等5 个功能。播放的状态由Nokia5110 液晶显示, 该液晶为84 x 48 点阵的LCD, 可以显示4 行汉字, 并支持串行通信协议, 传输速率高达4 Mb/ s, 可全速写入显示数据, 方便地与单片机进行通信。该液晶外部信号线仅有9 条, 节约本来就紧张的I/ O 口, 其串行通信模式下的控制时序如图4 所示。
1. 4 电源模块
系统采用的是5 V 直流电源供电, 并通过5 V 转3. 3 V的SPX1117??3. 3 V 芯片给单片机, VS1003 解码器和U SB 专用芯片CH375 模块供电, 其电源电路原理如图5 所示。
2 软件系统设计
本系统单片机的软件设计采用C51 语言编写, 源程序共分3 个部分, 即: 单片机驱动CH375 程序, 单片机控制VS1003 实现音频解码程序, 按键和显示驱动程序。在编写CH375 模块部分的程序时, 用到了从南京沁恒公司官方网站下载的CH375 的API 函数库 “CH375HF4.LIB”文件, 简化了程序设计。因为单片机的硬件资源十分有限, 在硬件调试过程中, 出现在传送频率较高的歌曲时, 由于采样频率低, 带宽不够, 而造成声音失真。所以在系统的开发过程中, 应优化程序, 提高运行速度, 保证播放歌曲的流畅, 其软件流程如图6 所示。
3 结 语
设计的MP3 播放器采用51 单片机加VS1003 解码, 并通过CH375USB 专用芯片进行数据读取, 这种组合方式相比于采用AVR 或者MSP430 系列的高端单片机, 达到的播放效果也毫不逊色。系统的整个设计难点在于单片机如何高效的从U 盘中读取数据, 并以一定的时序将缓冲的数据传输给VS1003, 实现解码。在此采用的方法一是提高系统的时钟; 二是通过修改软件, 精简程序, 来加快了系统的传输速率, 使播放音乐更加流畅。