音乐播放器的设计与实现.docx
- 文档编号:29508531
- 上传时间:2023-07-24
- 格式:DOCX
- 页数:19
- 大小:1.45MB
音乐播放器的设计与实现.docx
《音乐播放器的设计与实现.docx》由会员分享,可在线阅读,更多相关《音乐播放器的设计与实现.docx(19页珍藏版)》请在冰豆网上搜索。
音乐播放器的设计与实现
第一章绪论
1.1背景
随着电子技术的飞速发展,嵌入式设备在各领域的应用越来越广泛,复杂度也越来越高,对其他开发方法也提出了更多的要求和更大的挑战。
在嵌入式设备系统开发过程中需要将软件应用与操作系统编译连接成一个整体,然后下载到目标机上运行,所以,嵌入式设备的开发过程是一个复杂的过程。
3作为高质量音乐压缩标准,给音频产业带来了具大的冲击。
3技术使音乐数据压缩比率大,回放质量高。
如格式的音乐数据压缩成3格式,音效相差无己,但大小至少可压缩12倍。
由于3音乐的较小数据量和近乎完美的播放效果使其在网络上传输得以实现。
1995年,3格式的音乐文件刚在网络上传播时,主要用等播放软件进行播放,使3音乐无法脱离计算机进行播放,给音乐欣赏带来了不便。
近几年以来,随着3播放器的出现及其技术的发展,人们对3播放器的要求越来越高,制造商在3播放器的选型、设计、开发、附加功能和适用领域等方面做了很多努力,设计了多种方案。
本设计主要是利用技术设计一款新型的3播放器。
9是公司的16/32位处理器,是适用于普通设备的一种高性价比的微控制器。
本设计采用的是三星公司推出的9芯片S3C2440,具有低价格、低功耗、高性能、超小体积等特点主要适用于中高端场合,目前在嵌入式系统中正得到日益广泛的应用。
S3C2440主频高达400M,片上集成了丰富的资源:
如()总线与控制器,为与数模转换器()的连接提供了一种理想的解决方案。
3播放器的设计比较复杂且对处理器的要求较高,因而3播放器必须仔细设计以降低成本。
本设计是在9平台上设计、实现一个3播放器。
第二章系统总体方案
2.1系统功能
本设计提出了一种基于嵌入式处理器硬件平台的3播放器设计方法。
此播放器采用体系结构中的9作为系统控制器,利用外围设备通用串行接口下载3歌曲,用存贮3文件。
主要对3做了各个方面的功能分析,对硬件设计、软件设计、软件实现、系统编译等方面做了介绍。
系统的主要部分是音频编码与解码,这是系统设计的核心。
3播放器设计的突出问题就是硬件控制和软件控制,另外还有硬盘控制、键盘控制、液晶显示,这些控制都是基于一块芯片。
基于9的3播放器设计的软件体系结构采用分层模式,它包括软件层、硬件层、驱动层、操作系统层、及3播放器应用层。
主要实现歌曲的播放。
2.2设计指标
1、3工作电压为具有3.3V左右,电流250,具有音频解码和播放功能。
2、通过接口与大容量外部存储设备进行数据传输,能实现网络播放与下载、触摸屏输入功能。
3.操作界面统一管理功能,支持3格式、格式,该3播放器除具有播放音乐外还附有歌词同步等功能。
4、3在不充电的情况下待机2小时。
2.3系统总体结构设计
嵌入式微处理器采用三星公司生产的9处理器S3C2440,处理器采用9处理器,它具有小体积、低功耗、低成本、高性能的特点是嵌入式微处理器的理想选择。
同时,9处理器可以运行嵌入式操作系统,处理速度足够软件解码,扩充性好,是目前理想的解决方案。
本设计的系统总体结构如图2.1。
三星公司推出的基于9内核32位嵌入式微处理器S3C2440,最高可运行在200。
该芯片的功能强大,完全能够满足3定点或浮点解码程序的实现,还能够将操作系统移植进入该芯片,实现包括播放3在内的多进程,多任务处理,是一种理想的解决方案。
图2.1系统总体结构图
第三章硬件详细设计方案
3.1硬件设计说明
系统设计的硬件部分主要包括电源、微处理器芯片、存储芯片、接口芯片以及音频芯片等。
可归结为两个部分:
(1)微处理器S3C2440,及其外围电路,具体包括复位电路,存储模块(包括、和)、电源。
(2)系统的外围部分:
音频接口、、接口、带触摸屏的、调试及下载接口。
音频编解码可以采用的1400等芯片。
可以采用320X240的液晶显示器,电源则宜用可充电锂电池。
图3.1硬件系统结构图
如上图3.1可知,在此次设计中,3主要组成部分是:
、3解码部分、音频放大器、存储器及存储器。
我们所设计的3播放器以微处理器S3C244O为中心,包括外部存储器、串口、音频接口、带触摸屏的、接口、复位电路、调试及下载接口。
解码部分由软件完成。
整个播放器整体控制。
此3播放器的核心是三星公司的S3C2440芯片。
系统可以分为核心部分、音频编解码部分、音频输出、液晶控制等几个部分,此外还有必不可少的电源管理等部分。
音频编解码可以采用公司的1400芯片。
可以采用试验箱上的显示器。
硬件设计部分主要是S3C2440与1400芯片的连接。
具体的模块说明如下。
3.2处理器模块S3C2440
S3C2440是三星公司生产的基于920T内核的微处理器,其主频可达203,适用于信息家电、、手持设备、移动终端等领域。
S3C2440除具备一般嵌入式芯片所具有的总线、控制器和3个串口等外设之外,还具有控制器、、、I2C总线控制器、控制器、音频接口、存储卡接口等丰富的扩展功能、转换器,有(通用口),还有控制器,这些东西都有一些寄存器来控制。
芯片工作电压3.3/1.8V,最高运行速度可达200。
由于它是一款专为手持设备设计的低功耗处理器.因此可以降低手持设备成本,具有较高的性价比。
该芯片是基于9而开发的多功能
(1)。
9是一种小型、快速、低能耗、集成式的内核。
它的功能和特性如下:
①具有较高的处理速度,通过内部锁相环,最高可在203的系统时钟下运行;②具有极低的功耗.其核心供电电压为1.8V,外围口使用3.3V电压;③具有3种低功耗控制方式,甚至可关闭中除唤醒逻辑外的所有功能,极大地降低了功耗;④与其他器件相比,S3C2410片上集成了更多的外设接口,如外部存储控制器、,,.1,,M。
卡控制器、,接口、I2C总线控制器和I2S总线控制器、I2S音频接口、定时器、看门狗、117个外部口、24个外部中断源、转换器和触摸屏接口、实时时钟及片上的时钟产生等。
使用集成接口,有利于功能的扩展。
3.3存储模块
存储模块由一片64的和两片16的组成,可为系统提供足够的存储空间。
存储器是一种可在系统电擦写,掉电后信息不丢失的存储器。
与存储器相比,不具有掉电保持数据的特性,但存取速度大大高于存储器,且具有读/写特性。
因此系统中主要用作程序的运行空间、数据及堆栈区。
3.4音频解码/编码模块
决定3音质的关键是主控解码器件中的数模转换器()单元和耳机功率放大器单元。
负责把解码的数字音频流转换成可驱动耳机发音的模拟音频信号;耳机放大器则可把模拟音频信号放大到可驱动耳机的功率。
该系统音频解码/编码模块采用公司的1400芯片,1400的外部接口共有48个管脚,大部分都提供、中断、音频、、触屏、功率和其它接口。
其接口电路图如图3所示。
1400是一种用于音频处理的20位立体声解码/编码器。
它在一个芯片上集成了音频解码/编码功能、一个触屏控制器和功率管理接口。
10个通用管脚可进行可编程输入/输出,使得主机控制器可执行控制功能和监控运行状态。
在此次设计中,1400主要的作用是音频编解码器与触摸屏控制器,还有就是对电源管理进行监控。
S3C2440可通过音频接口与1400连接。
图3.2音频模块流程
3.5网络模块
S3C2440自身并没有网络控制器,接入以太网时需增加独立的以太网控制器,在此选用9000作为以太网控制器。
该器件具有通用的处理器接口、10M/100M自适应、4K双字节静态存取存储器、低功耗、高处理性能,可支持3.3-5V的容差。
3.6带触摸屏的模块
显示3播放控制界面,通过触摸屏实现对播放和暂停,停止,音量递增,音量递减等功能的控制。
可以采用试验箱上的320*240的液晶显示器。
3.7接口模块
接口模块是连接U盘等存储设备为3播放器提供歌曲来源。
本设计中,主机是通过主控制器与设备进行数据传输的,主控制器采用2.0标准和开放式主机控制器接口标准,可支持高速和低速的设备,具备内置的和内部缓存,与之间有一个静态存储器的接口。
通过这个接口进行读写来完成协议要求的控制和数据收发功能。
主控制器提供一系列的寄存器,系统通过对这些寄存器可以实现对主控制器的控制。
3.8串口电路
此3提供一个串口,用来调试硬件和软件。
232用来转换电平。
用于开发调试控制和返回调试信息。
3.9系统复位电路
系统时钟输入由24.576的外部晶振提供,而微处理器内核的工作频率为66,S3C2440内部含有电路实现倍频,因此,系统由内部电路倍频至66,供给运行。
系统复位信号由811T芯片提供,并且设计了按钮,可以在系统运行过程中随时复位操作,便于系统调试。
3.10电源模块
系统电源由6206P332芯片提供,宜用可充电锂电池。
第四章系统软件设计方案
总体上来说,系统软件包括操作系统、驱动程序及播放器应用程序3部分。
4.1软件总体设计
在此次设计中,3播放器的软件体系结构采用分层模式,它包括硬件层、驱动层、操作系统层及3播放器应用层等,软件体系结构图如下所示4.1。
图4.13播放器的软件体系结构图
从软件角度看,嵌入式操作系统分为引导加载程序、内核、文件系统及用户应用程序4部分。
其一用于完成初始化,初始化串口、设置启动参数、调用内核映像等功能;其二为特定于具体硬件的定制内核以及控制内核引导系统的参数;其三为含根目录文件的系统建立存储器设备的文件系统;其四为特定于用户的应用程序,即为播放程序。
软件的核心是操作系统。
首先需要设备驱动程序,包括、硬盘控制、音频控制、等等。
然后是文件系统。
该设计采用的是通用的32文件系统,在对平台有很好的兼容性。
硬件层包括了3播放器所需的物理设备:
接口、音频接口芯片97、3.5英寸的液晶屏等;设备驱动层包括上述各个设备的驱动程序的编写;操作系统层我们移植了2.6的操作系统,由操作系统来统一管理各个硬件设备;最上层是应用层,我们使用设计图形用户界面,通过移植开源的解码器实现对3文件的解码,播放、音量增减的控制。
此3播放器软件系统包括驱动程序、操作系统及3播放器应用程序3部分。
4.2操作系统的实现
在嵌入式系统中,通常并没有像那样的固件程序,因此整个系统的加载启动任务就完全由来完成。
的任务是初始化芯片和主板,通过修改相应的配置文件和驱动程序就可以实现移植过程中需要创建的开发板文件。
4.2.1嵌入式开发环境的搭建
在此次设计中,硬件平台是基于270试验箱的。
嵌入式开发环境的搭建主要包括以下几个方面,如下:
1、虚拟机安装
安装虚拟机,采用。
2、系统安装
在上安装企业版操作系统。
安装完毕之后,安装工具。
3、配置
在启动红帽之前,要设置添加一个串口,设置成功之后,打开操作系统,在终端执行命令,会出现以下界面:
选择,按照以下设置:
设置串口,设置波特率为115200,硬件流控制设为无。
具体如下:
选择
选择即可启动
4、配置
是类似于的一个传输协议。
它使用和作为子协议。
在目标板上,该协议被会在下被用来下载和文件系统的镜像,传输媒质是以太网,以较高的速度。
安装包的步骤如下:
①安装0.17-9386软件包
在终端中输入命令:
0.17-9386
②修改文件,内容如下:
{
=
}
5、在根目录下建立文件夹,将要下载的文件放在该目录中即可。
6、配置
引导协议()是一种基于的协议。
这种协议允许正在启动的主机动态配置而无需用户监督。
主要用于客户机从服务器获得自己的地址,服务器的地址以及启动映象文件名。
在一个评估板系统中,这些协议通常是和一起使用用来将内核和文件系统从上下载到目标板中。
主要用来获得目标板和主机的信息,以便可以使用协议来传输文件。
①安装2.4.37386软件包
在终端中输入命令:
2.4.37386
②在目录下建立文件,文件内容如下:
{
}
③在目录下建立文件,内容如下
:
\
1:
\
0x123456789a00:
\
0x123456789999:
\
192.168.0.50:
\
255.255.255.0
④重启
在终端中输入:
7、配置
8、交编译环境配置
交叉编译环境的配置总共分为四个部分:
配置交叉编译环境,然后将交叉编译工具安装在目录下,试交叉编译环境,测试的时候用命令查看文件。
4.2.2烧写
就是在操作系统内核运行之前运行的一段小程序。
通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。
通常,是严重地依赖于硬件而实现的,特别是在嵌入式世界。
因此,在嵌入式世界里建立一个通用的几乎是不可能的。
尽管如此,我们仍然可以对归纳出一些通用的概念来,以指导用户特定的设计与实现。
下面介绍的烧写过程,以2.6.22.10内核为例,我们采用的烧写工具是。
具体步骤如下:
将的映象文件拷贝270(所在目录),并利用用270目录中程序,将映象文件烧写到开发板上。
在270文件夹下打开一个终端,同时给板子上电,输入命令:
,即可完成的烧写。
指令为:
[270]270
[270]#
4.2.3内核、文件系统的烧写
烧写成功后,接下来就进行内核和文件系统的烧写,具体步骤如下:
(1)开发板上电,进入下载模式
打开,已经配置好了,拔掉下载线。
按空格键,进入下载模式
按空格键,进入下载模式
按菜单0,
51>
:
192.168.0.50
:
192.168.0.100
:
00:
02:
88:
81
:
;;
:
:
:
2
按键盘上的0,进入命令行模式:
[0]
51>查看系统状态
将系统属性修改成以上状态
按键盘上的1,进入命令行模式:
[1],回车。
然后按2,3,4……等烧写成功后,可看到显示屏亮起来,显示当前的操作系统。
4.4驱动程序的实现
在嵌入式系统中操作设备的方法,是将设备看作一个文件来访问。
用户只需注意对文件的操作。
在嵌入式系统中一个设备表示为主设备和从设备。
系统的设备分为字符设备、块设备和网络设备3种。
字符设备是指存取时没有缓存的设备,块设备的读写都有缓存来支持,并且块设备必须能够随机存取,字符设备则没有这个要求。
典型的字符设备包括鼠标、键盘、串行口等;块设备主要包括硬盘软盘设备、等,这些设备要想在操作系统下正常运行,必须配置相应的驱动程序。
在本系统中,及属于块设备,及属于字符设备。
下面是读写存储器的驱动程序的主要代码:
()
{[4096],2[4096];
12;
(((1(“5”))==1)
(1(“5”))==1)
(“\n”);
();
}
(,8192L,O);
(2,8192L,O);
(((1,
(1))==-1)((,1,
(1))==-1)
{
(“\n”):
();
}
(0<
(1))
(1[i]2[i])
{
(“\n”,i);
();
}
(“\n”);
}
3解码部分芯片的驱动。
音频驱动程序实现的主要功能是:
(1)系统启动时可以完成芯片的初始化;
(2)具体操作时可以提供给操作系统合适的软件接口。
音频驱动初始化程序如下:
013()
{
(013(,0,0x00)) 复位013
013();
(013(,0,0x00)) 未激活状态
013();
(013(,0,0x00)) 上电
013();
(013(,0,
I013L[])) 选择采样频率
013();
(013(,0,0x02+(0<<6))) 选择1
6位数据格式
013();
(013(,0,0)) 0x13,0x12选择和输入模式]
013();
(013(,0,0x00)) 静音
013();
(013(,0,0x00)) 左声道音量
013();
(013(,0,0x00)) 右声道音量
013();
(013(,0,0x00)) 数据传送激活
013();
}
4.3音频驱动电路
音频设备驱动程序主要通过对硬件的控制实现音频流的传输,同时向上层提供标准音频接口。
音频接口驱动向上提供2个标准接口:
数字音频处理(),负责音频数据的传输即播放数字化声音文件和录音操作等;混音器(),负责对输出音频进行混音处理,如音量调节等。
这2个标准接口分别对应设备文件和。
整个音频驱动的实现分为初始化、打开设备、驱动、驱动和释放设备等部分:
⑴设备初始化主要完成对1400音量、采样频率、L3接口等的初始化,并且注册设备、打开设备。
为设备分配通道,根据采样参数计算出缓存内段的大小。
当缓存区和设置好后,读写操作主要对缓存操作。
⑵驱动的实现:
驱动实现了音频数据的传输即播放和录音的数据传输。
同时提供对1400中的何采样频进行控制。
⑶驱动的实现:
驱动只控制混音效果,并不执行读写操作,通过函数完成混音效果、音量的增减等功能。
4.43播放器软件的实现
本系统使用制作图形用户界面,利用开源的解码器对3文件进行软件解码,功能包括打开文件、播放和暂停、快进快退、上下曲、音量加减、显示时间进度、显示歌曲名、总的播放时间、各种状态信息等。
下面就一些重要功能的实现做简要的介绍。
4.4.1外部事件的响应
当用户通过触摸屏单击某个按钮时,的窗口在事件发生后将激发信号如(),可以通过调用()函数把这个信号和一个插槽(函数)连接起来,完成对事件的响应,对于其他外部的事件(如按键),可以通过函数来读取设备的值,并根据返回值转向相应的程序。
4.4.23文件打开功能
中的类提供了允许用户选择文件或者目录的对话框。
我们可以通过继承这个类,调用其中的函数,实现建立打开3文件和选择文件的对话框:
:
:
(".");
其中指文件过滤器,只有符合中设置的文件才能被读出。
该函数将返回所选择的3文件的文件名和路径名到中。
4.4.33播放功能
通过调用开源的解码程序对打开的3文件进行解码播放。
程序播放歌曲的命令是:
4.4.4上下曲功能
实现上一曲播放功能时,利用类打开3存放路径中的3歌曲列表:
("*3");
该函数将返回播放列表,将当前播放的文件与列表中文件一一比较,并且计数,当比较到相同的文件后,将此时的计数值减1,就得到了下一曲的文件名,然后将文件播放。
4.4.5音量调节功能
通过调用1400的驱动程序的接口的函数,可以实现音量的控制功能。
此3播放器软件是用C语言编写的,其中函数()够实现3文件的播放、暂停、停止。
此函数是采用不同参数取值实现不同功能的方式实现的。
()的形式为:
(*,*);其中:
参数取不同值时,所实现的功能不一样,1时实现播放;2时实现暂停;3时实现停止。
下面列出实现软件播放的主要代码:
(*)
{;
((,==1)
{
(“\n”);
();
}
(1,,);
附录
图一电路板的正面
图二电路板的反面
图三图
图三整体电路图
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 音乐 播放 设计 实现