用于传感器网络的传感器的操作系统以及相关传感器的制作方法

文档序号:15575363发布日期:2018-09-29 05:24阅读:371来源:国知局

本发明涉及专用于构成传感器网络节点的传感器的操作系统的技术领域。



背景技术:

物联网(internetofthings)或物联网(webofthings)是当前因特网的扩展,物联网旨在在因特网和物理环境中存在的设备之间交换信息和数据。

在与因特网的连接将具有工业意义的设备中,存在包括多个传感器(例如在几十和几百个传感器之间)的传感器网络,该多个传感器放置在环境中以获取测量。例如,它可以是分布在农场上的传感器网络,以便收集与农场管理相关的一组地理定位测量:温度、湿度和土壤ph、空气湿度、风速、紫外线指数等。

这种传感器是智能的,因为它包括存储装置(例如存储器)、计算装置(例如处理器)、用于连接到一个或更多个检测器的输入/输出接口以及用于连接到网络的其他节点和因特网的网络接口,例如通过wi-fi、ieee802.15.4、nb-iot(窄带物联网)或3g/4g类型的无线连接来连接到网络的其他节点和因特网。具体地,传感器存储器包括适于由处理器执行的计算机程序指令。

此外,这种传感器是自主的,因为它包括用于传感器操作的电源装置,例如电池。

但是,这种连接的设备仅具有有限的计算能力和信息存储,基本上允许获得测量和对这些原始测量进行简单处理的性能,以及将经处理的测量传输到连接到因特网的基站。

此外,每个传感器网络都是为特定目的而实现的。

因此,网络的每个传感器专门为预期用途而开发。

最后,网络的传感器必须分布在环境中。因此,它们仅需要低维护是必要的。因此,它们必须具有相当大的自主性和可靠性。

因此,需要为这些传感器提供操作系统以虚拟化通用传感器的硬件层,从而开发独立于所用设备的软件应用,特别是降低开发成本。

国际申请wo2013/032660描述了一种由多个基本操作系统和主操作系统组成的操作系统。由执行平台的相关处理器实现的每个基本操作系统包括实现tcp/ip通信协议的核。

主操作系统能够将软件应用的任务分解为多个基本过程,并将每个基本过程的执行分配给基本操作系统之一。

具体地,该操作系统允许通过将如下处理器待机来获得能量改进,该处理器的基本操作系统不被要求执行过程。

但是,这种操作系统在存储指令以及在其执行期间所需的存储空间方面都需要太大的存储量,以便配备通信传感器。

因此,本发明旨在满足这些需求。



技术实现要素:

本发明的目的是一种用于传感器网络的传感器的操作系统,其特征在于,操作系统配置为除了包括用于虚拟化传感器的硬件资源的多个通用系统功能,尤其是无线电通信功能和路由功能,还包括多个应用功能,其中每个功能由软件角色限定,以及其中每个软件角色是有限状态自动机,其中以预定的调度顺序来限定不同软件角色的执行,该预定的调度顺序确定在执行周期期间每个角色的调用时间顺序。

该操作系统使得可以在通用传感器上开发软件应用以便将其配置成用于特定用途。该操作系统还允许对主传感器的能量消耗进行优化。

通过该操作系统的结构,可以容易地配备服务以使传感器的操作可靠。

根据特定实施例,操作系统可包括单独地或以任何技术上可行的组合采用的以下特征中的一个或更多个:

-操作系统包括被监控逻辑角色和用于对被监控逻辑角色进行监控的监控逻辑角色,其中被监控逻辑角色在其标称操作期间遵循确定的状态序列,使得与状态序列的任何偏差都指示被监控逻辑角色的故障,并导致监控角色转换到被监控逻辑角色的重新配置状态;

-转换到监控逻辑角色的重新配置状态导致实现与用于对影响被监控逻辑角色的故障进行校正的策略相对应的动作;

