ImageVerifierCode 换一换
格式:DOC , 页数:64 ,大小:9.58MB ,
资源ID:2960754      下载积分:10 金币
验证码下载
登录下载
邮箱/手机:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/2960754.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  
声明  |  会员权益     获赠5币     写作写作

1、填表:    下载求助     留言反馈    退款申请
2、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
3、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
4、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
5、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【可****】。
6、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
7、本文档遇到问题,请及时私信或留言给本站上传会员【可****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。

注意事项

本文(基于stm32的便携式音乐播放器设计毕业大学论文.doc)为本站上传会员【可****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4008-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

基于stm32的便携式音乐播放器设计毕业大学论文.doc

1、编号: 毕业设计说明书(论文) 课 题: 便携式音乐播放器设计 学 院: 电子工程与自动化学院 专 业: 电子信息科学与技术 学生姓名: 学 号: 指导教师: 职 称: 高级研究员 题目类型: 理论研究 实验研究 工程设计 工程技术研究 软件开发2013 年 4 月 20 日摘 要随着电子行业的迅猛发展,人们对消费类电子产品的需求越来越高,多功能便携式MP3也越来越受大众的青睐。根据消费者的爱好需求,各种多功能的MP3层出不穷,其尽可能的吸收照相机、手机等电子产品的其它功能。本次系统设计采用ARM Cortex-M3内核的STM32F103VET6作为微控制器、SD卡作为存储介质、VS1003

2、作为音频解码芯片以及TFT彩晶屏作为人际交互设备,设计一款可播放mp3、wav文件格式的便携式音乐播放器,并实现相关功能。本次设计的重点是了解FAT文件系统的构造、SD卡的读取、VS1003芯片的解码过程、人机交互设备的控制操作以及各主从机之间的通讯方式。其中,STM32F103系列集成了低功耗、IO资源多、通信接口多、体积小、价格适中等多项优点;随着日本松下、东芝及美国SanDisk公司于1999年8月共同研制,SD卡被广泛应用与闪存介质,并易于读取;VS1003是一个多功能的mp3、wav解码芯片,自带DAC,具有无相位差的立体声输出;TFT显示屏集成了触控特点使得人机交互更为简便、程序编

3、写更为简洁。关键字:STM32F103VET6;SD卡;VS1003解码芯片;TFT彩晶屏;便携式音乐播放器。AbstractWith the rapid development of the electronics industry . The consumer electronic products have been used more often by people because of their growing demand. Its popular to have a Multi-function portable MP3 for people with the increasi

4、ngly favored by the public . A variety of multi-function MP3 after another according to the demand of consumer . They were produced with absorb the other features of the cameras , cell phones and other electronic products as much as possible. The system used the ARM Cortex-M3 core STM32F103VET6 as m

5、icrocontroller , SD card as the storage medium , VS1003 as human interaction as the audio decoder chip , and TFT display screen equipment to make a Portable Music Player with the function that could play wav and mp3 files in this design, and some related functions . The difficulty lie in design is f

6、ocused on understanding the structure of the FAT file system , how to read SD card , the process of decoding in VS103 chip, the control of human-computer interaction and the communication by master and slave. Among of these devices ,STM32F103 series integrates a low-power, IO resources , communicati

7、on interface ,small size , affordable and many other advantages . Panasonic , Toshiba , SanDisk Corporation and the United States develop together in August 1999 . SD cards are widely application and flash media , and easy to read . VS1003 is a mp3 , wav decoder chip with many function, built-in DAC

8、 and stereo output with no phase difference . TFT as a display make the human-computer interaction easier and programming more concise by integrating touch features.Key words : STM32F103VET6 ; SD card ; VS1003 decoder chip ; TFT display screen ; Portable Music Player目录目 录引言11 设计任务与思路21.1 设计任务21.2 设计

