首页> 中国专利> 基于ZigBee的无线测控网络的动态节点身份实现方法及系统

基于ZigBee的无线测控网络的动态节点身份实现方法及系统

摘要

本发明公开了一种基于ZigBee的无线测控网络的动态节点身份实现方法及系统,包括下列步骤:(1)自定义的上位机串口命令,包括C/EX****,C/CH****;(2)在协议栈的应用层,每个节点用结构体形式存储其他节点的信息;(3)路由器节点接收到节点身份改变的命令,则停止路由转发功能,开始采集数据;终端节点接收到节点身份改变命令,则停止采集数据,开启路由转发功能;(4)通过串口命令指定的路由器节点,对于接收到的数据信息按照源地址不同分别存储起来,待来自同一源地址的数据信息达到10次时,则将10个数据信息一次全发送给协调器。本发明增加了网络的可靠性,减轻了网络的传输拥塞现象,降低数据的传输延迟,节约了节点的能量。

著录项

  • 公开/公告号CN102664962A

    专利类型发明专利

  • 公开/公告日2012-09-12

    原文格式PDF

  • 申请/专利权人 山东轻工业学院;

    申请/专利号CN201210146550.5

  • 申请日2012-05-11

  • 分类号H04L29/08;G08C17/02;

  • 代理机构济南圣达知识产权代理有限公司;

  • 代理人张勇

  • 地址 250353 山东省济南市长清区西部新城大学科技园

  • 入库时间 2023-12-18 06:28:50

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-06-29

    未缴年费专利权终止 IPC(主分类):H04L29/08 授权公告日:20141224 终止日期:20150511 申请日:20120511

    专利权的终止

  • 2014-12-24

    授权

    授权

  • 2014-12-17

    著录事项变更 IPC(主分类):H04L29/08 变更前: 变更后: 申请日:20120511

    著录事项变更

  • 2012-11-07

    实质审查的生效 IPC(主分类):H04L29/08 申请日:20120511

    实质审查的生效

  • 2012-09-12

    公开

    公开

说明书

技术领域

本发明涉及一种基于ZigBee的无线测控网络的动态节点身份实现方法及系统,可用于对 由ZigBee技术构建的无线测控网络性能的改善,增加整个网络的灵活性和减小网络的整体能 耗。

背景技术

ZigBee技术因其低速率、低功耗、低成本等特性已经被广泛的应用在各个领域,尤其非 常的适合构建无线测控网络,无线测控网络是由许多部署在监测区域内的微型传感器节点组 成,利用ZigBee无线通信技术将所有的节点组成一个网络,各个节点采集到的数据通过网 络传输给上位机以供使用者,使用者也可以将命令传输给各个节点,从而方便了人们对监测 区域的控制,提高了工作的效率。

但是目前的基于ZigBee技术的无线测控网络,节点类型包括协调器、路由器、终端设备, 整个网络只有一个协调器,路由器具有数据转发和路由功能,终端节点只负责采集数据并将 数据发送给协调器,在网络组建之初,节点类型就被规定好,在网络工作期间使用者没有任 何办法去更改节点类型,除非重新给节点烧写新程序或者用新类型的节点代替。当终端节点 距离所有的路由器太远或者工业现场的通信环境太恶劣,终端节点采集的数据不能成功发送 出去,造成丢包率的增加,严重影响到整个网络的可靠性。一种解决方法是在终端节点周围 增加路由器,将数据顺利的转发出去,但是这样会增加构建网络的成本,并不是我们所希望 的;另一种方法是增加节点的发射功率,这种方法虽然可以在短期内减小丢包率,但是这样 会让节点的能量很快的消耗掉,通信状况不好的地方消耗能量多,靠近协调器和通信状况好 的地方消耗能量少,造成网络能量分布极不均匀。另外终端节点采集到的数据需要周期性的 发送给协调器,但是数据包只包括几个简单的数据、源节点的网络地址和物理地址,而且每 次只是数据不一样,这样每个终端节点需要不停的采集和发送,会造成网络的通信拥塞现象。

发明内容

本发明的目的就是为克服现有技术存在的网络中节点类型不可变以及简单的数据信息的 发送容易引起网络拥塞的缺点,提供一种基于ZigBee的无线测控网络的动态节点身份实现方 法及系统,该方法可以灵活的改变每个路由器节点为终端节点,也可以灵活的改变每个终端 节点为路由器节点;去掉多个数据包的冗余重复信息,将数据综合后再发送。

