adc0832與at89s52接口電路及真空度數(shù)據(jù)采集
真空系統(tǒng)在電力、石油化工、醫(yī)療制藥、塑料、環(huán)保、醫(yī)療器械等行業(yè)都得到了廣泛地應(yīng)用,隨著真空應(yīng)用領(lǐng)域的不斷擴(kuò)展和深入,對(duì)真空技術(shù)指標(biāo)要求亦越來(lái)越高,例如,在金剛石鍍膜裝置中,由于沉積金剛石膜的時(shí)間長(zhǎng)達(dá)幾十個(gè)小時(shí),真空室真空度的穩(wěn)定性對(duì)成膜質(zhì)量的好壞有很大的影響,所以保持真空度的穩(wěn)定將成為一個(gè)關(guān)鍵性的技術(shù)問(wèn)題;離心式水泵在抽真空引水過(guò)程及水泵抽水過(guò)程中,離心式水泵入口的真空度已成為離心式水泵起/停、故障診斷的重要依據(jù)。只有將壓力傳感器獲取的模擬信號(hào)進(jìn)行有效的A/D轉(zhuǎn)換成數(shù)字量后,才能輸入單片機(jī)中進(jìn)行處理,以及與PC通信及后續(xù)的波形顯示和分析。筆者提出了ADC0832與壓力傳感器(PTB710)相結(jié)合,并利用單片機(jī)AT89S52的程序控制轉(zhuǎn)換時(shí)鐘脈沖方法,對(duì)真空度數(shù)據(jù)進(jìn)行檢測(cè)。
1、A/D轉(zhuǎn)換電路
1.1、ADC0832芯片引腳說(shuō)明如圖1為ADC0832的引腳圖,其中CS為片選端,低電平有效;CH0,CH1為兩路模擬信號(hào)輸入端;DI兩路模擬輸入選擇輸入端;DO為模數(shù)轉(zhuǎn)換結(jié)果串行輸出端;CLK為串行時(shí)鐘輸入端;VCC(REF)為正電源端和基準(zhǔn)電壓輸入端;GND為電源地。
1.2、ADC0832工作控制原理
如表1所示為ADC0832工作時(shí)的多路復(fù)用尋址,包括單端多路復(fù)用模式及微分多路復(fù)用模式,通過(guò)對(duì)DI,DO兩個(gè)數(shù)據(jù)位操作進(jìn)行通道選擇,當(dāng)此2位數(shù)據(jù)位為“1”,“0”時(shí),僅對(duì)CH0進(jìn)行單通道轉(zhuǎn)換。當(dāng)2位數(shù)據(jù)為“1”,“1”時(shí),僅對(duì)CH1進(jìn)行單通道轉(zhuǎn)換。當(dāng)2位數(shù)據(jù)為“0”,“0”時(shí),將CH0作為正輸入端IN+,CH1作為負(fù)輸入端IN-進(jìn)行輸入。
表1 ADC0832多路復(fù)用模式
1.3、AT89s52與A/D接口電路
如圖2所示為本文實(shí)驗(yàn)所用原理圖中AT89s52與ADC0832的接口電路圖部分,其中片選端與單片機(jī)P2.3口連接,時(shí)鐘端與單片機(jī)P2.2口連接。由于所選單片機(jī)I/O口均為雙向,且在工作時(shí)DI,DO兩端并不同時(shí)有效,故將兩引腳并聯(lián)后與單片機(jī)P2.1口相連接進(jìn)行數(shù)據(jù)通信。圖2僅給出主控單片機(jī),上電復(fù)位,晶振以及模數(shù)轉(zhuǎn)換外設(shè)電路,缺省部分包括電源,檢測(cè)及輸出端口,三極管開(kāi)關(guān)等其他邏輯轉(zhuǎn)換電路,設(shè)計(jì)電路過(guò)程中考慮到工業(yè)現(xiàn)場(chǎng)的噪聲干擾等因素,在輸入輸出端均添加光耦隔離以增強(qiáng)電路的抗干擾性能。
圖2 ADC0832與AT89s52接口電路
2、真空度數(shù)據(jù)采集程序設(shè)計(jì)
2.1、看門狗程序設(shè)計(jì)
AT89S52內(nèi)置看門狗,它由14位計(jì)數(shù)器組成,復(fù)位后,調(diào)用喂狗指令清零計(jì)數(shù)器,然后,每個(gè)機(jī)器周期該計(jì)數(shù)器自動(dòng)加1,當(dāng)計(jì)數(shù)值達(dá)到1FFF(2^14-1=16383)時(shí),產(chǎn)生一個(gè)復(fù)位信號(hào),系統(tǒng)復(fù)位。因此,在啟動(dòng)看門狗后,在16383個(gè)機(jī)器周期內(nèi),至少要調(diào)用一次喂狗指令,防止看門狗溢出復(fù)位,而這個(gè)時(shí)間是固定的,無(wú)法更改。當(dāng)晶振12MHz時(shí)每16毫秒需喂一次狗。為了保證足夠的抗干擾能力,喂狗時(shí)間一般不超過(guò)14ms(即留有10%的裕量)。
2.2、A/D通道初始化規(guī)則
芯片啟動(dòng)A/D轉(zhuǎn)換時(shí),首先將CLK時(shí)鐘與CS片選電平置低,然后把DI數(shù)據(jù)信號(hào)輸入端電平置高,由時(shí)鐘的上升沿將起始位寫(xiě)入,最后由時(shí)鐘負(fù)跳變加一個(gè)DI反轉(zhuǎn)操作。并且保持低電平直到轉(zhuǎn)換結(jié)束。
2.3、A/D數(shù)據(jù)讀取規(guī)則
由于ADC0832數(shù)據(jù)采樣頻率高,轉(zhuǎn)換時(shí)間(僅為0.32μs)快的特點(diǎn),考慮到方便程序的移植,故本文中數(shù)據(jù)讀取以子程序的形式給出。首先定義局部變量并初始化AD通道,選擇單通道10,待第二個(gè)脈沖來(lái)臨,CLK第二個(gè)上升沿,通道的第一位開(kāi)始寫(xiě)入,延時(shí)等待,第三個(gè)脈沖上升沿到來(lái),通道的第二位寫(xiě)入,待到第四個(gè)脈沖,通道號(hào)選擇完。讀數(shù)據(jù)子程序本文采用由高位向低位讀取八位數(shù)據(jù),待CLK下降沿可以讀出,高八位數(shù)據(jù)讀完后則開(kāi)始由低八位向高八位讀取數(shù)據(jù)并最終判斷二者是否相等,如果相等就把數(shù)據(jù)賦值給DAT。
2.4、數(shù)據(jù)處理程序
數(shù)據(jù)處理子函數(shù)完成對(duì)數(shù)據(jù)的數(shù)字濾波功能,采用去極值求均值的方法,具體思路為對(duì)數(shù)據(jù)進(jìn)行采樣后,求取每10次采樣數(shù)據(jù)的最大值與最小值及和,去掉一個(gè)最大值,一個(gè)最小值后,求取采樣數(shù)據(jù)的平均值,并返回濾波后的數(shù)字信號(hào)。
2.5、程序流程圖
如圖3為程序流程圖,其中左側(cè)為主程序,右側(cè)為A/D轉(zhuǎn)換子函數(shù)。
圖3 程序流程圖
3、結(jié)論
本文成功的通過(guò)控制ADC0832對(duì)真空度數(shù)據(jù)進(jìn)行采集,并且利用單片機(jī)AT89S52的程序控制轉(zhuǎn)換時(shí)鐘脈沖方法,實(shí)現(xiàn)了真空度檢測(cè)的設(shè)計(jì)目的,為工業(yè)控制中廣泛應(yīng)用的真空度檢測(cè)提出了切實(shí)可行的方案,并通過(guò)實(shí)驗(yàn)及軟硬件的具體實(shí)現(xiàn)證實(shí)了該方法的有效性。