焦運(yùn)良,邢計元,岳 洋
(華北計算機(jī)系統(tǒng)工程研究所,北京 100083)
溫度是表示物理冷熱的物理量,溫度監(jiān)控的重要性體現(xiàn)在日常生活、醫(yī)療生物、工業(yè)生產(chǎn)、軍事應(yīng)用、科學(xué)研究等各個行業(yè)。課題利用虛擬儀器技術(shù)靈活高效的特點(diǎn),以監(jiān)控電腦機(jī)箱溫度作為背景,并使用電機(jī)驅(qū)動風(fēng)扇的方式來調(diào)控溫度。區(qū)別于傳統(tǒng)的溫度檢測系統(tǒng),課題使用NI-myRIO 1900作為核心控制器,使用LabVIEW清晰流暢的圖形化編程語言[1]編寫上位機(jī)的程序,使用戶可以直觀監(jiān)測到實(shí)時溫度;并根據(jù)實(shí)際環(huán)境與具體需求,實(shí)時調(diào)整溫度閾值,從而實(shí)現(xiàn)對溫度準(zhǔn)確、實(shí)時和平穩(wěn)的控制。
溫度監(jiān)控系統(tǒng)的總體結(jié)構(gòu)如圖1所示。課題所設(shè)計的系統(tǒng)采用NI-myRIO 1900作為主要控制處理模塊,LabVIEW平臺作為核心開發(fā)環(huán)境,使用單片機(jī)對傳感器進(jìn)行初始化設(shè)置和溫度數(shù)據(jù)的處理。由LabVIEW編寫系統(tǒng)控制程序并將其加載至核心控制設(shè)備中[2]。核心控制設(shè)備完成與單片機(jī)溫度采集系統(tǒng)的數(shù)據(jù)交互、控制降溫執(zhí)行器的運(yùn)行并將實(shí)時數(shù)據(jù)傳輸至PC。
圖1 溫度監(jiān)控系統(tǒng)總體結(jié)構(gòu)圖
系統(tǒng)的具體工作流程為:
(1)單片機(jī)對傳感器做初始化驅(qū)動,采集傳感器溫度數(shù)據(jù),并做初步的數(shù)據(jù)處理。
(2)單片機(jī)完成處理后將數(shù)據(jù)通過串口發(fā)送到核心控制模塊(即嵌入式硬件開發(fā)平臺)。
(3)核心控制模塊對數(shù)據(jù)進(jìn)行最終處理,并且將處理結(jié)果發(fā)送至PC,呈現(xiàn)給用戶,使用戶可以調(diào)整系統(tǒng)的設(shè)置。
(4)核心控制模塊根據(jù)預(yù)先設(shè)定的程序算法對系統(tǒng)被控部分(執(zhí)行器)發(fā)出指令。
(5)執(zhí)行器收到指令后開始運(yùn)行,使系統(tǒng)完成對溫度的檢測和控制。
系統(tǒng)的硬件部分由溫度采集模塊、核心控制模塊和降溫執(zhí)行模塊三部分組成。
課題研究的是基于虛擬儀器的溫度監(jiān)控系統(tǒng),所以核心控制模塊使用NI公司研發(fā)的NI-myRIO 1900嵌入式硬件開發(fā)平臺進(jìn)行搭建。
NI-myRIO 1900功能強(qiáng)大,其內(nèi)嵌FPGA和ARM?CortexTM-A9處理器[3],可以幫助用戶快速完成復(fù)雜工程的處理;內(nèi)嵌板載WiFi,支持無線網(wǎng)遠(yuǎn)程通信;具有豐富的外設(shè)資源,包括10個模擬輸出通道、6個模擬輸入通道、音頻I/O通道和高達(dá)40條數(shù)字輸入輸出線;此外,LabVIEW包含很多集成的函數(shù),其針對NI-myRIO 1900上的各種I/O接口提供經(jīng)過優(yōu)化設(shè)計的現(xiàn)成驅(qū)動函數(shù),方便快速調(diào)用。
溫度采集模塊是由DS18B20溫度傳感器和89C52單片機(jī)進(jìn)行搭建。
DS18B20是一款單總線數(shù)字溫度傳感器,它最小測量精度為0.062 5 ℃,具有極高的精度;數(shù)字量輸出,操作簡單,易與單片機(jī)通信[4]。測溫范圍是-55 ℃~ + 125 ℃,測量溫度的分辨率為9位~12位,用戶可以根據(jù)具體需要自己進(jìn)行選擇設(shè)定;采用特殊的單總線接口結(jié)構(gòu),只需要一條接線就可以實(shí)現(xiàn)與微控制器的雙向通信;具有負(fù)壓特性,即電源正負(fù)極反接雖然不能正常工作,但也不會損毀芯片。
89C52單片機(jī)在溫度采集模塊中的作用是對DS18B20溫度傳感器進(jìn)行初始化設(shè)置,使其能正常工作;并且將傳感器讀到的溫度數(shù)據(jù)換算成十進(jìn)制的溫度數(shù)值,然后將其發(fā)送到核心控制模塊,以便核心控制模塊對整個系統(tǒng)進(jìn)行調(diào)控操作。
降溫執(zhí)行模塊由步進(jìn)電機(jī)驅(qū)動風(fēng)扇來完成。核心控制模塊通過驅(qū)動模塊與電機(jī)相連,通過NI-MyRIO 1900的PWM端口控制電機(jī)。
核心控制設(shè)備采集機(jī)箱溫度,上傳至上位機(jī)控制平臺,用戶能通過上位機(jī)控制平臺全程監(jiān)控系統(tǒng)的運(yùn)行并對必要參數(shù)進(jìn)行修改。上位機(jī)程序流程圖如圖2所示。
圖2 上位機(jī)程序流程圖
在監(jiān)控系統(tǒng)中軟件需要完成的功能是:控制溫度采集模塊將測得的溫度發(fā)送至NI-myRIO 1900、控制NI-myRIO 1900完成測量溫度與預(yù)設(shè)溫度的對比、控制NI-myRIO 1900對溫度對比結(jié)果產(chǎn)生響應(yīng)。所以上位機(jī)控制程序由溫度傳輸部分、溫度對比部分、電機(jī)驅(qū)動和報警部分組成。
通過UART串口將單片機(jī)讀出并轉(zhuǎn)換成ASCII碼[5]的溫度量值以字符串的形式讀入NI-myRIO 1900;調(diào)用“連接字符串”的函數(shù),將每次讀入的字符串反饋,使每個字符串可以被保存和顯示;調(diào)用“截取字符串”函數(shù),將每次讀取的字符串進(jìn)行截取,根據(jù)用戶自行設(shè)定的截取起始位和截取長度,提取出用戶需求的字符串內(nèi)容并將其顯示;調(diào)用“十進(jìn)制數(shù)字字符串至數(shù)字轉(zhuǎn)換”函數(shù),將提取出的字符串轉(zhuǎn)換為8字節(jié)長的雙精度實(shí)數(shù),即溫度數(shù)值。這部分函數(shù)被嵌套在一個“while循環(huán)”函數(shù)中,且循環(huán)終止條件為手動按鈕,故用戶可以根據(jù)實(shí)際情況自己選擇開啟或終止程序的運(yùn)行。
溫度對比部分是系統(tǒng)軟件設(shè)計的核心部分,用戶根據(jù)具體需求自行設(shè)定系統(tǒng)啟動溫度、系統(tǒng)安全溫度上限和系統(tǒng)高危溫度三個溫度線,然后將讀取的實(shí)時溫度分別與三個溫度線做比較。如果實(shí)測溫度高于啟動溫度,系統(tǒng)會驅(qū)動降溫執(zhí)行器開始運(yùn)行;如果低于啟動溫度,則不會執(zhí)行與后續(xù)溫度線的比較,轉(zhuǎn)而繼續(xù)比較下一個實(shí)時溫度與啟動溫度的大小。如果實(shí)測溫度高于溫度上限時,系統(tǒng)的危險指示燈會由綠變紅,直到實(shí)測溫度降低至低于溫度上限;若實(shí)測溫度高于系統(tǒng)高危溫度,除了危險指示燈繼續(xù)呈現(xiàn)紅色之外,系統(tǒng)還會調(diào)用報警程序,產(chǎn)生報警鈴聲,直到溫度降至低于系統(tǒng)高危溫度。這部分函數(shù)被嵌套在平鋪式順序結(jié)構(gòu)之中[6],以便實(shí)時溫度按三個溫度線的順序分別做比較并運(yùn)行相應(yīng)的響應(yīng)程序。
電機(jī)驅(qū)動和報警部分是系統(tǒng)的執(zhí)行模塊。
通過調(diào)用LabVIEW內(nèi)部的PWM模塊,設(shè)定頻率、占空比和接口[7];程序運(yùn)行時,指定接口所接的電機(jī)就會啟動運(yùn)行。電機(jī)的驅(qū)動程序嵌套在“條件結(jié)構(gòu)”函數(shù)下運(yùn)行,當(dāng)溫度比較結(jié)果為真,即實(shí)測溫度大于某一溫度線時,相應(yīng)的電機(jī)就會開始工作。電機(jī)驅(qū)動部分共由四個電機(jī)組成,第一個電機(jī)當(dāng)實(shí)測溫度高于啟動溫度就立刻開始運(yùn)行;第二個電機(jī)在實(shí)測溫度達(dá)到溫度上限與啟動溫度的中間點(diǎn)時開始運(yùn)行;第三個電機(jī)將在實(shí)測溫度達(dá)到溫度上線時開始運(yùn)行,第四個電機(jī)將在實(shí)測溫度達(dá)到系統(tǒng)高危溫度時開始運(yùn)行。
聲音報警程序?qū)⒃趯?shí)測溫度高于系統(tǒng)高危溫度時被調(diào)用,播放報警鈴聲,其程序如圖3所示。將此程序的地址和預(yù)設(shè)音頻文件的地址融合成一個新地址,再與設(shè)備ID融合,調(diào)用系統(tǒng)“聲音播放程序”的模塊,警報鈴聲便會被播出;同樣聲音播出程序被嵌套在“while循環(huán)”函數(shù)中,循環(huán)條件是布爾量按鈕,用戶可以自行選擇關(guān)閉此程序。
課題以計算機(jī)機(jī)箱溫度的監(jiān)控為背景,以虛擬儀器技術(shù)作為核心技術(shù),以LabVIEW作為核心程序開發(fā)環(huán)境,以NI-myRIO 1900作為核心控制平臺,以單片機(jī)和DS18B20溫度傳感器作為溫度采集模塊,以電機(jī)驅(qū)動風(fēng)扇作為執(zhí)行模塊,利用電機(jī)運(yùn)行帶動風(fēng)扇降低溫度且溫度降低會反作用于電機(jī)運(yùn)行形成反饋控制[8],使整個系統(tǒng)的溫度被時刻監(jiān)控且被控制在用戶設(shè)定的溫度上下浮動,實(shí)現(xiàn)了以下功能:
(1)由單片機(jī)控制溫度采集裝置,能夠準(zhǔn)確地
圖3 聲音報警程序
采集電腦機(jī)箱內(nèi)的溫度。
(2)通過串口通信,把采集到的溫度傳輸?shù)胶诵目刂圃O(shè)備。
(3)上位機(jī)可以接收下位機(jī)發(fā)送來的溫度數(shù)據(jù)并顯示給用戶,用戶可以根據(jù)需求修改溫度閾值。
(4)智能識別系統(tǒng)啟動溫度,只在溫度高于正常溫度時才運(yùn)行控制器件,減少能源損耗。
(5)具有報警功能,在實(shí)測溫度高于危險值時系統(tǒng)能對外發(fā)出警報,提醒用戶采取其他措施降溫。
(6)能夠?qū)崿F(xiàn)對溫度較為準(zhǔn)確、平穩(wěn)的控制。
虛擬儀器是測控技術(shù)領(lǐng)域新出現(xiàn)的一項(xiàng)具有劃時代意義的技術(shù),它將計算機(jī)技術(shù)與電子測量技術(shù)完美地融合在了一起,是一項(xiàng)具有廣闊前景的電子儀器技術(shù)。隨著微型計算機(jī)技術(shù)的發(fā)展程度日益深入,功能作用日益強(qiáng)大,虛擬儀器技術(shù)必將逐步取代以傳統(tǒng)儀器為基點(diǎn)的測量與控制技術(shù),成為主流的儀器儀表技術(shù)。