为实现上述目的,本发明采用如下方案:

一种基于ZigBee的无线测控网络的动态节点身份实现方法,包括下列步骤:

(1)自定义的上位机串口命令,包括身份改变命令C/EX****(*代表是网络地址),串口 命令C/CH****(*代表是网络地址);

(2)在协议栈的应用层,每个节点用结构体形式存储其他节点的信息。在节点加入网络 时或者节点身份改变后会广播具有自己的物理地址、网络地址和节点类型信息的数据包给网 内所有节点,接收到此数据包的节点则将节点类型、物理地址和网络地址存放到结构体内。

(3)路由器节点接收到节点身份改变的命令(C/EX****),则停止路由转发功能,开始采 集数据;终端节点接收到节点身份改变命令,则停止采集数据,开启路由转发功能;

(4)通过串口命令C/CH****指定的路由器节点,此类路由器节点的特征是其子节点中 全是终端节点,这类路由器节点对于接收到的数据信息按照源地址不同分别存储起来,待来 自同一源地址的数据信息达到10次时,则将10个数据信息一次全发送给协调器。

如步骤(2)中,每个节点在协议栈的应用层定义一个结构体用以存储其它网内节点的信 息。结构体内的成员包括路由节点个数routercount,用来存储网内每个路由节点物理地址 和网络地址的三维数组,终端节点个数RFDcount,用来存储网内每个终端节点物理地址和网 络地址的三维数组。当节点加入网络成功会广播内容为自己的节点类型、物理地址、网络地 址的数据包给网内所有其他节点;另外当路由器节点和终端节点接收到节点身份转换的命令 后,如果转换成功也会广播自己转换后的节点类型、物理地址和网络地址给其他节点,以便 其他节点及时更新节点类型信息。

如步骤(3)中自定义串口命令,命令格式为C/EX****,协调器按照命令里的网络地址, 将此命令单播给目的节点,目的节点会转换自己的节点身份,具体步骤是:

(a)目的节点是路由器,全局变量Exchang为0,接收到命令后,Exchange赋值为1; 同时发送节点改变的信息给网内所有节点,发送函数为SendstateMessage(),发送的数据 内容是字符类型的,为“excRFD+物理地址+网络地址”;

(b)其他路由器节点和终端节点接收到上述数据信息,如果数据信息的前六个字符是 excRFD,则从存储网内路由器节点信息的结构体中找出与excRFD后面紧跟的8位物理地址完 全相同的这一条信息,进行删除操作,然后在存储网内终端节点信息的结构体添加一条新的 终端节点信息;

(c)协调器接收到(a)中所述的数据信息,则做(b)中同样的操作,另外,会调用串口 写入函数halwrite(),内容是“网络地址+exchanged RFD successfully”。

如步骤(4)中如果路由器节点的子节点中全都是终端节点,则上位可发送自定义串口命令 给这样的路由器节点,命令格式为C/CH****(*代表网络地址),协调器会将此命令发送给网 络地址为此命令内的网络地址的路由器节点,接收到此命令后,当接收到其他节点发送来的 数据信息时,如果信息是采集的数据则按照源地址不同存储起来,当来自同一源地址的数据 信息达到10条时,则将此10条信息和源节点的网络地址组成的数据包发送给协调器,由协 调器上传到上位机。

一种基于ZigBee的无线测控网络的动态节点身份实现系统,它包括:监控终端,监控终 端通过串口与Zigbee网络协调器监控终端通信;若干路由器,若干终端节点分别与离自己最 近的路由器进行通信,从而构成树形Zigbee网络;监控终端通过指令使各终端节点身份在路 由器与终端节点之间转换。

