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