一种传感网节点操作系统的动态配置方法

文档序号:6424641阅读:213来源:国知局
专利名称:一种传感网节点操作系统的动态配置方法
技术领域
本发明涉及一种传感网节点操作系统的动态配置方法,主要用于解决传感网节点操作系统的动态配置问题,属于分布式计算和无线传感器网络的技术领域。
背景技术
近几年来,无线传感网络(WSN)掀起了一场后PC时代的革命。WSN作为综合了传感器、嵌入式计算、及无线通信等三大技术的新兴领域,可以实现人与自然以及物与物对话的无处不在的通讯和计算。从火星探测到野生候鸟的监测,从智能房屋到车辆监测和跟踪, 从军事“智能尘埃”到辅助足球裁判,从胶囊肠镜到住院病人病情监控,从森林防火到预测山洪暴发,从人体内药物剂量到控制精细农业……,广阔的应用前景掀起了国内外对WSN的研究热潮。然而,随着无线传感网络技术的不断成熟和发展,针对越来越多的应用,目前的一些应用软件根本无法满足当前的需要。每个节点上固定特定的应用程序,当需求不同时,需要对不同位置上的节点进行重新编程,这样会耗费更多的人力和财力。例如,布置在森林中的节点具备采集数据并对数据进行处理的功能,一旦检测到火灾险情,节点需要将数据传输到远程控制端或者传输到邻近节点让其报警处理。各种各样的应用,千差万别,因此目前非常迫切地需要系统维护与应用管理。由于无线传感网络节点资源十分有限,传统操作系统不适合应用于无线传感器网络中。目前流行的无线传感器网络操作系统有多种,例如TinyOS,MANTIS,SOS等。而由于节点存储空间的有限性,上述操作系统没有加入文件系统,这使得节点操作系统不具备灵活管理配置的功能。一旦烧入程序,将无法管控节点的应用配置。由于无线传感网络的应用领域非常广泛,研发人员们需要一款可以灵活适用于各种环境可配置的通用传感网节点操作系统。目前流行的各类无线传感网络节点操作系统在设计理念上没有加入可配置的机制。当遇到应用环境或硬件环境发生改变,必须重新修改源码让节点来适应新的环境,该过程繁琐且不可控。针对无线传感网络的上述问题,一般采用文件系统技术进行解决。而目前的无线传感网络系统主要提供传感网络应用的实现与运行的支持。且由于硬件资源的限制,文件系统并不适合加入节点中。现有的传感网络操作系统,例如mantis,sos等,并没有相应的具体设计与实现。

