基于MP3播放器的设计毕业论文.doc

上传人:laozhun 文档编号:3938812 上传时间:2023-03-28 格式:DOC 页数:86 大小:1.17MB
返回 下载 相关 举报
基于MP3播放器的设计毕业论文.doc_第1页
第1页 / 共86页
基于MP3播放器的设计毕业论文.doc_第2页
第2页 / 共86页
基于MP3播放器的设计毕业论文.doc_第3页
第3页 / 共86页
基于MP3播放器的设计毕业论文.doc_第4页
第4页 / 共86页
基于MP3播放器的设计毕业论文.doc_第5页
第5页 / 共86页
点击查看更多>>
资源描述

《基于MP3播放器的设计毕业论文.doc》由会员分享,可在线阅读,更多相关《基于MP3播放器的设计毕业论文.doc(86页珍藏版)》请在三一办公上搜索。

1、毕 业 论 文论文题目 基于MP3播放器的设计摘要随着电子技术的发展,MP3播放器已是目前市场上最流行的消费类数码产品之一,因其具有大容量、高音质、小巧便携等特点而倍受广大消费者的青睐。而对于单片机编写的MP3播放器具有执行效率高、频率输出稳定、易于修改、高可靠性、高性价比、低电压、低功耗等优点,使单片机近几年得到迅猛发展和大范围推广,广泛应用于工业控制系统、数据采集系统、智能化仪器仪表及通讯设备、日常消费类产品、玩具等领域 。本设计主要利用ATmega128作为系统的中央处理器,采用VS1003B解码芯片作为音乐播放器的解码芯片,SD卡作为系统的存储器,CH375芯片作为读取外部U盘数据的驱

2、动芯片。通过ATmega128读取SD卡或者读取经CH375芯片传送的音频数据,再送入VS1003B解码芯片实现特定格式的音频解码,并通过耳机或者有源音响输出。关键词:Atmega128;MP3播放器;SD卡;CH375;VS1003B;Based on the design of ATmega128 music playerAbstractWith the development of electronic technology, MP3 players on the market today is one of the most popular consumer digital produ

3、cts, because of its large capacity, high-quality, compact and portable features and much in favor of consumers. For the preparation of single-chip MP3 player with high efficiency, stable frequency output, easy to modify, high reliability, high cost, low voltage, low power consumption, etc., so that

4、the microcontroller in recent years has been the rapid development and large-scale promotion, widely used in industrial control systems, data acquisition systems, intelligent instrumentation and communications equipment, everyday consumer products, toys, and other fields. The main advantage of this

5、design ATmega128 as the central processor system, using VS1003B decoder chip as the music player decoder chip, SD card as a memory system, CH375 chip as U disk read external data driver chip. ATmega128 SD card or by reading through the CH375 chip reads audio data transmission, and then into VS1003B

6、audio decoder chip decode a specific format, and through headphones or powered stereo output.Keywords: Atmega128; MP3 player; SD card; CH375; VS1003B;目录第一章 引 言11.1课题背景与来源11.2课题意义11.3 MP3播放器发展历程和研究现状1第二章 系统概述32.1系统设计总方案选择32.2系统可行设计方案对比选择32.3 系统设计硬件组成42.4 系统设计的功能介绍及操作说明5第三章 硬件组成及设计63.1 主控系统模块设计电路图63.2

7、 VS1003音频解码模块83.3 SD卡模块电路及非正常播放的的解决办法103.4 U盘通信读写模块11第四章 软件设计134.1 开发工具介绍134.2 主程序流程图134.3 SD卡的读流程图144.4 SD卡文件系统的结构分析144.5 SD卡文件系统的实现154.6 U盘文件管理系统16第五章 系统测试与分析175.1 系统设计过程175.2 模块的调试175.3 系统测试达到的技术指标19第六章 结束语22参考文献23致谢24附录1(原理图、PCB图、实物图)25附录2(程序)30 第一章 引 言1.1课题背景与来源随着中国经济的不断发展,人们生活水平不断提高,物质追求已基本得到满

8、足,随之而来的是精神层面的追求。人们对生活质量的要求也越来越得到重视,对音乐的追求也迅速成为了其享受生活的重要部分。在过去的几年里,各种音乐播放器层出不穷,它们的文件格式也不可枚举。就音频播放器来说,其常用格式就有WAV、OGGG、MP3、WMA、ACC、APE等。MP3格式由于具有压缩后文件体积小、音质丢失小的特点而成为了使用最为广泛、最受播放器生产商欢迎的音频格式之一。生活中人们往往把Moving Picture Experts Group Audio Layer III简称为MP3,其本身就是一种音频压缩技术,采用了国际标准MPEG中的第三层音频压缩模式,对声音信号进行压缩的一种格式1。

