王 洋,巫慶輝,龐艷偉
(渤海大學 遼寧 錦州 121013)
真空系統(tǒng)在電力、石油化工、醫(yī)療制藥、塑料、環(huán)保、醫(yī)療器械等行業(yè)都得到了廣泛地應用[1],隨著真空應用領域的不斷擴展和深入,對真空技術指標要求亦越來越高,例如,在金剛石鍍膜裝置中,由于沉積金剛石膜的時間長達幾十個小時,真空室真空度的穩(wěn)定性對成膜質(zhì)量的好壞有很大的影響,所以保持真空度的穩(wěn)定將成為一個關鍵性的技術問題[2];離心式水泵在抽真空引水過程及水泵抽水過程中,離心式水泵入口的真空度已成為離心式水泵起/停、故障診斷的重要依據(jù)。只有將壓力傳感器獲取的模擬信號進行有效的A/D轉(zhuǎn)換成數(shù)字量后,才能輸入單片機中進行處理,以及與PC通信及后續(xù)的波形顯示和分析[3]。筆者提出了ADC0832與壓力傳感器(PTB710)相結(jié)合,并利用單片機AT89S52的程序控制轉(zhuǎn)換時鐘脈沖方法,對真空度數(shù)據(jù)進行檢測。
ADC0832是由美國國家半導體公司生產(chǎn)的一種8位分辨率、雙通道A/D轉(zhuǎn)換芯片。由于其體積小,兼容性強,性價比高而深受單片機愛好者及企業(yè)的歡迎,該芯片目前在工業(yè)控制及教學中有著較高的普及率和廣泛的使用。
如圖1為ADC0832的引腳圖,其中CS為片選端,低電平有效;CH0,CH1為兩路模擬信號輸入端;DI兩路模擬輸入選擇輸入端;DO為模數(shù)轉(zhuǎn)換結(jié)果串行輸出端;CLK為串行時鐘輸入端;VCC(REF)為正電源端和基準電壓輸入端;GND為電源地。
圖1 ADC0832引腳圖Fig.1 Pin figure of ADC0832
如表1所示為ADC0832工作時的多路復用尋址,包括單端多路復用模式及微分多路復用模式,通過對DI,DO兩個數(shù)據(jù)位操作進行通道選擇,當此2位數(shù)據(jù)位為“1”,“0”時,僅對 CH0進行單通道轉(zhuǎn)換。當 2位數(shù)據(jù)為“1”,“1”時,僅對 CH1進行單通道轉(zhuǎn)換。當2位數(shù)據(jù)為“0”,“0”時,將CH0作為正輸入端IN+,CH1作為負輸入端IN-進行輸入。
表1 ADC0832多路復用模式Tab.1 ADC0832 MUX addressing
如圖2所示為本文實驗所用原理圖中AT89s52與ADC0832的接口電路圖部分,其中片選端與單片機P2.3口連接,時鐘端與單片機P2.2口連接。由于所選單片機I/O口均為雙向,且在工作時DI,DO兩端并不同時有效,故將兩引腳并聯(lián)后與單片機P2.1口相連接進行數(shù)據(jù)通信。圖2僅給出主控單片機,上電復位,晶振以及模數(shù)轉(zhuǎn)換外設電路,缺省部分包括電源,檢測及輸出端口,三極管開關等其他邏輯轉(zhuǎn)換電路,設計電路過程中考慮到工業(yè)現(xiàn)場的噪聲干擾等因素,在輸入輸出端均添加光耦隔離以增強電路的抗干擾性能。
圖2 ADC0832與AT89s52接口電路Fig.2 Interface circuit of ADC0832 and AT89s52
考慮到設計應用于工業(yè)現(xiàn)場,各種外界干擾可能導致單片機程序跑飛,如果沒有人為的復位操作,那么軟件系統(tǒng)將完全癱瘓,因此在程序編寫時加入看門狗功能,以保證微控制器 (MCU)在意外狀況下重新回復到系統(tǒng)上電狀態(tài),AT89S52內(nèi)置看門狗,它由14位計數(shù)器組成,復位后,調(diào)用喂狗指令清零計數(shù)器,然后,每個機器周期該計數(shù)器自動加1,當計數(shù)值達到 1FFF(2^14-1=16 383)時,產(chǎn)生一個復位信號,系統(tǒng)復位。因此,在啟動看門狗后,在16 383個機器周期內(nèi),至少要調(diào)用一次喂狗指令,防止看門狗溢出復位,而這個時間是固定的,無法更改。當晶振12 MHz時每16毫秒需喂一次狗。為了保證足夠的抗干擾能力,喂狗時間一般不超過14 ms(即留有10%的裕量)。
芯片啟動A/D轉(zhuǎn)換時,首先將CLK時鐘與CS片選電平置低,然后把DI數(shù)據(jù)信號輸入端電平置高,由時鐘的上升沿將起始位寫入,最后由時鐘負跳變加一個DI反轉(zhuǎn)操作。并且保持低電平直到轉(zhuǎn)換結(jié)束。
由于ADC0832數(shù)據(jù)采樣頻率高,轉(zhuǎn)換時間(僅為0.32 μs)快的特點,考慮到方便程序的移植,故本文中數(shù)據(jù)讀取以子程序的形式給出。首先定義局部變量并初始化AD通道,選擇單通道10,待第二個脈沖來臨,CLK第二個上升沿,通道的第一位開始寫入,延時等待,第三個脈沖上升沿到來,通道的第二位寫入,待到第四個脈沖,通道號選擇完。讀數(shù)據(jù)子程序本文采用由高位向低位讀取八位數(shù)據(jù),待CLK下降沿可以讀出,高八位數(shù)據(jù)讀完后則開始由低八位向高八位讀取數(shù)據(jù)并最終判斷二者是否相等,如果相等就把數(shù)據(jù)賦值給DAT。
數(shù)據(jù)處理子函數(shù)完成對數(shù)據(jù)的數(shù)字濾波功能,采用去極值求均值的方法,具體思路為對數(shù)據(jù)進行采樣后,求取每10次采樣數(shù)據(jù)的最大值與最小值及和,去掉一個最大值,一個最小值后,求取采樣數(shù)據(jù)的平均值,并返回濾波后的數(shù)字信號。
如圖3為程序流程圖,其中左側(cè)為主程序,右側(cè)為A/D轉(zhuǎn)換子函數(shù)。
圖3 程序流程圖Fig.3 Program flow chart
A/D轉(zhuǎn)換子函數(shù)部分代碼:
本文成功的通過控制ADC0832對真空度數(shù)據(jù)進行采集,并且利用單片機AT89S52的程序控制轉(zhuǎn)換時鐘脈沖方法,實現(xiàn)了真空度檢測的設計目的,為工業(yè)控制中廣泛應用的真空度檢測提出了切實可行的方案,并通過實驗及軟硬件的具體實現(xiàn)證實了該方法的有效性。
[1]力僑科技.真空泵的應用領域 [EB/OL]. (2012-02-13)[2013-03-05].http://www.zblqv.com/News/News/News_45.html.
[2]程健,鄔欽崇.一種保持真空室真空度穩(wěn)定的控制系統(tǒng)[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]馮忠?guī)X,童英華,陳學煌.ADC0809在兩路數(shù)據(jù)采集系統(tǒng)中的應用[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轉(zhuǎn)換器ADC0832的C51編程[J].鄭州鐵路職業(yè)技術學院學報,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]佘東.單片機數(shù)字濾波程序設計與實現(xiàn)[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.