0 引 言
無(wú)線傳感器網(wǎng)絡(luò)是新近興起的研究領(lǐng)域,它是由一個(gè)主機(jī)(網(wǎng)絡(luò)接入點(diǎn))和大量的無(wú)線傳感器節(jié)點(diǎn)組成的分布式系統(tǒng)。由無(wú)線傳感器節(jié)點(diǎn)負(fù)責(zé)對(duì)數(shù)據(jù)的感知和處理,并傳送給主機(jī);主機(jī)用戶(hù)可通過(guò)公共網(wǎng)絡(luò)(如Internet Work,公共交換網(wǎng)等)獲取相關(guān)信息,實(shí)現(xiàn)對(duì)現(xiàn)場(chǎng)的有效控制和管理。它在軍事、環(huán)境、健康、家庭以及空間探索和災(zāi)難拯救等領(lǐng)域都有著廣泛的應(yīng)用前景。其無(wú)線傳感器節(jié)點(diǎn)通常分布在一些特殊的環(huán)境中,因而要求其具有低功耗、低成本、無(wú)線傳輸和分布式處理等特性。藍(lán)牙技術(shù)是一種使用2.4 GHz頻段的短距離無(wú)線通信技術(shù)。采用快速跳頻、前向糾錯(cuò)和優(yōu)化的編碼等技術(shù),使得其具有抗干擾能力強(qiáng)、通信質(zhì)量穩(wěn)定的優(yōu)點(diǎn),同時(shí)它還具有低功耗、低成本、使用便捷和電磁污染小等特點(diǎn)。藍(lán)牙技術(shù)的這些優(yōu)勢(shì),為其在無(wú)線傳感器網(wǎng)絡(luò)中的實(shí)際應(yīng)用提供了條件。
下面以研制完成的溫度無(wú)線傳感器網(wǎng)絡(luò)系統(tǒng)為例,詳細(xì)介紹利用計(jì)算機(jī)、單片機(jī)及藍(lán)牙技術(shù)實(shí)現(xiàn)溫度數(shù)據(jù)的采集、處理、無(wú)線傳輸?shù)裙δ堋?/p>
1 系統(tǒng)結(jié)構(gòu)
溫度無(wú)線傳感器網(wǎng)絡(luò)系統(tǒng)采用數(shù)字式輸出溫度傳感器DS18820和單片機(jī)AT89S2051組成溫度采集系統(tǒng)。利用重慶金甌公司生產(chǎn)的藍(lán)牙內(nèi)嵌模塊,完成溫度數(shù)據(jù)的傳輸及控制。實(shí)現(xiàn)計(jì)算機(jī)對(duì)溫度數(shù)據(jù)的無(wú)線傳輸、采集和處理。系統(tǒng)邏輯結(jié)構(gòu)如圖1所示,傳感器節(jié)點(diǎn)結(jié)構(gòu)如圖2所示。
2 溫度采集系統(tǒng)的設(shè)計(jì)
3 單片機(jī)和藍(lán)牙模塊的連接
溫度傳感器對(duì)采集到的溫度信號(hào)進(jìn)行處理并輸出數(shù)字信號(hào),存儲(chǔ)在單片機(jī)的寄存器中。在本系統(tǒng)中單片機(jī)和藍(lán)牙發(fā)送模塊的接口采用的是RS 232接口。采集的數(shù)據(jù)通過(guò)藍(lán)牙發(fā)送模塊傳輸?shù)剿{(lán)牙接收模塊上,再通過(guò)藍(lán)牙接收模塊傳輸?shù)街鳈C(jī)。最終把采集進(jìn)來(lái)的數(shù)據(jù)在主機(jī)上進(jìn)行處理。
這里有一個(gè)電平轉(zhuǎn)換的問(wèn)題。單片機(jī)發(fā)出的信號(hào)是TTL信號(hào),所以在與藍(lán)牙模塊進(jìn)行數(shù)據(jù)前,需要把它轉(zhuǎn)化成RS 232電平。本系統(tǒng)中采用MAX232進(jìn)行電平轉(zhuǎn)換。接口電路圖如圖5所示。
4 主機(jī)與藍(lán)牙模塊的連接
主機(jī)和藍(lán)牙接收模塊之間的數(shù)據(jù)傳輸采用RS 232串口連接。采集到的數(shù)據(jù)通過(guò)藍(lán)牙傳輸?shù)浇邮漳K之后,通過(guò)RS 232接口傳輸?shù)街鳈C(jī)上。接口硬件采用金甌公司的藍(lán)牙模塊RS轉(zhuǎn)換器。通信軟件由VC編寫(xiě),將傳感器節(jié)點(diǎn)測(cè)量的數(shù)據(jù)通過(guò)藍(lán)牙傳輸?shù)街鳈C(jī),顯示出來(lái)以便進(jìn)行數(shù)據(jù)處理。主機(jī)通信程序主界面如圖6所示。
5 溫度無(wú)線傳感器網(wǎng)絡(luò)系統(tǒng)設(shè)計(jì)時(shí)應(yīng)注意的事項(xiàng)
(1)注意硬件及軟件設(shè)計(jì)的防干擾設(shè)計(jì)
AT89S2051采用上電復(fù)位電路,要注意設(shè)置并啟動(dòng)其內(nèi)部自帶的看門(mén)狗電路。軟件編程時(shí)要“喂狗”,以防止外界復(fù)雜環(huán)境對(duì)系統(tǒng)工作的影響。
(2)傳感器節(jié)點(diǎn)標(biāo)識(shí)
在傳感器節(jié)點(diǎn)發(fā)送采集到的溫度數(shù)據(jù)之前,控制其先發(fā)送一個(gè)八位的二進(jìn)制標(biāo)識(shí)碼,主控機(jī)通過(guò)對(duì)這一標(biāo)識(shí)碼的識(shí)別,就可以知道所接收到的數(shù)據(jù)是由哪一個(gè)傳感器節(jié)點(diǎn)所采集發(fā)送的。理論上,這種方法一共可以標(biāo)識(shí)28=256個(gè)節(jié)點(diǎn)。
(3)傳送數(shù)據(jù)的校驗(yàn)
藍(lán)牙傳輸系統(tǒng)中,對(duì)傳輸?shù)拿恳粠瑪?shù)據(jù)都進(jìn)行了校驗(yàn),而且串口通信對(duì)傳輸?shù)拿恳粠瑪?shù)據(jù)也進(jìn)行了校驗(yàn),這就確保了數(shù)據(jù)傳送的正確性。實(shí)驗(yàn)也證明了系統(tǒng)數(shù)據(jù)傳送性能良好。
(4)控制各傳感器節(jié)點(diǎn)工作時(shí)序
系統(tǒng)啟動(dòng)時(shí),將各個(gè)傳感器節(jié)點(diǎn)置于停止?fàn)顟B(tài)。當(dāng)需要哪一個(gè)節(jié)點(diǎn)工作時(shí),從主機(jī)上發(fā)送相應(yīng)的指令,將該傳感器節(jié)點(diǎn)激活,使它采集傳輸數(shù)據(jù)。使用這種方法時(shí),同時(shí)工作的傳感器節(jié)點(diǎn)不能過(guò)多,要保證藍(lán)牙跳頻技術(shù)能夠解決同時(shí)工作的傳感器節(jié)點(diǎn)所產(chǎn)生的數(shù)據(jù)傳輸沖突問(wèn)題。
DS18820數(shù)字溫度計(jì)提供9位(二進(jìn)制)溫度讀數(shù),指示器件的溫度。信息經(jīng)過(guò)單線接口送入DS18820或從DS18820送出。DS181320的電源可以由數(shù)據(jù)線本身提供而不需要外部電源。每一個(gè)DS18820在出廠時(shí)已經(jīng)給定了惟一的序號(hào),任意多個(gè)DS18820可以存放在同一條單線總線上。DS18820的測(cè)量范圍從-55~+125℃,增量值為-0.5℃,可在1 s(典型值)內(nèi)把溫度變成數(shù)字。
AT89S2051是美國(guó)ATMEL公司推出的高效單片機(jī),是一種低功耗、高性能的片內(nèi)含有2 KB快閃可編程/擦除只讀存儲(chǔ)器的8位CMOS微控制器。利用AT89S2051及DS18820完成溫度采集及傳送。溫度采集系統(tǒng)的硬件設(shè)計(jì)如圖3所示,軟件設(shè)計(jì)流程圖如圖4所示。