-至少一个被监控逻辑角色由于等效的逻辑角色而冗余,其中校正策略包括执行等效的逻辑角色来代替被监控逻辑角色;

-传感器包括至少两个核,即主核和辅助核,其中系统和应用功能的执行根据预定分配而在不同核之间分配。

-操作系统包括用于功率管理的系统功能,该系统功能在主核上执行并且能够在辅助核不活动时关闭辅助核以及打开辅助核以运行功能;

-每个逻辑角色由包括多个行的状态表限定,其中每一行包括角色的初始状态、初始消息、在角色接收初始消息时角色执行的动作、在执行动作时角色切换到的最终状态和在角色切换到最终状态时的最终消息,其中,考虑到由传感器的计算装置来执行动作的二进制代码,该动作的二进制代码旨在被加载到传感器的存储装置中。

-操作系统包括当前状态表,使得可以存储在传感器上执行的每个逻辑角色的当前状态。

本发明还涉及集成上述操作系统的通信传感器。

附图说明

通过阅读以下仅作为非限制性示例给出的特定实施例的详细描述,将更好地理解本发明及其优点,其中,该描述参考附图进行,在附图中:

-图1示出了根据本发明的通用传感器的示意图;

-图2示出了图1的传感器的硬件层的实施例的示意图;

-图3示出了根据本发明的适于在图1的传感器上执行的操作系统的示意图;

-图4示出了图3的操作系统的第一软件角色;

-图5示出了图3的操作系统的第二软件角色,该第二软件角色监控图4的第一软件角色。

具体实施方式

参考图1,传感器1构成传感器网络节点中的每一个节点。

传感器1包括通用硬件层10和软件层100。

参考图2,材料层10包括计算装置,优选地,该计算装置由若干核构成。例如,硬件层包括两个核,即由4位纳米控制器组成的第一核20和由8位avr微控制器组成的第二核30。更优选地,硬件层10的架构是非对称的on/off多核,即第二核30在执行其接通的过程之后被第一核20完全关闭(off)。即使可以将第一核放置于“睡眠模式”以限制其能量消耗,第一核20永久保持开启。核20称为主核,以及其他核或每个其他核(例如核30)称为辅助核。

硬件层10包括存储装置,该存储装置包括至少一个存储器。优选地,如图2所示,传感器1包括与第一核20相关联的第一存储器22和与第二核30相关联的第二存储器32。

硬件层10具有输入/输出接口40,该输入/输出接口具有多个物理端口(在图2中标记为42、44和46)。每个端口分别连接到检测器52、54和56,检测器可以是不同类型的。在变型中,几个检测器连接到相同的物理端口,例如usb类型的端口。

硬件层10包括通信模块,优选地是无线模块,例如无线电通信卡60,优选地是wi-fi或ieee802.15.4或nb-iot或3g/4g类型的无线电通信卡。

硬件层10包括将不同组件彼此连接的物理通信总线70,以允许数据的物理交换。

材料层10包括电源,使得传感器1可以是自主的。电源可以是例如由一个或多个电池组成的电池80。替代地,电池可以由一个或多个蓄电池组成,并且可以与功率恢复模块(也称为“能量收集模块”)相关联。

硬件层10还包括用于供应或停止供应硬件层的一个或其他组件的受控中断装置82。

作为变型,硬件层的每个组件由于相同组件的存在而在物理上可能是冗余的,该相同组件能够在故障的情况下替换有问题的组件。然后,总线70对于冗余组件和替换组件是公共的。

计算装置适用于执行存储在存储装置中的计算机程序指令。具体地,每个核20、30能够执行存储在与其相关联的存储器22、32中的计算机程序指令。

参考图3,软件层100包括操作系统101,该操作系统101配置为提供一个或更多个软件应用,用于配置在其上执行操作系统101的传感器1。

操作系统101包括系统层110和应用层120。

由于一旦已经通过一个或更多个软件应用的规范对操作系统101进行配置,则操作系统101包括一组具有相同执行级别的功能,因此,层的概念仅是说明性的。

