首页> 中国专利> WSN中基于事件驱动的重编程方法及系统

WSN中基于事件驱动的重编程方法及系统

摘要

本发明公开了一种WSN中基于事件驱动的重编程方法及系统,涉及WSN(无线传感器网络)领域。所述方法包括步骤:将代码包发送给重编程节点;重编程节点接收代码包,判断事件信息是否存在,如果存在,执行步骤E,否则,执行步骤D;D:根据事件信息判断事件类型是否是应用程序事件,如果是,增加事件信息后执行步骤E,否则,结束流程;E:存储重编程程序以及重编程程序和事件信息的关联信息;事件触发事件处理模块,事件处理模块根据事件信息和关联信息查找重编程程序,执行引擎执行重编程程序。所述方法通过不同的事件触发不同的重编程程序的执行,有效提高了WSN重编程的灵活性。

著录项

  • 公开/公告号CN102262542A

    专利类型发明专利

  • 公开/公告日2011-11-30

    原文格式PDF

  • 申请/专利权人 清华大学;

    申请/专利号CN201110235268.X

  • 发明设计人 任丰原;程鹏;何滔;扈煜;

    申请日2011-08-16

  • 分类号G06F9/44;G06F9/45;H04W84/18;

  • 代理机构北京路浩知识产权代理有限公司;

  • 代理人王莹

  • 地址 100084 北京市海淀区清华园北京100084-82信箱

  • 入库时间 2023-12-18 03:47:24

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2013-07-03

    授权

    授权

  • 2012-01-11

    实质审查的生效 IPC(主分类):G06F9/44 申请日:20110816

    实质审查的生效

  • 2011-11-30

    公开

    公开

说明书

技术领域

本发明涉及WSN(无线传感器网络)技术领域,特别涉及一种 WSN中基于事件驱动的重编程方法及系统。

背景技术

WSN(无线传感器网络)是由大量的随机分布的功能和性能不尽 相同的传感器节点组成,节点间通过自组织的方式构成网络。图1是 现有的无线传感器网络结构示意图,如图1所示,节点自组织形成网 络通过多跳中继的方式将数据传到汇聚节点(或称终端节点),再通 过汇聚节点发到终端PC,再由终端PC传给更远的网络。无线传感 器网络一般具有节点多、网络覆盖范围大、不易回收、节点能量有限 等特点。

随着无线传感器网络的发展,无线传感器的可重编程能力引起了 越来越多的人的关注,但是由于部署节点多且不易回收的特点,将部 署的节点重新搜集起来进行离线重编程非常困难,基本不可行。因此, PC端进行script高层语言的编译生成二进制代码、通过无线电发送 编译生成的二进制代码包到特定节点、节点执行代码实现特定功能的 在线编程模式成为了现在研究的热点。传统的无线传感器编程模型大 多采用直接执行二进制代码包的方式来实现可重编程的能力,使得传 感器节点按照程序要求实现新的功能。但是由于无线传感器的能量限 制,往往实现的常驻功能不是一直执行的,而是由事件驱动的,但是 传统的直接执行二进制代码包的方式无法满足由特定事件触发执行 的需求。此外,在传统的底层操作系统中往往将事件驱动的编程方式 作为主要的编程模型,但是其定义的事件往往是由硬件事件所触发 的,而由于上层的虚拟机操作触发的事件(例如二进制代码的执行) 往往不能捕捉,因此在虚拟机上的基于事件驱动的可编程模型是十分 必要的,可以大大增加可重编程的灵活性。

综上,现有的可重编程模型无法满足由事件触发的需求,其重编 程的灵活性较低。

发明内容

(一)要解决的技术问题

本发明要解决的技术问题是:如何提供一种WSN中基于事件驱 动的重编程方法及系统,以提高WSN重编程的灵活性。

(二)技术方案

为解决上述技术问题,本发明提供一种WSN中基于事件驱动的 重编程方法,其包括步骤:

B:将代码包发送给重编程节点,所述代码包包括事件信息和事 件触发后的重编程程序;

C:所述重编程节点接收所述代码包,判断所述事件信息是否存 在,如果存在,执行步骤E,否则,执行步骤D;

D:根据所述事件信息判断事件类型是否是应用程序事件,如果 是,增加所述事件信息后执行步骤E,否则,结束流程;

E:存储所述重编程程序以及所述重编程程序和所述事件信息的 关联信息;

F:事件触发事件处理模块,所述事件处理模块根据所述事件信 息和所述关联信息查找所述重编程程序,执行引擎执行所述重编程程 序。

