丁 芳,胡海峰
(中国民航大学航空自动化学院,天津 300300)
机场目视助航灯光是保障飞机在夜间、低能见度或者其他复杂的天气条件下,进行正常起飞、着陆、滑行的必要目视助航设施[1]。助航灯光的稳定性、可靠性对于飞机的安全起降有着举足轻重的作用。因此,需要对助航灯的工作状态进行实时监控,保证助航灯的正常工作。机场助航灯状态的监测一直依靠人工检查和维护,存在无法及时检修、易漏检、工作效率低下等问题。
传统的监控系统采用CAN总线、RS-485总线等实现监控中心和现场的数据传输[2],但是采用这些方案布线复杂,施工量大,不容易改动。采用无线传输的方案很好地解决了上述问题。本文设计了基于nRF905和MC9S08GT60的无线传感器网络节点,研究了无线通讯协议,实现了覆盖范围较大的无线监控功能。
无线监控系统由监控节点和传感器节点组成。监控节点安装在灯光站内,是无线监控系统的核心,负责向各个传感器节点发送指令。传感器节点安装在现场,负责将数据转发或者上传本地数据。系统整体结构如图1所示。
机场助航灯光是通过恒流调光器进行分组控制的,也就是说,流过同一调光器的所控制的灯的电流是相同的。助航灯的光强可分为5级,对应的流过助航灯的电流分别为2.8 A、3.4 A、4.1 A、5.2 A和6.6 A。
通过检测隔离变压器二次侧电流的大小,可以推断助航灯具输出的光信号,同时参考隔离变压器二次侧电压,就可以准确判断助航灯亮度异常、灯芯断开和隔离变压器二次侧开路等故障[3]。设计的电路如图2所示。该检测电路可以将电流信号转化为0~5 V的电压信号,然后送给单片机进行采样处理。
nRF905是Nordic公司推出的一款短距离无线数据通讯收发芯片。nRF905可以工作在433/868/915工作频段,在中国433 MHz频段为开放的ISM频段。nRF905最大传输速率为50 kbps,接受灵敏度为-100 dBm,最大发射功率为10 dBm;空旷通讯距离可以达到300 m左右,室内通信效果良好、抗干扰能力、穿透能力强;其工作电压为1.9~3.6 V。
nRF905收发模块之间的通信是以数据包的形式发送的。数据包的格式为:
其中:Preamble是前导码,是硬件自动加上去的;ADDR是发送地址,长度可选1/2字节;PLAYLOAD是有效数据,长度可选1/2/4/8/16/32字节;CRC为循环校验和,由内部纠错硬件电路自动加上,可选0/1/2字节。
无线网络结构如图3所示。监控节点位于网络的中心,传感器节点按距离监控节点的远近分为多级,只有相邻级的节点才可以直接通信。在监控节点信号覆盖范围内,监控节点可以和传感器节点直接通信。在信号覆盖范围之外,经过中间节点多跳传输,可以实现监控节点和传感器节点的间接通讯。
nRF905无线通讯模块要实现相互通讯,必须满足收发频率相同、地址匹配、发送接收地址和数据长度一致等。由于监控节点要实现和很多传感器节点通讯,本设计采用地址轮询通讯模式,为每个传感器节点分配不同的地址。无线传感器网络系统要实现多跳传输,必须要设计出合适的通讯协议。
结合nRF905自身通讯特点,设计了一种简单实用的无线通讯协议,其数据格式如下:
其中:SOD为信源节点地址;TYPE为帧类型;AID为目标节点地址;MID(0)…MID(2)为中间节点地址;REMAIN为剩余跳数;MAX为最大跳数;DATA为有效数据[4]。
根据路由的驱动方式可以把路由选择协议分为两种:一种是表驱动式路由选择协议,另一种是源驱动按需路由选择协议。表驱动式路由选择协议的原理是:网络中每个节点都维护一个到其他节点并相对稳定的最新路由表,通过在网络内广播路由更新来反映网络拓扑的变化。源驱动按需路由选择协议只有节点需要路由时才建立路由,通讯过程才维持路由,通讯完毕就不再维持路由[5]。
按需源驱动路由是未来的发展方向,本系统采用动态源路由DSR。DSR协议包括两个过程:路由发现、路由维护。当一个节点欲发送数据到目的节点时,它首先查看路由缓存器中是否有到目的节点的路由,如果有则采用此路由,否则启动路由发现程序。路由发现过程使用泛洪路由(flooding routing)。路由维护过程是源节点用来检测网络拓扑是否发生变化的机制。一旦节点在发送数据时发现需要使用的邻接链路断开,就会向源节点发送路由错误信息。沿途转发路由出错信息的节点收到路由错误信息后也会删除包含该链路的所有路由。
4.2.1 DSR路由发现
DSR路由发现和中间节点的具体处理过程如图4所示。当节点A需要向节点D发送数据,但不知道到节点D的路由,于是节点A就开始路由发现过程。源节点A向邻居节点B和F广播路由请求RREQ(route request),中间节点B和F接收到RREQ后,将自己的地址附在路由记录中,然后继续向各自的邻居节点转发RREQ。如果节点接收到的RREQ消息中的路由记录包括本节点的地址,则丢弃该RREQ。例如图中节点F转发RREQ时,节点A接收到RREQ就会丢弃。节点检测到路由记录有重复,也会丢弃该RREQ。如图4中节点B会把F转发的RREQ丢弃。经过不断的转发,最终目标节点D将会收到RREQ。
DSR路由应答的过程如图5所示。目的节点D收到RREQ后,给源节点A返回路由应答RREP(route reply),源节点A在收到目的节点D的RREP后在本地路由缓存中缓存路由信息A-B-C-D。
4.2.2 DSR路由维护
数据传输时,每个节点收到数据后,都要先回复应答ACK信号给其前一个节点,再转发至下一个中间节点,节点中设置定时器,等待ACK信号,发送节点没有收到ACK信号,则重新发送,设置重发次数为最大值N。如果重发N次都没有收到ACK信号,则断定下一个节点为中断节点[6]。该节点向源节点发送路由错误消息(route error),源节点将把该路由从路由缓存中删除。如果源节点路由缓存中存在到达目的节点的备用路由,则使用该路由重发数据,否则重新开始路由发现过程。
监控节点通过地址轮询的方式和传感器节点通讯,同一时刻一般只能有一个节点处于发射状态。系统初始化之后,通过上位机软件可以控制监控节点查询传感器节点的工作状态。监控节点发送完指令后,进入接收状态,等待传感器节点的回应。
传感器节点初始化之后配置为接收模式,等待有效数据的到来。MC9S08GT60不断扫描nRF905的AM和DR引脚电平,如果AM和DR都为高电平则表示接受到有效数据。单片机从nRF905中读取有效数据,然后判断将数据转发给下一节点或将本节点助航灯的状态上传。传感器节点的软件流程如图6所示。
图6 节点通讯软件流程Fig.6 Flow diagram of nodes communication
这里仍然以监控节点向传感器节点401发送信息为例,监控节点首先向传感器节点101发送数据,传感器节点101接受到数据后,REMAIN自减1,RE-MAIN此时等于3,传感器节点101需要将数据转发给下一节点,下一节点的地址为MID(1),即传感器节点201。依次类推,节点201将数据转发给节点302,节点302将数据转发给节点401。节点401接收到数据,REMAIN自减1后等于0,此时节点401知道这是监控节点传给本节点的数据。然后节点401配置为发射模式,将本节点助航灯的状态发送给监控节点,之后返回接收模式。
为了测试DSR路由协议的性能和网络的平均吞吐量,使用1个监控节点、10个传感器节点,在300 m×300 m的空旷区域进行实验。节点收发的数据包大小为32 B,平均每秒产生的数据包的个数可以改变,通过式(1)和式(2)分别计算节点的业务负载和网络的业务总负载。
每个节点的业务负载=平均每秒的数据包
业务总负载=每个节点的业务负载×传感器
nRF905的有效数据传输速度为50 kbps,在自动应答使能的情况下,实测点对点的数据吞吐量为16kbps。
调整传感器节点的业务负载,记录监控节点接收到的数据量,如表1所示。
表1 不同业务总负载下的网络性能Tab.1 Performance of network under different total service load
通过表1中测试数据分析,可以得到以下结论:
1)网络的最大吞吐量约为12.75 kbps,路由协议开销约为3.25 kbps。
2)随着业务总负载的增加,网络吞吐量也在增加。当业务总负载达到12.5 kbps时,网络的性能达到最优,业务负载继续增加,数据开始丢失。初步分析可以推断,当负载过大时,传感器节点不能及时竞争到信道资源,造成数据包队列堆积过多包,从而导致数据丢失。
本文设计了无线传感器网络助航灯光监控系统,对网络性能指标进行测试,结果表明,网络的平均吞吐量可以满足助航灯光实时监控的需求。该系统克服了人工巡检方式的缺点,可以实现实时监控,提高了助航灯光维护效率,保障飞机的安全起降。
[1]侯启真.机场目视助航灯光在线检测系统关键技术研究[D].天津:中国民航大学,2008:1-3.
[2] 荆元祥,宋大维,李惊东,等.基于CAN总线的机场助航灯监测系统[J].自动化博览,2005(s2):41-42.
[3] 刘增禹,高建树,王立文,等.机场助航灯光故障在线巡检系统设计[J].中国民航学院学报,2006,24(4):6-8.
[4] 刘 恒,马建仓,张小兵.基于nRF24E1的点到多点的无线测控系统的设计[J].微电子学与计算机,2006,23(11):78-80.
[5] 李晓维,徐勇军,任丰原.无线传感器网络技术[M].北京:北京理工大学出版社,2007:5-7.
[6] 杨海粟,吴长奇,刘立芳.基于nRF905的无线传感器网络节点的设计与实现[J].微型机与应用,2010,29(15):55-58.