本发明与现有技术相比的优点在于:本发明可以灵活的改变每个路由器节点为终端节点, 也可以灵活的改变每个终端节点为路由器节点;对于终端节点采集到的信息可以将10次数据 综合后再发送,大大降低了网络拥塞的现象,提高了网络的效率。本发明实现了节点身份的 灵活转换,避免了一些节点因为通信环境恶劣和距离其他路由器节点远而成为孤点的情况, 增加了网络的可靠性。解决了路由节点由于转发数据耗能多,过早的成为死亡节点的现象; 同时采用了数据综合的方法,减少了网络的冗余信息,对数据进行综合,减轻了网络的传输 拥塞现象,降低数据的传输延迟,节约了节点的能量。解决了现有ZigBee无线测控网络丢包 率大,能耗大的问题。本发明可有效的在各种应用场景下的ZigBee无线测控网络中。

附图说明

图1为原网络拓扑图;

图2执行C/EX0001的网络拓扑变化图;

图3为串口命令为C/EX0001的工作流程图;

图4为串口命令为C/CH0001的工作流程图;

图5为此方法应用在无线测控网络中的示意图。

具体实施方式

如图1-图5所示,本发明的具体实施方法如下:

假设网络拓扑图如图1所示,其中有网络地址为0001的路由器和网络地址分别为 0002,0004的终端,这两个终端采集的数据都通过0001转发给协调器。

当0001和0002之间的通信出现问题,如图2所示,用虚线代表两者之间不能进行正常 通信,而且0002距离其他路由器也都比较远,这时上位机无法接收到来自0002的数据。上 位机发送串口命令C/EX0004;网络地址为0004的终端节点接收到,具体的处理过程如图3 中的工作流程图所示,Exchange原先为0,接收到命令后更改为1。一方面发送包括本节点 新类型、物理地址网络地址的数据包给所有网内节点,比如网络地址为0002的节点接收到此 信息,存储节点信息的结构体变量为JoinNode,记录终端个数的成员变量JoinNode.RFDcount 减去1,从JoinNode.RFDLaddr中删除0004的物理地址,JoinNode.RFDSaddr中删除0004 的网络地址,然后记录路由器个数的成员变量JoinNode.Routercount加1, JoinNode.RouterLaddr中添加0004的物理地址,JoinNode.RouterSaddr中添加0004的网络 地址;另一方面不再执行数据采集函数,而是在接收到数据信息后。,如果需要转发,则执行 转发功能函数。这样,如图2所示,0004成为新的路由器节点,0002可以与0004通信,从 而将数据转发出去。

同理,如果0004需要转换回终端身份,则发送C/EX0004后,如图3所示,Exchange被 赋值为0,执行终端功能,发送本节点新类型、物理地址网络地址的数据包给所有网内节点, 比如网络地址为0002的节点接收到此信息,存储节点信息的结构体变量为JoinNode,记录 终端个数的成员变量JoinNode.Routercount减去1,从JoinNode.RouterLaddr中删除0004 的物理地址,JoinNode.RouterSaddr中删除0004的网络地址,然后记录路由器个数的成员 变量JoinNode.RFDcount加1,JoinNode.RFDLaddr中添加0004的物理地址, JoinNode.RFDSaddr中添加0004的网络地址。

如果需要如图1中的网络地址为0001的路由器将子节点的数据综合10次后再发送给协 调器,则发送串口命令C/CH0001,执行流程图如图4所示,网络地址为0001的节点接收到 此命令后,先判断是否子节点全部是终端节点,可以从图1中看出0002和0004是终端并且 是0001的子节点,如果给两个子节点编号,网络地址为0002的终端编号为01,网络地址为 0004的终端编号为02,然后由0002每传送给0001一次数据,变量count01加1,数据被存 储在二维数组Databuf[01][count01]中,第一维中存放编号为01的节点的网络地址,当 count01等于10,则将Databuf中的第二维的数据和数据来源节点的网络地址和物理地址一 起发送给协调器。Count01清零,Dadabuf也清零。0004的数据的处理也同上一样。

如图5所示,是一个基于zigbee的无线测控网络示意图。上位机即监控终端可以通过串 口与zigbee网络的协调器进行通信;可以从图5得知zigbee网络的拓扑结构是树形的,协 调器与两个路由器通信,终端节点分别与离自己最近的路由器进行通信。上位机发送命令 C/EX0002,则网络地址为0002的路由器会接收到该命令,路由器会执行如图3所示的的操作, 之后成为一个终端,执行终端功能。而如果上位机发送C/EX0003,则网络地址为0003的终 端会收到此消息,同理,亦会按照图3的流程执行相关的操作,开始履行路由器功能。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号