9、思路22 器件选择和系统框图22.1 器件选择22.2 系统框图与概述23 硬件电路设计43.1 电源模块43.2 微控制器模块53.3 SD卡模块63.4 音频解码模块73.5 音频放大模块83.6 彩晶显示模块93.7 复位模块104 FAT文件系统104.1 FAT文件系统简介104.2 FAT文件系统的读取操作125 系统软件设计155.1 STM32程序调试155.1.1 STM32启动简析155.1.2 STM32程序测试175.1.3 STM32时钟系统195.2 TFT显示驱动215.3 SD卡读取驱动235.3.1 SD卡总线拓扑235.3.2 寄存器与协议235.3.3 驱

10、动流程图265.4 VS1003驱动设计265.4.1 VS1003总线拓扑265.4.2 VS1003主要寄存器285.4.3 VS1003相关协议295.4.4 读写时序295.4.5 驱动流程与框图305.5 系统软件流程图316 实物与功能316.1实物总图326.2 利用电池供电336.3 支持wav和mp3格式336.4 支持SD卡存储346.5 可选择播放346.6 可快进快退357 自我总结36谢 辞38参考文献39附 录 一40附 录 二46引言在INTERNET广泛普及的今天,MP3音乐一起较小数据流量和近乎完美的播放效果已经成为计算机和INTERNET上最流行的音乐格式了

11、。将CD格式的音乐数据压缩成MP3格式,音效相差无几,文件大小却至少可以压缩12倍(每首PCM格式的CD歌曲大约40MB至50MB数据流量)。自韩国世韩公司1998年推出世界上第一台MP3随身听以来,MP3播放器以其小巧外形,近乎于CD的音质,前卫的功能,越来越受到消费者的青睐,也就成为业界甚至大众媒体关注的一个热门话题。它的记录媒介是芯片或卡,无需转动部件,彻底摆脱磁盘和光碟的束缚,因而抗震性和节点性能更好。在市场消费的刺激下,各大公司纷纷推出了自己的mp3播放器产品。除了Micronas方案、ST方案、TI软解压单芯片方案,还有台湾创品方案、美国Sigmatel方案等。进入2004年,当M

12、P3在容量、外观、音质上的发展无法再吸引更多眼球的时候,开始转向多功能发展,正如在手机身上所发生的一切,人们对于MP3的要求,不再是单一的欣赏音乐,而是向手机一样身兼多职。作为全球第一款闪存式彩屏MP3,信利MP301的推出引起了MP3市场的巨大关注,除了彩屏的加入,MP301还支持图书、图片浏览及游戏功能,多功能融合,是消费类电子产品的发展趋势。MP3播放器的诞生,为传统随身听带来了致命打击。曾几何时,MP3和MD之间的斗争成为业界最热门的话题,当时甚至多数人都认为MP3由于音质上的原因将白给MD,但事实上,MP3的发展远远超出了MD支持者们的预想。直至今日,MP3已成为随身听市场的主流产品

13、,并成为了继手机之后最为广泛使用的个人随身电子产品。抱着学习的态度,秉着严谨的精神完成此次音乐播放器的设计。1 设计任务与思路1.1 设计任务本设计课题是一个软硬件相结合的设计类题目。要求设计一个具有如下要求的便携式音乐播放器:利用电池供电、支持wav和mp3格式、支持U盘CF卡或者SD卡,可选择播放、可快进快退。1.2 设计思路整个系统主要由微控制器、音频解码部分、音效处理部分、SD卡部分、人机交互部分、按键复位部分、电源部分、程序口下载部分组成,整个系统由MCU控制,各个部分协调运作。2 器件选择和系统框图2.1 器件选择该系统要求能够对mp3、wav格式的音频文件进行解码,处理起来速度是

