ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:96.12KB ,
资源ID:8425441      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8425441.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(音乐播放器的设计与实现.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

音乐播放器的设计与实现.docx

1、音乐播放器的设计与实现第一章 绪 论1.1背景随着电子技术的飞速发展, 嵌入式设备在各领域的应用越来越广泛, 复杂度 也越来越高, 对其他开发方法也提出了更多的要求和更大的挑战。 在嵌入式设备 系统开发过程中需要将软件应用与操作系统编译连接成一个整体, 然后下载到目 标机上运行,所以,嵌入式设备的开发过程是一个复杂的过程。MP3作为高质量音乐压缩标准, 给音频产业带来了具大的冲击。 MP3技术使 音乐数据压缩比率大,回放质量高。如 CD 格式的音乐数据压缩成 MP3格式,音 效相差无己, 但大小至少可压缩 12倍。由于MP3音乐的较小数据量和近乎完美的 播放效果使其在网络上传输得以实现。 19

2、95年,MP3 格式的音乐文件刚在网络上 传播时,主要用 Winamp等播放软件进行播放,使 MP3音乐无法脱离计算机进行 播放,给音乐欣赏带来了不便。近几年以来,随着 MP3播放器的出现及其技术的 发展,人们对 MP3播放器的要求越来越高,制造商在 MP3播放器的选型、设计、 开发、附加功能和适用领域等方面做了很多努力, 设计了多种方案。 本设计主要 是利用 ARM 技术设计一款新型的 MP3播放器。ARM9 是 ARM 公司的 16/32 位 RSIC 处理器,是适用于普通设备的一种高 性价比的微控制器。 本设计采用的 MCU 是三星公司推出的 ARM9 芯片 S3C2440, 具有低价格

3、、低功耗、高性能、超小体积等特点主要适用于中高端场合,目前在 嵌入式系统中正得到日益广泛的应用。 S3C2440主频高达 400M ,片上集成了丰 富的资源:如 IIS(Inter-IC sound)总线与 DMA 控制器,为与数模转换器(DAC) 的连接提供了一种理想的解决方案。MP3 播放器的设计比较复杂且对处理器的要求较高,因而 MP3 播放器必须 仔细设计以降低成本。本设计是在 ARM9 平台上设计、实现一个 MP3 播放器。第二章 系统总体方案2.1系统功能本设计提出了一种基于嵌入式 ARM 处理器硬件平台的 MP3 播放器设计方 法。此播放器采用 ARM 体系结构中的 ARM9 作

4、为系统控制器,利用外围设备 USB 通用串行接口下载 MP3 歌曲,用 flashcard存贮 MP3 文件。主要对 MP3 做 了各个方面的功能分析,对硬件设计、软件设计、软件实现、系统编译等方面做 了介绍。系统的主要部分是音频编码与解码,这是系统设计的核心。 MP3 播放 器设计的突出问题就是硬件控制和软件控制, 另外还有硬盘控制、 键盘控制、 液 晶显示,这些控制都是基于一块芯片。基于 ARM9 的 MP3 播放器设计的软件体 系结构采用分层模式,它包括软件层、硬件层、驱动层、操作系统层、及 MP3 播放器应用层。主要实现歌曲的播放。2.2设计指标1、MP3工作电压为具有 3.3V左右,

5、电流 250mA,具有音频解码和播放功能。2、通过 USB接口与大容量外部存储设备进行数据传输,能实现网络播放与 下载、触摸屏输入功能。3.操作界面统一管理功能,支持 mp3格式、wma格式,该 MP3播放器除具有 播放音乐外还附有歌词同步等功能。4、MP3在不充电的情况下待机 2小时。2.3系统总体结构设计嵌入式微处理器采用三星公司生产的 ARM9 处理器 S3C2440,处理器采用 ARM9 处理器,它具有小体积、低功耗、低成本、高性能的特点是嵌入式微处理 器的理想选择。同时, ARM9 处理器可以运行嵌入式操作系统,处理速度足够软 件解码,扩充性好,是目前理想的解决方案。本设计的系统总体

6、结构如图 2.1。三星公司推出的基于 ARM9内核 32位RISC嵌入式微处理器 S3C2440,最高可 运行在 200MHz。该芯片的功能强大,完全能够满足 MP3定点或浮点解码程序的 实现,还能够将 Linux 操作系统移植进入该芯片,实现包括播放 MP3在内的多进 程,多任务处理,是一种理想的解决方案。硬件部分 软件部分图 2.1 系统总体结构图第三章 硬件详细设计方案3.1硬件设计说明系统设计的硬件部分主要包括电源、 ARM 微处理器芯片、存储芯片、 USB 接口芯片以及音频芯片等。可归结为两个部分: (1) 微处理器 S3C2440,及其外 围电路,具体包括复位电路,存储模块(包括

7、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接口、复位电路、

8、调试及下载接口。解码部分由软件完成。整个播放 器整体控制。此 MP3 播放器的核心是三星公司的 S3C2440 芯片。系统可以分为核心部分、 音频编解码部分、 音频输出、 液晶控制等几个部分, 此外还有必不可少的电源管 理等部分。音频编解码可以采用 PHILIPS公司的 UCB1400芯片。LCD 可以采用 试验箱上的 TFT LCD 显示器。硬件设计部分主要是 S3C2440与 UCB1400 芯片 的连接。具体的模块说明如下。3.2处理器模块 S3C2440S3C2440是三星公司生产的基于 arm920T内核的 RISC 微处理器,其主频可 达 203MHz ,适用于信息家电、 PDA

9、、手持设备、移动终端等领域。 S3C2440除 具备一般嵌入式芯片所具有的总线、 SDRAM 控制器和 3 个串口等外设之外,还 具有 TFT LCD 控制器、USBSlave、USB Host、I2C 总线控制器、 SPI控制器、 IIS 音频接口、 SD&MMC 存储卡接口等丰富的扩展功能、 AD 转换器,有 GPIO(通 用 IO 口),还有 nandflash 控制器,这些东西都有一些寄存器来控制。芯片工作 电压 3.3/1.8 V,最高运行速度可达 200 MHz。由于它是一款专为手持设备设计的 低功耗处理器 因此可以降低手持设备成本, 具有较高的性价比。 该芯片是基于 ARM9 而

10、开发的多功能 SOC(signal operation contro1)。ARM9 是一种小型、 快速、 低能耗、集成式的内核 。它的功能和特性如下: 具有较高的处理速度, 通过内部锁相环, 最高可在 203 MHz 的系统时钟下运行;具有极低的功耗其核心供电电压为 18 V , 外围 I/O 口使用 33 V 电压;具有 3种低功耗控制方式,甚至可关闭 CPU 中 除唤醒逻辑外的所有功能, 极大地降低了功耗; 与其他 arm 器件相比,S3C2410 片上集成了更多的外设接口,如外部存储控制器、 LCD ,DMA ,USBl1,SD, M。MC 卡控制器、 UART ,SPI接口、 I2C

11、总线控制器和 I2S总线控制器、 I2S音 频接口、 PWM 定时器、看门狗、 117个外部 I/O 口、24 个外部中断源、 A/D 转 换器和触摸屏接口、实时时钟及片上 PLL 的时钟产生等。使用集成接口,有利 于功能的扩展。3.3存储模块存储模块由一片 64 MB 的 SDRAM 和两片 16 MB 的 Flash 组成,可为系统 提供足够的存储空间。 Flash 存储器是一种可在系统电擦写,掉电后信息不丢失 的存储器。与 Flash 存储器相比, SDRAM 不具有掉电保持数据的特性,但存取 速度大大高于 Flash存储器,且具有读 /写特性。因此系统中 SDRAM 主要用作程 序的运

12、行空间、数据及堆栈区。3.4音频解码 /编码模块决定 MP3 音质的关键是主控解码器件中的数模转换器 (DAC) 单元和耳机功 率放大器单元。 DAC 负责把解码的数字音频流转换成可驱动耳机发音的模拟音 频信号;耳机放大器则可把模拟音频信号放大到可驱动耳机的功率。 该系统音频 解码/编码模块采用 PHILIPS 公司的 UCB1400 芯片, UCB1400 的外部接口共有 48 个管脚,大部分都提供 AC Link 、中断、音频、 ADC 、触屏、功率和其它接 口。其接口电路图如图 3 所示。UCB1400 是一种用于音频处理的 20 位立体声解 码 /编码器。它在一个芯片上集成了音频解码

13、/编码功能、一个触屏控制器和功率 管理接口。 10 个通用管脚可进行可编程输入 /输出,使得主机控制器可执行控制 功能和监控运行状态。在此次设计中, UCB1400 主要的作用是音频编解码器与触摸屏控制器,还 有就是对电源管理进行监控。 S3C2440可通过 IIC 音频接口与 UCB1400 连接。音频数据图 3.2 音频模块流程3.5网络模块S3C2440 自身并没有网络控制器,接入以太网时需增加独立的以太网控制 器,在此选用 DM9000 作为以太网控制器。该器件具有通用的处理器接口、 10M/100M 自适应、 4K 双字节静态存取存储器、低功耗、高处理性能,可支持 3.3-5V 的容

14、差。3.6带触摸屏的 LCD 模块显示 MP3 播放控制界面,通过触摸屏实现对播放和暂停,停止,音量递增, 音量递减等功能的控制。 LCD 可以采用试验箱上的 320*240 的 TFT 液晶显示器。3.7USB 接口模块USB 接口模块是连接 U 盘等存储设备为 MP3 播放器提供歌曲来源。 本设计中, 主机 是通过主控制器与 USB 设备进行数据传输的, USB 主控制器采用 USB2.0 标准 和开放式主机控制器接口标准, 可支持高速和低速的 USB 设备,具备内置的 MCU 和内部缓存,与 CPU之间有一个静态存储器的接口。 CPU 通过这个接口进行读 写来完成 USB 协议要求的控制

15、和数据收发功能。 USB 主控制器提供一系列的寄 存器,系统通过对这些寄存器可以实现对 USB 主控制器的控制。3.8串口电路此 MP3 提供一个串口,用来调试硬件和软件。 Max232 用来转换电平。UART 用于开发调试控制和返回调试信息。3.9系统复位电路系统时钟输入由 24.576MHz 的外部晶振提供,而微处理器内核的工作频率 为 66MHz ,S3C2440内部含有 PLL 电路实现倍频,因此,系统由内部 PLL 电路 倍频至 66MHz ,供给 CPU 运行。系统复位信号由 IMP811T 芯片提供,并且设 计了 RESET 按钮,可以在系统运行过程中随时复位操作,便于系统调试。

16、3.10电源模块系统电源由 XC6206P332MR 芯片提供,宜用可充电锂电池。第四章 系统软件设计方案总体上来说,系统软件包括操作系统、驱动程序及播放器应用程序 3 部分。4.1软件总体设计在此次设计中, MP3 播放器的软件体系结构采用分层模式,它包括硬件层、 驱动层、操作系统层及 MP3 播放器应用层等,软件体系结构图如下所示 4.1。Mp3playApplicationLinuxOsFile Syetem Protocal StackDiversAudio, USB, HDD, LCDHardwarePhysical Layer图 4.1 MP3 播放器的软件体系结构图从软件角度看,

17、嵌入式 Linux 操作系统分为引导加载程序、内核、文件系统 及用户应用程序 4 部分。其一用于完成初始化 RAM ,初始化串口、设置 Linux 启动参数、 调用 Linux 内核映像等功能; 其二为特定于具体硬件的定制内核以及 控制内核引导系统的参数;其三为含根目录文件的系统建立 Flash 存储器设备的文件系统;其四为特定于用户的应用程序,即为播放程序。软件的核心是 Linux 操作系统。 首先需要设备驱动程序, 包括 USB、硬盘控 制、音频控制、 LCD 等等。然后是文件系统。该设计采用的是通用的 FAT32 文 件系统,在对 Windows 平台有很好的兼容性。硬件层包括了 MP3

18、 播放器所需的物理设备: USB接口、音频接口芯片 AC97、 3.5英寸的 TFT 液晶屏等;设备驱动层包括上述各个设备的驱动程序的编写;操 作系统层我们移植了 Linux2 6的操作系统, 由操作系统来统一管理各个硬件设 备;最上层是应用层,我们使用 QT 设计图形用户界面, 通过移植开源的 Madplay 解码器实现对 MP3 文件的解码,播放、音量增减的控制。此 MP3 播放器软件系 统包括驱动程序、操作系统及 MP3 播放器应用程序 3 部分。4.2操作系统的实现在嵌入式系统中,通常并没有像 BIOS那样的固件程序,因此整个系统的加 载启动任务就完全由 BootLoader来完成。B

19、ootLoader的任务是初始化芯片和主板, 通过修改相应的配置文件和驱动程序就可以实现移植过程中需要创建的开发板 文件。4.2.1嵌入式开发环境的搭建 在此次设计中,硬件平台是基于 XSBASE270 试验箱的。 嵌入式开发环境的搭建主要包括以下几个方面,如下:1、虚拟机安装安装虚拟机,采用 VMware。2、Linux 系统安装在VMware上安装 REDHAT 企业版 linux 操作系统。安装完毕之后,安装 VMwareTools工具。3、minicom配置在启动红帽之前, 要设置添加一个串口, 设置成功之后, 打开 linux 操作系统, 在终端执行 minicom -s命令 ,会出

20、现以下界面:选择serial port setup,按照以下设置:设置串口,设置波特率为 115200,硬件流 控制设为无。具体如下:选择 Save setup as dfl 选择 Exit即可启动 minicom4、Tftp配置Tftp是类似于 ftp 的一个传输协议。它使用 IP和UDP作为子协议。在目标板上,该协议被会在 Bootloader下被用来下 载kernel和文件系统的镜像,传输媒质是以太网,以较高的速度。安装tftp rpm包的步骤如下:1安装 tftp-server-0.17-9.i386软件包 在终端中输入命令: rpm -ivh tftp-server-0.17-9.i

21、386.rpm2修改 /etc/xinetd.d/tftp文件,内容如下: service tftpsocket_type = dgram protocol= udp wait= yes user= rootserver= /usr/sbin/in.tftpd server_args= -s /tftpboot server_args += -s /odm/tftpboot disable=no5、在根目录下建立 /tftpboot 文件夹,将要下载的文件放在该目录中即可。6、bootp配置引导协议( BOOTP)是一种基于 UDP/IP的协议。这种协议允许正在启动的 主机动态配置而无需用户监

22、督。 BOOTP主要用于客户机从服务器获得自己的 IP 地址,服务器的 IP地址以及启动映象文件名。在一个评估板系统中,这些协议通常是和 tftp 一起使用用来将内核和文件系 统从 PC上下载到目标板中。 Bootp主要用来获得目标板和主机的 ip信息,以便可 以使用 Tftp协议来传输文件。安装 bootp-2.4.3-7.i386软件包 在终端中输入命令: rpm -ivh bootp-2.4.3-7.i386.rpm在 /etc/xinetd.d/目录下建立 bootp文件,文件内容如下:service bootpsdisable=no socket_type=dgram protoco

23、l=udp wait=yes user=root server=/usr/sbin/bootpd3在 /etc/目录下建立 bootptab文件,内容如下test:ht= 1:ha= 0x123456789a00: #ha=0x123456789999: ip=192.168.0.50: sm=255.255.255.04重启 xinitd在终端中输入: /etc/rc.d/init.d/xinetd restart7、nfs配置8、交编译环境配置 交叉编译环境的配置总共分为四个部分:配置交叉编译环境,然后将交叉编 译工具安装在 /opt目录下,试交叉编译环境,测试的时候用 file 命令查看

24、文件。4.2.2Bootloader 烧写Boot Loader 就是在操作系统内核运行之前运行的一段小程序。通过这段小 程序,我们可以初始化硬件设备、 建立内存空间的映射图, 从而将系统的软硬件 环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。通常,Boot Loader 是严重地依赖于硬件而实现的, 特别是在嵌入式世界。 因 此,在嵌入式世界里建立一个通用的 Boot Loader 几乎是不可能的。尽管如此, 我们仍然可以对 Boot Loader 归纳出一些通用的概念来,以指导用户特定的 Boot Loader 设计与实现。下面介绍 Boot Loader的烧写过程,

25、以 Linux-2.6.22.10内核为例,我们采用的 烧写工具是 jflashmm。具体步骤如下:将bootloader的映象文件 boot拷贝 Jflash-XSBase270( jflashmm所在目录), 并利用用 Jflash-XSBase270目录中 jflashmm 程序,将 bootloader映象文件 boot烧写 到开发板上。在 Jflash_Xsbase270文件夹下打开一个终端,同时给板子上电,输入命令: ./Jflashmm boot,即可完成 boot的烧写。指令为: rootlocalhost pxa270 #cd Jflash_Xsbase270 rootloc

26、alhost Jflash-XSBase270 # ./jflashmm boot4.2.3内核、文件系统的烧写Bootloader 烧写成功后,接下来就进行内核和文件系统的烧写,具体步骤如下:( 1) 开发板上电,进入下载模式打开 minicom ,已经配置好了,拔掉 JTAG 下载线。 按空格键,进入下载模式按空格键,进入下载模式按菜单 0,51Boardsetmyipaddr : 192.168.0.50destipaddr : 192.168.0.100 myhaddr : 00:02:88:8E:CA:B1 autoboot : load kernel; load ramdisk;

27、bootkernelname : zImage fsname : rootfs.img delay : 2按键盘上的 0,进入命令行模式: 0Comanndline mode 51boardset /查看系统状态将系统属性修改成以上状态按键盘上的 1,进入命令行模式: 1 View current configuration, 回车。然后按 2, 3,4等烧写成功后,可看到显示屏亮起来,显示当前的操作系统。4.4 驱动程序的实现在嵌入式 Linux 系统中操作设备的方法, 是将设备看作一个文件来访问。 用 户只需注意对文件的操作。 在嵌入式 Linux 系统中一个设备表示为主设备和从设 备。

28、Linux 系统的设备分为字符设备、块设备和网络设备 3 种。字符设备是指存取时没有缓存的设备, 块设备的读写都有缓存来支持, 并且 块设备必须能够随机存取, 字符设备则没有这个要求。 典型的字符设备包括鼠标、 键盘、串行口等;块设备主要包括硬盘软盘设备、 CDROM 等,这些设备要想在 操作系统下正常运行,必须配置相应的驱动程序。在本系统中, Flash及 USB 属 于块设备, AUDIO 及 LCD 属于字符设备。下面是读写 Flash 存储器的驱动程序 的主要代码:main()char buf4096 ,buf24096;int fd1,fd2;if( (fd1=open( “ /de

29、v/dsk5 ” ,O_RDONLY)= = 1)|(fd1=open( “ /dev/dsk5 ”,O_RDO=N =L Y1)printf( “ failure on opne”n );exit(); lseek(fdl,8192L,O); lseek(fd2,8192L,O);if(read(fd1,buf ,sizeof(buf1)= = -1)|(read(fdl,buf1,sizeof(buf1)= = -1) printf( “ failure on rena”d ):exit();for(i=0;I sizeof(buf1);i+) if(buf1i != buf2i)Prin

30、tf( “ diferent at offsetn%”,d i);exit();printf( “ reads mnat”ch);MP3 解码部分芯片的驱动。音频驱动程序实现的主要功能是: (1)系统启动时可以完成芯片的初始化; (2)具体操作时可以提供给操作系统合适的软件接口。音频驱动初始化程 序如下:void STA013_Init(void) if(STA013_SendCommand(RESET_REG,0,0x00) /复位 STA013STA013_PrintError(); if(STA013_SendCommand(ACT_CON_REG,0,0x00) /未激活状态STA01

31、3_PrintError(); if(STA013_SendCommand(PWR_CON_REG,0,0x00) /上电STA013_PrintError(); if(STA013_SendCommand(FS_CON_REG,0, I STA013L_FsValueSysInfo.SamplingIndex) /选择采样频率STA013_PrintError(); if(STA013_SendCommand(IF_CON_REG,0,0x02+(06) /选择 1 6位 IIS 数据格式STA013_PrintError(); if(STA013_SendCommand(ANG_CTL_REG,0,0) / 0x13, 0x12 选择 DAC 和 Line In 输入模式 STA013_PrintError(); if(STA013_SendCommand(DGT_CTL_REG,0,0x00) / DAC 静音STA013_PrintError(); if(STA013_SendC

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1