摘 要: 研究了LabVIEW串口通信的應(yīng)用問題,,設(shè)計了一種應(yīng)用于數(shù)據(jù)采集的串口收錄系統(tǒng),。該系統(tǒng)只需設(shè)置相應(yīng)串口參數(shù)即可動態(tài)顯示硬件采集的數(shù)據(jù),并可實時存儲和回放采集到的數(shù)據(jù),,方便以后對采集數(shù)據(jù)進行研究,。實驗證明,該系統(tǒng)的穩(wěn)定性和可靠性較高,。
關(guān)鍵詞: LabVIEW,;串口通信;數(shù)據(jù)采集
可視化編程軟件LabVIEW不僅能很輕松地將各種軟硬件連接起來,,還提供了強大的后續(xù)數(shù)據(jù)處理能力,。與傳統(tǒng)儀器相比,虛擬儀器提高了儀器資源的可再用性和可移植性,,只需在原有基礎(chǔ)上作相應(yīng)改動即可增強它的功能,,無需更換硬件設(shè)備[1]?;诖?,本文在研究LabVIEW的基礎(chǔ)上,開發(fā)了基于LabVIEW的串口收錄系統(tǒng),,以單片機為核心的硬件部分作為前端數(shù)據(jù)采集系統(tǒng),,可實現(xiàn)200 kHz的采樣速率、16 bit的分辨率,,具有采樣率高,、應(yīng)用性強等優(yōu)點。該收錄系統(tǒng)將采集數(shù)據(jù)以曲線方式顯示在上位機上,,以二進制.dat格式記錄,,并且可回放記錄的數(shù)據(jù),這是該系統(tǒng)的創(chuàng)新點,。
1 系統(tǒng)總體方案
系統(tǒng)總體方案框圖如圖1所示,,主要由前端數(shù)據(jù)采集和上位機波形顯示記錄兩大部分組成。前端數(shù)據(jù)采集部分以單片機AT89C52為核心,,8 KB內(nèi)部ROM空間,,硬件部分采集到的數(shù)據(jù)通過串口通信傳送給上位機,收錄系統(tǒng)實時顯示,、記錄,、回放接收的數(shù)據(jù)。
2 硬件部分的設(shè)計
2.1 數(shù)據(jù)采集部分
該部分采用美信公司的MAX306芯片和ADI公司的AD976芯片,。MAX306內(nèi)部提供16個信號通道,,可在程序編程中指定某通道,通道選擇端由單片機P1口低4位控制,信號經(jīng)過某通道后送入A/D,;AD976采樣率為200 kHz/s,、分辨率為16 bit,采集信號范圍為-10 V~+10 V,,精度為(1/216)×VREF=(1/216)×20=0.305 mV,。A/D數(shù)據(jù)傳送端和單片機P0口相連,A/D控制端和P1口高4位相連,。
2.2 串口通信部分
上位機和下位機通過RS-232串口進行數(shù)據(jù)接收和發(fā)送,,傳輸介質(zhì)為二芯屏蔽電纜,簡單易用,。下位機采用TTL電平,,串口采用RS-232電平,因此串口通信需經(jīng)過電平轉(zhuǎn)換,,電路采用MAX232電平轉(zhuǎn)換芯片,,串口采用母頭接法。通信前先進行初始化,,包括串口工作方式,、通信波特率設(shè)定等,這在下位機軟件中實現(xiàn),。
3 軟件部分的設(shè)計
3.1下位機軟件部分
下位機軟件部分采用C51語言編寫,,這是專門為51系列單片機設(shè)計的高效率C語言編譯器,符合ANSI標(biāo)準(zhǔn),,程序代碼運行效率高,,比匯編語言更簡單易用[2]。
下位機軟件程序流程圖如圖2所示,。BUSY為轉(zhuǎn)換結(jié)束狀態(tài)標(biāo)志位,,BUSY=1表示轉(zhuǎn)換完成可以讀取,否則,,繼續(xù)轉(zhuǎn)換,。將讀取結(jié)果送給AT89C52處理,轉(zhuǎn)換為十進制后傳送給液晶和上位機,,喂狗部分防止程序跑飛,。軟件實現(xiàn)定點疊加平均數(shù)據(jù)處理、看門狗定時復(fù)位和冗余避錯功能,,將連續(xù)采集的3次數(shù)據(jù)求平均值,,使得采集結(jié)果更準(zhǔn)確。
其中十進制的轉(zhuǎn)換是關(guān)鍵,,轉(zhuǎn)化公式是:
實際模擬量=(1/216)×VREF×ValueP0,。
其中,,VREF為A/D參考電壓20 V,ValueP0為A/D轉(zhuǎn)換后的二進制結(jié)果,。
3.2 上位機軟件部分
上位機軟件部分采用LabVIEW語言編寫,,程序中用到VISA資源包,。VISA是虛擬儀器軟件構(gòu)架的縮寫,,是儀器編程的標(biāo)準(zhǔn)I/O API,可控制GPIB,、串口,、USB、以太網(wǎng),、PXI或VXI儀器,,并根據(jù)使用儀器的類型調(diào)用相應(yīng)的驅(qū)動程序,用戶無需學(xué)習(xí)各種儀器的通信協(xié)議[3],。
LabVIEW收錄系統(tǒng)程序流程圖如圖3所示,。按下開始讀取按鈕后,程序進行串口配置,,串口配置好后通信分兩路實現(xiàn),,分別用于數(shù)據(jù)讀取和數(shù)據(jù)存儲:讀取的數(shù)據(jù)顯示在波形圖標(biāo)中;數(shù)據(jù)以二進制格式.dat文件存儲在硬盤中,。存儲之前程序彈出對話框讓用戶指定存儲路徑,。波形顯示采集數(shù)據(jù)的同時,還可以回放之前已存儲的數(shù)據(jù)文件,,實現(xiàn)采集和回放同時進行,。
3.2.1 上位機軟件實現(xiàn)過程
軟件編寫要用到VISA Configure Serial Port.vi、VISA Property Node.vi,、VISA read.vi,、VISA Close.vi、Write To Binary File.vi及Graph Chart.vi[1],。其功能分別是:
(1)VISA Configure Serial Port.vi用于串口配置,,如串口資源名、波特率,、數(shù)據(jù)位數(shù),、停止位、校驗位等的設(shè)置,。
(2)VISA Property Node.vi用于讀取屬性,,將接收到的數(shù)據(jù)全部讀出來。
(3)VISA Read.vi用于讀取串口接收來的數(shù)據(jù),。
(4)VISA Close.vi釋放串口資源,,關(guān)閉函數(shù),。
(5)Write To Binary File.vi將接收數(shù)據(jù)以二進制形式保存起來。
(6)Graph Chart.vi用于顯示采集波形,。
3.2.2 LabVIEW系統(tǒng)界面和程序
根據(jù)上位機軟件設(shè)計流程圖,,利用NI公司的可視化編程軟件LabVIEW編寫完成的系統(tǒng)界面如圖4所示。運行前,,用戶只需設(shè)置串口資源,,選擇串口號、波特率大小,、傳輸數(shù)據(jù)位數(shù),、停止位、校驗位等,。串口工作在方式1,,傳輸1幀信息為10 bit,其中1 bit起始位,、8 bit數(shù)據(jù)位(先低位后高位),、1 bit停止位[4]。
圖4上面部分為開始讀數(shù)據(jù),、停止讀取,、回放、停止回放和退出系統(tǒng)5個控制按鍵,。兩個圖形控件分別顯示讀取波形和回放波形,,讀取值以數(shù)字形式顯示在讀取值窗口。系統(tǒng)界面還可以利用LabVIEW自身強大的數(shù)據(jù)處理能力,,借助內(nèi)部處理函數(shù)進行波形調(diào)理,、波形測量、FFT變換和濾波等,。
4 測試與結(jié)論
將下位機程序下載到單片機,,打開電源,按下采集獨立按鍵,,給MAX306某通道加上2 V左右的電壓信號,,測得結(jié)果如圖4所示。借助信號發(fā)生器給單片機輸入-10 V~+10 V范圍內(nèi)的任意波形,,在上位機均可得到相應(yīng)波形,。
本文利用單片機采集數(shù)據(jù),使用LabVIEW編寫串口接收數(shù)據(jù)界面,,將結(jié)果以二進制.dat格式存儲起來,,帶查看回放功能,較好地實現(xiàn)了數(shù)據(jù)采集的實時顯示和存儲,,達到了系統(tǒng)的設(shè)計要求和預(yù)期目標(biāo),。該LabVIEW顯示界面可應(yīng)用于其他具有串口接口的數(shù)據(jù)采集系統(tǒng),,目前已應(yīng)用于航空物探部分?jǐn)?shù)據(jù)的收錄。
參考文獻
[1] TRAVIS J,, KRING J. LabVIEW大學(xué)實用教程(第三版)[M].朱瑞萍,,譯.北京:電子工業(yè)出版社,2008.
[2] 陳誠,,李言武,,葛立封.基于LabVIEW的單片機串口通信設(shè)計[J].現(xiàn)代計算機,2009(1):198-200.
[3] 林靜,,林振宇,,鄭福仁.LabVIEW虛擬儀器程序設(shè)計從入門到精通[M].北京:人民郵電出版社,,2010.
[4] 張毅坤,,陳善久,裘雪紅.單片微型計算機原理及應(yīng)用[M].西安:西安電子科技大學(xué)出版社,,2006.