ImageVerifierCode 换一换
格式:DOCX , 页数:53 ,大小:944.43KB ,
资源ID:8743395      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

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

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(毕业设计fat文件系统在sd卡上的实现和应用.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

毕业设计fat文件系统在sd卡上的实现和应用.docx

1、毕业设计fat文件系统在sd卡上的实现和应用FAT文件系统在SD卡上的实现和应用摘 要本次设计的内容是FAT文件系统在SD卡上应用与实现。SD卡的结构能保证数字文件传送的安全性,也很容易重新格式化,所以有着广泛的应用领域,音乐、电影、新闻等多媒体文件都可以方便地保存到SD卡中。因此不少数码相机也开始支持SD卡。 本文主要利用C语言进行程序设计,编辑与编译软件:Win AVR仿真调试软件:AVR Studio 4,首先通过介绍SD总线下SD卡的底层读写操作,然后对FATFS文件系统结构进行分析,通过用串口查看SD卡获取文件。最后设计SD卡文件的读取、创建、删除的代码实现,通过交叉编译在Atmeg

2、a16开发板上测试。结果显示,该方法可以应用到MP3项目中,便于歌曲的读取,同样便于文件的管理。 AVR单片机的最小系统设计容易:只需要连接电源、焊接晶振就可以工作。很多概念初学者理解起来更容易:例如AVR的时钟源(晶振、内部RC等)不经过分频直接提供给CPU使用,而51的CPU主频等于晶振的12分频。 AVR既具有简单的、可以自制的ISP下载线和Jtag仿真器,又有DIP直插的封装形式。AVR的C语言编程与C语言教科书上学习的标准C语言语法是几乎一样的,不像51的C语言,一些bit、srf之类的变量定义在教科书中是找不到的,有利于后续嵌入式系统的学习。关键词: SD卡、FatFs文件系统、A

3、VR单片机 The application and Realization of FAT file system in the SD cardAbstract The content of this design is the application and Realization of FAT file system in the SD card. SD card structure can guarantee the security of digital file transfer, but also easy to format, so have a wide range of app

4、lications, music, movies, news and other multimedia files can be easilysaved to SD card. So many digital cameras also support SD card. In this paper, using the C language program design, editing and compilingsoftware: Win AVR simulation software: AVR Studio 4, first introduces the underlying SD card

5、 under SD bus read and write operations, and then on the FAT32 file system structure is analyzed, by using serial view the SD cardaccess file. Finally, design of the SD card file read, create, delete the code to achieve, through cross compiler in Atmega16 development board test.The results show, the

6、 method can be applied to the MP3 project, easy toread the same song, for file management. The minimum system design is easy: just need to connect the power supply,welding oscillator can work. Many beginners understand concepts more easily: for example AVR clock (crystal, internal RC) without freque

7、ncydirectly for CPU, and 51 CPU frequency equal to the frequency of 12. AVR not only has a simple, can be made ISP download line and Jtag simulator,and a package of DIP line. The standard C learning AVR C programming language and C language textbooks on the language grammar is almost the same, unlik

8、e the 51 C language, definition of variables bit, SRF, is not to be found in textbooks, useful for embedded system study.Key words: SD card file system, FatFs, AVR microcontroller目录 第一章 引言第一节 研究背景最小文件系统的特点: Windows可兼容的FAT文件系统; 不依赖平台,便于移植; 代码和工作区占用空间非常少; 多种配置可选;如:多卷(物理驱动器和分区); 多ANSI/OEM代码页,包括DBCS;在AN

9、SI/OEM或Unicode中长文件名的支持; RTOS的支持多扇区大小的支持; 只读,最少API,I/O缓冲区等等. 如图1.1所示: 图1.1 fatfs文件系统应用有关C语言的介绍C语言是国际上流行的计算机高级语言,它很适合作为系统描述语言,即方便编写系统软件,亦可以编写应用软件。在早期的操作系统软件大部分是汇编语言编写而成的,但由于汇编语言是依赖于计算机硬件程序可读性和可移植性级语言,相比较C语言兼具一般语言优点还能克服其他语言的缺点。有关SD/MMC简介SD(Secure Digital Card)卡,由松下、东芝和SanDisk共同推出,在1999年8月才首次发布。SD卡数据传送和

10、物理规范是由MMC发展而来,尺寸和MMC差不多,大小为32mm x 24mm x 2.1mm。长宽和MMC一样,但却厚了0.7mm,以方便容纳更大容量的存贮单元。SD卡和MMC卡均保持着向上兼容,也就是说,MMC可被新的SD设备存取,而兼容性则取决于应用软件,与此同时SD卡却不可被MMC设备存取。(SD卡外型采用了与MMC厚度相同的导轨式设计,让SD设备可以适合MMC) SD接口除了保留MMC的7针以外,还在两边多加2针作为数据线。采用NAND型的Flash Memory,基本上与SmartMedia的一样,平均数据传输率可达到2MB/s。MMC(MultiMediaCard)卡是由西门子公司

11、和首推CF的SanDisk在1997年推出。MMC的发展目标主要目标是针对数码影像、电子书、手机、音乐、玩具等产品,是号称是目前世界上最小Flash Memory的存贮卡,大小只有32mm x 24mm x 1.4mm。虽然相对SmartMedia厚,但整体体积却相比SmartMedia小巧,而且也比SmartMedia轻,重量只有1.5克。MMC同样是把存贮单元和控制器一起做到了卡上,智能控制器可使得MMC同时保证兼容性和灵活性。 MMC存储卡可以分为MMC与SPI(serial peripheral interface)两种不同工作模式,首先,MMC模式是标准默认模式,有MMC的全部特性。

12、而SPI模式是MMC存贮卡可选的第二种模式,此模式是MMC协议一个子集,一般主要用于只需要小数量的卡(通常是1个)和较低数据传输率(与MMC协议相比)的系统,此模式可以把设计花费减少到最小,但随之而来的,性能就不如MMC。 MMC的诞生作为一种低成本的数据平台和通讯介质,所以它的接口设计非常的简单。它的读写模式共包括流式、多块和单块。最小数据传送是以块为一个单位的,缺省的块大小是512bytes。如图1.2所示: 图1.2 sd卡实物图第二节 研究现状AVR单片机为ATMEL公司研制开发的一种新型单片机,它和51单片机、PIC单片机相比较具有一系列优点:1:在相同系统时钟下AVR运行速度是最快

13、的;2: 芯片内部Flsah、EEPROM、SRAM的容量较大;3:所有型号Flash、EEPROM都能反复烧写,而且全部支持在线编程烧写(ISP);4:多种频率内部RC振荡器、启动延时、上电自动复位、启动延时看门狗等功能,零外围电路亦可以工作;5:每个IO口都能以推换驱动的方式输出高、低电平,驱动能力较强;6:内部资源丰富,大部分都集成AD、DA模数器;PWM;SPI、USART、TWI、I2C的通信口;丰富的中断源。目前支持AVR单片机编译器的语言主要是汇编语言、C语言、BASIC语言等。其中C编译器主要为CodeVisionAVR、AVRGCC、IAR、ICCAVR等,C语言编译器因为它

14、本身具有功能强大、 运用灵活、代码小、运行速度快等先天性优点,使得它可以在专业程序设计上有不可代替的地位。有关sd卡SD卡是东芝在MMC卡技术上加入加密技术的硬件而成,由于MMC卡可能会容易让使用者拷贝数码音乐,东芝便加入这些技术期望让音乐业界安心。用户可使用一个USB读卡器,在个人电脑上插入SD卡。某些新型电脑上已经内置可读卡的装置。最新的发展是SD卡内建了USB插口,省略了读卡器。 SD卡的结构可保证数字文件传送的安全性,也很方便进行重新的格式化,所以一直有着广泛的应用领域,音乐、新闻、电影等多媒体文件都能方便地保存进SD卡里。因此不少数码相机也开始支持SD卡的功能。关于文件系统文件系统由

15、三部分组成:文件管理有关的软件、被管理的文件以及实施文件管理所需的数据结构。从系统的角度来看,文件系统是对文件存储器空间进行组织和分配的,负责文件存储并对存入的文件进行保护和检索的系统。具体地说,它负责为用户建立文件,存入、读出、修改文件,控制文件存取,当用户不再使用时撤销文件等。FAT有一个很大的缺点:当文件删除后写入新资料,FAT不会将档案整理成完整片段再写入,长期使用会使档案资料慢慢变得分散,而降低了读写速度。硬盘碎片整理是其中一种解决方法,但是必须经常整理以此保持FAT文件系统的效率。第三节 主要工作在AVR单片机上通过串口链接电脑,电脑操作串口调试程序向AVR单片机上的SD卡发送指令

16、,查看SD卡是否能接受调试程序所发送的信息,并且回馈。最终建立一个FATFS(用于在小型嵌入式系统中实现FAT文件系统)实现对SD卡的操作。 图1.3 sd卡初始化 图1.4写sd卡流程图第2章 需求分析第1节 需求分析本次设计的是FAT文件系统在SD卡上应用与实现。SD卡的结构能保证数字文件传送的安全性,也很容易重新格式化,所以有着广泛的应用领域,音乐、电影、新闻等多媒体文件都可以方便地保存到SD卡中。因此不少数码相机也开始支持SD卡。此方法可以应用到MP3项目中,便于歌曲的读取,同样便于文件的管理。英雌,市场的需求便应运而生。第2节 性能分析FatFS是一个为小型嵌入式系统设计的通用FAT

17、(File Allocation Table)文件系统模块。FatFs 的编写遵循ANSI C,并且完全与磁盘I/O层分开。因此,它独立(不依赖)于硬件架构。它可以被嵌入到低成本的微控制器中,如AVR, 8051, PIC, ARM, Z80, 68K 等等,而不需要做任何修改。AVR单片机的最小系统设计容易:只需要连接电源、焊接晶振就可以工作。很多概念初学者理解起来更容易:例如AVR的时钟源(晶振、内部RC等)不经过分频直接提供给CPU使用,而51的CPU主频等于晶振的12分频。 AVR既具有简单的、可以自制的ISP下载线和Jtag仿真器,又有DIP直插的封装形式。AVR的C语言编程与C语言

18、教科书上学习的标准C语言语法是几乎一样的,不像51的C语言,一些bit、srf之类的变量定义在教科书中是找不到的,有利于后续嵌入式系统的学习。鉴于FatFs的和AVR单片机的性能较为优秀,此次就采用在AVR单片机上移植FatFs文件系统的构架。 第三章 功能设计第一节 总体设计一个好的系统设计的步骤决定了程序是否能按照设计者的目的按时完成,是否能在规定时间内按照设计者的要求高质量的完成程序的功能。通过对通讯录功能、系统模块、用户需求进行全方位的分析制定开发流程,开发流程如下所示。如图3.1所示:图3.1 开发流程第二节 硬件设计SD卡有2种操作模式:SD卡模式、SPI模式。SD卡模式允许通过4

19、线高速总线传输,但由于大部分单片机无此接口模块,故选择SPI模式。HCSl2X系列单片机内部都带有此同步串行外部设备接口(SerialPeripheralInterface,SPI)。单片机可以通过SPI系统组成一个通信速率比SCI高的同步网络,故使用SPI模式可以把外设减少到最低。SPI模式相对于SD卡模式的缺点是损失了传输速度;但是目前的微处理器的处理速度越来越高,利用SPI模式大都能满足工程需要。Atmega16单片机的全双工8位SPI模块有4个引脚,分别为主入从出引脚MISO、主入从出引脚MOSI、串行时钟引脚SCK以及从机片选引脚SS。当CS信号线为低电平时,主机开始所有的总线传输。

20、数据从单片机的MOSI引脚同步输入MicroSD卡的DA引脚,MicroSD卡返回数据由DO线同步输入单片机的MISO引脚,数据在CLK信号的上升沿同步输入和输出。第三节 软件设计一、 模块初始化Atmega16单片机包含2个串行外设接口SPI,可以很方便地实现对MicroSD卡接口的数据传输。为了配置时钟和数据长度,需要对SPI控制寄存器(SPCRl和SPICR2)、SPI波特率寄存器SPIBR和SPI数据寄存器SPIDR进行设置:使能SPI模块,将SPICRl中的MSTR位置1使单片机工作在主机模式,产生串行时钟来同步主从双方的移位寄存器,配置SPI时钟极性位与SPI时钟相位控制位,使能从

21、机输出选择;初始化SPI波特率寄存器。二、 SD卡初始化SD卡初始数据传输需工作在低于400kbs的频率,因此配置SPI波特率寄存器,以工作在低速模式下。片选信号后应延时至少74个时钟周期。SD卡默认缺省使用SD总线传输协议,主机需要发出命令CMDO(CMD_GO_IDLE_STATE)才能使SD卡工作在SPI传输模式下,当单片机返回0x01时说明已经进入了IDLE状态。此时应循环发送CMD55+ACMD41以确认是否为SD卡,如果回应超时则发送CMDl(CMD_SEND_OP_COND)以确认是否为MMC卡。经实验发现,Kingston公司的MicroSD卡使用CMD55+ACMD41或者C

22、MDl都可以进行激活。激活SD卡的SPI模式后SD卡进入准备状态,此时发送CMDl6(CMD_SET_BLOCKLEN)设置SD卡的读写块大小,然后重新配置SPI波特率寄存器SPIBR使单片机SPI工作在高速频率下,延时8个时钟周期后返回,完成SD卡初始化。为了方便管理和扩展性开发,对SD卡进行了分区。模拟硬盘模式创建出了MBR区(主引导扇区)与DBR区(操作系统引导记录区),在向下兼容的同时实现了对分区过的SD卡FAT文件系统的读写。三、FAT文件系统信息读取SD卡数据可分为5部分:MBR区、DBR区、FAT区、DIR区和DATA区。MBR区是主引导区,位于整个SD卡的第1单块上。在总共51

23、2字节的主引导扇区中,MBR只占用了其中的446个字节,另外的64个字节是DPT(DiskPartitionTable,分区表),最后2个字节“55AA”是分区的结束标志。这整体构成了SD卡的主引导扇区。DBR是操作系统引导记录区,是操作系统可以直接访问的第1个扇区,它包括1个引导程序和1个被称为BPB(BiosParameterBlock)的本分区参数记录表。BPB参数块记录着本分区的起始扇区、结束扇区、文件存储格式、硬盘介质描述符、根目录大小、FAT、个数,分配单元的大小等重要参数。FAT文件系统的分区有如下几个部分:保留区,存放FAT文件系统的重要参数和引导程序;FAT表,记录簇使用情况

24、;根目录区,记录根目录信息。在FAT文件系统中,文件是以簇的形式保存在SD卡中的,簇的排布是不连续的,1个文件如果大于1个簇的话,则要通过FAT表来查找该文件所有簇所在的位置,从而找到整个文件。目录一般只占有1个簇的大小,在FAT表中等同于小于1个簇的小文件,值显示为FF。第四章 SD卡规范第一节 SD卡概述SD存储卡(Secure Digital Memory Card)是特别为符合新出现的音频和视频等消费电子设备的安全性、容量、性能和环境等设计的一种存储卡。SD存储卡包含符合SDMI标准安全性版权保护机制,速度更快并且存储容量更大。SD存储卡的安全系统使用的是双方认证和“新的密码算法”技术

25、,防止卡的内容被非法使用。它还提供了一种无安全性访问方法来访问用户自己的内容。SD存储卡的物理外形、引脚分配和数据传输协议都向前兼容多媒体卡但是也增加了一些新有的内容。SD存储卡的通信是基于一个高级的9引脚接口(时钟、命令、4条数据线和3条电源线),可以在最高为25MHz频率和低电压范围内进行操作。同时通信协议也是本规范的一部分。SD存储卡的主机接口也会支持常规的多媒体卡操作。也就是说向前兼容多媒体卡。实际上,SD存储卡和多媒体卡的主要区别在于初始化过程。第二节 SD存储卡的系统概念SD存储卡为应用设计人员提供低成本的大容量存储设备(如可移动的卡),支持更高安全等级的版权保护以及相对简单、易于

26、实现的接口。按提供的功能差异化,可将SD存储卡分成几种类型:读写(R/W)卡(Flash、OPT、MTP(可多次编程)。这些卡可作为空的介质售卖,能用于大容量数据存储、终端用户视频、音频或数字影像等的记录。只读存储卡(ROM)。这些卡本身就有固定数据内容。它们典型用于软件、音频、视频等媒体的销售。按工作电压可以将SD存储卡分为两种:支持2.0V3.6V的初始化识别过程的SD存储卡,这个工作电压范围可在CS寄存器内定义。SDLV存储卡低电压的SD存储卡,它能在1.63.6V的电压范围内工作。SDLV存储卡与SD存储卡的标识不一样。第三节 SD存储卡系统包括SD存储卡的总线及其主机应用一、 SD总

27、线拓扑结构SD存储卡绻统定义了两种通信协议:SD和SPI两种。应用可以选择其中一种模式。模式选择相对于主机来说是透明的。卡自动检测复位命令的模式,而且要以后的通信都按相同的通信模式进行。因此,只使用一种通信模式的应用则不需要明白另一种模式,这里主要介绍SD总线。SD总线包含以下信号:CLK: 主机向卡发送时钟信号;CMD: 双向的命令响应的信号;DAT0DAT3: 4个双向数据的信号;VDD、VSS1、VSS2: 电源和地信号。SD卡总线共有一个主机(应用)、多个从机(卡)和同步的星形拓扑结构。所有卡共用的是时钟、电源和地信号。而命令(CMD)和数据(DAT0DAT3)是卡的专用信号,为所有卡

28、提供连续的点对点的连接。在初始化进程中,命令被分别发送到各张卡上,允许应用程序能检测到卡并向物理卡槽分配逻辑的地址。各张卡数据通常独立地发送(接收)。但为了简化卡的成批的处理,在初始化进程以后,所有命令可能会同时发送到所有卡。命令包中提供地址的信息。SD总线允许动态配置数据线数量。在上电以后,SD卡默认只使用DAT0进行数据的传输。初始化后,主机可修改总线的宽度(有效数据线数量)。这个特性允许简单交替选择HW成本和系统性能。注意:SD主机在不使DAT 1 DAT 3时可以使用自己的DAT1DAT3线处于三态(输入模式)。二、 SD总线协议SD总线上的通信是基于以起始位开始、以停止位结束命令和数

29、据位流。命令:命令就是启动一项操作的令牌。命令可从主机发送到一张卡上(寻址命令)或发送到连接的所有卡上(广播命令),命令在CMD线上串行传输。响应:响应则是从被寻址的卡或(同时)从所有连接的卡上发送到主机,可作为对接收到的命令回答的令牌,响应在CMD线上串行传输。 数据:数据可从卡上发送到主机或者相反,数据通过数据线传输。卡的寻址可由会话地址来实现,并在初始化的阶段分配给卡。SD总线基本处理是命令响应处理。这类型总线处理直接在命令或者响应结构中来传输它们的信息。此外,某些操作还有数据令牌。SD卡的数据传输是通过块的形式进行。数据块的后面通常有CRC位。它定义了单块和多块的操作。注意:在快速写操

30、作中使用多块操作模式为最理想。当CMD线出现了停止命令时,多块传输结束。主机可配置数据传输是使用一条还是用多条数据线。如图4.1所示。图4.1 (多)块读操作不管块的写操作是否使用多条数据线来传输数据,它只使用DAT0数据线上写操作忙的信号。如图4.2所示图4.2 (多)块写操作命令令牌的编码策略如下图4.3所示:图4.3 命令令牌的格式每个命令的令牌都以起始位(0)开始,以结束位(1)为结束。令牌的总长度共是48位。每个令牌都有对应的CRC位,这样可以检测传输错误并重复的操作。响应令牌根据其内容4种编码策略。令牌长度是48位或是136位。命令和响应。块的CRC保护算法则是一个16位的CCIT

31、T多项式。如图4.4所示:图4.4 响应的令牌格式在CMD线上最先传输的是MSB,最后才是LSB。当用宽总线选项时候,数据一次传输4位。起始位、结束位以及CRC位在每条DAT线各发送一次。每条数据线分别计算并检查CRC位。CRC位状态响应和忙指示信号是由卡通过DAT0发送到主机上的(DAT1DAT3在此期间无关)。如图4.5所示:图4.5 数据包的格式第五章 SD命令及参数及数据格式第一节 SD卡命令描述1.广播命令:给所有的卡都发送, 某些命令需要响应;2.点对点的命令:给指定地址卡发送, 需要响应.一、 SD卡系统有两种工作模式:(一) 卡识别模式主机上电复位后就会处于此模式,它会在总线上

32、等待卡. 卡复位后也会处于此模式, 直到SEND_RCA(CMD3)命令到来.此模式下主机复位总线所有卡, 验证工作的电压, 询问卡地址. 这个模式下所有数据的传输都是只通过CMD线来完成.卡的复位.当卡上电或收到GO_IDLE_STATE (CMD0)命令之后, 卡就进入Idle State状态. 此时卡将其RCA设为0, 相关寄存器设为传输稳定最优的模式.工作电压验证每个卡的最高和最低工作的电压存储在OCR. 只有适当电的压比配时, CID和CSD数据才能正常传输给主机.SD_SEND_OP_COND (ACMD41)命令可用来判断卡的工作电压是否符合, 如不符合的话, 卡应放弃总线操作, 而进入Inactive State状态. 在发送了S

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1