基于ARM的多通道专业MP3播放器设计

发布者:芳华逝水最新更新时间:2009-12-07 来源: 中国IT实验室关键字:S3C44B0X  μClinux  MP3播放器 手机看文章 扫描二维码
随时随地手机看文章

      1  引 言

  随着微电子技术的飞速发展,嵌入式产品以其自然的人机交互界面和丰富的多媒体处理能力迅速得以推广,并取得了巨大成功[1]。

      目前,在多媒体音频领域中,MP3播放器占据了绝对的主导地位。但现有的MP3播放器驱动能力非常有限,只适合个人使用,不能满足大型公共场所在不同区域播放不同背景音乐的多通道播放需要。基于以上分析,本文设计了一种基于S3C44B0X芯片的μClinux环境下的多通道专业MP3播放器。

  2  系统功能分析与结构设计

  多通道专业MP3播放器是专为满足公共语音广播市场的需求而设计的,其主要功能包括:

        (1)音频解码和播放功能;

        (2)通过USB接口与大容量外部存储设备进行数据传输;

        (3)操作界面统一管理功能;

        (4)多通道播放功能。

  为了提高系统运行效率,实现多通道播放管理,本系统选用三星公司的S3C44B0X作为核心处理器,主要负责数据转换,输出通道的选择,以及 LCD的控制。同时,选用意法半导体的STA013作为解码芯片,配合AK4393实现模拟音频信号的输出,此外,使用SL811HS和ISP1520提供两个主USB接口,以实现移动硬盘或U盘的挂接。其系统总体结构如图1所示:

图1 系统总体结构图

  3  系统硬件设计

  作为一种典型的嵌入式系统,其开发的优点在于软硬件的可裁剪性[2],在确保有一个稳定的最小系统以后,再对外围的设备进行扩展。此多通道专业MP3播放器的核心芯片S3C44B0X是基于arm7 而开发的多功能SOC(Signal Operation Control)。S3C44B0X除具备一般嵌入式芯片所具有的总线、SDRAM控制器和3个串口等外设之外,还具有TFT LCD控制器、USB Slave、USB Host、I2C总线控制器、SPI控制器、IIS音频接口、SD&MMC存储卡接口等丰富的扩展功能[3]。由于S3C44B0X对于SL811构建的主USB接口技术已经相当成熟,在这里就不再叙述。此外,S3C44B0X提供的标准接口可以支持市面上绝大多数型号的LCD显示屏,制作也相对简单,所以本文只对MP3播放器的解码实现部分和多通道的实现方法进行详细说明。

  3.1  MP3解码电路设计

  本系统解码部分的硬件采用了ST公司的STA013解码芯片以及AKM的AK4393芯片。STA013是一款优秀的MP3解码芯片,它通过 IIC总线来传输控制信息,通过串行数据线接收语音数据。AK4393是一款高品质的立体声DAC芯片,支持24bit/96KHz取样,采用 “复合比特”技术使芯片的解码更为快速和准确。

  解码部分与S3C44B0X的接口电路部分如图2所示。通过S3C44B0X的I/O口对STA013发送音频数据,解码过程由STA013的 DSP核来进行。STA013解码后的数字音频信号由SDO(串行数据输出), SCKT(串行时钟), LRCKT(左右声道时钟), OCLK(采样时钟)4个脚输出到D/A转换器AK4393。通过AK4393将得到的模拟音频信号,再经过功率放大电路放大后就可以直接驱动无源音箱。

图2 解码部分接口电路图

  此外,由于实现多通道的播放形式,所以需要在设计过程中提供多套相同的解码芯片和DAC。

  3.2  多通道功能的实现

  系统多通道播放采用的基本方法是(以四通道为例):当系统上电以后,解码控制信号为了实现对每一个解码通道的具体工作状态控制,通过采用外接一个四路转换开关(CD4066),控制各路通道解码芯片的工作状态。转换开关四路通道的输入部分连接CPU的IIC总线的IICSDA,通过与CPU相连的多个控制引脚(CTRL1,2,3,4),确定控制数据的传输方向。四路通道的时钟信号则直接连接在CPU上,只有控制数据传输时才发生作用。

  在播放过程中,CPU实时响应各通道传输数据的请求,选通该路的解码芯片,被选通的解码芯片对从总线上获取的mp3文件数据进行解码,而未被选通的解码通道则忽略总线上的音频数据。当数据请求的中断请求信号由高变低,系统开始响应下一次数据请求。通过这种各通道交替工作的方式,实现四通道同步播放的功能。工作原理图如图3所示:

