卡存储采集数据电路设计毕业设计_第1页
卡存储采集数据电路设计毕业设计_第2页
卡存储采集数据电路设计毕业设计_第3页
卡存储采集数据电路设计毕业设计_第4页
卡存储采集数据电路设计毕业设计_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

1、NO:桂林航天工业学院毕业论文题目:SD卡存储采集数据电路设计专业:电子信息工程技术姓名:李强 学号:201004520330指导教师:陈锡华 2013年06月10日 摘 要随着微电子技术的迅猛发展,集成电路组成的电子系统集成度越来越高,使得芯片的复杂性不断上升,单片的成本却不断降低。FPGA产品的逻辑单元越来越多,性能越来越高,单位成本和功耗向越来越低的方向发展,使得可编程片上系统SOPC(System OnProgrammable Chip)设计成为必然趋势。SD存储卡因具备体积小、储容量高、可擦写、价格低以及非易失性等特点被广泛应用于手机、数码相机、MP3播放器等领域。针对传统方法中&#

2、1048577;单片机(MCU )读写SD卡数据时需要执行复杂的文件分区表数据操作􀀁的缺点, 以LED护栏管显示屏技术要求为例, 提出了一种单片机主从系统中快速、简单的SD卡存储器的访问方法, 并给出了一种实用的SD卡与单片机连接的接口电路。采用该方法读取SD卡控制数据与存储文件的分区表格式无关, 因此支持FAT32、NTFS、exFAT等文件格式下从16MB 32 GB的SD卡。该方法对需从SD卡中连续读取控制数据的主、从控制系统均适用, 有很强的实用性。该方法在LED护栏管显示屏控制器产品中得到应用, 应用结果表明该系统读取数据稳定, 控制效果良好。论文介绍了SD卡存储采

3、集数据电路设计原理、电路以及程序,阐述了基于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

4、;SD卡;AbstractElectronic 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 b

5、eforWhile FPGA is being developed in the direction which contents more and more logic elements,with high performance,low cost and low powerSo,SOPCtechnology becomes all inevitable trendThe Card SD with small size high storage capacityrewritable,low prices,as well as non-volatile and other characteri

6、stics have been 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

7、partition tab le, so it susta insall kinds of SD card and partition formats, including FAT32, NTFS, ex FAT form at from 16MByte to 32 GByteSD card. It can be appropriate for Masterslave control system using SD card. This method was used in LED display controller system. The application results indic

8、ate that the 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 pr

9、ocess and the 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

10、SD card established 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:D

11、ata collection;STC12C5A60S2; SD card; 目录引言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 硬件设计113.1 电源模块113.2 单片机最小系统12单片机原理图及其特性123

12、.2.2 STC12C5A60S2系列单片机的内部结构143.2.3 单片机STC12C5A60S2最小系统的组成143.2.4 带SD卡的TFT彩屏174 软件设计194.1软件设计目标194.2 Keil软件简介194.3 Keil软件调试功能194.4 系统设计20系统初始化204.4.2 SD卡初始化224.4.3 数据块的读写234.4.4 SD卡存储时间和电压流程图24定时器T0函数流程图24主体程序流程图255 结论27谢辞28参考文献29附录30引言微电子技术的发展是一个不断创新的过程,这种创新包括理论创新、技术创新和应用的创新,每一种创新都能开拓出一个新的领域,带来新的市场,

13、产生重大的影响。现今对于数据采集系统要求日趋增高,大量的采集数据使得很多采集系统都需要借助外部存储介质进行数据存储,因此对于外部介质存储容量以及传输速度的要求显得尤为突出。SD 卡作为一种基于半导体闪存工艺的存储卡, 1999 年由日本松下、东芝和美国SanDisk 公司共同研制完成。其体积小、容量大以及数据传输快等优点,是众多电子设备理想的外部存储介质。在众多厂商推动下,SD 卡已成为目前消费数码设备中应用最广泛的一种存储卡。为使采集数据可直接在PC 上读取、处理,需要使用文件系统组织数据格式,文件系统即操作系统用于明确磁盘或分区上文件的方法和数据结构,是对文件的管理规则,也是操作系统的重要

