基于单片机的数据采集系统设计策画

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于单片机的数据采集系统的应用与开发
第3章硬件部分开发
3.1 单片机 MCS-51单片机 AduC812单片机
3.2 硬件部分设计
3.2.1 硬件部分方框图
硬件部分以ADCU单片机
为微控制器,以单片机内置的
8通道12 位高精度ADC配合适当的电路实现采样,以FLASH和RAM配合实现存储器的扩展。

用点阵式液晶显示器构成显示模块,以串口通信模块实现与上位机的通信,且设计了合适的电源模块为各部分提供工作电压,并设置了四个功能键实现各部分的协调工作。

系统方框图如图3-2所示。






图3-2 系统硬件方框图
3.2.2 核心控制
本模块以AduC812单片机为控制核心,使整个系统各个部分能够协调工作,其原理图如图3-3所示:AduC812单片机有四组电源接地引脚,其中一组为模拟电源接地引脚,三组为数据电源接地引脚,数据电源接地引脚和模拟电源接地引脚一般可直接连接在一起,但连接点不能与单片机模拟电源输入端靠得太近,否则会影响到AD转换的精度。

电源和地之间接104电容以起去隅之用。

内置ADC的参考电压可以外接也可以内接,外接时参考电压范围应在(2.2V~VDD)之间;内置时内置参考电压为2.5V,并且可以被引出作其它地方作为参考,如果不用,用一只电容与地相接即可。

本系统采用内置参考电压,且没有其它用
途,因此只用一只104电容与地相应连接,参考电容端也用一只104电容与地相接,以起一定的抗干扰作用。

本系统用一只104电容和一只10K电阻组成单片机的上电复位电路。

由于单片机的复位信号是高电平有效,而液晶的复位信号是低电平有效,因此这里用三极管和电阻组成一个反相器,单片机上电复位信号通过反相器后供液晶上电复位之用。

除了上电复位之外,本系统还设计一个手动复位电路。

为了各个部分能分时协调工作,本系统用P1口的四个I/O口设计了四个功能键,AduC812的P1口当作为数字口使用时只输入。

本系统采用11.0592M的晶振。

因为它能够准确地划分成时钟频率,与UART(通用异步接收器/发送器)量常见的波特率相关。

特别是较高的波特率(19600,19200),不管多么古怪的值,这些晶振都是准确的。

由于AduC812在线下载程序时,PSEN引脚需一只1K的电阻接地,因此这里用一个接插键,以备程序调试时用。

该部分的原理图如图3-3所示。

为得到-12V 和-5V的输出,在此特引入了
ICL7660,因ICL7660的输出与输入大小相
同极性相反,故MAX682的输出作为
ICL7660的输入,ICL7660能输出-5V,再
根据开关电源的原理,两片ICL7660配合
分别得到+12V和-12V。

