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