冯绘丽,刘 辉,葛立峰
(安徽大学电气工程与自动化学院,安徽合肥 230601)
在现代工业领域,工业现场信息的采集和获取成为自动化控制和生产的关键。传统工业现场组网大多使用有线介质,但一些特殊的工业环境不允许布线,并且该方式实现的网络不仅成本高、布线复杂、移动性差,还容易出现较高的故障率。因此,针对这种情况,设计容易使用、成本低、具有良好移动性的智能节点平台获得关注。目前,有许多标准化网络通信协议应用于工业无线传感网络[1],如ZigBee协议[2]和蓝牙技术[3],它们都具有组网方便、成本低等优点,但ZigBee协议复杂;蓝牙模块的传输距离较短。此外,还有自组织协议[4]的发展。自组织协议可以满足这些要求,且具有自稳定及可扩展的优点。因此,提出一种基于自组织协议的WSN平台的设计,通过自定义一系列通信协议来完成多个节点之间的组网,实现数据的多跳传送、接收,实现工业现场信息的实时采集。
工业现场的WSN平台由主节点、中继节点和数据节点构成,它们的硬件基本相同,但功能不同。图1为一个典型的智能节点结构,主要包括MSP430F149微处理器模块、Si4432[5]无线模块以及可以采集温度、湿度、位移等多种信号的传感器接口模块。
图1 智能节点的整体框架
针对3类节点分别设计3种程序,主节点与中继节点的程序类似,数据节点增加了数据的采集和A/D转换等功能。3类节点的工作过程是:一旦系统上电,各节点首先对自身的硬件和参数初始化。组网完成后,主节点就会收到各个数据节点发来的数据,并根据数据信息来判断下一步操作。中继节点用来对收到的数据进行转发,起到路由的作用。数据节点的主要功能就是用来采集信息,并将采集的数据经过单跳或多跳的方式主动上报给主节点,然后由主节点将数据传输给上位机。
每个节点在通信时都用到了2个重要接口函数:
(1)RF_SendPacket(uchar*txBuffer,uchar pocketLen,uchar IDchannel)。该函数为无线模块发包函数。txBuffer 指向要发送的数组,pocketLen为发包大小(字节),IDchannel为发包的信道(0-63)。
(2)uchar RF_RecPacket(uchar*rxBuf)。该函数为读取数据包函数。无线模块收到数据后产生中断,系统检测到中断标志后调用该函数读取数据包,rxBuf指向数据要存放的数组,函数返回值为数据包大小,若返回值为0,则发生了CRC校验错误。
协议用于实现所有这些节点间的组网及通信。为此,主要是设计合适的数据帧格式、自组网及信道忙闲判断算法以及保证系统低功耗。
首先,根据平台需求设计通信帧格式,如表1所示。其中,B代表字节;FH表示帧头,用来防止杂波干扰以及区别其他网络中的数据;SA为源地址,DA为目的地址,NA为下一跳地址,Level为节点层次信息,FC为帧类别,用来识别各种控制类型和传感器数据;Data为要传输的传感器数据,会根据FC的不同而携带不同长度的数据。Si4432有64字节的FIFO,帧格式的大小完全在限定之内,一次通信便可全部发出。
表1 通信帧格式
其次,根据通信帧设计的组网算法如下:
(1)需加入网络的数据节点或中继节点以广播形式发送请求组网的命令帧(0xEE 0xAA SA 0x00 0x00 0x00 0x00 0x00 0x00);
(2)若该节点在规定时间内未收到响应帧,则节点睡眠一定时间后继续执行(1),若收到响应帧,执行(3);
(3)节点根据响应帧的Level值确定自己的层次,记录父节点(响应节点)地址,最后向父节点回复组网成功的确认信息;
(4)如果(3)过程中又收到组网的响应帧,且Level值比自己的层次小,则向现在的父节点发送删除本节点的命令帧,重新确定自己的层次,记录新的父节点地址并向其发送组网成功的确认信息。
组网过程中只有主节点和中继节点会给出响应帧,并且每个父节点可添加的子节点数量有限,达到上限后将不会给出响应帧。父节点在收到组网成功的确认信息后会将该节点加入路由表中,收到删除命令后会从路由表中删除该节点。
在组网过程中,需要解决通信数据间的冲突及碰撞问题。考虑到传统的固定阈值方法不能准确地判断信道的忙闲状态,文中采用一种动态RSSI阈值更新算法,对复杂环境有较强的适用性,能够准确地判定信道状态。算法步骤如下:
(1)节点进行数据初始化。RSSI阈值Threshold初始化为0x60,连续判断信道忙值计数busy=0,连续判断信道闲值计数idle=0,array数组计数i=0,初始RSSI阈值根据大量的环境测试数据计算设定。
(2)节点每隔1 ms采集1次环境的RSSI值,RSSI值与当前设定的阈值进行判断,若RSSI值比阈值小,idle=+1,busy=0,数据计入数组array[i++],若idle值为5则跳转到(3),否则重复(2),继续RSSI值采集判断循环;若RSSI值大于或等于阈值,信道为忙,idle=0,busy=+1,跳转到(5)。
(3)如果idle值为5,即连续5次判断信道为闲,则可认为当前信道是空闲状态,可以占用信道,并进行数据发送,同时idle值清零。若i=99,则跳转到(4)。
(4)若i值累加到99,即数组array中数据累计够100个。此100个数值即是最近100 ms内环境的信道空闲RSSI感知值,利用其进行阈值更新,对100个数组值数据排序后取其中位数值,在中位数值的基础上再加上0x10作为偏移量,构成新的RSSI信道忙闲判断阈值,此阈值可准确用于反映当前实时的信道忙闲状况。
(5)节点随机退避Nms(N为11~59的奇数随机数),然后重新进入(2)进行信道忙闲值判断。
最后,通信协议还要考虑系统的低功耗问题,因为它决定着智能无线传感网络的寿命,该平台有以下几个方面的实现:
(1)单片机MSP430F149有5种低功耗编码模式(LPM0~LPM4),节点在休眠时处在LPM3模式,测试其功耗仅为13.2 μW;
(2)增加无线模块不通信时的sleep时间,Si4432在sleep模式下电流仅为1 μA;
(3)平台采用缩短通信距离增加多跳的方式来降低发射功率,较大幅度地减少了系统功耗,其原理如下:
选用的Si4432模块可通过TX Power寄存器(地址为6Dh)的低三位对发射功率进行配置,分8个档次:+1~+20 dBm.Friss 自由空间方程为:
(1)
式中:Pt和Pr分别为发射和接收信号功率;Gt和Gr分别为发射机和接收机的天线增益;λ为波长;L为传输无关的系统损耗;d0为取决于天线技术的参考距离;d为传播距离。
由该公式可确定发送功率为:
Pt=αd2
(2)
(3)
在接收功率恒定的情况下,假设其他参数不变,α为常量。
直接传输和采用多跳方式传输时功耗与距离的关系曲线如图2所示。由图2可见,直接发送300 m需要消耗9个单位的功耗,而采用两跳方式,仅需3个单位,节省了66.7%,采用五跳方式,功耗降得更低。组网成功后,子节点可与父节点尝试通信,最后调节自身的发射功率到一个合适的值。该方法很适合工业环境,可最大程度地降低发射功耗。
图2 Si4432发射功率与发射距离关系曲线
根据以上设计的自组织协议和算法,应用IAR Embedded Workbench Evaluation for MSP430 v5.20软件开发环境,完成代码的编写、编译和调试,无误后将程序分别下载到相应的单片机中。主节点与上位机通过USB转串口线相连接。
此外,为直观地显示系统运行状况及实时数据,设计的人机交互界面用LabVIEW[6]软件编程实现,如图3所示。该界面显示出网内节点信息、设置节点参数以及显示节点的所有传感器采集的数据信息。在串口配置菜单中选取配定的COM口,设置波特率为115 200,打开端口后,可与主节点通信。这样设计的平台可以提供一个友好的可视化操作界面,便于处理和显示整个WSN中各个节点的环境信息。
图3 系统的人机交互界面
为检验系统的有效性,建立了由1台上位机、1个主节点、2个中继节点和6个数据节点组成的系统。将数据节点分别部署于实验室的不同位置,然后通过拨码开关设置节点地址和通信信道,上位机通过主节点记录每个节点采集的传感器数据。
该系统用温度传感器DS18B20,它的分辨率为9~12位,精度可达±0.062 5 ℃,足够满足测量要求。这样,用DS18B20实际测量这6个节点的温度,通过网络在界面显示;同时,用温度计实测相应位置的温度,从而得到用这两者方法分别确定的温度变化曲线。图4给出二者的比较。可见,该系统确定的数据与实际测得的结果一致,表明设计的自组织协议和算法能够实现对环境数据的准确采集,满足工业现场的要求。
设计的基于自组织协议的无线智能传感节点平台能够实现工业环境下多种信号类型的传感信息的实时采集和显示,具有很强的适应性。无线信道接入方面通过对信道的准确忙闲检测,同时结合退避思想,可以解决多节点同信道通信的数据冲突、碰撞的问题。此外,平台通过对节点的智能调控,合理有效地增加了通信模块的休眠时间,并减少了通信流量,从而可以有效降低系统的功耗。测试表明该智能节点平台运行稳定,通信安全可靠,为工业现场多点数据的采集提供了一个很好的解决方案。
图4 系统确定的温度变化曲线与实测结果的比较
参考文献:
[1]GUNGOR V C,HANCKE G P.Industrial wireless sensor networks:challenges,design principles,and technical approaches.IEEE Transaction on Industrial Electronics,2009,56(10):4258-4265.
[2]LI P F,LI J K,JING J F.Wireless temperature monitoring system based on the ZigBee technology.IEEE 2010 2nd International Conference on Computer Engineering and Technology (ICCET),2010,V1-160-V1-163.
[3]伍春,陈雪冬,江虹,等.基于蓝牙的无线传感器网络节点设计与实现.计算机应用与软件,2010,27(4):74-76.
[4]DRESSLER F.A study of self-organization mechanisms in ad hoc and sensor networks.Computer Communications,2008,31(13):3018 - 3029.
[5]Silicon Laboratories Inc.Si4430/31/32-B1.Austin:Texas Silicon Laboratories Inc,2010.
[6]National Instruments.LabVIEW User Manual.Texas:National Instruments,2003.