14、组成部分。而操作系统对处理器要求较高,且占用一定的存储空间,对于许多无法使用嵌入操作系统的处理器,需要自己来实现文件系统在处理器中内嵌文件系统。长期以来,以Flash Memory 为存储体的SD 卡因具备体积小、功耗低、可擦写以及非易失性等特点而被广泛应用于消费类电子产品中。特别是近年来,随着价格不断下降且存储容量不断提高,它的应用范围日益增广。当数据采集系统需要长时间地采集、记录海量数据时,选择SD 卡作为存储媒质是开发者们一个很好的选择。在电能监测以及无功补偿系统中,要连续记录大量的电压、电流、有功功率、无功功率以及时间等参数,当单片机采集到这些数据时可以利用SD 作为存储媒质。单片机是

15、智能化模块,有数据存储、读写的功能,并且支持汇编和C语言编程,在工作电压稳定的条件下可以实现长时间稳定的工作,而且还具有价格低廉的优势。在读写SD卡中,单片机比PC机更适合在现场长时间工作。而STC12C5A60S2系列单片机价格便宜、性能稳定。基于此特点,设计采用PCF8591进行A/D转换,用STC12C5A60S2单片机对SD卡进行读写操作。1方案论证与选择1.1 题目来源SD存储卡在嵌入式产品中应用越来越广泛,但SD卡接口一般仅集成以ARM为代表的32位处理器中,而大量运用的51单片机则由于资源限制没有该接口。因此,如何解决51单片机应用系统存取SD卡大容量数据就显得很有实际意义。1.

16、2研究目的和意义目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。51单片机是基础入门的一个单片机,还是应用最广泛的一种。SD卡(Secure Digital Memory Card)中文翻译为安全数码卡,是一种基于半导体快闪记忆器的新一代记忆设备,它被广泛地于便携式装置上使用,例

17、如数码相机、个人数码助理(PDA)和多媒体播放器等。SD卡由日本松下、东芝及美国SanDisk公司于1999年8月共同开发研制。大小犹如一张邮票的SD记忆卡,重量只有2克,但却拥有高记忆容量、快速数据传输率、极大的移动灵活性以及很好的安全性。本设计是通过对51单片机与SD卡的驱动接口进行设计,实现普通单片机对大量数据的转存。1.3 主要研究内容、需重点研究的关键问题及解决思路设计研究的是SD卡与单片机的驱动接口设计,因此首要的任务是寻找一个实现AT89C52单片机与SD卡通讯的解决方案;其次,SD卡所能接受的逻辑电平与AT89C52提供的逻辑电平不匹配,需要解决电平匹配问题。SD卡有两个可选的

18、通讯协议:SD模式和SPI模式。SD模式需要选择带有SD卡控制器接口的MCU,或者必须加入额外的SD卡控制单元以支持SD卡的读写。AT89C52单片机没有集成SD卡控制器接口,若选用SD模式通讯就无形中增加了产品的硬件成本。在SD卡数据读写时间要求不是很严格的情况下,选用SPI模式可以说是一种最佳的解决方案。因为在SPI模式下,通过四条线就可以完成所有的数据交换,并且目前市场上很多MCU都集成有现成的SPI接口电路,采用SPI模式对SD卡进行读写操作可大大简化硬件电路的设计。虽然AT89C52不带SD卡硬件控制器,也没有现成的SPI接口模块,但是可以用软件模拟出SPI总线时序。SD卡的逻辑电平

19、相当于3.3V TTL电平标准,而控制芯片AT89C52的逻辑电平为5V CMOS电平标准。要解决这一问题,最根本的就是解决逻辑器件接口的电平兼容问题,原则主要有两条:一为输出电平器件输出高电平的最小电压值,应该大于接收电平器件识别为高电平的最低电压值;另一条为输出电平器件输出低电平的最大电压值,应该小于接收电平器件识别为低电平的最高电压值。考虑到SD卡在SPI协议的工作模式下,通讯都是单向的,于是在单片机向SD卡传输数据时采用晶体管加上拉电阻法的方案。而在SD卡向单片机传输数据时可以直接连接,因为它们之间的电平刚好满足上述的电平兼容原则,既经济又实用。其次是硬件平台和软件平台的选择,包括单片

20、机和SD卡选型、编程语言、软件开发工具、软件仿真工具等。根据实际情况,本课题使用的是AT89C52单片机,SD卡为SanDisk公司的2G卡,编程语言为C语言,Keil +Proteus用于程序代码的编辑、编译及系统仿真。2 SD卡简介2.1 SD卡的系统概念 SD卡的结构SD卡的外形与接口如图2.1,它有9个接点与主机相连,其接口端定义如表2.1所示。SD卡有两种操作模式,一种是SD模式,另一种是SPI模式,不同模式下端口的定义不同。SD模式有一个时钟线、一个命令/反馈线、四根输入/输出信号线、两个电源地和一个电源,所有九根线都有定义,数据传输速率较快。SPI模式只用到CS片选、数据输入、数

