1、 1NO:桂林航天工业学院毕业论文题目:SD 卡存储采集数据电路设计i摘 要随着微电子技术的迅猛发展,集成电路组成的电子系统集成度越来越高,使得芯片的复杂性不断上升,单片的成本却不断降低。FPGA 产品的逻辑单元越来越多,性能越来越高,单位成本和功耗向越来越低的方向发展,使得可编程片上系统 SOPC(System On Programmable Chip)设计成为必然趋势。SD 存储卡因具备体积小、储容量高、可擦写、价格低以及非易失性等特点被广泛应用于手机、数码相机、MP3 播放器等领域。针对传统方法中 单片机(MCU )读写 SD 卡数据时需要执行复杂的文件分区表数据操作 的缺点, 以 LE
2、D 护栏管显示屏技术要求为例, 提出了一种单片机主从系统中快速、简单的 SD 卡存储器的访问方法, 并给出了一种实用的 SD 卡与单片机连接的接口电路。采用该方法读取 SD 卡控制数据与存储文件的分区表格式无关, 因此支持FAT32、NTFS、exFAT 等文件格式下从 16MB 32 GB 的 SD 卡。该方法对需从 SD 卡中连续读取控制数据的主、从控制系统均适用, 有很强的实用性。该方法在 LED 护栏管显示屏控制器产品中得到应用, 应用结果表明该系统读取数据稳定, 控制效果良好。论文介绍了 SD 卡存储采集数据电路设计原理、电路以及程序,阐述了基于STC12C5A60S2 芯片主控的
3、DY_mini80E 开发板实现数据的采集和数据的 SD 存储的设计电路过程和实现方法以及运行得到的结果分析。该系统能同时采集四路周期信号波形,并将四路模拟电压(0-5V)进行 A/D 转换,每秒钟转换一次,结果转换为 ASCII 码形式,且四路结果分别存储到 SD 卡预先建立好的 CH1.txt、CH2.txt、CH3.txt、CH4.txt文档中。设计在 STC12C5A60S2 主控芯片的 DY_mini80E 开发板上,利用开发板上 A/D转换模块 PCF8591,外接 SD 接口模块,完成了调试实现。关键词: 数据采集;STC12C5A60S2; SD 卡;iiAbstractEle
4、ctronic systems integration is increasing of Integrated circuit components with the Bureau of the rapid development of microelectronic technology,The rapid development of microelectronic technology and the high integration IC,makes the chip more complexity with lower cost ever than beforWhile FPGA i
5、s being developed in the direction which contents more and more logic elements,with high performance,low cost and low power So, SOPCtechnology becomes all inevitable trendThe Card SD with small size high storage capacityrewritable,low prices,as well as non-volatile and other characteristics have bee
6、n widely used in mobile phones,digital cameras,MP3 players and other fieldsIn order to reduce the difficulty of secure digital memory card operation in microcontroller unit (MCU) system, a simple SD card driven method and interface circuitw as introduced. This method is independent of partition tab
7、le, so it susta insall kinds of SD card and partition formats, including FAT32, NTFS, ex FAT form at from 16MByte to 32 GByte SD card. It can be appropriate for Masterslave control system using SD card. This method was used in LED display controller system. The application results indicate that the
8、system achieves good effec.tThis paper introduces the SD card store data acquisition circuit design principle, circuit and program, this paper expounds the main control based on STC12C5A60S2 chip DY_mini80E development board realize data acquisition and data storage SD circuit design process and the
9、 realization methods and operation result analysis. The system can also collecting four ways of periodic signal waveform, and will be four road simulation voltage (0-5 V) for A/D conversion, every second conversion once, result into ASCII form, and four road respectively to the storage SD card estab
10、lished beforehand good CH1. TXT, CH2. TXT, CH3. TXT, CH4. TXT documents. The design of the main control chip in STC12C5A60S2 DY_mini80E development board, using the developed on board A/D conversion module PCF8591, external SD interface module, completed the debugging realized.Keyword: Data collecti
11、on;STC12C5A60S2; SD card; iii目 录引言 .11 方案论证与选择 .21.1 题目来源 .21.2 研究目的和意义 .21.3 主要研究内容、需重点研究的关键问题及解决思路 .22 SD 卡简介 .42.1 SD 卡的系统概念 .42.1.1 SD 卡的结构 .42.1.2 SD 卡的引脚定义 .52.1.3 SD 卡 SPI 模式工作介绍 .52.2 SD 卡总线介绍 .62.2.1 SD 卡总线 .62.2.2 SPI 总线 .72.2.3 总线协议 .82.3 SD 卡的命令 .92.3.1 SD 卡的命令格式 .92.3.2 SD 卡的命令类型 .93 硬件
12、设计 .113.1 电源模块 .113.2 单片机最小系统 .123.2.1 单片机原理图及其特性 .123.2.2 STC12C5A60S2 系列单片机的内部结构 .143.2.3 单片机 STC12C5A60S2 最小系统的组成 .143.2.4 带 SD 卡的 TFT 彩屏 .174 软件设计 .194.1 软件设计目标 .194.2 Keil 软件简介 .194.3 Keil 软件调试功能 .19iv4.4 系统设计 .204.4.1 系统初始化 .204.4.2 SD 卡初始化 .224.4.3 数据块的读写 .234.4.4 SD 卡存储时间和电压流程图 .244.4.5 定时器
13、T0 函数流程图 .244.4.6 主体程序流程图 .255 结论 .27谢 辞 .28参考文献 .29附 录 .30桂林航天工业学院毕业设计(论文) 第 1 页 共 40 页1引言微电子技术的发展是一个不断创新的过程,这种创新包括理论创新、技术创新和应用的创新,每一种创新都能开拓出一个新的领域,带来新的市场,产生重大的影响。现今对于数据采集系统要求日趋增高,大量的采集数据使得很多采集系统都需要借助外部存储介质进行数据存储,因此对于外部介质存储容量以及传输速度的要求显得尤为突出。SD 卡作为一种基于半导体闪存工艺的存储卡, 1999 年由日本松下、东芝和美国 SanDisk 公司共同研制完成。
14、其体积小、容量大以及数据传输快等优点,是众多电子设备理想的外部存储介质。在众多厂商推动下,SD 卡已成为目前消费数码设备中应用最广泛的一种存储卡。为使采集数据可直接在 PC 上读取、处理,需要使用文件系统组织数据格式,文件系统即操作系统用于明确磁盘或分区上文件的方法和数据结构,是对文件的管理规则,也是操作系统的重要组成部分。而操作系统对处理器要求较高,且占用一定的存储空间,对于许多无法使用嵌入操作系统的处理器,需要自己来实现文件系统在处理器中内嵌文件系统。长期以来,以 Flash Memory 为存储体的 SD 卡因具备体积小、功耗低、可擦写以及非易失性等特点而被广泛应用于消费类电子产品中。特
15、别是近年来,随着价格不断下降且存储容量不断提高,它的应用范围日益增广。当数据采集系统需要长时间地采集、记录海量数据时,选择 SD 卡作为存储媒质是开发者们一个很好的选择。在电能监测以及无功补偿系统中,要连续记录大量的电压、电流、有功功率、无功功率以及时间等参数,当单片机采集到这些数据时可以利用 SD 作为存储媒质。单片机是智能化模块,有数据存储、读写的功能,并且支持汇编和 C 语言编程,在工作电压稳定的条件下可以实现长时间稳定的工作,而且还具有价格低廉的优势。在读写 SD 卡中,单片机比 PC 机更适合在现场长时间工作。而 STC12C5A60S2 系列单片机价格便宜、性能稳定。基于此特点,设
16、计采用 PCF8591 进行 A/D 转换,用 STC12C5A60S2单片机对 SD 卡进行读写操作。桂林航天工业学院毕业设计(论文) 第 2 页 共 40 页21 方案论证与选择1.1 题目来源SD 存储卡在嵌入式产品中应用越来越广泛,但 SD 卡接口一般仅集成以 ARM 为代表的 32 位处理器中,而大量运用的 51 单片机则由于资源限制没有该接口。因此,如何解决 51 单片机应用系统存取 SD 卡大容量数据就显得很有实际意义。1.2 研究目的和意义目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处
17、理能力的中央处理器 CPU 随机存储器 RAM、只读存储器 ROM、多种 I/O 口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D 转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。 51 单片机是基础入门的一个单片机,还是应用最广泛的一种。SD 卡(Secure Digital Memory Card)中文翻译为安全数码卡,是一种基于半导体快闪记忆器的新一代记忆设备,它被广泛地于便携式装置上使用,例如数码相机、个人数码助理(PDA)和多媒体播放器等。SD 卡由日本松下、东芝及美国 SanDisk 公司于1999 年 8 月共同开发研
18、制。大小犹如一张邮票的 SD 记忆卡,重量只有 2 克,但却拥有高记忆容量、快速数据传输率、极大的移动灵活性以及很好的安全性。本设计是通过对 51 单片机与 SD 卡的驱动接口进行设计,实现普通单片机对大量数据的转存。1.3 主要研究内容、需重点研究的关键问题及解决思路设计研究的是 SD 卡与单片机的驱动接口设计,因此首要的任务是寻找一个实现AT89C52 单片机与 SD 卡通讯的解决方案;其次,SD 卡所能接受的逻辑电平与AT89C52 提供的逻辑电平不匹配,需要解决电平匹配问题。SD 卡有两个可选的通讯协议:SD 模式和 SPI 模式。SD 模式需要选择带有 SD 卡控制器接口的 MCU,
19、或者必须加入额外的 SD 卡控制单元以支持 SD 卡的读写。桂林航天工业学院毕业设计(论文) 第 3 页 共 40 页3AT89C52 单片机没有集成 SD 卡控制器接口,若选用 SD 模式通讯就无形中增加了产品的硬件成本。在 SD 卡数据读写时间要求不是很严格的情况下,选用 SPI 模式可以说是一种最佳的解决方案。因为在 SPI 模式下,通过四条线就可以完成所有的数据交换,并且目前市场上很多 MCU 都集成有现成的 SPI 接口电路,采用 SPI 模式对 SD 卡进行读写操作可大大简化硬件电路的设计。虽然 AT89C52 不带 SD 卡硬件控制器,也没有现成的 SPI 接口模块,但是可以用软
20、件模拟出 SPI 总线时序。SD 卡的逻辑电平相当于 3.3V TTL 电平标准,而控制芯片 AT89C52 的逻辑电平为5V CMOS 电平标准。要解决这一问题,最根本的就是解决逻辑器件接口的电平兼容问题,原则主要有两条:一为输出电平器件输出高电平的最小电压值,应该大于接收电平器件识别为高电平的最低电压值;另一条为输出电平器件输出低电平的最大电压值,应该小于接收电平器件识别为低电平的最高电压值。考虑到 SD 卡在 SPI 协议的工作模式下,通讯都是单向的,于是在单片机向 SD 卡传输数据时采用晶体管加上拉电阻法的方案。而在 SD 卡向单片机传输数据时可以直接连接,因为它们之间的电平刚好满足上
21、述的电平兼容原则,既经济又实用。其次是硬件平台和软件平台的选择,包括单片机和 SD 卡选型、编程语言、软件开发工具、软件仿真工具等。根据实际情况,本课题使用的是 AT89C52 单片机,SD 卡为SanDisk 公司的 2G 卡,编程语言为 C 语言,Keil +Proteus 用于程序代码的编辑、编译及系统仿真。桂林航天工业学院毕业设计(论文) 第 4 页 共 40 页42 SD 卡简介2.1 SD 卡的系统概念2.1.1 SD 卡的结构SD 卡的外形与接口如图 2.1,它有 9 个接点与主机相连,其接口端定义如表 2.1所示。SD 卡有两种操作模式,一种是 SD 模式,另一种是 SPI 模
22、式,不同模式下端口的定义不同。SD 模式有一个时钟线、一个命令/反馈线、四根输入/输出信号线、两个电源地和一个电源,所有九根线都有定义,数据传输速率较快。SPI 模式只用到 CS 片选、数据输入、数据输出、时钟、电源地及电源六根线。SPI 模式较 SD 模式速度较慢,但很多单片机都有专用的 SPI 总线,可与 SD 卡直接相连,使用方便。SD 卡的内部结构如图 2.2 所示,主要有四部分组成,一是接口电路,共有九个接口电路,定义如表 1 所示。二是接口控制电路,所有操作都由该控制电路具体去执行。三是内部寄存器组 OCR、CID、RCA 等。四是存储数据的存储单元。接口电路通过控制电路与内部寄存
23、器组成存储单元交换数据,其主要操作有写命令、读数据、写数据、读状态等。 图2.1 SD卡的外形与接口 图2.2 SD卡的内部结构桂林航天工业学院毕业设计(论文) 第 5 页 共 40 页52.1.2 SD 卡的引脚定义SD 卡的引脚定义见表 2.1表2.1 SD卡引脚功能详述SD 模式 SPI 模式引脚编号 名称 类型 描述 名称 类型 描述1 CD/DAT3 IO 或 PP 卡检测/数据线 3 #CS I 片选2 CMD PP 命令/回应 DI I 数据输入3 VSS1 S 电源地 VSS S 电源地4 VDD S 电源 VDD S 电源5 CLK I 时钟 SCLK I 时钟6 VSS2 S 电源地 VSS2 S 电源地7 DAT0 IO 或 PP 数据线 0 DO O 或 PP 数据输出8 DAT1 IO 或 PP 数据线 1 RSV9 DAT2 IO 或 PP 数据线 2 RSV注:S:电源供给;I:输入;O:采用推拉驱动的输出;PP:采用推拉驱动的输入输出。2.1.3 SD 卡 SPI 模式工作介绍(1)SD 卡 SPI 模式下与单片机的连接图如图 2.3