优选地,在所述步骤B之前,还包括步骤A:PC终端对Script 级代码进行编译,组装后生成二进制的所述代码包。

优选地,在所述步骤F之后,还包括步骤G:执行引擎执行所述 重编程程序后,通知所述事件处理模块,所述事件处理模块等待对应 所述事件信息的所有的重编程程序执行完毕后,根据事件类型相应地 返回执行结果。

优选地,所述步骤G具体包括步骤:

G1:执行引擎执行所述重编程程序后,通知所述事件处理模块;

G2:所述事件处理模块等待对应所述事件信息的所有的重编程 程序执行完毕后,判断事件类型是否是底层操作系统事件,如果是, 将执行结果通知底层操作系统;否则,执行步骤G3;

G3:判断事件类型是否是驱动执行器事件,如果是,将执行结 果通知包处理流程器,否则执行步骤G4;

G4:将执行结果通知虚拟机,所述执行引擎继续执行事件触发 所述事件处理模块前被中断的操作。

优选地,所述步骤E具体包括步骤:

E1:所述事件处理模块向程序管理模块申请空间,并将所述重编 程程序存储至所述空间;

E2:所述事件处理模块存储所述重编程程序和所述事件信息的关 联信息。

本发明还提供一种WSN中基于事件驱动的重编程系统,其包括 节点;所述节点包括驱动执行器,所述驱动执行器,用于维护报文在 节点中的处理流程和重编程程序的执行;所述报文中包含所述重编程 程序。

优选地,所述重编程系统还包括PC端编译器;所述PC端编译 器用于对Script级代码进行编译,并将组装后生成二进制代码包发送 给需要重编程的节点。

优选地,所述节点还包括底层操作系统和应用程序;所述底层操 作系统用于维护所述节点的一般性操作;所述应用程序包括已有的程 序和重编程所产生的应用程序。

优选地,所述驱动执行器包括虚拟机和包处理流程器;

所述虚拟机用于实现传统的重编程功能,并且所述虚拟机还包括 事件处理模块;所述事件处理模块用于处理重编程程序的添加和删 除、维护事件信息和重编程程序的关联信息以及事件触发时触发相应 的重编程程序;

所述包处理流程器包括流程管理模块和流程控制模块;所述流程 管理模块用于在处理报文的整个过程中,触发相应的驱动执行器事 件;所述流程控制模块用于在报文进入所述驱动执行器后,维护报文 处理的整个流程。

优选地,所述虚拟机还包括:上下文管理模块、程序管理模块、 代码解释器、执行引擎、报文收发模块和错误处理模块;

所述上下文管理模块用于实现多个二进制代码程序的并发执行; 所述二进制代码程序包括所述重编程程序;

所述程序管理模块用于存储所述二进制代码程序;

所述代码解释器用于解释所述二进制代码程序,并实现所述二进 制代码程序的功能;

所述执行引擎用于执行所述二进制代码程序;

所述报文收发模块用于接收和发送报文,所述报文包括所述二进 制代码程序;

所述错误处理模块用于对所述驱动执行器运行过程产生的错误 进行处理。

(三)有益效果

本发明的WSN中基于事件驱动的重编程方法及系统,对事件进 行分类,并且存储事件和重编程程序的关联信息,不同的事件触发不 同的重编程程序的执行,有效提高了WSN重编程的灵活性。

附图说明

图1是现有的无线传感器网络结构示意图;

图2是本发明实施例所述的WSN中基于事件驱动的重编程方法 的流程图;

图3是本发明实施例所述WSN中基于事件驱动的重编程系统的 结构示意图。

具体实施方式

下面结合附图和实施例,对本发明的具体实施方式作进一步详细 描述。以下实施例用于说明本发明,但不用来限制本发明的范围。

本发明实施例中将事件分为三类:底层操作系统事件、驱动执行 器事件和应用程序事件。所述底层操作系统事件为原有底层操作系统 所提供的事件,具体包括了硬件事件、路由事件、系统事件等等由底 层操作系统来维护的结构所触发的事件。驱动执行器主要用于维护报 文在节点中的处理流程和重编程程序的执行,所述驱动执行器在报文 处理流程中依次处于收到报文、执行程序前、执行程序、执行程序后、 发送报文和舍弃报文等状态,并且所述驱动执行器在执行程序时执行 相应的指令,我们将所述驱动执行器由于状态改变或者指令执行而触 发的事件称之为驱动执行器事件。应用程序事件是指由用户或者编程 者通过重编程的方式定义的,而且由重编程程序触发的事件。底层操 作系统事件及驱动执行器事件无法重编程定义。