21、据输出、时钟、电源地及电源六根线。SPI模式较SD模式速度较慢,但很多单片机都有专用的SPI总线,可与SD卡直接相连,使用方便。SD卡的内部结构如图2.2所示,主要有四部分组成,一是接口电路,共有九个接口电路,定义如表1所示。二是接口控制电路,所有操作都由该控制电路具体去执行。三是内部寄存器组OCR、CID、RCA等。四是存储数据的存储单元。接口电路通过控制电路与内部寄存器组成存储单元交换数据,其主要操作有写命令、读数据、写数据、读状态等。 图2.1 SD卡的外形与接口 图2.2 SD卡的内部结构SD卡的引脚定义SD卡的引脚定义见表2.1表2.1 SD卡引脚功能详述引脚编号SD模式 

22、       SPI模式名称类型描述名称类型描述1CD/DAT3IO或PP卡检测/数据线3#CSI片选2CMDPP命令/回应DII数据输入3VSS1S电源地VSSS电源地4VDDS电源VDDS电源5CLKI时钟SCLKI时钟6VSS2S电源地VSS2S电源地7DAT0IO或PP数据线0DOO或PP数据输出8DAT1IO或PP数据线1RSV 9DAT2IO或PP数据线2RSV注:S:电源供给;I:输入;O:采用推拉驱动的输出;PP:采用推拉驱动的输入输出。SD卡SPI模式工作介绍(1)SD卡SPI模式下与单片机的连接图如图2.

23、3图2.3 SD卡SPI模式下与单片机连接图SD卡支持两种总线方式:SD方式与SPI方式。其中SD方式采用6线制,使用CLK、CMD、DAT0DAT3进行数据通信。而SPI方式采用4线制,使用CS、CLK、DataIn、DataOut进行数据通信。SD方式时的数据传输速度与SPI方式要快,采用单片机对SD卡进行读写时一般都采用SPI模式。采用不同的初始化方式可以使SD卡工作于SD方式或SPI方式。这里只对其SPI方式进行介绍。(2)SPI方式驱动SD卡的方法 SD卡的SPI通信接口使其可以通过SPI通道进行数据读写。从应用的角度来看,采用SPI接口的好处在于,很多单片机内部自带SPI控制器,不

24、光给开发上带来方便,同时也见降低了开发成本。然而,它也有不好的地方,如失去了SD卡的性能优势,要解决这一问题,就要用SD方式,因为它提供更大的总线数据带宽。SPI接口的选用是在上电初始时向其写入第一个命令时进行的。以下介绍SD卡的驱动方法,只实现简单的扇区读写。2.2 SD卡总线介绍SD存储卡定义了两种可选择的总线协议,分别是SD和SPI。与SD卡通信的主机一方可以透明地选择与SD的通信模式。 SD卡总线SD总线包括以下的信号:CLK:主机与卡之间的同步时钟;CMD:双向的命令反馈信号;DAToDAT3:4位双向的数据传输线;VDD,Vss1,Vss2:电源和地信号。通过同步星型拓扑,SD总线

25、可以接一个主SD卡,或者多个从SD卡。时钟、电源和地信号是所有卡公用的。主机和每张SD卡的CMD、DAT0DAT3信号连线必须点对点的进行连接。SD总线连接图如图2.4所示。图2.4 SD总线连接图 SPI总线兼容SD卡的SPI通信模式是一种通过SPI信道访问SD卡的方式。SPI标准仅仅定义了物理连接方式,并未包括完整的数据传输协议。SD卡的SPI总线实现方式使用了和SD总线相同的命令集。从应用的角度来看,使用SPI总线模式的好处是它对主机的性能要求降至最低,另一方面,它也为产品设计成最小化作出了努力。它的不利之处是降低了系统的性能,也没有SD总线那样更多的连接选项。一般而言,兼容SD卡的SP

26、I总线包含以下信号。 CS:主机到卡芯片之间的片选信号; CLK:主机与卡之间的同步时钟; Dataln:主机到卡之间的数据输入信号; DataOut:主机到卡之间的数据输出信号。图2.5是SPI总线连接图。图2.5 SPI总线连接 总线协议(1)SD总线协议SD总线上的通信是以命令帧、反馈帧和数据帧进行的,这几种帧格式都包含起始位和停止位。>命令帧:命令帧用来传输一个操作命令的令牌。 >反馈帧:反馈帧是从地址卡或者所有的连接卡发送给主机的作为对以前接收到的命令帧做出应答的令牌。>数据帧:数据帧用来在卡和主机之间进行真正有用的数据传输。数据是通过数据链路进 行传输的。SD总线

