周瑞卿 褚政泱
(南京信息工程大學(xué)信息與控制學(xué)院,江蘇南京 210044)
基于Labview的直流電壓表設(shè)計
周瑞卿 褚政泱
(南京信息工程大學(xué)信息與控制學(xué)院,江蘇南京 210044)
以單片機(jī)IAP15F2K61S2為核心的下位機(jī)進(jìn)行電壓采集和 A/D 轉(zhuǎn)換,通過串口與上位機(jī)進(jìn)行數(shù)據(jù)通信,利用虛擬儀器 LabVIEW 環(huán)境開發(fā)了包括通信匹配、數(shù)據(jù)處理、顯示及存儲等模塊在內(nèi)的電壓表采集系統(tǒng)的上位機(jī)軟件,實現(xiàn)了虛擬數(shù)字直流電壓表的設(shè)計和開發(fā)。經(jīng)測試,本文設(shè)計的虛擬電壓表運(yùn)行良好,靈敏度可達(dá) 4.9mV。可拓展性強(qiáng),人機(jī)交互界面優(yōu)良,具有良好的推廣價值。
LabVIEW IAP15F2K61S2 直流電壓表 串口通信
現(xiàn)有的直流數(shù)字電壓表采用模數(shù)(Analog/Digital,A/D)轉(zhuǎn)換器件和集成邏輯器件進(jìn)行設(shè)計,不便于系統(tǒng)升級與集成,顯示界面單一,且不方便對采集到的電壓值進(jìn)行存儲與處理。而采用集成了ADC的MCU及虛擬儀器技術(shù)設(shè)計電壓表,采樣速率高精度高[1,2]。而且虛擬電壓表突破了傳統(tǒng)電壓表的功能局限,利用功能強(qiáng)大的個人計算機(jī)來完成信號的處理與存儲,使計算機(jī)功能最大化地服務(wù)虛擬儀器[3,4]。
本文采用STC公司最新款單片機(jī)IAP15F2K61S2和美國國家儀器公司(National Instrument,NI)的LabVIEW編程語言開發(fā)的虛擬電壓表,采樣速率可達(dá)0.3MHz,靈敏度可達(dá)4.9mV。并可根據(jù)自己的需要定制功能,可作為實驗設(shè)備投入高等院校教學(xué),具有拓展性強(qiáng)可二次開發(fā)后期維護(hù)成本低等優(yōu)點(diǎn)。
上位機(jī)的軟件開發(fā)平臺目前主要有兩類:
第一類是基于傳統(tǒng)語言的Visual Basic、Visual C++、Delphi等,這類開發(fā)語言具有適用面廣、開發(fā)靈活的特點(diǎn)。但這種開發(fā)方式對測試人員要求很高,用這種平臺語言開發(fā)測試工程軟件難度大、周期長、費(fèi)用高、可拓展性差。
第二類是基于圖形化的編程軟件,如NI公司的LabVIEW、HP公司的VEE等。這類軟件都通過建立和連接圖標(biāo)來構(gòu)成虛擬工作程序并定義其功能,而不是用傳統(tǒng)的文本編輯形式。他們具有編程效率高、通用性強(qiáng)、交叉平臺互換性好的特點(diǎn),適用于大批量多品種儀器的生產(chǎn)。
鑒于以上考慮,在此系統(tǒng)中我們選擇LabVIEW作為上位機(jī)軟件的開發(fā)平臺。
下位機(jī)硬件電路核心為IAP15F2K61S2單片機(jī)。它屬于STC15F2K60S2系列單片機(jī)。完全兼容傳統(tǒng)8051,但速度快8-12倍。內(nèi)部集成高精度R/C時鐘,5MHz~35MH寬范圍可設(shè)置,可徹底省掉外部昂貴的晶振和外部復(fù)位電路。61k字節(jié)的閃存程序存儲器,高達(dá)2k字節(jié)的SRAM。內(nèi)置8路高速10位A/D轉(zhuǎn)換(30萬次/秒),2組高速異步串行通信端口。
系統(tǒng)上電后,單片機(jī)進(jìn)行初始化工作,初始化結(jié)束后,單片機(jī)驅(qū)動AD模塊采集電壓值,單片機(jī)通過AD中斷判斷AD轉(zhuǎn)換是否結(jié)束,結(jié)束則讀取數(shù)據(jù)并轉(zhuǎn)換成電壓值,并且判讀以何種單位顯示,之后送入液晶顯示器顯示,并送上位機(jī)LabVIEW軟件進(jìn)行處理。此外,電壓表下位機(jī)還具備自動休眠功能,即一段時間后使單片機(jī)自動進(jìn)入掉電模式,從而降低系統(tǒng)的功耗。4 上位機(jī)軟件設(shè)計
LabVIEW開發(fā)上位機(jī)軟件的編程思想是面向?qū)ο蟮?所以開發(fā)時我將想要實現(xiàn)的功能模塊化。主要分為4個模塊:實時時鐘模塊、電壓表界面、示波器界面與數(shù)據(jù)存儲模塊、及通信設(shè)置界面。
在LabVIEW環(huán)境中使用串口與在其他開發(fā)環(huán)境中的開發(fā)過程類似[7]。
首先需要串口配置函數(shù)完成串口的參數(shù)設(shè)置。如果初始化沒有問題,就可以使用這個串口進(jìn)行數(shù)據(jù)收發(fā)。發(fā)送數(shù)據(jù)使用VISA寫入函數(shù),接收數(shù)據(jù)使用VISA讀取函數(shù)。在接收數(shù)據(jù)之前需要使用串口字節(jié)數(shù)函數(shù)查詢當(dāng)前串口接收緩沖區(qū)中的數(shù)據(jù)字節(jié)數(shù),如果VISA讀取函數(shù)要讀取的字節(jié)數(shù)大于緩沖區(qū)中的數(shù)據(jù)字節(jié)數(shù),VISA讀取函數(shù)操作將一直等待,直至Timeout或者緩沖區(qū)中的數(shù)據(jù)字節(jié)數(shù)達(dá)到要求的字節(jié)數(shù)。在串口使用結(jié)束后,使用VISA關(guān)閉函數(shù)結(jié)束與VISA資源名稱指定的串口之間的會話。
在上位機(jī)中開發(fā)示波器界面的原因是方便觀察電壓值得變化趨勢,有利于數(shù)據(jù)的直觀顯示與分析。此外,上位機(jī)還具備數(shù)據(jù)存儲功能。如運(yùn)行程序后,在上圖的文件路徑輸入指定的文件存儲路徑與文件類型后,下位機(jī)采集上傳的電壓值便會自動保存在剛剛設(shè)定好的文件當(dāng)中。
本文基于IAP15F2K61S2和虛擬儀器技術(shù)設(shè)計并制作了虛擬電壓表,采樣速率可達(dá)0.3MHz,數(shù)據(jù)傳輸速率可達(dá)115200bps,靈敏度可達(dá)4.9mV。由于采用虛擬儀器技術(shù),降低了系統(tǒng)的開發(fā)成本和難度,系統(tǒng)集成度高,并具有良好的可拓展性,具有一定的推廣價值。
[1]丁紅斌,秦會斌,孫順遠(yuǎn).基于STM32的虛擬示波器的設(shè)計與實現(xiàn)[J].電子器件,2009,32(6):1007-1010.
[2]張立勛,李雪偉,唐小景.STM32與LabVIEW串行通信的設(shè)計[J].煤礦機(jī)械,2011,32(5):215-217.
[3]張勇,董浩斌.基于STM32和LabVIEW的地震數(shù)據(jù)采集卡的設(shè)計[J].測控技術(shù)與儀器儀表,2012,38(10):72-75.
[4]羅銀波,敬東胡,柏青夏等.基于LabVIEW的數(shù)字萬用表設(shè)計與實現(xiàn)[J].科學(xué)技術(shù)與工程,2011,11(19):4592-4595.
[5]莫勇濤,楊景常.基于LABVIEW的多功能虛擬直流電壓表設(shè)計[J].智能儀表與傳感器,2011,19(6):1507-1509
[6]高利鑫,唐飛,王曉浩.基于TMS32OF2812與LabVIEW的FAIMS信號采集處理系統(tǒng)[J].測控技術(shù),2012,31(12):22-25.
[7]李江全,劉恩博,胡蓉.LabVIEW虛擬儀器數(shù)據(jù)采集與串口通信測控應(yīng)用實戰(zhàn)[M].北京:人民郵電出版社,2010.