馮傳均,戴文峰,何 央
(1.中國工程物理研究院 流體物理研究所,四川 綿陽621900;2.中國工程物理研究院 脈沖功率科學與技術重點實驗室,四川 綿陽 621900)
基于VB和單片機的多路數據采集系統設計
馮傳均1,2,戴文峰1,2,何 央1,2
(1.中國工程物理研究院 流體物理研究所,四川 綿陽621900;2.中國工程物理研究院 脈沖功率科學與技術重點實驗室,四川 綿陽 621900)
為了滿足多路物理信號實時采集、存儲和數據分析的要求,本文設計了一種基于VB(Visual Basic)和單片機的多路數據采集系統。該設計采用單片機為數據采集系統的控制芯片,控制A/D轉換芯片實現多路數據實時采集,轉換后的數據利用LCD顯示器進行顯示,并通過RS232串口將數據上傳到上位機;利用VB軟件編程的人機交互界面,實現對數據采集系統的遠程監控。該系統具有界面友好,操作簡單等優點。
單片機;Visual Basic;數據采集;串口通信;人機交互界面
數據采集是現代測量技術的基礎之一。在科學實驗中經常需要分析處理各種物理量,例如電壓、電流、壓力、溫度等。實驗過程中,這些物理信號通過專用的采集系統記錄并輸入到計算機,然后通處理、分析得到試驗結果。在復雜的大科學實驗中對多路數據采集系統除了準確性、穩定性的要求外,往往還提出了高效、簡潔、實時的要求,以滿足大量物理信號在采集、處理過程中復雜的時間、空間和邏輯關系需求。根據這些需求,文中設計了一種多路數據采集系統。系統由上位機和單片機組成,上位機實現完善的監控和管理功能,單片機實現快速及靈活的采集控制功能[1]。系統設計方案通過Proteus、Keil與VB(Visual Basic)聯調的方式進行功能驗證。
多路數據采集系統主要包括:數據采集單元、數據傳輸電路和人機交互界面三部分。數據采集單元主要由單片機、A/D轉換芯片、LCD顯示器、矩陣鍵盤組成;數據傳輸電路采用RS-232串口通信協議進行數據交換;人機交互界面由上位機和VB軟件組成。系統的總體框圖如圖1所示。

圖1 系統的總體框圖
被測物理信號中的信息通過相應的傳感器按照一定規律變換成為模擬電壓信號。信號經過放大、濾波后由單片機控制A/D轉換芯片進行模數轉換,轉換結果返回給單片機;單片機將采集數據在LCD顯示器上顯示,并通過RS232串口通信將結果發送給上位機。根據實驗需要選用相應的傳感器,即可以實現溫度、壓力、流量等不同物理信息的采集。數據采集電路如圖2所示。

圖2 數據采集電路
數據采集單元選擇STC89C51RC單片機為現場控制芯片,該芯片是宏晶科技推出的新一代高速/低功耗/超強抗干擾的單片機,指令代碼完全兼容傳統8051單片機。單片機工作電壓5 V,工作頻率范圍:0~40 MHz,自帶EEPROM和看門狗功能。考慮到單片機I/O口很少,可采用鎖存器74HC573對單片機進行I/O口擴展,通過一片單片機控制控制多片A/ D轉換芯片,實現多路模擬信號的采集需求。數據顯示選用LCD1602型液晶顯示器,它具有體積小、質量輕、功耗低、抗干擾能力強、與單片機通信簡單等特點。LCD1602可以顯示兩行字符,每行16個,顯示容量為16×2個字符,可通過并行接口與單片機I/O口直接相連。第一行顯示當前數據通道號,第二行顯當前數據采集轉換結果。
數據采集所需的A/D轉換單元采用TI公司生產的TLC1543芯片,該芯片采用5 V供電,具有11高速路模數轉換通道,10位精度 (最大±1LSB不可調整誤差)的A/D轉換器,并提供EOC(轉換完成)信號,采用串行通信接口,易于和單片機接口。TLC1543工作過程分為兩個周期:訪問周期和采樣周期。TLC1543的CS、CLOCK、ADDRESS、EOC、DATA OUT引腳與單片機相連接,工作狀態由CS端使能或禁止。單片機輸出低電平時,TLC1543開始數據轉換,I/O、CLOCK、 ADDRESS使能,DATA OUT脫離高阻狀態。單片機通過CLOCK計數向ADDRESS寫入4位數據為通道地址。數據轉換結束后,EOC由高電平變為低電平,單片機從DATA OUT讀取10位數據,數據范圍為0~1024,如圖2所示當模擬電壓等于+3.82 V時,A/D轉換結果為0782;空閑時單片機控制CS腳置高電平,芯片禁止,DATA OUT置高阻狀態。控制時序如圖3所示。
單片機與上位機之間的數據傳輸采用異步串口通信方式[2-4]。由于單片機的輸入、輸出電平為TTL電平,與上位機RS-232標準串行接口的電氣規范不一致,因此要實現實現單片機與上位機之間的數據交換,必須進行電平轉換[5],本系統采用MAX232芯片對單片機串口電平進行轉換。上位機和單片機是主從關系,上位機發送握手信號給單片機,單片機收到后發送應答信號;上位機接收到應答信號后,判斷應答信號是否正確,正確則向單片機發送命令信號,否則繼續發送握手信號。串口參數設置為:波特率9 600 bps,1位起始位,1位停止位,8位數據位,無奇偶校驗位。上位機和單片機之間的數據交換流程如圖4所示。

