![]() |
广嵌科技 广嵌教育 English | |
|
基于ARM的多通道专业MP3播放器设计
来源:中电网 作者: 时间:2008-07-07 发布人:林逸
1 引 言 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))) //选择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 操作界面的实现 完整的MP3播放器设备需要有一个简洁的操作界面。本系统的操作界面选用MiniGUI软件进行编写,通过对MiniGUI运行模式的选择、MiniGUI的移植[5]以及界面程序的编写,最终的操作界面如图4所示。整个操作界面简洁明了,系统在开机后提供了当前时间,以及播放、设置和复位按键,可以直接通过播放键来实现多通道播放功能,通过设置键进行歌曲目录的编排。 ![]() 图4 播放器主界面 5 结束语 多通道MP3播放器与传统的MP3播放器相比,具有许多优势,可以满足大型公共场所对背景音乐更高性能的需求。多通道MP3播放器可以实现多个音频输出通道同步播放,并可以通过USB接口外挂存储设备实现歌曲的大容量存储。此外,系统还提供了串口、以太网等一系列接口,方便与外部进行数据交换和软件升级。 本文创新点:设计了基于ARM7平台下的多通道MP3播放器,实现了对外接移动硬盘或U盘上的mp3文件进行多通道同步播放。 ·上一条:离子迁移谱仪嵌入式系统的设计
|
相关信息 |
|||||||||||||||||||
| Copyright ©2005-2007 广东省嵌入式软件公共技术中心.All Rights Reserved.版权所有 复制必究 客户服务支持:020-32068395-832 24小时服务热线:13631411558 技术支持与报障:gdesc@midea.com.cn 020-32068395-807/809 粤ICP备05104135号 |