图3 多通道工作原理图

  4  系统软件设计

  系统软件包括操作系统、驱动程序及播放器应用程序3部分。

  4.1  操作系统的实现

  在嵌入式系统中,通常并没有像BIOS那样的固件程序,因此整个系统的加载启动任务就完全由BootLoader来完成。BootLoader 的任务是初始化芯片和主板,系统选用的是U-Boot-1.1.2启动程序,因为U-Boot的优点在于对多系统和多平台的支持。由于S3C44B0X没有存储管理单元(MMU),所以无法移植标准的Linux内核,而μClinux主要是针对没有MMU的处理器设计的操作系统[4],因此可以作为播放器的操作系统平台进行移植。通过修改相应的配置文件和驱动程序就可以实现移植过程中需要创建的开发板文件。

        4.2  驱动程序的设计

  本系统所编译的μClinux内核中包含有USB、LCD等驱动程序,只要根据需要适当的修改便可以应用。但是对于MP3解码部分芯片的驱动需要自己编写。音频驱动程序实现的主要功能是:

  (1)系统启动时可以完成芯片的初始化;

        (2)具体操作时可以提供给操作系统合适的软件接口。音频驱动初始化程序如下:

  void STA013_Init(void)

  {

  if(STA013_SendCommand(RESET_REG,0,0x00))         //复位STA013

            STA013_PrintError();

  if(STA013_SendCommand(ACT_CON_REG,0,0x00))      //未激活状态

            STA013_PrintError();

  if(STA013_SendCommand(PWR_CON_REG,0,0x00))      //上电

            STA013_PrintError();

  if(STA013_SendCommand(FS_CON_REG,0,

  I STA013L_FsValue[SysInfo.SamplingIndex]))            //选择采样频率

            STA013_PrintError();

  if(STA013_SendCommand(IF_CON_REG,0,0x02+(0<<6)))  //选择1

6位IIS数据格式

            STA013_PrintError();                     

  if(STA013_SendCommand(ANG_CTL_REG,0,0))          // 0x13, 0x12选择DAC

            STA013_PrintError();                        和Line In输入模式

  if(STA013_SendCommand(DGT_CTL_REG,0,0x00))       // DAC静音

            STA013_PrintError();

  if(STA013_SendCommand(LHP_VOL_REG,0,0x00))       //左声道音量

       STA013_PrintError();


  if(STA013_SendCommand(RHP_VOL_REG,0,0x00))       //右声道音量

            STA013_PrintError();

  if(STA013_SendCommand(ACT_CON_REG,0,0x00))       //数据传送激活

            STA013_PrintError();

  }

  4.3  播放程序的设计

  作为本系统的一个主要创新点,在多通道部分设计合理且高效的播放程序代码很重要,在这里采用的是将待解码的MP3文件先由USB设备复制到内存的缓冲区,再由缓冲区发送给解码器的方法。播放时,程序会根据每个通道的歌曲信息将MP3文件流从USB设备复制到相应的缓冲区中。其主要实现代码如下:

  for(i=0;i<4;i++){

                if((dbuf[i]=malloc(BUF_LEN))==NULL){

                           printf("Allocation %d Error n", i);

                           exit(1);

           }

  }

  4.4  操作界面的实现

  完整的MP3播放器设备需要有一个简洁的操作界面。本系统的操作界面选用MiniGUI软件进行编写,通过对MiniGUI运行模式的选择、 MiniGUI的移植[5]以及界面程序的编写,最终的操作界面如图4所示。整个操作界面简洁明了,系统在开机后提供了当前时间,以及播放、设置和复位按键,可以直接通过播放键来实现多通道播放功能,通过设置键进行歌曲目录的编排。

