随着数字声音作为一种存储、处理和传输高保真声音的方法在消费电子等领域的广泛应用,与之相关的数字音频压缩技术也得到了充分的发展,MP3音乐格式的出现和Internet的日益普及更是将数字音乐推向了高潮。MP3压缩音乐的方式是通过一个运算法则,去掉声音中高频与低频的部分,大幅删减不必要的容量浪费,同时保留了人类所能感受到的音频部分,因此其好处在于大幅降低了数字声音文件的容量,而不会破坏原来的音质。音质越低的声音在MP3的运算法则下可以得到越高的压缩比例。本文研究了数字音频技术在嵌入式系统中的应用,给出了嵌入式MP3播放系统的软硬件设计。
系统结构
整个系统包括主控MCU(LPC2148)、解码器、DAC(VS1003)、SD卡、按键、OLED和锂电池等几部分,结构框图如所示。PC通过USB接口实现对SD卡的管理和对MP3歌曲、文档等数据信息的存储。系统启动后,由MCU控制将存储于Flash中歌曲的码流信息送入到VS1003芯片中,通过VS1003芯片解码以及其内含的高质量的立体声DAC和耳机驱动电路,实现MP3歌曲的播放功能。在按键的控制下,通过OLED中菜单选项的选择,实现对歌曲播放模式以及歌曲选择等功能;在播放的同时,OLED上显示的信息除滚动的歌曲名称信息外,还包括系统供电电池的电量及歌曲播放模式等。
系统硬件框图
硬件设计
1 电源模块
MAX1811是能够直接从USB端口取电的高集成度单体Li+蓄电池的充电芯片,充电电路如所示。本系统充电电流应设定为500mA,同时将SELV引脚置高,MAX1811芯片被配置为Li+电池充电至4.2V,CHG端允许芯片在充电期间点亮LED。
Li+蓄电池的充电电路
由于Li+蓄电池的单体放电电压为3.6V,不适合其他芯片的工作电压,所以需加LDO芯片SPR6200和SPR6201,将电压分别降低到3.3V和2.7V。
2 主控芯片
LPC2148是支持实时仿真和嵌入式跟踪的16/32位ARM7TDMI-S微控制器,内嵌512KB高速Flash存储器,因其功能强大,便于系统以后的升级。本系统中暂时只用到USB、SPI、SSP接口功能和ADC功能,其他功能的使用待扩展而定。
3 解码模块
VS1003解码芯片内部集成有VS_DSP处理器、立体声音频DAC和立体声耳机放大驱动器等。由于解码与控制芯片分离,所以音质好,控制也比较简单。
LPC2148通过其SPI接口对VS1003进行控制,给出了LPC2148与VS1003的硬件连接图。
LPC2148与VS1003连接电路
4 显示模块
VGS12864E是128×64行点阵的OLED单色、字符、图形显示模块。模块内置64×64的显示数据RAM,其中的每位数据对应于OLED屏上一个点的亮、暗状态;其指令系统与液晶显示驱动控制器HD61202兼容。本系统通过模拟时序的方式用8位I/O口与OLED模块8位数据总线D0~D7相连,再通过3位I/O口与液晶的指令控制或数据操作位RS、读写控制位R/W和使能控制位E相连的方式来控制OLED模块。
5 存储模块
采用SD卡作为存储介质的优点是容量大、体积小且防振。歌曲全部存储在SD卡中,SD卡工作于SPI模式。通过将LPC2148的SSP设置成SPI功能与SD卡相连接。同时,芯片的其他两个I/O口分别设置成卡完全插入到卡座中检测引脚和卡是否写保护的检测引脚。为SD卡的接口电路,其中VSS1、VSS2与GND相连接地;DAT1、DAT2接10kΩ下拉电阻;10和12引脚接一个大约100Ω的电阻后与LPC2148的I/O相连,并通过10kΩ电阻上拉;同时,3和8引脚也通过电阻上拉。
SD卡的接口电路
软件设计
本系统的软件设计包括三部分:显示程序、SD卡读写程序和MP3播放程序。为软件总体设计流程。
软件总体设计流程图
1 显示程序
系统使用的是不含字符和图形驱动的OLED点阵显示屏,所以系统服务程序包括了图形及中、英文字符的显示驱动控制。是显示模块的软件流程。显示程序入口参数是字符编码,根据编码判断字符的类型,根据不同类型的字符(符号、ASCII码、汉字)设置不同的查表基地址。然后将字符编码值作为查表偏移地址获得该字符的显示点阵数据存入显示缓冲区,调用执行程序完成字符显示刷新。显示程序还提供了所有ASCII字符和简体中文的查表接口。字库存储在LPC2148内部的Flash中。由于LPC2148的A/D的电压不能超过3.3V,所以Li+蓄电池电压通过电阻分压后送入A/D口,读出转换后的值通过适当处理也送入OLED成比例的显示电池供电情况。
OLED模块显示的软件流程图
2 SD卡读写程序
LPC2148内部带有一个完全兼容USB2.0规范的USB设备控制器。配置芯片内部的相关寄存器,使其仅仅使能芯片内部的逻辑端点0和2,分别支持USB协议中的控制传输和批量传输。然后初始化USB口相关驱动参数后尝试与PC建立通信联系。
3 MP3播放程序
VS1003主要通过串行命令接口(SCI)和串行数据接口(SDI)来接收LPC2148的控制命令和MP3的数据。通过xCS、xDCS引脚的置高、置低来确认是哪一个接口处于传送状态。
对于VS1003芯片的功能控制,如初始化、软复位、暂停、音量控制、播放时间的读取等,均是通过SCI写入到特定寄存器实现的。两条SCI指令之间要通过DREQ引脚信号判断上次处理是否完成。
MP3文件的数据流通过SDI传送。SDI可以工作在两种方式:native mode和compatibility mode,通过寄存器中SM NEWMODE位进行选择。本系统采用native mode,compatibility mode只是为了与以前的芯片兼容。是数据流处理过程。首先将通过SDI传送过来的MP3数据送解码器解码,然后根据SCI BASS寄存器内容将解码后的数据送入低音、高音增强器,之后送入声音控制单元,再送入音频FIFO。音频FIFO中的数据在通过采样速率转换成同一速率,再送入DAC。
数据流处理流程图
如果音频FIFO有足够的空间,VS1003会发出一个高电平DREQ数据请求信号,以表示可以接收至少32B的数据。如果输入解码器的数据无效或传送的速度不够,VS1003芯片会自动做静音处理。
结语
此MP3播放器解决方案也能实现PlusV/WAV/ADPCM/WMA/MIDI格式的音频文件播放。实验结果在电路板上调试通过,播放MP3音乐流畅,音质好。此外,若采用VS1003的升级芯片VS1033,在不改变电路的情况下系统可直接升级成AAC播放器。
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。