摘 要: 利用短距離無線通信技術(shù)構(gòu)成一個(gè)基于單片機(jī)的簡(jiǎn)易、低功耗的無線多點(diǎn)溫度測(cè)量系統(tǒng)。系統(tǒng)以AT89C2051、AT89C51單片機(jī)為核心,采用數(shù)字式溫度傳感器DS18B20、無線收發(fā)芯片nRF24L01實(shí)現(xiàn)了溫度的采集、控制、無線收發(fā)等,給出了系統(tǒng)硬件及軟件的具體設(shè)計(jì)思想與實(shí)現(xiàn)方法。
關(guān)鍵詞: 無線傳感器網(wǎng)絡(luò);單片機(jī);溫度檢測(cè);傳感器節(jié)點(diǎn)
無線傳感網(wǎng)絡(luò)WSNs(Wireless Sensor Networks)是當(dāng)前在國(guó)際上備受關(guān)注的、涉及多學(xué)科高度交叉、知識(shí)高度集成的前沿?zé)狳c(diǎn)研究領(lǐng)域。其測(cè)量系統(tǒng)綜合了現(xiàn)代傳感器技術(shù)、微電子技術(shù)、通信技術(shù)、嵌入式計(jì)算技術(shù)和分布式處理技術(shù)等,能夠通過各類集成化的微型傳感器實(shí)時(shí)檢測(cè)、感知和采集網(wǎng)絡(luò)分布區(qū)域內(nèi)的各種環(huán)境或檢測(cè)對(duì)象的信息,并對(duì)這些信息進(jìn)行處理,從而獲得詳盡而準(zhǔn)確的信息[1]。
無線測(cè)溫系統(tǒng)是通過無線傳感網(wǎng)絡(luò)建立的一種測(cè)溫系統(tǒng),系統(tǒng)中包含大量的無線傳感節(jié)點(diǎn)。在任意時(shí)刻,傳感節(jié)點(diǎn)間通過無線通信完成溫度信息的處理。利用單片機(jī)、溫度傳感器及無線收發(fā)芯片等構(gòu)成的無線多點(diǎn)測(cè)溫系統(tǒng)電路簡(jiǎn)單,性能穩(wěn)定,抗干擾能力強(qiáng),可靠性高,功耗低,可廣泛應(yīng)用于環(huán)境監(jiān)測(cè)及工農(nóng)業(yè)等領(lǐng)域。
1 無線測(cè)溫系統(tǒng)硬件電路設(shè)計(jì)
系統(tǒng)以短距離無線通信為基礎(chǔ),實(shí)現(xiàn)環(huán)境的多點(diǎn)溫度檢測(cè)。系統(tǒng)由多個(gè)無線節(jié)點(diǎn)組成,每個(gè)節(jié)點(diǎn)由單片機(jī)構(gòu)成,并配置一個(gè)溫度傳感器,每個(gè)節(jié)點(diǎn)既實(shí)時(shí)監(jiān)視該點(diǎn)附近的溫度,同時(shí)也無線雙向中轉(zhuǎn)信息,將信息傳輸?shù)教炀€范圍內(nèi)的其他節(jié)點(diǎn)上,這樣使所有的節(jié)點(diǎn)都可以和接收節(jié)點(diǎn)鏈接起來。其系統(tǒng)框圖如圖1所示。
1.1 監(jiān)測(cè)節(jié)點(diǎn)電路設(shè)計(jì)
1.1.1 溫度采集模塊[2-3]
溫度采集的方法有多種,但考慮簡(jiǎn)單實(shí)用、易于實(shí)現(xiàn)、性能穩(wěn)定、功耗低、可靠性高等因素,該模塊采用DS18B20數(shù)字式溫度傳感器來實(shí)現(xiàn)環(huán)境溫度的檢測(cè)。DS18B20是美國(guó)Dallas半導(dǎo)體公司生產(chǎn)的單總線溫度傳感器,其測(cè)溫范圍為-55 ℃~+125 ℃,最高分辨率可達(dá)0.062 5℃。信息經(jīng)過單線接口送入DS18B20或從DS18B20送出。讀、寫和完成溫度變換所需的電源可以由數(shù)據(jù)線本身提供,而不需要外部電源。DS18B20的外圍接線如圖2所示。
1.1.2 無線收發(fā)模塊[4-5]
該模塊選用NORDIC公司推出的高速、低功耗、低成本的2 Mb/s工業(yè)級(jí)嵌人式2.4 GHz無線收發(fā)芯片nRF24L01,它具有增強(qiáng)型的ShockBurst功能,集成了雙向通信所需要的鏈路層。同時(shí),內(nèi)置速率高達(dá)8 Mb/s的SPI接口能很好地解決nRF24L01與單片機(jī)數(shù)據(jù)傳輸率的問題。nRF24L01采用PCB天線,為保證其頻率和阻抗與射頻芯片匹配,以獲取最大傳輸功率并抑制高頻噪聲,在nRF24L01外圍電路接入了電感和電容。nRF24L01的外圍部分接線如圖3所示。
1.2 接收節(jié)點(diǎn)電路設(shè)計(jì)
接收節(jié)點(diǎn)的能量由穩(wěn)定的電源供給,無需考慮節(jié)能問題。但考慮到數(shù)據(jù)顯示控制等需要較多的管腳,故采用AT89C51作為控制芯片。此外,因?yàn)橛?jì)算路由的過程非常繁瑣,程序較長(zhǎng),電路中用27C256芯片擴(kuò)展了一個(gè)32 KB的ROM來滿足要求。另外,電路中的無線收發(fā)模塊仍采用nRF24L01無線收發(fā)芯片。接收節(jié)點(diǎn)部分接線如圖5所示。
2 無線測(cè)溫系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)軟件采用了模塊化設(shè)計(jì),主要包括監(jiān)測(cè)節(jié)點(diǎn)的溫度采集、接收節(jié)點(diǎn)的路徑計(jì)算和溫度顯示、無線傳輸?shù)?。下面主要給出了主程序、溫度采集程序、無線傳輸程序的設(shè)計(jì)思想。
2.1 主程序設(shè)計(jì)
系統(tǒng)的主程序設(shè)計(jì)主要完成系統(tǒng)初始化、中斷優(yōu)先級(jí)設(shè)定以及判斷調(diào)用各模塊程序,即主要實(shí)現(xiàn)各模塊的連接,然后再確定各個(gè)監(jiān)測(cè)節(jié)點(diǎn)所在位置對(duì)于接收節(jié)點(diǎn)的相對(duì)坐標(biāo)。
2.1.1 接收節(jié)點(diǎn)主程序
系統(tǒng)上電以后,接收節(jié)點(diǎn)先進(jìn)行初始化設(shè)置。初始化的內(nèi)容包括給相應(yīng)的字符名稱賦值,打開中斷,等待中斷響應(yīng)。當(dāng)中斷響應(yīng)后,單片機(jī)進(jìn)入相應(yīng)的中斷服務(wù)程序,接收來自所有監(jiān)測(cè)節(jié)點(diǎn)的序列號(hào)信息,計(jì)算出每個(gè)節(jié)點(diǎn)的位置并存儲(chǔ),再計(jì)算出到達(dá)每個(gè)監(jiān)測(cè)節(jié)點(diǎn)的路徑,向監(jiān)測(cè)節(jié)點(diǎn)發(fā)送溫度測(cè)試指令,等監(jiān)測(cè)節(jié)點(diǎn)接收到完整數(shù)據(jù)后,將接收節(jié)點(diǎn)置接收方式,準(zhǔn)備接收測(cè)得的數(shù)據(jù)。在接收節(jié)點(diǎn)接收完監(jiān)測(cè)節(jié)點(diǎn)上傳的數(shù)據(jù)后,根據(jù)中斷指令進(jìn)行顯示,保持一段時(shí)間以后,向第二個(gè)監(jiān)測(cè)節(jié)點(diǎn)發(fā)送溫度測(cè)試指令。按此順序循環(huán),直到所有監(jiān)測(cè)節(jié)點(diǎn)的溫度被顯示。其流程圖如圖6所示。
2.1.2 監(jiān)測(cè)節(jié)點(diǎn)主程序
監(jiān)測(cè)節(jié)點(diǎn)主程序開始后首先進(jìn)行初始化設(shè)置。初始化的內(nèi)容包括給相應(yīng)的字符名稱賦值,設(shè)置串口通信參數(shù)。然后開始發(fā)送自己的序列號(hào),接收其他節(jié)點(diǎn)的序列號(hào)組,如果其中不包含自己的序列號(hào),則轉(zhuǎn)發(fā);若包含,則不發(fā)。進(jìn)入睡眠模式,直到收到接收節(jié)點(diǎn)的溫度測(cè)試指令,開始向DS18B20發(fā)初始化脈沖,然后發(fā)送skipROM命令,執(zhí)行溫度的檢測(cè);然后將測(cè)得的數(shù)據(jù)發(fā)送給接收節(jié)點(diǎn),復(fù)位中斷返回,準(zhǔn)備進(jìn)行新的測(cè)試。其流程圖如圖7所示。
2.3 無線傳輸程序設(shè)計(jì)
無線傳輸通過nRF24L01無線收發(fā)芯片實(shí)現(xiàn)。為使系統(tǒng)程序編制更加簡(jiǎn)單且穩(wěn)定性高,在設(shè)計(jì)中使nRF24L01工作于Enhanced ShockBurstTM 收發(fā)模式下。ShockBurstTM的配置字使nRF24L01能夠處理射頻協(xié)議,在配置完成后,在nRF24L01工作的過程中,只需改變其最低一個(gè)字節(jié)中的內(nèi)容,就可以實(shí)現(xiàn)接收模式和發(fā)送模式之間切換,流程圖如圖9、圖10所示。
本系統(tǒng)經(jīng)實(shí)驗(yàn)室測(cè)試,取得了很好的效果且具有一定的實(shí)用性。傳感器節(jié)點(diǎn)間無障礙傳輸距離基本可達(dá)到50 m左右,當(dāng)距離小于10 m時(shí)有很強(qiáng)的抗干擾能力,且溫度數(shù)據(jù)可完成多跳傳輸,準(zhǔn)確無誤地到達(dá)接收節(jié)點(diǎn)。
參考文獻(xiàn)
[1] 王雪.無線傳感網(wǎng)絡(luò)測(cè)量系統(tǒng)[M].北京:機(jī)械工業(yè)出版社,2007:1-13.
[2] 求是科技.單片機(jī)典型模塊設(shè)計(jì)實(shí)例導(dǎo)航[M].北京:人民郵電出版社,2004:166-171.
[3] 湯競(jìng)南,沈國(guó)琴.51單片機(jī)C語言開發(fā)與實(shí)例[M].北京:人民郵電出版社,2008:138-143.
[4] 曾勇,楊濤,馮月暉.基于nRF24L01的超低功耗無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2008,34(7):45-48.
[5] 求是科技.單片機(jī)通信技術(shù)與工程實(shí)踐[M].北京:人民郵電出版社,2005:317-328.