基于ATmega16的無線傳感網(wǎng)絡(luò)節(jié)點設(shè)計
掃描二維碼
隨時隨地手機看文章
無線傳感網(wǎng)絡(luò)廣泛應(yīng)用于軍事偵察、環(huán)境監(jiān)測、目標定位等領(lǐng)域。一般來說,無線傳感網(wǎng)絡(luò)節(jié)點的設(shè)計要求具有功耗低、成本低、壽命長等特點。本文以ATmega16 AVR單片機為核心元件,以常見的315射頻模塊作為無線收發(fā)模塊設(shè)計了一種無線傳感網(wǎng)絡(luò)節(jié)點。該系統(tǒng)充分利用了ATmega16單片機豐富的片上資源和315模塊較好的抗干擾特性,并可在達到設(shè)計要求的前提下,有效地降低硬件成本,具有較高的實用價值。
2 無線傳感網(wǎng)絡(luò)節(jié)點系統(tǒng)結(jié)構(gòu)
無線傳感網(wǎng)絡(luò)節(jié)點通常由4個子系統(tǒng)構(gòu)成,其系統(tǒng)框圖如圖l所示。
2.1 計算子系統(tǒng)
計算子系統(tǒng)通常是由一個微處理器和相應(yīng)的通信協(xié)議、數(shù)據(jù)采集等程序組成。為了降低節(jié)點的功耗,要求微處理器以一種突發(fā)式的發(fā)送方案將采集到的數(shù)據(jù)發(fā)送出去,以便盡快轉(zhuǎn)入低功耗模式,延長能量子系統(tǒng)的工作時問。
設(shè)計選用了Atmel公司推出的ATmega16型單片機。ATmega16是一款基于AVR RISC結(jié)構(gòu)的高級Flash型8位CMOS單片機,其數(shù)據(jù)吞吐量高達1MI/s/MHz,能有效緩解系統(tǒng)在功耗和處理速度之間的矛盾。同時,ATmega16集成了豐富的片上資源:16 KB的可編程Flash、512字節(jié)EEPROM、l KBSRAM,滿足了絕大多數(shù)應(yīng)用程序的開發(fā)要求,其內(nèi)部Flash可重復(fù)擦寫次數(shù)在10 000次以上,極大地方便了產(chǎn)品開發(fā)和軟件修改:8路10位具有可選差分輸入級可編程增益的ADC可以外接多個不同種類的傳感器件:支持6種睡眠模式,其中掉電模式和省電模式的耗電僅為lμA~2.5μA,可有效降低節(jié)點功耗;3個靈活的定時器/計數(shù)器(T/C)除具有常見的定時計數(shù)功能外,還具有輸入脈沖捕捉、脈沖寬度調(diào)制輸出功能:高度靈活的可編程串行US-ART可以完成與其他串行設(shè)備的通信。
2.2 通信子系統(tǒng)
通信子系統(tǒng)由一個無線收發(fā)器組成,用于節(jié)點之間的通信。當無線收發(fā)器處于空閑狀態(tài)時,應(yīng)將其關(guān)閉,以便降低節(jié)點功耗。
設(shè)計采用了常見的315無線收發(fā)模塊作為長距離無線收發(fā)器(因收發(fā)頻率為315 MHz而得名)。315無線發(fā)射模塊電路原理圖如圖2所示,它是由聲表諧振器(SAW)和高頻三極管組成的三點式振蕩電路。TXD輸入引腳通過三極管Q2控制高頻振蕩器。當TXD為高電平時,02導(dǎo)通,高頻振蕩器起振;當TXD為低電平時,Q2截止,高頻振蕩器停振。將ATmegal6的OC0引腳與TXD連接,即可完成OC0輸出數(shù)據(jù)的OOK調(diào)制發(fā)射。
315無線超再生式接收電路由選頻電路、高頻放大電路、超再生檢波電路和低頻放大電路組成。它具有電路簡單、靈敏度高等優(yōu)點。發(fā)送調(diào)制信號經(jīng)過選頻電路選頻后,送人超再生檢波電路解調(diào).再由低頻放大電路放大后由輸出引腳輸出高電平。若無信號收到,則輸出低電平。由超再生檢波電路的特性可知,超再生式接收模塊在沒有收到信號的幾毫秒后輸出大量白噪聲,直到再次接收到信號。
315無線收發(fā)模塊的最大傳輸距離可以達到700 m~800 m。它在星形混合傳感網(wǎng)絡(luò)設(shè)計中可作為遠距離傳輸節(jié)點,可以直接同匯聚節(jié)點通信,避免了短距離無線傳感節(jié)點同匯聚節(jié)點多跳式的通信方式。延長了傳感器網(wǎng)絡(luò)的壽命。同時它還具有成本低廉、接口簡單、抗干擾能力強等優(yōu)點,因而廣泛應(yīng)用在報警器、遙控器、工業(yè)數(shù)據(jù)采集系統(tǒng)中。圖3是315無線收發(fā)模塊與ATmega16的接口示意圖。
2.3 能量子系統(tǒng)
能量子系統(tǒng)通常是由電池組成。它在很大程度上決定了無線傳感節(jié)點的壽命。降低無線傳感節(jié)點的功耗是無線傳感網(wǎng)絡(luò)設(shè)計成功的一個關(guān)鍵因素。
3 基帶脈沖帶編碼方案
315超再生式接收模塊在沒有收到信號的幾毫秒后將產(chǎn)生白噪聲,這一特性決定了基帶脈沖編碼方案不能采用非歸零編碼,否則在連續(xù)發(fā)送0的情況下,接收模塊將輸出白噪聲。本文采用了一種類曼徹斯特編碼。用占空比為50%的完整方波表示信息符號和特殊控制符號。以不同的方波周期區(qū)分信息位中的0和l,以及其他符號位?;鶐Х讲ㄈ鐖D4所示,各符號的周期如表l所示。
當信號到達時,接收數(shù)據(jù)幀的第一位會受到接收模塊產(chǎn)生的白噪聲影響,為了消除白噪聲,需在數(shù)據(jù)幀前加入一定數(shù)量的前導(dǎo)碼。前導(dǎo)碼的數(shù)量同無線傳輸環(huán)境和315模塊元件參數(shù)有關(guān)。一般來說,十幾個前導(dǎo)碼就可以達到較好的接收效果。前導(dǎo)碼后緊跟的起始位表示接收數(shù)據(jù)序列的開始。
以發(fā)送十六進制數(shù)0xAA(二進制10101010)為例,其數(shù)據(jù)幀結(jié)構(gòu)如圖5所示。
4 軟件設(shè)計
無線傳感節(jié)點采用了AVRX嵌入式操作系統(tǒng)。AVRX是一款源碼公開的、專門針對AVR系列單片機的嵌入式操作系統(tǒng)。雖然AVRX很難移植到其他微處理器上,但其自身占用程序空間小(包含所有功能的版本僅占用l 000字節(jié)),消耗SRAM少,有利于應(yīng)用程序的開發(fā)。因此,設(shè)計中放棄了可移植性好,但自身對SRAM消耗大的μCOS-Ⅱ嵌入式操作系統(tǒng)。
4.1 發(fā)射子模塊的軟件設(shè)計
要將數(shù)據(jù)發(fā)送出去,首先要將數(shù)據(jù)符號和控制符號轉(zhuǎn)變?yōu)榭勺兠}寬的方波。其方法有三種:
(1)將PB3引腳作為通用輸出引腳,利用AvrXDelay產(chǎn)生與脈寬相對應(yīng)的延時,控制OC0產(chǎn)生可變脈寬的方波。這種方法的缺點是不能產(chǎn)生脈寬足夠精確的方波,這是由于RTOS任務(wù)調(diào)度開銷的不同所產(chǎn)生的。
(2)將PB3引腳作為通用輸出引腳,利用編寫的延時50μs的子程序?qū)崿F(xiàn)。在延時子程序里關(guān)閉全局中斷IE,停止AVRX的任務(wù)調(diào)度和ATmega16對中斷的響應(yīng)。這種方法可以產(chǎn)生脈寬精確的方波,但系統(tǒng)在發(fā)射數(shù)據(jù)期間不能處理其他事件,降低了系統(tǒng)的靈活性。
(3)利用T/C0的CTC模式產(chǎn)生脈沖,這時PB3引腳作為比較匹配輸出引腳OC0。當T/C0工作在CTC模式下時,設(shè)置TCCR0中的COM01:0=l,則每當計數(shù)器的數(shù)值TCNTO=OCR0時,TCNT0清零,比較匹配中斷標志置位,同時輸出引腳OC0的邏輯電平自動翻轉(zhuǎn)。在比較匹配中斷中修改OCR0的數(shù)值,就可以產(chǎn)生脈寬精確的方波。這種方法利用硬件計數(shù)器產(chǎn)生延時,具有延時精確,占用系統(tǒng)資源少的優(yōu)點。因此在設(shè)計中采用第三種方法。圖6所示為T/C0中斷服務(wù)子程序的流程圖。
4.2 接收子模塊的軟件設(shè)計
ASK調(diào)制的信號首先被315超再生接收模塊轉(zhuǎn)換為脈沖方波,從數(shù)據(jù)輸出引腳引人到ATmega16的ICP引腳。將TCCR1B的ICES1置l后,每當一個電平上升沿到達引腳ICP時.T/C1的計數(shù)值將被拷貝到捕獲寄存器ICR1并產(chǎn)生捕獲中斷。在捕獲中斷服務(wù)子程序里將相鄰上升沿發(fā)生的時間相減即可得到符號周期T。實際上,由于捕獲中斷服務(wù)子程序在結(jié)束時總會將ICR1清零,因此中斷發(fā)生時捕獲的ICR1值就是相應(yīng)的符號周期T。
315超再生接收模塊在沒有信號時會產(chǎn)生白噪聲,不斷地引發(fā)ICP中斷,增加了系統(tǒng)的開銷。設(shè)計中,接收模塊沒有一直處于工作狀態(tài),而是采取了休眠-監(jiān)聽-接收(如果有數(shù)據(jù))-休眠的工作方式,以降低系統(tǒng)開銷。圖7是捕獲中斷服務(wù)子程序的狀態(tài)轉(zhuǎn)換圖。
5 結(jié)束語
試驗利用接入網(wǎng)絡(luò)的PC機產(chǎn)生周圍環(huán)境數(shù)據(jù),通過有線網(wǎng)絡(luò)和無線傳感節(jié)點發(fā)送/接收數(shù)據(jù)。結(jié)果表明,采用ATmega16單片機和無線315通信模塊設(shè)計的無線網(wǎng)絡(luò)傳感節(jié)點具有功耗低、傳輸距離遠、抗干擾能力強等優(yōu)點,是組建無線傳感網(wǎng)絡(luò)的一種較好的解決方案。