14、有要求的,尤其是对320Kbps的MP3格式数据流的处理,必须非常快,才能实现MP3的流畅播放,可供选择的八位机有AVR、PIC,可供选择的32位处理器有SAMSUNG、STM32、ATMEL等。选择MCU优先考虑于拥有丰富的RAM,八位机RAM主要靠扩展,内部RAM一般在4Kbyte以内,32位机里面,SAMSUNG一般不内带RAM,也要外扩。出于成本的考虑,外扩RAM,FLASH芯片必然会增加成本,所以控制芯片最好选择自带RAM,FLASH,本次课题设计选择使用STM32F103VET6作为微控制器。本次课题设计要求的储存媒介是U盘CF卡或者SD卡。SD卡以其价格低、体积小、扩存容易等优势

15、迅速占据市场,使用也越来越广泛。以此同时,各种MCU同时也在内部集成了SD控制器。出于成本和使用方便等因素的考虑,本次课题设计选择使用SD卡作为储存媒介。由于使用了ARM7处理器,MP3解码可以有两种方法,一是通过ARM处理器软解码,通过对MP3数据格式的解析实现MP3播放,二是通过外部解码芯片直接解码。第一种方法在解码高码率的MP3时,ARM7处理能力吃紧,而且STM32还需要外部DAC来做音频输出,所以采用第二种方法进行解码。MP3常见的解码芯片有VS100X系列和STA01系列,STA01需要外接DAC做音频输出,而VS1003自带DAC,且解码的文件格式包含mp3和wav,另外它还可以

16、实现录音功能,方便以后进行功能的拓展应用。人机交互设备包括输入设备和输出设备,选择硬件考虑到程序的调试控制,这里选择一款3寸的TFT液晶屏,其分辨率位240*400,工作模式为16位数据模式,通讯速度较快。2.2 系统框图与概述本次课题设计采用STM32F103VET6作为为控制器读取SD卡内的音乐文件,并将数据送入VS1003进行音频解码,得到模拟的音乐流,再进过音频放大送入耳机,同时结合TFT液晶屏进行人机交互控制,其系统框图如图2-1所示。桂林电子科技大学毕业设计(论文)报告用纸 共58页第59页复位TFT触摸液晶电源部分SD卡STM32F103VET6微处理器JTAG程序下载口耳机接口

17、音频放大VS1003音频解码图2-1 系统框图3 硬件电路设计3.1 电源模块电源模块是电子设备中必不可少的一部分,它位设备提供了能量。如图3-1所示为该系统的电源模块电路,5V电压经过AMS1117-2.5、AMS1117-2.8和AMS1117-3.3产生2.5V、2.8V和3.3V直流电压供系统使用。C31可以防止电感效应而产生自激,C33用来减小由于负载电流瞬时变化而引起的高频干扰,C32是进一步减小输出脉动和低频干扰,使电源输出更加稳定,sp位电源开关,D1和D2位电源指示灯。图3-1 电源模块电路3.2 微控制器模块微控制器STM32F103VET6控制着整个系统协调运作。STM3

18、2F103VET6基于ARM Cortex-M3内核设计,片上集成了丰富的数字和模拟资源,允许最高72MHz的工作频率是一款性价比很高的32位ARM处理器,其管脚封装图如图3-2。自带128KB闪存和20KB的RAM,具有2个SPI接口、2个IIC接口3个USART接口一个USB接口和一个CAN总线接口,高达80个I/O口资源,采用外部8MHz时钟经过倍频因子PLLMUL可倍频至72MHz,通过一些列的AHB分频器可设置各种外设所需的频率以达到低功耗的目的。图3-2 STM32F103VET6管脚图微控制器电路模块如图3-3。图中BOOT0为插针,用于选择启动模式:当BOOT=1时用户闪存存储

