基于单片机的sd卡数据操作设计毕业设计论文_第1页
基于单片机的sd卡数据操作设计毕业设计论文_第2页
基于单片机的sd卡数据操作设计毕业设计论文_第3页
基于单片机的sd卡数据操作设计毕业设计论文_第4页
基于单片机的sd卡数据操作设计毕业设计论文_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、大连科技学院毕 业 设 计 (论 文)题 目 基于单片机的sd卡数据操作设计 摘 要许多工业现场需要数据采集器完成各类数据采集工作。实际应用中要求数据采集器工作可靠,本钱低廉,操作简单便于数据收集和分析;既要方便与PC机联机,又能独立完成数据采集、存储工作。SD卡在现在的日常生活与工作中使用也非常广泛,时下已经成为最为通用的数据存储卡。在诸如MP3、数码相机等设备上也都采用SD卡作为其存储设备。SD卡之所以得到如此广泛的使用,是因为它价格低廉、存储容量大、使用方便、通用性与平安性强等优点。既然它有着这么多优点,那么如果将它参加到单片机应用开发系统中来,将使系统变得更加出色。这就要求对SD卡的硬

2、件与读写时序进行研究。长期以来,以Flash Memory为存储体的SD卡因具备体积小、功耗低、可擦写以及非易失性等特点而被广泛应用于消费类电子产品中。特别是近年来,随着价格不断下降且存储容量不断提高,它的应用范围日益增广。当数据采集系统需要长时间地采集、记录海量数据时,选择SD卡作为存储媒质是开发者们一个很好的选择。论文介绍了SD卡存储采集数据电路设计原理、电路以及程序,详细阐述了用AT89C51单片机对SD卡进行操作的过程。关键词:单片机 sd卡 串口 通信 ABSTRACTMany industry site need data collector of all kinds of dat

3、a acquisition work completed. Practical application request data collector reliable, low cost, easy to operate, easy to data collection and analysis; Both convenient and PC online, and independently complete the data acquisition, storage work.SD card is widely used in daily life and work. Now, it ha

4、s become the most common data storage card. Such as MP3, digital cameras and other equipment are also using the SD card as the storage device. SD card is so widely used, because it has the advantages of low price, the advantages of large storage capacity, convenient use, versatility and strong safet

5、y. Since it has so many advantages, so if it is added to the MCU application development system, will make the system better. This requires hardware and read SD card to write time study.Long-term since, to Flash Memory memory SD card has small size, low power consumption, erasable and non-volatile c

6、haracteristics have been widely used in consumer electronic products. Especially in recent years, with falling prices and increasing storage capacity, its application range is extended. When the data acquisition system needs a long time to collect, record data, select the SD card as storage medium i

7、s the developers a good choice. This paper introduces the SD card store data acquisition circuit design principle, circuit and program.This paper describes in detail the process of operation of SD card with AT89C51 single chip microcomputer.Key Words:Single chip microcomputer SD card Serial port Sig

8、nal communication目 录 TOC o 1-3 h z u HYPERLINK l _Toc356423964 1 前 言 PAGEREF _Toc356423964 h 1 HYPERLINK l _Toc356423965 2 系统方案设计 PAGEREF _Toc356423965 h 2 HYPERLINK l _Toc356423966 3 系统硬件局部设计 PAGEREF _Toc356423966 h 3 HYPERLINK l _Toc356423967 3.1 SD卡简介 PAGEREF _Toc356423967 h 3 HYPERLINK l _Toc356

9、423968 3.1.1 SD卡的使用 PAGEREF _Toc356423968 h 3 HYPERLINK l _Toc356423969 3.1.2 SD卡开展历程 PAGEREF _Toc356423969 h 4 HYPERLINK l _Toc356423970 单片机的介绍 PAGEREF _Toc356423970 h 4 HYPERLINK l _Toc356423971 3.2.1 单片机历史 PAGEREF _Toc356423971 h 6 HYPERLINK l _Toc356423972 3.2.2 单片机的特点 PAGEREF _Toc356423972 h 7

10、HYPERLINK l _Toc356423973 3.2.3 单片机的根本组成 PAGEREF _Toc356423973 h 7 HYPERLINK l _Toc356423974 3.3 电源模块 PAGEREF _Toc356423974 h 8 HYPERLINK l _Toc356423975 3.4 单片机最小系统 PAGEREF _Toc356423975 h 8 HYPERLINK l _Toc356423976 3.5 sd卡内部结构和工作原理 PAGEREF _Toc356423976 h 10 HYPERLINK l _Toc356423977 3.5.1 SD卡内部结

11、构 PAGEREF _Toc356423977 h 10 HYPERLINK l _Toc356423978 3.5.2 sd卡引脚及功能 PAGEREF _Toc356423978 h 11 HYPERLINK l _Toc356423979 3.6 单片机与sd卡链接 PAGEREF _Toc356423979 h 12 HYPERLINK l _Toc356423980 通讯模式 PAGEREF _Toc356423980 h 12 HYPERLINK l _Toc356423981 电平匹配 PAGEREF _Toc356423981 h 12 HYPERLINK l _Toc3564

