王 洋,巫庆辉,庞艳伟
(渤海大学 辽宁 锦州 121013)
真空系统在电力、石油化工、医疗制药、塑料、环保、医疗器械等行业都得到了广泛地应用[1],随着真空应用领域的不断扩展和深入,对真空技术指标要求亦越来越高,例如,在金刚石镀膜装置中,由于沉积金刚石膜的时间长达几十个小时,真空室真空度的稳定性对成膜质量的好坏有很大的影响,所以保持真空度的稳定将成为一个关键性的技术问题[2];离心式水泵在抽真空引水过程及水泵抽水过程中,离心式水泵入口的真空度已成为离心式水泵起/停、故障诊断的重要依据。只有将压力传感器获取的模拟信号进行有效的A/D转换成数字量后,才能输入单片机中进行处理,以及与PC通信及后续的波形显示和分析[3]。笔者提出了ADC0832与压力传感器(PTB710)相结合,并利用单片机AT89S52的程序控制转换时钟脉冲方法,对真空度数据进行检测。
ADC0832是由美国国家半导体公司生产的一种8位分辨率、双通道A/D转换芯片。由于其体积小,兼容性强,性价比高而深受单片机爱好者及企业的欢迎,该芯片目前在工业控制及教学中有着较高的普及率和广泛的使用。
如图1为ADC0832的引脚图,其中CS为片选端,低电平有效;CH0,CH1为两路模拟信号输入端;DI两路模拟输入选择输入端;DO为模数转换结果串行输出端;CLK为串行时钟输入端;VCC(REF)为正电源端和基准电压输入端;GND为电源地。
图1 ADC0832引脚图Fig.1 Pin figure of ADC0832
如表1所示为ADC0832工作时的多路复用寻址,包括单端多路复用模式及微分多路复用模式,通过对DI,DO两个数据位操作进行通道选择,当此2位数据位为“1”,“0”时,仅对 CH0进行单通道转换。当 2位数据为“1”,“1”时,仅对 CH1进行单通道转换。当2位数据为“0”,“0”时,将CH0作为正输入端IN+,CH1作为负输入端IN-进行输入。
表1 ADC0832多路复用模式Tab.1 ADC0832 MUX addressing
如图2所示为本文实验所用原理图中AT89s52与ADC0832的接口电路图部分,其中片选端与单片机P2.3口连接,时钟端与单片机P2.2口连接。由于所选单片机I/O口均为双向,且在工作时DI,DO两端并不同时有效,故将两引脚并联后与单片机P2.1口相连接进行数据通信。图2仅给出主控单片机,上电复位,晶振以及模数转换外设电路,缺省部分包括电源,检测及输出端口,三极管开关等其他逻辑转换电路,设计电路过程中考虑到工业现场的噪声干扰等因素,在输入输出端均添加光耦隔离以增强电路的抗干扰性能。
图2 ADC0832与AT89s52接口电路Fig.2 Interface circuit of ADC0832 and AT89s52
考虑到设计应用于工业现场,各种外界干扰可能导致单片机程序跑飞,如果没有人为的复位操作,那么软件系统将完全瘫痪,因此在程序编写时加入看门狗功能,以保证微控制器 (MCU)在意外状况下重新回复到系统上电状态,AT89S52内置看门狗,它由14位计数器组成,复位后,调用喂狗指令清零计数器,然后,每个机器周期该计数器自动加1,当计数值达到 1FFF(2^14-1=16 383)时,产生一个复位信号,系统复位。因此,在启动看门狗后,在16 383个机器周期内,至少要调用一次喂狗指令,防止看门狗溢出复位,而这个时间是固定的,无法更改。当晶振12 MHz时每16毫秒需喂一次狗。为了保证足够的抗干扰能力,喂狗时间一般不超过14 ms(即留有10%的裕量)。
芯片启动A/D转换时,首先将CLK时钟与CS片选电平置低,然后把DI数据信号输入端电平置高,由时钟的上升沿将起始位写入,最后由时钟负跳变加一个DI反转操作。并且保持低电平直到转换结束。
由于ADC0832数据采样频率高,转换时间(仅为0.32 μs)快的特点,考虑到方便程序的移植,故本文中数据读取以子程序的形式给出。首先定义局部变量并初始化AD通道,选择单通道10,待第二个脉冲来临,CLK第二个上升沿,通道的第一位开始写入,延时等待,第三个脉冲上升沿到来,通道的第二位写入,待到第四个脉冲,通道号选择完。读数据子程序本文采用由高位向低位读取八位数据,待CLK下降沿可以读出,高八位数据读完后则开始由低八位向高八位读取数据并最终判断二者是否相等,如果相等就把数据赋值给DAT。
数据处理子函数完成对数据的数字滤波功能,采用去极值求均值的方法,具体思路为对数据进行采样后,求取每10次采样数据的最大值与最小值及和,去掉一个最大值,一个最小值后,求取采样数据的平均值,并返回滤波后的数字信号。
如图3为程序流程图,其中左侧为主程序,右侧为A/D转换子函数。
图3 程序流程图Fig.3 Program flow chart
A/D转换子函数部分代码:
本文成功的通过控制ADC0832对真空度数据进行采集,并且利用单片机AT89S52的程序控制转换时钟脉冲方法,实现了真空度检测的设计目的,为工业控制中广泛应用的真空度检测提出了切实可行的方案,并通过实验及软硬件的具体实现证实了该方法的有效性。
[1]力侨科技.真空泵的应用领域 [EB/OL]. (2012-02-13)[2013-03-05].http://www.zblqv.com/News/News/News_45.html.
[2]程健,邬钦崇.一种保持真空室真空度稳定的控制系统[J].真空,1999,5(10):19-22.
CHENG Jian,WU Qin-chong.Controlsystem tokeep vacuum stability in vacuum chamber[J].Vacuum,1999,5(10):19-22.
[3]冯忠岭,童英华,陈学煌.ADC0809在两路数据采集系统中的应用[J].电子设计工程,2011,19(13):75-77.
FENG Zhong-ling,TONG Ying-hua,CHEN Xue-huang.Application of ADC0809 in two channel data collection system[J].Electronic Design Engineering,2011,19(13):75-77.
[4]梁明亮,韦成杰.单片机对串行A/D转换器ADC0832的C51编程[J].郑州铁路职业技术学院学报,2009,21(1):36-37.
LIANG Ming-liang,WEI Cheng-jie.MCU C51 programming of the serial A/D converter ADC0832[J].Journal of Zhengzhou Railway Vocation&Technical College,2009,21(1):36-37.
[5]顾涵.基于AT89S51单片机的电子血压计设计 [J].常熟理工学院学报,2011,25(8):97-100.
GU Han.The design of electronic blood pressure monitor based on AT89s51 MCU[J].Journal of changshu institute technology,2011,25(8):97-100.
[6]佘东.单片机数字滤波程序设计与实现[J].四川兵工学报,2012,33(9):78-80.
SHE Dong.Design and implementation of MCU digital filtering program[J].Journal of Sichuan Ordnance,2012,33(9):78-80.