SD卡存储采集数据电路设计毕业设计论文说明书.docx
《SD卡存储采集数据电路设计毕业设计论文说明书.docx》由会员分享,可在线阅读,更多相关《SD卡存储采集数据电路设计毕业设计论文说明书.docx(57页珍藏版)》请在冰豆网上搜索。
SD卡存储采集数据电路设计毕业设计论文说明书
NO:
桂林航天工业学院
毕业论文
题目:
SD卡存储采集数据电路设计
摘要
随着微电子技术的迅猛发展,集成电路组成的电子系统集成度越来越高,使得芯片的复杂性不断上升,单片的成本却不断降低。
FPGA产品的逻辑单元越来越多,性能越来越高,单位成本和功耗向越来越低的方向发展,使得可编程片上系统SOPC(SystemOnProgrammableChip)设计成为必然趋势。
SD存储卡因具备体积小、储容量高、可擦写、价格低以及非易失性等特点被广泛应用于手机、数码相机、MP3播放器等领域。
针对传统方法中单片机(MCU)读写SD卡数据时需要执行复杂的文件分区表数据操作的缺点,以LED护栏管显示屏技术要求为例,提出了一种单片机主从系统中快速、简单的SD卡存储器的访问方法,并给出了一种实用的SD卡与单片机连接的接口电路。
采用该方法读取SD卡控制数据与存储文件的分区表格式无关,因此支持FAT32、NTFS、exFAT等文件格式下从16MB~32GB的SD卡。
该方法对需从SD卡中连续读取控制数据的主、从控制系统均适用,有很强的实用性。
该方法在LED护栏管显示屏控制器产品中得到应用,应用结果表明该系统读取数据稳定,控制效果良好。
论文介绍了SD卡存储采集数据电路设计原理、电路以及程序,阐述了基于STC12C5A60S2芯片主控的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卡;
Abstract
ElectronicsystemsintegrationisincreasingofIntegratedcircuitcomponentswiththeBureauoftherapiddevelopmentofmicroelectronictechnology,TherapiddevelopmentofmicroelectronictechnologyandthehighintegrationIC,makesthechipmorecomplexitywithlowercosteverthanbefor.WhileFPGAisbeingdevelopedinthedirectionwhichcontentsmoreandmorelogicelements,withhighperformance,lowcostandlowpower.So,SOPC
technologybecomesallinevitabletrend.TheCardSDwithsmallsizehighstoragecapacity.rewritable,lowprices,aswellasnon-volatileandothercharacteristicshavebeenwidelyusedinmobilephones,digitalcameras,MP3playersandotherfields.
Inordertoreducethedifficultyofsecuredigitalmemorycardoperationinmicrocontrollerunit(MCU)system,asimpleSDcarddrivenmethodandinterfacecircuitwasintroduced.Thismethodisindependentofpartitiontable,soitsustainsallkindsofSDcardandpartitionformats,includingFAT32,NTFS,exFATformatfrom16MByteto32GByteSDcard.ItcanbeappropriateforMasterslavecontrolsystemusingSDcard.ThismethodwasusedinLEDdisplaycontrollersystem.Theapplicationresultsindicatethatthesystemachievesgoodeffec.t
ThispaperintroducestheSDcardstoredataacquisitioncircuitdesignprinciple,circuitandprogram,thispaperexpoundsthemaincontrolbasedonSTC12C5A60S2chipDY_mini80EdevelopmentboardrealizedataacquisitionanddatastorageSDcircuitdesignprocessandtherealizationmethodsandoperationresultanalysis.Thesystemcanalsocollectingfourwaysofperiodicsignalwaveform,andwillbefourroadsimulationvoltage(0-5V)forA/Dconversion,everysecondconversiononce,resultintoASCIIform,andfourroadrespectivelytothestorageSDcardestablishedbeforehandgoodCH1.TXT,CH2.TXT,CH3.TXT,CH4.TXTdocuments.ThedesignofthemaincontrolchipinSTC12C5A60S2DY_mini80Edevelopmentboard,usingthedevelopedonboardA/DconversionmodulePCF8591,externalSDinterfacemodule,completedthedebuggingrealized.
Keyword:
Datacollection;STC12C5A60S2;SDcard;
引言
微电子技术的发展是一个不断创新的过程,这种创新包括理论创新、技术创新和应用的创新,每一种创新都能开拓出一个新的领域,带来新的市场,产生重大的影响。
现今对于数据采集系统要求日趋增高,大量的采集数据使得很多采集系统都需要借助外部存储介质进行数据存储,因此对于外部介质存储容量以及传输速度的要求显得尤为突出。
SD卡作为一种基于半导体闪存工艺的存储卡,1999年由日本松下、东芝和美国SanDisk公司共同研制完成。
其体积小、容量大以及数据传输快等优点,是众多电子设备理想的外部存储介质。
在众多厂商推动下,SD卡已成为目前消费数码设备中应用最广泛的一种存储卡。
为使采集数据可直接在PC上读取、处理,需要使用文件系统组织数据格式,文件系统即操作系统用于明确磁盘或分区上文件的方法和数据结构,是对文件的管理规则,也是操作系统的重要组成部分。
而操作系统对处理器要求较高,且占用一定的存储空间,对于许多无法使用嵌入操作系统的处理器,需要自己来实现文件系统———在处理器中内嵌文件系统。
长期以来,以FlashMemory为存储体的SD卡因具备体积小、功耗低、可擦写以及非易失性等特点而被广泛应用于消费类电子产品中。
特别是近年来,随着价格不断下降且存储容量不断提高,它的应用范围日益增广。
当数据采集系统需要长时间地采集、记录海量数据时,选择SD卡作为存储媒质是开发者们一个很好的选择。
在电能监测以及无功补偿系统中,要连续记录大量的电压、电流、有功功率、无功功率以及时间等参数,当单片机采集到这些数据时可以利用SD作为存储媒质。
单片机是智能化模块,有数据存储、读写的功能,并且支持汇编和C语言编程,在工作电压稳定的条件下可以实现长时间稳定的工作,而且还具有价格低廉的优势。
在读写SD卡中,单片机比PC机更适合在现场长时间工作。
而STC12C5A60S2系列单片机价格便宜、性能稳定。
基于此特点,设计采用PCF8591进行A/D转换,用STC12C5A60S2单片机对SD卡进行读写操作。
1方案论证与选择
1.1题目来源
SD存储卡在嵌入式产品中应用越来越广泛,但SD卡接口一般仅集成以ARM为代表的32位处理器中,而大量运用的51单片机则由于资源限制没有该接口。
因此,如何解决51单片机应用系统存取SD卡大容量数据就显得很有实际意义。
1.2研究目的和意义
目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。
单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。
51单片机是基础入门的一个单片机,还是应用最广泛的一种。
SD卡(SecureDigitalMemoryCard)中文翻译为安全数码卡,是一种基于半导体快闪记忆器的新一代记忆设备,它被广泛地于便携式装置上使用,例如数码相机、个人数码助理(PDA)和多媒体播放器等。
SD卡由日本松下、东芝及美国SanDisk公司于1999年8月共同开发研制。
大小犹如一张邮票的SD记忆卡,重量只有2克,但却拥有高记忆容量、快速数据传输率、极大的移动灵活性以及很好的安全性。
本设计是通过对51单片机与SD卡的驱动接口进行设计,实现普通单片机对大量数据的转存。
1.3主要研究内容、需重点研究的关键问题及解决思路
设计研究的是SD卡与单片机的驱动接口设计,因此首要的任务是寻找一个实现AT89C52单片机与SD卡通讯的解决方案;其次,SD卡所能接受的逻辑电平与AT89C52提供的逻辑电平不匹配,需要解决电平匹配问题。
SD卡有两个可选的通讯协议:
SD模式和SPI模式。
SD模式需要选择带有SD卡控制器接口的MCU,或者必须加入额外的SD卡控制单元以支持SD卡的读写。
AT89C52单片机没有集成SD卡控制器接口,若选用SD模式通讯就无形中增加了产品的硬件成本。
在SD卡数据读写时间要求不是很严格的情况下,选用SPI模式可以说是一种最佳的解决方案。
因为在SPI模式下,通过四条线就可以完成所有的数据交换,并且目前市场上很多MCU都集成有现成的SPI接口电路,采用SPI模式对SD卡进行读写操作可大大简化硬件电路的设计。
虽然AT89C52不带SD卡硬件控制器,也没有现成的SPI接口模块,但是可以用软件模拟出SPI总线时序。
SD卡的逻辑电平相当于3.3VTTL电平标准,而控制芯片AT89C52的逻辑电平为5VCMOS电平标准。
要解决这一问题,最根本的就是解决逻辑器件接口的电平兼容问题,原则主要有两条:
一为输出电平器件输出高电平的最小电压值,应该大于接收电平器件识别为高电平的最低电压值;另一条为输出电平器件输出低电平的最大电压值,应该小于接收电平器件识别为低电平的最高电压值。
考虑到SD卡在SPI协议的工作模式下,通讯都是单向的,于是在单片机向SD卡传输数据时采用晶体管加上拉电阻法的方案。
而在SD卡向单片机传输数据时可以直接连接,因为它们之间的电平刚好满足上述的电平兼容原则,既经济又实用。
其次是硬件平台和软件平台的选择,包括单片机和SD卡选型、编程语言、软件开发工具、软件仿真工具等。
根据实际情况,本课题使用的是AT89C52单片机,SD卡为SanDisk公司的2G卡,编程语言为C语言,Keil+Proteus用于程序代码的编辑、编译及系统仿真。
2SD卡简介
2.1SD卡的系统概念
2.1.1SD卡的结构
SD卡的外形与接口如图2.1,它有9个接点与主机相连,其接口端定义如表2.1所示。
SD卡有两种操作模式,一种是SD模式,另一种是SPI模式,不同模式下端口的定义不同。
SD模式有一个时钟线、一个命令/反馈线、四根输入/输出信号线、两个电源地和一个电源,所有九根线都有定义,数据传输速率较快。
SPI模式只用到CS片选、数据输入、数据输出、时钟、电源地及电源六根线。
SPI模式较SD模式速度较慢,但很多单片机都有专用的SPI总线,可与SD卡直接相连,使用方便。
SD卡的内部结构如图2.2所示,主要有四部分组成,一是接口电路,共有九个接口电路,定义如表1所示。
二是接口控制电路,所有操作都由该控制电路具体去执行。
三是内部寄存器组OCR、CID、RCA等。
四是存储数据的存储单元。
接口电路通过控制电路与内部寄存器组成存储单元交换数据,其主要操作有写命令、读数据、写数据、读状态等。
图2.1SD卡的外形与接口图2.2SD卡的内部结构
2.1.2SD卡的引脚定义
SD卡的引脚定义见表2.1
表2.1SD卡引脚功能详述
引脚
编号
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
RSV
9
DAT2
IO或PP
数据线2
RSV
注:
S:
电源供给;I:
输入;O:
采用推拉驱动的输出;PP:
采用推拉驱动的输入输出。
2.1.3SD卡SPI模式工作介绍
(1)SD卡SPI模式下与单片机的连接图如图2.3
图2.3SD卡SPI模式下与单片机连接图
SD卡支持两种总线方式:
SD方式与SPI方式。
其中SD方式采用6线制,使用CLK、CMD、DAT0~DAT3进行数据通信。
而SPI方式采用4线制,使用CS、CLK、DataIn、DataOut进行数据通信。
SD方式时的数据传输速度与SPI方式要快,采用单片机对SD卡进行读写时一般都采用SPI模式。
采用不同的初始化方式可以使SD卡工作于SD方式或SPI方式。
这里只对其SPI方式进行介绍。
(2)SPI方式驱动SD卡的方法
SD卡的SPI通信接口使其可以通过SPI通道进行数据读写。
从应用的角度来看,采用SPI接口的好处在于,很多单片机内部自带SPI控制器,不光给开发上带来方便,同时也见降低了开发成本。
然而,它也有不好的地方,如失去了SD卡的性能优势,要解决这一问题,就要用SD方式,因为它提供更大的总线数据带宽。
SPI接口的选用是在上电初始时向其写入第一个命令时进行的。
以下介绍SD卡的驱动方法,只实现简单的扇区读写。
2.2SD卡总线介绍
SD存储卡定义了两种可选择的总线协议,分别是SD和SPI。
与SD卡通信的主机一方可以透明地选择与SD的通信模式。
2.2.1SD卡总线
SD总线包括以下的信号:
CLK:
主机与卡之间的同步时钟;CMD:
双向的命令/反馈信号;
DATo~DAT3:
4位双向的数据传输线;
VDD,Vss1,Vss2:
电源和地信号。
通过同步星型拓扑,SD总线可以接一个主SD卡,或者多个从SD卡。
时钟、电源和地信号是所有卡公用的。
主机和每张SD卡的CMD、DAT0~DAT3信号连线必须点对点的进行连接。
SD总线连接图如图2.4所示。
图2.4SD总线连接图
2.2.2SPI总线
兼容SD卡的SPI通信模式是一种通过SPI信道访问SD卡的方式。
SPI标准仅仅定义了物理连接方式,并未包括完整的数据传输协议。
SD卡的SPI总线实现方式使用了和SD总线相同的命令集。
从应用的角度来看,使用SPI总线模式的好处是它对主机的性能要求降至最低,另一方面,它也为产品设计成最小化作出了努力。
它的不利之处是降低了系统的性能,也没有SD总线那样更多的连接选项。
一般而言,兼容SD卡的SPI总线包含以下信号。
.CS:
主机到卡芯片之间的片选信号;CLK:
主机与卡之间的同步时钟;Dataln:
主机到卡之间的数据输入信号;DataOut:
主机到卡之间的数据输出信号。
图2.5是SPI总线连接图。
图2.5SPI总线连接
2.2.3总线协议
(1)SD总线协议
SD总线上的通信是以命令帧、反馈帧和数据帧进行的,这几种帧格式都包含起始位和停止位。
>命令帧:
命令帧用来传输一个操作命令的令牌。
>反馈帧:
反馈帧是从地址卡或者所有的连接卡发送给主机的作为对以前接收到的命令帧做出应答的令牌。
>数据帧:
数据帧用来在卡和主机之间进行真正有用的数据传输。
数据是通过数据链路进行传输的。
SD总线协议的数据传输是以数据块的方式进行的。
数据块之后通常跟着CRC校验码。
在协议中定义了数据传输的方式可以是单块和多块传输。
多块传输在进行写卡操作时的速度比单块传输快得多。
多块传输会在CMD线路上出现一个停止命令帧时中断传输。
写操作和读操作在时序上的不同在于数据线路DAT0上多了一个写操作忙的信号。
(2)SPI总线
虽然SD通道是面向有起止位的控制帧和数据流格式的传输,但是SPI通道是面向字节的传输。
SPI的命令和数据块都是按8个比特为单位进行分组的,和SD协议相似,SPI的信息也分为控制帧、反馈帧和数据帧,所有主机和卡之间的通信都被主机进行控制,主机通过拉低CS信号以开始一个总线事务。
SPI的反馈方式和SD协议相比有以下3个方面的不同。
>被选中的卡必须时刻对命令帧做出响应;
>使用两种新的响应结构(8位或16位);
>当卡获取数据出问题时,它将发出一个出错反馈帧通知主机,而不是使用超时检测的方式。
除了需要对命令帧做出反馈之外,在进行写卡操作期间,还需要对每一个发送到卡的数据块发一个特别的数据反馈令牌。
一个合法的数据块的结尾应当包括16位的CRC校验部分,CRC校验值是按照标准的CCITT的x的16次方+X的12次方+X的5次方+1产生的。
一旦数据读取出现错误,卡就不再传输数据,取而代之的是发送一个数据出错令牌给主机。
在SPI模式中也支持单块和多块的数据写命令。
卡从主机端接收到一个数据块之后,它就会发一个数据响应令牌给主机,如果接收的数据经校验无错,就把数据写入卡的存储介质中。
如果卡正在忙于往存储介质中写数据时,它会持续发一个“工作忙”的令牌给主机。
2.3SD卡的命令
2.3.1SD卡的命令格式
SD卡的命令格式固定为6个字节48个位,其格式如图2.6所示。
图2.6SD卡命令格式
开始位固定为0,第二位固定为1,表示主机给SD卡的命令,然后是6位命令索引号,索引号的大小与索引号数字相同,比如CMD0的索引号为000000,索引号41为101001。
紧接着命令索引号是命令参数,有些命令有参数,有些命令没有参数,比如CMD0和CMD1命令参数为32个0,而命令CMD24、CMD17的命令参数是数据的读写地址。
最后是7位CRC校验位和一位停止位1。
根据命令索引号可推知SD卡的命令最多不超过64个(有些命令索引号为保留以后升级用,没有实际的命令相对应),SD卡协议把卡的命令分为若干类,有些命令只有对SD模式起作用,有些命令只对SPI模式起作用,大部分命令是通用的,两种模式下具有相同的命令。
2.3.2SD卡的命令类型
(1)命令类型
控制SD卡有4种类型的命令:
广播命令,无响应。
广播命令的特点是如果所有的CMD线与主机连接到一起。
如果把它们分开,那么每张卡将在轮到它的时候单独接收。
②有响应的广播命令。
从所有卡来的响应是同时的。
但是在SD卡里没有开漏模式,这个类型命令只可以使用在所有的CMD线是分开的情况下。
这个命令将被所有的卡单独接受并响应。
③在DAT上没有数据传输的定址(点对点)命令。
④在DAT上有数据传输的定址命令。
所有的命令和响应都在CMD线上进行。
命令传送总是从左边的位开始。
(2)SD卡命令集:
SD卡命令共分为12类,分别为class0到classⅡ,不同的SD卡,主控根据其功能,支持不同的命令集如下:
C1ass0:
(卡的识别、初始化等基本命令集):
CMD0:
复位SD卡。
CMD1:
读OCR寄存器。
CMD9:
读CSD寄存器。
CMD10:
读CTD寄存器。
CMD12:
停止读多块时的数据传输。
CMD13:
读CardesStatus寄存器。
Class2(读卡命令集):
CMD16:
设置块的长度。
CMD17:
读单块。
CMD18:
读多块,直至主机发送CMD12为止。
Class4(写卡命令集):
CMD24:
写单块。
CMD25:
写多块。
CMD27:
写CSD寄存器。
Class5(擦除卡命令集):
CMD32:
设置擦除块的起始地址.
CMD33:
设置擦除块的终止地址。
CMD38:
擦除所选择的块。
Class6(写保护命令集):
CMD28:
设置写保护块的地址。
CMD29:
擦除写保护块的地址。
CMD30:
Askthecardforthestatusofthemiteprotectionbits。
Class7:
卡的锁定,解锁功能命令集。
class8:
申请特定命令集。
classl0和class11:
保留。
其中class1,class3,class9的SPI模式不支持。
3硬件设计
系统整体硬件方案分为三个部分:
电源部分、单片机STC12C5A60S2主控芯片的DY_mini80E开发板的选择部分(包括信号采集、A/D转换等)、带SD卡的TFT彩屏的选择部分(包括SD卡工作电路部分等)。
设计在Keil编程环境下,建立工程,编写程序,然后将程序下载到单片机中,同时复位单片机,然后调节DY_mini80E开发板上的四路电位器采集不同的电压信号(四路电压范围均0V-5V),按动采集键后,信号开始采集,每秒钟各通道进行一次A/D转换,并对数据进行处理后由单片机控制分别存入带SD卡的TFT彩屏的SD卡的相应文档中。
并用TFT彩屏显示经过A/D转换后的四路实时电压,用以观察采集数据的变化。
3.1电源模块
SD卡的工作电平为3.3V,而控制芯片STC12C5A60S2的逻辑电平为5VCMOS电平标准。
因此,它们之间不能直接相连