黃根嶺, 任全會, 江興盟
(鄭州鐵路職業技術學院, 河南鄭州 450052)
在一些功能比較復雜的數據采集系統中,通常以PC為上位機,單片機為下位機,由單片機完成數據的采集及對裝置的控制,由上位機完成各種復雜的數據處理(比如對現場數據進行分析、顯示、制表、打印等)及對單片機的控制。因此,PC和單片機之間存在著大量的數據交換,通常PC和單片機之間的數據通信是通過串口來實現的。本文以溫度作為數據采集對象,利用LabVIEW作為語言開發平臺,設計系統軟件,并利用PC串口與單片機進行串行通訊,實現溫度的實時測量與控制。
在上位機程序設計中,采用何種語言設計人機交互界面,不僅關乎整個系統性能的優劣,還關乎界面的美觀性與易用性。常用的上位機編程語言有VB、VC等軟件,本系統采用LabVIEW語言進行開發,美國NI公司開發的LabVIEW是一種圖形化編程語言,它使用直觀的圖標和連線替代傳統基于文本的函數和數據流向,編程方式簡單、直觀,所設計出的界面生動友好、功能強大、易于操作。更重要的是,采用LabVIEW作為開發平臺能大大降低成本、縮短開發周期。
在LabVIEW功能面板的函數→儀器I/O→VISA→高級VISA→總線/接口配置→串口目錄下,包含串口通信所需的模塊。常用模塊及屬性如下:
1) VISA Configure Serial Port
用于配置VISA resource name所指定的串口通信參數。
2) VISA Write
用于將輸出緩沖區中的數據寫到VISA resource name所指定的串口中。
3) VISA Read
從VISA resource name所指定的串口接收緩沖區中讀取規定字節數的數據, 并將這些數據寫入計算機內存中。
4) VISA Close
關閉與VISA resource name所指定的串口資源之間的通信。

圖1 系統主界面
系統主界面如圖1所示,主要包括串口通信配置和溫度數據采集,下面簡單將各部分對應的程序框圖介紹如下。
1) 串口通信參數設置
用戶可通過下拉菜單設置通信端口、波特率、數據位、校驗位和停止位,本系統采用com1口、波特率為2400波特、數據位8位、不設置校驗位、1位停止位(程序框圖見圖2)。

圖2 串口通信參數設置部分的程序框圖
2) 溫度采集部分
溫度采集部分主要包括溫度顯示、溫度設置、溫度報警、溫度數據報表生成等模塊,其中溫度顯示方式有兩種:一種用圖形化的可視溫度計來顯示,另一種用實時曲線來顯示(程序框圖見圖3和圖4);用戶可通過直接拖動指針或輸入數值來設置“上限溫度”和“下限溫度”,當溫度超過或低于設置的溫度時報警燈將閃爍(程序框圖見圖3和圖5);用戶可通過“溫度設定”按鈕將當前的設置上下限值發送到下位機內存內;用戶可通過“寫入文件”按鈕將當前記錄時間和溫度值保存到XLS文件中(程序框圖見圖5)。

圖3 溫度計顯示和報警指示部分的程序框圖

圖4 溫度數據實時曲線顯示和報表文件生成部分的程序框圖

圖5 溫度報警部分的程序框圖
需要注意的是,串行通信中傳遞的是字符串類型的數據,因此在讀取溫度數據時需要將字符串格式的溫度值轉化為數字量形式的溫度值;另外在進行串行通信時,要約定串行通信協議。
下位機主要包括單片機最小系統、串口通信電路以及溫度采集模塊。下面簡單介紹一下串口通信電路和溫度采集電路。
利用STC89C51單片機全雙工串口可以很方便地與上位機進行通信,需要注意的是,單片機串口輸入輸出電平為TTL電平, 而PC機采用的是RS-232電平,因此要實現單片機與PC機通信, 必須進行電平轉換。本系統采用MAXIM公司的MAX232CPE芯片作為電平轉換芯片,其原理圖如圖6所示。

圖6 串口通信電路
DS18B20是一個采用1-wire總線技術的數字溫度傳感器,與單片機連接時僅需要一條口線(本系統采用P1.1管腳)即可雙向通信,其原理圖如圖7所示。

圖7 溫度采集電路
需要注意的是,在單片機讀取溫度時,必須嚴格遵守DS18B20的時序,否則不會響應單片機。
配置DS18B20的精度為10位(最小分辨率就是0.25℃),系統運行結果為20℃(如圖1所示),與室內的標準溫度19.5℃相比誤差為0.5℃,導致結果偏高的原因主要有兩方面:一是系統運行后DS18B20所在的電路板會發熱,導致DS18B20的周圍溫度偏高,另一方面是DS18B20為單線數器件,在輸出低電平的時候芯片有mA級的電流,器件本身會產生熱量,導致溫度偏高。經過多次測試結果表明,該系統可適用于準確度小于0.5℃的溫度測試場合。
本文介紹了基于LabVIEW的PC與單片機串行通信的實現方法, 并應用于溫度測控系統, 給出了LabVIEW的前面板和程序框圖。測試結果表明:系統性能穩定,界面形象逼真,數據準確、實時性好,具有一定的推廣價值。
[1]李玉柏,彭啟琮.虛擬儀器關鍵技術分析[J].電子測量與儀器學報,2001(01):37-42.
[2]李江全.虛擬儀器設計測控應用典型實例[M].北京:電子工業出版社,2010:26-35.
[3]楊樂平,李海濤.LabVIEW設計及應用[M].北京:電子工業出版社,2001:230-245.
[4]余成波,馮麗輝.虛擬儀器技術與設計[M].重慶:重慶出版社,2006:1-5.
[5]應懷樵.虛擬儀器與計算機采集測試分析儀器的發展和展望[J].測控技術,2000(08):4-7.
[6]胡敦利.基于虛擬儀器的數據采集系統[J].微計算機信息,2007(23):144-146.
[7]劉丁,毛德柱.USB在數據采集系統中的應用[J].電子技術應用,2000(04):1-2.
[8]陳金龍.虛擬儀器系統及其開發程序LabVIEW介紹[J].安徽氣象,2004(01):34-36.
[9]宋波,陳一民.關于虛擬儀器開發工具的比較與選擇[J].國外電子測量技術,2006(08):1-4.