摘 要: 介紹了應用ZigBee技術的無線收、發模塊CC1010和溫、濕度傳感芯片SHT11,實現一個無線溫度、濕度監測系統的方案。
關鍵詞: ZigBee;CC1010;SHT11
無線技術的快速發展帶動了其應用領域的迅速擴大,然而無線設備在實際應用中又受到了功耗、成本、傳輸可靠性等方面的限制,這些問題在ZigBee無線技術問世之后得到了很好的解決。
ZigBee是一種近距離、低功耗、低速率、低成本、短時延的無線通信技術,主要適合于自動控制和遠程控制領域,可以嵌入各種設備中。完整的 ZigBee協議棧由物理層(PHY)、介質訪問控制層(MAC層)、網絡/安全層和應用架構層4部分組成。其中,IEEE 802.15.4制定前2層標準,ZigBee聯盟在IEEE 802.15.4基礎上定義了網絡/安全層和應用架構層。ZigBee組網靈活,可構造星型網、樹型網及網狀網,1個星型網絡最多可容納254個從設備和1個主設備,具有較大的網絡容量,并且傳輸可靠性高。在無線通信技術上,采用免沖突多載波信道接入(CSMA-CA)方式,有效地避免了無線電載波之間的沖突,還建立了完整的應答通信協議。ZigBee設備工作周期短,內部協議簡單,收發間隔采用休眠機制,并且具有能量檢測及鏈路質量指示能力,可自動調整設備的發射功率,在保證通信鏈路質量的條件下,降低了功耗和成本[1]。
本文提出的無線溫、濕度監測系統的實現方案,就是基于ZigBee無線傳輸技術,發送端和接收端使用ZigBee協議進行無線溫、濕度數據的傳輸,下面介紹系統的硬件結構和軟件結構。
1 系統硬件結構
基于ZigBee技術的無線溫、濕度監測系統由2部分構成,即發送端和接收端。系統的硬件結構框圖如圖1所示。
在本系統中,發送端由若干個終端節點(以下稱發送節點)組成,每一個發送節點扮演著數據源的角色,它由1個溫、濕度傳感器和1個ZigBee無線射頻發送模塊組成,通過ZigBee網絡向接收端發送溫、濕度數據。接收端由1個ZigBee射頻接收模塊,1個MAX232轉串口模塊和主機組成。接收模塊建立1個星型的ZigBee網絡,扮演著網絡協調器的角色,通過ZigBee網絡接收各個發送節點發送來的數據,并通過MAX232傳輸到主機。下面詳細介紹發送端和接收端的硬件結構。
1.1 發送端硬件結構
在發送端,每一個發送節點都是由1個ZigBee無線射頻(RF)模塊CC1010和1個溫、濕度傳感器SHT11組成。
ZigBee模塊CC1010是挪威Chipcon公司推出的單片、多頻段、低功耗、超高頻射頻芯片。采用0.35 μm CMOS技術制成,內嵌高性能的8051微控制器(MCV)。可通過編程控制其工作于300 MHz~1 000 MHz頻段范圍之內。CC1010有UART0和UART1 2個串行接口,可通過寄存器來控制模塊的收/發模式(RX/TX),CC1010的8051外設有P0、P1、P2、P3 4個通用的I/O口,每個I/O口都可由端口寄存器和端口方向寄存器來控制是讀取數據,還是輸出數據[2]。
溫、濕度傳感器SHT11將溫、濕度傳感器、信號放大調理、A/D轉換和數字通信接口集成在一個芯片上。數字接口方面,SHT11提供二線數字串行接口SCK和DATA,SCK為串行時鐘線,用于實現與微處理器之間的通信同步,DATA為串行數據線,與微處理器之間進行數據傳輸。此芯片接口簡單,傳輸可靠性高,測量精度可編程調節。測量和通信結束后,自動轉入低功耗模式[3]。
CC1010與SHT11連接如圖2所示。SHT11共有8個外接引腳線,GND、DATA、SCK、VDD,引腳連接如圖,其余4個引腳閑置。為避免信號沖突,在DATA線與VDD之間外接1個上拉電阻。在VDD與GND之間加入1個100 nF的電容,用以去耦濾波[3]。SHT11與串行接口類似但不兼容I2C總線協議,在此用CC1010的通用I/O口P0的P0_0、P0_1分別與SHT11的串行時鐘線SCK與串行數據線DATA相連接,用于實現通信同步以及數據傳輸。CC1010的發送/接收模式由寄存器RFMAIN控制,在發送節點設置其RXTX=1,為發送模式,并采用字節發送模式。
1.2 接收端結構
接收端由1個接收模塊CC1010、1個MAX232及主機組成[4]。在此令CC1010為接收模式,接收數據時,RF接收的信號經低噪聲放大器放大后翻轉進入混頻器,通過混頻后產生中頻信號,在中頻處理階段,該信號送入解調器之前被放大和濾波,解調的數據被放入移位寄存器中,然后存入RFBUF中。MCU把RFBUF中的數據取出后,存入UART的數據緩沖寄存器SBUF中,經由MAX232轉串口模塊將溫、濕度數據傳輸到主機,其結構如圖3所示。
2 系統軟件設計
系統的軟件設計分為發送端軟件設計和接收端軟件設計。每一個節點的軟件設計又分為驅動模塊和應用模塊。驅動模塊中的硬件驅動程序為應用模塊軟件提供接口函數,以下介紹應用模塊軟件設計。
2.1 發送端應用模塊軟件設計
發送節點的軟件設計主要包括以下兩部分:
(1)實現SHT11定時向CC1010傳輸檢測到的溫、濕度相對數據,并且CC1010內部的MCU對其溫、濕度相對數據進行濕度非線性補償和溫度補償,將其修正為準確值,并存入RFBUF中,經過調制發往接收端。調制后的數據包格式如表1所示。
表中,前導碼使接收端完成位同步,地址標識發送節點的身份,CRC校驗用于保證通信的可靠性,數據包是溫、濕度值。
(2)將CC1010與扮演協調器角色的接收端進行綁定,兩者分配一個相同且唯一的網絡ID,分配成功之后,用以實現在這唯一的ID標識的網絡中進行收、發數據,即使發送節點還處于另外一個ZigBee網絡之中,也不與其協調器通信,而只識別與其本身網絡ID相同的協調器。當發送節點初始化后,首先尋找與其綁定的協調器建立的ZigBee網絡,等待協調器將其加入網絡中,進行無線通信。每個發送節點的軟件設計是相同的,其程序流程圖如圖4所示。
2.2 接收端應用模塊軟件設計
接收端的ZigBee無線射頻模塊CC1010接通電源并復位后,首先要開始一個具有唯一ID標識的ZigBee網絡,應答與其綁定的各個發送模塊的請求并將其加入到網絡中,同時為每個發送模塊分配本網絡內唯一的16位的地址之后,等待發送端發送數據,當檢測到有數據時便接收這些數據,并通過MAX232將接收到的數據包傳輸給主機。接收端流程如圖5所示。
本文設計實現了一個由ZigBee無線射頻模塊CC1010,溫、濕度傳感模塊SHT11及主機組成的無線溫、濕度監測系統。本系統功耗極低、傳輸可靠性高、測量精度好。CC1010應用ZigBee無線技術組成的網絡具有容量大、功耗低、時延短、抗干擾性強的性能,并且通過編程,控制其在工作模式、節能模式和休眠模式3種模式間進行轉換,以節省能量[5]。SHT11接口簡單、測量精度好、測量和通信結束后可自動轉入低功耗模式來節省能量。所以本設計采用了這2種芯片來滿足系統對多節點、使用期長、可靠性高、響應實時數據的要求,特別是滿足了發送節點低功耗、傳輸可靠性高的要求。
參考文獻
[1] 蔣挺,趙成林.紫蜂技術及其應用[M].北京:北京郵電大學出版社,2006.
[2] Single chip very low power RF transceiver with 8051-compatible microcontroller. http://www.chipcon.com.
[3] Datasheet SHT1x Humidity and Temperature Sensor. http://www.sensirion.com/en/pdf/product_information/Datasheet-humidity-sensor-SHT1x.pdf.
[4] 陳海波,區穎剛,胡均萬,等.基于CC1010的土壤水分無線監測系統的設計[J].農機化研究,2008(5).
[5] TORVMARK K H.Low power systems using the CC1010[Z].Chipcon Application Note, NO 17,2002.