发明内容
针对现有技术中存在的技术问题,本发明的目的在于提供一种传感网节点操作系统的动态配置方法,用于解决操作系统应用范围狭窄、重新编程困难,配置复杂等问题,避免了复杂繁琐的重新编译烧录的过程。本发明主要针对动态配置的工作需求,为了降低开发成本和难度,借助了一款优秀的内核做设计平台。MANTIS具有优秀的内核设计,轻量级的基于抢占的多线程方式,标准的类UNIX编程环境。因此,本发明整合两者的优秀设计,成为一种可靠、高效、易用的可配置传感网节点操作系统。本发明的技术方案为一种传感网节点操作系统的动态配置方法,其步骤为1)在传感网节点操作系统中设置一引导模块,用于系统启动时首先加载该引导模块接收用户升级指令;2)所述引导模块在设定时间内未收到用户升级指令,或者根据接收的用户升级指令判断不需要对系统进行升级,则直接读取传感网节点Flash中当前存储的程序;否则,进行步骤3);3)所述引导模块删除所述Flash中当前存储的程序,接收用户上传的可读写应用程序并将其存储到所述Flash中;其中,所述可读写应用程序包括一动态初始化模块、一指令处理模块和一配置文件;4)所述动态初始化模块根据当前配置文件初始化传感网节点;5)所述指令处理模块实时接收用户指令,并根据接收到的用户指令修改当前配置文件,然后重新运行所述动态初始化模块。进一步的,所述引导模块对接收的用户升级指令进行校验,如果用户升级指令格式及其附加的校验码正确,则删除所述Flash中当前存储的程序,接收用户上传的可读写应用程序并将其存储到所述Flash中。进一步的,所述用户升级指令通过本地或远程控制服务器发送给传感网节点。进一步的,所述传感网节点通过无线或串口接收所述用户升级指令。进一步的,所述引导模块在所述Flash中划分出一指定区域存储所述配置文件。进一步的,所述用户指令包括查询指令和设置指令;所述指令处理模块根据用户指令类型,对传感网节点进行动态配置或状态获取。进一步的,所述初始化传感网节点包括启动传感网节点所需的硬件与服务。本发明适用于无线传感网络操作系统平台MANTIS,也可根据本发明开发全新的操作系统平台。本发明通过将动态引导模块、可配置模块(动态初始化模块、指令处理模块)、 配置文件引入到MANTIS操作系统中,其目标是实现无线传感网络节点的动态配置,动态重新编程,降低在MANTIS上的应用开发的成本和难度。1)引导模块BootLoader是一段引导程序,运行在单片机上电/复位后,以及应用程序之前。预设3秒等待时间(可修改),运行后等待用户指令判断当前是否需要进入升级状态。如果不需要升级(等待超时),就直接运行Flash中原有的程序;如果需要升级,首先擦除旧的程序,然后从串口接收可读写应用程序,同时写入Flash中。接收数据时,需要进行校验,保证接收到的数据是正确的,避免将错误的程序写入到芯片中。2)动态初始化模块在可读写应用程序启动后,首先加载动态初始化模块取flash的配置文件区域, 用于判断该节点的信息与服务配置开关等信息,智能的选择启动需要的硬件(传感器类型,无线射频芯片)与服务(安全机制,转发机制等)。3)指令处理模块
在可读写应用程序启动后,加入了等待机制,等待用户指令。用户通过本地或远程控制服务器按照约定的协议格式发送指令,节点通过无线或串口接收,可读写应用程序根据指令进行动态配置,提供反馈。所述模块有两部分主要功能①,读取节点实时状态,用户监控节点是否工作正常;②,根据需要对节点进行实时配置。(用户指令主要分两类查询指令和设置指令。指令需要定义协议格式包头,包尾,包体。指令模块负责解析指令协议, 根据特定的用户指令处理特定的工作。查询指令不带配置参数信息,即不对节点做任何修改,节点接受到查询指令,根据指令中需要查询的参数信息通过无线或串口介质进行反馈, 服务器根据反馈信息进行解析并显示给终端用户查看。设置指令带配置参数信息,节点接收到配置指令后,将新的配置参数写入配置文件区域,并重启节点,重启后节点通过2)中提到的初始化过程重新加载新的应用。)4)配置文件通过flash分块的方式,在flash的尾部加入一些简单的配置参数和节点信息标识,默认配置文件由厂商(中科方德)提供,通过仿真器进行烧写固化,后续可根据实际需求,修改或自制配置文件。配置文件需要结合可读写应用程序的解析算法严格定义结构区域,否则将无法正确读取和配置。实现对传感网络节点的动态初始化操作和节点的标识。在可读写应用程序启动前,首先读取这一部分的信息参数,用来完成动态初始化的功能。体系结构图1给出了基于MANTIS的新型动态可配置操作系统的系统架构,主要解决无线传感网络中节点功能的动态配置问题。本发明中动态配置模块基于MANTIS内核之上,处理系统初始化和系统配置的工作。整个传感网络节点操作系统分为五层,最上层为配置文件部分,由用户通过无线网络或者串口插入到节点之上,第二层是动态配置模块,是整个发明的核心部分。第三层是无线传感网络操作系统平台MANTIS的内核部分,主要负责提供动态可配置的通用传感网络操作系统的进程调度,内存管理,电源管理等的运行环境。第四层是引导模块,主要负责系统引导,可读写应用程序和配置文件的更新。节点上可读写应用程序具备动态可配置性以适应不同的应用需求,节点通过无线网络或者串口完成传感网络操作系统的动态配置,整个可读写应用程序的开发屏蔽底层操作系统内核。该系统可用于 mica2, micaz, telosb, microblaze, Imote2, gainz 等常用节点硬件平台之上,该体系结构中除了 mantis内核部分均为发明内容,该系统需要对flash进行分区操作,假设为16KB的flash,0x0000 0x3FFF(16KB)为flash区域。定义0x0000 0x0400 (1KB)为 bootloader 区,0x0400 0x2000 (7KB)为内核区,0x2000 0x3800 (6KB) 为可读写应用程序区,0x3800 0x3FFFOKB)为配置文件区。将配置文件放入0x3800 0x3FFF。根据标准(该标准暂未制定)假设0x3800 0x3804这四位保存了传感器的类型, 0x0000表示无传感器,0x0001表示温度传感器,0x0010表示湿度传感器,0x0011表示光传感器等等。可读写应用程序可根据读取配置文件信息加载相应的处理程序。同样的远程服务器可通过节点内部的指令处理模块对该区域的参数进行修改和读取,以起到动态配置的效果。与现有技术相比,本发明的有益效果本发明提出了基于MANTIS的应用程序动态配置的新型操作系统和系统架构,使用了可动态配置的方式,弥补了目前流行的无线传感网络操作系统无法动态配置,需要重新编译烧写的缺陷。与背景技术相比本发明具有以下优点1)实时配置由于目前流行的几种常用传感网络节点操作系统(TinyOS,MANTIS, SOS等),没有加入文件系统,使得操作系统不具备动态配置的功能,在应用中无法满足复杂多变的工作环境。本发明改变了这一缺陷,为用户预留了很多配置接口,可以通过约定的指令格式进行实时配置和监控。而且配置文件、引导模块、动态引导和指令处理对硬件资源的损耗极小。2)引导模块(bootloader)该模块的加入使得操作系统的升级更加简便,只需要通过串口或无线的方式就可以实现操作系统的升级。与传统的升级方式相比,不需要再使用JTAG接口和仿真器,不仅操作简便,而且bootloader中的验证机制对操作系统的版本实现了可控性,避免了非法操作系统的写入。3)系统初始化该模块的加入使得操作系统可以根据配置文件的信息去动态的初始化需要的硬件设备和软件功能。与传统的传感网络节点操作系统相比,本发明能够通过替换配置文件的方式去修改节点的设置,更灵活易用。