12、23982 硬件接口设计 PAGEREF _Toc356423982 h 13 HYPERLINK l _Toc356423983 4 软件设计 PAGEREF _Toc356423983 h 14 HYPERLINK l _Toc356423984 4.1 软件设计目标 PAGEREF _Toc356423984 h 14 HYPERLINK l _Toc356423985 4.2 设计环境 PAGEREF _Toc356423985 h 14 HYPERLINK l _Toc356423986 4.3 系统软件设计 PAGEREF _Toc356423986 h 14 HYPERLINK

13、l _Toc356423987 4.3.1 SD卡初始化 PAGEREF _Toc356423987 h 14 HYPERLINK l _Toc356423988 4.3.2 数据块的读写 PAGEREF _Toc356423988 h 15 HYPERLINK l _Toc356423989 4.3.3 定时器T0函数流程图 PAGEREF _Toc356423989 h 18 HYPERLINK l _Toc356423990 结 论 PAGEREF _Toc356423990 h 19 HYPERLINK l _Toc356423991 谢 辞 PAGEREF _Toc356423991

14、 h 20 HYPERLINK l _Toc356423992 参考文献 PAGEREF _Toc356423992 h 21 HYPERLINK l _Toc356423993 附 录 PAGEREF _Toc356423993 h 221 前 言SD卡Secure Digital Memory Card中文翻译为平安 HYPERLINK :/baike.baidu /view/1347512.htm t _blank 数码卡,是一种基于半导体快闪记忆器的新一代记忆设备,它被广泛地于便携式装置上使用,例如数码相机、个人数码助理(PDA)和多媒体播放器等。SD卡由日本松下、东芝及美国SanDi

15、sk公司于1999年8月共同开发研制。SD卡为9引脚,目的是通过把传输方式由串行变成并行,以提高传输速度。它最大的特点就是通过加密功能,可以保证数据资料的平安保密,它还具备版权保护技术,所采用的版权保护技术是DVD中使用的CPRM技术可刻录介质内容保护。大小犹如一张邮票的SD记忆卡,重量只有2克,但却拥有高记忆容量、快速数据传输率、极大的移动灵活性以及很好的平安性。近年来, 单片机系统开展迅猛, 这不仅表达在 CPU处理能力迅速提升、 外界设备与处理器交互能力快速提高, 更表达在单片机系统的复杂性日益提高、 系统存储容量急剧增大。这些变化对于数据操作的灵活性提出了越来越高的要求。 因此, 如何

16、系统地、 灵活地管理数据文件就成了单片机系统开发者无法回避的问题。文件系统的使用使开发者获得“ 路径 的概念, 从而回避了存储介质的地址空间, 不用每次都从头对物理介质进行操作。文件系统提供清晰明了的 API 函数, 使上层应用层不再关心底层存储介质, 而方便地利用标准接口访问底层存储器。 标准化的接口和层次清楚的程序增加了程序的可移植性。 因此在单片机系统中植入文件系统是单片机系统开展的必然结果。由于该系统是通过 SD卡模组向 SD卡写入一系列文件, 这些文件需要被 Windows 系列操作系统正确识别, 并进行读写操作, 因此, 我们选择了应用最为广泛的 FAT16 文件系统。FAT16

17、是 Microsoft 开发的文件系统, 是一种技术成熟、 结构简单、 系统资源开销小、 易于在单片机系统上的硬件平台上实现的文件系统。它是 Microsoft 公司在其 MS2DOS操作系统中采用的文件系统,具有出色的文件管理性能,能被当前大多数操作系统识别。因此,SD卡与 FAT16 文件系统相结合是嵌入式数据存储、记录系统的理想方案,可以将采集记录的数据直接在 PC上读取和处理。2 系统方案设计本系统采用 MCS 251 架构的 AT89S51单片机。AT89S51是一种低本钱、 低功耗、 高性能的 CMOS 8 位微控制器,具有 8 KB 在系统可编程 Flash 存储器。应用AT89

18、S52 读写 SD 卡,首先要确定它们之间的通信方案。SD卡有 2 种可选的通信协议: SD 模式和 SPI 模式。SD模式是 SD 卡的标准读写方式,选用此模式需要选择带SD卡控制接口的 MCU 或者额外的 SD 卡控制单元; SPI模式通过 SPI 总线完成 SD 卡与主控制器的通信。AT89S51没有集成 SD 卡控制器,为了不增加额外的 SD卡控制单元硬件本钱,本设计方案采用 SD 卡的 SPI 通信模式。虽然 AT89S51也没有集成 SPI 接口模块,但可以用软件的方式模拟 SPI接口时序。另外一个要解决的问题是SD卡与AT89S51的电平匹配。SD卡的逻辑电平相当于3. 3 V

