




免费预览已结束,剩余4页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
SD卡读写系统设计1文献综述SD卡(Secure Digital Memory Card)中文翻译为安全数码卡,是一种基于半导体快闪记忆器的新一代记忆设备,它被广泛地于便携式装置上使用,例如数码相机、个人数码助理(PDA)和多媒体播放器等。SD卡由日本松下、东芝及美国SanDisk公司于1999年8月共同开发研制。SD卡为9引脚,目的是通过把传输方式由串行变成并行,以提高传输速度。它最大的特点就是通过加密功能,可以保证数据资料的安全保密,它还具备版权保护技术,所采用的版权保护技术是DVD中使用的CPRM技术(可刻录介质内容保护)。大小犹如一张邮票的SD记忆卡,重量只有2克,但却拥有高记忆容量、快速数据传输率、极大的移动灵活性以及很好的安全性。长期以来,闪存卡( SD 卡、 MMC 卡等) 因其体积小、功耗低、 容量大和非易失性等特点,在嵌入式存储领域的应用越来越广泛。特别是近年来,随着闪存技术的发展,存卡价格不断下降且存储容量不断提高。当数据采集系统需要长时间地采集和记录海量数据时,应用 SD 卡作为存储介质是很好的选择,例如电能检测、 温度湿度检测、病人心肺数据记录等。近年来, 单片机系统发展迅猛, 这不仅体现在 CPU处理能力迅速提升、 外界设备与处理器交互能力快速提高, 更体现在单片机系统的复杂性日益提高、 系统存储容量急剧增大。这些变化对于数据操作的灵活性提出了越来越高的要求。 因此, 如何系统地、 灵活地管理数据文件就成了单片机系统开发者无法回避的问题。文件系统的使用使开发者获得“ 路径” 的概念, 从而回避了存储介质的地址空间, 不用每次都从头对物理介质进行操作。文件系统提供清晰明了的 API 函数, 使上层应用层不再关心底层存储介质, 而方便地利用标准接口访问底层存储器。 标准化的接口和层次分明的程序增加了程序的可移植性。 因此在单片机系统中植入文件系统是单片机系统发展的必然结果。由于该系统是通过 SD卡模组向 SD卡写入一系列文件, 这些文件需要被 Windows 系列操作系统正确识别, 并进行读写操作, 因此, 我们选择了应用最为广泛的 FAT16 文件系统。FAT16 是 Microsoft 开发的文件系统, 是一种技术成熟、 结构简单、 系统资源开销小、 易于在单片机系统上的硬件平台上实现的文件系统。它是 Microsoft 公司在其 MS2DOS操作系统中采用的文件系统,具有出色的文件管理性能,能被当前大多数操作系统识别。因此,SD卡与 FAT16 文件系统相结合是嵌入式数据存储、记录系统的理想方案,可以将采集记录的数据直接在 PC上读取和处理。本文选用基于MCS-251架构的 AT89S52 单片机,将FAT16 文件系统移植进单片机,并开发了一套 SD卡读写系统。此读写系统应用在了一套基于AT89S52和 SD卡的存储系统上, 实现了数据文件按 FAT16 文件系统存储规则存储。通过串口将本系统连接到 PC上, 在 Windows 操作系统上就能直接读取SD卡上的数据文件。 这套文件系统可以很方便地应用在各种工业现场以及小型的单片机数据采集系统中, 在数据采集存储方面更加灵活、 稳定。2. 选题依据、主要研究内容、研究思路及方案2.1 系统方案介绍本系统采用 MCS 251 架构的 AT89S52 单片机。AT89S52 是一种低成本、 低功耗、 高性能的 CMOS 8 位微控制器,具有 8 KB 在系统可编程 Flash 存储器。应用AT89S52 读写 SD 卡,首先要确定它们之间的通信方案。SD卡有 2 种可选的通信协议: SD 模式和 SPI 模式。SD模式是 SD 卡的标准读写方式,选用此模式需要选择带SD卡控制接口的 MCU 或者额外的 SD 卡控制单元; SPI模式通过 SPI 总线完成 SD 卡与主控制器的通信。AT89S52 没有集成 SD 卡控制器,为了不增加额外的 SD卡控制单元硬件成本,本设计方案采用 SD 卡的 SPI 通信模式。虽然 AT89S52 也没有集成 SPI 接口模块,但可以用软件的方式模拟 SPI接口时序。另外一个要解决的问题是 SD 卡与 AT89S52 的电平匹配。SD卡的逻辑电平相当于3. 3 V 的 TTL 电平标准,AT89S52 的逻辑电平为5 V CMOS电平。解决电平匹配问题的原则有2 条:一为输出电平器件输出的高电平的最小值,应该大于接收电平器件识别为高电平的最低电压值;另一条为输出电平器件输出低电平的最大电压值,应该小于接收电平器件识别为低电平的最高电压值。考虑到SD卡在SPI工作模式下,数据的传输都是单向的,这样可以在单片机向 SD 卡传输数据时采用晶体管加下拉电阻的方法,基本电路如图1 所示。而在SD卡向单片机传输数据时可以采用直接连接,因为它们之间的电平刚好满足上述的电平兼容原则,既经济又实用。这个方案需要双电源供电,1 个5 V电源,1 个3. 3 V电源。2.2 AT89S52 与 SD卡接口电路设计2.2.1 SD卡接口规范SD卡工作在2. 73. 6 V 电压下,图2 是普通 SD卡 图 1 电平转换电路 图2 SD卡结构示意图的结构示意图和引脚排列图,表1 列出了各引脚在 SPI模式下的定义和功能描述。主机与 SD 卡之间通过指令来实现交互。2.2.2 接口电路设计AT89S52 内有256 字节的 RAM ,由于 SD 卡数据的读出与写入是以块为单位的,而每块为512 字节,所以需要在单片机的最小系统 上 扩 展 1 片RAM。本系统选用的 RAM 芯 片 为HM62256 ,容量 32KB。系统硬件电路如图3 所示。 图 3 系统硬件原理图 表1 SPI模式下 SD卡引脚定义引脚号名称描述1CS片选,负有效2DI数据输入3VSS1电源地4VCC供电电压5CLK时钟6VSS2电源地7DO数据输出8RSV只限于SD模式9RSV只限于SD模式2.3 软件设计2.3.1 FAT16文件系统224FAT16 文件系统的存储结构如图4 所示。磁盘上的数据按照其不同的特点和作用大致可分为 5 部分:MBR(Main Boot Record) 区、 DBR(Dos Boot Record) 区、 FAT( File AllocationTable)区、 DIR(Directory)区和 DATA 区2, 如图 4所示:主引导记录MBR系统引导记录 DBRFAT1FAT2根目录区DIR数据区DATA 图4 FAT16 存储结构示意图其中, MBR 区位于物理磁盘 0 扇区, DBR 区位于逻辑磁盘0扇区。MBR 区与物理磁盘一一对应, 其余四个区和逻辑磁盘一一对应。SD卡不支持多分区, 因此以上五个区在 SD卡中都是唯一的。主引导记录区 ( Main BootRecord ,MBR) 位于物理磁盘第零扇区。MBR中有硬盘分区记录表(Disk Partition Table ,DPT) ,DPT记录了各逻辑分区的相对偏移。SD卡不支持多分区,在1 个 SD卡中只有1 个分区,因此在 SD 卡上的DPT 只有 1 个分区表项被占用。系统引导记录区(DOS Boot Record ,DBR)位于磁盘逻辑分区的第0 扇区,是操作系统可以访问的第1 个扇区,它其中包含1 个称为BPB(Bios Parameter Block) 的本分区参数记录表。BPB记录着本分区的根目录大小、 FAT 个数、磁盘介质描述、分配单元大小等重要参数。BPB结构如表 2 所示:表 2 BPB 结构表名称偏移长度描述BS_jmpBoot03指向引导代码的跳转指令BS_OEMName38OEM名称BPB_BytsPerSec112每扇区的字节数BPB_SecPerClus131每簇扇区数BPB_RsvdSecCnt142保留扇区数BPB_NumFATs161FAT表数目BPB_RootEntCnt172根目录区的目录项数BPB_TotSec16192总扇区数BPB_Media211存储介质BPB_FATSz16222FAT表所占的扇区数, 以 16 位表示BPB_SecPerTrk242每磁道扇区数BPB_NumHeads262磁头数BPB_HiddSec284隐藏扇区数BPB_TotSec32324该卷总扇区数, FAT16 卷中应该取值为 0DBR之后是 FAT( File Allocation Table ,文件分配记录表) ,记录文件在磁盘上的存储位置。在 Windows 系统中,文件存储的单位是簇而不是字节,1 个文件不是连续地存放于磁盘的某一区域,而往往分成若干段,像链子一样存放。FAT表记录了每个文件的起始簇号、 后继簇号和终止簇号。FAT表中的每个表项对应数据存储区中的1 个簇,由于 FAT表对文件管理的重要性,FAT表有1 个备份。DIR是根目录区,紧接着第 2 个 FAT 表( FAT2) 之后,记录着根目录下每个文件的起始簇号、 大小等属性。操作系统根据DIR 中文件的起始簇号和大小,结合 FAT表来定位文件。FAT16文件系统中1个文件的存储示意图如图5所示。根目录:File0004 FAT:00030004000500060007FFFF000500070008FFFF 数据区:FilePart1FilePart2FilePart3 图5 文件存储示例2.3.2 SD卡指令规范1 字节1字节25字节6765031071001指令指令参数CRC1图6 SD卡指令格式单片机通过相应指令与SD卡进行交互。SD 卡有特定的指令格式,都是 6 字节长,最高有效位(MSB) 传输优先,如图6 所示。SD 卡指令的最高2 位 “01” 是SD卡指令的开始标志,最后1 位 “1” 是结束标志。6 位的指令是 SD 卡的指令序号,例如 CMD17 的6 位指令即17 的二进制表示010001。指令参数占4 字节,具体内容参照 SD 卡规范。7 位 CRC校检的生成多项式为 G( x) = x7+ x3+ 1。事实上 SD 卡在进入 SPI模式后,不再通过 CRC码来确认指令的传输正确与否,指令中的7 为 CRC校检,只在 SD 模式下起作用。因此仅 SD 卡上电后的第 1 条切换 SPI 模式指令CMD0 需要校检码,而此校检码是固定的 0x95 ,其他指令的 CRC均置1 即可。SD卡响应有4 种格式,不同指令对应不同响应,具体内容可参看 SD卡规范。2.3.3 SD卡读写驱动(1) SPI时序模拟用软件来模拟 SPI 总线的具体方法是:将 SCK的初始状态置0 ,允许接收后(即 CS置0)将 SCK置1 ,这样单片机由DI线输出1 位数据到 SD 卡;接着再将 SCK置0 ,单片机由DO 线从 SD 卡读 1 位数据。至此,模拟 1 位数据输入输出完成。此后再将 SCK置1 ,依次循环 8 次,完成 SPI总线1 字节数据的输入输出。以下是本系统软件模拟 SPI 时序的汇编代码。以通用寄存器 A 作为函数参数,实现将寄存器 A 中的数据通过 SPI总线发送出去,并将从 SPI总线读到的数据存到寄存器 A 中。/ *接口定义* /CS BIT P1. 0SCK BIT P1. 1DI BIT P1. 2DO BIT P1. 3/ * SPI总线读写函数,A 为传递参数 ,用到 R4 * /SPI_RW: MOV R4 , # 8SPILOOP :CLR CL KCLR DIJNB ACC. 7 ,AAASETB DIAAA : SETB CL K ;在时钟上升沿发送一位数据MOV C ,DORLC ACLR CL K;在时钟下降沿读入一位数据DJNZ R4 ,SPILOOPCLR CL KRET(2)SD卡的初始化SD卡的初始化流程如图7 所示。SD卡上电延时74个时钟周期后1 ,单片机向 SD 卡发送复位命令 CMD0 ,使 SD 卡进入 SPI模式。之后循环发送激活SD卡指令 CMD1 ,直到接收到 SD卡响应的第0 位为0。 图7 SD卡初始化流程(3)SD卡数据块的读写完成 SD卡的初始化后,就可以对 SD 卡进行读写操作。读写操作都是通过指令来完成的:单块写命令 CMD24 ,多块写命令CMD25 ;单块读命令 CMD17 ,多块读命令 CMD18。单块读写时,数据块的长度为 512 字节,多块读写时 SD卡收到1 个停止命令 CMD12 后停止读写。图8、 图9 分别是单块读、 写 SD卡的软件流程。 图8 读 SD卡流程 图9 写 SD卡流程图 8 读 SD卡流程 图9 写 SD卡流程2.4 FAT16 文件读写按照 FAT16 文件系统的文件组织规范,编写读文件函数和写文件函数。FAT16 文件读写的软件流程如图10 所示。 图10 FAT16 文件读写流程3.结语通过串口将本系统连接到 PC进行测试,结果表明本系统完成了对 FAT16 文件系统下文件的读写。当采用11. 059 2 MHz晶振时,读写速度和质量都令人满意。本系统采用51 架构的AT89S52 单片机,实现了基于FAT16文件系统的读写 SD 卡设计,整套系统成本较低,在嵌入式数据记录和存储中有广泛应用前景。参考文献 1 SanDisk Corporation. Secure Digital
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 飞机雷达调试工事故案例分析能力考核试卷及答案
- 公司二甲基甲酰胺装置操作工工艺技术规程
- 公司文物修复师岗位安全技术规程
- 2025年河南省农业信贷担保有限责任公司招才引智春季专场招聘32人考前自测高频考点模拟试题附答案详解(模拟题)
- 2025黑龙江齐齐哈尔市建华区文化街道公益性岗位招聘1人考前自测高频考点模拟试题及完整答案详解1套
- 2025年吉林省省直事业单位公开招聘工作人员(1号)(186人)模拟试卷及答案详解(新)
- p38-MAPK-IN-9-生命科学试剂-MCE
- Nutlin-3-Standard-生命科学试剂-MCE
- 2025年浙江宁波北仑区人民医院医疗健康服务集团霞浦院区招聘编外人员1人考前自测高频考点模拟试题及完整答案详解1套
- 2025年市立中学试卷题目及答案
- 2025年营造林监理工程师试题
- 中建土建劳务招标标准清单编制参考
- 小学生英语水果课件下载
- 湖北省老年教育管理办法
- 人教新版(PEP)四年级上册单元测试卷 Unit1 Helping at home (含听力音频听力原文及答案)
- DGTJ08-66-2016 花坛花境技术规程
- 洗衣房衣物洗涤操作规范
- 石材安装采购合同协议
- 2025年03月四川天府新区“蓉漂人才荟”事业单位(13人)笔试历年典型考题(历年真题考点)解题思路附带答案详解
- 养老中心院感感染管理制度
- 2025 ada糖尿病诊疗标准要点解读课件
评论
0/150
提交评论