根据本发明,每个功能都限定为有限状态机,在本文档中称为逻辑角色。

每个逻辑角色由一组有限的可能状态以及在可能状态中从初始状态到最终状态的可允许的转换来限定。

更确切地,逻辑角色完全由包括多个行的状态表的数据来限定,其中每一行包括角色的初始状态、初始消息、当角色置于初始状态并接收初始消息时角色所执行的动作、一旦执行动作则角色切换到的最终状态和角色在切换到最终状态时生成的最终消息。可以将状态表聚合在一起以形成保存在操作系统配置文件101中的单个公共通用表。在图3中,这种通用表由数字115来表示。

消息(也称为“标志”)指示角色的当前状态。因此,初始消息对应于第一角色已被置于给定状态的事实,其具有对第二角色的动作以及该第二角色从初始状态到第二最终状态的转换进行触发的效果。然后,该第二角色发送的最终消息是其刚刚切换到的最终状态。替代地,消息可以是关于角色当前状态组的条件。

系统层110在其配置之前将存在于通用操作系统中的多个系统功能组合在一起。这些系统功能允许管理传感器1的硬件组件(存储器、处理器、连接到外围设备的输入/输出接口等),核也是如此。在这些系统功能中,存在通信功能112、路由功能114、输入/输出接口40的物理端口的虚拟化功能(在图3中标记为116),以及有利地能量管理功能113。

应用层120包括开发以用于特定传感器1的所有应用功能。因此,将复杂的软件应用分解为一个或更多个基本应用功能。

因此,除了使用系统功能(例如输入/输出)的可能性之外,例如应用122还包括两个特定功能124和126。图3还示出了包括单个应用功能或逻辑代理s的被监控应用和包括单个应用功能或逻辑代理r的对被监控应用进行监控的应用,以及包括单个应用功能或逻辑代理t的超时应用。

因此,应用层120使得操作员能够配置操作系统101,除了呈现系统功能之外,一旦配置完成,还使用该操作系统来呈现与传感器1的设想使用相关地限定的多个应用功能。

专门提供配置工具以向操作员提供便于配置操作系统101的人/机接口。

图4表示用于获取测量(例如温度的测量)的应用功能s的示例。

当执行时,逻辑角色s首先处于初始化状态s_init。

然后,一旦初始化,逻辑角色s就切换到so状态。

在状态so中,角色s等待由超时角色t限定的采样持续时间的有效期。

超时角色t是双状态角色。在状态0中,超时角色t在每个执行周期对计数器相对于最大值(优选地,该值特定于角色的每个状态)的值进行检查。如果计数器的值小于最大值,则计数器的值增加一个单位;如果计数器的值等于最大值,则角色t切换到状态1。在状态t=1中,将计数器重置为零,并且角色t切换回到状态t=0。

处于状态so的角色s初始化超时角色t的计数器(然后被置于状态t=0)。角色s等待接收指示超时角色t处于状态1的消息,以在与输入/输出接口40的物理端口相对应的确定的虚拟端口处读取由连接到该物理端口的传感器产生的温度信号。然后,角色s切换到状态s1。

在状态s1中,角色s初始化角色t的计数器(然后被置于状态t=0)。角色s等待角色t切换到状态t=1,以便将读取的温度信号转换为温度值。然后,角色s切换到状态s2。

在状态s2中,角色s将温度测量值发送到通信系统角色112,以便经由传感器网络和因特网将该温度测量值发送到基站。同时,角色s初始化超时角色t的计数器,以设置通信系统角色112进行传输确认的等待时间(“超时”)。在计数器已经超时且角色s没有收到预期确认的情况下,角色s再次重新发送相同的测量。一旦发送测量并接收到相应的确认,则角色s切换回到状态so以获取下一次测量。

在另一个示例中,将这样获得的温度测量值发送到装有传感器的风扇的角色控制系统以冷却组件,特别是核。一旦测量值超过预定阈值,该角色系统产生将位于电源和风扇之间的受控中断装置的开关进行关闭的信号。