19、的 TTL 电平标准,AT89S51的逻辑电平为5 V CMOS电平。解决电平匹配问题的原那么有2条:一为输出电平器件输出的高电平的最小值,应该大于接收电平器件识别为高电平的最低电压值;另一条为输出电平器件输出低电平的最大电压值,应该小于接收电平器件识别为低电平的最高电压值。考虑到SD卡在SPI工作模式下,数据的传输都是单向的,这样可以在单片机向 SD 卡传输数据时采用晶体管加下拉电阻的方法,根本电路如图2-1所示。而在SD卡向单片机传输数据时可以采用直接连接,因为它们之间的电平刚好满足上述的电平兼容原那么,既经济又实用。这个方案需要双电源供电,1 个5 V电源,1 个3.3 V电源。3 系统

20、硬件局部设计 SD卡简介SD卡在24mm32mm2.1mm的体积内结合了SanDisk快闪记忆卡控制与MLCMultilevel Cell技术和Toshiba东芝0.16u及0.13u的NAND技术,通过9针的接口界面与专门的驱动器相连接,不需要额外的电源来保持其上记忆的信息。而且它是一体化固体介质,没有任何移动局部,所以不用担忧机械运动的损坏。 SD卡的技术建是基于MultiMedia卡MMC格式上开展而来,大小和MMC差不多,尺寸为32mm x 24mm x 2.1mm。长宽和MMC一样,只是比MMC厚了0.7mm,以容纳更大容量的存贮单元。SD卡与MMC卡保持着向上兼容,也就是说,MMC

21、可以被新的SD设备存取,兼容性那么取决于应用软件,但SD卡却不可以被MMC设备存取。SD卡外型采用了与MMC厚度一样的导轨式设计,以使SD设备可以适合MMC)。 SD接口除了保存MMC的7针外,还在两边加多了2针,作为数据线。采用了NAND型Flash Memory,根本上和SmartMedia的一样,平均数据传输率能到达2MB/s。 SD卡还提供不同的速度,它是按CD-ROM的150kB/秒为1倍速的速率计算方法来计算的。根本上,它们能够比标准CD-ROM的传输速度快6倍(900 kB/秒),而高速的SD卡更能传输66x (10 MB/秒) 以及 133x 或更高的速度。一些数码相机需要高速

22、SD卡来更流畅地拍摄影片,和连续拍摄相片更迅速。直至2005年12月,大局部设备跟从SD卡的1.01规格,而更高速至133x的设备亦跟从1.1规格。 设有SD卡插槽的设备能够使用较簿身的MMC卡,但是标准的SD卡却不能插入到MMC卡插槽。SD卡能够于CF卡和PCMCIA卡上,插上转接器使用;而miniSD卡和microSD卡亦能插上转接器于SD卡插槽使用。一些USB连接器能够插上SD卡,而且一些读卡器亦能够插上SD卡,并由许多连接埠,例如USB、FireWire等存取使用。 SD卡的结构能保证数字文件传送的平安性,也很容易重新格式化,所以有着广泛的应用领域,音乐、电影、新闻等多媒体文件都可以方

23、便地保存到SD卡中。因此不少数码相机也开始支持SD卡。 3.1.1 SD卡的使用 SD卡应用于以下的手提数码装置: 数码相机储存相片及短片 数码摄录机储存相片及短片 个人数码助理PDA储存各类资料 手提 储存相片、铃声、音乐、短片等资料 多媒体播放器 SD卡多用于MP3随身听、数码摄像机、数码相机等,也有用于笔记本电脑上。其投影面积与MMC卡相同,只是略微厚一点,为2.1mm,但是SD卡的容量大得多,且读写速度也MMC卡快4倍。同时,SD卡的接口与MMC卡是兼容的,支持SD卡的接口大多支持MMC卡。目前SD卡在数码相机中正在迅速普及,大有成为主流之势。SD卡在今年的开展很快,已经开始威胁到CF

24、卡的市场分额了。这是由于SD卡的体积要比CF卡小很多,并且SD卡在容量、性能和价格上和CF卡的差距越来越小,而这两年支持SD卡的 迅速在市场走热,因此,SD卡的迅速成长绝对不是偶然的。最重要的一点就是MMC卡也能和SD卡相兼容,这也正是SD卡迅速走红的原因之一。不过注意的是,在某些产品例如 上,SD卡和MMS卡是不能兼容的。现在的SD卡容量由8MB到32GB不等。3. SD卡开展历程在2006年,SD卡容量有8、16、32、64、128、256、或512 MB,1、2 、4、6、8(SDHC) GB。 SD/MMC卡已经替代东芝开发的SM卡,成为了便携式数码相机使用最广泛的数字存储卡格式。20

25、01年 SM卡的市场占有率超过50%,但到了2005年下降到了40%左右,并且还在快速滑落。大局部的数码相机生产商都提供了SD卡的支持,包括佳能、尼康、柯达、松下及柯尼卡美能达等。 三大主要厂商仍然在坚持使用自己的专利格式: 奥林巴斯和 富士使用 xD卡, 索尼使用Memory Stick。另外,SD卡还没有攻入CF卡占绝对地位的 数码单镜反光相机 市场。除2005年尼康新发布的D50支持SD。 SD卡是东芝在MMC卡技术中参加加密技术硬件而成,由于MMC卡可能会较易让使用者复制数码音乐,东芝便参加这些技术希望令音乐业界安心。类似的技术包括索尼的MagicGate,理论上加密技术可引入一些数码