27、协议的数据传输是以数据块的方式进行的。数据块之后通常跟着CRC校验码。在协议中定义了数据传输的方式可以是单块和多块传输。多块传输在进行写卡操作时的速度比单块传输快得多。多块传输会在CMD线路上出现一个停止命令帧时中断传输。写操作和读操作在时序上的不同在于数据线路DAT0上多了一个写操作忙的信号。(2)SPI总线虽然SD通道是面向有起止位的控制帧和数据流格式的传输,但是SPI通道是面向字节的传输。SPI的命令和数据块都是按8个比特为单位进行分组的,和SD协议相似,SPI的信息也分为控制帧、反馈帧和数据帧,所有主机和卡之间的通信都被主机进行控制,主机通过拉低CS信号以开始一个总线事务。SPI的反馈

28、方式和SD协议相比有以下3个方面的不同。 >被选中的卡必须时刻对命令帧做出响应; >使用两种新的响应结构(8位或16位); >当卡获取数据出问题时,它将发出一个出错反馈帧通知主机,而不是使用超时检测的方式。除了需要对命令帧做出反馈之外,在进行写卡操作期间,还需要对每一个发送到卡的数据块发一个特别的数据反馈令牌。一个合法的数据块的结尾应当包括16位的CRC校验部分,CRC校验值是按照标准的CCITT的x的16次方+X的12次方+X的5次方+1产生的。一旦数据读取出现错误,卡就不再传输数据,取而代之的是发送一个数据出错令牌给主机。在SPI模式中也支持单块和多块的数据写命令。卡从主

29、机端接收到一个数据块之后,它就会发一个数据响应令牌给主机,如果接收的数据经校验无错,就把数据写入卡的存储介质中。如果卡正在忙于往存储介质中写数据时,它会持续发一个“工作忙”的令牌给主机。2.3 SD卡的命令 SD卡的命令格式SD卡的命令格式固定为6个字节48个位,其格式如图2.6所示。图2.6 SD卡命令格式开始位固定为0,第二位固定为1,表示主机给SD卡的命令,然后是6位命令索引号,索引号的大小与索引号数字相同,比如CMD0的索引号为000000,索引号41为101001。紧接着命令索引号是命令参数,有些命令有参数,有些命令没有参数,比如CMD0和CMD1命令参数为32个0,而命令CMD24

30、、CMD17的命令参数是数据的读写地址。最后是7位CRC校验位和一位停止位1。根据命令索引号可推知SD卡的命令最多不超过64个(有些命令索引号为保留以后升级用,没有实际的命令相对应),SD卡协议把卡的命令分为若干类,有些命令只有对SD模式起作用,有些命令只对SPI模式起作用,大部分命令是通用的,两种模式下具有相同的命令。 SD卡的命令类型(1) 命令类型控制SD卡有4种类型的命令:广播命令,无响应。 广播命令的特点是如果所有的CMD线与主机连接到一起。如果把它们分开,那么每张卡将在轮到它的时候单独接收。 有响应的广播命令。从所有卡来的响应是同时的。但是在SD卡里没有开漏模式,这个类型命令只可以

31、使用在所有的CMD线是分开的情况下。这个命令将被所有的卡单独接受并响应。 在DAT上没有数据传输的定址(点对点)命令。 在DAT上有数据传输的定址命令。所有的命令和响应都在CMD线上进行。命令传送总是从左边的位开始。(2) SD卡命令集: SD卡命令共分为12类,分别为class0到class,不同的SD卡,主控根据其功能,支持不同的命令集如下:C1ass0:(卡的识别、初始化等基本命令集): CMD0:复位SD卡。 CMD1:读OCR寄存器。 CMD9:读CSD寄存器。 CMD10:读CTD寄存器。 CMD12:停止读多块时的数据传输。 CMD13:读Cardes Status寄存器。Cla

