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