26、版权管理措施,但这功能甚少被应用。用户可以使用一个USB的读卡器,在个人电脑上使用SD卡。某些新型电脑上已经内置了读卡装置。最新的开展是SD内建了USB插口,省略了读卡器。SanDisk的设计是使用一个可折叠的护套来保护USB插口。尽管Sandisk并不是第一家内建USB功能的SD卡生产商,但由于其在业内的重要地位。这一动作带动了其他厂商跟风。 3.2单片机的介绍 AT89S51是美国ATMEL生产的低功耗,高性能CMOS8位单片机,片内含4K bytes的可系统编程的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准8051指令系统及引脚。它集Flash

27、程序存储器既可在线编程ISP也可用传统方法进行编程及通用8位微处理器于单片机芯片中,ATMEL公司的功能强大,低价位AT89S51单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。AT89S51主要功能列举如下: 为一般控制应用的8位单芯片。 晶片内部具有时钟振荡器传统最高工作频率可至12MHz。 内部程式存储器ROM为4KB。 内部数据存储器RAM为128B。 32条双向输入输出线,且每条均可以单独做 I/O的控制。 5个中断向量源。 2组独立的16位定时器。 单芯片提供位逻辑运算指令。AT89S51管脚排列及系统所用引脚功能介绍。管脚排列如图3-1所示,下面介绍引脚的功能。

28、图1-1 AT89S51引脚图1.VCC:AT89S51 电源正端输入,接+5V。:电源地端。:单芯片系统时钟的反相放大器输入端。:系统时钟的反相放大器输出端。 ::端口0是一个8位宽的开路漏极Open Drain双向输出入端口。P0在当做I/O用时可以推动8个LS的TTL负载。6.PORT2P2.0P2.7:端口2是具有内部提升电路的双向I/O端口,每一个引脚可以推动4个LS的TTL负载,假设将端口2的输出设为高电平时,此端口便能当成输入端口来使用。7.PORT1P1.0P1.7:端口1也是具有内部提升电路的双向I/O端口,其输出缓冲器可以推动4个LS TTL负载,同样地假设将端口1的输出设

29、为高电平,便是由此端口来输入数据。8.PORT3P3.0P3.7:端口3也具有内部提升电路的双向I/O端口,其输出缓冲器可以推动4个TTL负载,同时还多工具有其他的额外特殊功能,包括串行通信、外部中断控制、计时计数控制及外部数据存储器内容的读取或写入控制等功能。其引脚分配如下:9.P3.0:RXD,串行通信输入。P3.1:TXD,串行通信输出。P3.2:INT0,外部中断0输入。P3.3:INT1,外部中断1输入。P3.4:T0,计时计数器0输入。P3.5:T1,计时计数器1输入。P3.6:WR:外部数据存储器的写入信号。P3.7:RD,外部数据存储器的读取信号。3.2.1 单片机历史单片机诞

30、生于20世纪70年代末,经历了SCM、MCU、SoC三大阶段。 1.SCM即单片微型计算机Single Chip Microcomputer阶段,主要是寻求最正确的单片形态嵌入式系统的最正确体系结构。“创新模式获得成功,奠定了SCM与通用计算机完全不同的开展道路。在开创嵌入式系统独立开展道路上,Intel公司功不可没。 2.MCU即微控制器Micro Controller Unit阶段,主要的技术开展方向是:不断扩展满足嵌入式应用时,对象系统要求的各种外围电路与接口电路,突显其对象的智能化控制能力。它所涉及的领域都与对象系统相关,因此,开展MCU的重任不可防止地落在电气、电子技术厂家。从这一角

31、度来看,Intel逐渐淡出MCU的开展也有其客观因素。在开展MCU方面,最著名的厂家当数Philips公司。 Philips公司以其在嵌入式应用方面的巨大优势,将MCS-51从单片微型计算机迅速开展到微控制器。因此,当我们回忆嵌入式系统开展道路时,不要忘记Intel和Philips的历史功绩。 3.单片机是嵌入式系统的独立开展之路单片机是嵌入式系统的独立开展之路单片机是嵌入式系统的独立开展之路单片机是嵌入式系统的独立开展之路,向MCU阶段开展的重要因素,就是寻求应用系统在芯片上的最大化解决;因此,专用单片机的开展自然形成了SoC化趋势。随着微电子技术、IC设计、EDA工具的开展,基于SoC的单

32、片机应用系统设计会有较大的开展。因此,对单片机的理解可以从单片微型计算机、单片微控制器延伸到单片应用系统。3 单片机的特点1 、具有优异的性能价格比;2 、集成度高、体积小、可靠性高; 3 、控制功能强; 4 、低电压、低功耗。 3 单片机的根本组成 它由 CPU 、存储器包括 RAM 和 ROM 、 I/O 接口、定时 / 计数器、中断控制功能等均集成在一块芯片上,片内各功能通过内部总线相互连接起来。 输入 / 输出引脚 P0、P1 、P2 、-P0 .7:P0 口是一个 8 位漏极开路型双向 I/O 端口。在访问片外存储器时,它分时作低 8 位地址和 8 位双向数据总线用。在EPROM 编

