新闻中心

EEPW首页 > 消费电子 > 设计应用 > 基于ARM的多通道专业MP3播放器设计

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

作者:徐英欣时间:2008-06-27来源:微计算机信息收藏

  4.2  驱动程序的设计

本文引用地址:http://www.eepw.com.cn/article/84900.htm

  本系统所编译的μ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)))  //选择16位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  操作界面的实现

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


图4 播放器主界面

  5  结束语

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

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

  参考文献

  [1] 王旭东,徐刚.基于Windows CE.Net 4.2操作系统播放器的应用研究[J].微计算机信息, 2006,22-6:77-79

  [2] 马忠梅,马广云,徐英慧等.处理器结构与应用基础[M].北京:北京航空航天大学出版社,2002

  [3] 王道乾,刘定智,文俊浩.基于处理器的MP3播放器分析与实现[J].计算机工程与设计, 2007,28-7:1595-1597

  [4] 李岩,荣盘祥.基于S3C44B0XμClinux系统原理及应用[M].北京:清华大学出版社,2005

  [5] 闫玉忠,石理.嵌入式Linux的MiniGUI研究和移植[J].单片机与嵌入式系统应用,2003,6-1:5-7

linux操作系统文章专题:linux操作系统详解(linux不再难懂)

上一页 1 2 下一页

评论


相关推荐

技术专区

关闭