19、器被选为启动区域,此时可以通过串口下载程序;当BOOT=0时;系统存储区被选为启动区域。电容C11、C12、C13和C15为谐振电容,有助于系统时钟和RTC时钟的启振,在设计时,晶振要尽可能靠近芯片。电容C14、C16、C17、C20位芯片电源引脚的旁路电容,能够起到稳定电源的作用。微控制器各引脚接口描述如表3-1所示。图3-3 微控制器模块电路表3-1 STM32F103VET6主要引脚接口描述STM32F103VET6引脚序号接口类型接口作用8、9RTC时钟晶振接口32.768KHz晶振Y112、13系统时钟接口8MHz晶振Y283SD卡控制器接口SD卡命令控制SDIO_CMD80SD卡时

20、钟控制SDIO_CLK65、66、78、79SD卡数据通讯SDIO_DATA97VS1003控制接口异步复位端,低电平有效XREST51片选输入端,低电平有效XCS63数据片选端/字节同步XDCS/BSYNC52串行总线时钟SCLK54串行输入SI53串行输出SO98TFT液晶屏接口复位88片选30时钟SCK31MISO32MOSI38-46,55-57,61,62,81,8216位数据接口DATA3.3 SD卡模块SD卡(Secure Digital Memory Card)中文翻译为安全数码卡,是一种基于半导体快闪记忆器的新一代记忆设备。SD卡的物理规格、管脚功能和数据传输协议时MMC(M

21、ultimedia Card)前向兼容的。它被广泛用于便携式装置上使用,例如数码相机、个人数码助理(PDA)和多媒体播放器。SD卡由日本松下、东芝及美国SanDisk公司于1998年共同开发研制。大小犹如一张邮票的SD记忆卡,重量只有2克,但却拥有高记忆容量、快速数据传输率、极大的移动性以及很好的安全性。SD卡标准是SD卡协会针对可移动存储设备设计专利并授权的一种标准,主要用于制定卡的外形尺寸、电气接口和通讯协议。其中SD卡外形尺寸如图3-4,引脚功能如表3-2.图3-4 SD卡外形尺寸表3-2 SD卡引脚图Pin#SD modeSPI modeNameTypeDiscriptionNameT

22、ypeDiscription0DATA2I/O/PPDATA LineRSVIReserved1DATA3I/O/PPDATA LineCSIChipSelect2CMDPPCommandDataInIHost to card3VSSISGroundVSSISGround4VDDSVoltageVDDSSupply Voltage5CLKIClockCLKIClock6VSS2SVoltageVSS2SVoltage 7DATA0I/O/PPDATA LineDataOutOCard to Host8DATA1I/O/PPDATA LineRSVUReserved由于SD卡的广泛引用,各种常用

23、MCU内部都集成了SD控制器,而恰好本次设计选取的STM32F103VET6内部也含有SD控制器接口。为了获得更大的数据传输速度,本次设计采用SD模式进行主从机之间的通讯。该模式下具有6根通讯线(Data0-3,CMD,CLK)和三根电源线(VSS1,VSS2,VDD)。电路模块如图3-5,其中RVA0-RVA4为增强驱动能力。图3-5 SD卡电路模块3.4 音频解码模块本次课题设计采用的解码芯片是VS1003,VS1003是芬兰VLSI公司生产的单芯片MP3/WMA音频解码芯片,其拥有一个高性能、低功耗的DSP处理器核VSDSP,5KB的指令RAM,0.5KB的数据RAM,串行的控制和数据输

24、入接口,4个通用的I/O口,1个UART口,1个可变采样率的DAC,1个立体声DAC以及音频耳机放大器。其内部结构如图3-6所示。图3-6 VS1003内部结构VS1003通过一个串行接口来接收输入的比特流,它可以作为一个系统的从机。输入的比特流被解码,然后通过一个数字音量控制器到达一个18位过采样多位 DAC。通过串行总线控制解码器。除了基本的解码,在用户RAM中它还可以作其他特殊应用,例如DSP音效处理。其内部部分引脚功能如表3-3。表3-3 VS1003部分引脚功能表引脚号管脚名称管脚功能6,14,19IOVDDI/O电源(典型值:2.8V 最大值:3.6V)38,43,45,47APW

