本文利用STC12LE5630AD單片機和nRF905設計了一個無線溫度采集系統。一般傳統的溫度傳感器的輸出信號均為模擬信號,需經過放大電路和A/D轉換后才能與單片機連接,系統結構比較復雜。筆者因此采用帶有A/D轉換功能的單片機STC12LE5630AD簡化了系統外圍電路。nRF905是Nordic公司推出的單片射頻發射器芯片,可以自動完成處理字頭和CRC,配置簡單方便,功耗低。本文的系統不僅克服了溫度采集系統在使用空間上的局限性,而且大大簡化了系統硬件電路。本文設計的無線節點溫度采集系統能夠用于實際多點溫度采集,結果也表明系統工作穩定,數據可靠,可以應用于室內和室外的溫度監測。
1 系統介紹
多點溫度監測系統由測量裝置、無線傳輸終端、上位機控制中心組成。如圖1為系統結構框圖。下位機(監測器)利用溫度傳感器將相應溫度值轉換成模擬電壓值,直接由單片機進行A/D轉換,再將自己的地址值即轉換的數據值打包送至無線模塊(nRF905)。上位機無線模塊將下位機發送來的地址值即采集值送至單片機,在由串口通信方式送至PC。由PC進行相應的判斷、采集值數據的修正最后顯示數據并畫圖。因此系統設計包括了硬件和軟件設計。
?
2 系統硬件設計
系統硬件主要包含:由LM35芯片構成的溫度采集電路、nRF905芯片構成的無線節點模塊與PC與單片機的串口通信系統。
2.1 溫度采集電路及無線模塊設計
溫度傳感器采用由National Semiconductol所生產的LM35,其輸出電壓與攝氏溫標呈線性關系,轉換公式如式(1),0時輸出0 V,每升高1°,輸出電壓增加10 mV。在常溫下,LM35不需要額外的校準處理即可達到±1/4℃準確率。本文采用單電源模式,其在25°下靜默電流約50μA。
Vout_LM35(T)=10 mV/℃xT℃ (1)
通信模塊為nRF905,該芯片工作在433/868/915 MHz的ISM頻段。由一個完全集成的頻率調制器,一個帶解調器的接收器,一個功率放大器,一個晶體震蕩器和一個調節器組成。數據傳輸速率可達100 kb/s,支持點對點傳輸模式和廣播傳輸模式。nRF905工作電壓1.9~3.6 V。功耗很低,該芯片處于接受模式時工作電流為12.5 mA,但在掉電模式下工作電流僅為25μA。nRF905采用Nordic公司的VLSI ShockBurst技術,該技術使得nRF905在沒有高速MCU下,也能實現高速數據傳輸。
STC12CE5620AD系列單片機工作電壓為3.6~2.2 V,每個I/O驅動能力可達到20 mA,是宏晶科技生產的單時鐘/機器周期(1T)的單片機,是高速/低功耗/超強抗干擾的新一代8051單片機,代碼與傳統8051兼容但速度快8~12倍,內部集成8路高速10位的A/D轉換。無線模塊具體接線原理圖如圖2所示。系統設計的電源電路可以利用電網供電,也可以使用電池。
?
2.2 串口通信硬件系統設計
基于PC機與單片機的串口通信系統電路如圖3所示,主要包括單片機、串口通信電路、ISP程序下載接口電路和系統復位電路。本電路基于RS-232接口標準,使用DB-9連接器。由于單片機輸出的TTL電平與PC機的RS-232串口電平的電氣特性不匹配。為了使單片機能與PC機正常通信,采用美信公司的MAX232芯片進行電平轉換。MAX232是專門為電腦的RS-232標準串口設計的接口芯片,功能比較強大。MAX232芯片與計算機連接的端口中有3個驅動端和5個接收端,因此可以同時進行多路通信。另外MAX232芯片的傳輸速率最高可以達235 kb/s。在所設計的串口通信電路系統中,單片機的數據通過RXD、TXD與MAX3232相連,經MAX3232完成電平轉換后成為RXD1、TXD1信號,再通過串口線與主機相連。
?
3 軟件系統設計
軟件主要包括:由微軟公司推出可視化,面向對象的結構化程序設計語言Visual Basic構成的上位機應用軟件與C語言編寫的下位機控制程序設計。
3.1 下位機軟件設計
nRF905突出的優點就是收發模塊電路設計簡單,所需要的外圍器件少。nRF905在正常工作前應由STC11L60XE先根據需要寫好配置寄存器,其后的工作主要是兩個:發送數據和接收數據。通過TRX-CE,TX-EN,PWN-UP的設置來實現nRF905不同的工作模式,模式設置如表1所示。
?
1)發送流程 當微控制器有數據要發送時,STC11L60XE先把PWR_UP引腳置為電平、TRX_CE引腳置為低電平。從而使nRF905置于待機模式;然后按時序通過SPI總線把發送地址和待發送的數據都寫入nRF905相應寄存器中。SPI接口的速率在通信協議和器件配置時確定。微控制器將PWR_UP、TRX_CE和,TX_EN全置高電平,激發nRF905的ShockBurstTM發送模式。nRF905的ShockBurstTM發送包括以下步驟:射頻寄存器自動開啟;數據打包;發送數據包;當數據發送完成,數據準備好,引腳被置高。當TRX_CE被置時,nRF905發送過程完成,自動進入空閑模式。Sho ckBurstTM工作模式保證一旦發送數據的過程開始,無論TRX_EN和TX_EN引腳是高或低,發送過程都會被處理完,并且只有在前一個數據包被發送完畢,nRF905才能接受下一個發送數據包。數據包的具體格式見圖4,具體溫度采集發送程序流程見圖5。
?
2)接收流程 當微控制器有數據要接收時,STCllL60XE先把TRX_CE置為高電平、TX_EN置為低電平,此時nRF905進入ShockBurstTM接收模式;650 μs后,nRF905不斷監測,等待接收數據;當nRF905檢測到同一頻段的載波時,載波檢測引腳被置高;當接收到一個相匹配的地址,地址匹配引腳被置高。當一個正確的數據包接收完畢,nRF905自動移去字頭、地址和CRC校驗位,然后把數據備好引腳置高。微控制器把TRX _CE置低,nRF905進入空閑模式。微控制器通過SPI口以一定的速率把數據移到微控制器內。當所有的數據接收完畢,nRF905把數據準備好引腳和地址匹配引腳置低。nRF905可進入ShockBurstTM接收模式、發送模式或關機模式。具體接收程序流程見圖6。
?
3.2 上位機軟件設計
對于多機通信利用PC機(IPC)實現測控主要有兩種方式:一是通過串行接口(RS_232或RS_485),二是通過各種數據采集板卡。微軟公司推出可視化,面向對象的結構化程序設計語言Visual Basic是很好的選擇。因此采用Visual Basic開發Windows下的測控軟件使用簡單、容易上手、開發效率高,尤其是軟件界面設計非常便捷,編程工作量較小、開發周期短,特別適合非計算機專業工程技術人員掌握使用。
本課題針對串口開發,Visual Basic提供了串口通信控件MScomm,在軟件設計中首先對MScomm控件進行初始化設置:MSComm1.CommPort =1設置串口通道為1;MSComm1.Settings=“9600,N,8,1”設置依次為波特率、同位檢查、數據位和停止位:MSComm1.PortOpen=True設置串口打開;MSComm1.RThreshold=1設置接收緩沖區每接收一個字符就觸發一次接收事件,MSComm1.InputMode=comInputModeBinary設置串口接收數據格式為二進制,MSComm1.SThreshold=0’設置串口為禁止發送事件,MSComm1.InputLen=0讀取接收緩沖區的所有字符等等。上位機運行首先進行串口初始化,相應進行坐標建立,等待串口中斷。當數據緩沖區接到數據時觸發程序中斷,將Comm1.input的數據送至Buffer(i)的數組中,當接收四個字節的數字后,進行判斷,起始字符和結束字符是否正確,判斷正確后根據不同的地址值將Buffer(2)的數組中的溫度值相應保存然后進行數據轉換、處理,再顯示在圖形區,退出中斷。上位機具體流程圖如圖7所示。
?
4 系統測試結果
傳統多點溫度測控系統,多采用有線傳輸方式將溫度采集端與監控端相連,當溫度采集點較多時,必然導致系統布線復雜、成本增加、故障率高且維護困難。該研究的無線射頻模塊采用低發射功率、高接收靈敏度的設計方案,通過優化電路,屏蔽無線干擾,通訊距離可達500~800 m。應用該設計實現了學校檔案室外無線多點溫度采集與監控。采集監控設備分布如圖8所示,系統于3月29號19時18分至3月30號19時18分連續運行1天并每分鐘采集一次。溫度圖表記入如圖9所示,紅色圖線為室外溫度,黑色為檔案室溫度。據當天南京氣象公布氣溫5℃到21℃與采集數據和繪制曲線相比誤差甚微。室外由于采集設備要求太陽直射所以采集溫度偏高,白天溫度波動由當天東南風造成和采集時間周期造成,11點和12點之間由于云層遮擋造成采集溫度下滑,與同類產品相比,該系統體積小、采集相同數據信息用時少、抗干擾能力強、性價比高。
?
5 結束語
該系統實現了監控系統與溫度采集系統之間數據的無線傳輸;完成采集現場與監控裝置真正意義上的分離,并且系統的終端可以構成無線傳感網絡,實現指定區域的傳感器數據的采集和接收,也可廣泛應用于工業控制、數據采集等多個領域,且系統硬件電路簡單、響應速度快、可靠性高。在多點溫度采集及復雜的工作現場使用該系統可取得較好的工作效果。
評論
查看更多