32、ss2(读卡命令集): CMD16:设置块的长度。 CMD17:读单块。 CMD18:读多块,直至主机发送CMD12为止。Class4(写卡命令集): CMD24:写单块。 CMD25:写多块。 CMD27:写CSD寄存器。Class5(擦除卡命令集): CMD32:设置擦除块的起始地址. CMD33:设置擦除块的终止地址。 CMD38:擦除所选择的块。Class6(写保护命令集): CMD28:设置写保护块的地址。 CMD29:擦除写保护块的地址。 CMD30:Ask the card for the status of the mite protection bits。Class7:卡的锁

33、定,解锁功能命令集。class8:申请特定命令集。classl0和class11:保留。其中class 1, class3,class9的SPI模式不支持。3 硬件设计系统整体硬件方案分为三个部分:电源部分、单片机STC12C5A60S2主控芯片的DY_mini80E开发板的选择部分(包括信号采集、A/D转换等)、带SD卡的TFT彩屏的选择部分(包括SD卡工作电路部分等)。设计在Keil编程环境下,建立工程,编写程序,然后将程序下载到单片机中,同时复位单片机,然后调节DY_mini80E开发板上的四路电位器采集不同的电压信号(四路电压范围均0V-5V),按动采集键后,信号开始采集,每秒钟各通道

34、进行一次A/D转换,并对数据进行处理后由单片机控制分别存入带SD卡的TFT彩屏的SD卡的相应文档中。并用TFT彩屏显示经过A/D转换后的四路实时电压,用以观察采集数据的变化。3.1 电源模块SD卡的工作电平为3.3V,而控制芯片STC12C5A60S2的逻辑电平为5V CMOS电平标准。因此,它们之间不能直接相连,否则可能会烧坏SD卡;出于对安全工作的考虑,有必要解决电平匹配问题。要解决这一问题,最根本的就是解决逻辑器件接口的要有两条:一为输出电平器件输出高电平的最小电压值,应该大于接收电平器件识别为高电平的最低电压值;另一条为输出电平器件输出低电平的最大电压值,应该小于接收电平器件识别为低电

35、平的最高电压值。一般来说,通用的电平转换方案是采用类似SN74ALVC4245的专用电平转换芯片,这类芯片不仅可以用作升压和降压,而且允许两边电源不同。但是,这个方案代价相对昂贵,而且一般的专用电平转换芯片都是同时转换8路、16路或者更多路数的电平,相对本系统仅仅需要转换4路来说是一种资源的浪费。 带SD卡的TFT彩屏模块中包含REG1117-3.3 电压转换模块。在SD卡向单片机传输数据时可以直接连接,因为它们之间的电平刚好满足上述的电平兼容原则,所以只做一个直流5V的稳压电源给系统供电即可,既经济又实用。电源电路原理图如图3.1。图3.1 电源电路原理图该电路的基本工作过程是:市电220V

36、经变压器降压变成8V交流,再经整流桥VD整流成约11.5V直流,再经过滤波电容C1、C2后经LM7805稳压管稳压成稳定的5V电压供整个系统供电。3.2 单片机最小系统3.2.1单片机原理图及其特性单片机控制模块是整个系统的核心。本系统采用STC12C5A60S2单片机为核心元件。下面图3.2就是一个STC12C5A60S2单片机的引脚图。图3.2 STC89C52原理图STC12C5A60S2单片机是宏晶科技生产的单时钟/机器周期(1T)的单片机,是高速/低功耗/超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8-12 倍。内部集成MAX810专用复位电路,2路PWM

37、,8路高速10位A/D转换(250K/S,即25bit/s),对电机控制,强干扰场合。1. 增强型 8051 CPU,1T,单时钟/机器周期,指令代码完全兼容传统80512. 工作电压: STC12C5A60S2 系列工作电压: 5.5V - 3.5V(5V单片机) STC12LE5A60S2 系列工作电压: 3.6V - 2.2V(3V单片机)3. 工作频率范围:035MHz,相当于普通8051的 0420MHz4. 用户应用程序空间 8K /16K / 20K / 32K / 40K / 48K / 52K / 60K / 62K 字节.5. 片上集成1280字节 RAM6. 通用I/O口

38、(36/40/44个),复位后为:准双向口/弱上拉(普通8051传统I/O口)可设置成四种模式:准双向口/弱上拉,强推挽/强上拉,仅为输入/高阻开漏每个I/O口驱动能力均可达到20mA, 但整个芯片最大不要超过120mA7. ISP(在系统可编程)/ IAP(在应用可编程),无需专用编程器,无需专用仿真器 可通过串口(P3.0/P3.1)直接下载用户程序,数秒即可完成一片8. 有EEPROM功能(STC12C5A62S2/AD/PWM无内部EEPROM)9. 看门狗10.内部集成MAX810专用复位电路(外部晶体12M以下时,复位脚可直接1K电阻到地)11. 外部掉电检测电路: 在P4.6口有