9、现在普遍应用的声音编码技术是一种叫MPEG声音压缩的算法,这是一种对音源的性质没有作任何假设的算法,单纯地利用人耳的听觉特性来对声音进行压缩。MP3就是利用了这种技术,将音乐以10:1甚至12:1的压缩率,压缩成一种容量较小的文件。也就是说,MP3不仅可以把文件压缩到更小的程度,并且还可以非常好地保持了原来的音质2。 1.2课题意义 随着电子技术的迅速发展,现阶段的音频技术已经发展得相当成熟,市场流行的音频播放器其功能也远非普通的MP3可以比拟,操作界面也相当的复杂多样。但对于市场需求来说,MP3仍然占有一定的市场。同时,对于比较缺乏实际操作能力的大学生来说,实打实地设计播放器是很有必要的,这

10、对于掌握与巩固所学知识起到举足轻重的作用及对提高自身各方面的能力、培养今后从事这类工作或研究这类技术的兴趣。而MP3播放器相对而言比较简单,对于初设计者来说是一种很好的选择。本系统采用了简单、经济的电子芯片设计而成,与市场上的MP3有所不同,更加突出地改进了其MP3的储存容量小的缺点。支持SD卡及外部U盘等外储存设备的读取,具备了价格便宜、高容量、体积小、音质好、便于携带等优点。这样的MP3播放器被广泛用于汽车、家居、工业等领域,如车载MP3播放器等。1.3 MP3播放器发展历程和研究现状随着计算机速度的飞速提升,MP3标准终于在1995年被Brandenburg的研究小组制定出来,并免费提供

11、MP3软件下载。MP3的现世,由于闪存技术初现,存储容量还很小,而价格偏高,当时的MP3仍属于十分昂贵的“奢侈品”。20世纪后期,为了满足更多用户的需求,集中解决了MP3播放器能在不同的电脑上连接使用的问题,最终MP3播放器选择了“并口”作为数据输用的接口。直到1998年,第一台MP3随身听Saehan MPman F10诞生,重65克。但是当时的MP3存在信噪比太低、并口数据传输速度慢等缺点。2000年,由于受到突飞猛进的USB技术影响,MP3播放器开始使用了USB接口的设计。2000年中,创新发布了世界上第一台2.5寸硬盘MP3播放器NOMAD Jukebox,这款音乐播放器的外形就像一个

12、标准大小的CD播放器。USB接口可以提供连接速度高达12Mbps,这种速度与并口速度相比提高幅度在10倍以上,运用这种速度下歌曲文件传输时间可以缩减为3秒,若要进行64MB大小容量的文件传送也不需要1分钟。USB 2.0标准进一步将接口速度提升到480Mbps,是普通USB速度的20倍,更大幅度地降低了MP3音乐文件的传输时间3。后来使用整合式USB接口使数据传输更加方便。伴随着“无驱动”闪存盘的技术实现,在Windows 2000以上的操作系统中免去了安装驱动程序的麻烦。直接带USB接口的MP3操作起来更加方便,但此时的MP3外形不够美观。为了解决外观不美观的问题,MP3采用了伸缩式USB接

13、口,可以提供高速传输,还可以即插即用。随后又发展成为无线的数据传输方式的MP3。如今,技术仍在不断地发展,MP3技术已经相当的成熟,甚至发展成为MP4、MP5。但是MP3的技术却仍在广泛被应用,MP3播放器已经占据广大市场。现在的MP3播放器具有大容量、高音质、小巧便携等优点,深受广大消费者的青睐,广泛被应用于汽车、手机等领域,已在生活中占据重要地位。第二章 系统概述2.1系统设计总方案选择系统初步设计图如图2-1所示CPU外围电路MCUMain board外部音频存储设备功能按键操作播放界面图2-1 系统初步设计图2.2系统可行设计方案对比选择根据设计要求,结合实际情况和成本要求,对系统主要

14、部分电路方案叙述如下。2.2.1 MCU微控制器可供选择方案对比方案一:采用ATMEL公司生产的AT89SXX系列单片机。如采用初学者广泛使用的AT89S52单片机,它内部具有低损耗、高性能的CMOS微处理器,片内也具有8K字节的储存空间、4个8位的并口、1个全双工的串行口、128字节的RAM、2个16位定时/计数器,其寻址范围也有64K,这些特点能满足简单的设计需要,但如果用这款单片机来设计MP3那最好要外接一个储存芯片,否则对数据的缓冲、处理速度跟不上,容易造成卡机现象。方案二:采用ATMEL公司生产的AVR系列单片机,它相对与AT89SXX系列单片机在功能特点上得到更大的改进,除了在体积

15、、集成度、可靠性,扩展性上具有优势,而且其处理数据速度和功能得到了提升,是一种RISC精简指令集高速8位的单片机。特别是ATMEL32 、ATMEL64、ATMEL128的片内储存空间均在8K以上,尽量满足了MP3不卡机的条件之一。而且如今其市场价格与89SXX系列也相差不远,运行速度更快。综上所述,为了能更好地处理数据,得到流畅的播放效果,应考虑MCU数据处理能力,选择方案二中ATMEL公司的Atmega128单片机作为微处理控制器,它远远能满足MP3的数据解码速度要求。2.2.2 MP3解码方案对比选择 方案一: 直接用软件解码。虽在硬件方面降低了成本,但其软件方面比较复杂,编程难度较高,

16、工作量极大,而且对控制器的处理速度和资源要求也较高。 方案二:直接用音频解码芯片解码。使用高性能的VS1003 MP3解码芯片,功能不仅强大而且价格也相当便宜,VS1003支持MP3、WAV、WMA、MIDI等诸多音频格式,音质可与市场上中档MP3播放器相媲美。 基于上述比较,故选择方案二;2.2.3 显示模块方案 方案一:采用LCD1602液晶,完成数据显示。LCD1602液晶驱动电路相当简单,它可以显示简单的中英文字符、图案,并且功能和设计的成本都比较低。方案二:采用LCD12864液晶,它不仅可以显示中英文字符,也可以显示图案。但其图案分辨率很低,而且只能显示单色字符,在价格方面也不算很

17、便宜。 方案三:采用TFT液晶模块,它既可以显示彩色数字、中英文字符和图案,还可以加上触摸屏,实现GUI用户图形交互实时控制,但其模块价格较贵,并且设计要求并不需要使用触摸等功能。方案四:采用诺基亚5110液晶模块,它采用的是串行通信协议进行通信,传输速度快,耗能低,接口信号线数量少,能显示英文、数字还有图案,并且市场价格最便宜。基于价格便宜,并且结合本系统设计需要,故选择方案四。2.3 系统设计硬件组成本系统是基于Atmega128单片机所设计的MP3播放器,音频文件存储在SD卡上,通过文件系统的读取SD扇区或将音频存在U盘等USB外设储存器上,通过CH375驱动芯片读取外设储存器,由Atm

18、ega128单片机读取数据并送到VS1003B音频解码模块解码输出,同时还可以通过按键来选择实现歌曲切换,暂停播放和音量调整等功能。Atmega128单片机功能按键SD卡读取模块音频解码模块U盘读写模块电源模块本系统设计主要由以下模块组成:单片机最小系统、诺基亚5110液晶显示、VS1003音频解码模块、SD卡读取模块、USB外设读取模块和电源模块以及功能按键。系统框图如图2-2所示。 5110液晶显示模块图2-2 系统组成框图2.4 系统设计的功能介绍及操作说明本系统设计的特点和可实现的功能及具体的操作说明如下:本系统的特点是:所用芯片少,设计简单,但是功能强大,与市场上的MP3播放器相比,

19、本设计不仅具有其最基本的优点外,还在储存容量上得到了突破。不仅能在SD卡上实现音频数据的读取还可以高速读取外部的USB储存设备,如U盘,硬盘等。真正达到了成本低,音效好的特点。对于功能的实现,本设计能实现对SD卡及U盘的高速读取,同时可在诺基亚5110液晶上显示歌曲进程、歌曲名及音频频谱。需对SD卡数据存储结构及VS1003解码电路进行深入的了解。在操作上,应用了简单的功能按键,控制音乐的播放、暂停、上下曲切换、音量调节等操作在显示液晶上清楚可见。第三章 硬件组成及设计硬件设计包括整个系统的电路图,主要由单片机最小系统、VS1003解码模块、外部音频存储模块、诺基亚5110液晶显示模块、电源电

20、路模块、MP3功能按键电路等组成,本章根据系统设计结构图来对每个部分的电路进行分析和说明,重点讲述MCU微控制器Atmega128、SD卡模块电路、VS1003B音频解码模块电路、CH375驱动外设模块电路、功能按键并且涉及到的一些芯片详细资料。下面将整个音乐播放器的设计对各模块组成分别做个介绍。3.1 主控系统模块设计电路图 本模块设计包含了以下部分:MCU微机处理器、复位电路、外围模块接口、程序下载口、功能按键等。整个电路图设计相对而言比较简单,尽量地减少元器件,简化元器件布局,达到合理布局的目的。对本模块各电路进行方案对比以及元器件价格比较,最终电源部分选用了AMS1117转换电压芯片,

21、可将外部电压转换成MCU所需的电压,电路简单,效率高。对于MCU的选择,考虑到效率问题,最终也选定了Atmega128作为主控芯片,它的外围电路简单,满足本设计的需要。而显示部分也采用了诺基亚5110液晶模块,它具有既能显示英文和特殊符号还能显示中文,显示界面友好,控制简单,工作稳定,价格便宜,占用IO口少等优点,容易实现歌曲名的显示和歌曲进程的操作。本模块设计电路图如3-1 所示,系统使用内部8M晶振,下载熔丝位为 E4 91 FF 不兼容103模式。. 图3-1 主控系统模块设计电路图以下将介绍本模块的主要电路及芯片。3.1.1 供电电源电路本电路是直接利用外部电源适配器进行接电,这样得到

22、的电流和电压都比较稳定,然后利用ASM1117线性稳压芯片,将电源电压转换成稳定的,少纹波的5V、3.3V电压,为了能控制整个电路的电源供电,在适当处添加了一个六角开关,目的是截取适配器供电。当然本电路供电方式不唯一,在没有电源适配器的条件下也可以使用下载器供电,简单又实用。供电电源电路如图3-2所示图3-2 供电电源电路3.1.2 MCU微控制器Atmega128的引脚图如3-3 图所示。它为64脚的贴片式芯片,本设计利用它为核心控制元件,只有它能正常工作后才能使其他的元件进入正常工作状态。因此,下面对该芯片进行必要的说明。图3-3 图 Atmega128的引脚Atmega128芯片是一种高

23、性能、低功耗8位的AVR微处理器,片内具有128K字节的系统可编程Flash,可解决卡机问题,能及时处理传送的数据。具有4K字节的EEPROM,可以对一些操作数据进行存储,方便断电重启后,能对上一次的数据进行再现。具有独立片内振荡器的可编程看门狗定时器,可解决一些程序跑飞的情况。有53个可编程I/O口,可方便外挂其他器件,具有可工作于从机/主机模式的SPI串行接口。本设计主要用到SPI模式,需对SPI管脚及其寄存器加以重视。串行外设接口SPI允许ATmega128和外设之间进行高速的同步数据传输,接口管脚为PB1(SCK)、PB2(MOSI)、PB3(MISO)。SPI串口方式特点有:全双工,

24、3线同步数据传输;主机或从机操作 LSB首先发送或MSB首先发送;具有传输结束中断写碰撞标志检测;可以从闲置模式唤醒;可作为主机时具有双速模式(CK/2)。以上是本设计需要重视的主芯片特点。3.1.3 功能按键电路功能按键电路在系统中起到手动切换播放模式及声音大小的调整。考虑到本设计中需要的按键操作并不多,单片机的I/O口完全可以满足,所以选择了独立式键盘设计,如图3-4所示 ,按键以低电平有效。在硬件方面注意手动消抖,在软件方面,也应考虑按键消抖情况。如图3-4所示,共有五个按键,分别实现歌曲的播放、暂停、上下曲切换、声音加减功能。图3-4功能按键3.2 VS1003音频解码模块VS1003

25、B是芬兰VLSI公司生产一种VSXX系列的芯片,是一种单芯片MP3/WMA音频解码器。它拥有一个高性能,低功耗DSP 处理器核VS_DSP4,5KB 的指令RAM 和0.5KB 的数据RAM。串行控制和数据接口,4 个常规的I/O 口,一个UART,一个高品质可变采样率的ADC和立体声DAC、一个耳机放大器和地线缓冲器。VS1003B解码模块对单片机从SD卡或者U盘中读取的数据流进行解析,并转换成模拟信号输出,同时能实现高低音控制和立体声数模转换,可直接驱动耳机。本设计需将系统5V电源通过ASM1117-3.3、ASM1117-2.5转化成VS1003所需的3.3V、2.5V电压,并通过3.3

26、UH的电感进行数字电压、模拟电压、以及IO口电压进行区分,单独供电,降低对解码信号的影响。VS1003B封装图如3-5所示。图3-5 VS1003封装图该芯片的主要管脚介绍: 1脚MICP:同向差分话筒输入;2脚MICN:同向差分话筒输出;3脚XRESET:复位;8脚DREQ:数据请求;13脚XDCS:命令片选; 23脚XCS:命令片选;28脚SCLK:串行时钟; 29脚SI:串行输入;30脚SO:串行输出;42脚GBUF:公共地缓冲器;44脚RCAP:基准滤波电容。3.2.1 VS1003解码模块电路图图3-6 VS1003解码模块电路图3.3 SD卡模块电路及非正常播放的的解决办法对于本模

27、块电路设计,首要应该考虑电源电压和电流的要求,防止电压电流超过SD卡承受范围,进行烧卡,系统中供电电压一般为3.3V。驱动SD卡的模式分为SD总线模式和SPI总线模式。采用四根数据线并行传输数据,数据传输速率高的模式为SD卡总线模式,这种总线的传输协议并不简单,而且很多单片机都没有提供这样的总线接口,而且若用软件来模拟SD卡总线却又相当的繁琐,并且还会降低SD卡的数据传输速率;如果用SPI总线模式去驱动SD卡,那么就只需用到一根数据传输线,此时数据传输速率虽较低,可在很多单片机上都具有SPI总线接口,若用软件来模拟也十分的容易,其总线模式的传输协议十分简单,易于实现。因此,本模块设计根据协议的

28、简单性和实际需要则采用了SPI总线模式。SPI总线模式的数据传输则以字节为单位进行,每个字节则为8位,每个命令或者数据模块都需以字节来对齐。单片机对SD卡的读操作主要由主机控制,主机必须先拉低SD卡的片选信号CS,选中SD卡器件,然后再由主机向SD卡发送各种命令,SD卡对主机发送的任何命令进行响应,根据命令的不同执行不同的响应格式;在执行写操作时,SD卡还要对主机发送的每个数据模块进行响应。通过执行命令和作出相对应的命令响应,完成单片机对SD卡的读写操作。3.3.1 调试中一些SD卡不能正常播放的解决办法如果在软件方面只编写了FAT16文件系统,则不支持大于2G的盘,由此带来了两个问题。若大于

29、2G的盘,格式化的时候只能选择FAT32,FAT16的盘是不能正常播放的。 若小于2G的盘,请先使用软件USBOOT把SD卡工作模式更改为FDD模式,更改后即可正常播放。3.3.2 SD卡读写模块图(如图3-7所示)图:3-7 SD卡读写模块图3.4 U盘通信读写模块本模块设计是利用CH375芯片对外部的U盘内数据进行驱动读取。CH375是一个USB总线的通用接口芯片,支持USB-HOST主机方式和USB-DEVICE/SLAVE设备方式4。CH375是一个28脚的贴片式芯片,它具有串并行通信方式,可以通过读控制线、写控制线、片选控制线、中断输出线及8位数据总线,可非常方便地与单片机等控制器总

30、线相连,实现并行传输。当然还可以选择串行通信,通过串行输入线、输出线和中断输出线与单片机等实现数据传输。CH375本身还内置了大量专用通信协议的固件,外部单片机可以直接通过调用其固件实现对常用的USB储存设备以扇区为单位的读写操作。在本设计过程中用ASM1117-3.3芯片降压到所需的3.3V电压,并且还在并行串行的方式上预留了接口,即通过此接口可以选择串行和并行接口方式。(注意:CH375运用的是12M晶振,22PF瓷片电容组成的振荡电路)3.4.1 U盘通信电路图(如图3-8所示)图:3-8 U盘读写模块图3.4.2 U盘工作原理当CH375工作方式在主机方式时,单片机通过RD、WR、片选

31、CS、中断INT#和地线A0进行控制,实现与CH375通讯。当有U盘插入时CH375产生中断来告诉单片机,单片机每次得到CH375的中断后,都要用“获取状态码”来取消这个中断,让INT#恢复到高电平,为下次中断做准备。要是U盘连接错误,那么就会返回状态码,若获取状态码GET_STATUS,那么表示U盘已经连接成功。接下来就是磁盘的初始化DISK_INIT,同样也是等待中断,获取状态码,若获取USB_INT_SUCCE,则成功,否则返回状态码,此时初始化U盘成功,返回标志0。当CS、RD和A0都为低电平时CH375的数据可以通过D0D7输出;当CS、WR和A0都为低电平时,D0D7上的数据被写入

32、CH375芯片中;当CS和WR都为低电平,A0为高电平时,D0D7中的数据可以作为命令码写入CH375中,这样就实现了CH375对U盘的读写5。其过程为:在CH375对U盘进行读写扇区时,首先送入磁盘读取命令DIST_READ,然后送入32位的扇区地址,从低字节开始送入,接着送入要读取的扇区数,当我们只读取一个扇区时,我们就只送一个入一个1,往下是等待中断读取状态,送入读数据命令再读数据(注:数据的第一个字节是后面数据的长度,紧接着的才是真正的数据),写入继续读数据命令,等待中断获取状态USB_INT_SUCCESS,最后读取扇区成功。补充:CH375的数据缓冲区仅为64个字节,读取一个扇区(

33、512字节)要读8次,每读完一次要从CH375中送入继续读取的命令,等待CH375的数据缓冲区更新为下面的64个字节后,再次等待中断,读取状态。写入8次以后,512个字节被写入到了CH375中,最后一次继续写命令DISK_WR_GO,获得的状态码不再是USB_INT_DISK_WRITE。3.4.3 U盘模块部分容易造成影响的一些问题在PCB设计中,应注意一些细节以防对设计造成不必要的影响。例如注意振荡电路晶体的外壳接地,这样可以降低电磁辐射,减少外来干扰,并且振荡电路的电容应尽量靠近CH375,PCB的走线应该尽量短,最好可以在周边环绕接地或者敷铜。对于USB数据线D+和D-的PCB应该平行

34、布线,长度保持差不多6。3.5 诺基亚5110液晶模块本设计采用诺基亚5110液晶显示,它不仅兼容了诺基亚3310液晶,而且在操作上也非常的简单。它原本就是一个LCD点阵屏,可以显示4行汉字,与主机通过串口模式相接。当然可以用主机的SPI模式,也可以简单地模拟SPI模式,这对于很多单片机来说都是可以做到的。它的传输速率是1602液晶的四倍,在价格上也比较便宜,来源也很多。对本设计的需求已经远远可以满足。设计中模块接口如图3-9所示。图3-9 诺基亚5110液晶接口图第四章 软件设计4.1 开发工具介绍本设计除了硬件方面的重要性,同时也应该注重软件。一个单片机的使用不仅仅只有硬件,同时也应该有软

35、件的支持,硬软结合才能发挥其更加强大的作用,在写汇编程序CPU可执行的机器码可分为手工汇编和机器汇编这两种方法。利用汇编软件变为机器码的方式是机器汇编,在单片机的汇编软件历史上出现较早的有A51,但随着技术的发展,单片机开发技术也越来越成熟,汇编方式也从汇编语言变成了高级语言,ICC AVR这款AVR系列单片机软件已经成为了目前最流行的开发软件。ImageCraft 的ICC AVR是一个应用到了ANSI标准的C语言来开发微控制器(MCU)程序的工具。 ICCAVR是一个综合了编辑器和工程构建同体的软件。在ICCAVR编辑器的状态窗口中可以很清楚地把编译出现的错误显示出来,当用鼠标单击编译出现

36、的错误时,光标就会自动跳转到编辑窗口中引起错误的那一行,这样就省去了烦杂的查错工作7。在编译程序通过时,还可以直接产生被大多数编程器所支持INTEL.HEX格式文件,用于下载程序到芯片中。对于ICCAVR软件,在编写程序的时候要注意各个中断函数的书写,还要注意管脚的使用,对包含的头文件也应该具有一定的了解。4.2 主程序流程图主程序主要完成系统的初始化、对SD卡或者U盘数据的识别和读取,音频的解码,还有液晶的显示、按键的操作等,其主程序流程图如图4-1所示。开始YNY各模块初始化读U/SD卡主引导解析文件系统从U/SD卡读取文件名调用UNICODE字库并显示解析文件名计算MP3数据流首簇地址读

37、取1扇区的MP3数据流MP3数据流写入VS1003芯片读完1簇?计算下一簇地址文件是否结束结束图 4-1 主程序流程图各模块初始化后,单片机识别U/SD卡,再根据U/SD卡的主引导,通过FAT文件系统解析文件名,并调用UNICODE字库把文件名显示在诺基亚5110液晶上,然后单片机计算簇所在的地址,把读到的文件数据流送入到VS1003中进行解码,当读完一簇后,则计算下一次地址,如此便实现文件的链接。4.3 SD卡的读流程图开始端口初始化设置SPI为低速模式CS置为低电平SD卡复位,CMD0CMD1,初始化SPI高速模式发送CMD8,保留Rec=0x01?结束CMD58,读OCR寄存器至少延时7

38、4个时钟周期CMD59,关CRCCMD16,设置扇区大小YN图 4-2 SD读流程图SD卡读流程中,设置SPI低速模式,把CS设为低电平,即选择SD操作,然后发送至少74个时钟周期,发送CMD0指令,让SD卡复位,然后延时稍许,如果检测到0X01则发送CMD1初始化成功,否则不成功,在初始化成功后再发送8个脉冲,读取OCR寄存器把时钟送入SPI高速,再关掉校验,再发送CMD16就可以读取扇区的大小。4.4 SD卡文件系统的结构分析SD卡内的数据要在操作系统下被识别,则需要在SD卡上创建操作系统所能识别的FAT16/FAT32文件系统。FAT16/FAT32文件系统的结构大致可分为分区引导记录、

39、文件分配表、文件目录表和数据区4大部分8。在分区引导记录中又可分为BIOS参数记录块BPB(BIPS Parameter Block)、磁盘标志记录表、分区引导记录代码区和结束标志55AA这四块内容。而在BPB表中其起始点是在扇区字节位移0bH处,这段总共占了25字节。紧跟在分区引导记录后的是FAT(文件分配表)区,在一些文件系统中存在这样两份完全相同的文件分配表FAT1和FAT2,如FAT16/FAT32文件系统就具有这样相同的两个文件分配表,并且每一份FAT表所占用空间的大小都可从BPB表中查询得到。簇是一种文件存储在磁盘上的最小单位,为了防止一个文件的数据并不能完整放在磁盘的一个连续区域

40、内的情况发生,因此一般将磁盘分为若干簇。在文件的链式存储中通过FAT表记录文件存储中簇与簇之间的连接信息,这样就可以快速地查找文件储存的地址。在FAT16文件系统中1个簇就占有2个字节,F8FH就是它的起始字节,FFFFH则是它的终止字节,如果是显示0000则意味着这区未被使用,通过这些明显的标志,则可以快速了解储存区的活动情况。随在FAT表后的就是文件目录表FDT,它在大小上固定占了32个扇区,但一个扇区又可容纳16个登记项,一个登记项又具有32字节的长度,具有如此的特征,使其在存储文件目录上更具有条理性。接着就是占了磁盘空间大部分的数据区DATA,它主要用来存放文件数据。4.5 SD卡文件

41、系统的实现要实现对文件的管理,那么单片机通过对SD卡的读写中就可按照FAT16/FAT32文件系统的格式对SD卡上的数据进行操作,这样便可以在SD卡上实现文件的创建、文件的读写和文件的删除等操作。4.5.1 在SD卡上创建文件(或目录)在文件目录表FDT中申请登记项的过程为SD卡上创建文件(或目录)的过程,而在登记项中则包括有文件名、文件长度和起始簇号等信息。文件名的大小一般占用8个字节,而长的文件名则需要用数组来存放。在需要知道文件的状态时,则可根据文件名的首字节来判断该文件的状态,若出现00H则表示该目录项未被使用,若出现E5H则表示该文件(或目录)已被删除。但在创建目录时,应将属性值设置

42、为10H(表示子目录),文件长度为09。4.5.2 SD卡文件的读写操作簇是SD卡上文件存取的单位。要读取SD卡上的文件,就必须要用簇来链接,通过文件名来链接到该文件目录登记项所在的地址,再用目录登记项中的起始簇号来查找到文件在数据区DATA中第一簇的内容和在FAT表中找到第二个簇号,接着又根据第二个簇号再找到第二簇的内容和FAT表中的第三个簇。如此进行,就能够根据FAT表中的簇号来读取全部文件数据,但在写文件时就必须要保证FAT1和FAT2中内容的一致性,即对两块都要进行同样的写操作10。对于FATl6系统文件,可根据下面的公式计算出数据起始逻辑扇区号11: 起始逻辑扇区=隐藏扇区数+1+2

43、*每FAT扇区数+FDT扇区数+(起始簇号-2)*每簇扇区数4.5.3 实现SD卡文件的删除SD卡文件管理中还有一个重要的方面,那就是实现对文件的删除。由于删除文件。并没有涉及到数据区的操作,那么只须在文件的目录登记项中进行操作12。4.6 U盘文件管理系统U盘数据的储存同样也是采用FAT文件系统进行的,并且可将其储存空间划分为五大板块,即由主引导扇区(MBR)、DOS引导区(DBR)、文件分配表(FAT)、文件目录表(FDT)和数据区组成。但是U盘文件级子程序库和大量的固件协议都能在CH375中提供,所以单片机可以直接调用子程序来读写U盘中的文件数据。U盘文件的读写方式同样也是采用扇区模式进

44、行读写,USB存储设备中的数据和定义其数据结构都可以由单片机自由操作。U盘通信采用查询中断响应的方式进行,流程如图4-3所示。开始系统初始化查询中断U盘复位/加载U盘是否插入查询FAT系统文件返回播放主程序查询U盘指定文件结束NNYY图:4-3 U盘读流程图单片机利用查询中断方式来识别有没U的存在,当U盘插进来瞬间,CH375的INT#口会产生一个低电平的中断信号反馈给单片机,等待单片机把该信号恢复为高电平,完成U盘的成功接入操作,然后单片机利用FAT系统文件通过CH375来查询U盘内的MP3文件,并将读到的数据流返回主程序送给VS1003进行解码,完成对U盘的读操作。第五章 系统测试与分析5

45、.1 系统设计过程设计前准备工作,认真查阅资料,对比可选方案,最终明确设计的方案,同时也对一些设计中的主要芯片进行大概的了解。然后就是购买所需器件,以便在画图过程中能够按照元器件来画出封装。运用专业的电路设计软件Altium Designer来设计原理图,添加相对应的元件封装后便可成功导入PCB图制作,然后需在PCB面板上进行线路的布线和元器件的位置摆放,过程中应考虑元器件布局的合理性,线路的干扰性等问题。严格遵守地线大于电源线大于信号线的布线规则。要制作出电路板,还必须在打印PCB图之后进行热转印,如果转印完毕的铜板线路有断开或者不清楚的现象,则可用油性墨笔补齐,等油墨干之后采用盐酸与双氧水

46、配置的混合液进行洗板。洗板后为了减少污染环境应对废液进行回收。然后对板进行打孔,根据不同封装孔的大小采用不同的钻孔针。随后要用砂纸擦去铜上的碳粉,涂上用酒精和松香配置的松香水,因为这样可以帮助焊接锡,防止铜被氧化。最后是焊板,焊接时间不可太久,以免烧坏芯片或元器件,焊接时要防虚焊。至此就完成了一块电路板的制作,接下来就是针对模块的调试。在本次设计中,由于Atmega128的管脚比较多,对设计者来说印PCB也是有一定的难度的,为了节约成本,做单层板比较经济,虽然系统的跳线多,但是不会影响性能的实现。当然也可以手工做双层板,在做双层板时要注意手工热转印时图纸上下的对齐,这样才能使热转印后板上的封装

47、孔对齐,这也是一种技术活。一开始,我在设计中也用了双层板,追求的是出板的美观性,可是经过多次热转印后才能成功,可惜过孔太多,焊接技术有待提高,故选用了单层板设计,优化了布线。而对于VS1003解码模块,由于诸多原因,没能成功做出手工的模块板,原因如下:元件布局复杂,更重的是贴片式,对于初学者来说具有一定的难度;做出的板无法正常解码,影响大。手工版的VS1003解码模块的布局无法与主板模块构成一个整体的美观。总的来说,自身存在焊板技术不高,PCB元件布局合理性安排不够,故所做的VS1003解码板最终失败,只能选用现买的工业板模块或把PCB图发到加工厂去做成工业板,这样可避免手焊的故障。总结:做板需要耐心,需要技巧,在原理图设计过程中需要懂设计原理,谨慎检查,对焊贴片式芯片时,注意把握电烙铁融锡的时间,不能烫太久。5.2 模块的调试硬件完成后,接下来就是软件的编写与调试。在程序的编写过程中,为了规范

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号