引言
无线传感器网络是综合了传感器技术、信息处理技术和无线通信技术的新兴交叉学科。它通过在监测区域内部署节点,形成一个自组织网络系统,目前已在自动控制、环境监测等领域得到广泛的应用[1]。将无线传感网络技术与分布式数据采集技术相结合,可以解决传统方式的布线和电源问题,具有高效、灵活、低成本的特点。依据IEEE 802.15.4标准设计了一种基于多信道的无线实时分布式数据采集系统方案[2],并对关键问题进行了分析。
1 分布式数据采集系统需求分析
分布式数据采集系统数据量大、实时性强,各节点采集数据必须实时传输到控制中心。工业现场气缸数目共60个,活塞运动位置监测传感器系统产生的位置信息的数据量为8位,该数据量信息按照IEEE 802.15.4帧格式进行封装后共产生96位的数据量。位置信息产生的时间间隔为0.018 s,采用TDMA方式发送数据,每个采集节点获得的发送时隙间隔为0.018 s/60=300 μs,节点最低的数据传输速率为96位/300 μs=320 kb/s。IEEE 802.15.4在2.450 GHz频段最高支持250 kb/s,因此该时隙很难将位置信息准确地发送出去。
针对上述问题,提出了基于IEEE 802.15.4规范的多信道采集方案,并对IEEE 802.15.4规范MAC层帧进行简化设计,多信道结构框图如图1所示。采用4个数据信道,每个信道由15个采集节点和1个基站组成星状拓扑网络。每个基站通过SPI接口将数据送入FPGA,将数据复接以后通过USB接口传输到控制中心[3]。此种方式下每个节点的时隙为0.018 s/15=1.2 ms,节点突发数据处理量为96位/1.2 ms=80 kb/s。
图1 多信道结构框图
经过帧结构简化后突发数据量为56 kb/s,这使得数据传输的成功率大大提升。
2 通信机制的实现
2.1 帧结构设计
由于本系统为单跳网络,节点数目小,为减少额外的字节和组网开销,根据IEEE 802.15.4标准定义了如下帧结构:
省略了PADID域,地址域缩减为1个字节。字节4和5为负载,用于数据帧[4]。帧控制域结构如下:
其中帧控制域占一个字节,帧类型子域占3位(b2b1b0),000表示信标帧,001表示数据帧;b6总为1,指示网内传输。
2.2 节点发送接收
CC2530内部有128字节的TXFIFO和RXFIFO。数据发送时,首先写入字节长度,然后写入帧控制和负载,无线电模块自动添加PHY层同步头和FCS,通过选通命令STXON或STXONCCA发送数据;数据接收时,产生RXPKTDONE中断,在RXPKTDONE中断里解析帧,节点作出相应的处理[56]。
3 位置信息的采集传输
3.1 采样时刻同步分析
系统上电复位后,4个基站采集节点只是发射信道不同,可以认为它们在同一时刻发出信标帧进行各个信道内的同步。4个数据信道内的节点都在单跳范围内,无线信号传播延迟可以忽略,因此可以认为采集节点在同一时刻收到信标帧。FPGA通过SPI接口获取各个数据采集信道节点的入网情况,若组网成功,则通知基站节点在下一个信标启动数据采集功能。为保证信标发送间隔相同,本系统利用CC2530中定时器2的溢出比较通道1等间隔地触发中断,在中断服务程序中完成信标的发送。
3.2 等间隔传输
位置信息在同步采集以后需要等间隔地发送到基站,利用TDMA机制设计了一种传输机制,时隙分配图如图2所示。信标帧在第1个时隙发送,采集节点在收到采集命令后按预先设定好的时隙发送。经多次实验数据统计,信标帧ACTIVE时间约为420 μs,采集节点ACTIVE时间约为485 μs。预留的IDLE时间使节点数据碰撞的机会大大减少。
图2 时隙分配图
5 延迟测量时间同步机制DMTS是一种基于发送者的同步方法[7]。DMTS示意图如图3所示。发送者广播同步时间,接收者测量该广播帧的延迟,设置其时间为广播分组携带的时间加上广播帧的传输延迟。该方法的精度主要由延迟测量的精度决定。本系统中设定广播分组时间的基准为0,即接收节点只需估算广播帧的传输延迟[8]。CC2530定时器2的时钟源为32 MHz的晶振,分辨率为31.25 ns,本系统利用定时器2的溢出比较通道1来实现等间隔的位置信息发送任务。节点处理器在发送和接收时都产生SFD(帧开始定界符)中断,并且SFD指示信号有效,直到发送或接收完成,该信号可在GPIO上输出。发送节点在SFD中断里将定时器2置0,重新计数;接收节点在SFD中断里设置定时器时间为帧前导码的接收处理时间加上发送间隔时间。经过100次测量,接收处理时间平均值为4.5 μs。
图3 DMTS示意图
此种方法在每个信标周期内都同步进行,节点的时间偏差不会累积。定时器2的溢出比较中断触发时间抖动是影响该系统稳定性的主要因素。因此,本系统简化节点程序,抛弃操作系统,只实现必需的射频收发功能及基站节点SPI通信功能;同时使用帧过滤功能,系统初始化时,处理器将节点的短地址写入地址寄存器中,对于采集节点地址初始化为广播地址,等待基站分配地址后重新写入。对于地址不匹配的数据包,基站处理器不产生RXPKTDONE中断,减少了节点处理干扰包的额外消耗;采集节点周期性关闭打开射频收发机。采集节点在SFD中断里设定定时器2的溢出比较通道1和2的值,其中通道1中断触发发送位置信息,通道2中断用于在下一个信标到来前打开接收机,其余时间采集节点接收机关闭。
4 基站处理板的设计
4.1 FPGA接口的实现
FPGA在本系统中主要完成对基站采集数据的接收,以及通过USB接口将数据上传到控制中心。SPI接口由SS、SCK、MOSI、MISO 4根引线组成。它的时序简单,在时钟SCK的控制下,主从机的2个双向移位寄存器完成数据交换。FPGA在本系统中实现4个独立并行slave接口,协调4个基站同时发送启动采集命令。位置信息通过SPI接口存储到FPGA内部的FIFO内。对于每秒内的信息量,FPGA对其添加由时钟芯片DS1302产生的时间标记,以便对设备的故障进行时间定位。
4.2 USB接口的设计
FPGA需要接收的数据信息为位置信息和节点标识信息,共2字节,数据速率为59.520 kb/s,加上5字节的时间标记后总的数据速率为99.520 k/s。USB全速接口的速率为12 Mb/s,有很大的传输余量。采用CY7C68013A USB接口芯片,使用GPIF模式,读取FPGA内部FIFO。GPIF由4个波形描述符构成,实质为可编程状态机,通过FX2LP固件程序存储在波形寄存器中,可动态地配置给任何一个端点FIFO,配置后将产生相应的控制逻辑CTL[5:0]和握手信号RDY[5:0],实现数据的传输和FIFO读写功能。一个波形描述符包含了S0~S6共7个有效状态和1个空闲状态,每个时刻只允许一个波形描述符执行,通过设置寄存器EPxGPIFPFSTOP.0选择波形结束方式。RDY[0]信号指示FIFO非空,启动GFIP读取数据[9]。
5 实验结果及分析
按照上述方式搭建了实验系统,对系统稳定性进行了测试。实验中,基站和终端节点最大通信距离为100 m。基站节点同时发送启动采集命令,终端节点采集位置信息,并按照TDMA的方式将数据上传至基站。CC2530内部SFD指示信号在收到或发送一个数据包的SFD(帧开始定界符)至包接收或发送结束期间为高电平,利用芯片的射频信号测试输出功能,验证TDMA机制的准确性。图4是某个数据信道上采集7个终端时基站
图4 SFD指示信号测试结果
SFD指示信号的测试结果。从左边起,第一个高电平是信标帧,紧跟的7个脉冲代表接收到的数据帧,后面的脉冲串为下一个采集周期。可以看出,各个采集节点按照预先设定好的时隙传输数据,时间间隔稳定。
结语
利用多信道机制设计了多节点分布式数据系统。结合DMTS和TDMA机制实现了数据的等间隔传输。使用方法确保了时钟的稳定性,使得传输时刻偏差达到了系统可以接受的程度。单个数据采集信道的数据吞吐量达到了59.520 kb/s。本系统尚待解决的问题有:
① 由于时间间隔的限制,仅使用了CRC校验机制,未使用确认机制。
② 目前只是实现了星状网,对于多跳网络的实现仍需进一步研究。