基于自组网技术的燃气无线抄表系统研究
2014-03-22,,
,,
(1.石家庄铁道大学 电气与电子工程学院,河北 石家庄 050043;2.河北向阳电子有限公司,河北 石家庄 050091)
0 引言
随着生活水平的提高和环保意识的加强,人们日常做饭用的燃料已经从木柴、煤等资源浪费严重、污染严重的常规能源转变为使用天然气或煤气,燃气表就成了必不可少的装置,对燃气表数据的抄录也成为燃气公司必须的工作。传统的上门手工抄表方式费时、费力,准确性和及时性都得不到保障,已经无法满足社会发展的需求,此时燃气抄表系统应运而生。
图1 燃气表收费系统
一般燃气抄表系统由综合应用层、数据管理层和数据采集层组成,如图1所示,根据数据采集层数据传输介质不同,燃气抄表系统可分为三种类型,即:485总线传输方式、电力电缆载波传输方式和无线路由传输方式。其中,485总线传输方式传输效率高,速度快,但布线困难,当线路出现问题时不好排查;电力电缆载波传输方式无需重新架设网络,只要有电线,就能进行数据传递。但电力载波抄表受电网干扰影响较大,抄表的成功率很低且速度很慢;无线路由传输方式最大的特点是不用布线,安装方便,因此有很大的发展前景。
无线路由方式传输数据需要建立一个稳定的无线网络,目前无线抄表系统中的路由大多为固定地址,不能自动组网,集中器中的路由地址表为固定表格,一旦出现问题或安装位置变化,路由传输能力将不稳定,会影响整个网络,所以维护繁杂,故障时排查繁琐,可能因为一两处错误而需要重新调整网络布局,因此制定合理的拓扑结构和网络协议,保证信息的高速、高效传递成为燃气表无线抄表系统数据采集层构建中的主要问题。
本文研究了一种基于自组网技术的燃气无线抄表系统,设计了树形拓扑结构的通信协议,改善了传统无线系统组网不稳定,故障排除困难,自修复能力差等问题。
1 燃气无线抄表系统设计
1.1 拓扑结构设计
数据采集层无线路由器的自组网部分是整个系统功能实现的重要基础。数据采集与传输由若干个路由器组成,路由器以无线方式采集燃气表的数据,并把采集的数据传送给集中器,经过集中器处理后通过GPRS传送到管理中心。如图1所示。
图2 网络中故障线路
无线路由采用树状拓扑结构,如图2所示。与目前常用的星形拓扑结构相比,树形拓扑更易于扩充。设计每个路由具有相同的的硬件和功能,上电后自动组网,若其中某一个路由器出现故障,故障路由的下层路由或燃气表可自动寻找临近路由,并与其连接通信,使网络自动修复。此方式施工安装简单,即插即用,现场无需人工设置参数。
假若图2中路由2出现故障并从网络中断开,路由5和路由6自动寻找新的连接节点,通过计算选择最优路径连接到网络,可能会直接连接到集中器如图3所示,也可能连接到附近路由1如图4所示。
图3 自动维护方式1 图4 自动维护方式2
无线计量频率采用433 MHz,系统可设置多频点,穿透能力强,距离远,室外网络覆盖半径可超过4 km。
1.2 路由协议设计
路由协议主要的任务是实现无线路由的自动组网和数据传输,包括:维护树形拓扑结构,交换路由信息,产生、维护、删除路由,选择路由及转发数据等[1]。路由协议应该简单可靠,能迅速感知网络拓扑结构的变化,对终端性能无过高要求,因此设计路由协议本着如下原则:第一,所有路由的地位都平等,集中器拥有最高级别。燃气表上传数据时,集中器是目的节点;当下发数据的时候,集中器是源节点。第二,组建网络时,只需考虑集中器和各节点之间的通讯,不需要考虑一个节点与其余所有节点的通讯。以减轻路由的负担。第三,尽量避免消息的死循环。第四,可自动计算最优路径,自动选择最优的联网方式。
为此,设计每个路由存储一张路由网络表,表中有若干条目组成,每个条目记录了网络中的路由信息,这些路由皆与存储这张网络表的路由相关,每一个条目由8项组成。而集中器的路由网络表拥有所有路由信息。条目信息如表1所示。
表1 条目信息字节IPIDNext hopLevelTypeStateInactive timerJreply timer44411122
表1中,IP(路由地址)表示在网络中的地址,由此路由所处的树形拓扑结构中的上级路由分配。
ID(识别号)表示路由的识别号,每个路由的识别号都不相同。
Next hop(下一跳)表示信息从存储本网络表的路由传递到此条目中的IP地址所经过的地址。
Level(级别)表示未加入网络的无线路由级别为0,集中器的级别为1,直接连接集中器的路由级别为2,以此类推。
Type(类型)描述此路由与本路由(路由表的维护者)之间的关系。共有3种可选类型:Paren、Child和Descendant,分别代表此路由是本路由的父路由、子路由和后代路由。
State(状态)一共有3种状态:Active、Candidate和N/A,分别表示激活状态、候选状态和字段无效状态。
Inactive timer(脱离定时)加入网络后使用,用于网络维护,时长一般为hello周期的3倍,超时意味着连接已断。
Jreply timer加入网络时或让其他路由加入自己时使用。超时时删除候选子路由或父路由。对于准父路由,需要对在每一个候选子路由对应的条目上设置此定时器,对于准子路由,仅需要在自身的条目设置一个此定时器。
根据数据采集层的特性,制定出其数据传输规范。以帧为单位进行数据传输,每帧数据的总长度不大于256个字节。
2 无线路由硬件电路设计
图5 路由硬件结构框图
无线路由硬件电路由STM32主控芯片、电源模块、RS485接口电路、无线收发模块、显示模块组成。路由硬件结构框图如图5所示。
2.1 发送模块选择
目前可用于无线路由的技术有多种,应用较多的是ZigBee技术。虽然Zigbee具有低复杂度、低功耗、低速率、低成本、自组网、高可靠、超视距的特点[2]。但是其也有一定的局限性。ZigBee存在与WiFi、蓝牙同频干扰问题,并且目前国内Zigbee无线组网技术主要采用ISM频段中的2.4 G频率,其衍射能力弱,穿墙能力弱,对于安装于楼宇建筑中的燃气无线抄表系统数据采集层网络来说,ZigBee的传输性能远远不能满足需求,信号质量不能达到预期的效果。
本设计无线收发器选用CC1101模块, CC1101是一种低成本真正单片的UHF收发器[3-6],为低功耗无线应用而设计。其433 MHz频率衍射能力强,有很好的穿透能力,同时具有如下其特点:①空旷传输距离300~500 m。②无线唤醒功能。支持低功率电磁波激活功能,无线唤醒低功耗睡眠状态的设备。③支持传输前自动清理信道访问(CCA)。④模块可软件设地址,软件编程方便。与其他基于Zigbee模块的数据采集层网络相比,更安全可靠。
2.2 路由主控芯片
路由主控芯片采用STM32F103微处理器,该芯片资源丰富、功耗低,符合燃气表系统数据传输与处理中的高速、低耗的要求,STM32采用串行单线调试和JTAG,通过JTAG调试器可以直接从CPU获取调试信息,从而可以使设计过程大大简化,减小了调试难度,这样也可以缩短开发时间。 CC1101芯片本身支持多信道跳频,扩展了无线传感器节点通信功能,为应用系统设计提供了一种新的处理手段。该方案有许多明显的优点,如传输速度快、距离远、数据稳定、功耗低、电池使用时间长、网络容量大等。且传感模块也可以根据不同的应用对象替换成特定的传感器,再移植到具体对象中。
3 软件编程
3.1 CC1101数据速率设计
发送或者接收的数据速率通过MDMCFG3.DRATE_M 和MDMCFG4.DRATE_E配置寄存器来编程,数据速率依赖于晶振频率
(1)
由此知
(2)
(3)
为了区分不同信道带宽,通过MDMCFG4.CHANBW_E 和DMCFG4.CHANBW_M配置寄存器可设置接收信道滤波器带宽
(4)
3.2 路由组网设计
假设未加入网络路由为Rx,已加入网络路由为Ri,如果Rx欲入网,首先由Rx构造一个路由请求消息包Join Request,向邻居节点进行广播,网络中的路由Ri收到Join Request消息包后构造Join Reply消息包,Join Reply消息包包含信息为
Join Reply = {Hopcount,Path,Cost}。其中,Hopcount, Path,Cost分别为Ri到集中器的跳数、路径和路由能量消耗代价;Rx在限定时间内收到不同路由的Join Reply消息包后建立可行路径集合Pathset,Pathset中包含所有Join Reply消息,计算后选择最佳路径,构造Join Report消息包,按原路径向回转发,包含信息为:
Join Report = {n,Father Path }。其中,n为Rx到集中器的跳数,Father Path为Rx选择的父节点路由路径。
收到信息的各个Ri路由器根据Father Path判定是否被Rx路由选定作为父节点,如果被选定,将Rx放入路由表;反之对数据包不做处理。
3.3 路由选择算法
由于无线抄表数据采集对于数据的及时性并没有太苛刻的要求,时延对于链路质量影响不显著,所以将链路信号强度和到集中器跳数作为路由度量参数,设计路由选择算法。Rx到集中器的链路能量消耗代价为
(5)
式中,costn为第n跳到集中器的能量消耗代价,n=Hopcount+1;γ为调节系数,根据实际安装环境设定;Di为第i跳后剩余能量。本算法通过路由能量消耗代价来确定最佳路径,选取cost最小值为最佳路径。
由于Join Reply中包含Ri到集中器的消耗代价,则Rx接收到Join Reply中的cost数据后可算出其能量消耗代价,将Join Reply中的cost数据代入costn-1,式(5)可简化为
(6)
根据这种路由算法可以方便的计算出路由代价,选择最佳路由路径。
3.4 路由地址分配算法
路由地址分配采用Cluster-Tree路由算法[7],Cluster-Tree路由算法使用分布式寻址方案来分配网络地址,保证了整个网络中所有分配的地址是唯一的。同时这个寻址算法本身的分布特性保证设备只能与它的父设备通信来接收一个网络地址。每个进入网络的节点都会得到父节点为其分配的一个在网络中唯一的16 bit网络地址。深度为d的父节点为其子节点分配地址的偏移量为
(7)
式中,Cm为父节点最多可连接的子节点个数;Rm为子节点最多可以有的路由节点;Lm为网络最大深度。
由于本网络中每个路由器基本功能相同,所以每个路由节点最多连接的子节点个数相同,即Cm=Rm,则改进Cluster-Tree路由算法后可得
(8)
设当前节点地址为A0,Rn为第n个加入的路由子节点,则Rn地址为
ARn=A0+1+Cskip(d)×(Rn-1) 1≤Rn≤Cm
(9)
图6 软件流程图
网络建立成功后各个路由子节点与父节点定时互相发送hellopacket数据包,保证网络状态良好。若hellopacket数据包中断,则表明网络状态改变。节点故障、新节点加入时核心树拓扑结构变化,当一个路由节点通过hellopacket数据包发现核心树的拓扑结构发生变化后,通过update数据包把相关消息通知到与此变化相关节点,并且上传到集中器。重新计算,建立网络表,直至网络稳定后,刷新与此变化相关路由的路由表,这样新的网络重新建立。
3.5 软件框图
无线路由上电后配置CC1101的配置寄存器,并向周围发送握手连接信号,通过计算选择最优路径连接,网络建立好后,每隔一段时间路由间发送一次信号确保网络正常,若有路由损坏或加入新路由则调整网络布局,重新建立网络表。当有采集数据命令下达时,通过网络表找寻到相应路由完成采集[8]。软件流程如图6所示。
4 结语
本文所研究设计的燃气无线抄表系统,无线网络硬件具有体积小、功耗省、功能强、成本低廉、编程方便、通信可靠性高等特点。可以方便地完成对燃气表的数据传输等工作,大大提高了抄表工作的效率,且抄表准确度高,可杜绝估抄和误抄的问题,为燃气表数据的抄收提供了一种新的手段,适合于多点、多参数的远程数据采集。
参 考 文 献
[1]王国芳,李腊元.基于LEACH和PEGASIS的节能可靠路由协议研究[J].计算机技术与发展,2009,19(11):115-118,127.
[2]赵虹钧.基于ZigBee技术的智能家居系统的设计[D]. 上海:上海交通大学电子信息与电气工程学院,2007.
[3]董旭宇,夏路易.基于ARM的无线数据传输系统设计[J].国外电子元器件,2012(2):124-125,128.
[4]李学海.PIC单片机实用教程[M].北京:北京航空航天大学出版社,2002.
[5]李正民,陈京育,姬晓阳.基于ARM的多功能无线通信模块设计[J].计算机与数字工程,2010,38(3):157-160,178.
[6]时志云,盖建平,王代华,等.新型高速无线射频器件nRF24LO1及其应用[J].国外电子元器件, 2007(8):42-44.
[7]谢川.ZigBee中改进的Cluster-Tree路由算法[J].计算机工程,2011,37(7):115-117.
[8]钱廷威,段晨旭,马启鹏.基于GPRS网络和CC1101模块的无线抄表系统的研究[J].微计算机信息,2012(9):170-172