朱山川
(滁州職業(yè)技術學院 機電工程系,安徽 滁州 239000)
無線傳感網(wǎng)絡是當前工業(yè)生產(chǎn)等各種自動化技術應用領域的一個研究熱點,它可以對大量感知數(shù)據(jù)進行分布式處理,提高感知數(shù)據(jù)中的準確性.另外,網(wǎng)絡化傳感器能夠重點關注網(wǎng)絡中其他傳感器指出的關鍵事件.本文對無線網(wǎng)絡中的傳感器節(jié)點設計進行研究,設計一種適合于工業(yè)環(huán)境下溫度測量的低功耗無線傳感網(wǎng)絡節(jié)點,以低功耗單片機MSP430F2012為基礎,使用線式數(shù)字溫度傳感器DS18B20對溫度進行測量,通過一線總線傳給430單片機.單片機通過射頻收發(fā)芯片nRF24L01與基站通信,接受基站下發(fā)的系統(tǒng)設定參數(shù)(溫度超限定值),在溫度超限時上傳實際溫度值;通過nRF24L01接收基站的溫度查詢命令,上傳實測溫度值.
測溫節(jié)點由溫度傳感器、單片機和無線射頻芯片三個主要部分組成,圖1是硬件設計原理的整體示意框圖.
圖1 硬件設計原理
針對無線傳感網(wǎng)絡設計中的能耗問題,尤其是對測溫節(jié)點,對節(jié)能且高效有更重要的要求.所以,本文的硬件選型注重節(jié)能要求,本文的具體選型如下:
(1)單片機選用低功耗單片機MSP430F2012,該型號單片機采用矢量中斷,支持多個中斷源,并可以任意嵌套,用中斷請求喚醒CPU最短可達1 μm,所以該款單片機具有較低的功耗;(2)溫度傳感器采用數(shù)字型智能傳感器DS18B20,是美國DALLAS公司推出的一種可組網(wǎng)數(shù)字式傳感器[1],具有單總線通信的優(yōu)點;(3)無線收發(fā)芯片選用nRF24L01,其可以工作于世界通用ISM頻段,且具有待機模式.
圖2 硬件整體連接設計
本文所設計硬件系統(tǒng)如圖2所示,在傳感器DS18B20的信號線與單片機的連接采用三線制方式,單片機MSP430的P1.0作為DS18B20的DQ數(shù)據(jù)接口的數(shù)據(jù)輸入,作為信號線使用,輸入數(shù)據(jù)和讀取數(shù)據(jù)時都采用位傳送的方式,P1.1口作為24L01 的CE信號,即片選信號;P1.2 作為24L01的SCN信號,即SPI的使能信號;P1.4連SCK,作為時鐘信號;P1.5連在MISO(主入從出)引腳上;P1.6連在MOSI(主出從入)引腳上;P1.7接IRQ,作為信號輸入口,接收來自24L01的中斷信號.
DS18B20內(nèi)部的溫度轉換裝置將模擬信號轉換為數(shù)字信號.數(shù)據(jù)讀入單片機后即可進行處理,讀出的溫度值與基站送來的溫度限值比較是否超過限值,若超過溫度限值則報警,再將處理結果送至24L01發(fā)送給基站.本文設計時沒有直接使用單片機的SPI接口,而是采用普通I/O接口模擬SPI接口的方式同無線收發(fā)芯片進行通信.
在本文設計中傳感器需要對周圍的環(huán)境溫度定時進行采集,然后轉換為數(shù)字量送給單片機,單片機對溫度值進行判斷處理后,如果超過限值則立即上傳給基站,若正常將處理結果送至24L01定時發(fā)送給基站.而如果基站向節(jié)點單片機下達一些任務執(zhí)行命令,就需要單片機將收發(fā)設備接收到的數(shù)據(jù)傳達給溫度采集模塊.軟件設計流程圖如圖3所示:
圖3 軟件工作流程
在主函數(shù)中,主要采用調(diào)用各個部分的子函數(shù)來實現(xiàn)整體功能.利用MSP430內(nèi)部的定時裝置,定時時間到定時器會提出中斷,CPU便會去響應相應的中斷子程序.
溫度數(shù)據(jù)采集流程如圖4所示.本文設計使用DS18B20的三個功能命令:溫度轉換(44H),寫暫存器(4EH),讀暫存器(BEH).DS18B20加電后處于低功耗待命狀態(tài),MCU每次必須發(fā)送轉換溫度命令(44H)來初始化DS18B20采集溫度數(shù)據(jù),并進行數(shù)據(jù) A/D轉換,最終結果保存在中間暫存器的溫度寄存器,然后返回待命狀態(tài).在轉換過程中,控制器可以查詢當前狀態(tài),轉換進行中返回0,轉換結束返回1[2].工作時DS18B20從最低byte的最低bit開始發(fā)送溫度數(shù)據(jù),如果只需要接收部分寄存器中的數(shù)據(jù),則可通過發(fā)送復位脈沖來使DS18B20停止發(fā)送后續(xù)數(shù)據(jù).
圖4 溫度數(shù)據(jù)采集流程
為配合硬件設計中利用MSP430F2012 的普通I/O 口模擬SPI 串口通信,軟件設計對nRF24L01 的數(shù)據(jù)包處理方式采用增強型ShockBurstTM模式.這種模式可以在不增加MCU工作量的提前下,同時控制應答及重發(fā)功能,因而能夠更加方便有效地執(zhí)行雙向鏈接協(xié)議.數(shù)據(jù)接收和發(fā)送流程如圖5所示.
圖5 數(shù)據(jù)接收和發(fā)送流程
工作過程中對于延時部分設計時采用調(diào)用延時子程序的方法.MSP430F2012的指令周期是62.5ns,通過設置循環(huán)次數(shù)來設置所需的延時.對于定時發(fā)送數(shù)據(jù)的需求,本設計采用單片機內(nèi)部定時器A,定時器A的寄存器需要配置,通過設置MC1、MC2改變計數(shù)模式,TAIE為1允許定時器溢出中斷,定時器溢出標志位TAIFG程序中若置為1,說明定時到,即可向CPU提中斷,CPU響應相應的中斷服務子程序.單片機中的寄存器都可以直接訪問,繼而可以對其各個位進行讀寫.時鐘源采用單片機內(nèi)部的時鐘源,即將SSEL1、SSEL0設置為10,使用系統(tǒng)時鐘(MCLK).根據(jù)時鐘選擇的的低速或高速頻率和需要的定時時間算出計數(shù)初值.時鐘信號可以根據(jù)需要進行1、2、4、8分頻后使用.
本文基于nRF24L01的性能特點,采用數(shù)字傳感器DS18B20進行溫度的采集工作,并利用低功耗單片機MSP430F2012作為軟件設計平臺,對無線傳感網(wǎng)絡的測溫節(jié)點進行硬件和軟件的相關設計.實現(xiàn)節(jié)點的測溫以及溫度超限報警任務.并可以利用nRF24L01進行數(shù)據(jù)的無線傳輸,實現(xiàn)節(jié)點同基站間的無線通信.
[1]劉俊伏,宗云.DS18B20與單片機的接口及編程技術[J].河北工業(yè)科技,2007(4):227-229.
[2]張鵬,熊磊,姚東蘋.分辨率可編程的一線總線數(shù)字溫度計DS18B20及其應用[J].電子產(chǎn)品世界,2002(2):20-23.
[3]張陽陽,顧葉丹,潘日敏.基于C8051F單片機的汽車超載實時控制系統(tǒng)[J].微計算機信息,2011(11):62-63.