25、R模拟电源(典型值:2.5V最大值:2.8V)5,7,24,31CVDD处理器内核电源(典型值:2.8V:3.6V)37,40,41,47AGND模拟地3XRESET低电平有效,异步复位端8DREQ数据请求,输入总线9GPIO2/DCLK通用I/O2,串行数据总线时钟10GPIO3/SDATA通用I/O3,串行数据总线数据13XDCS/BSYNC数据片选端/字节同步17和18XTALO、 XTALI晶振输出和晶振输入23XCS片选输入,低电平有效28SCLK串行总线的时钟29和30SI和SO串行输入和串行输出39和46RIGHT和LEFT右声道输出和左声道输出在设计VS1003解码电路时,数字

26、地与模拟地必须相互连接并尽量靠近VS1003以避免锁存上拉,为了能播放48KHz采样率的音频文件,输入时钟使用12.288MHz。具体设计电路如图3-7所示。VS1003通过MISOMOSISCK(SPI接口)来接收输入的MP3数据,经过VS1003内置的采样DAC转换为音频模拟量,最后通过LeftRight和Gbuf输出。表3-7 VS1003接口电路3.5 音频放大模块本次课题设计采用的音频功放芯片是TDA1308,TDA1308是AB类的数字音频(CD)专用耳机功放芯片。低电压、低失真、高速率、强输出等优异的性能是以往的TDA2822、TDA7050、LM386等“经典”功放望尘莫及的。

27、芯片内采用MOS管输出,可直接推动低阻抗耳机。因为封装和功能引脚位与一般的双运放相同,在特定条件下,也能当双运放使用。在低供电电压条件下,性能比一般的运放要好。因其封装体积小,低电压低功耗等特点,主要应用在便携式数字音频电路中,如discman,光驱的耳放电路等。其引脚配置与功能方框图如图3-8。图3-8 TDA1308引脚配置和功能方框图在设计音频放大电路模块时,采用了同相放大电路的接法,设计电路如图3-9。输入信号电压+A5V加到运放的同相输入端“+”和地之间,输出电压通过RV1和RV2的分压作用,可得电压增益Av=1+RV2/RV1,本次设计采用RV1=RV2,使得电压放大为原来的两倍,

28、输出至耳机接口。图3-9 音频放大电路3.6 彩晶显示模块显示器采用奋斗STM32开发板3.0TFT(240*400),本次设计的LCD触摸屏所采用的控制器为XPT2046 ,XPT2046是一种典型的逐次逼近型模数转换器(SAR ADC),包含了采样/保持、模数装换、串口数据输出等功能。芯片内部集成有一个2.5V的内部参考电压,也可以从外部直接输入参考电压。其中,接口采用MCU的FSMC功能,LCD片选CS采用FSMC_NE1(P88),FSMC_A16(P58)作为LCD的RS选择,FSMC_nWE1(P86)作为LCD的/WR,FSMC_nOE(P85)作为LCD的/RD,LCD的RES

29、ET脚用CPU的PE1(P98)(LCD-RST), FSMC_D0- FSMC_D15和LCD的D1-D8 D10-D17相互连接,触摸屏接口采用SPI1接口,片选位PB7-SPI1-CS3,由于LCD背光采用恒流源芯片PT4101控制,采用PWM控制信号控制背光的明暗,PWM信号由PD13-LIGHT-PWM来控制,触摸电路的中断申请有PB6-INT来接收,其设计电路如图3-10所示。图3-10 彩晶显示电路3.7 复位模块复位电路如图3-11所示,当接通电源时,电容C10进行充电使得nRST为高电平。按下复位按键后,电容C10放电为低电平实现复位功能。图3-11 复位电路4 FAT文件系

