《嵌入式课程设计 基于ram音乐播放器的设计与实现。》由会员分享,可在线阅读,更多相关《嵌入式课程设计 基于ram音乐播放器的设计与实现。(23页珍藏版)》请在金锄头文库上搜索。
1、 嵌入式系统课程设计报告嵌入式系统课程设计报告题 目 基于 RAM 音乐播放器的设计与实现院 系班 级姓 名学 号指导教师基于 RAM 音乐播放器系统设计与实现 目目 录录1 课题研究意义、现状及应用分析.11.1 课题研究意义11.2 课题研究现状 11.3 系统用例分析.21.3.1 普通用户用例分析 .22 系统总体方案设计及功能模块介绍.32. 1 系统总体设计.32.2 音乐播放前台功能模块设计 32.3 音乐播放实现后台功能模块设计.43 系统硬件平台及接口设计 .53.1 系统环境53.2 音乐播放前台模块硬件53.3 音乐播放实现后台模块硬件63.4 系统硬件接口设计64 系统
2、软件设计与实现74.1 主程序设计与实现74.2 键盘扫描程序设计与实现74.3 音乐播放实现后台模块的设计95 系统软件功能设计105.1 测试的意义和目的.105.2 测试方案105.3 系统软件测试105.4 系统硬件测试106 总结 .127 实现代码 .13基于 RAM 音乐播放器系统设计与实现11 1 课题研究意义、现状及应用分析课题研究意义、现状及应用分析1.11.1 课题研究意义课题研究意义随着科技的不断进步,越来越多的电子科技产品踊跃在我们的眼前,改变着我们的生活及工作,同时也推动了社会的发展与进步,但是科技技术在不断的更新,电子产品随之淘汰的速度就加快了,开发一个功能集全的
3、电子产品是在所必须的,在这个节约型的社会。“寸金光阴”十分贴切现今社会状况,这是一个分秒必争的社会,电子行业的不断发展,人们对消费电子类的需求量不断地增大,根据消费者需求设计的音乐播放器越来越受到大家的欢迎。嵌入式系统具有高度集成化、高稳定性、功能定制化、低功耗、高安全性、高性价比等特点,被认为是当今应用系统领域研究开发的主流。越来越多使用功能强大、价格低廉的嵌入式操作系统及其相应图形用户界面的不断发展,嵌入式软件的开发显得越来越重要,并且嵌入式软件其稳定性好,还极其方便嵌入到其它产品中而广受社会群体的欢迎。嵌入式软件开发的学习对我们学生来说是一个很好的契机,以后将有一个很好的发展。在数字化的
4、潮流下,嵌入式系统已成为当前研究和应用的热点之一了,嵌入式的手持设备诸如视音频多媒体应用就越来越广泛。通过实际动手操作,基本可以在 ARM 板实现一些自己想要的设置,了解和掌握了一些 ARM 开发板的基础知识,增强了对实际电路的认识,对板上的一些串口可以简单的应用了。1.21.2 课题研究现状课题研究现状娱乐是人们生活中必不可少的一部分,在嵌入式多媒体播放器方面,国内外已经出现了像 MP3MP4 和智能手机等众多样的便携式嵌入式多媒体播放器。这些都只能实现单一的播放或是固定的媒体格式,可扩展性比较差,现在这些功能模块都正在不断完善中,网络的发展影响着方方面面,随着也将会有远程控制管理的设计和实
5、现的普及。为给用户提供最舒适的服务。 在嵌入式系统上开发媒体播放器已经成为了一个技术热点,由于音乐播放器能够满足人们的视听享受已经逐渐成为了系统中不可或缺的重要组成部分,所以当前许多嵌入式产品中都包含媒体播放器。实现一个简单的音乐播放器。此播放器能够播放本地的音频文件,在功能方面,它还具备一些基本的音乐操作处理功能。基于 RAM 音乐播放器系统设计与实现21.1.3 3 系统用例分析系统用例分析1.3.11.3.1 普通用户用例分析普通用户用例分析普通用户可以自己选取喜爱的歌曲数字化版本,放入程序中,编译生成.bin文件,然后烧写到 RAM 板中,微处理器响应,蜂鸣器播放歌曲。简单的用户用例分
6、析图如图 1-1 所示。图 1-1基于 RAM 音乐播放器系统设计与实现3当用户烧入文件到开发板后,ARM 上所安置的 LCD 上就会有图像的显示,基于 RAM 音乐播放器系统设计与实现4可以设置 VSYNV 帧同步信号或 HSYNC 行同步信号等如图 1-2 所示。基于 RAM 音乐播放器系统设计与实现5图 1-2基于 RAM 音乐播放器系统设计与实现6基于 RAM 音乐播放器系统设计与实现72 2 系统总体方案设计及功能模块介绍系统总体方案设计及功能模块介绍2.12.1 系统总体设计系统总体设计系统主要由 S3C2440 微处理器、音频解码芯片、LCD、存储模块、USB 接口、输入设备键盘
7、和系统供电电源等组成。其中各部分电路均采用模块化设计,各模块之间通过总线进行连接。系统总体结构图如图 2-1 所示。图 2-1 2.22.2 音乐播放音乐播放前台功能模块设计前台功能模块设计这次的实验我们利用嵌入式开发板的蜂鸣器来制作音乐播放器,使用不同的声音频率来表达我们的 do,re,mi,fa,sol,la,si.而 LCD 界面用来显示音乐播放的相关信息,如图 2-2 所示。图 2-22.32.3 音乐播放实现后台功能模块设计音乐播放实现后台功能模块设计本设计是以 ARM2440 芯片板为基础,利用开发板上的蜂鸣器,通过软件编程对蜂鸣器进行发音频率、时间等的控制,进而驱动蜂鸣器来播放音
8、乐。本设计播放的为编制音乐,即对音乐先进行解码后再播放。图 2-3 基于 RAM 音乐播放器系统设计与实现8基于 RAM 音乐播放器系统设计与实现93 3 系统硬件平台及接口设计系统硬件平台及接口设计3.13.1 系统环境系统环境ARM 开发板的硬件配置 CPU、SDRAM、FLASH、LCD(包括键盘 LED 驱动 器,触摸屏)、以太网、USB、串口、调试接口(JTAG)、AD 及扩展。开发板与 主机之间采取 JTAG、COM 通信。宿主机在不同平台的搭建: 1)宿主机之 windows 平台开发环境:ADS1.2+超级终端ADS1.2:学会使用 ADS 平台软件,会用 AXD 进行调试。超
9、级终端:一般设置波特率 115200,数据位 8 位,停止位 1,无奇偶校验,软件硬件流控制设为无。 2)宿主机之 Linux 平台开发环境:Linux+minicomLinux:定制或全部安装。下载安装交叉编译器minicom:初始化,配置, 同 windows 下超级终端。3.23.2 音乐播放前台模块硬件音乐播放前台模块硬件音乐播放使用的是蜂鸣器,为了便于调试,设计了蜂鸣器驱动电路,如图 3-1 所示。开发板使用的是无源蜂鸣器。电容用于提高电路抗干扰性能。电阻起保护三极管的作用,当三极管突然截止时,无源蜂鸣器两端产生的瞬时感应电动势可以通过电阻迅速释放掉,避免叠加到三极管集电极上从而击穿
10、三极管。图 3-1 基于 RAM 音乐播放器系统设计与实现103.3 音乐播放实现后台模块硬件单片机演奏一个音符,是通过引脚,周期性的输出一个特定频率的方波。 这就需要单片机,在半个周期内输出低电平、另外半个周期输出高电平,周而复 始。 演奏时,要根据音符频率的不同,把对应的、半个周期的定时时间初始值, 送入定时器,再由定时器按时输出高低电平。如图 3-2 所示为音频电路图。图 3-2 3.3.4 4 系统硬件接口设计系统硬件接口设计在嵌入式开发板中,蜂鸣器与 GPB0 口相接。从系统角度看,嵌入式系统是多种系统要素之间的很多接口的集合,这里罗列的主要资源是系统处理器。处理器接口可以分成两大类
11、,分别标识为本地总线和硬件总线。值得注意的是,本文中的总线是根据处理器利用资源时的访问类型单独定义的,与具体的硬件连接没有对应关系。本地总线是资源与处理器之间的接口总线,它允许无限制的连续访问。无限制访问意味着处理器能够利用其内部数据类型(如字节、字和双字)访问一个资源的所有要素;连续访问是指所有资源要素占用的资源地址空间是连续的,中间没有任何间隔。RAM 和 EPROM 就是与本地总线接口的常见范例。硬件总线与资源的连接通常有某些限制,如大小、位置、寻址、地址空间或重定位等。只接受字写入的 I/O 端口,或者使用前必须先作映射的 PCI 总线上的外围芯片是硬件总线接口的一些实例。采用硬件总线
12、连接对软件设计工程师访问资源有一定的限制,可能在软件设计、开发和集成过程中产生复杂代码和代码错误。基于 RAM 音乐播放器系统设计与实现114 4 系统软件设计与实现系统软件设计与实现4.14.1 主程序设计与实现主程序设计与实现 软件的设计中最重要的是软件的模块化。模块化是指在解决一个复杂的问题时自顶向下逐层将软件系统划分成若干个模块的过程。 将软件系统划分成多个模块是为了降低软件系统的复杂度,提高可读性,可维护性,但是,模块的划分不是随意的,应该尽量保持其独立性。每个模块只完成系统要求的独立子功能。并且与其他的模块的联系最少且接口简单。尽量做到高内聚低耦合,提高模块的独立性。本次设计分为蜂
13、鸣器模块,SD 卡模块,按键模块。蜂鸣器模块负责音乐的播放,SD 卡模块负责数据的存储,按键模块负责音乐的切换,播放和停止。这三个模块联系起来构成了这次设计的音乐播放器的整体。如图 4-1 所示主的流程图。 图 4-1 4.2 键盘扫描程序设计与实现基于 RAM 音乐播放器系统设计与实现12键盘是电子器件中常见的输入装置。嵌入式系统中,键盘由一组常开的按键组成。当按键闭合时就会向嵌入式系统输入一个电平信息。每个按键都被赋予了一个键码。嵌入式开发板据此代码执行任务。按键的行,列线分别连接到按键开关的两端,行线通过上拉电阻接到+5V 上。当无按键按下时,行线处于高电平状态,当有按键按下时行,列线将
14、导通,此时,行线电平将由与此行线相连的列线的电平决定。这一点是识别矩阵按键是否被按下的关键。将行线,列线信号配合起来作适当处理,能确定闭合键的位置。如图 4-2 所示键盘扫描程序。基于 RAM 音乐播放器系统设计与实现13图 4-24.34.3 音乐播放实现后台模块的设计音乐播放实现后台模块软件编程的主要实现流程如图 4-3。图 4-3基于 RAM 音乐播放器系统设计与实现14基于 RAM 音乐播放器系统设计与实现155 5 系统软件功能设计系统软件功能设计5.15.1 测试的意义和目的测试的意义和目的软件测试是程序的一种执行过程,目的是尽可能发现并改正被测试软件中的错误,提高软件的可靠性。它
15、是软件生命周期中一项非常重要且非常复杂的工作,对软件可靠性保证具有极其重要的意义。在目前形式化方法和程序正确性证明技术还无望成为实用性方法的情况下,软件测试在将来相当一段时间内仍然是软件可靠性保证的有效方法。软件工程的总目标是充分利用有限的人力和物力资源,高效率、高质量地完成软件开发项目。不足的测试势必使软件带着一些未揭露的隐藏错误投入运行,这将意味着更大的危险让用户承担。过度测试则会浪费许多宝贵的资源。到测试后期,即使找到了错误,然而付出了过高的代价。E.W.Dijkstra 的一句名言说明了这一道理:“程序测试只能表明错误的存在,而不能表明错误不存在。”可见,测试是为了使软件中蕴涵的缺陷低
16、于某一特定值,使产出、投入比达到最大。5.25.2 测试方案测试方案用户选择自己喜爱的歌曲,将歌曲编制成数字化,烧写进 RAM 板,在 LCD 界面查看歌曲播放情况。5.3 系统软件测试系统软件测试总体软件设计即系统运行过程中的主逻辑,负责整个系统运行过程中各个状态之间的转换,系统初始化完成以后,在音乐模式下,即可通过按键选择音乐目录中的音乐,解码 WMA,MP3 等格式的音频文件,并播放。5.4 系统硬件测试系统硬件测试通过程序代码烧写软件在将运行好的程序下载到嵌入式开发板之后,我们可以发现嵌入式开发板的蜂鸣器开始响了起来。唱的是我们事先编入程序的老鼠爱大米这首歌。当然我们也可以通过改变乐谱使蜂鸣器播放出不同的旋律。在烧写的软件里会打印出蜂鸣器当前播放的音乐的旋律的数据。如下图 5-1。基于 RAM 音乐播放器系统设计与实现16图 5-1 基于 RAM 音乐播放器