当前位置:首页 > 单片机 > 单片机
[导读]摘要:设计一种单片机MP3播放器,采用开源软件项目EFSL,利用其内存需求小、移植简单、完全免费等优点,通过设计底层驱动,实现了基于SD卡的FAT文件系统在LPC2148上移植,并应用CrossWorks for ARM 1.6软件对EFSL文

摘要:设计一种单片机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码源移植简单、配置方便的优点。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

舍弗勒以"专注驱动技术的科技公司"为主题亮相IAA MOBILITY 2025(B3馆B40展台) 合并纬湃科技后首次亮相IAA MOBILITY,展示拓展后的汽车产品组合 凭借在软件、...

关键字: 电气 软件 驱动技术 BSP

香港2025年 9月12日 /美通社/ -- 全球领先的互联网社区创建者 - 网龙网络控股有限公司 ("网龙"或"本公司",香港交易所股票代码:777)欣然宣布,其子公司My...

关键字: AI 远程控制 控制技术 BSP

深圳2025年9月11日 /美通社/ -- 2025 年 9 月 10 日,第 26 届中国国际光电博览会(简称 "CIOE 中国光博会")在深圳盛大开幕。本届展会吸引力再创新高,全球超3800家优质...

关键字: 自动化 光电 CIO BSP

天津2025年9月11日 /美通社/ -- 国际能源署(IEA)数据显示,2024 年全球数据中心电力消耗达 415 太瓦时,占全球总用电量的 1.5%,预计到 2030 年,这一数字将飙升至 945 太瓦时,近乎翻番,...

关键字: 模型 AI 数据中心 BSP

北京2025年9月11日 /美通社/ -- 国际9月11日上午,2025年中国国际服务贸易交易会(以下简称"服贸会")—体育赛事经济高质量发展大会现场,北京经济技术开发区工委委员、管委会副主...

关键字: 5G BSP GROUP MOTOR

德国康佳特亮相上海工博会,展示多款应用就绪的嵌入式解决方案平台

关键字: 嵌入式 传感器 处理器

双方携手为客户打造以存储为核心的模块化基础架构,支持先进的多裸片架构设计

关键字: 非易失性存储 半导体 嵌入式

柏林2025年9月9日 /美通社/ -- 2025年9月5日,纳斯达克上市公司优克联集团(NASDAQ: UCL)旗下全球互联品牌GlocalMe,正式亮相柏林国际消费电子展(IFA 2025),重磅推出融合企...

关键字: LOCAL LM BSP 移动网络

深圳2025年9月9日 /美通社/ -- PART 01活动背景 当技术的锋芒刺穿行业壁垒,万物互联的生态正重塑产业疆域。2025年,物联网产业迈入 "破界创造"与"共生进化" 的裂变时代——AI大模型消融感知边界,...

关键字: BSP 模型 微信 AIOT

"出海无界 商机无限"助力企业构建全球竞争力 深圳2025年9月9日 /美通社/ -- 2025年8月28日, 由领先商业管理媒体世界经理人携手环球资源联合主办、深圳•前海出海e站通协办的...

关键字: 解码 供应链 AI BSP
关闭