一旦限定,逻辑角色的状态表就存储在与主核相关联的存储装置中。所有应用逻辑角色的状态有利地在公共通用表中限定,以便于开发和更新该应用。

角色的二进制代码被加载到与它要在其上执行的核相关联的存储器中。在将每个应用角色的二进制代码加载到主核和辅助核中的核的存储器中的同时,优选地将系统角色的二进制代码加载到与主核相关联的存储器中。

减少了状态自动机的二进制代码。因此,配置的操作系统具有低内存占用。

在操作员通过可用的人/机配置界面对传感器1进行配置期间,核的角色分布受到影响。

具体地,系统角色和应用角色根据应用的执行约束而分布在不同的核上。在简单的情况下,由单个核(没有可靠性约束的低成本系统)执行所有角色。但是,应用或操作系统的角色可以以适当的方式分布在若干核上,一方面使能量消耗最小化,另一方面在故障的情况下减轻故障。

应用可以调用系统功能以要求执行相应的系统功能。例如,将数据发送到通信卡用于在网络上传输是由应用来调用这种系统功能的示例。

操作系统提供系统角色库。相应的系统功能使得可以对可以由应用角色执行的动作的编程进行简化。

本领域技术人员将发现应用角色和系统角色是强耦合的(紧密交叉分层)并且在其执行期间具有相同的权限(应用角色具有与系统角色相同的权限)。这就是之所以可以说应用层110处于操作系统101中的原因。具体地,在系统角色的执行和应用角色的执行之间切换时,上下文没有变化。

与现有技术的传统核不同,操作系统101不包括用于对系统或应用逻辑角色的执行进行协调的调度服务。在应用的开发期间以及因此在通用操作系统的配置期间,操作员根据保存在操作系统配置文件中的调度序列117来调度角色的执行顺序。在每个执行周期中,根据调度序列连续调用逻辑角色。

调度序列的执行是基于表,该表包括正在进行中的每个角色所在的当前状态。

该当前状态表存储在主核20的存储器中。它在图3中示意性地示出并且具有附图标记119。

一旦调用角色,则查阅当前状态表以确定是否验证了由与所讨论的角色的当前状态相关联的初始消息所限定的条件。如果是,则执行与角色的当前状态相关联的动作,并且转换允许所讨论的角色切换到最终状态。该角色切换到新状态并通过已适应的最终消息(即通过更新当前状态表中它的当前状态)进行指示。

如果初始消息是从两个其他角色的状态得到的,则将该初始消息分解为逻辑表达式是合适的,该逻辑表达式包括例如能够聚合两个状态以得到所讨论的角色的初始消息的“与(and)”运算符。

有利地,能量管理系统角色113对在同一辅助核30上执行的角色的状态进行扫描。当所有这些角色处于休息状态或完成状态时,角色113关闭相应的辅助核,例如通过适当地控制受控中断装置82来关闭相应的辅助核。

有利地,能量管理系统角色113对在主核20上执行的角色的状态进行扫描。当所有这些角色处于休息状态或完成状态时,角色113将主核(即传感器)置于睡眠状态。

这些动作限制了传感器的能量消耗,以及因此在其配备有不可充电电池的情况下增加了传感器的寿命。

通常,逻辑角色的标称执行是根据预定的状态序列来执行的。

因此,与该预定的状态序列的任何偏差都指示故障。因此,在执行期间对逻辑角色所遵循的状态序列的监视使得可以识别故障的发生以及实现旨在维持相应功能的校正动作。

为此,计划将监控逻辑角色与例如每个系统或应用逻辑角色相关联。替代地,以及根据约束可以建立单个监控逻辑角色,以透明方式对所有角色(包括系统角色)的功能进行监控。

因此,图5示出了图4的逻辑角色s的监控角色r。

在每个周期中,在执行被监控角色s之后执行监控角色r。

