真空系统在电力、石油化工、医疗制药、塑料、环保、医疗器械等行业都得到了广泛地应用,随着真空应用领域的不断扩展和深入,对真空技术指标要求亦越来越高,例如,在金刚石镀膜装置中,由于沉积金刚石膜的时间长达几十个小时,真空室真空度的稳定性对成膜质量的好坏有很大的影响,所以保持真空度的稳定将成为一个关键性的技术问题;离心式水泵在抽真空引水过程及水泵抽水过程中,离心式水泵入口的真空度已成为离心式水泵起/停、故障诊断的重要依据。只有将压力传感器获取的模拟信号进行有效的A/D转换成数字量后,才能输入单片机中进行处理,以及与PC通信及后续的波形显示和分析。笔者提出了ADC0832与压力传感器(PTB710)相结合,并利用单片机AT89S52的程序控制转换时钟脉冲方法,对真空度数据进行检测。
1、A/D转换电路
1.1、ADC0832芯片引脚说明如图1为ADC0832的引脚图,其中CS为片选端,低电平有效;CH0,CH1为两路模拟信号输入端;DI两路模拟输入选择输入端;DO为模数转换结果串行输出端;CLK为串行时钟输入端;VCC(REF)为正电源端和基准电压输入端;GND为电源地。
1.2、ADC0832工作控制原理
如表1所示为ADC0832工作时的多路复用寻址,包括单端多路复用模式及微分多路复用模式,通过对DI,DO两个数据位操作进行通道选择,当此2位数据位为“1”,“0”时,仅对CH0进行单通道转换。当2位数据为“1”,“1”时,仅对CH1进行单通道转换。当2位数据为“0”,“0”时,将CH0作为正输入端IN+,CH1作为负输入端IN-进行输入。
表1 ADC0832多路复用模式
1.3、AT89S52与A/D接口电路
如图2所示为本文实验所用原理图中AT89s52与ADC0832的接口电路图部分,其中片选端与单片机P2.3口连接,时钟端与单片机P2.2口连接。由于所选单片机I/O口均为双向,且在工作时DI,DO两端并不同时有效,故将两引脚并联后与单片机P2.1口相连接进行数据通信。图2仅给出主控单片机,上电复位,晶振以及模数转换外设电路,缺省部分包括电源,检测及输出端口,三极管开关等其他逻辑转换电路,设计电路过程中考虑到工业现场的噪声干扰等因素,在输入输出端均添加光耦隔离以增强电路的抗干扰性能。
图2 ADC0832与AT89s52接口电路
2、真空度数据采集程序设计
2.1、看门狗程序设计
AT89S52内置看门狗,它由14位计数器组成,复位后,调用喂狗指令清零计数器,然后,每个机器周期该计数器自动加1,当计数值达到1FFF(2^14-1=16383)时,产生一个复位信号,系统复位。因此,在启动看门狗后,在16383个机器周期内,至少要调用一次喂狗指令,防止看门狗溢出复位,而这个时间是固定的,无法更改。当晶振12MHz时每16毫秒需喂一次狗。为了保证足够的抗干扰能力,喂狗时间一般不超过14ms(即留有10%的裕量)。
2.2、A/D通道初始化规则
芯片启动A/D转换时,首先将CLK时钟与CS片选电平置低,然后把DI数据信号输入端电平置高,由时钟的上升沿将起始位写入,最后由时钟负跳变加一个DI反转操作。并且保持低电平直到转换结束。
2.3、A/D数据读取规则
由于ADC0832数据采样频率高,转换时间(仅为0.32μs)快的特点,考虑到方便程序的移植,故本文中数据读取以子程序的形式给出。首先定义局部变量并初始化AD通道,选择单通道10,待第二个脉冲来临,CLK第二个上升沿,通道的第一位开始写入,延时等待,第三个脉冲上升沿到来,通道的第二位写入,待到第四个脉冲,通道号选择完。读数据子程序本文采用由高位向低位读取八位数据,待CLK下降沿可以读出,高八位数据读完后则开始由低八位向高八位读取数据并最终判断二者是否相等,如果相等就把数据赋值给DAT。
2.4、数据处理程序
数据处理子函数完成对数据的数字滤波功能,采用去极值求均值的方法,具体思路为对数据进行采样后,求取每10次采样数据的最大值与最小值及和,去掉一个最大值,一个最小值后,求取采样数据的平均值,并返回滤波后的数字信号。
2.5、程序流程图
如图3为程序流程图,其中左侧为主程序,右侧为A/D转换子函数。
图3 程序流程图
3、结论
本文成功的通过控制ADC0832对真空度数据进行采集,并且利用单片机AT89S52的程序控制转换时钟脉冲方法,实现了真空度检测的设计目的,为工业控制中广泛应用的真空度检测提出了切实可行的方案,并通过实验及软硬件的具体实现证实了该方法的有效性。