基于USB接口的多節點(diǎn)無(wú)線(xiàn)測溫系統
根據USB協(xié)議,任何傳輸都是由主機(Host)開(kāi)始的。單片機做它的前臺工作,等待中斷。主機首先要發(fā)令牌包給USB設備,C8051F320接收到令牌包后就進(jìn)入中斷服務(wù)程序,首先讀單片機的中斷寄存器,判斷USB令牌包的類(lèi)型,然后執行相應的操作。

在USB單片機程序中,要完成對各種令牌包的響應,其中比較難處理的是SETUP包,主要是端口0的編程。本系統中主要用到了初始化、讀、寫(xiě)、中斷這4個(gè)函數:初始化USB_Init(0,0xEA61,NULL,NULL,Serial,250,0x80,0x100)函數;塊寫(xiě)函數Block_Write();塊讀函數Block_Read();USB中斷使能函數。USB的所有處理程序都是通過(guò)USB的中斷服務(wù)程序完成的。進(jìn)入USB中斷后,程序調用Get_Interrupt_Source()函數獲得USB中斷的進(jìn)入原因。然后根據不同的入口情況,來(lái)進(jìn)行相應的處理。比如收到數據之后,讀取相應的緩沖區內容到內存中;收到初始化命令時(shí),復位單片機內的各個(gè)狀態(tài)參數。
4.2 USB驅動(dòng)程序
USB驅動(dòng)程序是一個(gè)軟件組件,封裝了應用程序存取硬件設備的功能函數。USB驅動(dòng)程序模型分為5層,如圖4所示。

考慮到本系統使用了非標準類(lèi)別,需要自己開(kāi)發(fā)驅動(dòng)程序,USB設備驅動(dòng)程序的工具使用了USBXpressDevelopment Kit。主要函數如下:SI_Open()函數;SI_Close()函數;SI_Read函數;SI_Write()函數;SI_GetNumDevices()函數;SI_CheckRXQueue()。
用戶(hù)端若要從設備讀取數據,將調用一個(gè)應用程序接口API,如OpenFile,SiUSBXp.dll實(shí)現這個(gè)API??偩€(xiàn)驅動(dòng)程序控制對總線(xiàn)上所有設備的訪(fǎng)問(wèn)。
4.3 用戶(hù)應用程序
主機軟件采用可視化編程工具VC 6.0進(jìn)行開(kāi)發(fā),采用數據庫Microsoft Access 2003進(jìn)行信息的管理。
根據實(shí)際的系統應用要求,整個(gè)系統的軟件結構如圖5所示。

5 測溫系統在實(shí)際工程中的應用
測溫系統在某議事大廈項目中進(jìn)行了應用,該工程基礎底板平面尺寸為65.4 m×47 m,其中中間區域3、7軸線(xiàn)與B、F軸線(xiàn)之間24.0 m×21.53 m部分板厚為2.2 m;該部分周?chē)?5個(gè)大承臺板厚為2.5 m;其余部分均為0.7 m,混凝土采用C40。
在進(jìn)行該工程基礎底板的混凝土施工過(guò)程中,本系統進(jìn)行了為期將近兩個(gè)星期的測溫使用,效果很好。圖6為自動(dòng)記錄的3號點(diǎn)的溫度變化曲線(xiàn)。

6 結 語(yǔ)
基于C8051F320 USB接口的無(wú)線(xiàn)測溫系統把計算機技術(shù)與傳統信號采集技術(shù)緊密結合起來(lái),充分發(fā)揮PC機和單片機各自的優(yōu)點(diǎn),實(shí)現傳感器信號的采集、存儲、傳輸、顯示和處理。而借助USB接口的通信功能,減小了數據傳輸系統的復雜性,提高了傳輸速率極大地方便了系統的使用。
評論