在角色s的初始化s_init期间对监控角色r进行初始化。

在角色s的初始化之后的初始化阶段r_init之后,将监控角色r置于状态ro。

在超时角色t从状态t=0切换到状态t=1的执行周期中,被监控角色s执行状态so的动作并将状态so切换到状态s1。然后,调用处于状态ro的角色r:根据当前状态表确定角色t处于状态t=1并且角色s处于状态s=s1,其中监控角色r然后切换到状态r1。

另一方面,如果角色t处于状态t=1并且角色s处于状态s1以外的状态,s!=s1,则监控角色r切换到被监控角色的重新配置状态reset_s。

在下一个执行周期,当角色t处于状态t=1时,计数器的值被重置并且角色t切换到状态0。如果角色r处于状态reset_s,则如下所示执行相关动作。

然后,在超时角色t再次从状态t=0切换到状态t=1的周期中,被监控角色s执行状态s1的动作并切换到状态s2。然后,调用处于状态r1的角色r:根据当前状态表确定角色t处于状态t=1并且角色s处于状态s2,s=s2,监控角色r切换到状态r2。

另一方面,如果角色t处于状态t=1并且角色s处于状态s2以外的状态,s!=s2,则监控角色r切换到被监控角色的重新配置状态reset_s。

在下一个执行周期,当角色t处于状态t=1时,计数器的值被重置并且角色t切换到状态0。如果角色r处于状态reset_s,则如下所示执行相关动作。

在超时角色t再次从状态t=0切换到状态t=1的周期中,被监控角色s执行状态s2的动作并切换到状态so。然后,调用处于状态r2的角色r:根据当前状态表确定角色t处于状态t=1并且角色s处于状态so,s=so,监控角色r切换到状态ro。

另一方面,如果角色t处于状态t=1并且角色s处于状态so以外的状态,s!=so,则监控角色r切换到被监控角色的重新配置状态reset_s。

在下一个执行周期,当角色t处于状态t=1时,计数器的值被重置并且角色t切换到状态0。如果角色r处于状态reset_s,则如下所示执行相关动作。

可以看出,当被监控角色s不能正确地执行与其当前状态相关联的动作时,监控角色r切换到状态reset_s。这是由故障引起的先验。在该示例中,故障检测类似于所谓的“看门狗”或“心跳”机制。

一旦已检测到故障,就可以通过与监控角色r的reset_s状态相关联的动作来应答该故障。该重新配置动作由操作员在操作系统101的配置期间限定。

例如,可以实现预定策略以允许传感器1再次具有与有缺陷的被监控角色相关联的功能。例如,在逻辑角色的冗余策略中,监控角色r开始执行与有缺陷的角色s等同的软件角色,优选地在传感器的另一个核上执行。

有利地,在辅助核30上执行被监控角色s(例如测量获取角色)的同时在主核20上执行监控角色r。

因此,根据本发明的可配置操作系统使得可以开发和控制鲁棒的且可靠的传感器。实际上,可以根据每个传感器功能所使用的逻辑角色中的每个角色的标称状态序列来检测瞬态错误和永久性错误。组件的冗余和等效角色的使用允许对检测到的错误进行校正。因此,执行操作系统的传感器是鲁棒的。

应当注意的是,有缺陷的角色可以被等效角色所替换(也称为时间冗余或冷冗余)这一事实避免了必须实现热冗余机制,其中若干类似角色被同时执行,并且轮询机制验证这些不同角色的输出是彼此一致的。这种热冗余不符合限制内存占用和节省能量的目的。

调用在其上执行操作系统的传感器以形成自组织通信网络的节点。为了将数据包从源节点路由到目的节点(例如,连接到因特网),将数据包从一个节点发送到相邻节点,其中每个中间节点用作数据包的中继。

为了知道必须将数据包发送到哪个相邻节点以到达目的节点,所讨论的节点必须实现适当的路由服务。

