引言
ZigBee技术是最近发展起来的一种近距离无线通信技术,功耗低、成本低、易应用,工作在2.4GHz频段,采用扩频技术。ZigBee被业界认为是最有可能应用在工业监控、传感器网络、家庭监控、安全系统等领域的无线技术。目前市场上已经有多家公司提供ZigBee产品,可是大多功能齐全的ZigBee无线通信系统(含协议栈)的价格却比较昂贵,单独的ZigBee模块又不具有组网通信、节点自主加入的功能,这在很大程度上限制了ZigBee产品应用的灵活性和广泛性。本文在FREESCALE公司的SMAC协议包的软件构架的基础上,采用MC13192RF收发器成功组建了一个ZigBee星形网络。在该网络中,多个通信节点能够自由入网,在网络中实现数据包的可靠传输。并且各个节点在软件和硬件上有着良好的可扩展性,能够接入多路传感器信号组网通信。
1 星形网络的结构体系
星形网络结构如图1所示,所有终端设备都与唯一的中央控制设备(PAN协调器)通信,终端设备之间的通信通过PAN协调器的转发来实现。网络终端设备要么是数据传输的起点,要么是数据传输的终点。
网络中必须有一个PAN协调器,它在网络建立之前先对网络的各个属性初始化并建立协调器的描述符表,然后等待终端设备入网。星形网络由于没有路由器,最多只能允许255个终端设备加入网络。终端设备进行数据发送时,必须先把数据包发送给PAN协调器,PAN协调器根据数据包中的源地址字段查询近邻设备列表,判断该终端设备是否已在网络中。当近邻设备列表中存在该设备时,就说明该终端设备已经处在网络中,然后PAN协调器对数据包进行分析。若数据包的目的地址字段为PAN协调器,则PAN协调器接收数据包并处理其信息字段;若数据包的目的地址字段为其他终端设备,则PAN协调器根据数据包中的目的地址字段是否为终端设备进行数据包的转发。在星形网络中,PAN协调器使用不间断电源(UPS)供电,而其他设备采用电池供电。
2 网络节点的硬件设计
不论是协调器还是终端设备,硬件设计上大体是一致的,只是外围电路根据不同环境需要稍作改动。在工作模式下,网络节点的传输数据量很小,因此信号的收/发时间极短;而在非工作模式时,网络节点又处于休眠模式。而且设备的搜索、休眠激活和信道接入时延(分别为30 ms、15 ms、15 ms)都很短,使得网络节点功耗极低,非常省电。图2为硬件设计的基本框图。
MCU选用FREESCALE公司的8位微控制器MC9S08GT60,内部总线频率高达20 MHz,完全能够支持高实时性的射频模块。60 KB的FLASH足够容纳ZigBee协议栈。10位的A/D转换模块用于对传感器信号的数据采集。2个串行通信接口(SCI)用于和上位机进行通信。串行外设接口(SPI)用于MCU和射频模块之间的数据传递。每个功能模块动作完成后都能向MCU申请中断,因此很少需要CPU干预。
2.2 射频通信模块
射频通信模块选用FREESCALE公司的MC13192 RF收发器,它内部包含了完整的IEEE802.15.4标准的物理层(PHY)调制解调器,用于支持IEEE 802.15.4标准所规定的点对点、星状和网状网络通信。通信中,该收发器的包差错率在1.0%时,输出功率小于-92 dBm(典型值),远远低于IEEE 802.15.4标准所规定的-85 dBm。
MC13192的控制和数据传送依靠4线串行外设接口(SPI)完成,其4个接口信号分别是MOSI、MISO、CE、SPICLK。主控MCU通过控制信号ATTN退出睡眠模式或休眠模式,通过RST来复位收发器,通过RXTXEN来控制数据的发送和接收,或者强制收发器进入空闲模式。接口示意图如图3所示。
3.1 SMAC协议包简介
FREESCALE公司提供足够的软件支持MC13192硬件,SMAC是MC13192射频模块产品随机附带的软件协议包,用于简单的个人无线连接。SMAC协议包源程序是C语言,该协议包可以应用在基于MC13192集成电路的RF收发器中。协议包包含一个SMAC应用模版以及几个应用示例程序(Wireless UART、Packet Error Rate等),可以直接应用于FREESCALE公司的2.4 GHz无线收发器*估板(MC13192EVB)。SMAC协议包虽是建立于HCS08系列的MCU和其串行接口SPI组成的硬件电路,但是具有很好的可移植性,能够移植到大多数处理器内核中使用。
3.2 软件设计构架
当MC13192射频模块搭配了适合的MCU时,用户首先要在SMAC协议包的基础上弄明白收发器各个工作状态的基本特征,以及各个工作状态之间的转换机制。然后更改SMAC协议包中硬件接口部分的程序,在主程序中调用相应功能服务函数进行组合。整个SMAC协议构架采用状态转换的思想,清楚地将MC13192收发器的休眠、睡眠、空闲、发送、接收等状态抽象并分解出来,收发器对接收到数据的有效信息的相应字段进行判断之后,依据协议改变收发器的工作状态。
SMAC协议包是不包含ZigBee规范的网络层的,也就是说该协议包中不具有组网通信、节点自主加入的功能程序,使用SMAC协议包只能够实现无线模块之间进行无目的的广播方式的无线通信。要使用MC13192收发器组建一个有效的无线传感器网络,并且能够与其他的ZigBee产品相兼容,软件设计必须严格遵守IEEE802.15.4协议,在SMAC协议包构架的基础上进一步对协议进行扩展。本文成功实现了非超帧结构的星形网络,具体软件流程如图4所示。
PAN协调器选定创建网络的信道后,首先要初始化网络的各种属性,建立协调器的PAN信息数据库,分配网络ID号和16位的网络短地址,设定允许设备入网机制并初始化设备近邻表,然后进入接收模式等待其他节点加入。网络节点上电后,也要初始化内部资源并建立其自身节点的PAN信息数据库之后,发送扫描信号进而准备通过MAC层关联过程加入网络。
网络节点先以广播方式发送一个扫描信号,查看当前信道是否存在PAN。协调器收到广播信号后会发送一个确认帧。网络节点若没有收到确认帧就代表当前信道还没有协调器,则继续处于接收模式,等待协调器发现该节点后直接将其加入网络;若收到确认帧,即存在PAN,该节点就可以尝试加入网络。网络节点首先向PAN协调器发送信标请求命令,收到协调器的信标帧后,根据信标帧更新自身节点的信息数据库中的PAN标识等相关属性,并判断当前PAN协调器是否未饱和以及是否允许设备入网。若协调器允许设备入网,网络节点就要向协调器发送关联请求命令,尝试通过关联方式加入网络。协调器收到后把该节点信息(如64位扩展地址等)写入设备近邻表并向该节点分配16位的网络短地址。该节点收到协调器的关联响应命令后,把短地址写入其数据信息库,即成功入网。然后网络节点按照功能设定使用此短地址向协调器发送信息。网络节点一般为电池供电,在空闲状态时就会进入休眠节能状态。外围电路的控制主要是针对传感器、开关、LED等器件的控制,可随时根据不同需求对软件进行相应修改。
3.4 调试及运行
MC13192包括4种主动模式:空闲模式、TX模式、RX模式和CCA/能量检测模式。空闲模式是退出低功耗模式后的缺省模式,每次各个模式间转换的起点必须是空闲模式,从该模式起才能转化到其他主动模式。
4 应用
目前,本设计已被应用于某纺织车间线路改造的项目中。该车间有200台纺机,每台纺机独立工作。现在工厂要对车间实行统一控制,需要在每台纺机上安装.,把纺机数据实时上传给中央控制器。中央控制器通过控制每台纺机的停车状态、车速、打纬次数、加时产量等信息,进而控制整个车间的运行状态。这样既可提高车间的生产效率,又使车间易于管理。若采用CAN总线等有线网络进行控制,由于车间各台纺机布线通道已经固定,且车间的空间较小,这些因素给车间的线路设计造成了不便,而且走线的过于密*给车间增加安全隐患。
ZigBee无线网络的引入,解决了该车间布局下的多台设备之间不易走线的问题。中央控制器相当于PAN协调器,而每台纺机的.相当于终端设备。网络中只有这两种角色,不需要增加PAN协调器。每台纺机每0.5s上传一次数据,而且最远的纺机距离区域控制器也在80 m之内,这些因素ZigBee星形网络都能够满足。网络中的应答机制和数据校验机制能够保证纺机数据的可靠传输,而且网络节点功耗极低。测试表明,MC13192工作在停止、休眠、睡眠、空闲各模式时的工作电流依次为0.2μA、1 μA、35 μA、200 μA。采用了低功耗的ZigBee无线技术之后,车间节约了大量成本。
5 结论
本文利用FREESCALE公司的8位微处理器MC9S08GT60和射频模块MC13192在硬件上实现了网络节点的设计。通过对协议包SMAC进行分析,在原有协议框架的基础上对其进行扩展,在软件上实现了ZigBee星形网络的组建。该网络实现了多个节点的自动入网、网间可靠通信等功能,并且成功应用于纺织车间线路改造的项目中。