33、程时,由 P0 输入指令字节,而在验证程序时,那么输出指令字节。验证程序时,要求外接上拉电阻。 P0 能以吸收电流的方式驱动8个LSTTL 负载。 P1. 0 P1. 7 18 脚: P1 是一上带内部上拉电阻的 8 位双向 I/O 口。在 EPROM 编程和验证程序时,由它输入低 8 位地址。 P1 能驱动 4 个 LSTTL 负载。 在 8032/8052 中, P1. 0 还相当于专用功能端 T2 ,即定时器的计数触发输入端; P1. 1 还相当于专用功能端T2EX ,即定时器 T2 的外部控制端。P2.0P2.7 2128 脚: P2 也是一上带内部上拉电阻的 8 位双向 I/O 口。

34、在访问外部存储器时,由它输出高 8 位地址。在对 EPROM 编程和程序验证时,由它输入高 8 位地址。 P2 可以驱动 4 个 LSTTL 负载。P3. 0 P3. 7 1017 脚: P3 也是一上带内部上拉电阻的双向 I/O 口。在 MCS-51 中,这 8 个引脚还用于专门的第二功能。 P3 能驱动 4 个 LSTTL 负载。 P3. 0 RXD 串行口输入 P3. 1 TXD 串行口输出 P3. 2 INT0 外部中断 0 输入 P3. 3 INT1 外部中断 1 输入 P3. 4 T0 定时器 0 的外部输入 P3. 5 T1 定时器 1 的外部输入 P3. 6 WR 片外数据存储

35、器写选通 P3. 7 RD 片外数据存储器读选通 3.3 电源模块SD卡的工作电平为3.3V,而控制芯片的逻辑电平为5V CMOS电平标准。因此,它们之间不能直接相连,否那么可能会烧坏SD卡;出于对平安工作的考虑,有必要解决电平匹配问题。要解决这一问题,最根本的就是解决逻辑器件接口的要有两条:一为输出电平器件输出高电平的最小电压值,应该大于接收电平器件识别为高电平的最低电压值;另一条为输出电平器件输出低电平的最大电压值,应该小于接收电平器件识别为低电平的最高电压值。 一般来说,通用的电平转换方案是采用类似SN74ALVC4245的专用电平转换芯片,这类芯片不仅可以用作升压和降压,而且允许两边电

36、源不同。但是,这个方案代价相对昂贵,而且一般的专用电平转换芯片都是同时转换8路、16路或者更多路数的电平,相对本系统仅仅需要转换4路来说是一种资源的浪费。 电源电路原理图如图3.1。图3-1 电源电路原理图3.4 单片机最小系统单片机最小应用系统,指的是用最少的元件组成的单片机并且可以正常工作的系统,对本次设计使用单片机来说,最小系统一般应该包括:单片机,晶振电路以及复位电路。 复位电路:主要由电容串联电阻组成,结合“电容电压不能突变的性质和图例,可以知道,每当系统一上电,RST脚那么会出现由电路RC值决定的高电平。最为典型的51单片机每当RST脚的高电平一直持续两个机器周期以上就会复位,所以

37、,适当组合RC的取值就可以保证可靠的复位。一般教科书推荐C 取10u,R取8.2K当然也有其他取法的,原那么就是要让RC组合可以在RST脚上产生不少于2个机周期的高电平至于如何具体定量计算,可以参考电路分析相关书籍。晶振电路:典型的晶振值取11.0592MHz(因为可以准确地得到9600波特率和19200波特率,用于有串口通讯的场合)/12MHz。1复位电路的用途单片机复位电路就好比电脑的重启局部,当电脑在使用中出现死机,按下重启按钮电脑内部的程序从头开始执行。单片机也一样,当单片机系统在运行中,受到环境干扰出现程序跑飞的时候,按下复位按钮内部的程序自动从头开始执行。单片机复位电路如图3-2所

38、示。图3-2 89S51最小系统图2复位电路的工作原理在单片机系统中,系统上电启动的时候复位一次,当按键按下的时候系统再次复位,如果释放后再按下,系统还会复位,所以可以通过按键的断开和闭合在运行的系统中控制其复位。在电路图中,电容的大小是10uF,电阻的大小是10k。所以根据公式,可以算出电容充电到电源电压的0.7倍单片机的电源是5V,所以充电到0.7倍即为3.5V,需要的时间是10K*10UF=0.1S。也就是说在电脑启动的0.1S内,电容两端的电压时在03.5V增加。这个时候10K电阻两端的电压为从51.5V减少串联电路各处电压之和为总电压。所以在0.1S内,RST引脚所接收到的电压是5V