这种路由服务基于所考虑节点的网络拓扑的知识。该知识总结在存储在传感器节点的存储器中的路由表中。

许多路由方式是已知的。在根据本发明的操作系统中,路由功能基于网络传感器的相对位置。它利用由相邻传感器接收的信号功率(“rssi”,根据首字母缩略词“接收信号强度指示(receivedsignalstrengthindication)”),由装有卡60的无线电通信模块来测量该功率。

例如,传感器的地址以11位编码。可以增加位数以增加地址的准确性以及因此增加传感器位置的知晓度而无需改变该路由的操作原理。

地址的不同字段是:用于区域标识符的4位;用于跳跃计数的4位;以及用于传感器标识符的3位。

传感器的位置在水平面上表示。选择传感器作为协调传感器并构成平面的原点。此外,在所有其他传感器之前放置至少三个参考传感器。参考传感器与协调传感器相结合使得可以在平面中限定方向并在其中界定地理角度扇区。

从协调传感器逐个地向外部部署固定的自组织网络传感器。在部署期间,所有传感器是活跃的。然后在部署该传感器时确定传感器的地址。

区域标识符表示传感器所在的地理角度扇区。因此,利用四个比特,可以识别平面中的十六个扇区。

跳跃的数量表示将所讨论的传感器与协调传感器分开的距离(以跳跃的数量计)。

传感器标识符由协调传感器分配,以确保扇区中传感器地址的唯一性。由于在三个比特上编码,因此每个扇区可以包含八个传感器。

关于基于传感器的地理位置的路由功能,例如使用通过卫星星座(例如gps系统)确定的其位置,当前的路由功能不太准确,但在室内和室外均可以工作而无需额外的能量成本。与用于低功率和有损网络(rpl)路由服务(ietf标准)的路由协议相比,该路由功能更灵活以及消耗更少的功率并且适用于传感器网络。

然后,将传感器的地理位置用作网络上传感器的地址。该概念使得可以最小化数据包的大小以及知道数据的来源,即哪个传感器处于获取该数据的起源。应当注意,传统的路由技术需要网络上传感器的地址及其地理位置。这导致增加了数据包的大小,以及因此增加了每个传感器的存储器大小,以存储适当大小的路由表。

此外,由于该路由功能由系统角色组成,因此其操作可以由一个或更多个相关联的监控代理容易地监控。因此,可以监控无线通信故障,并且可能提供策略来解决该故障。

进行测试以便定量地比较所提出的解决方案与现有技术相比的鲁棒性。

为此,使用来自爱特梅尔(atmel)的atmega128rf8位微控制器开发了用于根据ieee802.15.4协议(也称为“zigbee”协议)的通信传感器的卡。

通过该微控制器,atmel公司提供专有的操作系统“bitcloud”。

制作了五十张相同的卡。然后设计两组测试,其中每批包括所生产的五十张卡中的五张随机选择的卡。

第一批卡与基于根据本发明的状态自动机的操作系统一起工作,而第二批卡与由atmel公司交付的专有操作系统一起工作。顺便提及,根据本发明的操作系统使用9kb的“闪存”存储器,而atmel公司的专有操作系统需要100kb的“闪存”存储器。

每个传感器执行相同的任务:从温度传感器和亮度传感器获取数据。五个传感器在它们之间形成具有星形拓扑的网络,包括连接到个人计算机的协调器节点和与协调器节点通信的四个终端节点。将传感器探头传送的数据记录在个人计算机的数据库中。

两年半以来创造了超过600万条记录。尽管需要传感器的自动重新配置以便可以继续其操作的非致命故障可能已经发生,但是由第一批卡组成的网络持续运行了两年半,而没有任何致命故障,即没有导致网络传感器中的一个传感器关闭的故障。

另一方面,由第二批卡组成的网络经历了许多故障。没有致命故障的平均持续时间实际上很短,不到十天。

因此,基于根据本发明的状态自动机的操作系统比现有技术的操作系统更加鲁棒。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1