黃根嶺, 任全會(huì), 江興盟
(鄭州鐵路職業(yè)技術(shù)學(xué)院, 河南鄭州 450052)
在一些功能比較復(fù)雜的數(shù)據(jù)采集系統(tǒng)中,通常以PC為上位機(jī),單片機(jī)為下位機(jī),由單片機(jī)完成數(shù)據(jù)的采集及對裝置的控制,由上位機(jī)完成各種復(fù)雜的數(shù)據(jù)處理(比如對現(xiàn)場數(shù)據(jù)進(jìn)行分析、顯示、制表、打印等)及對單片機(jī)的控制。因此,PC和單片機(jī)之間存在著大量的數(shù)據(jù)交換,通常PC和單片機(jī)之間的數(shù)據(jù)通信是通過串口來實(shí)現(xiàn)的。本文以溫度作為數(shù)據(jù)采集對象,利用LabVIEW作為語言開發(fā)平臺(tái),設(shè)計(jì)系統(tǒng)軟件,并利用PC串口與單片機(jī)進(jìn)行串行通訊,實(shí)現(xiàn)溫度的實(shí)時(shí)測量與控制。
在上位機(jī)程序設(shè)計(jì)中,采用何種語言設(shè)計(jì)人機(jī)交互界面,不僅關(guān)乎整個(gè)系統(tǒng)性能的優(yōu)劣,還關(guān)乎界面的美觀性與易用性。常用的上位機(jī)編程語言有VB、VC等軟件,本系統(tǒng)采用LabVIEW語言進(jìn)行開發(fā),美國NI公司開發(fā)的LabVIEW是一種圖形化編程語言,它使用直觀的圖標(biāo)和連線替代傳統(tǒng)基于文本的函數(shù)和數(shù)據(jù)流向,編程方式簡單、直觀,所設(shè)計(jì)出的界面生動(dòng)友好、功能強(qiáng)大、易于操作。更重要的是,采用LabVIEW作為開發(fā)平臺(tái)能大大降低成本、縮短開發(fā)周期。
在LabVIEW功能面板的函數(shù)→儀器I/O→VISA→高級VISA→總線/接口配置→串口目錄下,包含串口通信所需的模塊。常用模塊及屬性如下:
1) VISA Configure Serial Port
用于配置VISA resource name所指定的串口通信參數(shù)。
2) VISA Write
用于將輸出緩沖區(qū)中的數(shù)據(jù)寫到VISA resource name所指定的串口中。
3) VISA Read
從VISA resource name所指定的串口接收緩沖區(qū)中讀取規(guī)定字節(jié)數(shù)的數(shù)據(jù), 并將這些數(shù)據(jù)寫入計(jì)算機(jī)內(nèi)存中。
4) VISA Close
關(guān)閉與VISA resource name所指定的串口資源之間的通信。
圖1 系統(tǒng)主界面
系統(tǒng)主界面如圖1所示,主要包括串口通信配置和溫度數(shù)據(jù)采集,下面簡單將各部分對應(yīng)的程序框圖介紹如下。
1) 串口通信參數(shù)設(shè)置
用戶可通過下拉菜單設(shè)置通信端口、波特率、數(shù)據(jù)位、校驗(yàn)位和停止位,本系統(tǒng)采用com1口、波特率為2400波特、數(shù)據(jù)位8位、不設(shè)置校驗(yàn)位、1位停止位(程序框圖見圖2)。
圖2 串口通信參數(shù)設(shè)置部分的程序框圖
2) 溫度采集部分
溫度采集部分主要包括溫度顯示、溫度設(shè)置、溫度報(bào)警、溫度數(shù)據(jù)報(bào)表生成等模塊,其中溫度顯示方式有兩種:一種用圖形化的可視溫度計(jì)來顯示,另一種用實(shí)時(shí)曲線來顯示(程序框圖見圖3和圖4);用戶可通過直接拖動(dòng)指針或輸入數(shù)值來設(shè)置“上限溫度”和“下限溫度”,當(dāng)溫度超過或低于設(shè)置的溫度時(shí)報(bào)警燈將閃爍(程序框圖見圖3和圖5);用戶可通過“溫度設(shè)定”按鈕將當(dāng)前的設(shè)置上下限值發(fā)送到下位機(jī)內(nèi)存內(nèi);用戶可通過“寫入文件”按鈕將當(dāng)前記錄時(shí)間和溫度值保存到XLS文件中(程序框圖見圖5)。
圖3 溫度計(jì)顯示和報(bào)警指示部分的程序框圖
圖4 溫度數(shù)據(jù)實(shí)時(shí)曲線顯示和報(bào)表文件生成部分的程序框圖
圖5 溫度報(bào)警部分的程序框圖
需要注意的是,串行通信中傳遞的是字符串類型的數(shù)據(jù),因此在讀取溫度數(shù)據(jù)時(shí)需要將字符串格式的溫度值轉(zhuǎn)化為數(shù)字量形式的溫度值;另外在進(jìn)行串行通信時(shí),要約定串行通信協(xié)議。
下位機(jī)主要包括單片機(jī)最小系統(tǒng)、串口通信電路以及溫度采集模塊。下面簡單介紹一下串口通信電路和溫度采集電路。
利用STC89C51單片機(jī)全雙工串口可以很方便地與上位機(jī)進(jìn)行通信,需要注意的是,單片機(jī)串口輸入輸出電平為TTL電平, 而PC機(jī)采用的是RS-232電平,因此要實(shí)現(xiàn)單片機(jī)與PC機(jī)通信, 必須進(jìn)行電平轉(zhuǎn)換。本系統(tǒng)采用MAXIM公司的MAX232CPE芯片作為電平轉(zhuǎn)換芯片,其原理圖如圖6所示。
圖6 串口通信電路
DS18B20是一個(gè)采用1-wire總線技術(shù)的數(shù)字溫度傳感器,與單片機(jī)連接時(shí)僅需要一條口線(本系統(tǒng)采用P1.1管腳)即可雙向通信,其原理圖如圖7所示。
圖7 溫度采集電路
需要注意的是,在單片機(jī)讀取溫度時(shí),必須嚴(yán)格遵守DS18B20的時(shí)序,否則不會(huì)響應(yīng)單片機(jī)。
配置DS18B20的精度為10位(最小分辨率就是0.25℃),系統(tǒng)運(yùn)行結(jié)果為20℃(如圖1所示),與室內(nèi)的標(biāo)準(zhǔn)溫度19.5℃相比誤差為0.5℃,導(dǎo)致結(jié)果偏高的原因主要有兩方面:一是系統(tǒng)運(yùn)行后DS18B20所在的電路板會(huì)發(fā)熱,導(dǎo)致DS18B20的周圍溫度偏高,另一方面是DS18B20為單線數(shù)器件,在輸出低電平的時(shí)候芯片有mA級的電流,器件本身會(huì)產(chǎn)生熱量,導(dǎo)致溫度偏高。經(jīng)過多次測試結(jié)果表明,該系統(tǒng)可適用于準(zhǔn)確度小于0.5℃的溫度測試場合。
本文介紹了基于LabVIEW的PC與單片機(jī)串行通信的實(shí)現(xiàn)方法, 并應(yīng)用于溫度測控系統(tǒng), 給出了LabVIEW的前面板和程序框圖。測試結(jié)果表明:系統(tǒng)性能穩(wěn)定,界面形象逼真,數(shù)據(jù)準(zhǔn)確、實(shí)時(shí)性好,具有一定的推廣價(jià)值。
[1]李玉柏,彭啟琮.虛擬儀器關(guān)鍵技術(shù)分析[J].電子測量與儀器學(xué)報(bào),2001(01):37-42.
[2]李江全.虛擬儀器設(shè)計(jì)測控應(yīng)用典型實(shí)例[M].北京:電子工業(yè)出版社,2010:26-35.
[3]楊樂平,李海濤.LabVIEW設(shè)計(jì)及應(yīng)用[M].北京:電子工業(yè)出版社,2001:230-245.
[4]余成波,馮麗輝.虛擬儀器技術(shù)與設(shè)計(jì)[M].重慶:重慶出版社,2006:1-5.
[5]應(yīng)懷樵.虛擬儀器與計(jì)算機(jī)采集測試分析儀器的發(fā)展和展望[J].測控技術(shù),2000(08):4-7.
[6]胡敦利.基于虛擬儀器的數(shù)據(jù)采集系統(tǒng)[J].微計(jì)算機(jī)信息,2007(23):144-146.
[7]劉丁,毛德柱.USB在數(shù)據(jù)采集系統(tǒng)中的應(yīng)用[J].電子技術(shù)應(yīng)用,2000(04):1-2.
[8]陳金龍.虛擬儀器系統(tǒng)及其開發(fā)程序LabVIEW介紹[J].安徽氣象,2004(01):34-36.
[9]宋波,陳一民.關(guān)于虛擬儀器開發(fā)工具的比較與選擇[J].國外電子測量技術(shù),2006(08):1-4.