基于嵌入式系统的多媒体音乐播放器
扫描二维码
随时随地手机看文章
摘要:为了改善音乐播放器传统界面,扩充功能,提高音质,基于ARM7嵌入式系统平台和FAT 32文件系统,设计了一款带有文本阅览功能的多媒体音乐播放器。它不仅能正确识别并显示存储在SD,MMC等存储卡内的音频文件,支持环绕立体声调节和重低音调节,还可通过液晶屏浏览存储在存储卡内的中、英文TXT文档。该播放器选用具有出色音频解码能力的VS1053解码芯片,它支持320 Kb/s的MP3或256 Kb/s的WMA音乐文件的播放。该播放器通过视听验证,实现了4种以上不同的音效,满足使用者对音效的不同喜好。实现了环绕立体声调节和真正的立体声双声道音频输出。同时在操作上简单便捷,具有友好的人机界面。
关键词:ARM7;SD卡;多媒体播放器;VS1053
0 引言
嵌入式系统具有处理速度快、低功耗、体积小、功能强大且易于移植等优点而得到广泛的应用。MP3(Moving Picture Experts Group Audio LayerⅢ)全称是动态影像专家压缩标准音频层面3。它设计用来大幅度地压缩音频数据量,并实现重放的音质与原来不经压缩的音频相比没有明显的下降。鉴于MP3编码方式的特点,将其作为音乐播放器的音频文件时,可以在有限的存储空间内存放更多的音频信息。现在的数字音乐播放器市场,采用ARM主控+DSP音频解码芯片+SD存储卡所构成的数字音乐播放系统具有强大的播放能力和较好的性价比,在中、高端音频解码领域内有着较强的生命力。本文针对嵌入式系统的开发特点,设计了基于嵌入式系统的MP3播放器。
1 系统组成
系统主要由主控制器LPC2138、音频解码芯片VS1053、存储设备SD卡、显示设备OCM12864、输入设备键盘和系统供电电源组成。其中各部分电路均采用模块化设计,各模块之伺通过杜邦线进行连接。系统框图如图1所示。
2 硬件系统
2.1 主控系统LPC2138
LPC2138是支持实时仿真和跟踪的16/32位ARM7TDMI-STM CPU,并带有64 KB RAM和512 KB的高速FLASH存储器。128位宽度的存储器接口和独特的加速结构使32位代码能够在最高时钟速率下运行。ARM7体系为32位构架,它在处理数据时相对于8位单片机效率明显提高,在处理文件系统所需要的大量的长整形数据的乘除运算时这种优势更为明显。同时它的硬件SPI,SSP总线控制器可以使控制器方便的与外部扩展设备进行连接。而且它的性价比较高,很适合用来做数字音乐播放系统的主控制器。
2.2 音频解码器VS1053
VS1053是VLSI Solution Oy公司生产的高性能、低功耗的以VS_DSP为内核的一款音频解码芯片,可轻松解码MP1,MP2,MP3,WMA,IMA ADPCM,General Midi 1,Ogg Vorbis,LC-AAC和HE-AAC等音频格式的文件,片内还集成有16 KB RAM。该芯片具有高信噪比DAC,功耗更低,并具有环绕立体声调节和高低频渲染等功能。采用VS1053芯片可以在不提高CPU主频的情况下实现320 Kb/s的MP3文件或256 Kb/s的WMA文件的音频解码工作,并且音质上有了明显的提高,信噪比可达90 dB以上,满足系统85 dB的要求。
2.3 I/O口分配
LPC2138主控制器直接采用了广州周立功公司的EasyARM开发板,减短了开发时间并有效保证了电路部分的稳定性。系统晶振采用11.059 2MHz的外部晶振,通过内置的PLL倍频电路,可以将主频升高到44.236 8 MHz,满足系统要求。I/O资源分配如表1所示。
LPC2138具有2个独立的SPI总线控制器(其中一个由SSP配置得到),SD卡均可通过SPI总线和处理器通信。将SPI接口分配给SD卡。
对于液晶屏,通过I/O口模拟其串行通信时序,因此只需分配两个I/O(数据线和时钟线)即可。
对于键盘部分,考虑到使用者操作的便捷性,共设计了5个按键。由于LPC2138的I/O资源非常丰富且该音乐播放器使用按键数量较少,故不采用矩阵译码键盘而直接使用了5个通用I/O口。这样简化了硬件设计和程序设计。[!--empirenews.page--]
2.4 SD卡存储器模块
SD卡的通信线在总线空闲状态下应保持高电平,因此总线上接有50 kΩ的上拉电阻。SD卡在上电初期,卡主控通过检测引脚1(DAT3)的电平来决定工作在SD模式还是SPI模式。当此脚高电平时,SD卡进入SD模式;当此脚为低电平时,SD卡则工作于SPI模式2。卡槽采用了非弹出式的卡座,可以有效地保证SD卡通信的稳定性和可靠性。采用杜邦线将SD卡的SPI总线接口和LPC2138的SSP总线接口对接起来,实现数据的通信。
2.5 OCM12864液晶显示
OCM12864液晶屏可以显示字母、数字符号、中文字型及图形,具有绘图及文字画面混合显示功能。它提供3种控制接口,分别是8位微处理器接口,4位微处理器接口和串行接口。在该系统中由于未涉及图形显示,且对显示的速度要求不是很高,因此采用串行接口实现与处理器的通信。OCM12864通过SCLK线和R/W线实现和处理器的串行通信。根据表1,将SCLK和R/W线与单片机分配的对应I/O用杜邦线连接起来即可。
2.6 MP3声音输出的功放单元采用UTC2822D
UTD2822D输入电压在1.8~15 V之间,在正常发热状态下工作电流约为1.4 A,可以使用在该设计当中。功放电路的设计原理图如图2所示。
2.7 输入设备
键盘输入采用了普通按键直接接处理器I/O口的方式。这种方式实现起来比较简单,而且由于按键较少,不会占用过多的I/O资源。
3 系统软件设计
总体软件设计即系统运行过程中的主逻辑,负责整个系统运行过程中各个状态之间的转换,程序流程图如图3,系统初始化完成以后,在音乐模式下,即可通过按键选择音乐目录中的音乐,解码WMA,MP3等格式的音频文件,并播放。
3.1 SD卡模块程序设计
对SD卡的初始化后,才可以对SD卡进行读/写操作。SD卡的初始化过程为先发送74个CLK以使SD卡达到正常工作电压并实现同步,然后CS_LOW;接着发送CMD0,若通信成功则应收到0x01的应答信号;接着再发送CMD1,收到的应答应该是0x00;最后CS_HIGH。至此,初始化完成。在初始化完成后,通过CMD16设置数据Block长度,然后可以通过CMD17进行数据的读取,流程图如图4所示。[!--empirenews.page--]
3.2 VS1053程序设计
VS1053采用SPI总线与处理器实现通信,因此基本的通信规则遵循SPI总线协议。VS1053数据处理流程如图5所示。对VS1053的操作主要包括复位和音频数据传送两个方面。对于音量设定,环绕立体声设定、高低频设定等,只需发送指令到特定的寄存器即可。发送数据时1次发送32 B到VS1053的数据缓冲区。在数据处理过程中DREQ为低,此时不允许继续发送数据,待数据缓冲区空时DREQ会变为高电平,可接着发送下32 B的数据,直到数据完全送完为止。复位流程和发送数组流程如图6、图7所示。
4 结语
基于ARM7平台和FAT 32文件系统,设计了该种带有文本阅览功能的音乐播放器。它可以正确识别并播放存储在SD,MMC等存储卡内的MP3和WMA文件,支持环绕立体声调节和重低音调节;使用者还可以通过液晶屏浏览存储在存储卡内的TXT文档,并支持中英文两种语言,由于得益于ARM7高达60 MHz的主频和VS1053出色的音频解码能力。该系统还支持码率高达320 Kb/s的MP3文件,信噪比达到了85 dB以上。同时该播放器还具有良好的人机交互界面,可以给使用者更好的使用体验。