基于USB接口的多節(jié)點無線測溫系統(tǒng)
1 引言
溫度監(jiān)測在土木建筑施工、儲糧倉庫、智能樓宇、空調(diào)系統(tǒng)以及其他工農(nóng)業(yè)生產(chǎn)中有著廣泛的應(yīng)用。傳統(tǒng)的測溫方法是在各監(jiān)測點布置溫度探頭,由專人每天定時采集各點的溫度數(shù)據(jù),再輸入電腦保存,并生成溫度、應(yīng)力的變化曲線和測試報告,也有一些是通過數(shù)據(jù)采集箱采集溫度和應(yīng)力數(shù)據(jù),然后通過電纜上傳電腦做進(jìn)一步的數(shù)據(jù)處理。
傳統(tǒng)的測量方法需要監(jiān)測人員頻繁來往于施工現(xiàn)場,勞動強度大,數(shù)據(jù)采集和傳輸不方便,信息管理的自動化程度低,難于滿足現(xiàn)代信息化監(jiān)測的要求。為了提高測溫數(shù)據(jù)采集的準(zhǔn)確性、可靠性、及時性,同時實現(xiàn)溫度和應(yīng)力數(shù)據(jù)的智能化、信息化管理,本文針對大規(guī)模建筑施工監(jiān)測等工程應(yīng)用的要求,設(shè)計了一種基于無線數(shù)據(jù)傳輸和USB接口的多節(jié)點遠(yuǎn)程溫度監(jiān)測系統(tǒng)。
通過無線數(shù)據(jù)傳輸,一方面拓展了節(jié)點分機布置的空間范圍,另一方面大大縮短了測溫電纜的長度以方便布線。USB接口實現(xiàn)了將各節(jié)點分機的測溫數(shù)據(jù)向主機的快速傳輸,取代了傳統(tǒng)的RS 232等接口形式,大大方便了與主機的連接。主機軟件完成數(shù)據(jù)的轉(zhuǎn)換、存儲、曲線和報表生成,實現(xiàn)混施工監(jiān)測的信息化管理,也可以構(gòu)建一個Web服務(wù)器,實現(xiàn)信息的異地監(jiān)測。
2 測溫系統(tǒng)的整體構(gòu)造
測溫系統(tǒng)是由主機、通信機和測溫節(jié)點分機構(gòu)成,整體框圖如圖1所示。
其中溫度信號通過埋植在現(xiàn)場的傳感器傳輸?shù)焦?jié)點分機,節(jié)點分機內(nèi)部集成了調(diào)理電路和信號采集模塊,以及由微處理器控制的存儲模塊和通信模塊,一個節(jié)點分機最多可以處理64路溫度信號,測溫分機以主機設(shè)定的時間間隔通過無線或有線方式經(jīng)通信機向主機傳送數(shù)據(jù),其中通信機采用了支持USB 2.0標(biāo)準(zhǔn)的微控制器C8051F320,使傳輸?shù)臄?shù)據(jù)通過USB傳送到主機,PC機在軟件支持下對數(shù)據(jù)進(jìn)行處理并以報表以及曲線圖表示出來。同時,主機也可以設(shè)定分機的數(shù)據(jù)采集間隔,監(jiān)測的部位,系統(tǒng)時間等參數(shù)。
3 USB接口在測溫系統(tǒng)中的應(yīng)用
為了把測溫數(shù)據(jù)傳送到主機,傳統(tǒng)的方法是利用RS 232或RS 485總線與主機通信。但由于這些接口傳輸速度慢,近年來,逐步被USB接口所取代。目前USB成為PC機的標(biāo)準(zhǔn)接口已經(jīng)是大勢所趨,在主機(host)端,目前推出的PC機幾乎100%支持USB。鑒于此,本文采用CYGNAL公司的支持全速USB 2.0的微控制器C8051F320。該單片機是完全集成的混合信號系統(tǒng)級芯片(SOC),具有與C8051完全兼容的CIP51內(nèi)核,與MSC-51指令集完全兼容。片內(nèi)集成了數(shù)據(jù)采集和控制系統(tǒng)中常用的模擬、數(shù)字外設(shè)及其他功能部件;內(nèi)置FLASH程序存儲器、內(nèi)部RAM以及外部數(shù)據(jù)存儲器RAM。微控制器C8051F320帶有USB接口,其功能控制模塊符合USB 2.0規(guī)范,可在全速或低速下運行,并具有1 kB USB緩存、集成收發(fā)器,無需外部電阻。Silicon lab公司提供了USBXpress的開發(fā)套件。通過使用USBXpress庫,大大簡化了USB固件程序和PC端驅(qū)動程序的開發(fā)。其中USB通信總體框圖如2所示。USBXpress通過一系列函數(shù)實現(xiàn)單片機端的應(yīng)用程序接口(API)。當(dāng)主機需要數(shù)據(jù)時,可將測溫節(jié)點分機數(shù)據(jù)通過通信機傳輸?shù)街鳈C中,應(yīng)用程序?qū)?shù)據(jù)進(jìn)行波形顯示和數(shù)據(jù)分析處理。
4 USB通信
本系統(tǒng)的USB外設(shè)為非符合HID標(biāo)準(zhǔn)的設(shè)備,因此要使主機與通信機順利傳輸數(shù)據(jù),需要編寫三部分的程序:設(shè)備端的固件程序、主機上的設(shè)備驅(qū)動程序以及客戶應(yīng)用程序。
4.1 固件程序設(shè)計
采用C語言編寫,USB固件程序程序由3部分組成:
(1)初始化單片機和所有的外圍電路;包括USB控制器的初始化、端點初始化、交叉開關(guān)和I/O口初始化、系統(tǒng)時鐘設(shè)置,控制器使能;
(2)主循環(huán)部分,其任務(wù)是可以中斷的;
(3)中斷服務(wù)程序,其任務(wù)是對時間敏感的,必須馬上執(zhí)行。如圖3所示。
根據(jù)USB協(xié)議,任何傳輸都是由主機(Host)開始的。單片機做它的前臺工作,等待中斷。主機首先要發(fā)令牌包給USB設(shè)備,C8051F320接收到令牌包后就進(jìn)入中斷服務(wù)程序,首先讀單片機的中斷寄存器,判斷USB令牌包的類型,然后執(zhí)行相應(yīng)的操作。
在USB單片機程序中,要完成對各種令牌包的響應(yīng),其中比較難處理的是SETUP包,主要是端口0的編程。本系統(tǒng)中主要用到了初始化、讀、寫、中斷這4個函數(shù):初始化USB_Init(0,0xEA61,NULL,NULL,Serial,250,0x80,0x100)函數(shù);塊寫函數(shù)Block_Write();塊讀函數(shù)Block_Read();USB中斷使能函數(shù)。USB的所有處理程序都是通過USB的中斷服務(wù)程序完成的。進(jìn)入USB中斷后,程序調(diào)用Get_Interrupt_Source()函數(shù)獲得USB中斷的進(jìn)入原因。然后根據(jù)不同的入口情況,來進(jìn)行相應(yīng)的處理。比如收到數(shù)據(jù)之后,讀取相應(yīng)的緩沖區(qū)內(nèi)容到內(nèi)存中;收到初始化命令時,復(fù)位單片機內(nèi)的各個狀態(tài)參數(shù)。
4.2 USB驅(qū)動程序
USB驅(qū)動程序是一個軟件組件,封裝了應(yīng)用程序存取硬件設(shè)備的功能函數(shù)。USB驅(qū)動程序模型分為5層,如圖4所示。
考慮到本系統(tǒng)使用了非標(biāo)準(zhǔn)類別,需要自己開發(fā)驅(qū)動程序,USB設(shè)備驅(qū)動程序的工具使用了USBXpressDevelopment Kit。主要函數(shù)如下:SI_Open()函數(shù);SI_Close()函數(shù);SI_Read函數(shù);SI_Write()函數(shù);SI_GetNumDevices()函數(shù);SI_CheckRXQueue()。
用戶端若要從設(shè)備讀取數(shù)據(jù),將調(diào)用一個應(yīng)用程序接口API,如OpenFile,SiUSBXp.dll實現(xiàn)這個API??偩€驅(qū)動程序控制對總線上所有設(shè)備的訪問。
4.3 用戶應(yīng)用程序
主機軟件采用可視化編程工具VC 6.0進(jìn)行開發(fā),采用數(shù)據(jù)庫Microsoft Access 2003進(jìn)行信息的管理。
根據(jù)實際的系統(tǒng)應(yīng)用要求,整個系統(tǒng)的軟件結(jié)構(gòu)如圖5所示。
5 測溫系統(tǒng)在實際工程中的應(yīng)用
測溫系統(tǒng)在某議事大廈項目中進(jìn)行了應(yīng)用,該工程基礎(chǔ)底板平面尺寸為65.4 m×47 m,其中中間區(qū)域3、7軸線與B、F軸線之間24.0 m×21.53 m部分板厚為2.2 m;該部分周圍有15個大承臺板厚為2.5 m;其余部分均為0.7 m,混凝土采用C40。
在進(jìn)行該工程基礎(chǔ)底板的混凝土施工過程中,本系統(tǒng)進(jìn)行了為期將近兩個星期的測溫使用,效果很好。圖6為自動記錄的3號點的溫度變化曲線。
6 結(jié) 語
基于C8051F320 USB接口的無線測溫系統(tǒng)把計算機技術(shù)與傳統(tǒng)信號采集技術(shù)緊密結(jié)合起來,充分發(fā)揮PC機和單片機各自的優(yōu)點,實現(xiàn)傳感器信號的采集、存儲、傳輸、顯示和處理。而借助USB接口的通信功能,減小了數(shù)據(jù)傳輸系統(tǒng)的復(fù)雜性,提高了傳輸速率極大地方便了系統(tǒng)的使用。