39、一个低压门槛比较器5V单片机为1.33V,误差为±5%,3.3V 单片机为1.31V,误差为±3%12. 时钟源:外部高精度晶体/时钟,内部R/C振荡器(温漂为±5% 到±10% 以内)用户在下载用户程序时,可选择是使用内部R/C 振荡器还是外部晶体/ 时钟常温下内部R/C振荡器频率为:5.0V 单片机为: 11MHz 17MHz 3.3V 单片机为: 8MHz 12MHz精度要求不高时,可选择使用内部时钟,但因为有制造误差和温漂,以实际测试为准。13. 共4个16位定时器,两个与传统8051兼容的定时器/计数器,16位定时器T0和T1,没有定时器2,但

40、有独立 波特率发生器做串行通讯的波特率发生器,再加上2路PCA模块可再实现2个16位定时器。14. 3个时钟输出口,可由T0的溢出在P3.4/T0输出时钟,可由T1的溢出在P3.5/T1输出时钟,独立波特率发生器可以在P1.0口输出时钟。15. 外部中断I/O口7路,传统的下降沿中断或低电平触发中断,并新增支持上升沿中断的PCA模块,Power Down模式可由外部中断唤醒,INT0/P3.2,INT1/P3.3,T0/P3.4, T1/P3.5, RxD/P3.0,CCP0/P1.3(也可通过寄存器设置到P4.2), CCP1/P1.4(也可通过寄存器设置到P4.3)16. PWM(2路)/

41、 PCA(可编程计数器阵列,2路) - 也可用来当2路D/A使用 - 也可用来再实现2个定时器 - 也可用来再实现2个外部中断(上升沿中断/下降沿中断均可分别或同时支持)17. A/D转换, 10位精度ADC,共8路,转换速度可达250K/S(每秒钟25万次)18. 通用全双工异步串行口(UART),由于STC12系列是高速的8051,可再用定时器或PCA软件实现多串口19. STC12C5A60S2系列有双串口,后缀有S2标志的才有双串口,RxD2/P1.2(可通过寄存器设置到P4.2),TxD2/P1.3(可通过寄存器设置到P4.3)20. 工作温度范围:-40 +85(工业级) / 0

42、75(商业级)21. 封装:LQFP-48, LQFP-44, PDIP-40, PLCC-44, QFN-40I/O口不够时,可用2到3根普通I/O口线外接74HC164/165/595(均可级联)来扩展I/O口,还可用A/D做按键扫描来节省I/O口,或用双CPU,三线通信,还多了串口。3.2.2 STC12C5A60S2系列单片机的内部结构STC12C5A60S2系列单片机的内部结构框图如下图所示。STC12C5A60S2单片机中包含中央处理器(CPU)、程序存储器(Flash)、数据存储器(SRAM)、定时/计数器、UART串口、串口2、I/O接口、高速A/D转换、SPI接口、PCA、看

43、门狗及片内R/C振荡器和外部晶体振荡电路等模块。STC12C5A60S2系列单片机几乎包含了数据采集和控制中所需的所有单元模块,可称得上一个片上系统。图STC12C5A60S2系列内部结构图3.2.3 单片机STC12C5A60S2最小系统的组成单片机STC12C5A60S2最小系统(DY_mini80E开发板),是指用最少的元件组成的单片机可对STC12C5A60S2单片机来说,其最小系统一般应该包括:单片机、晶振电路、复位电路、A/D转换电路等。本设计的最小系统的原理图见附件A。 (1)复位电路STC12C5A60S2的复位引脚(RESET)是第9脚,当此引脚连接高电平超过2个机器周期,即

44、可产生复位的动作。以24MHz的时钟脉冲为例,每个时钟脉冲为0.5us,两个机器周期为1us,因此,在第9脚上连接一个2us的高电平脉冲,即可产生复位动作。最简单的就是只有一个电阻跟一个电容就可可靠复位的电路,电阻一般选择10K,电容一般选择10uF。DY_mini80E开发板有两种复位电路方式,如下图3.4所示的复位电路。这里说下用高电平复位:在VCC和RST端接一容量为10uF左右的电解电容,再串联一个电阻R21(10K)接地。图3.4 复位电路正常工作时,利用RST内部复位下拉电阻Rr(40K-220K)便构成了复位电路。接通电源瞬时,电容C10上电压很小,由于复位下拉电阻Rr>&

