摘 要:介绍了应用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.