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