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