1、音乐播放器的设计与实现第一章 绪论1.1背景随着电子技术的飞速发展,嵌入式设备在各领域的应用越来越广泛,复杂度也越来越高,对其他开发方法也提出了更多的要求和更大的挑战。在嵌入式设备系统开发过程中需要将软件应用与操作系统编译连接成一个整体,然后下载到目标机上运行,所以,嵌入式设备的开发过程是一个复杂的过程。MP3作为高质量音乐压缩标准,给音频产业带来了具大的冲击。P3技术使音乐数据压缩比率大,回放质量高。如D格式的音乐数据压缩成MP格式,音效相差无己,但大小至少可压缩12倍。由于P3音乐的较小数据量和近乎完美的播放效果使其在网络上传输得以实现。1995年,MP3格式的音乐文件刚在网络上传播时,主
2、要用Wina等播放软件进行播放,使MP3音乐无法脱离计算机进行播放,给音乐欣赏带来了不便。近几年以来,随着MP播放器的出现及其技术的发展,人们对P3播放器的要求越来越高,制造商在MP3播放器的选型、设计、开发、附加功能和适用领域等方面做了很多努力,设计了多种方案。本设计主要是利用AR技术设计一款新型的P3播放器.AR是ARM公司的/32位RI处理器,是适用于普通设备的一种高性价比的微控制器.本设计采用的MCU是三星公司推出的ARM芯片C24,具有低价格、低功耗、高性能、超小体积等特点主要适用于中高端场合,目前在嵌入式系统中正得到日益广泛的应用。S32440主频高达400,片上集成了丰富的资源:
3、如IS(Inter-I sond)总线与DMA控制器,为与数模转换器(DAC)的连接提供了一种理想的解决方案。MP3播放器的设计比较复杂且对处理器的要求较高,因而P3播放器必须仔细设计以降低成本。本设计是在ARM9平台上设计、实现一个MP3播放器。第二章 系统总体方案。1系统功能本设计提出了一种基于嵌入式RM处理器硬件平台的M3播放器设计方法.此播放器采用AM体系结构中的ARM9作为系统控制器,利用外围设备SB通用串行接口下载MP3歌曲,用lashcar存贮MP3文件.主要对MP3做了各个方面的功能分析,对硬件设计、软件设计、软件实现、系统编译等方面做了介绍。系统的主要部分是音频编码与解码,这
4、是系统设计的核心。M3播放器设计的突出问题就是硬件控制和软件控制,另外还有硬盘控制、键盘控制、液晶显示,这些控制都是基于一块芯片。基于ARM的P3播放器设计的软件体系结构采用分层模式,它包括软件层、硬件层、驱动层、操作系统层、及MP3播放器应用层。主要实现歌曲的播放。22 设计指标、P3工作电压为具有.3V左右,电流250A,具有音频解码和播放功能.2、通过U接口与大容量外部存储设备进行数据传输,能实现网络播放与下载、触摸屏输入功能。3 操作界面统一管理功能,支持mp3格式、wa格式,该P3播放器除具有播放音乐外还附有歌词同步等功能。4、P3在不充电的情况下待机2小时.2. 系统总体结构设计嵌
5、入式微处理器采用三星公司生产的M9处理器32440,处理器采用RM9处理器,它具有小体积、低功耗、低成本、高性能的特点是嵌入式微处理器的理想选择。同时,RM9处理器可以运行嵌入式操作系统,处理速度足够软件解码,扩充性好,是目前理想的解决方案。本设计的系统总体结构如图。三星公司推出的基于AR内核2位RIS嵌入式微处理器S3C2440,最高可运行在00MHz。该芯片的功能强大,完全能够满足3定点或浮点解码程序的实现,还能够将Liux操作系统移植进入该芯片,实现包括播放MP3在内的多进程,多任务处理,是一种理想的解决方案。图2系统总体结构图第三章 硬件详细设计方案 31 硬件设计说明系统设计的硬件部
6、分主要包括电源、AM微处理器芯片、存储芯片、US接口芯片以及音频芯片等。可归结为两个部分:(1) 微处理器S3C2440,及其外围电路,具体包括复位电路,存储模块(包括FASH、AM和RM)、电源。(2)系统的外围部分:音频接口、ART、UB接口、带触摸屏的LCD、调试及下载接口.音频编解码可以采用PHILPS的CB00等芯片。LCD可以采用320X240的TFT液晶显示器,电源则宜用可充电锂电池。图31 硬件系统结构图如上图3.1可知,在此次设计中,MP3主要组成部分是:CU、M3解码部分、音频放大器、FLASH 存储器及SDAM存储器。我们所设计的MP3播放器以微处理器3C244O为中心,
7、包括外部存储器、串口R、音频接口、带触摸屏的CD、U接口、复位电路、调试及下载接口。解码部分由软件完成。整个播放器整体控制.此MP播放器的核心是三星公司的S340芯片。系统可以分为核心部分、音频编解码部分、音频输出、液晶控制等几个部分,此外还有必不可少的电源管理等部分.音频编解码可以采用PHLIS公司的UCB1400芯片。D可以采用试验箱上的TF 显示器。硬件设计部分主要是S3C240与UC00芯片的连接.具体的模块说明如下。3。2 处理器模块S3C2440S3C240是三星公司生产的基于arm90T内核的SC微处理器,其主频可达203Mz,适用于信息家电、PDA、手持设备、移动终端等领域。S
8、3C244除具备一般嵌入式芯片所具有的总线、SDRA控制器和3个串口等外设之外,还具有TFT LCD控制器、UBae、USBost、C总线控制器、SP控制器、IIS音频接口、D&M存储卡接口等丰富的扩展功能、AD转换器,有PO(通用IO口),还有nandfl控制器,这些东西都有一些寄存器来控制.芯片工作电压3/.V,最高运行速度可达20MHz。由于它是一款专为手持设备设计的低功耗处理器因此可以降低手持设备成本,具有较高的性价比.该芯片是基于RM9而开发的多功能OC(sign opracontro1)。AR9是一种小型、快速、低能耗、集成式的内核 。它的功能和特性如下:具有较高的处理速度,通过内
9、部锁相环,最高可在203MHz的系统时钟下运行;具有极低的功耗.其核心供电电压为18 V,外围I/O口使用3.V电压;具有3种低功耗控制方式,甚至可关闭PU中除唤醒逻辑外的所有功能,极大地降低了功耗;与其他am器件相比,S3C410片上集成了更多的外设接口,如外部存储控制器、CD,MA,USl.1,SD,M.M卡控制器、UART,PI接口、I2总线控制器和IS总线控制器、2S音频接口、PWM定时器、看门狗、11个外部I/O口、2个外部中断源、A/D转换器和触摸屏接口、实时时钟及片上LL的时钟产生等。使用集成接口,有利于功能的扩展。3。3存储模块存储模块由一片64 M的SDR和两片16 MB的F
10、lsh组成,可为系统提供足够的存储空间。Flash存储器是一种可在系统电擦写,掉电后信息不丢失的存储器。与Flash存储器相比,SDRA不具有掉电保持数据的特性,但存取速度大大高于Flash存储器,且具有读/写特性。因此系统中DAM主要用作程序的运行空间、数据及堆栈区。3。 音频解码/编码模块决定音质的关键是主控解码器件中的数模转换器(DA)单元和耳机功率放大器单元。C负责把解码的数字音频流转换成可驱动耳机发音的模拟音频信号;耳机放大器则可把模拟音频信号放大到可驱动耳机的功率。该系统音频解码编码模块采用PIIPS公司的UCB100芯片,UCB4的外部接口共有48个管脚,大部分都提供AC Lin
11、k、中断、音频、ADC、触屏、功率和其它接口。其接口电路图如图3所示。UCB14是一种用于音频处理的0位立体声解码/编码器。它在一个芯片上集成了音频解码/编码功能、一个触屏控制器和功率管理接口。10个通用管脚可进行可编程输入/输出,使得主机控制器可执行控制功能和监控运行状态.在此次设计中,UCB400主要的作用是音频编解码器与触摸屏控制器,还有就是对电源管理进行监控。S34可通过C音频接口与U1400连接。图3。2 音频模块流程。5 网络模块SC24自身并没有网络控制器,接入以太网时需增加独立的以太网控制器,在此选用M9000作为以太网控制器。该器件具有通用的处理器接口、10M/100M自适应
12、、4双字节静态存取存储器、低功耗、高处理性能,可支持3.-5的容差。3。 带触摸屏的LC模块显示P3播放控制界面,通过触摸屏实现对播放和暂停,停止,音量递增,音量递减等功能的控制。LC可以采用试验箱上的30240的TFT液晶显示器。3。7 USB接口模块USB接口模块是连接U盘等存储设备为MP播放器提供歌曲来源。本设计中,主机是通过主控制器与USB设备进行数据传输的,B主控制器采用USB2.0标准和开放式主机控制器接口标准,可支持高速和低速的USB设备,具备内置的CU和内部缓存,与CU之间有一个静态存储器的接口。CP通过这个接口进行读写来完成US协议要求的控制和数据收发功能。USB主控制器提供
13、一系列的寄存器,系统通过对这些寄存器可以实现对USB主控制器的控制。8串口电路此MP3提供一个串口,用来调试硬件和软件.M2用来转换电平.UA用于开发调试控制和返回调试信息。3.9系统复位电路系统时钟输入由27MHz的外部晶振提供,而微处理器内核的工作频率为66MH,S3C244内部含有P电路实现倍频,因此,系统由内部PLL电路倍频至6MHz,供给U运行。系统复位信号由IMP1T芯片提供,并且设计了RESE按钮,可以在系统运行过程中随时复位操作,便于系统调试。3.10电源模块系统电源由C6206P332MR芯片提供,宜用可充电锂电池.第四章 系统软件设计方案总体上来说,系统软件包括操作系统、驱
14、动程序及播放器应用程序部分。4.1 软件总体设计在此次设计中,MP3播放器的软件体系结构采用分层模式,它包括硬件层、驱动层、操作系统层及3播放器应用层等,软件体系结构图如下所示41。图4 MP3播放器的软件体系结构图从软件角度看,嵌入式Linux操作系统分为引导加载程序、内核、文件系统及用户应用程序4部分.其一用于完成初始化AM,初始化串口、设置Lnux启动参数、调用Lnu内核映像等功能;其二为特定于具体硬件的定制内核以及控制内核引导系统的参数;其三为含根目录文件的系统建立Flash存储器设备的文件系统;其四为特定于用户的应用程序,即为播放程序。软件的核心是Li操作系统。首先需要设备驱动程序,
15、包括U、硬盘控制、音频控制、LCD等等。然后是文件系统.该设计采用的是通用的FAT32文件系统,在对Windows平台有很好的兼容性.硬件层包括了M播放器所需的物理设备:USB接口、音频接口芯片A9、3英寸的TF液晶屏等;设备驱动层包括上述各个设备的驱动程序的编写;操作系统层我们移植了nux2的操作系统,由操作系统来统一管理各个硬件设备;最上层是应用层,我们使用Q设计图形用户界面,通过移植开源的Mpla解码器实现对M文件的解码,播放、音量增减的控制。此P3播放器软件系统包括驱动程序、操作系统及3播放器应用程序3部分。2操作系统的实现在嵌入式系统中,通常并没有像BIOS那样的固件程序,因此整个系
16、统的加载启动任务就完全由Bootoadr来完成。BotLode的任务是初始化芯片和主板,通过修改相应的配置文件和驱动程序就可以实现移植过程中需要创建的开发板文件。42.1 嵌入式开发环境的搭建在此次设计中,硬件平台是基于XSBSE70试验箱的。嵌入式开发环境的搭建主要包括以下几个方面,如下:、虚拟机安装安装虚拟机,采用VMwre. 2、Linux系统安装在VMwre上安装EDHAT 企业版linux操作系统。安装完毕之后,安装VMareTols工具。、mim配置在启动红帽之前,要设置添加一个串口,设置成功之后,打开lu操作系统,在终端执行mic -s命令 ,会出现以下界面:选择serl prt
17、 eu,按照以下设置:设置串口,设置波特率为5200,硬件流控制设为无.具体如下:选择Save supas fl选择Eit即可启动minim4、Tftp配置 Ttp是类似于ftp的一个传输协议。它使用P和UP作为子协议。在目标板上,该协议被会在Botlodr下被用来下载enel和文件系统的镜像,传输媒质是以太网,以较高的速度. 安装ftp rp包的步骤如下:安装tftp-serr-0。179i86软件包在终端中输入命令:rp -ivh tftpserve.1.i86.rpm修改etc/xintdd/tftp文件,内容如下:serice ttpocket_type graoocol dwait=
18、 ysuse=rooterver=/s/sbininftpdserveargs-s/tftpbootser_args= -som/tftpbotdisleno5、在根目录下建立tpbot文件夹,将要下载的文件放在该目录中即可.6、bootp配置引导协议(OTP)是一种基于UP/IP的协议。这种协议允许正在启动的主机动态配置而无需用户监督。OOTP主要用于客户机从服务器获得自己的P地址,服务器的I地址以及启动映象文件名.在一个评估板系统中,这些协议通常是和f一起使用用来将内核和文件系统从C上下载到目标板中.Bop主要用来获得目标板和主机的ip信息,以便可以使用Ttp协议来传输文件。安装op-。4
19、.37。i38软件包在终端中输入命令:rpm ivhootp。3-7.i86.rpm 在/ec/inetd.d/目录下建立bootp文件,文件内容如下:srvic otpsdisbleoscket_ype=dgrampotool=dpwait=esuser=ootserve=/u/sbi/otpd在/etc/目录下建立otptab文件,内容如下test:ht 1:h= 0x125789a0:#ha=x123568999:ip=192.8.。5:m=255.5。250重启xnitd在终端中输入:/etc/rc。d/int。d/tdesart7、f配置8、交编译环境配置交叉编译环境的配置总共分为四
20、个部分:配置交叉编译环境,然后将交叉编译工具安装在opt目录下,试交叉编译环境,测试的时候用file命令查看文件。4。2。2 Bootlor烧写BotLoae 就是在操作系统内核运行之前运行的一段小程序.通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。 通常,Bot Lader 是严重地依赖于硬件而实现的,特别是在嵌入式世界.因此,在嵌入式世界里建立一个通用的 Bot oader 几乎是不可能的.尽管如此,我们仍然可以对Boo Loder 归纳出一些通用的概念来,以指导用户特定的oo oad 设
21、计与实现。下面介绍otLoder的烧写过程,以Lnu2.622.0内核为例,我们采用的烧写工具是jflahm。具体步骤如下:将botloar的映象文件boot拷贝JflashXSase27(jflashmm所在目录),并利用用Jlsh-XBe270目录中jfashmm程序,将ootlo映象文件oot烧写到开发板上。在 Jflsh_Xbas270文件夹下打开一个终端,同时给板子上电,输入命令:/Jflshm boot,即可完成boot的烧写。指令为:oolocalhost x2 #d Jflh_sbase70roolocalhos JflashSase270 jfsmm oot4.3内核、文件系
22、统的烧写Bootlade烧写成功后,接下来就进行内核和文件系统的烧写,具体步骤如下:(1)开发板上电,进入下载模式打开mincom,已经配置好了,拔掉JG下载线。按空格键,进入下载模式按空格键,进入下载模式按菜单0,51ordetmyadr : 192.168.0。5 sipddr : 。168.0100 hddr :00:2:88:8:CA:B1 utoboo : lod kernl; oad amds; o krnelme: zmae snae: roofig ey : 2 按键盘上的,进入命令行模式:0Comadine mobodet /查看系统状态将系统属性修改成以上状态按键盘上的1,
23、进入命令行模式:1View curtconfiguan,回车.然后按2,4等烧写成功后,可看到显示屏亮起来,显示当前的操作系统。.驱动程序的实现在嵌入式Linx系统中操作设备的方法,是将设备看作一个文件来访问。用户只需注意对文件的操作.在嵌入式Linu系统中一个设备表示为主设备和从设备。Linux系统的设备分为字符设备、块设备和网络设备种。字符设备是指存取时没有缓存的设备,块设备的读写都有缓存来支持,并且块设备必须能够随机存取,字符设备则没有这个要求。典型的字符设备包括鼠标、键盘、串行口等;块设备主要包括硬盘软盘设备、CROM等,这些设备要想在操作系统下正常运行,必须配置相应的驱动程序。在本系
24、统中,Flah及USB属于块设备,AUDO及LC属于字符设备.下面是读写ah存储器的驱动程序的主要代码:main()char uf406,f24096; it fd1,2; i( ((fd1=ope(“/d/sk5”,ORDOLY))= = 1)|(fd=oen(“/de/s”,O_RDONLY)= 1)pnf(“failre on open n”);xit();le(fdl,192L,);lsek(fd2,8192L,);if((red(d1,buf,sieof(f1)= -1)(rad(fdl,bu1,zeof(buf1)) = -1)pritf(“failue on ad n”):exi
25、t();for(=0;I sif(buf);+)if(u1i ! bi)Printf(“diferen at osetn”,i);exit();rintf(“ads tchn);P3解码部分芯片的驱动。音频驱动程序实现的主要功能是:(1)系统启动时可以完成芯片的初始化;()具体操作时可以提供给操作系统合适的软件接口。音频驱动初始化程序如下:vid STA013_nt(vd) if(A01SedComman(RESETREG,0,x00)复位ST013 STA01_PrintEro();f(T013_SndCond(TCO_R,0,000) /未激活状态 ST013_PrintEro(); f(
26、STA013_endCommand(PWR_C_RE,0,0x0)) /上电 STA013_PrtError(); (STA3_edComand(FSCN_,0, I STA13LFValeSysIno。Samlige))/选择采样频率STA013_itErrr();i(STA01_SendComand(IF_CON_REG,0,x2+(0)) /选择16位II数据格式 STA13_PrinEro(); if(SA03_SedCoa(ANGCTLRG,0,0) / x3, x选择DAC和Line输入模式 STA013PrntError(); if(A1_SendComand(GT_T_RE,0
27、,0x00) / A静音 STA013_rinrro();if(ST013SedComand(LH_VL_EG,,x00) /左声道音量 STA013rntEr();if(ST03_Sdommnd(RHP_VO_RG,0,x) /右声道音量 STA013_Prntrr(); if(SA3_SedComman(AT_CNG,0x)/数据传送激活 ST01_Printror();4.3 音频驱动电路音频设备驱动程序主要通过对硬件的控制实现音频流的传输,同时向上层提供标准音频接口。音频接口驱动向上提供2个标准接口:数字音频处理(DSP),负责音频数据的传输即播放数字化声音文件和录音操作等;混音器(MXE),负责对输出音频进行混音处理,如音量调节等。这2个标准接口分别对应设备文件d/oud/dsp和dev/soun/mixe.整个音频驱动的实现分为初始化、打开设备、DSP驱动、MIER驱动和释放设备等部分:设备初始化主要完成对CB40音量、采样频率、L3接口等的初始化,并且注册
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1