45、gt;10K,所以复位下拉电阻Rr上的电压接近电源电压,即RST位高电平,电路没有影响。在电容充电过程中,RST端电位逐渐下降,当RST端电位小于某一数值后,CPU脱离复位状态。只要电容C容量足够大,即可保证RST高电平有效时间大于24个真到周期,CPU能可靠复位。在断电后,VCC逐渐下降,当VCC=0时,相当于VCC端与地等电位,这时电容C10通过电阻R21迅速放电,保证再上电时端位高电平。此复位电路本身存在一个缺点,当死机时只能通过关机复位。为了解决这一问题,在电解电容C10上并联一个电阻R10和开关K。复位按钮按下时,电解电容C10通过R10放电,当电解电容C10放电结束后,RST端的电

46、位由Rr和R10分压比决定。由于Rr>>R10,因此RST位高电平,CPU进入复位状态,松手后,电解电容C10充电,RST端电位下降,CPU脱离复位状态。R10的作用在于限制按钮按下瞬间电解电容C10的放电电流,避免产生火花,以保护按钮的触点。(2)晶振电路(时钟电路)STC12C5A60S2单片机的最高时钟脉冲频率已经达到了24MHz,它内部已经具备了振荡电路,只要在STC12C5A60S2的两个引脚(即18、 19脚)连接到简单的石英振荡体的2个管脚即可,同时晶体的2个管脚也要用30pF的电容耦合接地。在该电路由两个30pF的电容C8、C9和一个24MHz的晶振Y2组成。其连接

47、方式如图3.5。图3.5晶振电路(3)A/D转换电路PCF8591是一个单片集成、单独供电、低功耗、8-bit CMOS数据获取器件。PCF8591具有4个模拟输入、1个模拟输出和1个串行I2C总线接口。PCF8591的3个地址引脚A0, A1和A2可用于硬件地址编程,允许在同个I2C总线上接入8个PCF8591器件,而无需额外的硬件。在PCF8591器件上输入输出的地址、控制和数据信号都是通过双线双向I2C总线以串行的方式进行传输。PCF8591的功能包括多路模拟输入、内置跟踪保持、8-bit模数转换和8-bit数模转换。A/D转换电路如图3.6。电路将电压VCC(5V)通过四路W3W6均1

48、0K的滑动变阻器(即电压可调范围0V-5V)分别进入AIN0AIN3进行A/D转换,转换后的数字信号通过SCL、SDA脚送到STC12C5A60S2单片机。图3.6 A/D转换电路3.2.4 带SD卡的TFT彩屏控制芯片STC12C5A60S2的逻辑电平为5V CMOS电平标准,而SD卡的逻辑电平为3.3V,它们之间不能直接相连,否则可能会烧坏SD卡;但我们选择了带SD卡的TFT彩屏模块,TFT彩屏模块中已含REG1117-3.3 电压转换模块。而在SD卡向单片机传输数据时可以直接连接,因为它们之间的电平刚好满足上述的电平兼容原则。图3.7即为带SD卡的TFT彩屏接口定义。数据接口兼容DY_m

49、ini80E开发板上12864接口,GND为1脚,对应12864的1脚,插接方式如图3.9带SD卡的TFT彩屏与DY_mini80E开发板实物连接图。图3.7 带SD卡的TFT彩屏接口定义带SD卡的TFT彩屏数据接口兼容DY_mini80E开发板上的12864液晶接口,GND为1脚,对应12864液晶插座的脚,其接口原理图如图3.8。图.2 TFT彩屏接口原理图4 软件设计4.1软件设计目标最终能实现同时将四路模拟电压(0-5V)进行A/D转换,转换结果为十进制有效数字3位;要求每秒钟转换一次,并将结果转换为ASCII码形式;并将四路结果分别存储到SD卡预先建立好的CH1.txt、CH2.tx

50、t、CH3.txt、CH4.txt文档中。采集实时的4个通道电压值显示在TFT彩屏上;按S1按键进行采集及存储,再按S1按键暂停采集及存储,按S2键清除SD卡中的内容;按S按键系统进行复位。4.2 Keil软件简介Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生