图2是本发明实施例所述的WSN中基于事件驱动的重编程方法 的流程图。如果2所示,所述方法包括:

步骤A:PC终端对Script级代码进行编译,组装后生成二进制的 所述代码包。

步骤B:将代码包发送给重编程节点,所述代码包包括事件信息 和事件触发后的重编程程序。PC终端通过无线电将所述代码包发送 给重编程节点。所述事件信息主要包括底层操作系统事件、驱动执行 器事件或者应用程序事件的事件代号。

步骤C:所述重编程节点接收所述代码包,所述事件处理模块判 断所述事件信息是否存在,如果存在,执行步骤E,否则,执行步骤 D。

步骤D:根据所述事件信息判断事件类型是否是应用程序事件, 如果是,增加所述事件信息后执行步骤E,否则,结束流程。

步骤E:存储所述重编程程序以及所述重编程程序和所述事件信 息的关联信息。

所述步骤E具体包括:

步骤E1:所述事件处理模块向程序管理模块申请空间,并将所 述重编程程序存储至所述空间。

步骤E2:所述事件处理模块存储所述重编程程序和所述事件信 息的关联信息。所述事件处理模块通过建立所述空间的起始地址和所 述事件代号的对应关系表,构建得到所述关联信息。

步骤F:事件触发所述事件处理模块,所述事件处理模块根据所 述事件信息和所述关联信息查找所述重编程程序,执行引擎执行所述 重编程程序。

步骤G:执行引擎执行所述重编程程序后,通知事件处理模块, 所述事件处理模块等待对应所述事件信息的所有的重编程程序执行 完毕后,根据事件类型相应地返回执行结果。一个所述事件信息可能 会对应多个重编程程序。

步骤G具体包括:

步骤G1:执行引擎执行所述重编程程序后,通知事件处理模块。

步骤G2:所述事件处理模块等待对应所述事件信息的所有的重 编程程序执行完毕后,判断事件类型是否是底层操作系统事件,如果 是,将执行结果通知底层操作系统;否则,执行步骤G3。

步骤G3:判断事件类型是否是驱动执行器事件,如果是,将执 行结果通知包处理流程器,否则执行步骤G4。

步骤G4:将执行结果通知虚拟机,所述执行引擎继续执行事件 触发所述事件处理模块前被中断的操作。

本发明实施例所述的WSN中基于事件驱动的重编程系统包括: PC端编译器和节点。

所述PC端编译器用于对Script级代码进行编译,并将组装后生 成二进制代码包发送给需要重编程的节点。

所述节点包括驱动执行器、底层操作系统和应用程序。所述驱动 执行器,用于维护报文在节点中的处理流程和重编程程序的执行。所 述底层操作系统用于维护所述节点的一般性操作;所述应用程序包括 已有的程序和重编程所产生的应用程序。

所述驱动执行器包括虚拟机和包处理流程器。

所述虚拟机用于实现传统的重编程功能,并且所述虚拟机还包括 事件处理模块;所述事件处理模块用于处理重编程程序的添加和删 除、维护事件信息和重编程程序的关联信息以及事件触发时触发相应 的重编程程序。

所述包处理流程器包括流程管理模块和流程控制模块;所述流程 管理模块用于在处理报文的整个过程中,触发相应的驱动执行器事 件;所述流程控制模块用于在报文进入所述驱动执行器后,维护报文 处理的整个流程。

所述虚拟机还包括:上下文管理模块、程序管理模块、代码解释 器、执行引擎、报文收发模块和错误处理模块。

所述上下文管理模块用于实现多个二进制代码程序的并发执行; 所述二进制代码程序包括所述重编程程序;

所述程序管理模块用于存储所述二进制代码程序;

所述代码解释器用于解释所述二进制代码程序,并实现所述二进 制代码程序的功能;

所述执行引擎用于执行所述二进制代码程序;

所述报文收发模块用于接收和发送报文,所述报文包括所述二进 制代码程序;

所述错误处理模块用于对所述驱动执行器运行过程产生的错误 进行处理。

本发明实施例所述的WSN中基于事件驱动的重编程方法及系 统,对事件进行分类,并且存储事件和重编程程序的关联信息,不同 的事件触发不同的重编程程序的执行,有效提高了WSN重编程的灵 活性。

以上实施方式仅用于说明本发明,而并非对本发明的限制,有关 技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下, 还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明 的范畴,本发明的专利保护范围应由权利要求限定。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号