多总线控制的无线传感器网络
自20世纪90年代开始,无线传感器网络技术逐渐发展,从GSM到Bluetooth,从无线ATM到无线局域网,以不同的方式、不同的数据速率、在不同的距离上实现网络连接和信息的及时传递,摆脱了电线的束缚,从而能够在移动中自由地实现信息的交换。尽管如此,仍然要为工业现场安装传感器或开关的布信号线而困惑。在实际应用中依然存在着一些现有的网络技术无法或者不能很好的工作的场合,需要一种短距离、低数据传输速率、低成本、低功耗的无线网络技术。ZigBee技术这种以低成本、低功耗、低数据传输速率、低复杂度为显著优点的短距离无线通信协议,满足了小型、低成本的固定、便携或移动设备无线联网的要求。**从系统各总线设计的角度开始了对基于ZigBee技术的无线射频器件、时钟器件、温湿度传感器以及RS232总线接口电路展开研究,实现了多总线控制节点无线传输。
1 通信原理 无线传感器网络由一定数目的传感器节点组成,以无线自组的方式构成网络。通常包括处理器模块、传感器模块、无线通信模块和电源管理模块。传感器节点的异构性体现在节点的数据处理能力、传感数据种类、通信能力以及能源状况等方面。传感器节点之间必须采用相同的无线通信网络协议才能实现互联。在ZigBee网络协议栈中物理层负责数据的调制、发送与接收,解决编码调制技术、通信速率和通信频段等问题。物理层之上为支持物理信道共享和广播与多播的数据链路层协议和负责路由转发和设备寻址的网络层协议,在此之上为与具体应用紧密相关的应用层协议。在ZigBee协议栈中,每一层通过使用下层提供的服务完成自己的功能,同时对上层提供服务,网络里的通信在对等的层次上进行。
2 硬件架构
多点的无线传输系统对传输提出了双向通信的要求,即主机和从机都可以进行发射与接收,并且相互之间协调有序,不会产生冲突和干扰。因此系统分为发射子节点和接受主节点两部分,均采用单片机AT89C52做主控器件。发射子节点通过单总线对温度传感器DSl8820和湿度传感器DS2438进行控制,采集温、湿度;通过4个I/O口模拟SPI总线控制无线射频器件QRF0400进行数据的无线传输;通过2个I/O口模拟I2C总线对时钟器件PCF8563进行选时操作。接受主节点通过无线射频器件就行数据接收,然后经过MAX232电平转换接入串口,按照RS232标准与上位机进行信息交换。
2.1 发射子节点
每一个发射子节点的主控器件经过单总线接口控制温、湿度传感器,都必须严格的按照单总线命令序列进行操作。首先进行初始化,以温度传感器DSl8820为例,初始化过程由主机发出的复位脉冲和从机响应的应答脉冲组成。应答脉冲使主机知道总线上有从机设备且准备就绪。当主机检测到应答脉冲后,就可以发出ROM命令。这些命令与各个从机设备的唯一64位ROM序列码相关,当单总线上连接多个从机设备时,允许主机指定操作某个从机设备。这些命令还使得主机可以检测到总线上有多少个从机设备及其设备类型,或者有没有设备处于报警状态。最后发送操作命令,通过ROM操作命令使得总线主机与总线上某些或某一从机设备确定了通信关系之后,主机发出的功能命令便可以驱动从机设备进行相应的动作,当需要进行数据的传输时,从机设备会把主机要求的信息以串行传输的方式送到单总线上,如图1所示。
对于时钟器件(PCF8563)的控制,使用2个I/O口模拟I2C总线的数据线(SDA)和时钟线(SCL)对器件进行读写控制,PCF8563的从属器件地址是1010 A3A2A1A0,然后按步骤完成I2C总线的初始化,启动I2C总线,就可以自动完成规定的选时操作。每一个ZigBee节点都有一个唯一的64位IEEE地址,并可以用这个地址在PAN(个域网)中进行通信,但在从设备和网络协调器建立连接后会为它分配一个16位短地址,此后可以用这个短地址在PAN内进行通信。64位的IEEE地址是唯一的绝对地址,而16位的短地址是相对地址。系统工作在24GHz高频频段,网络中的节点利用自身的无线收发设备交换信息,当相互之间不再彼此的通信范围内时,可以借助其他中间节点中继在同一个个域网里来实现多跳通信。无线收发模块是一射频集成电路模块(RFIC),作为ZigBee无线网络的物理层射频前端实现无线数据的收发。QRF-0400是一个SPI总线控制的基于ZigBee技术的无线传输模块,集成了无线收发器件UZ2400,线性功率放大器UP2202和一个宽带低噪声放大器UA2723。UZ2400内置了射频收发器工作在802.15.4标准的基带滤波和MAC层的功能模块。由发射/接收FIFOs,CSMA-CA控制器,超帧架构,接收帧过滤器,安全引擎和数字信号处理模块等。对于无线传输器件的控制,使用4个I/O口模拟SPI总线的主机输出/从机输入总线(MOSI)、主机输入/从机输出(MISO)、串行时钟线(SCK)、低电平有效从机选择线(SS)进行接口仿真。通过对QRF0400进行读写地址命令,进行初始化,设置个域网标示符,配置IEEE地址,打开中断等命令。将采集的温、湿度数据无线传输。图2为UZ2400内部模块结构。
2.2 接收主节点
接收主节点接收各个发射子节点的数据,并进行提取分类,然后通过RS232接口与上位机实现信息的人机沟通。数字信号的传输随着距离的增加和传输速率的提高,在传输线上的反射、衰减、共地噪声等影响将引起信号畸变,从而影响通信距离。选用RS232串行通信标准接口,通过增加驱动以及增大信号的幅度,使通信距离增大到15m。由于单片机的串行发送总线和接收总线TXD和RXD是TTL电平,而PC机的COM1和COM2的RS232连接其实EIA电平,因此单片机需加接MAX232器件进行电平转换,如图3所示。
3 软件设计
在发送子节点上,为了便于主控器件对传感器的控制,在单总线器件挂接到单总线网络之前,有必要对单总线器件进行预处理,即对DSl8820和DS2438编写其所属节点的序号,这个序号是主控器件对某一传感器所属器件进行区分的依据。该序号占用两个字节的空间,其中第一个字节用来区分器件是DSl8820还是DS2438,为DSl8820分配该字节的值为00H,为DS2438分配的该字节的值为80H。第二个字节作为每一个器件分配的序号。比如发射字节点l挂接有10个DSl8820、8个DS2438,那么这10个DSl8820的序号从l到10,8个DS2438的序号从l到8。对DSl8-820用写暂存存储器(4Eh)命令将OOH写到DSl8820高速暂存存储器的第2个字节,将1到20分别写到这10个DSl8820高速暂存存储器的第3个字节,对DS2438分配的序号用写暂存存储器(4Ehxxh)命令写到DS2438存储器第7页第0个字节,然后用复制暂存存储器命令将其复制到非易失性EEPROM,以免序号信息掉电丢失。接收主节点单片机在读回温、湿度数据时,将各温湿度传感器的序号一并读回。
I2C总线上的受控器件必须分配地址,PCF8563作为受控器件,其设备地址在传送开始后首先被传送。按I2C总线规定SCL端为时钟输入端,数据线SDA是双向端。PCF8563通过I2C总线进行读地址命令(A3H)和写地址命令(A2H)实现对字节的读,写2种状态。对于SPI总线,主控器件与无线射频器件通讯时,数据由MOSI输出,MISO输入。数据在时钟的上升或下降沿到来时由MOSI输出,在紧接着的下降或上升沿到来时由MISO读入,这样经过8/16次时钟的改变,完成8/16位数据的传输。接收主节点将接收正确的温、湿度数据放入暂存器(SBUF)中,设置相应的波特率,配置好相应的特殊功能寄存器以查询标志位的方式向PC机发送数据,如图4所示。
4 监控软件
主机用户监控软件是用Delphi7.0开发完成。由于Delphi的图形界面丰富美观、控件集成度好、数据库功能强大、开发周期短、效率高,因此比较适合于此管理软件的开发。操作界面加载SPCOMM组件后可以通过PC机上的串口与单片机保持数据通信。为了保证通信的可靠性,建立了一个通信协议。下位机向上位机发送一帧广播命令($FF),上位机收到广播命令后向下位机回复一个应答帧(SEE),只有在下位机收到应答帧后才开始一帧一帧的将温度数据传输到上位机,否则将报警并再次发送广播帧,如图5所示。
5 结束语
经过现场多次实验证明,多总线控制的无线传感器可以有效地组成无线星型传感器网络,将各个节点的采集温、湿度分时传输到主接收机上,显示到界面供人实时监测预警,从而避免了复杂环境下不能人为作业。
通过主控器件多种线控制,充分发挥了各个总线器件的优点,使得系统免受外界干扰。需要注意的是系统在电源供电方面还存在问题,如何降低功耗延长系统寿命是未来研究的方向。
|