音乐播放器的设计与实现.docx
《音乐播放器的设计与实现.docx》由会员分享,可在线阅读,更多相关《音乐播放器的设计与实现.docx(17页珍藏版)》请在冰豆网上搜索。
音乐播放器的设计与实现
第一章绪论
1.1背景
随着电子技术的飞速发展,嵌入式设备在各领域的应用越来越广泛,复杂度也越来越高,对其他开发方法也提出了更多的要求和更大的挑战。
在嵌入式设备系统开发过程中需要将软件应用与操作系统编译连接成一个整体,然后下载到目标机上运行,所以,嵌入式设备的开发过程是一个复杂的过程。
MP3作为高质量音乐压缩标准,给音频产业带来了具大的冲击。
MP3技术使音乐数据压缩比率大,回放质量高。
如CD格式的音乐数据压缩成MP3格式,音效相差无己,但大小至少可压缩12倍。
由于MP3音乐的较小数据量和近乎完美的播放效果使其在网络上传输得以实现。
1995年,MP3格式的音乐文件刚在网络上传播时,主要用Winamp等播放软件进行播放,使MP3音乐无法脱离计算机进行播放,给音乐欣赏带来了不便。
近几年以来,随着MP3播放器的出现及其技术的发展,人们对MP3播放器的要求越来越高,制造商在MP3播放器的选型、设计、开发、附加功能和适用领域等方面做了很多努力,设计了多种方案。
本设计主要是利用ARM技术设计一款新型的MP3播放器。
ARM9是ARM公司的16/32位RSIC处理器,是适用于普通设备的一种高性价比的微控制器。
本设计采用的MCU是三星公司推出的ARM9芯片S3C2440,具有低价格、低功耗、高性能、超小体积等特点主要适用于中高端场合,目前在嵌入式系统中正得到日益广泛的应用。
S3C2440主频高达400M,片上集成了丰富的资源:
如IIS(Inter-ICsound)总线与DMA控制器,为与数模转换器(DAC)的连接提供了一种理想的解决方案。
MP3播放器的设计比较复杂且对处理器的要求较高,因而MP3播放器必须仔细设计以降低成本。
本设计是在ARM9平台上设计、实现一个MP3播放器。
第二章系统总体方案
2.1系统功能
本设计提出了一种基于嵌入式ARM处理器硬件平台的MP3播放器设计方法。
此播放器采用ARM体系结构中的ARM9作为系统控制器,利用外围设备USB通用串行接口下载MP3歌曲,用flashcard存贮MP3文件。
主要对MP3做了各个方面的功能分析,对硬件设计、软件设计、软件实现、系统编译等方面做了介绍。
系统的主要部分是音频编码与解码,这是系统设计的核心。
MP3播放器设计的突出问题就是硬件控制和软件控制,另外还有硬盘控制、键盘控制、液晶显示,这些控制都是基于一块芯片。
基于ARM9的MP3播放器设计的软件体系结构采用分层模式,它包括软件层、硬件层、驱动层、操作系统层、及MP3播放器应用层。
主要实现歌曲的播放。
2.2设计指标
1、MP3工作电压为具有3.3V左右,电流250mA,具有音频解码和播放功能。
2、通过USB接口与大容量外部存储设备进行数据传输,能实现网络播放与下载、触摸屏输入功能。
3.操作界面统一管理功能,支持mp3格式、wma格式,该MP3播放器除具有播放音乐外还附有歌词同步等功能。
4、MP3在不充电的情况下待机2小时。
2.3系统总体结构设计
嵌入式微处理器采用三星公司生产的ARM9处理器S3C2440,处理器采用ARM9处理器,它具有小体积、低功耗、低成本、高性能的特点是嵌入式微处理器的理想选择。
同时,ARM9处理器可以运行嵌入式操作系统,处理速度足够软件解码,扩充性好,是目前理想的解决方案。
本设计的系统总体结构如图2.1。
三星公司推出的基于ARM9内核32位RISC嵌入式微处理器S3C2440,最高可运行在200MHz。
该芯片的功能强大,完全能够满足MP3定点或浮点解码程序的实现,还能够将Linux操作系统移植进入该芯片,实现包括播放MP3在内的多进程,多任务处理,是一种理想的解决方案。
图2.1系统总体结构图
第三章硬件详细设计方案
3.1硬件设计说明
系统设计的硬件部分主要包括电源、ARM微处理器芯片、存储芯片、USB接口芯片以及音频芯片等。
可归结为两个部分:
(1)微处理器S3C2440,及其外围电路,具体包括复位电路,存储模块(包括FLASH、RAM和ROM)、电源。
(2)系统的外围部分:
音频接口、UART、USB接口、带触摸屏的LCD、调试及下载接口。
音频编解码可以采用PHILIPS的UCB1400等芯片。
LCD可以采用320X240的TFT液晶显示器,电源则宜用可充电锂电池。
图3.1硬件系统结构图
如上图3.1可知,在此次设计中,MP3主要组成部分是:
CPU、MP3解码部分、音频放大器、FLASH存储器及SDRAM存储器。
我们所设计的MP3播放器以微处理器S3C244O为中心,包括外部存储器、串口UART、音频接口、带触摸屏的LCD、USB接口、复位电路、调试及下载接口。
解码部分由软件完成。
整个播放器整体控制。
此MP3播放器的核心是三星公司的S3C2440芯片。
系统可以分为核心部分、音频编解码部分、音频输出、液晶控制等几个部分,此外还有必不可少的电源管理等部分。
音频编解码可以采用PHILIPS公司的UCB1400芯片。
LCD可以采用试验箱上的TFTLCD显示器。
硬件设计部分主要是S3C2440与UCB1400芯片的连接。
具体的模块说明如下。
3.2处理器模块S3C2440
S3C2440是三星公司生产的基于arm920T内核的RISC微处理器,其主频可达203MHz,适用于信息家电、PDA、手持设备、移动终端等领域。
S3C2440除具备一般嵌入式芯片所具有的总线、SDRAM控制器和3个串口等外设之外,还具有TFTLCD控制器、USBSlave、USBHost、I2C总线控制器、SPI控制器、IIS音频接口、SD&MMC存储卡接口等丰富的扩展功能、AD转换器,有GPIO(通用IO口),还有nandflash控制器,这些东西都有一些寄存器来控制。
芯片工作电压3.3/1.8V,最高运行速度可达200MHz。
由于它是一款专为手持设备设计的低功耗处理器.因此可以降低手持设备成本,具有较高的性价比。
该芯片是基于ARM9而开发的多功能SOC(signaloperationcontro1)。
ARM9是一种小型、快速、低能耗、集成式的内核。
它的功能和特性如下:
①具有较高的处理速度,通过内部锁相环,最高可在203MHz的系统时钟下运行;②具有极低的功耗.其核心供电电压为1.8V,外围I/O口使用3.3V电压;③具有3种低功耗控制方式,甚至可关闭CPU中除唤醒逻辑外的所有功能,极大地降低了功耗;④与其他arm器件相比,S3C2410片上集成了更多的外设接口,如外部存储控制器、LCD,DMA,USBl.1,SD,M。
MC卡控制器、UART,SPI接口、I2C总线控制器和I2S总线控制器、I2S音频接口、PWM定时器、看门狗、117个外部I/O口、24个外部中断源、A/D转换器和触摸屏接口、实时时钟及片上PLL的时钟产生等。
使用集成接口,有利于功能的扩展。
3.3存储模块
存储模块由一片64MB的SDRAM和两片16MB的Flash组成,可为系统提供足够的存储空间。
Flash存储器是一种可在系统电擦写,掉电后信息不丢失的存储器。
与Flash存储器相比,SDRAM不具有掉电保持数据的特性,但存取速度大大高于Flash存储器,且具有读/写特性。
因此系统中SDRAM主要用作程序的运行空间、数据及堆栈区。
3.4音频解码/编码模块
决定MP3音质的关键是主控解码器件中的数模转换器(DAC)单元和耳机功率放大器单元。
DAC负责把解码的数字音频流转换成可驱动耳机发音的模拟音频信号;耳机放大器则可把模拟音频信号放大到可驱动耳机的功率。
该系统音频解码/编码模块采用PHILIPS公司的UCB1400芯片,UCB1400的外部接口共有48个管脚,大部分都提供ACLink、中断、音频、ADC、触屏、功率和其它接口。
其接口电路图如图3所示。
UCB1400是一种用于音频处理的20位立体声解码/编码器。
它在一个芯片上集成了音频解码/编码功能、一个触屏控制器和功率管理接口。
10个通用管脚可进行可编程输入/输出,使得主机控制器可执行控制功能和监控运行状态。
在此次设计中,UCB1400主要的作用是音频编解码器与触摸屏控制器,还有就是对电源管理进行监控。
S3C2440可通过IIC音频接口与UCB1400连接。
图3.2音频模块流程
3.5网络模块
S3C2440自身并没有网络控制器,接入以太网时需增加独立的以太网控制器,在此选用DM9000作为以太网控制器。
该器件具有通用的处理器接口、10M/100M自适应、4K双字节静态存取存储器、低功耗、高处理性能,可支持3.3-5V的容差。
3.6带触摸屏的LCD模块
显示MP3播放控制界面,通过触摸屏实现对播放和暂停,停止,音量递增,音量递减等功能的控制。
LCD可以采用试验箱上的320*240的TFT液晶显示器。
3.7USB接口模块
USB接口模块是连接U盘等存储设备为MP3播放器提供歌曲来源。
本设计中,主机是通过主控制器与USB设备进行数据传输的,USB主控制器采用USB2.0标准和开放式主机控制器接口标准,可支持高速和低速的USB设备,具备内置的MCU和内部缓存,与CPU之间有一个静态存储器的接口。
CPU通过这个接口进行读写来完成USB协议要求的控制和数据收发功能。
USB主控制器提供一系列的寄存器,系统通过对这些寄存器可以实现对USB主控制器的控制。
3.8串口电路
此MP3提供一个串口,用来调试硬件和软件。
Max232用来转换电平。
UART用于开发调试控制和返回调试信息。
3.9系统复位电路
系统时钟输入由24.576MHz的外部晶振提供,而微处理器内核的工作频率为66MHz,S3C2440内部含有PLL电路实现倍频,因此,系统由内部PLL电路倍频至66MHz,供给CPU运行。
系统复位信号由IMP811T芯片提供,并且设计了RESET按钮,可以在系统运行过程中随时复位操作,便于系统调试。
3.10电源模块
系统电源由XC6206P332MR芯片提供,宜用可充电锂电池。
第四章系统软件设计方案
总体上来说,系统软件包括操作系统、驱动程序及播放器应用程序3部分。
4.1软件总体设计
在此次设计中,MP3播放器的软件体系结构采用分层模式,它包括硬件层、驱动层、操作系统层及MP3播放器应用层等,软件体系结构图如下所示4.1。
图4.1MP3播放器的软件体系结构图
从软件角度看,嵌入式Linux操作系统分为引导加载程序、内核、文件系统及用户应用程序4部分。
其一用于完成初始化RAM,初始化串口、设置Linux启动参数、调用Linux内核映像等功能;其二为特定于具体硬件的定制内核以及控制内核引导系统的参数;其三为含根目录文件的系统建立Flash存储器设备的文件系统;其四为特定于用户的应用程序,即为播放程序。
软件的核心是Linux操作系统。
首先需要设备驱动程序,包括USB、硬盘控制、音频控制、LCD等等。
然后是文件系统。
该设计采用的是通用的FAT32文件系统,在对Windows平台有很好的兼容性。
硬件层包括了MP3播放器所需的物理设备:
USB接口、音频接口芯片AC97、3.5英寸的TFT液晶屏等;设备驱动层包括上述各个设备的驱动程序的编写;操作系统层我们移植了Linux2.6的操作系统,由操作系统来统一管理各个硬件设备;最上层是应用层,我们使用QT设计图形用户界面,通过移植开源的Madplay解码器实现对MP3文件的解码,播放、音量增减的控制。
此MP3播放器软件系统包括驱动程序、操作系统及MP3播放器应用程序3部分。
4.2操作系统的实现
在嵌入式系统中,通常并没有像BIOS那样的固件程序,因此整个系统的加载启动任务就完全由BootLoader来完成。
BootLoader的任务是初始化芯片和主板,通过修改相应的配置文件和驱动程序就可以实现移植过程中需要创建的开发板文件。
4.2.