張佑春
(安徽工商職業(yè)學(xué)院 電子信息系,合肥231131)
伴隨著電子技術(shù)、計算機(jī)技術(shù)、測試測量技術(shù)等的飛速發(fā)展,傳統(tǒng)的測試儀器由于其本身存在的測量精度、測量誤差、硬件固化及維護(hù)成本等諸多缺陷,越來越不能適應(yīng)當(dāng)下測試測量行業(yè)發(fā)展的要求。20世紀(jì)80年代由NI公司提出的虛擬儀器是對傳統(tǒng)儀器時代的一次革命,虛擬儀器主要借助于計算機(jī)豐富的軟硬件資源,實現(xiàn)傳統(tǒng)測試測量儀器的數(shù)據(jù)采集功能,同時完成對信號的調(diào)理、處理、存儲、輸出和顯示等諸多功能[1-3]。虛擬儀器開發(fā)中使用一種圖形化的編程語言——LabVIEW,該軟件內(nèi)置VXI、GPIB、RS-232、RS-422、RS-485、USB等協(xié)議接口,富含ActiveX、TCP/IP等軟件標(biāo)準(zhǔn)庫函數(shù),同時還提供CIN代碼接口節(jié)點和DLL動態(tài)鏈接庫功能[4-6]。軟件編程摒棄傳統(tǒng)的文本語言,采用直觀的圖形化語言——G語言,編程方便、界面友好。
本研究正是在綜合考慮傳統(tǒng)儀器與虛擬儀器的各自特點與應(yīng)用場合后,采用了虛擬儀器LabVIEW軟件,以計算機(jī)豐富的軟硬件為平臺,設(shè)計了一種新型的數(shù)字式直流電壓表。
虛擬直流電壓表的硬件系統(tǒng)設(shè)計主要包括測量對象、A/D轉(zhuǎn)換模塊、增益選擇模塊和通道輸入模塊4個部分。系統(tǒng)框圖如圖1所示。
圖1 虛擬直流電壓表的硬件系統(tǒng)設(shè)計框圖Fig.1 Design diagram of virtual DC voltmeter hardware system
A/D轉(zhuǎn)換電路設(shè)計采用雙積分式12位A/D轉(zhuǎn)換芯片ICL7109,該芯片具有轉(zhuǎn)換速度快、轉(zhuǎn)換精度高等特點。為與微處理器通信方便,該芯片分別內(nèi)置了2個14位的數(shù)據(jù)寄存器和鎖存器,大大簡化了外圍電路設(shè)計。ICL7109提供了2種數(shù)據(jù)交換方式,即間接方式和直接方式,可以通過設(shè)置MODE引腳完成方式設(shè)定。前者采用標(biāo)準(zhǔn)工業(yè)數(shù)據(jù)交換格式,主要針對遠(yuǎn)程數(shù)據(jù)采集;后者在數(shù)據(jù)輸出過程中,由B1~B8完成低8位字節(jié)數(shù)據(jù)輸出,由B9~B12完成高4位數(shù)據(jù)輸出。該方式可在片選和字節(jié)使能的控制下直接讀取數(shù)據(jù)[7-9]。系統(tǒng)MODE引腳設(shè)置低電平,為直接方式,通過改變電位器的狀態(tài),經(jīng)INH引腳完成模擬電壓Vx的輸入。A/D轉(zhuǎn)換時序圖與模塊電路原理圖分別如圖2、圖3所示。
鑒于待測模擬信號比較微弱,為得到合適的測量信號,電路引入集成運算放大器LM324,增益選擇功能可以通過模擬開關(guān)CD4052實現(xiàn)。它是數(shù)字控制的模擬數(shù)據(jù)選擇/分配器,具有低導(dǎo)通阻抗和低泄漏電流等特性,通過2個二進(jìn)制輸入端A、B和一個禁止輸入端INH來實現(xiàn)通道選擇。模塊電路中支持4檔增益選擇,即0.5、1、2、5倍。增益選擇模塊電路如圖4所示。
通道輸入模塊電路提供了3路輸入信號,分別是2.048V參考電壓VREF輸入通道,0V接地通道,以及直流測量電壓輸入通道,即7109+和7109-。需要說明的是,測量電壓通過調(diào)節(jié)電位器來實現(xiàn),電壓范圍在0~±4V之間。
由ICL7109的A/D轉(zhuǎn)換關(guān)系,有
圖2 A/D轉(zhuǎn)換時序圖Fig.2 A/D conversion timing chart
式中:VIN—A/D轉(zhuǎn)換器輸入電壓;NOUT—A/D轉(zhuǎn)換結(jié)果的12位數(shù)字量;VREF—A/D轉(zhuǎn)換器外部參考輸入電壓。調(diào)節(jié)至VREF=2.048V,此時NOUT可以看作為以mV為單位表示的VIN,即
圖3 A/D轉(zhuǎn)換模塊電路原理圖Fig.3 A/D converter module circuit diagram
圖4 增益選擇模塊電路原理圖Fig.4 Gain selection module circuit diagram
系統(tǒng)基于PC機(jī)的虛擬儀器軟件平臺——LabVIEW構(gòu)建測量方案,實現(xiàn)直流電壓的數(shù)字化測量,完成虛擬交流數(shù)字電壓表的設(shè)計。整個流程采取順序程序結(jié)構(gòu),依次實現(xiàn)對象選擇、量程選擇、EPP接口初始化與讀數(shù)校驗、7109啟動與運行、量程超出判斷,以及結(jié)果顯示等功能。整個軟件設(shè)計流程圖如圖5所示。
程序設(shè)計主要借助Labwindows/CVI編寫底層fp函數(shù),在程序?qū)崿F(xiàn)時可直接調(diào)用驅(qū)動函數(shù)動態(tài)鏈接,即7109.dll函數(shù),驅(qū)動函數(shù)原型及常數(shù)和變量在封裝在cvidll.prj工程中。程序設(shè)計時,應(yīng)加入動態(tài)鏈接7109.dll動態(tài)鏈接庫函數(shù)。實現(xiàn)直流電壓測量的驅(qū)動函數(shù)主要包括以下函數(shù):
void stdcall epp_init(void) ∥初始化EPP接口;
int stdcall epp_read_check(void) ∥EPP讀數(shù)檢查;
int stdcall run_7109(unsigned char m_what,unsigned char gain_cw,double vref,double*rult) ∥運行7109,實現(xiàn)7109的讀數(shù)及轉(zhuǎn)化;
void stdcall amp_7109(unsigned char gain_cw,double*gain,int*showdot) ∥根據(jù)量程設(shè)置增益和顯示位數(shù);
void stdcall indicator_7109(unsigned char gain_cw,double*indicator_gain,double*indicator_max) ∥根據(jù)量程設(shè)置7109輸入增益,電壓表最大顯示數(shù)字;
void stdcall start_7109(void) ∥啟動7109;
int stdcall display(double display_data) ∥顯示。
虛擬直流數(shù)字電壓表的主要功能是用于完成測量與顯示電位器或外部直流電壓。虛擬儀器前面板設(shè)計有測量對象選擇按鈕和測量與自測選擇按鈕,在數(shù)據(jù)測量中提供了數(shù)字和表盤兩者同時顯示。參照高速數(shù)據(jù)采集的相關(guān)主要性能指標(biāo),設(shè)計設(shè)置了8檔量程,即8、4、2、0.8、0.4、0.2、0.08、0.04V,對應(yīng)增益為0.5、1、2、5、10、20、50、100倍。同時,前面板上設(shè)置超量程指示,測量的啟動和退出等功能??紤]到電壓表在實際使用時的需要,故將量程選在最大檔,量程缺省值設(shè)為8V。虛擬直流電壓表前面板設(shè)計如圖6所示。
圖5 軟件設(shè)計流程圖Fig.5 Software design flow
圖6 虛擬直流電壓表前面板Fig.6 Front panel of virtual DC voltmeter
由前面板設(shè)計可知,“退出”按扭控制了程序的運行狀況,“測量”按鈕控制了測量狀況,因而可采用structure中的while循環(huán)作為設(shè)計主框架。考慮到LabVIEW的順序流程特性,順序結(jié)構(gòu)同樣適用于循環(huán)內(nèi)部設(shè)計。因此,可借助structure中的flat sequence case結(jié)構(gòu)完成程序流圖設(shè)計。
整體設(shè)計流程大體上由4個步驟構(gòu)成:首先,對EPP接口初始化,可通過調(diào)用動態(tài)鏈接庫函數(shù)來完成,同時庫函數(shù)無需返回數(shù)值;其次,啟動7109,依然可通過調(diào)用動態(tài)鏈接庫函數(shù)來完成,庫函數(shù)仍無需返回數(shù)值;再次,啟用EPP讀數(shù)據(jù)校驗,此處通過設(shè)置函數(shù)返回值來判斷EPP讀數(shù)據(jù)成功與否,成功則繼續(xù),否則將“測量”按鈕彈起,程序停止;最后,運行7109,借助case結(jié)構(gòu)選擇測量對象和量程,把run_7109的輸出用于表盤和led數(shù)字顯示。超量程可根據(jù)7109的返回值判斷,不等于1則超出,同時點亮超量程指示燈。部分程序框圖面板如圖7所示。
圖7 虛擬直流電壓表程序框圖面板Fig.7 Program diagram panel of virtual DC voltmeter
為分析與比較虛擬直流電壓表和傳統(tǒng)電壓表的測量測試性能,分別對被測對象進(jìn)行了測試,采用3塊傳統(tǒng)直流電壓表得到平均值,再與虛擬直流電壓表進(jìn)行誤差比較。容易得出,采用虛擬直流電壓表測試數(shù)據(jù)誤差小、精度高。測試結(jié)果分別如表1、表2所示。
表1 傳統(tǒng)電壓表測試數(shù)據(jù)Table 1 Test data of traditional voltmeter
表2 虛擬直流電壓表測試數(shù)據(jù)Table 2 Test data virtual DC voltmeter
采用虛擬儀器LabVIEW軟件設(shè)計的虛擬直流電壓表,大大簡化了傳統(tǒng)電壓表的硬件結(jié)構(gòu)與制造維護(hù)成本,克服了傳統(tǒng)電壓表測量精度不高,數(shù)據(jù)無法存儲、分析、計算以及攜帶不方便等一系列缺點;同時,簡化的圖形編程語言進(jìn)一步縮短了開發(fā)周期,也方便后期產(chǎn)品功能更新和性能優(yōu)化。由于設(shè)計選取的A/D轉(zhuǎn)換器、參考電壓和增益電阻的精度高,經(jīng)過實驗測試,開發(fā)的虛擬直流電壓表具有測試方便、測量精度高等優(yōu)勢,有廣闊的市場應(yīng)用前景。
[1] National Instruments Corporation.LabVIEW User Manual[Z].2008.
[2] 陳國順,于涵偉,王格芳,等.測試工程及LabVIEW應(yīng)用[M].北京:清華大學(xué)出版社,2013.
[3] 章佳榮,王璨,趙國宇.精通LabVIEW虛擬儀器程序設(shè)計與案例實現(xiàn)[M].北京:人民郵電出版社,2013.
[4] 陳世超.基于虛擬儀器的多路電壓測量的設(shè)計與實現(xiàn)[J].電子設(shè)計工程,2012,20(8):82-84.
[5] 程雙江,李世平,鄭堂.基于LabVIEW 的數(shù)字電壓表設(shè)計[J].電子測量技術(shù),2013,36(1):88-90,104.
[6] 范強(qiáng),付永麗.基于LabVIEW 8.2的多用虛擬電壓表設(shè)計[J].現(xiàn)代電子技術(shù),2009,311(24),183-185,188.
[7] 莫勇濤,楊景常.基于LabVIEW 的多功能虛擬直流電壓表設(shè)計[J].計算機(jī)測量與控制,2011,19(6):1507-1509.
[8] 王鋒,楊超,趙河明.基于LabVIEW 的虛擬溫度檢測系統(tǒng)[J].測試技術(shù)學(xué)報,2013,27(5):431-435.
[9] 劉東升,尹成群,呂安強(qiáng),等.基于虛擬儀器技術(shù)的電子測量儀器平臺開發(fā)[J].儀表技術(shù)與傳感器,2011(9):23-25,55.