39、1.5V。在5V正常工作的51单片机中小于1.5V的电压信号为低电平信号,而大于1.5V的电压信号为高电平信号。所以在开机0.1S内,单片机系统自动复位RST引脚接收到的高电平信号时间为0.1S左右。在单片机启动0.1S后,电容C两端的电压持续充电为5V,这时候10K电阻两端的电压接近于0V,RST处于低电平所以系统正常工作。当按键按下的时候,开关导通,这个时候电容两端形成了一个回路,电容被短路,所以在按键按下的这个过程中,电容开始释放之前充的电量。随着时间的推移,电容的电压在0.1S内,从 5V释放到变为了1.5V甚至更小。根据串联电路电压为各处之和,这个时候10K电阻两端的电压为3.5V,

40、甚至更大,所以RST引脚又接收到高电平,单片机系统自动复位。3.5 sd卡内部结构和工作原理SD卡Secure Digital Memory Card是一种为满足平安性、容量、性能和使用环境等各方面的需求而设计的一种新型存储器件,SD卡允许在两种模式下工作,即SD模式和SPI模式,本系统采用SPI模式。本小节仅简要介绍在SPI模式下,STM32处理器如何读写SD卡,如果读者如希望详细了解SD卡,可以参考相关资料。3.5.1 SD卡内部结构图3-3 SD卡内部图3.5.2 sd卡引脚及功能图3-4 sd卡管脚图SD卡主要引脚和功能为:CLK:时钟信号,每个时钟周期传输一个命令或数据位,频率可在0

41、25MHz之间变化,SD卡的总线管理器可以不受任何限制的自由产生025MHz的频率;CMD:双向命令和回复线,命令是一次主机到从卡操作的开始,命令可以是从主机到单卡寻址,也可以是到所有卡;回复是对之前命令的答复,回复可以来自单卡或所有卡;DAT03:数据线,数据可以从卡传向主机也可以从主机传向卡。SD卡以命令形式来控制SD卡的读写等操作。可根据命令对多块或单块进行读写操作。在SPI模式下其命令由6个字节构成,其中高位在前。SD卡命令的格式如表1所示,其中相关参数可以查阅SD卡标准。一般我们用单片机操作SD卡时,都不需要对FAT分区表信息做处理,原因如下:1、操作FAT分区表要增加程序代码量、增

42、加SRAM的消耗,对于便携应用来说代码大小和占用SRAM的多少至关重要。2、即使我们对FAT分区表不做任何了解,实际上我们一样可以向SD卡上写入数据,这就说明使用FAT对我们做数据存储应用来说如同鸡肋。3、消耗大量经历和时间去了解FAT分区表对于我们做嵌入式软件开发的人来说有些得不偿失。4、SD卡支持两种操作模式,SD模式和SPI模式,SPI模式做SD数据操作时根本不需要知道FAT,这时候SD卡对于我们来说实际上就是个大的、快速的、方便的、容量可变的外部存储器。基于以上原因,一般情况下对SD卡的操作只需要了解SPI通讯就可以了,而现在大局部单片机都有SPI接口,那么操作SD卡易如反掌。3.6

43、单片机与sd卡链接应用AT89S51读写SD卡有两点需要注意。首先,需要寻找一个实现AT89S51单片机与SD卡通讯的解决方案;其次,SD卡所能接受的逻辑电平与AT89S51提供的逻辑电平不匹配,需要解决电平匹配问题3.6.1通讯模式SD卡有两个可选的通讯协议:SD模式和SPI模式。SD模式是SD卡标准的读写方式,但是在选用SD模式时,往往需要选择带有SD卡控制器接口的MCU,或者必须参加额外的SD卡控制单元以支持SD卡的读写。然而,AT89S51单片机没有集成SD卡控制器接口,假设选用SD模式通讯就无形中增加了产品的硬件本钱。在SD卡数据读写时间要求不是很严格的情况下,选用SPI模式可以说是

44、一种最正确的解决方案。因为在SPI模式下,通过四条线就可以完成所有的数据交换,并且目前市场上很多MCU都集成有现成的SPI接口电路,采用SPI模式对SD卡进行读写操作可大大简化硬件电路的设计。虽然AT89S51不带SD卡硬件控制器,也没有现成的SPI接口模块,但是可以用软件模拟出SPI总线时序。本文用SPI总线模式读写SD卡。3.6.2电平匹配SD卡的逻辑电平相当于3.3V TTL电平标准,而控制芯片AT89S51的逻辑电平为5V CMOS电平标准。因此,它们之间不能直接相连,否那么会有烧毁SD卡的可能。出于对平安工作的考虑,有必要解决电平匹配问题。要解决这一问题,最根本的就是解决逻辑器件接口

45、的电平兼容问题,原那么主要有两条:一为输出电平器件输出高电平的最小电压值,应该大于接收电平器件识别为高电平的最低电压值;另一条为输出电平器件输出低电平的最大电压值,应该小于接收电平器件识别为低电平的最高电压值。一般来说,通用的电平转换方案是采用类似SN74ALVC4245的专用电平转换芯片,这类芯片不仅可以用作升压和降压,而且允许两边电源不同步。但是,这个方案代价相对昂贵,而且一般的专用电平转换芯片都是同时转换8路、16路或者更多路数的电平,相对本系统仅仅需要转换3路来说是一种资源的浪费。考虑到SD卡在SPI协议的工作模式下,通讯都是单向的,于是在单片机向SD卡传输数据时采用晶体管加上拉电阻法