图1是操作系统系统架构图;图2是本发明方法流程图;图3是引导模块工作流程图;图4是可读写应用程序工作流程图;图5是指令处理模块工作流程图。
具体实施例方式本发明的技术和方法在无线传感网络操作系统MANTIS上实现,实现后的系统结构如图1所示。在此实现中,借助MANTIS优秀的内核设计,轻量级的基于抢占的多线程方式,标准的类UNIX编程环境,将内核引导代码、应用程序初始化、实时配置、配置文件融入系统,整合了两者的优点,形成了一个动态可配置的通用传感网节点操作系统。本操作系统启动后先加载bootloader引导程序,等待接收用户指令,用户通过本地或远程控制服务器按照约定的协议格式发送指令,节点通过无线或串口接收,可读写应用程序根据指令进行动态配置,提供反馈。若无指令则就直接运行Flash中原有的程序。内核启动后,由可读写应用程序中的动态初始化模块从flash的配置文件区域读取节点的设备信息,硬件信息等等,通过这些配置参数初始化所有的硬件驱动。可读写应用程序启动后等待用户指令执行相应的配置与监控,也可以完成更新操作系统的操作。本发明包括以下几个模块b00tl0ader引导模块、应用程序初始化模块、指令处理模块Dbootloader引导模块本模块的作用是引导与加载MANTIS内核,初始化RAM,串口实现与PC机之间的通信,在线调试和在线升级的功能。2)动态初始化模块本模块通过预留的配置文件分区,获取到传感网节点的信息,使得操作系统能够智能的加载需要的硬件驱动和控制模块。3)指令处理模块本模块使用硬件中断的触发机制,利用控制指令协议,对系统进行各种实时动态的配置,状态监控或系统升级。本发明方法流程如图2所示1. bootloader引导模块的工作流程(如图3所示)如下1)初始化外围设备,初始化串口收发,接收用户指令触发进入指令处理模块,设置定时器,中断;2)预设等待3秒(可修改),接收由用户通过本地或远程服务器发送来的升级指令;3)若未接收到指令,则直接运行Flash中原有的程序;4)若接收到用户升级指令,则验证指令格式与校验码;(指令附上校验码,若指令格式不正确或验证码错误,bootloader无法解析该指令将无法得知这是升级指令,返回错误消息,指令格式和校验需与bootloader中解析算法配合才能正确识别。)5)若验证失败则返回错误消息,重新启动节点执行1)的操作。6)若验证成功,则执行指令,首先擦除旧的程序,然后从串口接收可读写应用程序,同时写入Flash中,并返回成功的消息;2.应用程序初始化模块的工作流程(如图4所示)如下1)初始化外围设备,初始化串口收发,设置定时器,中断;2)从flash配置文件区域读取默认设置;3)设置传感器;(以下步骤不是本发明的创新之处,只是将这些设置的参数变量使用了以上提到的0x3800 0x3FFF这里面的内容,并加入了一些判断,如读取到的传感器类型是温度传感器,则执行温度传感器的设置流程等)4)设置无线射频芯片;5)设置转发机制;6)设置安全机制;3.指令处理模块的工作流程(如图5所示)如下1)启用线程等待用户指令;2)用户通过本地或远程服务器与节点建立连接,将指令打包成规定的指令协议格式发送,当串口或无线触发接收中断,进入指令处理模块;3)根据指令类型,对节点进行动态配置或状态获取。用户指令主要分两类查询指令和设置指令。指令需要定义协议格式包头,包尾,包体。指令模块负责解析指令协议,根据特定的用户指令处理特定的工作。查询指令不带配置参数信息,即不对节点做任何修改,节点接受到查询指令,根据指令中需要查询的参数信息通过无线或串口介质进行反馈,服务器根据反馈信息进行解析并显示给终端用户查看。设置指令带配置参数信息,节点接收到配置指令后,将新的配置参数写入配置文件区域,并重启节点,重启后节点初始化并重新加载新的应用。本发明在MANTIS的类UNIX变成环境和内核的基础上,开发了此可动态配置的通用传感网节点操作系统。首先修改了操作系统的启动方式,改变了 flash的分区方式;然后通过由bootloader的引导,切入内核的启动;然后启动可读写应用程序,通过配置文件分区的默认参数,初始化硬件设备和节点工作方式;最后启用等待指令的线程,完成动态可配置的传感网节点操作系统。
本发明融合了 MANTIS的优秀内核设计和灵活易用的动态配置机制,弥补了目前流行的无线传感网络的灵活配置的缺陷,使得无线传感网络节点可控性大大提高。
权利要求
1.一种传感网节点操作系统的动态配置方法,其步骤为1)在传感网节点操作系统中设置一引导模块,用于系统启动时首先加载该引导模块接收用户升级指令;2)所述引导模块在设定时间内未收到用户升级指令,或者根据接收的用户升级指令判断不需要对系统进行升级,则直接读取传感网节点Flash中当前存储的程序;否则,进行步骤3);3)所述引导模块删除所述Flash中当前存储的程序,接收用户上传的可读写应用程序并将其存储到所述Flash中;其中,所述可读写应用程序包括一动态初始化模块、一指令处理模块和一配置文件;4)所述动态初始化模块根据当前配置文件初始化传感网节点;5)所述指令处理模块实时接收用户指令,并根据接收到的用户指令修改当前配置文件,然后重新运行所述动态初始化模块。
2.如权利要求1所述的方法,其特征在于所述引导模块对接收的用户升级指令进行校验,如果用户升级指令格式及其附加的校验码正确,则删除所述Flash中当前存储的程序, 接收用户上传的可读写应用程序并将其存储到所述Flash中。
3.如权利要求1或2所述的方法,其特征在于所述用户升级指令通过本地或远程控制服务器发送给传感网节点。
4.如权利要求3所述的方法,其特征在于所述传感网节点通过无线或串口接收所述用户升级指令。
5.如权利要求1或2所述的方法,其特征在于所述引导模块在所述Flash中划分出一指定区域存储所述配置文件。
6.如权利要求1或2所述的方法,其特征在于所述用户指令包括查询指令和设置指令; 所述指令处理模块根据用户指令类型,对传感网节点进行动态配置或状态获取。
7.如权利要求1所述的方法,其特征在于所述初始化传感网节点包括启动传感网节点所需的硬件与服务。
全文摘要
本发明公开了一种传感网节点操作系统的动态配置方法,属于分布式计算和无线传感器网络技术领域。本方法为1)在传感网节点操作系统中设置一引导模块;2)引导模块在设定时间内未收到用户升级指令,或根据接收的用户升级指令判断不需要对系统进行升级,则直接读取传感网节点Flash中当前存储的程序;否则,进行步骤3);3)引导模块删除Flash中当前存储的程序,接收用户上传的可读写应用程序并将其存储到Flash中;4)动态初始化模块根据当前配置文件初始化传感网节点;5)指令处理模块实时接收用户指令,并根据接收到的用户指令修改当前配置文件,然后重新运行所述动态初始化模块。本发明具有实时配置、升级更加简便的优点。
文档编号G06F9/445GK102323885SQ20111013356
公开日2012年1月18日 申请日期2011年5月23日 优先权日2011年5月23日
发明者周义, 孙薇, 戴健, 杜栓柱, 杨正伟, 汪美玲 申请人:中国科学院软件研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1