圖3 TLC1543工作時序
單片機控制程序采用C語言編寫,在Keil的uVision4開發環境中完成[6-11]。控制程序由一個主程序和四個子程序組成,子程序包括:UART通信模塊、A/D控制模塊、LCD顯示模塊、矩陣鍵盤模塊等,主程序完成系統初始化和子程序的調用。
上位機軟件采用Visual Basic軟件開發工具,通過編程代碼和調用控件[12-15],實現數據采集監控系統的可視化編程。軟件通過調用Label(標簽)、TextBox(文本框)、Button(按鈕)等控件實現控制命令的發送;通過調用Mscomm控件實現上位機與單片機之間的串口通迅;通過調用CWGraph控件實現將數據曲線顯示。數據采集系統監控界面包括:串口設置、控制命令、數據顯示3部分組成。多路數據采集系統人機界面如圖5所示。

圖5 數據采集系統監控界面
基于TLC1543和單片機的數據采集單元,能夠實現對多路模擬數據實時采集、顯示和數據上傳功能,采集的數據結果具有較高的精度。基于VB和上位機的人機交互界面,能夠實現對數據采集單元的遠程監控,實現數據實時顯示、存儲和曲線繪制。該系統具有廣泛的使用價值。
[1]劉艷美,姜波.VB實現PC機與單片機(8051)的串口通訊[J].自動化技術與應用,2007,26(11):94-96.
[2]郭惠,吳迅.單片機C語言程序設計[M].北京:電子工業出版社,2008.
[3]宋志強,寧慧慧,余紅英.基于VB的兩路數據實時采集[J].電子測試,2009,9:70-73.
[4]劉風聲.基于VB6.0的單片機與PC機通訊的實現與應用[J].計算機技術與發展,2007,10(17):202-208.
[5]馬壯,吳錚,王永強.基于VB的PC與單片機串行通信系統研究與實現[J].唐山學院學報,2008,4(21):23-24.
[6]祝敬德,李杰,馮凱強,等.基于FT245RL和FPGA的6路數據采集系統設計[J].計算機測量與控制,2015,23(1):187-190.
[7]劉宇鴻,蔣留冰,車俐,等.基于FPGA的數據采集與回放系統設計[J].桂林電子科技大學學報,2015,35(1):31-34.
[8]閆慧蘭,顧亮,候朝楨,等.AT89C52單片機與VB串行通信的實現[J].微計算機信息,2003,19(12):65-66.
[9]曾麗麗,劉心紅,趙付,等.VB通信編程技術[M].北京:中國石化出版社,2014.
[10]李敏孜,劉志鴻,王宏.利用VB6.0實現PC機與MCS-51單片機之間的串行通信[J].內蒙古科技與經濟,2004,24:66-67.
[11]陳三風,劉曉波.基于VB6.0與單片機串行通信的數據采集系統設計[J].計算機應用,2004(1):66-68.
[12]陳倩詒.VB與單片機語言串行通信技術[J].微型機與應用,2001(11):30-31.
[13]石永帥.基于VB的多路數據采集系統的實現[J].中國科技信息,2012(12):134-135.
[14]祁建廣,李寶營,孫玉明.基于VB6.0的多路數據采集與處理系統[J].大連工業大學學報,2009,28(1):51-53.
[15]陳平,楊建,王炬城.基于FPGA的高速光纖數據傳輸板卡設計[J].信息通信,2015(1):79-80.
The design of a multi-channel data acquisition system based on VB and SCM
FENG Chuan-jun1,2,DAI Wen-feng1,2,HE Yang1,2
(1.Institute of Fluid Physics,CAEP,Mianyang 621900,China;2.Key Laboratory of Pulsed Power Science and Technology,CAEP,Mianyang 621900,China)
To acquire,store,and analyze multiple physical signals in real-time,this work presents a new design of multichannel data acquisition system.This design utilizes a SCM to control the A/D converter for multi-channel real-time data acquisition.The converted data is displayed in a LCD,and sent to the host computer through RS232.The human-machine interface is programmed with Visual Basic,which implements the remote control of the system.The interface is friendly and easy to operate.
single chip microcomputer;Visual Basic;data acquisition;serial communication
TN98
A
1674-6236(2016)22-0155-03
2015-11-15稿件編號:201511134
馮傳均(1989—),男,四川廣元人。研究方向:脈沖功率技術及測控技術。