46、的方案,根本电路如图3-6所示。而在SD卡向单片机传输数据时可以直接连接,因为它们之间的电平刚好满足上述的电平兼容原那么,既经济又实用。 图3-5 电平转换电路这个方案需要双电源供电一个5V电源、一个3.3V电源供电,3.3V电源可以用AMS1117稳压管从5V电源稳压获取。3.7硬件接口设计SD卡提供9Pin的引脚接口便于外围电路对其进行操作,9Pin的引脚随工作模式的不同有所差异。在SPI模式下,引脚1DAT3作为SPI片选线CS 用,引脚2CMD用作SPI总线的数据输出线MOSI,而引脚7DAT0为数据输入线MISO,引脚5用作时钟线CLK。除电源和地,保存引脚可悬空。本文中控制SD卡的

47、MCU是ATMEL公司生产的低电压、高性能CMOS 8位单片机AT89S51,内含8K字节的可反复擦写的只读程序存储器和256字节的随机存储数据存储器。由于AT89S51只有256字节的数据存储器,而SD卡的数据写入是以块为单位,每块为512字节,所以需要在单片机最小系统上增加一片RAM。本系统中RAM选用存储器芯片HM62256,容量为32K。对RAM进行读写时,锁存器把低8位地址锁存,与P2口的8位地址数据构成16位地址空间,从而可使SD卡一次读写512字节的块操作。4 软件设计4.1 软件设计目标最终能实现同时将四路模拟电压0-5V进行A/D转换,转换结果为十进制有效数字3位;要求每秒钟

48、转换一次,并将结果转换为ASCII码形式;并将四路结果分别存储到SD卡预先建立好的CH1.txt、CH2.txt、CH3.txt、CH4.txt文档中。采集实时的4个通道电压值显示在TFT彩屏上;按S1按键进行采集及存储,再按S1按键暂停采集及存储,按S2键去除SD卡中的内容;按S按键系统进行复位。4.2 设计环境Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。Keil C51软件提供丰富的库函数和功能强大的集成开发调试工

49、具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能表达高级语言的优势。下面介绍Keil C51开发系统各局部功能和使用。Keil C51单片机软件开发系统的整体结构:Uvision 与Ishell分别是C51 for Windows和for Dos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51及A51编译器编译生成目标文件(.OBJ),目标文件可由LIB51创

50、立生成库文文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。 ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。4.3 系统软件设计设计主要在Keil环境下进行编程。4.3.1 SD卡初始化对SD卡进行初始化,初始化的过程中设置SD卡工作在SPI模式,其流程图如图4-1所示。在复位成功之后可以通过CMD55和ACMD41判断当前电压是否在工作范围内。主机还可以继续通过CMD10读取SD卡的CID存放器,通过CMD16设置数据Block长度

51、,通过CMD9读取卡的CSD存放器。从CSD存放器中,主机可获知卡容量,支持的命令集等重要参数。图4-1 SD卡初始化流程图4.3.2 数据块的读写完成SD卡的初始化之后即可进行它的读写操作。SD卡的读写操作都是通过发送SD卡命令完成的。SPI总线模式支持单块(CMD24)和多块(CMD25)写操作,多块操作是指从指定位置开始写下去,直到SD卡收到一个停止命令CMD12才停止。单块写操作的数据块长度只能是512字节。单块写入时,命令为为CMD24,当应答为0时说明可以写入数据,大小为512字节。SD对每个发送给自己的数据块都通过一个应答命令确认,它为1个字节长,当低5位为00101时,说明数据

52、块被正确写入SD卡。可见,读写SD卡的操作都是在初始化后基于SD卡命令和响应完成操作的,写SD卡的程序流程图如图4-2所示。 图4-2写SD卡流程图 写单块1):发送命令CMD24;2):接收R1响应;3):发送Data Tokens (Single Block Write: Oxfe);4):发送一个block(一般为512个字节);5):发送两个CRC16码;6):循环接收数据,等待写完成,直到写完成接收到0 xff。 写多块1):发送命令CMD25;2):接收R1b响应;3):发送Data Tokens (Single Block Write: 0 xfe);4):发送一个block(一

53、般为512个字节;5):发送两个字节CRC16码;6):循环接收数据,等待写完成,直到写完成接收到0 xff;7):重复步骤3,继续发送下一个数据包,直到所有数据包发送完成,至步骤8继续;8):发送命令CMD12,数据传输结束;9:接受R1b相应。在需要读取SD卡中数据的时候,读SD卡的命令字为CMD17,接收正确的第一个响应命令字节为0 xFE,随后是512个字节的用户数据块,最后为2个字节的CRC验证码。读SD卡的程序流程图如图4-3所示。图4-3 读SD卡流程图 读单块l):发送命令CMD17;2):接收R1响应;3):等待Data Tokens (Single Block Read:0

54、 xfe);4):接收一个Block(一般为512个字节);5):接收两个宇节CRC16码。 读多块l):发送命令CMD 17;2):接收R1响应;3):等待Data Tokens (Single Block Read:0 xfe;4):接收一个Block(一般为5121个字节);5):接收两个字节CRC16码;6):重复步骤3,继续接收下一个数据包,直到接收所有数据包完成后,至步骤7继续;7):发送命令CMD12 ,数据传输结束;8):接收R1b响应。4.3.3 定时器T0函数流程图系统要求四个通道每一秒中分别进行一次A/D转换,系统采用24MHz晶振,一个周期0.5us,定时器初值赋值为5

