当前位置:首页 > 嵌入式 > 嵌入式教程
[导读]基于嵌入式的MP3音频点播系统设计

引言

随着电子技术的发展,嵌入式系统已广泛用于信息家电、移动通信、工业控制、军事电子等领域。这里介绍一种基于S3C2410处理器和嵌入式Linux系统的C/S结构音频点播系统,将MP3音频文件集中存储在网络FTP服务器上或本地U盘内,利用自主开发的MP3播放终端进行点播。该音频点播系统可广泛用于卡拉OK厅、语音教室和公共广播等场所。

2 系统功能及实现方案

嵌入式系统由底层硬件、设备驱动、操作系统、应用中间软件及应用系统5部分组成。基于嵌入式系统的MP3音频点播系统可广泛用于卡拉OK厅、语音教室和公共广播等许多场所,它由一个网络服务器和多个客户端播放器组成,是基于局域网的C/S结构的点播系统。首先在服务器中存储丰富的歌曲,用户可通过播放器自带的网络功能登陆服务器,以获取歌曲进行播放。同时该点播系统也可通过USB存储设备播放本地歌曲,也可将服务器上的音乐下载到本地USB存储设备上。

3 系统硬件设计

S3C2410内部集成有ARM920T内核和常用外围组件。由于它是一款专为手持设备设计的低功耗处理器。因此可以降低手持设备成本,具有较高的性价比。该系统采用模块化设计思想,依据功能可划分为网络、存储、解码、触摸屏、按键、电源、USB接口、UART接口等模块。其硬件结构如图1所示。

3.1 处理器模块S3C2410

它的功能和特性如下:①具有较高的处理速度,通过内部锁相环,最高可在203 MHz的系统时钟下运行;②具有极低的功耗。其核心供电电压为1.8 V,外围I/O口使用3.3 V电压;③具有3种低功耗控制方式,甚至可关闭CPU中除唤醒逻辑外的所有功能,极大地降低了功耗;④与其他ARM器件相比,S3C2410片上集成了更多的外设接口,如外部存储控制器、LCD,DMA,USBl.1,SD,M。

3.2 存储模块

存储模块由一片64 MB的SDRAM和两片16 MB的Flash组成,可为系统提供足够的存储空间。Flash存储器是一种可在系统电擦写,掉电后信息不丢失的存储器。与Flash存储器相比,SDRAM不具有掉电保持数据的特性,但存取速度大大高于Flash存储器,且具有读/写特性。

3.3 解码模块

决定MP3音质的关键是主控解码器件中的数模转换器(DAC)单元和耳机功率放大器单元。DAC负责把解码的数字音频流转换成可驱动耳机发音的模拟音频信号;耳机放大器则可把模拟音频信号放大到可驱动耳机的功率。该系统选用的解码器是UDAl380。S3C2410则通过I2S总线与解码器UDAl380通信。

3.4 网络模块

S3C2410自身并没有网络控制器,接入以太网时需增加独立的以太网控制器,在此选用DM9000作为以太网控制器。该器件具有通用的处理器接口、10M/IOOM自适应、4 K双字节静态存取存储器、低功耗、高处理性能,可支持3.3~5V的容差。

4 系统软件设计

该音频点播系统选用Linux操作系统,其软件结构如图2所示。从软件角度看,嵌入式Linux操作系统分为引导加载程序、内核、文件系统及用户应用程序4部分。

4.1 文件系统

文件系统就是用户程序与文件的集合,在Linux PC机上存放到一个统一的目录下,然后通过工具打包成一个映象(image)文件,这通常为压缩过程,烧写到板子上后,待Linux内核完成启动后,逐个挂接这些文件系统映象文件并做解包工作。当然第一个挂接的就是根文件系统(rootf),待rootf提供Shell后,即可通过Shell命令mount来挂载其他文件系统(FS)了。该系统设计选用RAMDISK文件系统。

RAMDISK中的重要目录:

(1)/bin:保存大多数init,busybox,shell文件管理实用程序等二进制文件。

(2)/dev:包含用在设备中的所有设备节点。

(3)/etc:包含系统的所有配置文件。

(4)/lib:包含所有必须的库,如libc,libdl等。

4.2 用户应用程序

应用程序负责与服务器网络通信,向服务器发送请求、下载歌曲、播放歌曲,并对整个播放过程进行控制管理。通过240x320TFT触摸式彩屏LCD把信息呈现给用户,用户可通过触摸屏和按键向系统发送请求。系统播放终端程序简要流程见图3。

应用程序主要分为主程序mainplay.c和Mp3play,Ftplib,Song_select,Song_list,Config_data这5个模块。mainplay.c主要用于生成主界面和下级界面、各菜单的管理、接收和传递用户的请求,并调用各模块完成相应的任务。设计中采用MilaiGUI实现界面编程。MiniGUI是一个图形用户界面支持系统,键盘和鼠标动作,产生由应用程序不断轮询的事件,这些事件发送到具有焦点的窗口,而且应用程序把这些事件交由与该窗口联系的例程来处理。<minigui/minigui.h>,<minigui/commh>和<minigui/window.h>是所有的MiniGUI应用程序都必须包括的头文件。MiniGUI程序的入口点为MiniGUIMain,即:

int MiniGUIMain (int argc, const char* argv[])

这5个模块中的核心为Mp3play模块。它包含了MP3的解码代码,通过该模块调用解码驱动程序,实现歌曲的解码播放、前进、后退、音量控制等,以完成MP3音乐文件的最终播放。

5 结语

嵌入式网络MP3播放终端集成了网络化和数字化的优点,是嵌入式系统在音频领域中的一个典型应用。该系统操作简单,适合于各种层次的用户。若改用无线方式进行设计,可通过无线网络随时随地下载、收听信息,这种播放器必将更受用户的欢迎。

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

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