30、统4.1 FAT文件系统简介MP3文件BMPTXT等文件在SD卡中是以FAT11的文件格式存储的,FAT即文件配置表,本系统采用FAT16/32。以FAT32为例,其数据信息常分为5个部分:MBR区、DBR区、FAT区、FDT区和DATA区。由于SD卡一般不做引导盘,一般也不分区,因此通常无MBR区,直接从DBR区开始。各分区的含义如下。MBR区: 主引导记录区,该区存储了分区表等信息,位于SD卡的扇区0(物理扇区),在其分区信息里面记录了DBR所在的位置。DBR区: 内容为系统引导记录,它包括一个引导程序和一个被称为BPB(Bios Parameter Block)的本分区参数记录表。BPB

31、参数块记录着本分区的起始扇区、结束扇区、文件存储格式、根目录大小、FAT个数,分配单元大小等重要参数。FAT区:称为文件分配表(FAT 表),一般一个卡上会存在2个FAT表,一个用作备份,一个用作使用。FAT表一般紧随DBR,另一个FAT表则紧随第一个FAT表。FAT表记录了每个文件的位置和区域,是一种链式结构,FAT以“F8 FF FF 0F FF FF FF FF”这样的8个字节为表头,用以表示FAT表的开始,后面的数据每四个字节为一个簇项(从第2簇开始),用来标记下一个簇所在的位置,这样每个位置都存储了下一个簇,只要按着这个表走,就可以找到文件的所有内容。如果找到下一个簇的位置,里面记录

32、的是“FF FF FF 0F”,代表这个文件到此就结束了,没有后续簇了,这样一个文件的读取就结束了。FTD区:该区的内容为文件目录表,FAT文件系统的一个重要思想是把目录(文件夹)当作一个特殊的文件来处理,FAT32甚至将根目录当作文件处理。FAT分区中所有目录文件,实际上可以看作是一个存放其它文件(文件夹)入口参数的数据表。因此,目录占用空间的大小并不等同于其下所有数据的大小,但也不等于0,通常占很小的空间。其具体的存储原理是:不管目录文件所占空间为多少簇,一簇为多少扇区、多少字节,系统都会以32个字节为单位,进行目录文件所占簇的分配,各个字段定义如表4-1所列。DATA区:该数据区存放文件

33、的内容,SD卡所占用的空间绝大部分为此部分。如果文件长度大于一个簇的大小,需要多个簇来存放该文件,这些簇通过FAT链表串连起来。表4-1 文件目录表各字段定义FAT32文件目录项32个字节的定义字节偏移量字数量定义078文件名8103扩展名111属性字节0x00 (读写)0x01 (只读)0x02 (隐藏)0x04 (系统)0x08 (卷标)0x10 (子目录)0x20 (归档)121系统保留131创建时间的10毫秒位14152文件创建时间16172文件创建日期18192文件最后访问时间20212文件起始簇号的高16位22232文件的最近修改时间24252文件的最近修改日期26272文件起始簇

34、号的低16位28314表示文件的长度4.2 FAT文件系统的读取操作一般硬盘的数据结构是按图4-1而建立的。图4-1 FAT文件系统结构图启动区的内容,也就是第一个扇区,使用WinHex软件查看,如图4-2所示。其中,带下划线或点线部分为有用内容,具体含义依次如下。图4-2 FAT启动区EB 59 90:跳转指令。4D 53 44 4F 53 35 2E 30:厂商标志和dos版本号,这里是MSDOS5.0。00 20(偏移地址0BH,长度2):注意这里数据的布局,高地址放高字节,低地址放低字节(数据为小端格式组织),所以数据应该是0200,就是512。表示的意思是,该磁盘每个扇区有512个字

35、节。有的可能是1024、2048、4096。08(偏移地址0DH,长度1):表示每个簇有8个扇区。这个值不能为0,而且必须是2的整数次方,比如1、2、4、8、16、32、64、128。但是这个值不能使每个簇超过32KB。24 00(偏移地址0EH,长度2):转换一下,就是0024,意思是保留区域中的保留扇区数为36个。那么就可以知道下面的FAT1区的开始的地址就是:0x24*200(每个扇区的字节数)=0x4800。02(偏移地址10H,长度1):此卷中的FAT结构的份数为2,另外一个是备份的。C6 03(偏移地址24H,长度2):每个FAT占用的扇区数,转换一下,为03C6。那么每个扇区占用