55、0ms,那么1s/(50ms*0.5us)=40,即溢出40次中断一次为1s。具体见流程图4-4所示。图4-4 定时器T0函数流程图结 论设计实现了利用单片机对SD卡进行读写控制的功能,根本到达了设计的目的。根据理论设计,并用计算机编程进行了模拟,制作出了实物并经测试功能完全符合设计要求。本设计应用单片机读写SD卡有两点需要注意。首先,需要寻找一个实现单片机与SD卡通讯的解决方案:SD卡有两个可选的通讯协议:SD模式和SPI模式SD模式是SD卡标准的读写方式,但是在选用SD模式时,往往需要选择带有SD卡控制器接口的MCU,或者必须参加额外的SD卡控制单元以支持SD卡的读写。然而,单片机没有集成

56、SD卡控制器接口,假设选用SD模式通讯就无形中增加了产品的硬件本钱。在SD卡数据读写时间要求不是很严格的情况下,选用SPI模式可以说是一种最正确的解决方案。因为在 SPI模式下,通过四条线就可以完成所有的数据交换,并且目前市场上很多MCU都集成有现成的SPI接口电路,采用SPI模式对SD卡进行读写操作可大大简化硬件电路的设计。设计用SPI总线模式读写SD卡。其次,SD卡所能接受的逻辑电平与单片机提供的逻辑电平不匹配,需要解决电平匹配问题。要解决这一问题,最根本的就是解决逻辑器件接口的电平兼容问题,原那么主要有两条:一为输出电平器件输出高电平的最小电压值,应该大于接收电平器件识别为高电平的最低电

57、压值;另一条为输出电平器件输出低电平的最大电压值,应该小于接收电平器件识别为低电平的最高电压值。谢 辞基于SD卡存储采集数据电路设计终于告一段落了,在此我想对帮助我的老师们和同学们真诚的说声谢谢。论文的研究工作是在许鸣宇老师的悉心指导下完成的。论文的每一步进展都倾注着老师的关心、教导和帮助。老师渊博的知识和丰富的经验使我受益匪浅,此外,陈老师言传身教,不仅使我开拓了视野,增加了知识,更重要的是使我系统的掌握了科学研究的方法和自己动手的能力。在这里,向我的陈老师表示我由衷的谢意!与此同时也非常感谢我的同学在设计过程中给我的帮助和鼓励。最后,还要向所有关心和帮助过我的人致以最衷心的感谢!论文的工作

58、是在我的导师陈锡华教授的悉心指导下完成的,陈教授严谨的治学态度和科学的工作方法给了我极大的帮助和影响。在此衷心感谢陈老师对我的关心和指导。还要向百忙之中抽时间对本文进行审阅,评议和参与本人论文辩论的各位老师表示感谢!参考文献.西安:西安电子科技大学出版社.2021.上海:上海交通大学软件学院.2007.哈尔滨:哈尔滨工程大学信息学院.2021.北京:高等教育出版社.20055 潘新民.北京:电子工业出版社.2006.北京:清华大学出版社.2006.北京:北京航空航天大学出版社.20068 关德新.冯文全.单片机外围器件实用手册电源器件分册M.北京:北京航空航天大学出版社.19989 华成英.模

59、拟电子技术根底(第三版).高等教育出版社.200110 王伟.高性能.低功耗带RAM实时时钟芯片DS1302 上.电子世界:第一期.1995 附 录SD卡程序#include sd.h#include myfun.h /公共函数头文件bit is_init; /在初始化的时候设置此变量为1,同步数据传输SPI会放慢unsigned char bdata _dat;sbit _dat7=_dat7;sbit _dat6=_dat6;sbit _dat5=_dat5;sbit _dat4=_dat4;sbit _dat3=_dat3;sbit _dat2=_dat2;sbit _dat1=_dat

60、1;sbit _dat0=_dat0;/* - 功能描述:IO模拟SPI,发送一个字节 - 隶属模块:SD卡模块 - 函数属性:内部 - 参数说明:x是要发送的字节 - 返回说明:无返回 - 注:其中is_init为1时,写的速度放慢,初始化SD卡SPI速度不能太高 */void SD_spi_write(unsigned char x) _dat=x; SD_SI=_dat7; SD_SCL=0; if(is_init) delay(DELAY_TIME); SD_SCL=1; if(is_init) delay(DELAY_TIME); SD_SI=_dat6; SD_SCL=0; if(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论