学位论文-—2015年基于atmega16的mp3设计与实现.doc
《学位论文-—2015年基于atmega16的mp3设计与实现.doc》由会员分享,可在线阅读,更多相关《学位论文-—2015年基于atmega16的mp3设计与实现.doc(52页珍藏版)》请在咨信网上搜索。
哈尔滨工业大学 基于ATmega16的MP3设计与实现 摘要 本课题实现了基于ATmega16的MP3设计与实现。论文通过自顶向下的方法从硬件到软件深入分析系统的需求,介绍了实现系统的总体规划,并分别阐述各模块的实现细节——CH375通过CH375子程序库存取U盘并智能读取音频文件(MP3、WMA格式等)的方法、VS1003音频解码程序的方法、显示屏显示音频文件歌曲名等信息的方法以及通过按键控制播放曲目和音量的方法。U盘中的音频文件智能识别,存放音频路径到固定文件,并可以根据给定偏移量读取,最后声音的播放通过扬声器和耳机进行,基本实现了音乐播放器智能播放U盘中所有音乐的功能,并能根据按键控制歌曲和音量。 关键字: ATmega16;MP3播放器;CH375U盘读写;VS1003; 哈尔滨工业大学 Software Design of Music Player Based on ATmega16 MCU Abstract This 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 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 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 and 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; 目 录 摘要 I Abstract II 第一章 绪论 1 1.1 应用背景与意义 1 1.1.1 背景 1 1.1.2 意义 1 第二章 理论分析与方法论证 3 2.1 理论分析 3 2.1.1 ATmega16开发板和下载器 3 2.1.2 MP3解码芯片 4 2.1.3 USB总线设备接口芯片 5 2.1.4 存储介质 5 2.1.5 液晶显示屏 6 2.1.6 控制设备 6 2.2 方法论 6 第三章 软件开发平台 7 3.1 编译器的选择 7 3.2 Atmel Studio 6简介 7 3.3 下载器软件工具 8 第四章 系统设计 10 4.1 硬件系统总体设计方案 10 4.2 ATmega16处理器介绍 10 4.3 ATmega16与外部芯片的连接 11 4.3.1 ATmega16与VS1003的连接 11 4.3.2 ATmega16与CH375b的连接 12 4.3.3 ATmega16与LCD12864的连接 13 4.3.4ATmega16与按键的连接 14 第五章 系统软件设计 16 5.1 需求分析 16 5.1.1 数据流图 16 5.1.2 数据字典 19 5.2 软件总体设计 21 5.2.1 结构化总体设计 21 5.2.2 软件总体结构图的构建 21 5.3 软件详细设计 22 5.3.1 CH375管理模块 22 5.3.2 VS1003管理模块 25 5.3.3 LCD12864管理模块 28 5.3.4 保存U盘所有音频文件路径名模块 29 5.3.5按指定条件读取新生成文件模块 31 5.3.6 MP3播放模块 31 5.3.7液晶显示模块 32 5.3.8按键处理模块 33 5.3.9主模块 33 5.4 系统测试 34 5.4.1 LCD12864显示模块测试 34 5.4.2 CH375读写模块测试 35 5.4.3 VS1003播放模块测试 37 5.4.4 按键控制模块测试 37 5.4.5 CH375读写模块和VS1003播放模块联合测试 37 5.4.6 综合测试 37 结论 39 参考文献 40 致谢 41 外文原文 42 中文翻译 46 哈尔滨工业大学 第一章 绪论 1.1 应用背景与意义 1.1.1 背景 1998年韩国世韩(SEAHAN)推出了世界上第一台MP3——MPManF10,在世韩为人们带来惊喜之后,美国的美国的帝盟(Diamond)公司挑头,于1998年底推出了Rio PMP300,这是第一个让全世界都印象深刻的MP3。 MP3(MPEG Audio Layer 3)是采用国际标准MPEG(Moving Pictures Experts Group,动态图象专家组)中的第三层音频压缩模式,对声音信号进行压缩的一种格式。MPEG声音压缩算法是一种通用的声音编码技术,它对音源的性质没有作任何假设,而是利用人耳的听觉特性对声音进行压缩。MPEG音频层根据压缩质量和编码复杂程度划分为三层,即Layer1、Layer2、Layer3,且分别对应MP1、MP2、MP3这三种声音文件,并根据不同的用途,使用不同层次的编码。MPEG音频编码的层次越高,编码器越复杂,压缩率也越高,MP1和MP2的压缩率分别为4:1和6:1-8:1,而MP3的压缩率则高达10:1-12:1。也就是说,一分钟CD音质的音乐,未经压缩需要10MB的存储空间,而经过MP3压缩编码后只有1MB左右。 跨入21世纪,MP3的高速发展使人们不再满足于闪存那以MB为单位的容量。2000年1月,音频硬件领域的老大哥创新推出了世界第一台2.5寸硬盘MP3——NOMAD Jukebox,它采用了富士通6.4GB的2.5英寸硬盘作为存储介质,可以存储相当于100多张CD的MP3音乐,容量远远超过了当时的闪存MP3,不过体积也非常惊人,竟比一般的CD随身听还要大,其外形也跟CD随身听非常相似。虽然采用硬盘介质,但为了保证在运动时音乐能流畅地进行播放,创新为其设计了可支撑5分钟的8MB防震缓存,这样即使在外出及移动的条件下也不会出现音乐跳轨现象。 当日历翻到2014年这一页的时候,MP3随身听已经经历了数年的发展,而随身听市场的竞争亦趋于白热化,几乎每个星期甚至每天都会有新品MP3的推出,其发展的速度实在惊人!但一体化的设计导致存储容量固定,如果想下载更多的歌曲还得重新购买新的产品,造成了重大的浪费,另一方面,一体化又限制了MP3播放器在其他领域的应用,比如在一些固定场所使用MP3(非便携式),不方面拆卸。于是,将存储器和播放器分离成为MP3的另一个发展方向。 1.1.2 意义 基于ATmega16的音乐播放器应用的方面特别广,不仅便携简单,而且在一些特殊环境,如车载MP3,浴室MP3,这些不易移动的产所有很广泛的用途,别且可以作为很多系统的辅助功能,如智能家具,智能手机的一个功能模块。本论文设计的MP3在于播放器与存储器相分离的思想,U盘在市场上很容易买到,支持常用的文件系统FAT12,FAT16以及FAT32,并且支持容量达100G,只要手上有U盘,而且有MP3等音频格式的文件,那么就可以使用本系统所提供的USB接口,直接插上去就可以播放音乐,同时,通过显示屏可以知道当前播放的歌曲,还可以通过按键直接控制音量和歌曲,比起过去用flash保存的音乐要方便的多 。 最后,对我们大学生而言,提高了解决问题的能力,增强了动手能力,熟练了一些常见电子芯片的使用。 哈尔滨工业大学 第二章 理论分析与方法论证 2.1 理论分析 针对MP3音乐播放系统,要选择合适核心控制芯片和外部芯片来配合实现,因为本课题要求基于ATmega16的控制芯片,所以核心控制芯片选择ATmega16,下面分别介绍芯片选用原则和最终芯片和模块的确定。 2.1.1 ATmega16开发板和下载器 控制芯片已经确定为ATmega16,那么如何将程序下载到单片机中?一种方法就是自己设计基于Atmega16的最小系统和必要的外围电路;第二种方法就是利用已经设计好的开发板,用现成的工具,直接下载到单片机,而且现在的开发板都会为用户提供外围接口,使用户能够根据自己的需求去开发其它系统。第一种方法开发周期较长,所以采用第二种方法,选择用现成的开发板。本课题选用由天翔电子公司设计的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解码芯片常见的有VS100X系列、SAA775X系列、STA01X系列等;SAA775X系列是MP3播放器解码芯片组功能最全,效果最好的芯片,但价格较贵;STA01X系列需要外加DAC,使用起来多有不便;VS100X系列自带DAC输出功能,而且能解码的音频格式也比较多,同时价格合理。 经过比较,选用VS1003作为解码芯片,该芯片支持MP3、WMA、WAV、MIDI、等格式的解码,而且自带DAC输出;同时还可以调节音量、高低音等,更重要的是它还具有MIC功能,如需要还可以实现录音功能。因此,选用VS1003作为本课题音频解码芯片。如图2-3为VLSI公司生产的VS1003芯片图,2-4为由天翔电子公司设计的接入外围电路只提供与控制芯片接口的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的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 CH375U盘模块 2.1.4 存储介质 MP3播放器需要大容量的存储器来存放歌曲,可以选择Flash芯片存储、SD卡、U盘等。如果选用Flash,则整个系统需要较多的I/O端口来读取,更重要的一点,也是本次课题要解决的一个问题,那就是整个系统的容量就被固定了,扩容存在空难;而U盘和SD卡都是不错的选择,并且U盘和SD卡均容易购买的到,同时价格较为低廉,所以,存储部分选用U盘读取来实现。 2.1.5 液晶显示屏 为了兼顾成本,选择普通单色液晶显示屏,常用的有LCD1602和LCD12864,在本课题中选择LCD12864,因为LCD12864本身带有字库的功能,系统不需要添加外部字库文件,就可以实现曲目等有效信息汉字显示;而LCD1602只有常见的ASCII符号,要想显示中文必须添加外部字库文件。如图2-7为液晶LCD12864。 图 2-7 LCD12864 2.1.6 控制设备 控制设备选用键盘,但是键盘又分为编码键盘和非编码键盘,键盘上闭合键的识别由专用的硬件编码器实现,并产生键编码号或键值的称为编码键盘,如计算机键盘,而靠软件编程来识别的称为非编码键盘;由于成本低廉和结构简单考虑,在本次课题中选择非编码键盘。 2.2 方法论 MP3播放器系统以ATmega16为控制核心,不仅要管理USB总线的通用接口芯片CH375b、MP3解码芯片VS1003b、LCD12864液晶显示屏和按键的处理,而且还管理USB存储设备中的文件系统,查找文件,写文件等等。存储器里的媒体文件首先要查询,查询到的文件确定是音频文件(MP3等)后,把MP3路径名写到固定文件中,将所有的音频文件路径名写到固定文件中后,按照文件偏移,读取固定文件中的音频文件路径名,根据路径名,读取音频文件到MCU的RAM中,然后又被送到解码芯片中,解码后的音频数据被还原成模拟音频,再由扬声器传出。由于ATmega16本身不支持USB接口功能,所以MCU无法直接与U盘完成数据传输的功能,存储设备需要通过自身的接口与CH375b相接。其它芯片是通过普通I/O端口连接的。 第三章 软件开发平台 在上一章中介绍了硬件设备的选择,那么我们知道,只有硬件而没有软件的机器就是一个没有灵魂的电人,所以,在这一章中介绍软件的开发平台,使没有灵魂的电人让它有自己的思想。 3.1 编译器的选择 我们知道,机器只认识机器代码,所以要将我们所编写的程序翻译成二进制机器码必须要使用编译器。由于单片机内存和程序存储空间非常有限,好的编译器可以优化源代码,使程序的运行消耗资源小、效率提高,所以选择一个性能优越的编译器是必须的。 AVR编译器非常多,常见的有ICCAVR,GCCAVR,IAR AVR等;ICCAVR编译器是市面上教科书使用它作为AVR例程的较多,集成代码生成向导,虽然它的各方面性能均不是特别突出,但使用较为方便,一般作为教学方面的应用;GCCAVR,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®系列的处理器(MCU)。Atmel Studio 6是免费的IDE,提供专业质量的开发工具,同时配有Atmel软件框架,因而显著降低了创建新设计的成本。利用Atmel软件框架,设计人员可以获得经验证的大型免费源代码库-包括近1000个设计样例。利用此IDE更快的产品开发周期,配合更低的片上闪存成本与速度更快的MCU,正在推动更多的设计工程师以C和C++语言编写代码,而不是使用汇编代码。Atmel Studio 6使得工程师能够轻易编写、构建和调试其C/C++和汇编代码,还能够以无缝方式集成具备辅助代码编写功能的编辑器、用于快速创建新项目的向导工具、一个GNU C/C++编译器、一个功能强大的仿真器,以及适用于爱特梅尔所有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++编译器,也就是上一届在AVR系列中的GCCAVR,这就意味着Linux GCC编译器直接移植到此IDE中,继承了了GCC优化程度高,运行效率高等优点。如图3-1为Atmel Studio 6的工程界面。 图 3-1 Atmel studio 6工程界面 3.3 下载器软件工具 经过上两节的论述,现在已经具备把写的C源程序编译成ATmega16单片机可以识别的机器语言,但是,还有一个问题,如何将在PC机上交叉编译好的hex(机器码,8进制)与单片机产生联系?也就是将程序下载到单片机上,让其运行,那么这就要用到下载器,上一章已经介绍了USBISP下载器的硬件,那么下载不仅要有硬件提供支持,还要有相应的软件工具。 为了适合开发板的下载需求,在本课题中使用轩微编程器控制平台来对ATmega16来进行下载,如图3-2为轩微编程器控制平台界面。 图 3-2 下载器工具 第四章 系统设计 前两章已经为系统提供了纯硬件支持和软件工具,接下来将对各个模块建立起与主控芯片ATmega16的联系,并对系统进行整体的软硬件设计。 由于ATmega16引脚在控制寄存器的控制下具有不同的功能,在这里对ATmega16的引脚做一个约定:在接下来作的图中,除4-1,模块与ATmega16连接的引脚只具备一个功能,而不具有其他功能,如有括号则说明使用括号中的功能,如图4-3,PD4只具有输入输出功能,而PB5则具有SPI总线的功能,因为括号中已经标明。这样就不会造成误解。 4.1 硬件系统总体设计方案 ATmega16作为控制中心,它负责直接或间接控制所有的外围模块;MP3播放器系统需要音频文件,那么ATmega16通过直接给CH375发送数据和命令,间接的从U盘中取得音频数据;获得音频数据后ATmega16再把数据传送到VS1003b,当然,还得把获得的文件名信息传送给LCD12864液晶,这样周而复始,达到播放MP3的目的;本课题还提供四个按键对播放歌曲和音量进行控制,是单向的控制系统,已达到灵活控制系统,满足用户的需求。如图4-2为MP3系统的总体规划图。 图 4-1 MP3系统总体规划 4.2 ATmega16处理器介绍 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为芯片引脚连接图,连接具备某些原则,首先VS1003b的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与CH375b的连接 表4-2简要列出了CH375b与ATmega16直接联系的引脚功能说明,图4-4为芯片引脚连接图;CH375b有两种读写方式,一种是串行读写,另一种是并行读写,串行读写灵活且比较节省引脚,而并行却相反,但是效率高;由于天翔电子的这款U盘模块没有提供串口读写数据的接口,所以本课题只能用并行读写数据,也就是用更多的引脚去完成对应的功能,如果不使用中断的方式,那么理论上这13个引脚可以与ATmega16 32个普通的引脚任意连接,在本课题中,中断请求信号采用的是查询方式,所以也不需要接在ATmega16外中断引脚上。为了不与其它模块相互冲突,则采用图4-4的连接方式。 表4-2 CH375b的主要引脚功能说明 管脚 管脚类型 功能 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是LCD12864的控制器,也可支持串行传输和并行传输,在本课题中仍然采用并行的方式读写数据,如图4-5,从图中可以看出,LCD12864的并行数据传输接口和CH375b的控制端口用冲突,但是不会收到影响,因为当LCD12864在读写数据时,控制CH375b的引脚电频可能会在改变,但却不会给CH375b传送数据,而当CH375b在读写数据时LCD12864的控制端口处于不使能读写数据状态,所以两者不会造成紊乱,系统会很顺利的执行。 表4-3的主要引脚功能说明 管脚 管脚类型 功能 DB7-DB0 双向三态 8 位双向数据总线 RS 输入 地址线输入,区分命令口与数据口,当RS=1 时可以写命令,当RS=0 时可以读写数据 RW 输入 读写,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音量调低。这样设计的好处在于增加了按键的灵活性,如果后续再继续扩展功能的话比较方便,比如增加暂停停止功能,又或者增加快进快退,只需增加状态即可,而不必用更多的独立按键去控制,那样既浪费引脚,又使检测按键的次数增加,增大控制延时,降低系统效率。 图 4-6 ATmega16与按键的硬件连接 第五章 系统软件设计 5.1 需求分析 需求分析的方法很多,常见的有功能分解法、结构化分析法、信息建模法、面向对象分析方法等,本系统从复杂程度和自身的特性综合考虑采用结构化分析法,用自顶向下逐层分解策略,描叙本系统满足功能需求的软件模型,通过结构化分析描述工具来理清本系统到底做什么。 在画数据流图之前要先声明一个问题:对某个系统而言没有绝对的输入和输出;我们只是在抽象的层次去分析系统的输入和输出,围绕系统的具体功能去抽象;例如在使用VS1003解码芯片时,可以对它写入数据,播放音乐,即输出,也可以读取它某个寄存器的值,获取VS1003某时刻的状态,即输入;但在对VS1003功能进行抽象,它只具有播放功能,所以在这个抽象层次上认为VS1003只具有输出。 5.1.1 数据流图 数据流图是结构化分析方法中用于表示系统逻辑模型的一种工具,它以直观的图形清晰地描述了系统数据的流通和处理过程,图中没有任何物理元素,主要强调的是数据流和处理过程,可以很方便的了解系统的真正需求。 (1)顶层数据流图。 顶层数据流图是最为复杂也是最容易看清系统到底是做什么的;在本系统中,按键为系统提供按键信号,CH375芯片为系统提供文件数据,程序为系统提供系统初始值,在本系统中也可以用读取配置文件的策略去得到系统初始值,但为了使系统更简化,直接让程序提供初始值,所以键盘、程序、CH375芯片做系统的输入;ATmega16负责处理数据的计算和搬运,因此作为系统的变换中心(也称控制中心);系统将控制命令和数据输出到VS1003解码芯片、LCD12864,以控制音频文件播放、控制音量以及显示音频文件名等,因此,VS1003、LCD12864一定作为系统的输出;那么CH375是不是也可以作为输出呢?为了能智能的读取U盘中的所有音频文件,而ATmega16又没有足够的内存去存放所有的音频路径名,所以在播放音乐之前先把所有音频文件的路径名写在固定文件中,以便后续操作,综合分析CH375芯片既作为系统输入又作为输出;程序中有许多控制数据是随一定条件下改变的,比如按键按下、音频路径名在文件中的偏移量等,所以将程序(内存)也作为逻辑输出,会使系统更清晰。 通过上述的简要分析后,如图5-1为顶层数据流图,需要说明的一点,在输出流中都无一例外的使用了数据命令字眼,原因是本系统面对的是裸芯片,没有任何操作系统的支持,除了CH375芯片有子程序库的支持,VS1003芯片和LCD12864都没有直接的接口去调用,所以对于底层的驱动本系统也是要考虑的,不仅要提供数据,而且要把相应控制命令加进去。 图 5.1 顶层数据流图 (2)0层数据流图 顶层数据流图显然是非常复杂的,在MP3控制系统中几乎是不知道系统是如何进行数据处理进而得到想要的结果,显然要对顶层系统进行分解。 首先,本系统是没有任何操作系统的,所以第一步就是要对VS1003解码芯片、CH375芯片、LCD12864进行初始化操作,使这些芯片处在就绪状态等待主控芯片对它进行读写操作,每个芯片初始化成功后,提供一个正确信息,保证系统正常运行;紧接着,程序提供一个目录(程序默认提供根目录),开始对U盘中所有的音频文件的路径名保存在固定文件(ZCX.TXT),这样做有助于对所有音频文件进行统一管理,并且使变换歌曲操作会很方便,录入成功后提供录入文件内容的大小;然后,通过给定偏移量数据(默认为0),在固定文件(ZCX.TXT)中读取音频路径名,输出音频路径名;最后,通过给定的音频路径名进行MP3播放处理和液晶显示处理,将音频数据输出到VS1003解码芯片和LCD12864液晶;在MP3播放的同时,加上按键处理,以便随时能够接收按键信号,进行相应的按键处理操作,改变现有的状态。 通过上述分析后,如果5-2为0层数据流图,图中纵向在同一层次的表明没有先后顺序,在图中除了逻辑输出外,不加芯片代号的表明输入输出给程序(修改内存),这些数据基本都是控制信息,在下一节的数据字典中会有体现。 图 5.2 0层数据流图 (3)1层数据流图 1层数据流图中系统处理基本明朗,每一个处理都基本可以明确各自的职能,只有在按键处理部分有些模糊,因为按键处理部分可以控制按键状态,可以变换歌曲的上下一曲,还可以调节音量,因此将上述的按键处理再细化,并且有对应的流程进行处理,使系统更清晰,如图5-3为1层数据流图。 图 5.3 1层数据流图 5.1.2 数据字典 (1) 数据流条目 MP3系统数据 = VS1003初始化数据 + CH375初始化数据 + LCD12864初始化数据 + 根目录 + MP3控制数据 MP3控制数据 = 初始偏移量数据 + 初始按键状态数据 + 新生成文件的文件名(ZCX.TXT) 按键信号 = 状态信号 + 加信号 + 减信号 VS1003数据命令 = VS1003音频数据 + VS1003控制命令 LCD12864数据命令 = LCD12864数据 + LCD12864控制命令 CH375数据命令 = CH375数据 + CH375控制命令 音量数值 = 无符号高八位的音量数值 + 无符号低八位的音量数值 音频文件名 = 由最大30个字节组成的字符串 正确信息 = [ true | false ] 偏移量数据 = 当前音频文件名在新生成文件中的偏移量 + 下一首音频文件名在新生成文件中的偏移量 + 上一首音频文件名在新生成文件中的偏移量 按键状态数据 = 变换歌曲状态 + 调节音量状态 + 按键连续状态 (2) 数据存储条目 文件名 :ZCX.TXT 组成 :所有音频文件路径名的集合 组织方式 :按查找到的音频文件名路径的顺序,依次写入 (3) 加工条目 加工名:MP3控制系统 编号:无 输入:MP3系统数据,按键信号 输出:VS1003数据命令,LCD12864数据命令,CH375数据命令,MP3控制数据 加工名:VS1003管理 编号:1 输入:VS1003初始化数据 加工逻辑:初始化VS1003解码芯片,使芯片处于就绪状态,随时准备工作。 输出:正确信息 加工名:CH375管理 编号:2 输入:CH375初始化数据 加工逻辑:首先要做的是初始化CH375芯片,使芯片处于就绪状态,再者初始化CH375子程序库,使系统可以随时进行读写U盘。 输出:正确信息 加工名:LCD12864管理 编号:3 输入:LCD12864初始化数据 加工逻辑:LCD12864是由ST7920芯片控制的,准确来说是初始化ST7920,使显示液晶能正常工作。 输出:正确信息 加工名:保存U盘所有音频文件路径名 编号:4 输入:根目录 加工逻辑:根据根目录,逐层检查文件,如果是音频文件,则将文件路径添加到ZCX.TXT文件中,如果不是则不做任何处理。 输出:新生成文件(ZCX.TXT)大小 加工名:按给定条件读取新生成的文件 编号:5 输入:偏移量数据,新生成文件大小 加工逻辑:根据给定的偏移量数据先将文件偏移到指定位置,然后读出音频路径名 输出:音频文件名 加工名:MP3播放 编号:6 输入:音频路径名 加工逻辑:根据音频路径名播放相应的歌曲 输出:VS1003音频数据 加工名:按键处理 编号:7 输入:按键信号 加工逻辑:根据按键信号判断是什么信号,如果是状态信号则改变当前按键的状态,如果是加减信号,则根据当前的状态来判断是改变当前文件控制信息还是调节音量大小。 输出:VS1003音量控制命令,按键状态值,偏移量数据 加工名:液晶显示 编号:8 输入:音频路径名 加工逻辑:根据给出的音频路径名,先处理得到音频文件名,然后经过给LCD发指令和数据,显示出音频文件名 输出:LCD12864音频文件名数据 加工名:按键状态判断 编号:7.1 输入:加减按键信号,按键状态数据 加工逻辑:先判断是否存在加减信号,然后根据按键状态数据判断加减按键信号执行什么功能 输出:变换歌曲状态,调节音量状态 加工名:按键状态处理 编号:7.2 输入:按键状态数据,状态按键信号 加工逻辑:先判断是否存在状态按键信号,然后修改当前按键状态 输出:新的按键状态数据 加工名:变换歌曲 编号:7.3 输入:变换歌曲状态 加工逻辑:先判断按键是加信号还是减信号,然后修改当前、上一曲、下一曲音频文件名在新生成文件的偏移量数据。 输出:偏移量数据 加工名:调节音量 编号:7.4 输入:变换音量状态 加工逻辑:先判断按键是加信号还是减信号,然后通过对VS1003解码芯片写入音量控制命令,达到变换音量的目的 输出:VS1003音量控制命令 5.2 软件总体设计 经过需求分析阶段的工作,建立了由数据流图、数据字典和一组算法描述所定义的系统逻辑模型,系统“做什么”已经清楚,下一步将进入软件总体设计阶段,总体设计阶段描述软件的总体结构。 5.2.1 结构化总体设计 结构化设计方法是一种把在需求分析中得到的数据流图映射为软件结构图的基于数据流的设计方法,通过用数据流图描绘信息系统在系统中的加工和流动情况。结构化设计方法定义了一些不同的“映射”,利用这些映射可以把数据流图变换成软件结构图,他是在比模块更高一层的层次上讨论软件结构问题。 按照数据流图的性质,数据流图分为两种基本类型,变换型和事务型。变换型数据流图基本呈线形形状,由输入、变换、输出三个部分组成,变换是系统的变换中心。变换输入端的数据流为系统的逻辑输入,输出端为逻辑输出,而系统输入端为数据流的物理输入,输出端为物理输出。而事务型则是当一个数据项到达处理模块时,将有多个动作之一,就是事务型,这种类型数据流图呈辐射状,及数据沿着输入同路到达下一个处理,这个处理根据输入数据的类型分离成一束平行的数据流,然后选择执行若干个动作序列中的某一个来执行。 按照上述描述,可以分析得出本课题的数据流图类型属于变换型和事务型两种类- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学位 论文 2015 基于 atmega16 mp3 设计 实现
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【胜****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【胜****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【胜****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【胜****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文