摘 要:设计一种单片机MP3播放器,采用开源软件项目EFSL,利用其内存需求小、移植简单、完全免费等优点,通过设计底层驱动,实现了基于SD卡的FAT 文件系统在LPC2148上移植,并应用CrossWorks for ARM 1.6软件对EFSL文件系统进行配置和功能模块编译。通过软件调试,验证了设计的正确性。该设计为单片机应用的功能扩展提供了一种新的途径。
0 引 言
近几年来,随着数字技术的发展,人们对MP3播放器的要求越来越多元化,制造商在MP3播放器的选型、设计、开发、附加功能和适用领域等方面做了很多努力,设计了多种方案。在处理器速度越来越快、存储容量越来越大的趋势下,产品中数据的存储组织形式和存储器设置需要进行高效合理管理,这正是文件系统的功能。
而开源软件项目嵌入式文件库(Embedded FlieSystemLibrary,EFSL),依靠其内存需求小、移植简单、完全免费等优点,作为嵌入式文件系统,很适于解决小型单片机存储空间管理与功能扩展的问题。本文基于EFSL文件系统以及ARM 平台设计一款新型的嵌入式MP3播放器,具有一定的实用价值。同时为单片机摆脱操作系统束缚,实现单片机多媒体应用提供一种可行性参考方案。
1 硬件设计
系统硬件结构框图如图1所示,整个硬件系统以PHILIPS公司ARM7-TMDI内核的LPC2148为核心处理器,分别控制VS1003解码模块、SD卡接口模块、USB接口模块和人机交互功能模块。
图1 MP3播放器的硬件结构框图
1.1 主控芯片
LPC2148是支持实时仿真和嵌入式跟踪的16/32位ARM7TDMI-S 微控制器,内嵌512 KB 高速FLASH存储器,因其功能强大,便于系统以后的升级。
本系统中暂时只用到USB,SPI,SSP接口功能和ADC功能,其他功能的使用待扩展而定。解码模块VS1003内部集成有VS_DSP处理器、立体声音频DAC和立体声耳机放大驱动器等。由于解码与控制芯片分离,所以音质好,控制也比较简单。LPC2148通过其SPI接口对VS1003进行控制。
1.2 显示模块
显示模块采用VGS12864E,VGS12864E是128&TImes;64行点阵的OLED单色、字符、图形显示模块。模块内置64&TImes;64的显示数据RAM,其中的每位数据对应于OLED屏上一个点的亮、暗状态;其指令系统与液晶显示驱动控制器HD61202兼容。本系统通过模拟时序的方式用8位I/O口与OLED模块8位数据总线D0~D7相连,再通过3位I/O口与液晶的指令控制或数据操作位RS、读写控制位R/W 和使能控制位E相连的方式来控制OLED模块。
1.3 存储模块
采用SD卡作为存储介质,其优点是容量大、体积小且防振。歌曲全部存储在SD卡中,SD卡工作于SPI模式。通过将LPC2148的SSP设置成SPI功能与SD卡相连接。同时,芯片的其他两个I/O 口分别设置成卡完全插入到卡座中检测引脚和卡是否写保护的检测引脚。
2 软件设计
播放器采用四层结构来实现其功能。软件层次结构如图2所示。采用模块化的主要目的是方便实现模块移植性。
图2 播放软件层次结构
技术专区
- Alexa语音服务软件扩展STM32Cube
- 结合DNN API驱动未来神经网络应用的解决方案
- 针对于高端移动通信和汽车市场的四集群设计
- 一款基于帧捕捉的开源图形调试器应用设计
- 即将成为标准配置的最新安全技术:后视摄像系统