|
ZigBee 是一种新兴的短距离、低功率、低速率无线接入技术,工作于无须注册的2.4GHz ISM 频段,传输速率为10~250kb/s,传输距离为10~75m。它看起来更接近于蓝牙,但比蓝牙更为简单,具有更低的传输速率和功率消耗,大多数时间处于睡眠模式,尤其适用于那些不需要实时传输或连续更新的场合,如工业控制领域和传感器网络。ZigBee联盟在制定ZigBee标准时,采用了IEEE802. 15. 4协议作为其物理层和媒体接入层规范。在其基础之上,ZigBee联盟制定了数据链路层(DLL)、网络层(NWK)和应用编程接口(API)规范,并负责高层应用、测试和市场推广等方面的工作。
ZigBee技术的主要特点
- 低功耗。在低耗电待机模式下,2节5号干电池可支持1个节点工作6~24个月,甚至更长,这是ZigBee的突出优势。相比较,蓝牙能工作数周、WiFi可工作数小时。
- 低成本。通过大幅简化协议(不到蓝牙的1/10) ,降低了对通信控制器的要求。按预测分析,以8051的8位微控制器测算,全功能的主节点需要32KB代码,子功能节点少至4KB代码,而且ZigBee免协议专利费。每块芯片的价格大约为2美元。
- 低速率。ZigBee工作在20~250kb/s的较低速率,分别提供250kb/s(2.4GHz)、40kb/s(915MHz)和20kb/s(868MHz) 的原始数据吞吐率,满足低速率传输数据的应用需求。
- 近距离。传输范围一般介于10~100m之间,在增加RF发射功率后,亦可增加到1~3km。这指的是相邻节点间的距离。如果通过路由和节点间通信的接力,传输距离将可以更远。
- 短时延。ZigBee的响应速度较快,一般从睡眠转入工作状态只需15ms,节点连接进入网络只需30ms,进一步节省了电能。相比较,蓝牙需要3~10s、WiFi需要3s。
- 高容量。ZigBee可采用星状、片状和网状网络结构,由一个主节点管理若干子节点,最多一个主节点可管理254个子节点;同时主节点还可由上一层网络节点管理,最多可组成65000个节点的大网。
- 高安全。ZigBee提供了三级安全模式,包括无安全设定、使用接入控制清单(ACL)防止非法获取数据以及采用高级加密标准(AES128)的对称密码,以灵活确定其安全属性。
- 免执照频段。采用直接序列扩频在工业科学医疗(ISM)频段,2.4GHz(全球)、915MHz(美国)和868MHz(欧洲) 。
PIC18F4620和CC2420简介
PIC18F4620和CC2420是本文设计中最为关键的两个部件。PIC18F4620微控制器具有丰富的片上存储功能,具有64 KB Flash和3968字节RAM的存储空间;而且该微控制器具有多种省电模式供选择。除了具有丰富的片上存储功能和多种省电模式以外,18F4620微控制器还具有13个10位A/D转换器、多个I/O数据线。可以很容易用软件对其进行编程和仿真,这些接口同时还可以用作与传感单元的接口。
CC2420射频收发器工作在2.4GHz ISM公用频道。它有33个16位配置寄存器、15个命令选通寄存器、1个128字节的RX RAM、1个128字节的TX RAM、1个112字节的安全信息存储器。一些主要特点:具有16个信道;典型的发射功率为0dBm,最大发射功率达到3.6dBm;采用DSSS扩频通信技术,最大速率为250 kbps;在分组错误率为1%的情况下,其接收灵敏度达到-95dBm(典型值)。
ZigBee无线平台简介
整个系统按照运行流程可分成三部分:传感感器终端(多个)、路由节点(可选)、中心数据管理终端。
| 图1 系统示意图
| 我们可以在传感器终端加装不同的传感器来实现对所需数据的监控,从而发挥ZigBee平台的作用。中心数据管理终端由中心节点和PC机组成,二者之间可以通过RS232实现数据通信。
平台采用了Microchip公司提供的开放协议栈,通过设计修改其应用层代码来实现所需的功能。
通常,ZigBee节点的IEEE64位地址是由用户自己定义的, 它们被写在节点的EEPROM中。而每个终端节点入网后,中心节点会分配给它一个16位网络短地址。对于初次使用的终端节点,可以经过与中心节点绑定过程从而让终端节点的地址信息出现在中心节点的绑定表中,使数据的收发更加稳定。对于较小的网络,由于直接发送给中心节点,也可以直接使用0x00作为目标地址。
ZigBee在工业控制中的应用方案研究
1 ZigBee工厂消防监控方案
目前,大型工业综合厂房集生产车间、仓库于一体,其消防具有空间大、线路要求高等特点;而老厂房有线消防系统改造的成本较高,尤其在一些化工生产厂房和库房,工艺操作的要求给布线增加了困难。本方案为解决这类问题提供了一条途径。
①系统整体设计
整个系统分成两部分:无线烟感器终端(多个)和中心数据管理终端。无线烟感器终端是检测发送烟雾数据的集成设备,它在检测到一定浓度的烟雾后在本地报警,同时通过无线网络传输给管理终端;中心数据管理终端将无线烟感器终端中发送的数据接收后,通过软件在PC机上给管理人员报警并显示火警相应位置,还可以通过设置加入一些其他的处理功能。
| 图2 烟感终端结构图
| ●无线烟感器终端
在用户端无线烟感器加装通讯模块形成终端设备,实现数据的采集和无线传输。基于ZigBee的低功耗特点,该终端采用9V电池供电。
● 中心数据管理终端
其主要功能包括接收无线烟感器终端数据并报警及存储,对数据做出一定的处理以及根据客户需求打印各种报表。
②系统软硬件结构
系统核心部分为无线收发模块,烟雾传感器直接与单片机I/O口相连,出现火情时由烟感中的继电器电平变化引发单片机中断,从而通过射频芯片CC2420向中心报告。单片机与PC机通过MAX322实现串口通讯。
| 图3 中心数据管理终端
| ● 单片机程序设计
我们在程序中设定了每个不同的终端节点在遇到火情时发送各自特定的代码给中心节点,中心节点收到后再交给上位机进行识别。ZigBee规范中通信部分的消息帧有KVP和Message两种方式,由于发送的代码比较简单而且量很少,所以采用KVP格式进行发送。KVP帧格式定义如图4所示。
中心节点的单片机程序调用APLGet( )函数,在接收到终端节点发来的数据后,将其通过串口发送给上位机,串口的主要函数如下:
void ConsoleInit(void)
{ OpenUSART(USART_TX_INT_OFF&USART_RX_ INT_ON&USART_ASYNCH_MODE & USART_EIGHT_BIT & USART _CONT_RX & USART_BRGH _HIGH,SPBRG_VAL );
}
void ConsolePut(BYTE c)
{ while( !ConsoleIsPutReady() );
TXREG = c;
}
void ConsolePutROMString(ROM char* str)
{
BYTE c;
while( c = *str++ )
ConsolePut(c);
while( !ConsoleIsPutReady() );
}
| 图4 KVP帧格式
| ● 上位机程序设计
上位机程序主要负责从串口接收中心节点模块发来的数据,并做出相应动作,如报警并识别出火情位置,并可进行一定的处理(如开启水阀等)。软件由VB编写。
它可以实现的功能有:1.设定通信端口。2.显示房间状态。3.显示历史记录。通过设定通信端口可以选择当前空闲的串口,显示房间状态可以显示哪个房间或哪个位置发生了火情,显示历史记录可以显示曾经发生过报警的房间号和时间。
软件安装后,用户可以根据实际情况选择楼层数和房间数,并和终端节点相对应。还可以存储起火原因,便于遇到突发事件时的相关人员做出处理。
2 ZigBee倾斜度测量应用方案
在现代工业生产,安装和建筑等许多领域,经常需要测量倾斜度,这就需要倾斜测量装置。我们可以利用ZigBee平台来方便的实现测试点的远程监控,同时也方便测试点的安装。
这里采用了飞思卡尔新推出的MMA7260 加速度传感器来测量倾斜。它是一种低功耗三轴电容式微机械传感器,有1.5g、2g、4g、6g四种量程可以选择。封装为QFN16脚,采用2.2~3.6V宽电压电源,而且支持休眠,符合ZigBee对低功耗的要求,很适合在ZigBee平台上使用。由于数据量相对较大,我采用了格式更为灵活的MSG格式,其帧格式定义如图6。
| 图5 MSG帧格式
| MMA7260自带了温度补偿和滤波,只需简单处理即可将其输出的三路(XYZ轴)加速度模拟量接入到PIC18单片机自带的10位A/D转换模块中。
数据由RS-232由节点传入到PC机后,采用了NI公司的labview软件进行处理,它的G语言操作非常友好,可以方便的对数据进行转化和计算,然后显示在虚拟的仪器界面上。
如果有必要,可以在某个轴上加入报警,超过门限值时对操作员进行提示,甚至直接给设备发出指令。
结语
消防监控和倾斜测量只是ZigBee 技术在工控领域的两个简单应用,它具有很强的实际应用价值。该模块也可以很方便的移植到其他的无线应用中去。 |
|