图4 播放器主界面

  5  结束语

  多通道MP3播放器与传统的MP3播放器相比,具有许多优势,可以满足大型公共场所对背景音乐更高性能的需求。多通道MP3播放器可以实现多个音频输出通道同步播放,并可以通过USB接口外挂存储设备实现歌曲的大容量存储。此外,系统还提供了串口、以太网等一系列接口,方便与外部进行数据交换和软件升级。

  本文创新点:设计了基于arm7平台下的多通道MP3播放器,实现了对外接移动硬盘或U盘上的mp3文件进行多通道同步播放。

关键字:S3C44B0X  μClinux  MP3播放器 引用地址:基于ARM的多通道专业MP3播放器设计

上一篇:基于Proteus的Arm处理器的SPI接口实现
下一篇:基于ARM单片机LPC2148的音频分析仪设计

推荐阅读最新更新时间:2024-03-16 12:27

基于ARM 7 的S3C44B0X 与多路模拟器控制板通讯接口设计与实现
  0 引言   ARM (Advanced RISC Machines)是近年来在各个领域日益得到广泛应用的32 位微处理器,它既是一个公司的名称,也同样是一类微处理器的通称,包括ARM7、ARM9、ARM9E、ARM10E、SecurCore 等系列。其中ARM7 系列处理器是低功耗的32 位RISC 处理器,它主要用于对功耗和成本要求比较苛刻的产品,它支持16 位的Thumb指令集,使用Thumb 指令集能以16 位的系统开销得到32 位的系统性能。   以ARM 作为微处理器核心嵌入式系统,因其功耗极低,主频高,具有进行高速运算处理能力,完成绝大多数复杂应用的特点。采用SamsungS3C44B0X 微处理器的嵌入式操
[单片机]
基于ARM 7 的<font color='red'>S3C44B0X</font> 与多路模拟器控制板通讯接口设计与实现
采用ARM7网络型汽车防盗系统的设计方案
引言     随着人们生活水平的提高,汽车已逐步进入家庭, 但日益猖獗的汽车盗窃案件也呈上升趋势,如何有效防止汽车被盗是车主们最关心的问题。近年来,科学技术飞速发展,结合各种新技术的新型汽车防盗装备相继出现。随着通信技术的发展, 无线远程通信技术也被应用于汽车领域中。基于S3C44B0X网络型汽车防盗控制系统是采用ARM 7微处理器构造的嵌入式系统,结合了传统防盗技术和新型的GPRS无线通信技术,实现已有防盗器现有各种功能的基础上,开发了远程控制功能,提高了防盗系统的安全性、灵活性和可靠性。 1 系统设计 1 .1 系统特点和功能     在对各类汽车防盗系统的特点进行分析后,设计了基于S3C44B0X网络型汽车
[嵌入式]
基于嵌入式系统的便携式多参数健康监护仪设计
近年来,人们越来越关注健康问题,生命健康监护已成为一个重要课题,以往的生命健康监护仪,体积通常比较大,而且价格昂贵,这类仪器主要应用于医院的病房,用做对病人监护。为适合普通人群在医院以外的地方,如家庭、野外等环境下对身体健康状况的监护要求,设计了一种便携式多参数健康监护系统,本系统具有体积小、使用方便、功能强大等优点,可随身携带,检测人体的某些重要生理参数,并实时显示。 1 系统总体设计 系统利用专门的传感器采集人体体温参数,脉冲波和心电信号,并对这些信号进行放大、滤波、A/D转换后,经数据处理系统进行计算,得到人体的重要生理参数并实时显示,这些参数包括血氧饱和度、心率、血液粘稠度和体温,另外系统还能显示人体的心电波形和脉搏波形,系
[单片机]
基于嵌入式系统的便携式多参数健康监护仪设计
基于S3C44B0X的U-Boot分析与移植
1.引言 嵌入式系统一般指非PC系统,它包括硬件和软件两部分。硬件包括处理器/微处理器、存储器及外设器件和I/O端口等。软件部分包括Bootloader、操作系统(OS)和应用程序。嵌入式系统的硬件和软件都必须高效率地设计、量体裁衣、去除冗余,这样才能在具体应用中实现更高的处理性能。其中,Bootloader是基于特定硬件平台来实现的,负责硬件的初始化、嵌入式系统的引导加载等工作,是嵌入式系统开发中的一个重要环节。嵌入式开发的硬件平台是根据应用需要定制的,因此不存在一个通用的Bootloader。U-Boot是一个支持多种CPU体系结构的 Bootloader。本文就是针对在自制开发板上实现U-Boot的移植。 2.U-Boo
[单片机]
基于<font color='red'>S3C44B0X</font>的U-Boot分析与移植
嵌入式软PLC虚拟机在电气测试中应用
  在一些电子部件产品测试时,早先很多生产厂家都使用继电接触控制系统。该系统由分立元件组成,由于线路简单,元件控制精度不高,加上抗干扰能力级差,所以运行不够稳定,误动作频繁,使产品的测试和分析不准确。   随着现代工艺的高精度要求,为了适应市场需求,采用可编程控制器对原继电电气控制系统进行改造,但由于各PLC厂家硬件模块和软件结构绝大多数都是专用的、互不兼容的,系统各模块间的交互方式、通信机制也各不相同,这使得控制系统相对独立、彼此封闭。随着技术的进步和市场竞争的加剧,这种专用体系结构的控制系统越来越暴露了其固有的缺陷。由于基于PC平台的软件PLC无需专门的编程器,可充分利用PC机的软硬件资源,直接采用梯形图或语言编程,具有良好