51、成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。Keil C51软件是一个基于32位Windows环境的应用程序,支持C语言和汇编语言编程,其6.0以上的版本将编译和仿真软件统一为Vision(通常称为V2)。Keil提供包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,由以下几部分组成:Vision IDE集成开发环境C51编译器、A51汇编器、LIB51库管理器、BL51连接/定位器、OH51目标文件生成器以及 Monitor-51、RTX51实时操作系统。4.3 Keil软件调试功能应用Keil进

52、行软件仿真开发的主要步骤为:编写源程序并保存建立工程并添加源文件设置工程编译/汇编、连接,产生目标文件程序调试。Keil使用“工程”(Project)的概念,对工程(而不能对单一的源程序)进行编译/汇编、连接等操作。工程的建立、设置、编译/汇编及连接产生目标文件的方法非常易于掌握。首先选择菜单File-New,在源程序编辑器中输入汇编语言或C语言源程序(或选择File-Open,直接打开已用其它编辑器编辑好的源程序文档)并保存,注意保存时必须在文件名后加上扩展名.asm(.a51)或.c;然后选择菜单Project-New Project,建立新工程并保存(保存时无需加扩展名,也可加上扩展名.

53、uv2);工程保存后会立即弹出一个设备选择对话框,选择CPU后点确定返回主界面。这时工程管理窗口的文件页(Files)会出现“Target1”,将其前面+号展开,接着选择Source Group1,右击鼠标弹出快捷菜单,选择“Add File to Group Source Group1”,出现一个对话框,要求寻找并加入源文件(在加入一个源文件后,该对话框不会消失,而是等待继续加入其它文件)。加入文件后点close返回主界面,展开“Source Group1”前面+号,就会看到所加入的文件,双击文件名,即可打开该源程序文件。紧接着对工程进行设置,选择工程管理窗口的Target1,再选择Proj

54、ect-Option for TargetTarget1(或点右键弹出快捷菜单再选择该选项),打开工程属性设置对话框,共有8个选项卡,主要设置工作包括在Target选项卡中设置晶振频率、在Debug选项卡中设置实验仿真板等,如要写片,还必须在Output选项卡中选中“Creat Hex Fi”;其它选项卡内容一般可取默认值。工程设置后按F7键(或点击编译工具栏上相应图标)进行编译/汇编、连接以及产生目标文件。 成功编译/汇编、连接后,选择菜单Debug-Start/Stop Debug Session(或按Ctrl+F5键)进入程序调试状态,Keil提供对程序的模拟调试功能,内建一个

55、功能强大的仿真CPU以模拟执行程序。Keil能以单步执行(按F11或选择Debug-Step)、过程单步执行(按F10或选择Debug-Step Over)、全速执行等多种运行方式进行程序调试。如果发现程序有错,可采用在线汇编功能对程序进行在线修改(Debug-Inline Assambly),不必执行先退出调试环境、修改源程序、对工程重新进行编译/汇编和连接、然后再次进入调试状态的步骤。对于一些必须满足一定条件(如按键被按下等)才能被执行的、难以用单步执行方式进行调试的程序行,可采用断点设置的方法处理(Debug-Insert/Remove Breakpoint或Debug-Breakpoi

56、nts等)。在模拟调试程序后,还须通过编程器将.hex目标文件烧写入单片机中才能观察目标样机真实的运行状况。4.4 系统设计系统初始化要让系统正常运行首先要对系统进行初始化,主要包括:定时器T0初始化、DS1302初始化、LCD初始化、SD卡初始化、文件系统初始化。其流程图如图4.1所示。开始定时器T0初始化DS1302初始化LCDSD卡初始化文件系统初始化打开界面背景位图文件并显示关闭背景位图文件用背景色清屏显示初始化状态返回显示通道指示字符图4.1 系统始化流程图 SD卡初始化SD卡从上电到对SD卡进行正确的读写操作,往往都需要一个上电初始化的过程。SD卡上电后,主机必须先向SD卡发送74个时钟周期,以完成SD卡的上电过程。通常SD卡上电后会自动进入SD总线模式,并在SD总线模式下向SD卡发送复位命令(CMD0)。因此,主机在对SD卡进行任何操作前,都必须先要拉低SD卡的片选信号CS(card select),以使SD卡进入SPI总线模式,然后再由主机向SD卡发送命令。SD卡可以响应主机发来的各种应答信号,同时向主机发送一个特殊的数据响应标志。若主机读到的应答信号为01,即表明SD卡已进入SPI模式,此时,主机即可不断地向SD卡发送命令字(CMD1) 并读取SD卡的应答信号,直到应答信号为00,表明SD卡已

温馨提示

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

评论

0/150

提交评论