溫室環境監控系統整體結構框圖如圖1所示,網絡中采用傳感器測量節點和具有簡單執行控制功能的控制節點構成無線傳感器網絡。測量節點用來測量空氣溫度、濕度、光照強度等重要環境數據,控制節點(能對調溫、調濕等設備進行相關控制)用來接收計算機傳來的遠程控制信息,以便對溫室環境參數進行適當調控。測量節點采集的數據沿著其他測量節點通過多跳的方式進行傳輸,在傳輸過程中監測數據可能被多個測量節點處理,信息經由多跳路由后到達匯聚節點,匯聚節點將接收到的數據直接上傳到計算機,所有數據都由計算機進行復雜的數字信號處理,并通過數據庫對傳感器網絡進行配置和管理,發布監測任務和收集監測數據等信息,最后這些數據還可以通過Internet與遠程控制中心進行交互,從而實現溫室環境的遠程監控。 1 CC2431簡介 CC2431是TI公司的產品,它是一個真正的基于無線傳感器網絡ZigBee/IEEE802.15.4解決方案的片上系統,其內部集成了CC2420射頻收發器,工業標準增強型8051 MCU內核,128 KB可編程閃存,8 KB的RAM,精確的定位引擎等豐富的片內資源,支持硬件調試,支持基于IAR7.20以上C51開發環境下的在線調試,提供強大、靈活的開發工具。CC2431體積小、功耗低、集成度高,非常適合于無線傳感器網絡節點的設計。它可工作在4種工作模式下,且工作模式之間的轉換時間較短,因而能夠滿足超低功耗系統設計的要求。 2 傳感器網絡節點的硬件 傳感器網絡節點由傳感器測量節點、控制節點和匯聚節點組成。測量節點負責采集周圍環境信息,采集的環境信息經多跳路由后到達匯聚節點,最終通過Internet到達控制中心。控制節點用來接收計算機傳來的遠程控制信息,對溫室環境參數進行調控。 2.1 測量節點硬件 傳感器測量節點由傳感器模塊、微處理器模塊、無線通信模塊和電源模塊組成。其硬件結構框圖如圖2所示。 (1)傳感器模塊 由不同類型的傳感芯片組成,具有對溫度、濕度和光照強度的感知能力。其中溫、濕度傳感器采用I2C總線數字式溫、濕度傳感器SHTll,其體積小、能耗低、兩線數字接口、溫度量程為-40℃~85℃、相對濕度量程為0%~100%RH。光照強度傳感器選用TSL2550D,其功耗可以滿足無線傳感器低功耗系統設計的要求,其總線也易于與CC2431接口。 (2)微處理器模塊 采用集成在CC2431內部的8051 CPU。集成的CPU有4種不同的內存空間:代碼區、數據區、擴展數據區和特殊功能寄存器區,不同的內存空間有利于代碼和數據的分離,提高CPU對內存的訪問速度。 (3)無線通信模塊 ①傳感器網絡節點在通信時消耗了大量的能量,選擇一款低功耗的無線通信芯片將有效地降低通信模塊的能量消耗。CC2431是一款符合ZigBee標準的低功耗通信芯片,具有快速喚醒和搜索外部設備功能,可以使節點更多地處于休眠狀態而節約功耗,而且其信道頻率和功耗等參數可以靈活設置。CC2431通信模塊的天線考慮到無線傳感器網絡通信質量的要求,采用單極性天線,單極性天線在差分輸出與天線之間要求使用“平衡-不平衡變壓器”。 ②無線傳感器網絡節點電源為電池供電系統,選用的電池為手機專用鋰電池。為了使系統在電池供電時,工作時間持續長,在設計電源模塊時要考慮到節點的節能問題。CC2431提供4種電源管理模式:PM0、PM1、PM2和PM3,合理地使用這4種模式可有效地降低節點的能耗。 ③LED燈用于顯示傳感器節點的運行狀態。 (4)電源模塊 為其他模塊提供能源。 2.2 控制節點 控制節點由驅動器模塊、微處理器模塊、無線通信模塊和電源模塊組成。驅動器模塊能對調溫、調濕等設備進行相關控制,其硬件結構框圖如圖3所示。 2.3 匯聚節點的硬件研究 匯聚節點由微處理器模塊、無線通信模塊、存儲器模塊、以太網接口模塊、串行接口模塊和電源模塊組成,其硬件結構框圖如圖4所示。 (1)存儲器模塊由1片Atmel公司出品的AT45DB041組成,直接接入CC2431 SPI輸入端。該芯片集成2 046頁×264 B Flash存儲單元,用于存儲傳感器重要歷史數據。 (2)為提供以太網的接入通道,在該設計中,使用DM9161作為以太網的物理層接口。DM9161是一款低功耗、高性能的CMOS 芯片,支持10 MB/s和100 MB/s的以太網傳輸,它起編碼、譯碼、輸入和輸出數據的作用,這樣就可以將匯聚節點輕松連接到因特網以便于實現遠程控制。 (3)串行接口模塊由1片低功耗MAX3232和COM母口組成。CC2431串口端接入MAX3232進行電平轉換,通過COM口與計算機進行通信。 (4)由于匯聚節點需要融合處理所有采集節點采集的數據,并且需要將數據經過較遠的距離傳輸到計算機,因而能量消耗較大,因此其電源采用從市電轉換后介入的方式供電。 (5)LED燈用于顯示匯聚節點的運行狀態。 3 TinyOS操作系統的移植 嵌入式操作系統能夠簡化嵌入式系統的開發,確保程序運行的穩定性和可靠性,便于程序的維護和更新,但是由于無線傳感器網絡節點是一個小型嵌入式系統,其硬件資源非常有限,需要高效利用其有限的內存、處理器和通信模塊,并且最大限度地減少系統能耗,延長節點的使用壽命,因此傳統的嵌入式操作系統不能滿足其要求。基于此,本文移植了針對無線傳感器網絡特點而開發的操作系統TinyOS。 3.1 TinyOS簡介 TinyOS是加州大學伯克利分校開發的一種典型的無線傳感器網絡操作系統,通過nesC語言可以開發基于TinyOS的應用程序。TinyOS設計的目標就是代碼量小、耗能低、并發性高、魯棒性好,可以適應不同的應用,采用輕量級線程技術,事件驅動模式,組件化編程等,從而使其成為面向無線傳感器網絡的操作系統。TinyOS提供了Main配件,以及針對某些硬件的感知組件、執行組件、通信組件和硬件抽象組件。在這些組件的基礎上,用戶可以定制開發應用組件,然后將所有組件連接起來,就構成了整個應用程序。 3.2 TinyOS的移植 TinyOS操作系統有很多版本,要移植的是TinyOS 2.0版本,采用的編譯器是Keil。TinyOS 2.0必須在Linux平臺下才能工作,而Keil則是一個Windows下的軟件,因此,要安裝一個在Windows平臺上運行的模擬linux開發環境的軟件——Cygwin。下面具體介紹移植步驟: (1)安裝SmartRF04 Flash Programmer、Keil、Java 1.5 JDK、Cygwin軟件; (2)下載TinyOS開發必備的編譯工具的安裝包; (3)啟動Cygwin,并在Cygwin下安裝下載好的編譯工具安裝包; (4)安裝TinyOS 2.0。 將下載好的TinyOS 2.0的安裝包解壓縮,將解壓好的tinyos-2.0-contrib文件夾拷貝到Cygwinopt目錄下,此時已經搭建好了TinyOS的開發環境。所有的例子都在tinyos-2.0-contrib/diku/common/apps/下面。以BlinkNoTimerTask為例,在Cygwin下面輸入:cd/diku/common/apps/BlinkNoTimerTask,然后回車輸入:make cc2431em,如果順利的話,TinyOS將被編譯生成app.hex文件,只要把這個文件燒錄進單片機就可以了。 (5)燒錄 插好仿真器,打開SmartRF04 Flash Programmer軟件,在System-on-Chip選項卡下選擇app.hex文件,然后選擇“Perform actions”就可以順序燒寫了,燒寫成功后,TinyOS就成功移植到CC2431上了。 4 傳感器網絡節點的軟件設計 傳感器測量節點的主要功能就是接收PC機采集數據的指令、采集數據,然后將采集的數據通過無線信道發送出去。匯聚節點的功能就是創建無線網絡,配置網絡節點屬性,接收傳感器測量節點采集的數據,然后通過串口上傳到計算機。傳感器測量節點程序結構流程圖如圖5所示,匯聚節點程序結構流程圖如圖6所示。 在農業生產中,隨著規模化經營的出現,可能會建有很多個溫室,根據應用的設計,在每個溫室中都建有一個無線傳感器網絡,由于溫室中的環境都比較相似,因而,每個溫室中的無線傳感器網絡的功能和技術也都是一樣的。如果所有溫室都通過控制中心的計算機來進行統一管理,可以大大提高了工作效率,使溫室管理更加科學,控制更加簡單,從而達到提高作物產量、改善品質、調節生長周期、提高經濟效益的最終目的。而本文介紹的無線傳感器網絡節點具有功耗低、體積小、工作可靠、易于擴展等優點,基于該無線傳感器網絡的溫室環境監控方案將會有很好的應用前景。 |