基于atmega16的mp3设计与实现_第1页
基于atmega16的mp3设计与实现_第2页
基于atmega16的mp3设计与实现_第3页
基于atmega16的mp3设计与实现_第4页
基于atmega16的mp3设计与实现_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

毕业设计任务书毕业设计(论文)题目基于ATMEGA16的MP3的设计与实现毕业设计(论文)要求及原始数据(资料)1简单了解MP3的发展历程;2熟练对嵌入式系统总体架构分析的能力;3熟练掌握芯片资料的分析能力,了解其工作原理,并能通过查看芯片资料,主动去控制它;4熟练用模块化思想编写软件的能力;5深入分析数据流输入输出的原理,并能有效的去控制;6设计并实现基于ATMEGA16的MP3;7训练检索文献资料和利用文献资料的能力;8训练撰写技术文档与学位论文的能力。毕业设计(论文)主要内容1综合叙述MP3的发展历程,以及今后发展的趋势;2综合的理论分析和方法论证;3ATMEGA16处理器的介绍;4硬件系统总体设计方案(包括CH375,LCD12864,VS1003以及按键与ATMEGA16的连接方式);5软件开发平台的介绍;6系统软件的设计(包括各个模块的软件设计);7系统调试结果与分析。学生应交出的设计文件(论文)1内容完整、层次清晰、叙述流畅、排版规范的毕业设计论文;2包括毕业设计论文、源程序、硬件实现等内容在内的毕业设计电子文档及其它相关材料。主要参考文献(资料)1智赵华,张鹏USB接口芯片CH375的原理及应用J今日电子,2005874752懂杨生USB主机嵌入式系统中的应用J嵌入式系统,2008622253袁卫,党纪源基于单片机的MP3播放器设计J20113441231254黄平平,吉荣延,沈大鹏,基于CH375实现单片机读写U盘J现代电子技术,2006,29185王澜锦基于CH375的U盘MP3播放器设计J嵌入式技术,2007658606马潮,AVR单片机嵌入式系统原理与应用实践,2007,97878112418917张峰峰,嵌入式U盘读写器接口技术和系统设计,桂林电子科技大学20078张霞,基于单片机的大容量数据存储技术的应用研究,微计算机信息20069DONANDERSONUNIVERSALSERIALBUSSYSTEMARCHITECTUREMADDISONWESLEYLONGMAN,INC,200010PHOENIXTECHNOLOGIESLTDUNIVERSALSERIALBUS1996专业班级软件1028班学生要求设计(论文)工作起止日期2014年3月17日2014年6月27日指导教师签字日期2014年3月17日教研室主任审查签字日期系主任批准签字日期基于ATMEGA16的MP3设计与实现摘要本课题实现了基于ATMEGA16的MP3设计与实现。论文通过自顶向下的方法从硬件到软件深入分析系统的需求,介绍了实现系统的总体规划,并分别阐述各模块的实现细节CH375通过CH375子程序库存取U盘并智能读取音频文件MP3、WMA格式等的方法、VS1003音频解码程序的方法、显示屏显示音频文件歌曲名等信息的方法以及通过按键控制播放曲目和音量的方法。U盘中的音频文件智能识别,存放音频路径到固定文件,并可以根据给定偏移量读取,最后声音的播放通过扬声器和耳机进行,基本实现了音乐播放器智能播放U盘中所有音乐的功能,并能根据按键控制歌曲和音量。关键字ATMEGA16;MP3播放器;CH375U盘读写;VS1003;SOFTWAREDESIGNOFMUSICPLAYERBASEDONATMEGA16MCUABSTRACTTHISTOPICHASREALIZEDBASEDONATMEGA16MP3DESIGNANDIMPLEMENTATIONPAPERSFROMHARDWARETOSOFTWAREBYUSINGTHEMETHODOFTOPDOWNANALYSISTHEDEMANDOFTHESYSTEM,THISPAPERINTRODUCESTHEIMPLEMENTATIONSYSTEMOFPLANNING,ANDEXPOUNDSTHEIMPLEMENTATIONDETAILSOFTHEVARIOUSMODULESRESPECTIVELYCH375THROUGHCH375SUBROUTINELIBRARYACCESSUDISKANDINTELLIGENTREADINGTHEAUDIOFILEMP3,WMAFORMAT,ETCMETHOD,METHODSOFVS1003AUDIODECODINGPROCEDURES,SCREENDISPLAYINFORMATIONSUCHASAUDIOFILESSONGSNAMEMETHOD,ANDTHROUGHTHEBUTTONCONTROLPLAYLISTSANDVOLUMEMETHODUDISHINTHEAUDIOFILEINTELLIGENTIDENTIFICATION,STORETHEAUDIOPATHTOTHEFIXEDFILES,ANDCANBEREADACCORDINGTOTHEGIVENOFFSET,THELASTSOUNDBROADCASTTHROUGHTHESPEAKERSANDHEADPHONES,THEMUSICPLAYERHASBEENBASICALLYACHIEVEDINTELLIGENTPLAYTHEFUNCTIONOFTHEUSBDRIVEALLMUSIC,ANDCANACCORDINGTOTHESONGSANDTHEVOLUMEBUTTONCONTROLKEYWORDSATMEGA16MP3PLAYERCH375UPLATE,SPEAKING,READINGANDWRITINGVS1003目录摘要IABSTRACTII第一章绪论111应用背景与意义1111背景1112意义1第二章理论分析与方法论证321理论分析3211ATMEGA16开发板和下载器3212MP3解码芯片4213USB总线设备接口芯片5214存储介质5215液晶显示屏6216控制设备622方法论6第三章软件开发平台731编译器的选择732ATMELSTUDIO6简介733下载器软件工具8第四章系统设计1041硬件系统总体设计方案1042ATMEGA16处理器介绍1043ATMEGA16与外部芯片的连接11431ATMEGA16与VS1003的连接11432ATMEGA16与CH375B的连接12433ATMEGA16与LCD12864的连接13434ATMEGA16与按键的连接14第五章系统软件设计1651需求分析16511数据流图16512数据字典1952软件总体设计21521结构化总体设计21522软件总体结构图的构建2153软件详细设计22531CH375管理模块22532VS1003管理模块25533LCD12864管理模块28534保存U盘所有音频文件路径名模块29535按指定条件读取新生成文件模块31536MP3播放模块31537液晶显示模块32538按键处理模块33539主模块3354系统测试34541LCD12864显示模块测试34542CH375读写模块测试35543VS1003播放模块测试37544按键控制模块测试37545CH375读写模块和VS1003播放模块联合测试37546综合测试37结论39参考文献40致谢41外文原文42中文翻译46第1章绪论11应用背景与意义111背景1998年韩国世韩SEAHAN推出了世界上第一台MP3MPMANF10,在世韩为人们带来惊喜之后,美国的美国的帝盟(DIAMOND)公司挑头,于1998年底推出了RIOPMP300,这是第一个让全世界都印象深刻的MP3。MP3MPEGAUDIOLAYER3是采用国际标准MPEG(MOVINGPICTURESEXPERTSGROUP,动态图象专家组)中的第三层音频压缩模式,对声音信号进行压缩的一种格式。MPEG声音压缩算法是一种通用的声音编码技术,它对音源的性质没有作任何假设,而是利用人耳的听觉特性对声音进行压缩。MPEG音频层根据压缩质量和编码复杂程度划分为三层,即LAYER1、LAYER2、LAYER3,且分别对应MP1、MP2、MP3这三种声音文件,并根据不同的用途,使用不同层次的编码。MPEG音频编码的层次越高,编码器越复杂,压缩率也越高,MP1和MP2的压缩率分别为41和6181,而MP3的压缩率则高达101121。也就是说,一分钟CD音质的音乐,未经压缩需要10MB的存储空间,而经过MP3压缩编码后只有1MB左右。跨入21世纪,MP3的高速发展使人们不再满足于闪存那以MB为单位的容量。2000年1月,音频硬件领域的老大哥创新推出了世界第一台25寸硬盘MP3NOMADJUKEBOX,它采用了富士通64GB的25英寸硬盘作为存储介质,可以存储相当于100多张CD的MP3音乐,容量远远超过了当时的闪存MP3,不过体积也非常惊人,竟比一般的CD随身听还要大,其外形也跟CD随身听非常相似。虽然采用硬盘介质,但为了保证在运动时音乐能流畅地进行播放,创新为其设计了可支撑5分钟的8MB防震缓存,这样即使在外出及移动的条件下也不会出现音乐跳轨现象。当日历翻到2014年这一页的时候,MP3随身听已经经历了数年的发展,而随身听市场的竞争亦趋于白热化,几乎每个星期甚至每天都会有新品MP3的推出,其发展的速度实在惊人但一体化的设计导致存储容量固定,如果想下载更多的歌曲还得重新购买新的产品,造成了重大的浪费,另一方面,一体化又限制了MP3播放器在其他领域的应用,比如在一些固定场所使用MP3非便携式,不方面拆卸。于是,将存储器和播放器分离成为MP3的另一个发展方向。112意义基于ATMEGA16的音乐播放器应用的方面特别广,不仅便携简单,而且在一些特殊环境,如车载MP3,浴室MP3,这些不易移动的产所有很广泛的用途,别且可以作为很多系统的辅助功能,如智能家具,智能手机的一个功能模块。本论文设计的MP3在于播放器与存储器相分离的思想,U盘在市场上很容易买到,支持常用的文件系统FAT12,FAT16以及FAT32,并且支持容量达100G,只要手上有U盘,而且有MP3等音频格式的文件,那么就可以使用本系统所提供的USB接口,直接插上去就可以播放音乐,同时,通过显示屏可以知道当前播放的歌曲,还可以通过按键直接控制音量和歌曲,比起过去用FLASH保存的音乐要方便的多。最后,对我们大学生而言,提高了解决问题的能力,增强了动手能力,熟练了一些常见电子芯片的使用。第2章理论分析与方法论证21理论分析针对MP3音乐播放系统,要选择合适核心控制芯片和外部芯片来配合实现,因为本课题要求基于ATMEGA16的控制芯片,所以核心控制芯片选择ATMEGA16,下面分别介绍芯片选用原则和最终芯片和模块的确定。211ATMEGA16开发板和下载器控制芯片已经确定为ATMEGA16,那么如何将程序下载到单片机中一种方法就是自己设计基于ATMEGA16的最小系统和必要的外围电路;第二种方法就是利用已经设计好的开发板,用现成的工具,直接下载到单片机,而且现在的开发板都会为用户提供外围接口,使用户能够根据自己的需求去开发其它系统。第一种方法开发周期较长,所以采用第二种方法,选择用现成的开发板。本课题选用由天翔电子公司设计的AVR开发板,如图21,下载器使用由轩微科技出品的USBISP,不用JTAG的的原因是本系统占用的I/O会比较多,而JTAG会占用PC口,影响实验结果,USBISP有个缺点是不具备仿真功能,如图22。图21AVR开发板图22USBISP下载器212MP3解码芯片首先联想到能否用ATMEGA16单片机来直接对MP3音频文件直接解码答案是不行的,因为对单片机而言,数字处理速度和资源都远远达不到,所以只能简介通过外部解码芯片来实现解码,并播放歌曲。MP3解码芯片常见的有VS100X系列、SAA775X系列、STA01X系列等;SAA775X系列是MP3播放器解码芯片组功能最全,效果最好的芯片,但价格较贵;STA01X系列需要外加DAC,使用起来多有不便;VS100X系列自带DAC输出功能,而且能解码的音频格式也比较多,同时价格合理。经过比较,选用VS1003作为解码芯片,该芯片支持MP3、WMA、WAV、MIDI、等格式的解码,而且自带DAC输出;同时还可以调节音量、高低音等,更重要的是它还具有MIC功能,如需要还可以实现录音功能。因此,选用VS1003作为本课题音频解码芯片。如图23为VLSI公司生产的VS1003芯片图,24为由天翔电子公司设计的接入外围电路只提供与控制芯片接口的MP3播放器。图23VS1003图24MP3播放器模块213USB总线设备接口芯片USB总线设备接口设备较多较杂,在本课题中选用有南京沁恒公司生产的CH375B芯片,它是全速USB设备接口,兼容USBV20,即插即用,外围器件需要晶体电容,支持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盘。如图25为CH375B芯片,图26为有天翔电子公司设计的接入外围电路只提供与控制芯片接口的CH375U盘模块。图25CH375B图26CH375U盘模块214存储介质MP3播放器需要大容量的存储器来存放歌曲,可以选择FLASH芯片存储、SD卡、U盘等。如果选用FLASH,则整个系统需要较多的I/O端口来读取,更重要的一点,也是本次课题要解决的一个问题,那就是整个系统的容量就被固定了,扩容存在空难;而U盘和SD卡都是不错的选择,并且U盘和SD卡均容易购买的到,同时价格较为低廉,所以,存储部分选用U盘读取来实现。215液晶显示屏为了兼顾成本,选择普通单色液晶显示屏,常用的有LCD1602和LCD12864,在本课题中选择LCD12864,因为LCD12864本身带有字库的功能,系统不需要添加外部字库文件,就可以实现曲目等有效信息汉字显示;而LCD1602只有常见的ASCII符号,要想显示中文必须添加外部字库文件。如图27为液晶LCD12864。图27LCD12864216控制设备控制设备选用键盘,但是键盘又分为编码键盘和非编码键盘,键盘上闭合键的识别由专用的硬件编码器实现,并产生键编码号或键值的称为编码键盘,如计算机键盘,而靠软件编程来识别的称为非编码键盘;由于成本低廉和结构简单考虑,在本次课题中选择非编码键盘。22方法论MP3播放器系统以ATMEGA16为控制核心,不仅要管理USB总线的通用接口芯片CH375B、MP3解码芯片VS1003B、LCD12864液晶显示屏和按键的处理,而且还管理USB存储设备中的文件系统,查找文件,写文件等等。存储器里的媒体文件首先要查询,查询到的文件确定是音频文件MP3等后,把MP3路径名写到固定文件中,将所有的音频文件路径名写到固定文件中后,按照文件偏移,读取固定文件中的音频文件路径名,根据路径名,读取音频文件到MCU的RAM中,然后又被送到解码芯片中,解码后的音频数据被还原成模拟音频,再由扬声器传出。由于ATMEGA16本身不支持USB接口功能,所以MCU无法直接与U盘完成数据传输的功能,存储设备需要通过自身的接口与CH375B相接。其它芯片是通过普通I/O端口连接的。第3章软件开发平台在上一章中介绍了硬件设备的选择,那么我们知道,只有硬件而没有软件的机器就是一个没有灵魂的电人,所以,在这一章中介绍软件的开发平台,使没有灵魂的电人让它有自己的思想。31编译器的选择我们知道,机器只认识机器代码,所以要将我们所编写的程序翻译成二进制机器码必须要使用编译器。由于单片机内存和程序存储空间非常有限,好的编译器可以优化源代码,使程序的运行消耗资源小、效率提高,所以选择一个性能优越的编译器是必须的。AVR编译器非常多,常见的有ICCAVR,GCCAVR,IARAVR等;ICCAVR编译器是市面上教科书使用它作为AVR例程的较多,集成代码生成向导,虽然它的各方面性能均不是特别突出,但使用较为方便,一般作为教学方面的应用;GCCAVR,GCC是LINUX的唯一开发语言,GCC编译器优化程度可以说是目前世界上民用软件中做的最好的,另外,它有一个非常大的有点,免费在国外,使用它的人几乎是最多的但,相对而言,它的缺点是操作比较麻烦;IAR实际上在国外比较多的人使用,但它的价格较为昂贵,所以,中国大陆内,使用它的开发人员比较少,只有习惯用IAR的工程师才会去使用它。综上分析,使用GCCAVR是非常不错的选择。32ATMELSTUDIO6简介ATMEL公司在2012年推出广受欢迎的集成开发环境IDE的最新版ATMELSTUDIO6,支持基于ATMEL32位ARMCORTEXM系列与ATMEL8/32位AVR系列的处理器MCU。ATMELSTUDIO6是免费的IDE,提供专业质量的开发工具,同时配有ATMEL软件框架,因而显著降低了创建新设计的成本。利用ATMEL软件框架,设计人员可以获得经验证的大型免费源代码库包括近1000个设计样例。利用此IDE更快的产品开发周期,配合更低的片上闪存成本与速度更快的MCU,正在推动更多的设计工程师以C和C语言编写代码,而不是使用汇编代码。ATMELSTUDIO6使得工程师能够轻易编写、构建和调试其C/C和汇编代码,还能够以无缝方式集成具备辅助代码编写功能的编辑器、用于快速创建新项目的向导工具、一个GNUC/C编译器、一个功能强大的仿真器,以及适用于爱特梅尔所有CORTEXM系列和AVR处理器的编程器与在线调试器的前端可视化工具。目前用于AVR设计的模拟器通过提供准确的AVRMCU模型来加快应用开发。仿真器不仅为CPU和中断进行仿真,而且还可以为片上I/O模块仿真,无需实际的硬件即可进行全面的应用开发。基于上述ATMELSTUDIO6各种优势,在本课题中使用此IDE进行代码编辑和程序编译。ATMELSTUDIO6的代码编辑继承了VISIOSTUDIO2010的风格,所以编辑非常方便,比如自动补全功能,在目前一般单片机IDE是做不到这一点的在上述的简介中也提到ATMELSTUDIO6自带编译器为GNUC/C编译器,也就是上一届在AVR系列中的GCCAVR,这就意味着LINUXGCC编译器直接移植到此IDE中,继承了了GCC优化程度高,运行效率高等优点。如图31为ATMELSTUDIO6的工程界面。图31ATMELSTUDIO6工程界面33下载器软件工具经过上两节的论述,现在已经具备把写的C源程序编译成ATMEGA16单片机可以识别的机器语言,但是,还有一个问题,如何将在PC机上交叉编译好的HEX机器码,8进制与单片机产生联系也就是将程序下载到单片机上,让其运行,那么这就要用到下载器,上一章已经介绍了USBISP下载器的硬件,那么下载不仅要有硬件提供支持,还要有相应的软件工具。为了适合开发板的下载需求,在本课题中使用轩微编程器控制平台来对ATMEGA16来进行下载,如图32为轩微编程器控制平台界面。图32下载器工具第4章系统设计前两章已经为系统提供了纯硬件支持和软件工具,接下来将对各个模块建立起与主控芯片ATMEGA16的联系,并对系统进行整体的软硬件设计。由于ATMEGA16引脚在控制寄存器的控制下具有不同的功能,在这里对ATMEGA16的引脚做一个约定在接下来作的图中,除41,模块与ATMEGA16连接的引脚只具备一个功能,而不具有其他功能,如有括号则说明使用括号中的功能,如图43,PD4只具有输入输出功能,而PB5则具有SPI总线的功能,因为括号中已经标明。这样就不会造成误解。41硬件系统总体设计方案ATMEGA16作为控制中心,它负责直接或间接控制所有的外围模块;MP3播放器系统需要音频文件,那么ATMEGA16通过直接给CH375发送数据和命令,间接的从U盘中取得音频数据;获得音频数据后ATMEGA16再把数据传送到VS1003B,当然,还得把获得的文件名信息传送给LCD12864液晶,这样周而复始,达到播放MP3的目的;本课题还提供四个按键对播放歌曲和音量进行控制,是单向的控制系统,已达到灵活控制系统,满足用户的需求。如图42为MP3系统的总体规划图。图41MP3系统总体规划42ATMEGA16处理器介绍ATMEGA16是基于增强的AVRRISC结构的高性能、低功耗8位CMOS微控制器。由于其先进的指令集以及单时钟周期指令执行时间,ATMEGA16的数据吞吐率高达1MIPS/MHZ。ATMEGA16拥有16K字节的系统可编程FLASH,512字节的EEPROM,1K字节的片内SRAM,并且内部集成很多总线。如图42为ATMEGA16的引脚图。图42ATMEGA16引脚43ATMEGA16与外部芯片的连接431ATMEGA16与VS1003的连接表41简要列出了VS1003B与ATMEGA16直接联系的引脚功能说明,图43为芯片引脚连接图,连接具备某些原则,首先VS1003B的SI和SCLK必须和ATMEGA16的MOSI和SCK对应连接,因为在对VS1003B进行读写数据时会用到SPI总线,而其余四个控制读写的引脚可随意分配到ATMEGA1632个普通的I/O,但是出于和后续的三个模块相互间不产生影响,所以将剩余的四个控制引脚按图43连接。表41VS1003B的主要引脚功能说明管脚管脚类型功能SI输入串行输入SCLK输入串行总线的时钟XCS输入片选输入,低电平有效XREST输入低电平有效,异步复位端DREQ输出数据总线,输入总线XDCS输入数据片选端/字节同步图43ATMEGA16与VS1003硬件连接432ATMEGA16与CH375B的连接表42简要列出了CH375B与ATMEGA16直接联系的引脚功能说明,图44为芯片引脚连接图;CH375B有两种读写方式,一种是串行读写,另一种是并行读写,串行读写灵活且比较节省引脚,而并行却相反,但是效率高;由于天翔电子的这款U盘模块没有提供串口读写数据的接口,所以本课题只能用并行读写数据,也就是用更多的引脚去完成对应的功能,如果不使用中断的方式,那么理论上这13个引脚可以与ATMEGA1632个普通的引脚任意连接,在本课题中,中断请求信号采用的是查询方式,所以也不需要接在ATMEGA16外中断引脚上。为了不与其它模块相互冲突,则采用图44的连接方式。表42CH375B的主要引脚功能说明管脚管脚类型功能DB7DB0双向三态8位双向数据总线,内置弱上拉电阻RD输入读选通输入,低电平有效,内置弱上拉电阻WR输入写选通输入,低电平有效,内置弱上拉电阻CS输入片选控制输入,低电平有效,内置弱上拉电阻INT输出中断请求输出,低电平有效A0输入地址线输入,区分命令口与数据口,内置弱上拉电阻,当A01时可以写命令,当A00时可以读写数据图44ATMEGA16与CH375B硬件连接433ATMEGA16与LCD12864的连接表43简要列出了LCD12864与ATMEGA16直接联系的引脚功能说明,图45为芯片引脚连接图;ST7920是LCD12864的控制器,也可支持串行传输和并行传输,在本课题中仍然采用并行的方式读写数据,如图45,从图中可以看出,LCD12864的并行数据传输接口和CH375B的控制端口用冲突,但是不会收到影响,因为当LCD12864在读写数据时,控制CH375B的引脚电频可能会在改变,但却不会给CH375B传送数据,而当CH375B在读写数据时LCD12864的控制端口处于不使能读写数据状态,所以两者不会造成紊乱,系统会很顺利的执行。表43的主要引脚功能说明管脚管脚类型功能DB7DB0双向三态8位双向数据总线RS输入地址线输入,区分命令口与数据口,当RS1时可以写命令,当RS0时可以读写数据RW输入读写,RW1时读,RW0时写E输入允许信号,相当于片选RST输入重新复位图45ATMEGA16与LCD12864的硬件连接434ATMEGA16与按键的连接图45为三个独立按键与ATMEGA16的连接,理论上这三个按键也是随意在ATMEGA16的任意一个普通引脚上连接的,但基于上述几个模块的引脚分配,最终将按键确定为图45;此处有三个按键,KEY3为状态键,用来改变其余两个按键KEY1,KEY2的职能,如果KEY3为选择曲目状态,则剩下两个按键的功能分别为KEY1下一曲,KEY2上一曲,如果KEY3为调节音量状态,则剩下两个键的功能分别为KEY1音量调高,KEY2音量调低。这样设计的好处在于增加了按键的灵活性,如果后续再继续扩展功能的话比较方便,比如增加暂停停止功能,又或者增加快进快退,只需增加状态即可,而不必用更多的独立按键去控制,那样既浪费引脚,又使检测按键的次数增加,增大控制延时,降低系统效率。图46ATMEGA16与按键的硬件连接第5章系统软件设计51需求分析需求分析的方法很多,常见的有功能分解法、结构化分析法、信息建模法、面向对象分析方法等,本系统从复杂程度和自身的特性综合考虑采用结构化分析法,用自顶向下逐层分解策略,描叙本系统满足功能需求的软件模型,通过结构化分析描述工具来理清本系统到底做什么。在画数据流图之前要先声明一个问题对某个系统而言没有绝对的输入和输出;我们只是在抽象的层次去分析系统的输入和输出,围绕系统的具体功能去抽象;例如在使用VS1003解码芯片时,可以对它写入数据,播放音乐,即输出,也可以读取它某个寄存器的值,获取VS1003某时刻的状态,即输入;但在对VS1003功能进行抽象,它只具有播放功能,所以在这个抽象层次上认为VS1003只具有输出。511数据流图数据流图是结构化分析方法中用于表示系统逻辑模型的一种工具,它以直观的图形清晰地描述了系统数据的流通和处理过程,图中没有任何物理元素,主要强调的是数据流和处理过程,可以很方便的了解系统的真正需求。1顶层数据流图。顶层数据流图是最为复杂也是最容易看清系统到底是做什么的;在本系统中,按键为系统提供按键信号,CH375芯片为系统提供文件数据,程序为系统提供系统初始值,在本系统中也可以用读取配置文件的策略去得到系统初始值,但为了使系统更简化,直接让程序提供初始值,所以键盘、程序、CH375芯片做系统的输入;ATMEGA16负责处理数据的计算和搬运,因此作为系统的变换中心也称控制中心;系统将控制命令和数据输出到VS1003解码芯片、LCD12864,以控制音频文件播放、控制音量以及显示音频文件名等,因此,VS1003、LCD12864一定作为系统的输出;那么CH375是不是也可以作为输出呢为了能智能的读取U盘中的所有音频文件,而ATMEGA16又没有足够的内存去存放所有的音频路径名,所以在播放音乐之前先把所有音频文件的路径名写在固定文件中,以便后续操作,综合分析CH375芯片既作为系统输入又作为输出;程序中有许多控制数据是随一定条件下改变的,比如按键按下、音频路径名在文件中的偏移量等,所以将程序内存也作为逻辑输出,会使系统更清晰。通过上述的简要分析后,如图51为顶层数据流图,需要说明的一点,在输出流中都无一例外的使用了数据命令字眼,原因是本系统面对的是裸芯片,没有任何操作系统的支持,除了CH375芯片有子程序库的支持,VS1003芯片和LCD12864都没有直接的接口去调用,所以对于底层的驱动本系统也是要考虑的,不仅要提供数据,而且要把相应控制命令加进去。图51顶层数据流图20层数据流图顶层数据流图显然是非常复杂的,在MP3控制系统中几乎是不知道系统是如何进行数据处理进而得到想要的结果,显然要对顶层系统进行分解。首先,本系统是没有任何操作系统的,所以第一步就是要对VS1003解码芯片、CH375芯片、LCD12864进行初始化操作,使这些芯片处在就绪状态等待主控芯片对它进行读写操作,每个芯片初始化成功后,提供一个正确信息,保证系统正常运行;紧接着,程序提供一个目录程序默认提供根目录,开始对U盘中所有的音频文件的路径名保存在固定文件ZCXTXT,这样做有助于对所有音频文件进行统一管理,并且使变换歌曲操作会很方便,录入成功后提供录入文件内容的大小;然后,通过给定偏移量数据默认为0,在固定文件ZCXTXT中读取音频路径名,输出音频路径名;最后,通过给定的音频路径名进行MP3播放处理和液晶显示处理,将音频数据输出到VS1003解码芯片和LCD12864液晶;在MP3播放的同时,加上按键处理,以便随时能够接收按键信号,进行相应的按键处理操作,改变现有的状态。通过上述分析后,如果52为0层数据流图,图中纵向在同一层次的表明没有先后顺序,在图中除了逻辑输出外,不加芯片代号的表明输入输出给程序修改内存,这些数据基本都是控制信息,在下一节的数据字典中会有体现。图520层数据流图31层数据流图1层数据流图中系统处理基本明朗,每一个处理都基本可以明确各自的职能,只有在按键处理部分有些模糊,因为按键处理部分可以控制按键状态,可以变换歌曲的上下一曲,还可以调节音量,因此将上述的按键处理再细化,并且有对应的流程进行处理,使系统更清晰,如图53为1层数据流图。图531层数据流图512数据字典1数据流条目MP3系统数据VS1003初始化数据CH375初始化数据LCD12864初始化数据根目录MP3控制数据MP3控制数据初始偏移量数据初始按键状态数据新生成文件的文件名ZCXTXT按键信号状态信号加信号减信号VS1003数据命令VS1003音频数据VS1003控制命令LCD12864数据命令LCD12864数据LCD12864控制命令CH375数据命令CH375数据CH375控制命令音量数值无符号高八位的音量数值无符号低八位的音量数值音频文件名由最大30个字节组成的字符串正确信息TRUE|FALSE偏移量数据当前音频文件名在新生成文件中的偏移量下一首音频文件名在新生成文件中的偏移量上一首音频文件名在新生成文件中的偏移量按键状态数据变换歌曲状态调节音量状态按键连续状态2数据存储条目文件名ZCXTXT组成所有音频文件路径名的集合组织方式按查找到的音频文件名路径的顺序,依次写入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输入根目录加工逻辑根据根目录,逐层检查文件,如果是音频文件,则将文件路径添加到ZCXTXT文件中,如果不是则不做任何处理。输出新生成文件ZCXTXT)大小加工名按给定条件读取新生成的文件编号5输入偏移量数据,新生成文件大小加工逻辑根据给定的偏移量数据先将文件偏移到指定位置,然后读出音频路径名输出音频文件名加工名MP3播放编号6输入音频路径名加工逻辑根据音频路径名播放相应的歌曲输出VS1003音频数据加工名按键处理编号7输入按键信号加工逻辑根据按键信号判断是什么信号,如果是状态信号则改变当前按键的状态,如果是加减信号,则根据当前的状态来判断是改变当前文件控制信息还是调节音量大小。输出VS1003音量控制命令,按键状态值,偏移量数据加工名液晶显示编号8输入音频路径名加工逻辑根据给出的音频路径名,先处理得到音频文件名,然后经过给LCD发指令和数据,显示出音频文件名输出LCD12864音频文件名数据加工名按键状态判断编号71输入加减按键信号,按键状态数据加工逻辑先判断是否存在加减信号,然后根据按键状态数据判断加减按键信号执行什么功能输出变换歌曲状态,调节音量状态加工名按键状态处理编号72输入按键状态数据,状态按键信号加工逻辑先判断是否存在状态按键信号,然后修改当前按键状态输出新的按键状态数据加工名变换歌曲编号73输入变换歌曲状态加工逻辑先判断按键是加信号还是减信号,然后修改当前、上一曲、下一曲音频文件名在新生成文件的偏移量数据。输出偏移量数据加工名调节音量编号74输入变换音量状态加工逻辑先判断按键是加信号还是减信号,然后通过对VS1003解码芯片写入音量控制命令,达到变换音量的目的输出VS1003音量控制命令52软件总体设计经过需求分析阶段的工作,建立了由数据流图、数据字典和一组算法描述所定义的系统逻辑模型,系统“做什么”已经清楚,下一步将进入软件总体设计阶段,总体设计阶段描述软件的总体结构。521结构化总体设计结构化设计方法是一种把在需求分析中得到的数据流图映射为软件结构图的基于数据流的设计方法,通过用数据流图描绘信息系统在系统中的加工和流动情况。结构化设计方法定义了一些不同的“映射”,利用这些映射可以把数据流图变换成软件结构图,他是在比模块更高一层的层次上讨论软件结构问题。按照数据流图的性质,数据流图分为两种基本类型,变换型和事务型。变换型数据流图基本呈线形形状,由输入、变换、输出三个部分组成,变换是系统的变换中心。变换输入端的数据流为系统的逻辑输入,输出端为逻辑输出,而系统输入端为数据流的物理输入,输出端为物理输出。而事务型则是当一个数据项到达处理模块时,将有多个动作之一,就是事务型,这种类型数据流图呈辐射状,及数据沿着输入同路到达下一个处理,这个处理根据输入数据的类型分离成一束平行的数据流,然后选择执行若干个动作序列中的某一个来执行。按照上述描述,可以分析得出本课题的数据流图类型属于变换型和事务型两种类型的混合型,变换型是显而易见的,因为从始至终本系统都是为播放MP3而服务的,那么事务型从何体现根据最终处理得到音频路径名的处理方式上,既要交给VS1003解码芯片,又要交给LCD12864显示液晶,所以此又为事务型。522软件总体结构图的构建通过对顶层和0层数据流图的分析,MP3控制系统本质上明确音频路径名后直接进行播放,所以确定“按给定条件读取新生成的文件”作为系统变换中心,变换中心确定以后就相当于确定了主模块的位置,这就是软件的顶层;第一层至少要有输入、输出、变换中心三种功能的模块,因此首先要构建音频路径名文件将U盘中所有音频文件的路径名保存在指定文件中,所以音频文件名录入处理做为第一层的输入,但前提必须首先调用芯片管理模块,为主模块提供可进行读写的音频文件名文件和必要的控制数据;紧接着,需要一个变换中心模块,用刚刚得到的数据去变换得到要播放的音频路径名,并得到音频路径名,传给主模块,最后主模块再分别调用MP3播放、按键处理、液晶显示模块,在此过程中读音频路径名和处理音频路径名是一个循环的过程,播完一曲再继续下一曲;在MP3播放、按键处理。液晶显示这三个模块都分别要调用芯片管理模块,所以芯片管理模块作为公共模块要将其放在最底层。如图56,为软件总体结构图,图中上层调用下层模块,并且VS1003管理模块,CH375管理模块,LCD12864管理模块作为基类模块,上层不少模块都在直接或间接的调用它们,所有为了不使图形太过杂乱,某些模块的输出并没有表示出来。56软件总体结构图53软件详细设计在上一节已经将系统划分为多个模块,并将它们按照一定的原则组装起来了,同时确定了每个模块的功能及模块与模块之间的外部结构,在本节中,将对系统各个模块进行详细的设计,用详细设计工具清晰地描述。本系统将按照自底向上的顺序一一剖析每个模块,设计出程序的“蓝图”。531CH375管理模块CH375提供了U盘文件级子程序库,单片机可以直接调用子程序读写U盘中的文件数据,硬件上只需要在原单片机系统中增加一个CH375芯片,综合成本较低。CH375的U盘文件级子程序库支持常用的FAT12、FAT16和FAT32文件系统,支持容量高达100GB的U盘。AVR单片机的增强版子程序库,文件名是CH375HFBA和LIBCH375HFDA以及CH375HFJR90,分别支持ICC、WINAVRGCC、IAR编译环境,在本课题中,使用的是LIBCH375HFDA,利用WINAVRGCC编译环境。1CH375B子程序库相关配置虽然在CH375B子程序库中已经给用户提供了许多现成的接口,但有些配置符号常量的值仍然需要重新定义,再者CH375B中引脚与ATMEAG16引脚之间的联系是动态的,用户可以根据自己的喜好去连接CH375B,所以在子程序库的头文件CH375HFDH定义了三个外部定义有子程序库去掉用的三个接口实现,分别是往CH375B写命令的接口、写数据接口以及从CH375读数据的接口。下面对需要修改的符号常量和需要实现的三个接口作详细阐述,因为它在程序中至关重要。1符号常量的重定义1F_CPU8000000在ATMELSTUDIO6中标准库中有一个延时库,这个延时库是根据ATMEGA16提供的晶振去计算延时的,延时非常准确,比我们仿真测试要准确,所以,给定晶振的频率很重要,在这里我们提供的是8MHZ,默认16MHZ。2LIB_CFG_FILE_IO2文件读写数据的复制方式,选择2为双DPTR复制”,针对特定硬件的数据复制方式,使用两个DPTR,每传输一个字节需要85个机器周期,速度较快,适用于ATMEL/PHILIPS/SST等具有双DPTR及DPS的单片机,默认设置为1,1为内部复制,适用于速度慢的MCS51单片机。3LIB_CFG_INT_EN0CH375的INT引脚连接方式,0为“查询方式“,1为“中断方式“,这里建议使用方式0,因为此系统应用单一,不需要中断,默认也是查询,但这里最好显示给出,使读者一目了然。4DISK_BASE_BUF_LEN512表示磁盘缓存区的大小,缓存子程序库数据和文件数据的。由于ATMEGA16片内RAM只有1K,要定义的小一些,默认也是512,但是最好也显示给出,比较深刻理解子程序库存放数据的机制。5MAX_BYTE_IO32表示以字节为单位单次读写文件时的最大长度,默认值为30,但是,VS1003的缓存为32,为了使读写数据的效率提高,将单次读写最大长度变为32。6CH375_INT_WIREPINBBECAUSEOFITSRANDOMNESSANDRAPIDCHANGE,SOTHEENCODERERRORSWILLBEMOREOBVIOUS,ANDITSOUNDSLIKEECHOINADDITIONTOTHECODEFILEBITRATETHEQUALITYOFTHEMP3FILE,ALSORELATEDTOTHEQUALITYOFTHEENCODERANDTHEDIFFICULTYOFTHECODEDSIGNALUSINGHIGHQUALITYGENERALSIGNALENCODERENCODING,SOMEPEOPLETHINKTHAT128KBIT/SMP3AND441KHZCDSAMPLINGSOUNDSIMILARTOCDQUALITY,ATTHESAMETIMEGETABOUTNOWTHECOMPRESSIONRATIOUNDERTHERATIOOFCORRECTCODINGOFMP3CANONLYGETBETTERSOUNDQUALITYTHANFMRADIO,THISBASICALLYISTHESIMULATIONOFTHEMEDIUMBANDWIDTHCONSTRAINTS,SIGNALTONOISERATIOANDOTHERRESTRICTIONSHEARINGTESTS,HOWEVER,SHOWTHESIMPLEEXERCISETESTAUDIENCECANRELIABLYDISTINGUISHTHEDIFFERENCEBETWEENTHE128KBIT/SMP3ANDORIGINALCDINMANYCASESTHEYTHINKMP3SOUNDQUALITYISTOOLOW,ISNOTACCEPTABLE,BUTSOMEOTHERAUDIENCEORCHANGETHEENVIRONMENT,SUCHASINANOISYCARORTHEPARTYTHEYTHINKTHEQUALITYISACCEPTABLEOBVIOUSLY,THEDRAWBACKSOFMP3ENCODINGONLOWENDSOUNDCARDSORSPEAKERSARELESSOBVIOUSANDHIGHQUALITYSTEREOINTHECONNECTIONTOTHECOMPUTERSYSTEM,ESPECIALLYWHENUSINGTHEHIFIEQUIPMENTORHIGHQUALITYHEADPHONESISMOREOBVIOUS中文翻译AVR内核具有丰富的指令集和32个通用工作寄存器。所有的寄存器都直接与算逻单元ALU相连接,使得一条指令可以在一个时钟周期内同时访问两个独立的寄存器。这种结构大大提高了代码效率,并且具有比普通的CISC微控制器最高至10倍的数据吞吐率。ATMEGA16有如下特点16K字节的系统内可编程FLASH具有同时读写的能力,即RWW,512字节EEPROM,1K字节SRAM,32个通用I/O口线,32个通用工作寄存器,用于边界扫描的JTAG接口,支持片内调试与编程,三个具有比较模式的灵活的定时器/计数器T/C,片内/外中断,可编程串行USART,有起始条件检测器的通用串行接口,8路10位具有可选差分输入级可编程增益TQFP封装的ADC,具有片内振荡器的可编程看门狗定时器,一个SPI串行端口,以及六个可以通过软件进行选择的省电模式。工作于空闲模式时CPU停止工作,而USART、两线接口、A/D转换器、SRAM、T/C、SPI端口以及中断系统继续工作;掉电模式时晶体振荡器停止振荡,所有功能除了中断和硬件复位之外都停止工作;在省电模式下,异步定时器继续运行,允许用户保持一个时间基准,而其余功能模块处于休眠状态;ADC噪声抑制模式时终止CPU和除了异步定时器与ADC以外所有I/O模块的工作,以降低ADC转换时的开关噪声;STANDBY模式下只有晶体或谐振振荡器运行,其余功能模块处于休眠状态,使得器件只消耗极少的电流,同时具有快速启动能力;扩展STANDBY模式下则允许振荡器和异步定时器继续工作。本芯片是以ATMEL高密度非易失性存储器技术生产的。片内ISPFLASH允许程序存储器通过ISP串行接口,或者通用编程器进行编程,也可以通过运行于AVR内核之中的引导程序进行编程。引导程序可以使用任意接口将应用程序下载到应用FLASH存储区APPLICATIONFLASHMEMORY。在更新应用FLASH存储区时引导FLASH区BOOTFLASHMEMORY的程序继续运行,实现了RWW操作。通过

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论