36、的字节数就是0x03C6*200=78C00。根据启动区、FAT1、FAT2、根目录、数据区的次序,可以依次计算出它们的地址。通过以上分析我们知道了启动区地址是0x00。FAT1表的起始地址的为0x4800,如图4-3所示。FAT2表的起始地址为0x4800+0x78C00=0x7D400,如图4-4所示。根目录区的起始地址为0x7D400+0x78C00=0xF6000,如图4-5所示。图4-3 FAT1的起始地址图4-4 FAT2的起始地址图4-5 根目录的起始地址从SD卡中读取数据需要给出数据的地址,而且每次读取都是一个整扇区,512个字节。找出这些地址后,可以很方便的找到数据。由此可见

37、读取0扇区的内容,我们就知道FAT文件系统的重要参数了,现在分析下根目录区的内容。根据前面得到的根目录地址0xF6000,通过软件查看它的内容如图4-6所示。这里使用的是FAT32短文件目录项,每32个字节表示一个文件(文件夹也是)。具体含义分别如下。5A 53 44 4C 20 20 20 20:驱动器的名称,8个字节。图4-6 根目录中的数据54 45 53 54 20 20 20 20(偏移地址20H,长度8):文件名TEST(空缺部分是空格)。54 58 54(偏移地址28H,长度3):文件类型,为ASCII字符表示。20(偏移地址2BH,长度1):文件属性,00000000(读写);

38、00000001(只读);00000010(隐藏);00000100(系统);00001000(卷标);00010000(子目录);00100000(归档)。58 39 (偏移地址30H,长度2):文件创建时间。58 39 (偏移地址32H,长度2):文件最后访问日期。03 00 (偏移地址3AH,长度2):起始簇的簇号为03。77 2D 00 00(偏移地址3CH,长度4):文件长度2D77就是11639字节。 从文件的大小可以计算出,需要占用多少个簇。根据前面的数据,每个簇放8个扇区,每个扇区512个字节,那么一个簇的空间就是4096字节了,即4KB。那么11639字节需要3个簇,这三个簇

39、的开始的地址就可以计算出来了。通过起始簇号计算得到起始簇的地址:0xF6000(根目录区地址)+(03-2)*08*0x200=0xF7000(第一个簇开始地址)这里03减去的02的意思是因为簇号都是从2开始的。第二个簇号存放在0x4800+03*04(因为四个字节存一个簇号)=0x480C中,通过图4-7可知0x480C里面的内容是:04 00 00 00,即第二簇号为04。此时第二个簇的地址:0xF6000+(04-2)*08*0x200=0xF8000。依次查看FAT1表可知第三个簇号为05,地址:0xF6000+(05-2)*08*0x200=0xF9000。继续看看下一个簇号:内容为

40、0x0FFFFFFF,说明文件放置结束。图4-7 FAT1表中的内容通过以上分析可以得到该文件数据存放的起始地址了:0xF7000(第一个簇开始地址)0xF8000(第二个簇开始地址)0xF9000(第三个簇开始地址),他们在文件系统中存储的数据分别如图图4-8图4-9图4-10所示。由此就可以获得该文件的数据了。图4-8 簇中的数据1图4-9 簇中的数据2图4-10 簇中的数据35 系统软件设计5.1 STM32程序调试5.1.1 STM32启动简析要想较清楚的了解STM32的启动则必然得对STM32库有初步的认知。STM32库是有ST公司针对STM32提供的函数接口,即API(Applic

41、ation Program Interface),开发者可调用这些函数接口来配置STM32的寄存器,使使用者得于脱离最底层的寄存器操作,有开发快速,易于阅读,维护成本低等优点。实际上,库是架设在寄存器与用户驱动层之间的代码,向下处理与寄存器直接相关的配置,向上为用户提供配置寄存器的接口,库开发配置与直接配置寄存器方式区别如图5-1所示。对于STM32,因为外设资源丰富,带来的必然是寄存器的数量和复杂度的增加,这是如果直接配置则开发速度慢、程序可读性差。这两个缺陷直接影响了用户使用效率,而库开发方式则正好弥补了这两个缺陷。相对于库开发的方式,直接配置方式产生的代码会相对减少,但因为STM32有充

