“数据采集”是指将温度、压力、流量、位移等模拟物理量采集并转换成数字量后,再由计算机进行存储、处理、显示和打印的过程,相应的系统称为数据采集系统。
本文的主要任务是对0~5V的直流电压进行测量并送到远端的PC机上进行显示。由于采集的是直流信号,对于缓慢变化的信号不必加采样保持电路,因此选用市面上比较常见的逐次逼近型ADC0809芯片,该芯片转换速度快,价格低廉,可以直接将直流电压转换为计算机可以处理的数字量。同时选用低功耗的LCD显示器件来满足其在终端显示采集结果的需求。终端键盘控制采用尽可能少的键来实现控制功能,为了防止键盘不用时的误操作,设计时还设置了锁键功能,在键盘的输入消抖方面,则采用软件消抖方法来降低硬件开销,提高系统的抗干扰能力。软件设计方面则采用功能模块化的设计思想;键盘模数转换等采用中断方式来实现,从而大大提高了单片机的效率以及实时处理能力。
1 数据采集系统的硬件结构
数据采集系统的硬件结构一般由信号调理电路、多路切换电路、采样保持电路、A/D转换器以及单片机等组成。本文主要完成功能的系统硬件框图如图1所示。
图1 数据采集系统硬件设计框图
2 ADC0809模数转换器简介
2.1 ADC0809的结构功能
本数据采集系统采用计算机作为处理器。电子计算机所处理和传输的都是不连续的数字信号,而实际中遇到的大都是连续变化的模拟量,模拟量经传感器转换成电信号后,需要模/数转换将其变成数字信号才可以输入到数字系统中进行处理和控制,因此,把模拟量转换成数字量输出的接口电路,即A/D转换器就是现实信号转换的桥梁。
目前,世界上有多种类型的A/D转换器,如并行比较型、逐次逼近型、积分型等。本文采用逐次逼近型A/D转换器,该类A/D转换器转换精度高,速度快,价格适中,是目前种类最多,应用最广的A/D转换器。逐次逼近型A/D转换器一般由比较器、D/A转换器、寄存器、时钟发生器以及控制逻辑电路组成。
ADC0809就是一种CMOS单片逐次逼近式A/D转换器,其内部结构如图2所示。该芯片由8路模拟开关、地址锁存与译码器、比较器、8位开关树型D/A转换器、逐次逼近寄存器、三态输出锁存器等电路组成。因此,ADC0809可处理8路模拟量输入,且有三态输出能力。该器件既可与各种微处理器相连,也可单独工作。其输入输出与TTL兼容。
ADC0809是8路8位A/D转换器(即分辨率8位),具有转换起停控制端,转换时间为100μs采用单+5V电源供电,模拟输入电压范围为0~+5V,且不需零点和满刻度校准,工作温度范围为-40~+85℃功耗可抵达约15mW。
ADC0809芯片有28条引脚,采用双列直插式封装,图3所示是其引脚排列图。各引脚的功能如下:
图3 ADC0809的引脚排列图
IN0~IN7:8路模拟量输入端;
D0~D7:8位数字量输出端;
ADDA、ADDB、ADDC:3位地址输入线,用于选通8路模拟输入中的一路;
ALE:地址锁存允许信号,输入,高电平有效;
START:A/D转换启动信号,输入,高电平有效;
EOC:A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平);
OE:数据输出允许信号,输入,高电平有效。当A/D转换结束时,此端输入一个高电平才能打开输出三态门,输出为数字量;
CLK:时钟脉冲输入端。要求时钟频率不高640kHz;
REF(+)、REF(-):基准电压;
Vcc:电源,单一+5V;
GND:地。
ADC0809工作时,首先输入3位地址,并使ALE为1,以将地址存入地址锁存器中。此地址经译码可选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位;下降沿则启动A/D转换,之后,EOC输出信号变低,以指示转换正在进行,直到A/D转换完成,EOC变为高电平,指示A/D转换结束,并将结果数据存入锁存器,这个信号也可用作中断申请。当OE输入高电平时,ADC的输出三态门打开,转换结果的数字量可输出到数据总线。
A/D转换器的位数决定着信号采集的精度和分辨率。对于8通道的输入信号,其分辨率为0.5%。8位A/D转换器的精度为:
2.2 ADC0809的工作时序
图4所示是ADC0809的工作时序图。从该时序图可以看出,地址锁存信号ALE在上升沿将三位通道地址锁存,相应通道的模拟量经过多路模拟开关送到A/D转换器。启动信号START上升沿复位内部电路,START的下降沿启动转换,此时转换结束信号EOC呈低电平状态,由于逐位逼近需要一定过程,所以,在此期间,模拟输入量应维持不变,比较器要一次次比较,直到转换结束,此时变为高电平。若CPU发出输出允许信号OE(输出允许为高电平),则可读出数据。另外,ADC0809具有较高的转换速度和精度,同时受温度影响也较小。
2.3 ADC0809与MCS-51单片机的接口电路
ADC0809与MCS-51系列单片机的接口电路如图5所示。图中,74LS373输出的低3位地址A2、A1、A0加到通道选择端A、B、C,可作为通道编码。其通道基本地址为0000H~0007H。8051的WR与P2.7经过或非门后,可接至ADC0809的START及ALE引脚。8051的RD与P2.7经或非门后则接至ADC0809的OE端。ADC0809的EOC经反相后接到8051单片机的P3.3(INT1)。
3 单片机与PC机的互连
目前的串行通信接口标准都是在RS-232标准的基础上经过改进而形成的。RS-323C标准是美国EIA(电子工业联合会)与BELL等公司一起开发通信协议。它适合于数据传输速率在0~20000b/s范围内的通信。这个标准对串行通信接口(如信号线功能、电器)特性都作了明确规定。由于通行设备厂商都生产与RS-232C制式兼容的通信设备,因此,它作为一种标准,目前已在微机通信接口中广泛采用。
3.1 电气特性
EIA-RS-232C对电器特性、逻辑电平和各种信号线功能都作了规定。在TxD和RxD上,逻辑1(MARK)电平为-3V~-15V,逻辑0(SPACE)电平为+3~+15V;而在RTS、CTS、DSR、DTR和DCD等控制线上,信号有效(接通,ON状态,正电压)电压为+3V~+15V,信号无效(断开,OFF状态,负电压)电压为-3V~-15V。
以上规定说明了RS-323C标准对逻辑电平的定义。对于数据(信息码):逻辑“1”(传号)的电平低于-3V,逻辑“0”(空号)的电平高于+3V;对于控制信号;接通状态(ON)即信号有效的电平高于+3V,断开状态(OFF)即信号无效的电平低于-3V,也就是说,当传输电平的绝对值大于3V时,电路才可以有效地检查出来,介于-3~+3V之间的电压无意义。低于-15V或高于+15V的电压也认为无意义,因此,实际工作时,应保证电平在±(3~15)V之间。
对于EIA-RS-232C与TTL的转换,由于EIARS-232C是用正负电压来表示逻辑状态,它与TTL以高低电平表示逻辑状态的规定不同。因此,为了能够同计算机接口或与终端的TTL器件连接,就必须在EIA-RS-232C与TTL电路之间进行电平和逻辑关系的变换。实现这种变换的方法可用分立元件,也可用集成电路芯片。
3.2 DB-9连接器
DB-9连接器作为提供多功能I/O卡或主板上COM1和COM2两个串行接口的连接器。它只提供异步通信的9个信号。由于DB-9型连接器的引脚分配与DB-25型引脚信号完全不同。因此,若要与配接DB-25型连接器的DCE设备进行连接,就必须使用专门的电缆线。
设计时对电缆长度的要求是在通信速率低于20kb/s时,RS-232C所直接连接的最大物理距离应为15m(50英尺)。
根据RS-232C标准规定,若不使用MODEM,在码元畸变小于4%的情况下,DTE和DCE之间的最大传输距离为15m(50英尺)。由于这个最大距离是在码元畸变小于4%的前提下给出的。因此,为了保证码元畸变小于4%的要求,本接口标准在电气特性中规定,驱动器的负载电容应小于2500pF。
3.3 单片机与MAX232的连接
MAX232是一种双组驱动器/接收器,该芯片可完成TTL←→EIA双向电平转换。其片内含有一个电容性电压发生器,可以在单+5V伏电压供电时提供EIA/TIA-232-E电平。每个接收器都应将EIA/TIA-232-E电平转换为5VTTL/CMOS电平。这些接收器具有1.3V的典型门限值及0.5V的典型迟滞,而且可以接收30V输入。每个驱动器都应将TTL/CMOS输入电平转换为EIA/TIA-232-E电平。所有的驱动器,接收器及电压发生器都可以在德州仪器公司的元件库中得到标准单元。MAX232的工作温度范围为0~70℃。
图6所示是MAX232芯片的工作电路图。在实际应用中,该器件对电源的噪声很敏感。图中的四个取同样数值的电解电容(1.0μF/16V),用以提高抗干扰能力。本设计可从MAX232芯片中的两路发送接收器中选用一路作为接口,但设计时应注意发送与接收的对应。
4 结束语
本文给出了一个基于AD0809和单片机的多路数据采集系统的硬件实现方法,该方法在终端采用8051单片机为核心来控制数据采集及数据上传工作,并通过A/D转换器将0~5V的直流电压转换为计算机可以进行处理的数字信号,然后经过单片机对其进行处理,从而完成在终端显示以及将数据上传等功能。系统中的上位机完成对所采集的数据进行显示及对下位机的控制等功能。