基于USB和LabVIEW的溫度報(bào)警系統(tǒng)設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
O 引言
通用串行總線USB(Universal Serial Bus)具有較高的傳輸速率、支持即插即用和熱插拔、易于擴(kuò)展以及可靠性高、成本低、功耗低等特點(diǎn),USB2.0接口的傳輸速率高達(dá)480Mbps,完全能滿足PC機(jī)和外設(shè)進(jìn)行大量數(shù)據(jù)交換的要求。
LabVIEW是美國(guó)國(guó)家儀器公司開(kāi)發(fā)的一種虛擬儀器平臺(tái),提供了豐富的數(shù)據(jù)采集、分析和存儲(chǔ)函數(shù)以及包括RS232/485等各種儀器通信總線標(biāo)準(zhǔn)的所有功能函數(shù),但是LabVIEW開(kāi)發(fā)的虛擬儀器通常是建立在LabVIEW支持的價(jià)格昂貴的數(shù)據(jù)采集板卡之上,本文選用單片機(jī)小系統(tǒng)對(duì)溫度進(jìn)行采集。
1 系統(tǒng)組成及工作原理
系統(tǒng)框圖如圖l所示,整個(gè)系統(tǒng)包括溫度采集、溫度傳輸和溫度處理3部分,其中溫度采集系統(tǒng)由DSl8820溫度傳感器組成;溫度傳輸部分由STCl2CA052AD單片機(jī)和USB接口芯片XT8811組成;溫度處理部分由LabVIEW軟件構(gòu)成。首先,由溫度傳感器DS18820將測(cè)量的具體溫度數(shù)值通過(guò)串行方式直接傳給單片機(jī),然后單片機(jī)將收到的溫度值經(jīng)過(guò)USB接口電路送到計(jì)算機(jī),最后,通過(guò)LabVIEW軟件進(jìn)行處理。
2 硬件電路設(shè)計(jì)
2.1 溫度采集電路
采用STCl2CA052AD為主芯片,它是5l內(nèi)核的單片機(jī),并且資源更加豐富的,指令代碼完全兼容傳統(tǒng)8051,但速度快8~12倍。它本身自帶看門(mén)狗和ISP,可以在線編程。
溫度傳感器采用美國(guó)DALLS公司推出的一線數(shù)字式智能溫度傳感器DSl8820,測(cè)量溫度范圍為一55~125℃,通過(guò)簡(jiǎn)單的編程可實(shí)現(xiàn)9~12位的數(shù)字值讀取方式,分別在93.75ms和750ms內(nèi)將溫度值轉(zhuǎn)化為9位和12位的數(shù)量級(jí),對(duì)應(yīng)的分辨率為0.5℃,0.25℃,0.125℃,0.0625℃,CPU只需一根端口線就可以與DSl8820通信,每個(gè)DSl8820都有一個(gè)全球唯一的64位的二進(jìn)制ROM代碼標(biāo)志著器件的ID號(hào),整個(gè)系統(tǒng)要嚴(yán)格按照該器件單總線協(xié)議規(guī)定的時(shí)序進(jìn)行工作,具體的內(nèi)容是初始化器件、識(shí)別器件和進(jìn)行數(shù)據(jù)交換等?;贒S18820的溫度測(cè)量裝置硬件電路如圖2所示。
2.2 USB轉(zhuǎn)RS232接口電路
選用XT881l芯片,該芯片的功能是USB轉(zhuǎn)RS232串行接口,是單片機(jī)和PC機(jī)通信的一種非常簡(jiǎn)便的通訊方法,只用一條USB線就可以進(jìn)行ISP在線編程和傳輸數(shù)據(jù)了。XT8811芯片符合USBl.1,兼容USB2.0規(guī)范;基于高速USB UART IC,支持RS232標(biāo)準(zhǔn)串行接口,速度75bps~6Mbps;支持信號(hào)自動(dòng)交換輸入輸出模式。USB接口硬件電路如圖3所示。
3 LabVlEW的程序設(shè)計(jì)
3.1 LabVIEW的串行通信
在與LaBIEW通信之前,必須安裝XT8811的驅(qū)動(dòng)程序。XT881l的驅(qū)動(dòng)程序安裝以后,會(huì)自動(dòng)在計(jì)算機(jī)系統(tǒng)里虛擬出一個(gè)串行COM口。比如,計(jì)算機(jī)原來(lái)有兩個(gè)串口COMl和COM2,那么XT88ll驅(qū)動(dòng)程序安裝以后自動(dòng)虛擬出一個(gè)COM3口(一般來(lái)說(shuō)是這樣,具體COM端口號(hào)由虛擬驅(qū)動(dòng)程序自動(dòng)分配)。這個(gè)由XT88ll驅(qū)動(dòng)程序虛擬出來(lái)的COM口和計(jì)算機(jī)原有的COM口對(duì)于應(yīng)用軟件來(lái)說(shuō)是一樣的。只要應(yīng)用軟件能夠映射(或選擇)到該虛擬COM口,就可以實(shí)現(xiàn)對(duì)RS-232端口的通信。所以本設(shè)計(jì)采用了LabVIEW的VISA的串行通訊子Ⅵ來(lái)開(kāi)發(fā)串行通信軟件。共有5個(gè)串行通信節(jié)點(diǎn),分別實(shí)現(xiàn)串口初始化、串口寫(xiě)、串口讀、檢測(cè)串口緩存、中斷等功能。應(yīng)用LabVIEW的圖標(biāo)設(shè)置串口,直接讀出串口里的數(shù)據(jù),實(shí)現(xiàn)與單片機(jī)溫度采集系統(tǒng)的數(shù)據(jù)通信。如圖4所示,串口默認(rèn)設(shè)置為:9600b/s,8位數(shù)據(jù)位,l位停止位,l位起始位,無(wú)握手信號(hào),下位機(jī)通信程序亦遵守上述協(xié)議。
3.2 基于用戶事件的溫度報(bào)警
當(dāng)溫度超過(guò)報(bào)警上限時(shí)時(shí),系統(tǒng)會(huì)自動(dòng)觸發(fā)報(bào)警,并記錄報(bào)警數(shù)、報(bào)警發(fā)生的時(shí)間和溫度值進(jìn)行記錄。采用LabVIEW的用戶事件編程,首先通過(guò)Create User Event函數(shù)創(chuàng)建用戶事件,然后通過(guò)Register For Events節(jié)點(diǎn)注冊(cè)事件。將注冊(cè)的事件Refnum與事件結(jié)構(gòu)的Dynamic Event Termi—nals連接,最后需要通過(guò)Destroy User Event函數(shù)銷毀用戶事件。如圖5所示,程序框圖中首先通過(guò)Create User Event函數(shù)創(chuàng)建用戶事件,該用戶事件攜帶的數(shù)據(jù)類型位Double,名稱為“溫度報(bào)警”,然后通過(guò)Register For Event函數(shù)注冊(cè)溫度事件。上方的循環(huán)用來(lái)采集溫度數(shù)據(jù),當(dāng)溫度數(shù)據(jù)超過(guò)報(bào)警上限時(shí)通過(guò)Generate User Event函數(shù)產(chǎn)生用戶事件。下方的循環(huán)用于處理事件,既當(dāng)用戶事件發(fā)生時(shí),更新報(bào)警記錄;當(dāng)用戶單擊“清除報(bào)警記錄”按鈕時(shí)清除報(bào)警。最后通過(guò)Unregister For Event函數(shù)和Destroy User Event函數(shù)注銷和銷毀用戶事件。
4 結(jié)束語(yǔ)
利用LabVIEW強(qiáng)大函數(shù)功能和USB接口即插即用的方便性,結(jié)合以單片機(jī)為核心組成的小系統(tǒng),可以很方便地完成數(shù)據(jù)采集及處理等功能,具有很強(qiáng)的工程實(shí)用性,可廣泛應(yīng)于測(cè)試控制領(lǐng)域。