劉玉玲
摘要:以Labview、單片機和DSl8820為核心,設計了一款溫度監(jiān)測系統(tǒng)。該系統(tǒng)通過DSl8820溫度傳感器采集溫度信號,經(jīng)單片機的串口轉USB,再由USB接口將信號發(fā)送Labview,可以實現(xiàn)溫度的實時采集、處理、顯示及報警,同時在Lab-view中可設置溫度的上下限,查看溫度曲線以及調(diào)出歷史數(shù)據(jù)等功能。該系統(tǒng)的下位機采用的是單片機最小系統(tǒng),外加溫度傳感器,串口轉USB模塊,上位機采用的是NI公司的一款圖形化編程軟件Labview,整體簡單易行,卻很好地實現(xiàn)了溫度的監(jiān)測功能。設計中,可更換傳感器實現(xiàn)不同參數(shù)的監(jiān)測,如濕度監(jiān)測、粉塵監(jiān)測、煙霧監(jiān)測等,使得該系統(tǒng)可以應用到各種不同的場合。
關鍵詞:Labview;單片機;USB
中圖分類號:TP391 文獻標識碼:A
文章編號:1009-3044(2020)13-0007-04
在很多場合,溫度的變化對生產(chǎn)或生活都會產(chǎn)生極大的影響,比如智能溫室大棚、多個機臺設備的生產(chǎn)車間、名貴魚的魚缸等,溫度恒定是保證產(chǎn)品質(zhì)量的重要前提,因此溫度數(shù)據(jù)的采集和監(jiān)測意義重大。
本監(jiān)測系統(tǒng)可以對監(jiān)測場所的溫度數(shù)據(jù)實時采集,繪制溫度曲線,當溫度高于上限或低于下限均可實現(xiàn)報警,并可以查看相關的歷史數(shù)據(jù)。整個系統(tǒng)成本較低,非常適合學生在實驗室中設計開發(fā)。
1系統(tǒng)的硬件部分
系統(tǒng)的硬件由溫度傳感器DS18820、51單片機AT89S51、USB轉接芯片CH340組成,其硬件框圖如圖1所示。數(shù)字溫度傳感器可將溫度值直接轉換成數(shù)字量發(fā)送至單片機,單片機對該溫度信號進行處理后,通過串口轉USB的轉接芯片將數(shù)據(jù)送至計算機,計算機的Labview軟件處理后以人機界面的窗口形式,直觀地展示數(shù)據(jù)曲線。
1.1溫度傳感器DSl8820
DSl8820是一款常用的溫度傳感器,它的優(yōu)勢是低功耗、抗干擾能力強的單總線數(shù)字溫度傳感器,該傳感器在使用過程中無需外加AD。從DS18820到主控芯片僅連接一條線,硬件電路簡單,而且每個DS18820有唯一的系列號,因此多個可以存在于同一條單線總線上,有利于系統(tǒng)后續(xù)拓展成多路的溫度監(jiān)測。
DS18820提供9位溫度讀數(shù),測量范圍是-55°C至125°C,增量值位0.5℃。
1.2單片機AT89S51
系統(tǒng)的主控芯片選用了AT89S51,此單片機功能簡單、價格低廉,單片機有4K的片內(nèi)程序存儲器,可以外擴至64K,128B片內(nèi)數(shù)據(jù)存儲器,64K片外數(shù)據(jù)存儲器,AT89S51支持在線編程下載,極大地方便了調(diào)試。
1.3串口轉USB接口模塊
由于目前大部分筆記本電腦未配置串口,故需要將串口信號轉換成更為通用的USB接口信號,選用的芯片是CH340。CH340是USB總線轉接芯片,可以實現(xiàn)USB轉串口、IrDA紅外或打印口。芯片內(nèi)置了USB上拉電阻、復位電路,內(nèi)置了獨立的收發(fā)緩沖區(qū),支持單工、半雙工或者全雙工異步串行通訊。
2系統(tǒng)的軟件部分
2.1下位機軟件
系統(tǒng)軟件的編寫是在Keil uVision4的集成開發(fā)環(huán)境下,用C語言編寫的,整個軟件實現(xiàn)了硬件初始化、溫度采集、數(shù)據(jù)轉換、上下位機通信4個模塊。系統(tǒng)的主程序流程圖如圖2所示。
2.2上位機軟件
上位機使用虛擬儀器完成溫度數(shù)據(jù)的讀取、轉換和處理,溫度上下限的設置,實時曲線圖的繪制,歷史曲線的查看。Labview虛擬儀器程序由前面板和程序框圖構成,前面板是人機交互界面,用來輸入輸出,程序框圖是用戶以框圖的形式編制的代碼。
1)上位機的前面板
系統(tǒng)上位機前面板如圖3所示,包括三個數(shù)據(jù)輸入控件,用來輸入VISA資源端口名稱以及上下限溫度;兩個布爾量的圓形指示燈,當溫度超過上下限時,相應指示燈點亮;一個溫度值顯示的儀表控件,可以更加直觀讀取當前溫度值;三個數(shù)值顯示控件,分別顯示接收數(shù)據(jù)的字符型、數(shù)值型和接收數(shù)據(jù)的長度;兩個布爾量的開關按鈕,一個控制采集數(shù)據(jù)的啟停,一個退出整個監(jiān)測界面;一個波形圖表的圖形顯示控件,顯示當前采集溫度的實時曲線。
2)串口通信模塊
上位機框圖中所采用的串口是NI_VISA串口Serial函數(shù)來訪問和控制串口的,VISA(Virtual Instrument Software Architec-ture,簡稱為“Visa”)為虛擬儀器軟件結構。函數(shù)的打開如圖4所示,程序框圖面板a儀器I/Oa串口。串口函數(shù)常用的四個子函數(shù)分別為:VISA配置串口、VISA寫入、VISA讀取、VISA關閉。VISA配置串口是完成串口參數(shù)的初始化設置,包括串口資源的名稱、波特率、數(shù)據(jù)比特、奇偶校驗、停止位等,停止位的典型值是1、1.5、2位,但在初始化時停止位的輸人應配置成10、15、20。
VISA讀取子函數(shù)是每次從串口讀取一定字節(jié)數(shù)的數(shù)據(jù),VISA關閉子函數(shù)是當程序停止前,把使用的串口設備關閉,若不關閉,該串口就一直被占用。
在設計串口時,應最先安裝VISA驅動,該驅動并不在軟件安裝程序中,若不安裝,前面板運行時,串口資源名稱無法從下拉框獲取,程序無法運行。安裝成功后,下拉框就可以看到相應的COM口。
3)數(shù)據(jù)采集處理模塊
該模塊將單片機的數(shù)據(jù)進行采集和處理,以便實時顯示。VISA讀取子函數(shù)中左邊輸入有個VISA的字節(jié)總數(shù),如圖5所示,因此在讀取前必須指定這個個數(shù)。VISA讀取函數(shù)的“讀取字節(jié)數(shù)”的輸入端口設置十分必要,在串口通信中,如果當前緩沖區(qū)的數(shù)據(jù)量小于指定的字節(jié)數(shù),程序會一直停在VISA讀取上,在超時的時間(默認是10秒)內(nèi)無法滿足數(shù)據(jù)量時,程序會“Time out”如果超時時間設置過長,有可能導致程序停止在VISA讀取這個節(jié)點上。
使用“Bytes at Port”串口的屬性節(jié)點,可以很好地解決以上問題。在儀器I/O子面板下,如圖6所示,程序框圖面板a儀器I/O&VISA&高級VISA&VISA屬性節(jié)點5Serial Setting&Number ofBytes atSerialPort。
也可以在資源線上右鍵a創(chuàng)建aInstr類的屬性aSerial Set-tings&Number ofBytes atSerialPort,如圖7所示。
此屬性節(jié)點可以很好地把當前緩沖區(qū)字節(jié)數(shù)匹配到vI—sA讀取的“讀取字節(jié)數(shù)”這個輸入端上,緩沖數(shù)即為讀取字節(jié)數(shù),無任何等待。
目前串口的收發(fā)大致有兩種類型:一種是主動型的,即上下位機相互通信,上位機發(fā)指令,下位機響應,并返回數(shù)據(jù)給上位機;另一種是被動型,即下位機一直往上位機發(fā)送數(shù)。本系統(tǒng)采用的是被動接收,定時器設置每ls接收一次數(shù)據(jù)。
單片機發(fā)送的溫度值為6字節(jié),首字節(jié)表示正負,后五個字節(jié)表示最大三位數(shù),精度小數(shù)點后一位的溫度值,如+103.5。為了保證接收的數(shù)據(jù)幀不錯亂、不丟包,當且僅當接收數(shù)據(jù)為6個字節(jié)的數(shù)據(jù)包,系統(tǒng)才會保存和顯示。
4)顯示、報警和存儲模塊
實時顯示包括數(shù)值顯示、曲線顯示。為了使曲線的橫坐標與系統(tǒng)時間相同,需要修改波形圖表的橫坐標屬性。程序框圖如圖8所示,獲取系統(tǒng)的時間標識,按名稱解除捆綁,分別得到時、分、秒,計算((60*時)+分)*60+秒,得到曲線橫坐標的off-set,XScale.Offset最后鏈接至波形圖表。運行程序,波形圖的坐標軸顯示如圖9所示。
從VISA讀取子函數(shù)接收到的是字符型數(shù)據(jù),為了直觀顯示和畫圖,將其用十進制數(shù)字符至數(shù)值轉換,轉換成十進制數(shù)值,此數(shù)據(jù)在前面板有三種顯示方式:數(shù)值控件顯示、儀表盤顯示、曲線顯示。前面板設定溫度的上下限,比較器比較后輸出至上下限指示燈。程序框圖如圖10所示。
系統(tǒng)還可以查詢歷史溫度數(shù)據(jù),點擊圖形控件,右鍵導出數(shù)據(jù)至Excel,可查看歷史記錄。圖11是記錄的是10:51-10:52的后半分鐘內(nèi)的溫度值。與此對應的前面板監(jiān)測界面圖,如圖3所示。系統(tǒng)可保留一天的數(shù)據(jù)。更改坐標軸的offset,可以保留不同時間的數(shù)據(jù)??傮w的上位機軟件程序框圖如圖12所示。
3總結
該課題簡單易行,成本較低,適合學生在實驗室中設計開發(fā)。課題本身靈活性高,可進行相關拓展,如需檢測濕度、煙霧等信號,只需要將溫度傳感器對應的更換為濕度傳感器或煙霧傳感器;若通信距離較遠或者想擺脫線纜的束縛,可將通信方式由串口的有線傳輸改為無線通信,例如采用zigbee模塊CC2430或無線收發(fā)模塊NRF24L01。