2015年毕业设计基于ATmega16的MP3设计与实现毕业论文.doc

上传人:教**** 文档编号:87904432 上传时间:2023-04-18 格式:DOC 页数:52 大小:4.19MB
返回 下载 相关 举报
2015年毕业设计基于ATmega16的MP3设计与实现毕业论文.doc_第1页
第1页 / 共52页
2015年毕业设计基于ATmega16的MP3设计与实现毕业论文.doc_第2页
第2页 / 共52页
点击查看更多>>
资源描述

《2015年毕业设计基于ATmega16的MP3设计与实现毕业论文.doc》由会员分享,可在线阅读,更多相关《2015年毕业设计基于ATmega16的MP3设计与实现毕业论文.doc(52页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、哈尔滨工业大学基于ATmega16的MP3设计与实现摘要本课题实现了基于ATmega16的MP3设计与实现。论文通过自顶向下的方法从硬件到软件深入分析系统的需求,介绍了实现系统的总体规划,并分别阐述各模块的实现细节CH375通过CH375子程序库存取U盘并智能读取音频文件(MP3、WMA格式等)的方法、VS1003音频解码程序的方法、显示屏显示音频文件歌曲名等信息的方法以及通过按键控制播放曲目和音量的方法。U盘中的音频文件智能识别,存放音频路径到固定文件,并可以根据给定偏移量读取,最后声音的播放通过扬声器和耳机进行,基本实现了音乐播放器智能播放U盘中所有音乐的功能,并能根据按键控制歌曲和音量。

2、关键字: ATmega16;MP3播放器;CH375U盘读写;VS1003;哈尔滨工业大学Software Design of Music Player Based on ATmega16 MCUAbstractThis topic has realized based on ATmega16 MP3 design and implementation.Papers from hardware to software by using the method of top-down analysis the demand of the system, this paper introduces

3、the implementation system of planning, and expounds the implementation details of the various modules respectively - CH375 through CH375 subroutine library access U disk and intelligent reading the audio file (MP3, WMA format, etc.) method, methods of VS1003 audio decoding procedures, screen display

4、 information such as audio files songs name method, and through the button control playlists and volume method.U dish in the audio file intelligent identification, store the audio path to the fixed files, and can be read according to the given offset, the last sound broadcast through the speakers an

5、d headphones, the music player has been basically achieved intelligent play the function of the usb drive all music, and can according to the songs and the volume button control.Key words: ATmega16;MP3player.CH375U plate, speaking, reading and writing;VS1003;目 录摘要IAbstractII第一章 绪论11.1 应用背景与意义11.1.1

6、背景11.1.2 意义1第二章 理论分析与方法论证32.1 理论分析32.1.1 ATmega16开发板和下载器32.1.2 MP3解码芯片42.1.3 USB总线设备接口芯片52.1.4 存储介质52.1.5 液晶显示屏62.1.6 控制设备62.2 方法论6第三章 软件开发平台73.1 编译器的选择73.2 Atmel Studio 6简介73.3 下载器软件工具8第四章 系统设计104.1 硬件系统总体设计方案104.2 ATmega16处理器介绍104.3 ATmega16与外部芯片的连接114.3.1 ATmega16与VS1003的连接114.3.2 ATmega16与CH375b

7、的连接124.3.3 ATmega16与LCD12864的连接134.3.4ATmega16与按键的连接14第五章 系统软件设计165.1 需求分析165.1.1 数据流图165.1.2 数据字典195.2 软件总体设计215.2.1 结构化总体设计215.2.2 软件总体结构图的构建215.3 软件详细设计225.3.1 CH375管理模块225.3.2 VS1003管理模块255.3.3 LCD12864管理模块285.3.4 保存U盘所有音频文件路径名模块295.3.5按指定条件读取新生成文件模块315.3.6 MP3播放模块315.3.7液晶显示模块325.3.8按键处理模块335.3

8、.9主模块335.4 系统测试345.4.1 LCD12864显示模块测试345.4.2 CH375读写模块测试355.4.3 VS1003播放模块测试375.4.4 按键控制模块测试375.4.5 CH375读写模块和VS1003播放模块联合测试375.4.6 综合测试37结论39参考文献40致谢41外文原文42中文翻译46哈尔滨工业大学第一章 绪论1.1 应用背景与意义1.1.1 背景1998年韩国世韩(SEAHAN)推出了世界上第一台MP3MPManF10,在世韩为人们带来惊喜之后,美国的美国的帝盟(Diamond)公司挑头,于1998年底推出了Rio PMP300,这是第一个让全世界都

9、印象深刻的MP3。MP3(MPEG Audio Layer 3)是采用国际标准MPEG(Moving Pictures Experts Group,动态图象专家组)中的第三层音频压缩模式,对声音信号进行压缩的一种格式。MPEG声音压缩算法是一种通用的声音编码技术,它对音源的性质没有作任何假设,而是利用人耳的听觉特性对声音进行压缩。MPEG音频层根据压缩质量和编码复杂程度划分为三层,即Layer1、Layer2、Layer3,且分别对应MP1、MP2、MP3这三种声音文件,并根据不同的用途,使用不同层次的编码。MPEG音频编码的层次越高,编码器越复杂,压缩率也越高,MP1和MP2的压缩率分别为4

10、:1和6:1-8:1,而MP3的压缩率则高达10:1-12:1。也就是说,一分钟CD音质的音乐,未经压缩需要10MB的存储空间,而经过MP3压缩编码后只有1MB左右。跨入21世纪,MP3的高速发展使人们不再满足于闪存那以MB为单位的容量。2000年1月,音频硬件领域的老大哥创新推出了世界第一台2.5寸硬盘MP3NOMAD Jukebox,它采用了富士通6.4GB的2.5英寸硬盘作为存储介质,可以存储相当于100多张CD的MP3音乐,容量远远超过了当时的闪存MP3,不过体积也非常惊人,竟比一般的CD随身听还要大,其外形也跟CD随身听非常相似。虽然采用硬盘介质,但为了保证在运动时音乐能流畅地进行播

11、放,创新为其设计了可支撑5分钟的8MB防震缓存,这样即使在外出及移动的条件下也不会出现音乐跳轨现象。当日历翻到2014年这一页的时候,MP3随身听已经经历了数年的发展,而随身听市场的竞争亦趋于白热化,几乎每个星期甚至每天都会有新品MP3的推出,其发展的速度实在惊人!但一体化的设计导致存储容量固定,如果想下载更多的歌曲还得重新购买新的产品,造成了重大的浪费,另一方面,一体化又限制了MP3播放器在其他领域的应用,比如在一些固定场所使用MP3(非便携式),不方面拆卸。于是,将存储器和播放器分离成为MP3的另一个发展方向。1.1.2 意义基于ATmega16的音乐播放器应用的方面特别广,不仅便携简单,

12、而且在一些特殊环境,如车载MP3,浴室MP3,这些不易移动的产所有很广泛的用途,别且可以作为很多系统的辅助功能,如智能家具,智能手机的一个功能模块。本论文设计的MP3在于播放器与存储器相分离的思想,U盘在市场上很容易买到,支持常用的文件系统FAT12,FAT16以及FAT32,并且支持容量达100G,只要手上有U盘,而且有MP3等音频格式的文件,那么就可以使用本系统所提供的USB接口,直接插上去就可以播放音乐,同时,通过显示屏可以知道当前播放的歌曲,还可以通过按键直接控制音量和歌曲,比起过去用flash保存的音乐要方便的多。 最后,对我们大学生而言,提高了解决问题的能力,增强了动手能力,熟练了

13、一些常见电子芯片的使用。哈尔滨工业大学第二章 理论分析与方法论证2.1 理论分析针对MP3音乐播放系统,要选择合适核心控制芯片和外部芯片来配合实现,因为本课题要求基于ATmega16的控制芯片,所以核心控制芯片选择ATmega16,下面分别介绍芯片选用原则和最终芯片和模块的确定。2.1.1 ATmega16开发板和下载器控制芯片已经确定为ATmega16,那么如何将程序下载到单片机中?一种方法就是自己设计基于Atmega16的最小系统和必要的外围电路;第二种方法就是利用已经设计好的开发板,用现成的工具,直接下载到单片机,而且现在的开发板都会为用户提供外围接口,使用户能够根据自己的需求去开发其它

14、系统。第一种方法开发周期较长,所以采用第二种方法,选择用现成的开发板。本课题选用由天翔电子公司设计的AVR开发板,如图2-1,下载器使用由轩微科技出品的USBISP,不用JTAG的的原因是本系统占用的I/O会比较多,而JTAG会占用PC口,影响实验结果,USBISP有个缺点是不具备仿真功能,如图2-2。图 2-1 AVR 开发板图 2-2 USBISP下载器2.1.2 MP3解码芯片首先联想到能否用ATmega16单片机来直接对MP3音频文件直接解码?答案是不行的,因为对单片机而言,数字处理速度和资源都远远达不到,所以只能简介通过外部解码芯片来实现解码,并播放歌曲。MP3解码芯片常见的有VS1

15、00X系列、SAA775X系列、STA01X系列等;SAA775X系列是MP3播放器解码芯片组功能最全,效果最好的芯片,但价格较贵;STA01X系列需要外加DAC,使用起来多有不便;VS100X系列自带DAC输出功能,而且能解码的音频格式也比较多,同时价格合理。经过比较,选用VS1003作为解码芯片,该芯片支持MP3、WMA、WAV、MIDI、等格式的解码,而且自带DAC输出;同时还可以调节音量、高低音等,更重要的是它还具有MIC功能,如需要还可以实现录音功能。因此,选用VS1003作为本课题音频解码芯片。如图2-3为VLSI公司生产的VS1003芯片图,2-4为由天翔电子公司设计的接入外围电

16、路只提供与控制芯片接口的MP3播放器。 图 2-3 VS1003图 2-4 MP3播放器(模块)2.1.3 USB总线设备接口芯片USB总线设备接口设备较多较杂,在本课题中选用有南京沁恒公司生产的CH375b芯片,它是全速USB设备接口,兼容USBV2.0,即插即用,外围器件需要晶体电容,支持HOST主机方式和DEVICE设备方式。在本地端,CH375b具有8位数据总线和读、写、片选控制线以及中断输出,可以方便地挂接到单片机/DSP/MCU等控制器的系统总线上。在USB主机方式下,CH375b还提供了串行通信方式,通过串行输入、串行输出和中断输出与单片机/DSP/MCU等相连接。CH375b的

17、USB主机方式支持各种常用的USB全速设备,外部单片机/DSP/MCU可以通过CH375b按照相应的USB协议与USB设备通信。单片机可以通过CH375b读写U盘中的数据,CH375提供了U盘文件级子程序库单片机可以直接调用子程序读写U 盘中的文件数据,硬件上只需要在原单片机系统中增加一个CH375芯片,综合成本较低。CH375的U 盘文件级子程序库支持常用的FAT12、FAT16 和FAT32 文件系统,支持容量高达100GB 的U 盘。如图2-5为CH375b芯片,图2-6为有天翔电子公司设计的接入外围电路只提供与控制芯片接口的CH375U盘模块。 图 2-5 CH375B图 2-6 CH

18、375U盘模块2.1.4 存储介质MP3播放器需要大容量的存储器来存放歌曲,可以选择Flash芯片存储、SD卡、U盘等。如果选用Flash,则整个系统需要较多的I/O端口来读取,更重要的一点,也是本次课题要解决的一个问题,那就是整个系统的容量就被固定了,扩容存在空难;而U盘和SD卡都是不错的选择,并且U盘和SD卡均容易购买的到,同时价格较为低廉,所以,存储部分选用U盘读取来实现。2.1.5 液晶显示屏为了兼顾成本,选择普通单色液晶显示屏,常用的有LCD1602和LCD12864,在本课题中选择LCD12864,因为LCD12864本身带有字库的功能,系统不需要添加外部字库文件,就可以实现曲目等

19、有效信息汉字显示;而LCD1602只有常见的ASCII符号,要想显示中文必须添加外部字库文件。如图2-7为液晶LCD12864。图 2-7 LCD128642.1.6 控制设备控制设备选用键盘,但是键盘又分为编码键盘和非编码键盘,键盘上闭合键的识别由专用的硬件编码器实现,并产生键编码号或键值的称为编码键盘,如计算机键盘,而靠软件编程来识别的称为非编码键盘;由于成本低廉和结构简单考虑,在本次课题中选择非编码键盘。2.2 方法论MP3播放器系统以ATmega16为控制核心,不仅要管理USB总线的通用接口芯片CH375b、MP3解码芯片VS1003b、LCD12864液晶显示屏和按键的处理,而且还管

20、理USB存储设备中的文件系统,查找文件,写文件等等。存储器里的媒体文件首先要查询,查询到的文件确定是音频文件(MP3等)后,把MP3路径名写到固定文件中,将所有的音频文件路径名写到固定文件中后,按照文件偏移,读取固定文件中的音频文件路径名,根据路径名,读取音频文件到MCU的RAM中,然后又被送到解码芯片中,解码后的音频数据被还原成模拟音频,再由扬声器传出。由于ATmega16本身不支持USB接口功能,所以MCU无法直接与U盘完成数据传输的功能,存储设备需要通过自身的接口与CH375b相接。其它芯片是通过普通I/O端口连接的。第三章 软件开发平台在上一章中介绍了硬件设备的选择,那么我们知道,只有

21、硬件而没有软件的机器就是一个没有灵魂的电人,所以,在这一章中介绍软件的开发平台,使没有灵魂的电人让它有自己的思想。3.1 编译器的选择我们知道,机器只认识机器代码,所以要将我们所编写的程序翻译成二进制机器码必须要使用编译器。由于单片机内存和程序存储空间非常有限,好的编译器可以优化源代码,使程序的运行消耗资源小、效率提高,所以选择一个性能优越的编译器是必须的。AVR编译器非常多,常见的有ICCAVR,GCCAVR,IAR AVR等;ICCAVR编译器是市面上教科书使用它作为AVR例程的较多,集成代码生成向导,虽然它的各方面性能均不是特别突出,但使用较为方便,一般作为教学方面的应用;GCCAVR,

22、GCC是Linux的唯一开发语言,GCC编译器优化程度可以说是目前世界上民用软件中做的最好的,另外,它有一个非常大的有点,免费!在国外,使用它的人几乎是最多的但,相对而言,它的缺点是操作比较麻烦;IAR实际上在国外比较多的人使用,但它的价格较为昂贵,所以,中国大陆内,使用它的开发人员比较少,只有习惯用IAR的工程师才会去使用它。综上分析,使用GCCAVR是非常不错的选择。3.2 Atmel Studio 6简介Atmel公司在2012年推出广受欢迎的集成开发环境(IDE)的最新版ATmel Studio 6,支持基于Atmel32位ARM Cortex-M系列与Atmel 8/32位AVR系列

23、的处理器(MCU)。Atmel Studio 6是免费的IDE,提供专业质量的开发工具,同时配有Atmel软件框架,因而显著降低了创建新设计的成本。利用Atmel软件框架,设计人员可以获得经验证的大型免费源代码库-包括近1000个设计样例。利用此IDE更快的产品开发周期,配合更低的片上闪存成本与速度更快的MCU,正在推动更多的设计工程师以C和C+语言编写代码,而不是使用汇编代码。Atmel Studio 6使得工程师能够轻易编写、构建和调试其C/C+和汇编代码,还能够以无缝方式集成具备辅助代码编写功能的编辑器、用于快速创建新项目的向导工具、一个GNU C/C+编译器、一个功能强大的仿真器,以及

24、适用于爱特梅尔所有Cortex-M系列和AVR处理器的编程器与在线调试器的前端可视化工具。目前用于AVR设计的模拟器通过提供准确的AVR MCU模型来加快应用开发。仿真器不仅为CPU和中断进行仿真,而且还可以为片上I/O模块仿真,无需实际的硬件即可进行全面的应用开发。基于上述Atmel Studio 6各种优势,在本课题中使用此IDE进行代码编辑和程序编译。Atmel Studio 6的代码编辑继承了Visio Studio 2010的风格,所以编辑非常方便,比如自动补全功能,在目前一般单片机IDE是做不到这一点的!在上述的简介中也提到Atmel Studio 6自带编译器为GNU C/C+编

25、译器,也就是上一届在AVR系列中的GCCAVR,这就意味着Linux GCC编译器直接移植到此IDE中,继承了了GCC优化程度高,运行效率高等优点。如图3-1为Atmel Studio 6的工程界面。图 3-1 Atmel studio 6工程界面3.3 下载器软件工具经过上两节的论述,现在已经具备把写的C源程序编译成ATmega16单片机可以识别的机器语言,但是,还有一个问题,如何将在PC机上交叉编译好的hex(机器码,8进制)与单片机产生联系?也就是将程序下载到单片机上,让其运行,那么这就要用到下载器,上一章已经介绍了USBISP下载器的硬件,那么下载不仅要有硬件提供支持,还要有相应的软件

26、工具。为了适合开发板的下载需求,在本课题中使用轩微编程器控制平台来对ATmega16来进行下载,如图3-2为轩微编程器控制平台界面。图 3-2 下载器工具第四章 系统设计前两章已经为系统提供了纯硬件支持和软件工具,接下来将对各个模块建立起与主控芯片ATmega16的联系,并对系统进行整体的软硬件设计。由于ATmega16引脚在控制寄存器的控制下具有不同的功能,在这里对ATmega16的引脚做一个约定:在接下来作的图中,除4-1,模块与ATmega16连接的引脚只具备一个功能,而不具有其他功能,如有括号则说明使用括号中的功能,如图4-3,PD4只具有输入输出功能,而PB5则具有SPI总线的功能,

27、因为括号中已经标明。这样就不会造成误解。4.1 硬件系统总体设计方案ATmega16作为控制中心,它负责直接或间接控制所有的外围模块;MP3播放器系统需要音频文件,那么ATmega16通过直接给CH375发送数据和命令,间接的从U盘中取得音频数据;获得音频数据后ATmega16再把数据传送到VS1003b,当然,还得把获得的文件名信息传送给LCD12864液晶,这样周而复始,达到播放MP3的目的;本课题还提供四个按键对播放歌曲和音量进行控制,是单向的控制系统,已达到灵活控制系统,满足用户的需求。如图4-2为MP3系统的总体规划图。图 4-1 MP3系统总体规划4.2 ATmega16处理器介绍

28、ATmega16是基于增强的AVR RISC结构的高性能、低功耗8 位CMOS微控制器。由于其先进的指令集以及单时钟周期指令执行时间,ATmega16 的数据吞吐率高达1 MIPS/MHz。ATmega16拥有16K字节的系统可编程Flash,512字节的EEPROM,1K字节的片内SRAM,并且内部集成很多总线。如图4-2为ATmega16的引脚图。图 4-2 ATmega16引脚4.3 ATmega16与外部芯片的连接4.3.1 ATmega16与VS1003的连接表4-1简要列出了VS1003b与ATmega16直接联系的引脚功能说明,图4-3为芯片引脚连接图,连接具备某些原则,首先VS

29、1003b的SI和SCLK必须和ATmega16的MOSI和SCK对应连接,因为在对VS1003b进行读写数据时会用到SPI总线,而其余四个控制读写的引脚可随意分配到ATmega16 32个普通的I/O,但是出于和后续的三个模块相互间不产生影响,所以将剩余的四个控制引脚按图4-3连接。表4-1 VS1003b的主要引脚功能说明管脚管脚类型功能SI输入串行输入SCLK输入串行总线的时钟XCS输入片选输入,低电平有效XREST输入低电平有效,异步复位端DREQ输出数据总线,输入总线XDCS输入数据片选端/字节同步图4-3 ATmega16与VS1003硬件连接4.3.2 ATmega16与CH37

30、5b的连接表4-2简要列出了CH375b与ATmega16直接联系的引脚功能说明,图4-4为芯片引脚连接图;CH375b有两种读写方式,一种是串行读写,另一种是并行读写,串行读写灵活且比较节省引脚,而并行却相反,但是效率高;由于天翔电子的这款U盘模块没有提供串口读写数据的接口,所以本课题只能用并行读写数据,也就是用更多的引脚去完成对应的功能,如果不使用中断的方式,那么理论上这13个引脚可以与ATmega16 32个普通的引脚任意连接,在本课题中,中断请求信号采用的是查询方式,所以也不需要接在ATmega16外中断引脚上。为了不与其它模块相互冲突,则采用图4-4的连接方式。表4-2 CH375b

31、的主要引脚功能说明管脚管脚类型功能DB7-DB0双向三态8 位双向数据总线,内置弱上拉电阻RD输入读选通输入,低电平有效,内置弱上拉电阻WR输入写选通输入,低电平有效,内置弱上拉电阻CS输入片选控制输入,低电平有效,内置弱上拉电阻INT输出中断请求输出,低电平有效A0输入地址线输入,区分命令口与数据口,内置弱上拉电阻,当A0=1 时可以写命令,当A0=0 时可以读写数据图 4-4 ATmega16与CH375b硬件连接4.3.3 ATmega16与LCD12864的连接表4-3简要列出了LCD12864与ATmega16直接联系的引脚功能说明,图4-5为芯片引脚连接图;ST7920是LCD12

32、864的控制器,也可支持串行传输和并行传输,在本课题中仍然采用并行的方式读写数据,如图4-5,从图中可以看出,LCD12864的并行数据传输接口和CH375b的控制端口用冲突,但是不会收到影响,因为当LCD12864在读写数据时,控制CH375b的引脚电频可能会在改变,但却不会给CH375b传送数据,而当CH375b在读写数据时LCD12864的控制端口处于不使能读写数据状态,所以两者不会造成紊乱,系统会很顺利的执行。表4-3的主要引脚功能说明管脚管脚类型功能DB7-DB0双向三态8 位双向数据总线RS输入地址线输入,区分命令口与数据口,当RS=1 时可以写命令,当RS=0 时可以读写数据RW

33、输入读写,RW=1时读,RW=0时写E输入允许信号,相当于片选RST输入重新复位图 4-5 ATmega16与LCD12864的硬件连接4.3.4ATmega16与按键的连接图4-5为三个独立按键与ATmega16的连接,理论上这三个按键也是随意在Atmega16的任意一个普通引脚上连接的,但基于上述几个模块的引脚分配,最终将按键确定为图4-5;此处有三个按键,KEY3为状态键,用来改变其余两个按键KEY1,KEY2的职能,如果KEY3为选择曲目状态,则剩下两个按键的功能分别为KEY1下一曲,KEY2上一曲,如果KEY3为调节音量状态,则剩下两个键的功能分别为KEY1音量调高,KEY2音量调低

34、。这样设计的好处在于增加了按键的灵活性,如果后续再继续扩展功能的话比较方便,比如增加暂停停止功能,又或者增加快进快退,只需增加状态即可,而不必用更多的独立按键去控制,那样既浪费引脚,又使检测按键的次数增加,增大控制延时,降低系统效率。图 4-6 ATmega16与按键的硬件连接第五章 系统软件设计5.1 需求分析需求分析的方法很多,常见的有功能分解法、结构化分析法、信息建模法、面向对象分析方法等,本系统从复杂程度和自身的特性综合考虑采用结构化分析法,用自顶向下逐层分解策略,描叙本系统满足功能需求的软件模型,通过结构化分析描述工具来理清本系统到底做什么。在画数据流图之前要先声明一个问题:对某个系

35、统而言没有绝对的输入和输出;我们只是在抽象的层次去分析系统的输入和输出,围绕系统的具体功能去抽象;例如在使用VS1003解码芯片时,可以对它写入数据,播放音乐,即输出,也可以读取它某个寄存器的值,获取VS1003某时刻的状态,即输入;但在对VS1003功能进行抽象,它只具有播放功能,所以在这个抽象层次上认为VS1003只具有输出。5.1.1 数据流图数据流图是结构化分析方法中用于表示系统逻辑模型的一种工具,它以直观的图形清晰地描述了系统数据的流通和处理过程,图中没有任何物理元素,主要强调的是数据流和处理过程,可以很方便的了解系统的真正需求。 (1)顶层数据流图。顶层数据流图是最为复杂也是最容易

36、看清系统到底是做什么的;在本系统中,按键为系统提供按键信号,CH375芯片为系统提供文件数据,程序为系统提供系统初始值,在本系统中也可以用读取配置文件的策略去得到系统初始值,但为了使系统更简化,直接让程序提供初始值,所以键盘、程序、CH375芯片做系统的输入;ATmega16负责处理数据的计算和搬运,因此作为系统的变换中心(也称控制中心);系统将控制命令和数据输出到VS1003解码芯片、LCD12864,以控制音频文件播放、控制音量以及显示音频文件名等,因此,VS1003、LCD12864一定作为系统的输出;那么CH375是不是也可以作为输出呢?为了能智能的读取U盘中的所有音频文件,而ATme

37、ga16又没有足够的内存去存放所有的音频路径名,所以在播放音乐之前先把所有音频文件的路径名写在固定文件中,以便后续操作,综合分析CH375芯片既作为系统输入又作为输出;程序中有许多控制数据是随一定条件下改变的,比如按键按下、音频路径名在文件中的偏移量等,所以将程序(内存)也作为逻辑输出,会使系统更清晰。通过上述的简要分析后,如图5-1为顶层数据流图,需要说明的一点,在输出流中都无一例外的使用了数据命令字眼,原因是本系统面对的是裸芯片,没有任何操作系统的支持,除了CH375芯片有子程序库的支持,VS1003芯片和LCD12864都没有直接的接口去调用,所以对于底层的驱动本系统也是要考虑的,不仅要

38、提供数据,而且要把相应控制命令加进去。图 5.1 顶层数据流图(2)0层数据流图顶层数据流图显然是非常复杂的,在MP3控制系统中几乎是不知道系统是如何进行数据处理进而得到想要的结果,显然要对顶层系统进行分解。首先,本系统是没有任何操作系统的,所以第一步就是要对VS1003解码芯片、CH375芯片、LCD12864进行初始化操作,使这些芯片处在就绪状态等待主控芯片对它进行读写操作,每个芯片初始化成功后,提供一个正确信息,保证系统正常运行;紧接着,程序提供一个目录(程序默认提供根目录),开始对U盘中所有的音频文件的路径名保存在固定文件(ZCX.TXT),这样做有助于对所有音频文件进行统一管理,并且

39、使变换歌曲操作会很方便,录入成功后提供录入文件内容的大小;然后,通过给定偏移量数据(默认为0),在固定文件(ZCX.TXT)中读取音频路径名,输出音频路径名;最后,通过给定的音频路径名进行MP3播放处理和液晶显示处理,将音频数据输出到VS1003解码芯片和LCD12864液晶;在MP3播放的同时,加上按键处理,以便随时能够接收按键信号,进行相应的按键处理操作,改变现有的状态。通过上述分析后,如果5-2为0层数据流图,图中纵向在同一层次的表明没有先后顺序,在图中除了逻辑输出外,不加芯片代号的表明输入输出给程序(修改内存),这些数据基本都是控制信息,在下一节的数据字典中会有体现。图 5.2 0层数

40、据流图(3)1层数据流图1层数据流图中系统处理基本明朗,每一个处理都基本可以明确各自的职能,只有在按键处理部分有些模糊,因为按键处理部分可以控制按键状态,可以变换歌曲的上下一曲,还可以调节音量,因此将上述的按键处理再细化,并且有对应的流程进行处理,使系统更清晰,如图5-3为1层数据流图。图 5.3 1层数据流图5.1.2 数据字典(1) 数据流条目MP3系统数据 = VS1003初始化数据 + CH375初始化数据 + LCD12864初始化数据 + 根目录 + MP3控制数据MP3控制数据 = 初始偏移量数据 + 初始按键状态数据 + 新生成文件的文件名(ZCX.TXT)按键信号 = 状态信

41、号 + 加信号 + 减信号VS1003数据命令 = VS1003音频数据 + VS1003控制命令LCD12864数据命令 = LCD12864数据 + LCD12864控制命令CH375数据命令 = CH375数据 + CH375控制命令音量数值 = 无符号高八位的音量数值 + 无符号低八位的音量数值音频文件名 = 由最大30个字节组成的字符串正确信息 = true | false 偏移量数据 = 当前音频文件名在新生成文件中的偏移量 + 下一首音频文件名在新生成文件中的偏移量 + 上一首音频文件名在新生成文件中的偏移量按键状态数据 = 变换歌曲状态 + 调节音量状态 + 按键连续状态(2)

42、 数据存储条目 文件名 :ZCX.TXT组成 :所有音频文件路径名的集合组织方式 :按查找到的音频文件名路径的顺序,依次写入(3) 加工条目加工名:MP3控制系统 编号:无 输入:MP3系统数据,按键信号 输出:VS1003数据命令,LCD12864数据命令,CH375数据命令,MP3控制数据加工名:VS1003管理 编号:1 输入:VS1003初始化数据 加工逻辑:初始化VS1003解码芯片,使芯片处于就绪状态,随时准备工作。 输出:正确信息加工名:CH375管理 编号:2 输入:CH375初始化数据 加工逻辑:首先要做的是初始化CH375芯片,使芯片处于就绪状态,再者初始化CH375子程序

43、库,使系统可以随时进行读写U盘。 输出:正确信息加工名:LCD12864管理 编号:3 输入:LCD12864初始化数据 加工逻辑:LCD12864是由ST7920芯片控制的,准确来说是初始化ST7920,使显示液晶能正常工作。 输出:正确信息加工名:保存U盘所有音频文件路径名 编号:4 输入:根目录 加工逻辑:根据根目录,逐层检查文件,如果是音频文件,则将文件路径添加到ZCX.TXT文件中,如果不是则不做任何处理。 输出:新生成文件(ZCX.TXT)大小加工名:按给定条件读取新生成的文件 编号:5 输入:偏移量数据,新生成文件大小 加工逻辑:根据给定的偏移量数据先将文件偏移到指定位置,然后读

44、出音频路径名 输出:音频文件名加工名:MP3播放 编号:6 输入:音频路径名 加工逻辑:根据音频路径名播放相应的歌曲 输出:VS1003音频数据加工名:按键处理 编号:7 输入:按键信号 加工逻辑:根据按键信号判断是什么信号,如果是状态信号则改变当前按键的状态,如果是加减信号,则根据当前的状态来判断是改变当前文件控制信息还是调节音量大小。 输出:VS1003音量控制命令,按键状态值,偏移量数据加工名:液晶显示 编号:8 输入:音频路径名 加工逻辑:根据给出的音频路径名,先处理得到音频文件名,然后经过给LCD发指令和数据,显示出音频文件名 输出:LCD12864音频文件名数据加工名:按键状态判断

45、 编号:7.1 输入:加减按键信号,按键状态数据加工逻辑:先判断是否存在加减信号,然后根据按键状态数据判断加减按键信号执行什么功能输出:变换歌曲状态,调节音量状态加工名:按键状态处理 编号:7.2 输入:按键状态数据,状态按键信号 加工逻辑:先判断是否存在状态按键信号,然后修改当前按键状态 输出:新的按键状态数据加工名:变换歌曲 编号:7.3 输入:变换歌曲状态 加工逻辑:先判断按键是加信号还是减信号,然后修改当前、上一曲、下一曲音频文件名在新生成文件的偏移量数据。 输出:偏移量数据加工名:调节音量 编号:7.4 输入:变换音量状态 加工逻辑:先判断按键是加信号还是减信号,然后通过对VS100

46、3解码芯片写入音量控制命令,达到变换音量的目的 输出:VS1003音量控制命令5.2 软件总体设计经过需求分析阶段的工作,建立了由数据流图、数据字典和一组算法描述所定义的系统逻辑模型,系统“做什么”已经清楚,下一步将进入软件总体设计阶段,总体设计阶段描述软件的总体结构。5.2.1 结构化总体设计结构化设计方法是一种把在需求分析中得到的数据流图映射为软件结构图的基于数据流的设计方法,通过用数据流图描绘信息系统在系统中的加工和流动情况。结构化设计方法定义了一些不同的“映射”,利用这些映射可以把数据流图变换成软件结构图,他是在比模块更高一层的层次上讨论软件结构问题。按照数据流图的性质,数据流图分为两种基本类型,变换型和事务型。变换型数据流图基本呈线形形状,由输入、变换、输出三个部分组成,变换是系统的变换中心。变换输入端的数据流为系统的逻辑输入,输出端为逻辑输出,而系统输入端为数据流的物理输入,输出端为物理输出。而事务型则是当一个数据项到达处理模块时,将有多个动作之一,就是事务型,这种类型数据流图呈辐射状,及数据沿着输入同路到达下一个处理,这个处理根据输入数据的类型分离成一束平行的数据流,然后选择执行若干个动作序列中的某一个来执行。按照上述描述,可以分析得出本课题的数据流图类型属于变换型和事务型两种类

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