MAX682引脚如图3-4所示:引脚1
(SKIP
若接地是低频模式,
MAX682的典型电路如图3-5
满足以下关系:
式中 Vin—输入电平;
f
OSC

在(50Hz~2MHz
假定选取Rext=200k,
f
OSC
=857.25KHz。

当输入3V
当输入为2V时,f
OSC
=51Hz
系统。

ICL7660的引脚图如图3-6所示:引脚4为信号地,引脚5为电源地,可接在一起,引脚5、6分别为轮换电容Cx的负极和正极,引脚8为输出端。

输出端输入端都应通过相应的滤波电容Cin和Cout接地。

通常情况下,Cx最小,Cin 是Cx的两倍,Cout是Cx的5倍到50倍之间。

这里选择Cx=0.47u ,Cin=1uF ,Cout=2.2uF。

C
C
X
N
C
X
P
IN
SKIP
SHDN
G
N
D
P
G
N
D
OUT
MAX682
Rext
INPUT OUTPUT
2.7V TO 5.5V5V/250mA
3.2.4
因为(1如图3二极管D1+20V )。

10可知,在输入信号小于20V的
情况下,第二档的输出端VO2的电压是输入信号的20倍,即Vin=VO2*20。

当输入的信号电压大于20V,三极管Q1,Q4都饱和导通,VO1被钳在电压为三极Q1的门坎电压Vth,VO2被钳在2Vd+Vth,其中Vd为二极管和正向导通电压,二极管1N5817在通过100mA电流时,Vd为0.45V,三极管Vth为0.3V左右,因此VO2约为1.2V,这个数值在安全电压范围内。

采样时若发现VO2大于1V则立即报警,否则MCU可先依次读取VO1,VO2直到RAM存满为止。

在显示时,先显示VO1的一点,接着判断VO2是否小于0.2V,若小于0.2V则说明应采用VO1的数据,若大于0.2V,则应采用VO2的数据,并将前一点的数据覆盖。

当输入信号为负信号,并且在(-2V~0V)之间时,VO1能正确反应输入信号大小,此时VO1的数据有效,VO2数据无效。

当输入信号在(-20V~-2V)之间时,三极管Q2导通,VO1被钳位保护,V01无效,VO2数据有效。

当输入在小于-20V,三极管Q2,Q3都饱和导通,VO1,VO2都被钳位保护,由于V01绝对值大于1V,系统报警。

(2)有效值测量
为准确测量交流信号的大小将需要把输入信号转换成有效值然后再进行测量。

本系统中用AD-DC转换模块来实现这个功能,这个模块需要有+12V和-12V 的电源,这个问题已在前面的电源模块得到解决。

无论转入是直流还是交流,本模块都将输入信号转换成有正有效值输出。

为了减小输入阻抗,这个用运放LM324对2.3.1节中得到输出进行跟随。

这一部分电路如图3-11。

输出的有效送MCU 的ADC进行采样。

(3)电压转换
由于AduC812单片机只能接受正信号,为了测量输入信号的波型,则必先对输入信号进行电压转换,使信号完全处于正极性。

如图3-12所示,AVDD为+5V,先通过一个比例放大器,得到-1V。

本节(1)中处理好的VO1,VO2经本节(2)中跟随器跟随,分别得到Vi1,Vi2。

这两个信号端分别通过加法器与-1V电压叠加,使信号电压整体移到正极性端。

到此,信号已经被转移到正极性端,从而能被MCU 的ADC 采样。

从上述分析可以得出ADC0的采样信号V0,和ADC1的采样信号V1与原始输入信号Vi有以下关系:V0 = -(Vi/2-1)=1-Vi/2 |Vi|<2AV => 0=V0<=2V (式3-2)V1 = -(Vi/20-1) =1-Vi/20 2<|Vi|<20V => 0<V1<=2V (式3-3)图3-12中的四个二极管子是为了进一步保证MCU的ADC输入信号完全符合要求。

件设计部分。

3.2.5 数据存储
AduC812的存储系统很有特色。

只要在P2口加一个锁存器,AduC812的存储空间最大可扩展至16MB,即24位地址,当P0口送地址A0~A7时,P2口送出地
址A16~A23,在ALE信号的作用下分别锁存到相应的锁存器;当P0口送出数据时,P2口送出地址A8~A15。

这样16M地址空间就被指定了。

本系统的外部数据存储器由32K的SRAM 62256和256K的FLASH组成,其中的SRAM62256采样时用作数据暂存器,可以保证高速的采样速率,而FLASH则可以大批量的存储数据。

分别用一个I/O口作为RAM和FLASH的便能控制端。

随机存取存储器RAM是一种正常工作时既能读又能写的储存器,故又称为读写存储器。

RAM存储器通常用来存放数据,中间结果和最终结果等,是现代计算机不可缺少的一种半导体存储器。

RAM存储器通常可以分为静态RAM和动态RAM两大类,其差别主要在于基本存储电路存储信息的方式不同。

前者依靠触发器存储二进制信息,后者依靠存储电容存储二进制信息。

本设计中采用的存储器是RAM62256,由Intel公司生产,32K静态RAM存储器,是28引脚的SRAM。

引脚图见于图3-13,现对各引脚说明如下:
(1)地址线A0~A14(15条):输入地址线,用于传送CPU送来的地址编码信号,高电平表示“1”,低电平表示“0”。

(2)数据线D0~D7(8条):D0~D7为双向数据线,D0为最低位,D7为最高位。

正常工作时,D0~D7用来传送62256的读写数据。

(3)控制线三条:允许输出线OE,该输入线用于控制从62256读出的数据是否送到数据线D0~D7。

若OE为低电平,则读出数据可以直接送到数据总线D0~D7;否则,读出数据只能到达62256的内部总线。

片选线CS,若CS=0,则本芯片被选中工作;否则,本62256不被选中。

读写命令线WE,若WE=1,则62256建立读出动作状态;若WE=0,则62256处于写入状态。

(4)电源线2条:Vcc为+5电源线,允许正负10%范围内波动。

GND为接地线。

本系统中的FLASH采用PEF29040,其引脚见于图3-13所示。

M29F040 是一片4M位,5V单电源的闪存,由512K字节组成.本芯片提供32引脚PLCC和32引脚TSOP(1)封装,可用标准的5V电源在线系统编程而不必提供12V电压来完成读或写操作。

本芯片还可以用标准的E2PROM编程器读写相应的数据。

标准的PEF29040提供55ns和90ns访问时间,这样就可实现让高速微处理器来操作而无须等待。

为了与总线相隔离,芯片配有独立的片使能引脚(CE)、写使能引脚(WE)和输
出使能引脚(OE)控制线。

PEF29040的引脚和指令都和JEDEC标准的E2PROM相兼容,指令是用标准的微处理器时序写入指令寄存器,寄存器的内容作为内部状态机的输入,内部状态机用来控制写或擦除电路。

内部写周期分别锁存用于写或擦除的数据和地址。

从本芯片读写操作与从12V闪存或EPROM器件读写相似。

PEF29040是通过执行写指令进行写数据的。

这将调用内嵌的编程算法,内嵌编程算法会自动产生写脉冲并且检测相应的临界地址,写并检测一页所需时间的典型值小于0.5秒,擦除是通过执行擦除指令来完成的,在擦除期间,芯片同样会自动产生相应的时序脉冲同时检测相应的临界单元。

假定全部写过的话,擦除、检测每个单独的页一般在1秒钟内可完成。

其内置控制器为T6963C。

它的驱动控制系统是由T6963C及其周边电路、行驱动组、列驱动组电路组成。

T6963C是它的主要控制器。

它具有如下特点:
(1)字符字体有硬件设置,有四种字体;
(2)占空比可从1/16到1/128;
(3)可用图形方式、文本方式及图形和文本合成方式进行显示,同时支持文本方式下的特征显示;并支持屏拷贝功能。

(4)T6963C带有内部字符发生器CGROM,共有128个字符,可以管理64k显示缓冲区字符发生器,并可以进行位操作。

T6963C的初始化一般由管理设置来完成,通过调整FS的高低电平可设置字体大小,而对显示功能的设置则由软件初
3.2.7 数据通讯
AduC812单片机虽然已有串
行输入/输出脚,可做串行输入/
输出,但是为了使PC机与单片机
的电压保持一致,使通讯距离更
远,通讯效果更好,所以还要加
上晶片RS-232。

如图3-15所示:本模块是一
个普通的RS-232接口电路,其中
图3-15 数据通信模块电路原理图
电平转换芯片MAX23(或ADM232)
具有两路串口通讯功能,在此只用到其中的一路,MAX23的第11引脚接MCU的TX 引脚,MAX232的第12引脚接MCU的RX引脚。

MAX232的第12,14引脚分别接9针接插键的第3,4引脚,与PC机进行通讯连接。

该电路中的电容除了在VCC与GND之间滤波之外,其余都是为实现电平转换。

9针接插键的其余连线可以省略,本模块除了一般的RS232通讯功能外,还担负着一个相当重要的功能----在线系统编程(ISP)。

这是AduC812的特色之一。

AduC812内含8K FLASH ROM。

编写的程序经过编译,生成.HEX文件,该文件通过ADI公司提供的专用下载软件WSD(window serial download)直接下载到MCU自带的FLASH ROM 里。

现场可观察程序运行的情况。

若结果与编程者的期望不相符,则可重新修改程序,编译,下载。

如此反复,直到得到满意的结果为止。

FLASH 最多下载的次数可达到上万次,能满足绝大多数的应用要求。

对于开发人员来说,在线调试和下载功能最重要,也是最常使用的,但二者都需通过PC机上的串行端口与AduC812的UART串行端口之间连接的串行端口电缆进行数据通信才能发挥作用。

因此,开发人员在开发应用系统的同时,应设计一个RS232接口电路来实现PC机与AduC812的之间串口通信。

由于RS232接口电路是PC机和开发系统的唯一通路,故它是在线调试和下载功能实现的关键。

第4章软件部分设计
4.1 系统软件方块图
如图 4-1,本系统在液晶显示器和功能键的配合下完成四大块功能:可调采样率的A/D采样、DMA高速采样、串口通讯和FLASH操作。

各个功能选项的选择,液晶显示器上会显示详细的文字提示。

源程序在此不作赘述。

图4-1 系统软件方框图
4.2 A/D采样数据处理
A/D数据的读取只要读AduC812的ADC的高位数据寄存器ADCDATAH和低位数据寄存器ADCDATAL即可,十分简便。

由于要实现自动量程换档,因而数据处理会相对复杂一些,在采样时,为减少判断时间,MCU不管数据是否有效,先依次数据高低两个档位的数据,然后再作判断。

处理程序流程如图4-2所示。

图4-2 采样数据处理
流程图
4.3 功能键读取
本系统采用P1口作为按键接口,而P1口作数字口时,只能输出,并且在输出前要先写0。

本函数的功能是扫描一次四个功能键,四个功能键分别记作1、2、3、4。

若哪个被按下则返回相应的键值,否则返回0。

程序流程图如图4-3。

图4-3功能键驱动流程图
4.4 液晶驱动
本液晶以一定的格式和顺序写数据和写命令来完成各种操作。

写数据或命令之前必先进行查询,液晶不忙时,相应的操作才有效。

单次数据或命令读写时只在从数据口读取数据,若低两位为高电平则不忙,否则忙。

自动多字节写时,只要从数据口读取数据,若最高位为高电平则不忙,否则忙。

本系统数据口为P0口,程序流程如图4-4,液晶指令表见附录1。

图4-4 忙查询流程图
本LCD的指令有零参数、单参数和双参数,写指令程序流程如图4-5,液晶指令表见于附录2.源程序见于附录3。

4.5 FLASH驱动
FLASH的读操作如同读外RAM一样,非常简单,在此不多赘述,只有被写的FLASH单元已经被擦除过,才能向该单元写数据。

FLASH的擦除和写都是以特定格式写命令和数据来完成的。

擦除一页和写一字节的指令格式如附录2所示。

本FLASH还可以整片一次性擦除。

但是对本系统意义不是很大,所以在此不作赘述。

图4-6 FLASH查询流程图
在附录2中的页擦除指令第六周期(这里指FLASH的操作周期,与MCU的各种周期没有特定联系)中地址SA指的是将要擦除的页地址,所谓成页地址是操作页内的任何一个地址。

字节写操作中的PA指将要写的FLASH地址,PD指将要在操作地址写的数据。

指定表中的其它地址指低位地址,高位任意。

本FLASH在执行命令之后要进行数据查询,检查芯片是否忙,直到操作完全完成,芯片的才显示空闭状态,否则可能操作失败。

查询程序流程如图4-6所示。

这里应特别注意,当最高位查询失败,接着查询第5位数据,查询第5位数据后必须再一次查询最高位,只有这样才能保证查询有效。

FLASH页擦除程序流程如图4-7所示,只要多次执行该指令,并改变操作页地址,便可擦除整个芯片。

FLASH的字节写操作程序流程如图4-8所示。

每写一个字节必须执行指定一次,因此写的时间相对较长。

图4-7 FLASH页擦除流程图
图4-8 FLASH写编程一字节。

相关文档
最新文档