42、足的资源,权衡库开发的优势与不足,本次设计采用库开发方式实现寄存器的配置。图5-1 驱动方式STM32采用的是Cortex-M3内核,内核是整个微控制器的CPU,该内核是ARM公司设计的一个处理器体系结构。但ARM公司不生产芯片,只做技术授权。使之产生不同商家的外围硬件差异性。为了解决不同芯片厂商生产的Cortex微控制器软件的兼容性问题,ARM与芯片厂商建立了CMSIS标准。CMSIS标准中主要的为CMSIS核心层,它包括:(1) 内核函数层:其中包括用于访问内核寄存器的名称、地址定义,主要有ARM公司提供。(2) 设备外设访问层:提供了片上的核外外设的地址和中断定义,主要由芯片生产商提供。

43、课件CMSIS层位于硬件层和操作系统或用户之间,可以为接口外设、实时操作系统提供简单的处理器软件接口,屏蔽了硬件差异,对软件的移植产生极大地好处。STM32的库就是按照CMSIS的标准建立。STM32的3.0版本库可以从官网获得,解压后找到HTML文件和Library文件,HLML文件时告诉我们ST公司已经为你写好了每个外设的驱动,Library文件下是驱动库的源代码和启动文件。使用时将Library文件下的库函数文件添加到工程中。这样就基本完成了寄存器的配置,相关函数文件功能如下。core_cm3.c文件:该文件可用于屏蔽不同编译器的差异,但最重要的时该文件中包含了stdin.h这个头文件,

44、它是独立于处理器之外的,主要作用是提供一些新类型的定义。system_stm32f10x.c文件:该文件是ST公司提供的遵守CMSIS标准,功能是设置系统时钟和总线时钟。通过M3核的核内寄存器来对8MHz的时钟进行倍频 、分频,或者使用芯片内部的时钟。所有的外设都是与时钟的频率有关,所以这个文件的时钟配置是很关键的。System_stm32f10x.c文件在实现系统时钟时要用到PLL,这就需要操作寄存器,寄存器都是通过存储器映射的方式来访问的,因此该文件包含stm32f10x.h这个头文件。stm32f10x.h文件:这个文件非常重要,是一个非常底层的文件。所有处理器厂商都会对内存的操作封装成

45、一个宏,即我们通常说的寄存器,并且把这些实现封装成一个系统文件,包含在相应的开发环境中。这样,在应用程序时只需将这个头文件包含进来。stm32f10x_ppp.c和stm32f10x_ppp.h文件:这是ST公司针对每个STM32外设而编写的库函数文件,属于CMSIS的设备外设函数,其中ppp表示外设名称。startup_stm32f10x_hd.s:上电后,微控制器无法从硬件上定位main函数的入口地址,需要一个启动文件来处理。Library文件夹下几种不同的启动文件,本次使用的STM32F103VET6有64KRAM,512KROM,属于高密度产品,所以选择该文件。启动文件的作用便是负责执行微控制器从“复位”到“开始执行main函数”中间这段时间(称为启动过程)所必须进行的工作。总的来说,启动文件的作用是:(1) 初始化堆栈指针SP;(2) 初始化程序计数器指针PC;(3) 设置堆栈的大小;(4) 设置异常向量表的入口地址;(5) 配置外部SRAM作为数据寄存器:(6

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服