当集中器收到系统主站通过GPRS方式发送的抄表命令后,集中器首先查询其路由表,找到目的节点路由信息,并添加到抄表命令帧中直接发送。当目的节点的路由信息不存在时,集中器作为源节点开始路由寻求,直到接收到目的节点返回的路由请求响应帧,这样就建立了中心站和目的节点之间的通信链路。添加其返回的目的节点的路由信息到抄读命令帧,然后发送。网络中的目的节点接收到抄读命令帧后,返回无线电能表中的电能相关数据。
当无线电能表上电初始化后,一方面开始电能计量,另一方面开始加入无线抄表网络。先发送路由请求至集中器,等待接收到应答,若接收不到集中器路由应答帧,则广播其路由请求,获得其到集中器的路由信息,并存储。
2 网络硬件设计
自组织网络的硬件平台包括中心节点集中器以及普通网络节点无线电能表。
2.1 无线数传模块设计
无线电能表的硬件组成是无线数传模块与普通电能表通过串口连接。无线数传模块主要包括处理器、射频收发芯片nRF905、天线及其匹配网络等。
AT89S52为主控制器,通过4个I/0口模拟SPI口与射频收发芯片nRF905通信,3个I/O口读取nRF、905的状态,另外3个I/O口控制芯片的工作模式(包括空闲模式、发射模式和接收模式)。由于控制器的I/O口与nRF905电平不同,两者相连时需电平匹配,应加下拉电阻。天线作为无线传输中的一个重要环节,其主要作用是延长距离,其LC匹配网络性能的好坏对传输功率有直接的影响。
系统中无线电能表具有作为普通节点和中继节点两种功能。一方面,如果在集中器的通信距离内,当其作为普通节点时,可直接与集中器通信;另一方面,作为中继节点,可以转发集中器与远距离节点之间的通信数据。
2.2 集中器设计
集中器作为无线网络的中心节点,其硬件组成包括32位ARM7处理器LPC2210,以及无线数传模块、GPRS模块等其他外围功能模块。GPRS modem采用华为GTM900。无线数传模块和GPRS modem分别通过串口O和串口1与处理器相连。
集中器主要功能包括:协议转换、建立路由、数据抄读及存储等。由于采用IEC62056标准来构建抄表系统,集中器的协议转换指的是IEC62056与DL/T645之间的转换。集中器在收到数据抄读命令后,按照存储的路由来读取无线电能表中的相关数据。
3 网络软件设计
3.1 路由算法
现有无线网状网络的路由协议通常可分为:表驱动式路由协议和按需路由协议。前者需要网络中的每个节点维护一张或多张路由表,以记录到其他节点的路由,增加了路由开销。本文选取一种典型的按需路由协议——动态源路由协议(DSR)。抄表网络具有其特殊性:一方面,在组网过程中,若普通节点发起路由请求帧,则网络中所有路由请求帧的目的地址都相同(即中心节点),其路由表中路由的目的地址也都是中心节点,且网络中普通节点的地位都是平等的,任何两个普通节点不会主动有数据传输;另一方面,网络建立后,节点的可移动性差,拓扑变化小,网络比较稳定。针对其网络的复杂性低和路由开销小的特点对DSR协议进行改进,使之更适应抄表网络的应用。
DSR协议主要包括路由发现和路由维护2个过程。
①路由发现过程:节点要发送数据时,当节点中没有到达目的节点的路由时,广播发送路由请求帧(rreq),每个收到该帧的中间节点都加上自己的地址,重新广播(忽略重复请求和已发自身请求)。当rreq到达目的节点时,目的节点可以得到到达中心节点的完整路由。目的节点(中心节点)将所得中心节点路由包含在路由响应帧(rrep),然后沿着反向路由发送回中心节点。中心节点收到rrep后,就将路由存入路由存储器中,并添加到抄表命令帧的头部。
②路由维护过程:如果在抄读命令帧的逐跳传输过程中发现链路失败,则可以由中间节点使用缓冲中的可用路由来代替原头部中含有失败链路的路由,同时向中心节点发送路由错误帧(rrer)。中间节点监听rrer以删除失败路由。如果路由失败,则中心节点重新开始一次新的路由发现过程。
改进的DSR协议主要包括以下几个方面:
①DL/T645——1997《多功能电能表通信规约》规定抄表命令响应的时间为50~500 ms,受其限制,初次组网时,中心节点应该在未收抄表到命令前组建网络,提高一次抄表的成功率。
②由于网络中所有普通节点在建立路由时,目的地址唯一,为减少广播冲突,节点在加入网络时,先点对点发送路由请求至中心节点。若无路由响应帧,则广播其rreq,从已加入网络的普通节点中获得中心节点的路由响应,间接与中心节点建立路由。
③网络中每个普通节点到中心节点的路由的最大跳数(maxhop)设置为4,减少了广播传播的冲突,提高了路由发现的速度。
④普通节点在收到多个普通节点的rrep时,选取跳数最小的响应帧,记录其路由,并通过反向路由发送至中心节点。
⑤当rrer发生时,错误节点广播发出rrer,其他节点在接收到rrer帧时,删除本节点中的中断路由。中心节点重新建立中断节点的路由。
3.2 网络节点通信程序设计
无线电能表作为网络普通节点,其软件设计主要是对用户的电量数据进行计量和处理,同时实现与集中器通信,加入抄表网络。在组网过程中,节点软件使用改进后的DSR路由算法,其通信部分程序流程如图2所示。