您的位置 首页 分销

一种根据EFSL的嵌入式MP3播放器规划

摘要:设计一种单片机MP3播放器,采用开源软件项目EFSL,利用其内存需求小、移植简单、完全免费等优点,通过设计底层驱动,实现了基于SD卡的FAT文件系

摘要:规划一种单片机MP3播映器,选用开源软件项目EFSL,运用其内存需求小、移植简略、彻底免费等长处,经过规划底层驱动,完成了根据SD卡的FAT文件体系在LPC2148上移植,并运用CrossWorks for ARM 1.6软件对EFSL文件体系进行装备和功用模块编译。经过软件调试,验证了规划的正确性。该规划为单片机运用的功用扩展供给了一种新的途径。
关键词:EFSL嵌入式体系;单片机;MP3播映器

0 导言
近几年来,跟着数字技能的开展,人们对MP3播映器的要求越来越多元化,制造商在MP3播映器的选型、规划、开发、附加功用和适用范畴等方面做了许多尽力,规划了多种计划。在处理器速度越来越快、存储容量越来越大的趋势下,产品中数据的存储组织形式和存储器设置需求进行高效合理办理,这正是文件体系的功用。而开源软件项目嵌入式文件库(Embedded FlieSystemLibrary,EFSL),依托其内存需求小、移植简略、彻底免费等长处,作为嵌入式文件体系,很适于处理小型单片机存储空间办理与功用扩展的问题。本文根据EFSL文件体系以及ARM渠道规划一款新式的嵌入式MP3播映器,具有必定的实用价值。一起为单片机脱节操作体系捆绑,完成单片机多媒体运用供给一种可行性参阅。

1 硬件规划
体系硬件结构框图如图1所示,整个硬件体系以PHILIPS公司ARM7-TMDI内核的LPC2148为中心处理器,别离操控VS1003解码模块、SD卡接口模块、USB接口模块和人机交互功用模块。

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×64行点阵的OLED单色、字符、图形显现模块。模块内置64×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.1 开发环境建立
开发环境首要是建立在The Rowley Cross Studio IDE基础上进行EFSL编译。CrossWorks for ARM1.6运用GCC 4.1编译器。装置Cross Works for ARM 1.6软件并导入MP3Player.hzp项目文件。项目文件中现已包含了主板中的文件和设备装备文件。Rowley Cross Studio IDE主动加载一切文件后,将显现一切首要文件夹:Audio Render Driver文件夹(包含了DAC音频处理相关代码)、Demo Player文件夹(首要模块,可根据需求对其进行装备和修正)、EFSL文件夹(保存了EFSL嵌入式文件体系,经过此文件体系能够用播映器软件对MMC存储卡中的MP3文件进行读写操作)、EFSL Driver文件夹(保存存储设备根本读写操作驱动程序)、Libmad文件夹(首要编码文件,可根据需求改动相关代码以满意Libmad装备要求)。
2.2 文件体系装备与编译功用模块
文件体系装备与编译功用模块进行软件装备和文件体系编译。
2.2.1 设置项目文件途径
经过命令行东西,找到项目文件和包含文件。其途径为:
$(ProjectDir)/render-driver
$(ProjectDir)/libmad
$(ProjectDir)/efsl/inc
$(ProjectDir)/efsl/conf
$(ProjectDir)/efsl/inc/interfaces.
在ARM Flash Release和ARM Flash调试选项窗口的预处理选项卡装备文件中增加MP3 Player项目。
2.2.2 装备编译器
因为定点数字核算量要求十分高,并且扩展的数字指令集只能在32位上运转,所以代码编译也需求32位环境下进行编译,一起需求运用到USB存储器RAM及其仓库分配。USB RAM一般状况下不运转在LPC214X环境下,但Rowley Cross Studio IDE现已供给了此硬件设备的初始化。Philips_LPC2148-startup.s创立并放置在MP3播映器项目目录,以支撑USB RAM设备,还需求在代码中参加仓库分配代码到USB DMARAM的内存部分。
2.2.3 Libmad文件装备
Libmad能够在不同的渠道上运转一个库,并为ARM7供给更好的优化。其编译器相同需求设置体系运转环境变量。
2.2.4 装备EFS文件
存放在.\MP3Player\efsl\inc目录下的debug.h文件支撑半主机调试功用。经过相关代码能够设置一切调试音讯并经过JTAG调试器的I/O终端窗口进行显现。经过.\MP3Player\efsl\conf下的config.h装备文件,能够设置RAM内存运用水平和缓冲区巨细。
2.2.5 装备体系文件
因为文件初始化需求杰出的LPC2148运转环境,需求把LPC2148提高到最大功用(60 Hz),一起需求敞开PLL功用,设置IRQ中止办理定时器为0和VPB分频器为1。一起Philips_LPC214_Startup.s有必要包含相关预处理编译指令。要在IDE中设置编译器指令,只需求在项目浏览器窗口挑选Philips_LPC2148_Startup.s的文件,然后挑选预处理选项卡,并填写预处理器界说此特点。
2.2.6 编译批处理文件
要进行编译批处理文件,需求具有两个文件,一个是项目文件MP3Player,一个是针对ARM的RowleyCross Studio文件Rowley Associat es Limited。CrossWorks for ARM 1.6文件中有能够自行批处理文件:build_all_debug.bat,build_all_release.bat。

3 体系流程
体系启动后,先初始化硬件模块。由LPC2148读取SD卡的一些根本信息,如容量、扇区巨细、FAT表及根目录地点的启始扇区等。经过取得这些信息后,就呵以找出SD卡是否有能够播映的音乐文件。若有音乐文件,微处理器将经过SPI总线方法读出该文件的音频信息,并将歌曲的码流信息送入到VS1003芯片中,经过VS1003芯片解码以及其内含的高质量的立体DAC和耳机驱动电路,完成MP3歌曲的播映功用,软件体系流程图如图3所示。

4 调试
Main.c文件(源代码略)显现MP3播映器的作业进程。init_IOO函数LPC2148定时器0进行初始化,使之发生周期性的中止,并启动了一些数据结构。周期性中止速率要与解码器数据流相同,然后由efs_init(&efs,“\”)进行MP3文件调用,若找不到文件则会经过JTAG inter face接口向CrossStudio IDE传入“Could not open filesystem”参数,不然正常显现文件信息。其文件处理结果显现如图4所示。经过调试显现信息可知能正常显现文件信息。另经过什物制造并测验,此MP3播映器能流畅播映SD卡中的MP3文件,验证了本规划是正确可行的。

5 结语
本文根据开源软件项目EFSL规划了一款MP3播映器,介绍了播映器体系的硬件架构和软件架构以及EFSL相关码源移植和修正。经过Cross Works for ARM 1.6软件调试,验证了规划的可行性。整个规划表现了EFSL码源移植简略、装备便利的长处。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/bandaoti/fenxiao/134772.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部