[测试测量]
基于ISP1362的U盘MP3播放器设计
播放器与存储器的一体化设计对MP3播放器的便携性起了关键性的作用,但与此同时,它又带来了很多新的问题。比如存储容量固定,如果想装下更多的歌曲只能去购买新的产品,造成了巨大的浪费。另一方面,一体化又限制了MP3播放器在其它领域的应用,比如汽车电子等。于是,将存储器与播放器分离,成为MP3的另一发展方向,也是开发这款U盘MP3播放器的意义所在。 主要芯片简介 AT89C51SND1是ATMEL推出的基于8位C51 MCU内核的MP3解码器芯片。它内置MP3硬件解码器,支持48kHz、44.1kHz、32kHz、24kHz、22.05kHz及16kHz采样频率,具有重低音、中音、高音均衡控制和重低环绕声效果。它可以适应市场上不同DA
[手机便携]
基于W801和Helix解码库的MP3播放器
.前言 此前我有一篇帖子提出将Helix修改成能够运行在任何处理器上的解码算法。并着重以基于RISC-V处理器的国产单片机进行测试。此前测试了中科蓝汛出品的AB32VG1单片机,虽然解码没有出现错误,但是由于AB32VG1的处理器性能不足无法流畅播放,且超频至极限速度230MHZ后仍然无法流畅播放,未果,又踏上了寻找足够性能的国产单片机的道路。之后发现了W801单片机,该单片机额定工作频率就达到了240MHZ,且其处理器还带有一级指令缓存,这样一通硬核加持下来应该性能足够了,实测也是果真如此,热血沸腾,构想终于实现,国产基于RISC-V单片机流畅运行Helix解码库。 上文提到的两篇此前我发的帖子如下: Helix MP3
[单片机]
基于W801和Helix解码库的<font color='red'>MP3播放器</font>
飞利浦MP3播放器借助矽玛特芯片扬威德国及智利市场
全球领先的混合信号多媒体半导体供应商矽玛特公司 (SigmaTel , NASDAQ 交易代号: SGTL) 宣布,飞利浦 MP3 播放器采用其便携式媒体系统级芯片 ( SoC )方案,借此傲视同侪,成为德国及智利市场的领导者。据飞利浦的市场调查显示,产品型号为 512MB 容量的 SA1100 及 1GB 容量的 SA1110 的飞利浦 MP3 播放器分别成为该两个市场中的销售冠军。两者均采用矽玛特 STMP3500 SoC 系列产品。 矽玛特全面的多媒体系统级芯片、固件及软件,能够支持飞利浦等公司开发出极具创意的产品。通过已获得专利的半导体解决方案、固件及软件
[手机便携]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved