




已阅读5页,还剩36页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本科毕业设计题目多功能MP3播放器TITLEMULTIFUNCTIONMP3PLAYER院系名称物理与通信电子学院专业电子信息工程摘要本系统以CORTEXM332位高性能单片机为核心,由音频解码芯片VS1003、TFT彩屏、SD卡、文件系统FATFS09和键盘等模块组成了一个多功能MP3播放器。该播放器实现了歌曲播放、图片浏览、录音、游戏、闹钟、温度显示、日历、电子书和计算器等功能。歌曲和图片文件存放在内存卡当中。系统有两个音频接口和一个麦克风接口,以及一个用于录音的声音拾取器。系统有按键和触屏两种控制方式,支持全触摸操作。关键词CORTEXM3单片机,解码芯片,TFT彩屏,文件系统,SD卡,MP3ABSTRACTTHISSYSTEMTOCORTEXM332BITHIGHPERFORMANCESINGLECHIPMICROCOMPUTERASTHECORE,FROMAUDIODECODERCHIPVS1003,TFTCOLOURSCREENS,SDCARD,THEFILESYSTEMFATFS09ANDKEYBOARDMODULEAMULTIFUNCTIONMP3PLAYERTHEPLAYERSREALIZEDTHESONGSPLAYED,PICTUREBROWSING,RECORDING,GAME,ALARMCLOCK,TEMPERATUREDISPLAY,CALENDAR,EBOOKSANDCALCULATORETCFUNCTIONSONGSANDPICTURESOFTHEFILESARESTOREDINAMEMORYCARDTHESYSTEMHASTWOAUDIOINTERFACEANDAMICROPHONEINTERFACE,ANDONEFORTHERECORDINGVOICEISUPWITHKEYSANDTOUCHSCREENSYSTEMTWOCONTROLMODE,SUPPORTTHETOUCHOPERATIONKEYWORDSCORTEXM3MICROCONTROLLER,DECODERCHIP,TFTCOLOURSCREENS,THEFILESYSTEM,SDCARD,MP3目录毕业论文声明2摘要IABSTRACTII1引言12设计要求13方案论证131控制器选择132显示模块233存储器模块234音频解码模块34硬件部分341单片机3411LM3S9B95概述3412LM3S9B95外围电路介绍4421芯片封装6422引脚定义6423芯片特性7424供电系统8425读写操作时序843TFT彩屏944触摸屏控制芯片10441ADS7846简介10442ADS7846引脚功能10443工作原理1145温度传感器12451TMP175简介12452I2C总线1346时钟芯片DS13391547SD卡165软件部分1751开发工具介绍1752程序框图1853文件系统1854GUI程序的设计2155主要功能的实现原理22551游戏22552图片浏览23553录音24554音乐播放25555日历25556文件管理26557电子书266系统功能测试与分析27结语32参考文献33附录一系统原理图一34附录二系统原理图二35附录三源程序361引言随着电子技术的快速发展,电子类产品尤其是消费类电子产品跟新换代的速度越来越快。MP3就是对人们生活很重要的一款消费类电子产品。MP3早在多年前就打败了CD、MD播放器,夺取了随身听市场的头把交椅。然而事隔多年,MP3播放器非但没有任何即将衰败的迹象,反而因为越来越强悍的功能,越来越多变的造型以及工业设计新元素的添加,让MP3能够持久地焕发着生机和活力。2设计要求设计并制作一个MP3播放器,支持WMA、MP3、WAV等常见歌曲格式,并具有录音、图片浏览等多个功能。基本要求(1)支持文件系统。能以文件的形式播放歌曲、浏览图片等;(2)存储介质为内存卡。歌曲文件存放在内存卡中。扩展要求(1)采用TFT彩屏,并支持触屏;(2)增加功能,如录音、图片浏览、电子书、万年历、游戏等。3方案论证根据设计要求先确定了本系统的整体设计原理框图,如图1LM3S9B95主控制器独立按键SD卡/文件系统音频解码模块温度传感器时钟芯片TFT触摸彩屏直流电源备用电池图1原理框图31控制器选择方案一采用51单片机作为主控制器。51单片机具有价格便宜、控制方便等特点。但处理速度偏低,IO口较少。方案二采用LM3S9B95作为主控制器。LM3S9B95是TI公司推出的一款以CORTEXM3为内核的32位高性能单片机。拥有多达65个IO口。本系统对主控制器的速度有较高要求,速度对歌曲的播放效果有较大的影响,LM3S9B95最大可以达到80MHZ,这个51单片机远不可及的。此外,由于系统需要至少50个IO口,而51单片机最多只有40个,无法满足系统的要求。所以选择方案二,采用LM3S9B95作为系统的主控制器。32显示模块方案一采用12864点阵式液晶。12864是12864点阵液晶模块的点阵数简称,该点阵的屏显成本相对较低,适用于各类仪器,小型设备的显示领域。一页共可以显示32个汉字或者64个字符。方案二采用TFT彩屏。TFT彩屏在消费电子产品中有着广泛的应用。色阶是表示彩屏显示屏亮度强弱的指数标准,也就是通常所说的色彩指数。目前彩屏手机的色阶指数从低到高可分三个层次,最低单色,其次是256色、4096色、65536色;目前最高的为26万色。彩屏相对点阵式液晶具有色彩丰富、分辨率高的优点。尤其在图片显示方面,点阵式液晶只能显示单色,大大的影响图片的显示效果。而且,彩屏还可以支持触屏,方便系统的控制。综上所述,系统选择方案二,采用TFT彩屏作为显示器件。33存储器模块方案一采用SD卡作为存储器。SD卡(SECUREDIGITALMEMORYCARD)是一种基于半导体快闪记忆器的新一代记忆设备。SD卡由日本松下、东芝及美国SANDISK公司于1999年8月共同开发研制。大小犹如一张邮票的SD记忆卡,重量只有2克,但却拥有高记忆容量、快速数据传输率、极大的移动灵活性以及很好的安全性。SD卡在32MM24MM21MM的体积内结合了SANDISK快闪记忆卡控制与MLC(MULTILEVELCELL)技术和TOSHIBA(东芝)016U及013U的NAND技术,通过9针的接口界面与专门的驱动器相连接,不需要额外的电源来保持其上记忆的信息。而且它是一体化固体介质,没有任何移动部分,所以不用担心机械运动的损坏。方案二采用FLASH芯片作为存储器。FLASH芯片是应用非常广泛的存储材料,诸多的存储器件都是以FLASH为基础开发的。SD卡相对于FLASH芯片,读取速度较慢,但接口简单,存储容量大。一般的SD卡都能达到上百M。同等容量的FLASH芯片的价格则远远高于SD卡。在满足系统速度要求下,容量较大且价格更便宜的SD卡是理想的选择。因此,选择方案一。34音频解码模块方案一采用硬解码的方法。硬解码是指通过专门的解码芯片来完成MP3的解码算法工作。解码的主要工作是由解码芯片来完成的,如VS1003。方案二采用软解码的方法。软解码是指将解码用的算法转换成指令放在主控制器中,解码主要通过主控制器来完成。这个对主控制器的主频有较高要求。软解码适合用在主频较高的控制器中,如个人电脑。本系统的主控制器LM3S9B95的最高时钟速度只有80MHZ,无法满足软解码的要求,否则解码时间会非常漫长,影响播放效果。相反,硬解码则可以在较低的时钟速度下和短时间内完成解码工作。因此,系统采用方案一,即采用VS1003硬解码的方式。4硬件部分41单片机411LM3S9B95概述LM3S9B95是TI公司推出的第四代CORTEXM3内核32位微处理器。具有令人惊叹的快速响应能力,THUMB2技术将16位和32位指令相结合,使代码密度和性能达到了最佳平衡。THUMB2比纯32位代码使用的内存要少26,从而降低了系统成本,同时将性能提高了25。主要特性如下1、256KFLASH、96KRAM;2、CORTEXM3处理器内核,最高时钟频率可达80MHZ;3、32路直接内存访问控制器(DMA);4、5个定时器、2个看门狗定时器和RTC实时时钟;5、8个PWM发生模块;6、2个CAN总线模块、3个UART通用串行模块、10/100M以太网控制器;7、2个I2C总线模块、2个SPI总线模块,10位、16通道AD转换模块;8、多达65个可配置的IO口,100PINLQFP封装,管脚图如图2。图2LM3S9B95管脚图412LM3S9B95外围电路介绍1、供电系统LM3S9B95电源电压为33V,电源芯片采用TI公司的TLV111733。TLV111733是TI公司推出的具有单输出LDO、固定电源(33V)、内部电流限制、过流保护特性的线性稳压器。电路图如图3GNDIOUT4LV7S0CMHNDUCTOR_图3TLV111733电路图输入电压范围为47V15V,额定输出电压33V。系统采用12V供电。图中C12、C13和L1起滤波和隔离的作用。2、晶振振荡电路LM3S9B95有4个时钟源可供使用。分别是内部振荡器(IOSC)、主振荡器、内部30KHZ振荡器和外部时钟振荡器。内部振荡器是片内时钟来源,它不需要使用外部任何元件。不依赖精确时钟有利于降低系统成本。主振荡器由OSC0输入管脚输入一个外部单端时钟信号或在OSC0输入管脚和OSC1输出管脚之间连接一个外部晶体。如果主振荡器作为PLL的时钟参考源,那么支持的晶体的频率范围为3579545MHZ8192MHZ。系统采用8MHZ晶振,如图412Y8MPFCGNDOS0图4LM3S9B95外部晶振振荡电路图3、复位电路LM3S9B95外部复位输入管脚(RST)为低电平有效。复位电路如图5R7KV_T图5LM3S9B95复位电路图电路在上电时会提供一个上电复位信号,同时按下按键S2也能对系统复位。4、JTAG接口JTAG端口由5个标准的管脚组成。数据通过TDI串行发至控制器,然后通过TDO从控制器串行输出。程序的下载、调试都是通过JTAG口来完成的。电路图如图69PJA一I图6LM3S9B95JTAG接口电路42音频解码芯片VS1003VS1003是由荷兰VLSI公司出品的一款单芯片的MP3/WMA/MIDI音频解码和ADPCM编码芯片,其拥有一个高性能低功耗的DSP处理器核VS_DSP,5K的指令RAM,05K的数据RAM,串行的控制和数据输入接口,4个通用IO口,一个UART口;同时片内带有一个可变采样率的ADC、一个立体声DAC以及音频耳机放大器。421芯片封装VS1003采用LQFP48封装,封装图如图7图7VS1003封装图422引脚定义VS1003共有48个管脚,引脚定义如表1表1VS1003管脚功能管脚名称LQFP48管脚类型管脚功能MICP1AI同相差分话筒输入,自偏压MICN2AI反相差分话筒输入,自偏压XRESET3DI低电平有效,异步复位端DGND04DGND处理器核与I/O地CVDD05CPWR处理器核电源IOVDD06IOPWRI/O电源CVDD17CPEW处理器核电源DREQ8DO数据请求,输入总线GPIO/DCLK9DIO通用I/O2/串行数据总线时钟GPIO3/SDATA10DIO通用I/O3/串行数据总线数据XDCS/BSYNC13DI数据片选端/字节同步IOVDD114IOPWRI/O电源VCO15DO时钟压控振荡器VCO输出DGND116DGND处理器核与I/O的地XTALO17AO晶振输出XTALI18AI晶振输入IOVDD219IOPWRI/O电源DGND220DGND处理器核与I/O地DGND321DGND处理器核与I/O地DGND422DGND处理器核与I/O地XCS23DI片选输入,低电平有效CVDD224CPWR处理器核电源RX26DIUART接收口,不用时接IOVDDTX27DOUART发送口SCLK28DI串行总线的时钟SI29DI串行输入SO30DO3串行输出CVDD331CPWR处理器核电源TEST32DI保留做测试,连接至IOVDDGPIO0/SPIBOOT33DIO通用I/O0/SPIBOOT,使用100K下拉电阻GPIO134DIO通用I/O1AGND037APWR模拟地,低噪声参考地AVDD038APWR模拟电源RIGHT39AO右声道输出AGND140APWR模拟地AGND241APWR模拟地GBUF42AO公共地缓冲器AVDD143APWR模拟电源RCAP44AIO基准滤波电容AVDD245APWR模拟电源LEFT46AO左声道输出AGND347APWR模拟地LINEIN48AI线路输入423芯片特性VS1003的特性(1)能解码MPEG1与MPEG2音频层III(CBRVBRABR)WMA40/41/7/8/95384KBPS所有流文件WAV(PCMIMAADPCM)产生MIDI/SPMIDI文件;(2)对话筒输入或线路输入的音频信号进行IMAADPCMM编码;(3)支持MP3和WAVV流;(4)高低音控制;(5)单时钟1213MHZ;(6)内部PLLL锁相环时钟倍频器;(7)低功耗;(8)内含高性能片上立体声数模转换器,两声道间无相位差;(9)内含能驱动30欧负载的耳机驱动器(10)模拟,数字,I/O单独供电;(11)为用户代码和数据准备的55KB片上RAM;(12)串行的控制/数据接口(13)可被用作微处理器的从机;(14)特殊应用的SPIFLASH引导;(15)借高度用途的UART接口;(16)新功能可以通过软件和4GPIO添加。424供电系统模拟、数字I/O单独供电,电压值分为33V和25V。33V统一使用系统33V直流电,但需加相应的隔离器件以防止干扰。25V电压使用TLV111725单独供电。TLV111725是TI公司单通道LDO线性稳压器,输入电压范围39V15V,输出固定电压25V。电路图如图8GND1IOUT2LV0C_FMHNDUCTOR图8TLV111725电路图425读写操作时序VS1003采用SPI总线模式,时序图如图9图9VS1003SPI读写时序图43TFT彩屏系统采用的彩屏分辨率为240320,28寸。支持262K/65K色,数据位为8/16位可选,控制器为ILI9325。引脚定义如图10DB01234GN5V6CS7R8WXYLEAKT图10TFT彩屏引脚图引脚功能DB0DB1516位数据线;RS寄存器选择信号WR写信号开关RD读信号开关RESET复位Y、Y触摸屏Y轴输出X、X触摸屏X轴输出LEDA液晶背光公共端LEDK1LEDK4背光选择VDD电源GND地其中LEDA为公共端,接33V电压,LEDK1LEDK4用来设置背光亮度,全部接10欧姆电阻再接地背光最亮。44触摸屏控制芯片441ADS7846简介ADS7846是美国BURRBROWN公司推出的新一代4线制触摸屏控制器,当与触摸屏连用,只要笔或手指点触摸在屏上时,即可迅速得到该点的位置信号以达到在触摸屏表面寻址的目的。ADS7846是一款4线式阻性触摸屏控制电路,支持15V到525V间的低压IO接口。内含一个25V的内部基准电路。ADS7846有TSSOP16、QFN16和VFBGA48等封装形式,在40C到85C温度范围内工作。引脚图如图11图11ADS7846管脚图442ADS7846引脚功能ADS7846有16个引脚,引脚功能介绍如图121VCC电源引脚2XX位置输入端3YY位置输入端4XX位置输入端5YY位置输入端6GND地引脚7VBAT电源检测输入端8AUX备选输入端9VREF基准电压输入/输出10VCC电源引脚11PENIRQ中断输出管脚12DOUT串行数据输出端,当CS为高时为高阻态13BUSY忙信号输出,当CS为高时为高阻态14DIN串行数据输入端,当CS为高时为高阻态15CS片选信号输入16DCLK时钟输入端口图12ADS7846引脚图443工作原理(1)ADS7846内部有一个由多个模拟开关组成的供电测量电路网络和12位的A/D转换器。ADS7846根据微控制器发来的不同测量命令导通不同的模拟开关,以便向工作面电极对提供电压,并把相应测量电极上的触点坐标位置所对应的电压模拟量引入A/D转换器。在触摸点X、Y坐标的测量过程中,测量电压与测量点的等效电路如图13所示,图中P为测量点。图13等效电路图(2)数字接口ADS7846与微控制器之间通过标准的SPI口相连,由微控制器启动3次SPI传送来完成转换,如图5所示。第一次SPI传送由微控制器向ADS846发控制字,包括起始位、通道选择、8/12位模式、差分/单端选择和掉电模式选择,接下来的两次SPI传送则是微控制器从ADS7846取A/D转换结果数据(最后四位自动补零),完成触摸屏控制器和微控制器之间的一次通信。(3)控制时序ADS7846采用SPI总线模式,SPI时序图如图14图14ADS7846控制时序图45温度传感器451TMP175简介系统温度传感器采用TMP175。TMP175是TI公司生产的12位分辨率(可设定)、带双总线接口(I2C和SMBUS)的数字温度传感器。测量范围40C125C,测量精度05C(40C85C)。系统采用I2C总线进行控制。引脚图如图15图15TMP175管脚图电路图如图1610KR7SQW/INTCLDAV_3GE24568UMP9图16TMP175电路图452I2C总线I2C(INTERINTEGRATEDCIRCUIT)总线是由PHILIPS公司开发的两线式串行总线,一条串行数据线SDA,一条串行时钟线SCL,用于连接微控制器及其外围设备。是微电子通信控制领域广泛采用的一种总线标准。它是同步通信的一种特殊形式,具有接口线少,控制方式简单,器件封装形式小,通信速率较高等优点。LM3S9B95集成2个I2C模块,提供与总线上其它I2C器件互联(发送和接收)的能力。下面将介绍LM3S9B95的I2C模块。(1)基本概念发送器本次传送中发送数据(不包括地址和命令)到总线的器件接收器本次传送中从总线接收数据(不包括地址和命令)的器件主机初始化发送、产生时钟信号和终止发送的器件,它可以是发送器或接收器。主机通常是微控制器。从机被主机寻址的器件,它可以是发送器或接收器。(2)信号线与连接方式I2C总线仅使用两个信号SDA和SCL。SDA是双向串行数据线,SCL是双向串行时钟线。当SDA和SCL线为高电平时,总线为是空闲状态。总线连接形式如图17图17I2C总线连接形式I2C模块必须被连接到双向的开漏管脚上。如图11所示为I2C总线的典型连接方式,要注意主机和各个从机之间要共GND,而且要在信号线SCL和SDA上接有适当的上拉电阻RP(PULLUPRESISTOR)。(3)起始和停止条件I2C总线的协议定义了两种状态起始和停止。当SCL为高电平时,在SDA线上从高到低的跳变被定义为起始条件;而当SCL为高电平时,在SDA线上从低到高的跳变则被定义为停止条件。如图18图18I2C总线起始条件和停止条件(4)应答数据传输必须带有应答。与应答相关的时钟脉冲由主机产生。发送器在应答时钟脉冲期间释放SDA线。接收器必须在应答时钟脉冲期间拉低SDA,使得它在应答时钟脉冲的高电平期间保持稳定(低电平)。(5)带有7位地址的数据格式数据传输的格式如图19所示。从机地址在起始条件之后发送。该地址为7位,后面跟的第8位是数据方向位,这个数据方向位决定了下一个操作是接收(高电平)还是发送(低电平),0表示传输(发送);1表示请求数据接收。图19带7位地址的完整数据传输首字节的前面7位组成了从机地址(见图20)。第8位决定了消息的方向。首字节的R/S位为0表示主机将向所选择的从机写(发送)信息。该位为1表示主机将接收来自从机的信息。图20在第一个字节的R/S位(6)数据地址(子地址)带有I2C总线的器件除了有从机地址(SLAVEADDRESS)外,还有数据地址(也称子地址)。从机地址是指该器件在I2C总线上被主机寻址的地址,而数据地址是指该器件内部不同部件或存储单元的编址。数据地址实际上也是像普通数据那样进行传输的,传输格式仍然是与数据相统一的,区分传输的到底是地址还是数据要靠收发双方具体的逻辑约定。数据地址的长度必须由整数个字节组成,可能是单字节,也可能是双字节,还可能是4字节,这要看具体器件的规定。46时钟芯片DS1339DS1339是美国达拉斯半导体公司的串行实时时钟芯片,实时时钟RTC记录秒、分、时、星期、日、月、年信息,具有有效至2100年的闰年补偿。2线串口接口;可编程的方波输出;自动电源失效检测与转换电路及电池充电功能。其引脚图如图21图21DS1339管脚图SDA和SCL为I2C总线,SQW/INT为中断输出管脚,当闹钟时间到时,SQW/INT会产生中断。VBACKUP电池电源管脚,电路这个脚接纽扣电池正端,系统断电后时钟芯片依然能够工作。电路图如图22SCL1QW/INTV3567890BACKUPGDAUR_图22DS1339电路图DS1339采用I2C总线接口,和TMP175挂载在同一条总线上,但器件地址不同,DS1339的器件地址为0X68,TMP175则为0X49。控制器对时钟芯片的操作主要是对寄存器的操作,读取时间、设定时间、设定闹钟等都是对寄存器的操作。例如,读寄存器00H就能把时间的秒数读出来,01H则是分钟。注意,读写数据采用BCD码格式。DS1339的寄存器如图23图23DS1339内部寄存器读写时序如图24图24DS1339读写时序图47SD卡SD卡(SECUREDIGITALMEMORYCARD)是基于FLASH储存介质的新一代记忆设备,具有体积小、容量大、数据传输快、移动灵活、安全性能好以及兼容MMC卡等特点。SD卡有SD和SPI两种工作模式,相对于SD模式,SPI模式可以简化主机设计,降低成本。因LM3S9B95单片机没有SD总线接口,所以只能使用SPI模式。SD卡管脚定义,如图25图25SD管脚定义在SPI模式下,1脚8脚保留(未使用)、2脚片选端、3脚数据输入端、4脚6脚电源端、5脚时钟信号端、7脚数据输出端。SD卡的工作电压为2736V。电路图如图26RSVCDILKGNOUT一_0KFSX图26SD卡电路图系统中SD卡的主要作用是存储歌曲文件、图片、中文字库以及录音文件。相对于FLASH芯片,SD卡容量更大,而且驱动程序较为简单。SD卡采用SPI总线模式。LM3S9B95集成了2个SPI接口,方便系统的控制。5软件部分51开发工具介绍程序的开发采用IAREMBEDDEDWORKBENCHFORARM这个软件。IAREMBEDDEDWORKBENCHFORARM(下面简称IAREWARM)由全球领先的嵌入式系统开发工具和服务的供应商IARSYSTEM开发,是一个针对ARM处理器的集成开发环境,它包含项目管理器、编辑器、C/C编译器和ARM汇编器、连接器XLINK和支持RTOS的调试工具CSPY。在EWARM环境下可以使用C/C和汇编语言方便地开发嵌入式应用程序。比较其他的ARM开发环境,IAREWARM具有入门容易、使用方便和代码紧凑等特点。目前IAREWARM支持ARMCORTEXM3内核的最新版本是54,该版本支持LUMINARY全系列的MCU。52程序框图软件流程图如图27开始加载主界面等待按键按下或触摸屏按下延时等待判读按键值或触摸点计算器游戏图片浏览系统设置电子书文件管理录音音乐播放日历模式1模式2模式3模式4模式7模式6模式7模式8模式9系统初始化返回返回返回返回返回返回返回返回返回返回返回图27程序流程图53文件系统文件系统是操作系统用于明确磁盘或分区上的文件的方法和数据结构;即在磁盘上组织文件的方法。也指用于存储文件的磁盘或分区,或文件系统种类。操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。目前,常见的文件系统有FAT、NTFS、EXFAT、AW、RAW以及GNU/LINUX中的EXT2、EXT3、EXT4等。目前应用的最多是FAT文件系统。本系统采用的是FATFS文件系统。531FATFS简介FATFS是一个通用的文件系统模块,用于在小型嵌入式系统中实现FAT文件系统。FATFS的编写遵循ANSIC,因此不依赖于硬件平台。它可以嵌入到便宜的微控制器中,如8051,PIC,AVR,SH,Z80,H8,ARM等等,不需要做任何修改。FATFS文件系统时一个完全免费且开源的FAT文件系统模块。本系统采用的版本是FATFS09。FATFS源码包中的文件有7个,分别是“FFCONFH”文件FATFS文件系统的配置;“FFH”文件FATFS文件系统API函数声明;“FFC”文件FATFS源码;“DISKIOH”文件FATFS与储存设备接口函数声明;“DISKIOC”文件FATFS与储存设备接口函数;“INTEGERH”文件FATFS用到的所有变量类型的定义;“CC936C”文件FATFS长文件名编码转换表;FATFS提供下面的函数F_MOUNT注册/注销一个工作区域(WORKAREA)F_OPEN打开/创建一个文件F_CLOSE关闭一个文件F_READ读文件F_WRITE写文件F_LSEEK移动文件读/写指针F_TRUNCATE截断文件F_SYNC冲洗缓冲数据FLUSHCACHEDDATAF_OPENDIR打开一个目录F_READDIR读取目录条目F_GETFREE获取空闲簇GETFREECLUSTERSF_STAT获取文件状态F_MKDIR创建一个目录F_UNLINK删除一个文件或目录F_CHMOD改变属性(ATTRIBUTE)F_UTIME改变时间戳(TIMESTAMP)F_RENAME重命名/移动一个文件或文件夹F_MKFS在驱动器上创建一个文件系统F_FORWARD直接转移文件数据到一个数据流FORWARDFILEDATATOTHESTREAMDIRECTLYF_GETS读一个字符串F_PUTC写一个字符F_PUTS写一个字符传F_PRINTF写一个格式化的字符磁盘I/O接口532文件系统的移植文件系统能以文件的形式打开文件并进行读写、删除、重命名等操作。在本系统当中,可以通过文件系统打开歌曲文件送至音频解码芯片进行解码播放,也可以打开图片送至液晶显示。在做这些工作之前,先要对文件系统进行移植。文件系统的移植其实就是更改底层驱动。由于系统的存储器是SD卡,所以底层驱动即是SD卡的驱动程序。SD卡的时序图如图28图28SD卡时序图前面已经介绍了SD卡的相关内容。SD卡采用SPI总线方式驱动。SD卡的相关驱动在“DISKIOC”中。分别是SELECT打开SD卡片选DESELECT关闭SD卡片选XMIT_SPI写一个字节RCVR_SPI读一个字节WAIT_READY等待SD卡准备好SEND_INITIAL_CLOCK_TRAIN时钟初始化POWER_ON端口初始化SET_MAX_SPEED配置SPI接口的速度移植过程中只需将更改这几个底层驱动即可,最主要的是SD卡的读写操作函数RCVR_SPI和XMIT_SPI以及端口的正确配置。系统对SD卡的驱动是采用SPI0。这样就完成了移植的基本步骤。533文件系统长文件名的支持由于文件系统默认83的文件名格式,所谓83是指8字节文件名和3字节的扩展名。超过8字节的文件名是不支持的。也就是说文件名不能超过8个英文字母或者4个中文汉字,多余部分只能显示出“”。因此,系统为方便对文件的控制,增加了对长文件名的支持。首先在FFCONFH文件里更改宏定义,具体做法如下DEFINE_CODE_PAGE936/936为中文编码转换表DEFINE_USE_LFN1/0TO3/是否支持长文件这样做完之后,通过调用CC936C里面的转换函数就可以支持长文件名了。转换函数其实是一个查表函数,在CC936C里有两个数组,这个两个数组非常大,有将近9万个元素。如果这两个数组放在控制器当中,将占用大量的FLASH,虽然LM3S9B95有256KB的FLASH能够存下这两个数组,但是代码量过大将影响调试过程。在这里解决的办法是将这两个数组转换成BIN文件放在SD当中,从SD卡里读取相关数据完成转换。具体代码如下RESF_OPEN/新建一个名为“GBU2”的文件,并写入数据,程序如下FORJ0J8/高位TABLE4IB/低位在前,第一个元素TABLE4I1C/高位在后KK2RESF_WRITE/读到的32个字节写入文件中RESF_CLOSE/关闭,相当于保存RESF_OPENF_LSEEKRESF_CLOSE/关闭,相当于保存RESF_OPEN/读这个文件,查看是否正确F_READBTABLE52这样就把这两个数组以BIN文件的形式存放在SD卡当中。文件名分别是“GBU2BIN”和“U2GBBIN”。54GUI程序的设计图形用户界面(GRAPHICALUSERINTERFACE,简称GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面。与早期计算机使用的命令行界面相比,图形界面对于用户来说在视觉上更易于接受。本系统移植了个小型GUI,用来设计系统的操作界面,TFT彩屏大量使用了GUI内的相关函数。为适应系统需要,做了一定的裁剪。底层驱动程序函数定义在“ILI9325_DRIVERC”和“GUI_BASICC”中,具体如下LCD_INIT液晶初始化LCD_WRITECMD向液晶模块写命令LCD_WRITEDATA向液晶模块写数据LCD_WRITEREG向液晶的控制寄存器中写入命令字ILI9320_READDATA读取控制器数据ILI9320_READREGISTER读取指定地址寄存器的值LCD_DISPONEPIXEL显示一个像素点GUI_HLINE绘制水平直线GUI_RLINE绘制竖直直线GUI_ELLIPSEFILL画正椭圆,并填充GUI_SQUARE画正方形GUI_SQUARE_FILL画填充矩形在对液晶操作前应调用“LCD_INIT”对液晶初始化,然后再进行其他操作。55主要功能的实现原理551游戏系统内设五子棋和俄罗斯方块两个游戏。下面将分写介绍两个游戏的实现方法。1,五子棋五子棋是一种两人对弈的纯策略型棋类游戏,是起源于中国古代的传统黑白棋种之一。标准的五子棋棋盘大小为1414,棋子摆放在各条线的交叉点。在本系统中,如果按照标准棋盘来设置,由于液晶屏尺寸有限,棋盘方格会很小不便触屏操作。因此,在这将棋盘设为1010,方格大小为2121,棋子摆放在方格内。其初始化界面程序如下FORI0I5/月星期数DAY/月天数IFM2/年年/4WEEKWEEKCYD27/星期百年45年年/4月表日27RETURNWEEK5|DAY/返回星期和月天数GETCHINACALENDAR的作用是算出19012099年之间任意一天的农历日期。结果存在数组NL中。NL0存放年高位,NL1存放年低位,NL2存放月份,NL3存放天数。556文件管理文件管理最主要的功能是浏览SD卡内所有的文件和文件夹,以及删除一些文件。利用函数VIEW_MUSIC_INDEXCHARPATH显示出卡内所有文件,每一页最多显示12个文件,支持上下翻页。文件前面以蓝色方框显示,文件夹则以红色方框显示。当选中某个文件的时候,系统判断是否删除这个文件,如选择“是”则利用文件系统函数F_ULINK将这个文件删除,否则返回。需要注意的是,由于SD卡内存放了一些字库文件和系统图标文件,这些文件的扩展名是BIN,另外支持文件系统长文件名的一个文件GBU2TBL的扩展名是TBL,所以这两种扩展名的文件是受系统保护的,无法删除。557电子书电子书的功能是打开并显示SD卡内TXT文件。系统打开一个TXT文件后,先读取一个扇区512字节的数据到数组中,程序如下DISK_READ0,TABLE_TXT,SECTOR_ADDRESS,1;数据存放在数组TABLE_TXT中。之后,从第一个元素开始,先判断是否为中文字符。如果是,则地址加16,否则加8。接下来判断一屏是否已经显示完,如果没有则继续,否则等待,直到选择下一页。另外系统还设置了一个计数器POINTPOS,用于判断是否已经将整个数组都显示完了,如果是则再读一个扇区的数据,否则继续。屏幕大小为240320,在横方向上,最多显示30个字符。竖方向上最多显示40个字符。6系统功能测试与分析系统功能测试是对系统各个主要功能进行测试,如MP3播放功能,则看能否正常播放MP3、WMA和WAV等常见格式的歌曲。下面将介绍各个主要功能的测试方法和过程。1、音乐播放功能测试系统音乐播放功能的设计指标是能打开并播放常见格式的歌曲,并能显示播放时间、歌词、频谱、进度条,以及支持快进、快退、上一曲、下一曲和音量调节等功能。测试时,分别播放MP3、WMA和WAV三种格式的音乐文件,均能正常、连贯播放,如果有对应的歌词文件也能显示出来,此外快进快退、上一曲下一曲功能均正常。效果图如图29和图30图29音乐播放显示效果图1图30音乐播放显示效果图2播放歌曲时会自动搜索歌曲的歌词,歌词文件名必须和歌曲一致才能配套,否则将不能搜索到。歌词以紫色显示,歌曲名以白色显示。经测试,系统音乐播放功能正常,播放连贯,音质良好,没有杂音,达到了设计要求。2、日历功能测试系统日历支持1901年2099年,支持农历。当点击某一天的时候,在屏幕右上方显示该天的农历日期,如果这一天不是当前的时间,则以蓝色显示这一天的数字,否则整个方框以黑色显示,数字以白色显示。效果图如图31图31日历显示效果图如图所示,当前日期是4月23号,则以黑色显示满格,并以白色显示数字。其他则以红色显示。农历在屏幕右上角。下方四个按钮为年月上下翻页,右下角为返回按钮。经测试,系统日历功能正常,能正确显示1901年2099年之间日历,达到了设计要求。3、游戏功能测试系统带有两个游戏,五子棋和俄罗斯方块。下面介绍俄罗斯方块游戏的测试。俄罗斯方块游戏设有左、右、下、变形和暂停五个按钮。测试时,分别测试五个按钮能否正常工作,如左按钮,点击时,看方块能否向左移动。另外,增加游戏等级的时候看能否提高游戏的难度。最后,测试当最下面一行填满时,游戏能否消除。效果图如图32图32俄罗斯方块游戏效果图经测试,游戏能正常运行,各个按钮工作正常,等级切换正常,符合设计要求。4、计算器功能测试计算器功能测试主要查看计算器在规定范围内能否做基本的加减乘除运算,如结果是否正确、显示位置是否正确,以及是否会出现一些其他错误。计算器界面效果图如图33图33计算器界面显示效果图经测试,计算器功能正常,能正确的做加减乘除的基本运算。清除键“CE”可以清屏并对计算器复位。5、图片浏览功能测试系统支持BMP格式、大小不超过240320的图片,这个功能测试较为简单,看能否正常显示图片即可,效果图如图34图34图片显示效果图经测试,对于大小不超过240320内的图片,系统均能正常显示出来,对BPM文件的位数没有要求。该图片浏览功能正常,符合设计要求。6、电子书功能测试电子书功能的设计要求是打开TXT格式的文本文件,读取数据并在液晶上面显示出来。测试时,在内存卡当中放一个TXT文件,看能否正常显示出来。效果图如图35图36电子书显示效果图经测试,系统能正常打开TXT格式文件并显示出来,在下方显示已经显示了总量的百分比,在上方显示该文件的文件名和页数。7、测试结果分析根据各个功能的测试结果分析发现,系统的功能完整良好,歌曲播放、录音、日历、游戏、电子书等主要功能都实现,均完成了设计指标,超出了设计要求。但也有几个功能效果不是特别好,如图片浏览功能,显示一幅240320的图片需要大概3秒钟,速度偏慢;文件管理功能只能查看当前存储器内所有的文件和删除文件,并不能复制、剪切或重命名文件等。这些不足还有待于日后逐步完善。但就总体而言,本辞设计很好实现了各个既定功能,完成了设计指标。结语这次毕业设计综合了所学的模拟电子技术、数字电子技术、单片机、C语言等知识,对大学阶段所学知识起到了一个很好的巩固作用。通过设计原理图和PCB图,对ALTIUMDESIGNER09(PROTEL)运用的更加熟练,有利于日后参加工作。整个作品涉及大量的软件硬件相关知识,工作量非常大,对自己是一个不小的考验。所幸,经过自己的不懈努力,各个功能全部实现,提高了自己软件设计能力。但依然存在一些不足,如在设计电路的时候粗心大意将一些网络标号写错,导致在调试的时候一直出现错误;上下层的接口顺序弄反,给电路连接带来不便;整个系统没有考虑功耗和体积大小,不便随身携带;此外,代码不够精简,执行效率低,整个系统代码BUG较多,影响系统功能等等。回顾自己开始做这份毕设的时一个一个调试各个子模块的电路和程序,一步一个脚印,虽然遇到很多问题和麻烦,但通过自己的不懈努力,都一一解决了。这些麻烦虽然带给了我很多烦恼,但也感谢它们让我自己额能力得到了很大的提高。虽然现在系统还有一些问题,但总体而言,功能还是非常完善和
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 化妆品知识培训学习课件
- 亮点6年级下册数学试卷
- 期末赢家九下数学试卷
- 审计岗位面试题目及答案
- 南京试卷数学试卷
- 桥梁气候因素分析与应对方案
- 机房监理基础知识培训课件
- 高职机械类专业基础课思政元素设计与实施
- 眉山中学入学考数学试卷
- 2025年小学老师笔试题目及答案
- 2025-2030年中国快速消费品行业市场深度调研及竞争格局与投资研究报告
- 运营管理核心知识点
- 邯郸介绍课件
- 2025至2030中国硼酸行业发展方向及供需趋势研究报告
- DB11T 634-2025 建筑物在用电子系统雷电防护装置检查规范
- 电力工程施工安全风险管理措施
- 2025年届高考生物复习知识点总结模版
- 部队炊事基础知识课件
- 机场商业布局优化策略研究-全面剖析
- 新课标解读丨《义务教育道德与法治课程标准(2022年版)》解读课件
- 2024年4月27日福建省事业单位《综合基础知识》笔试真题及答案
评论
0/150
提交评论