CN104423970B - 联网传感器及微控制器的动态编程及控制 - Google Patents
联网传感器及微控制器的动态编程及控制 Download PDFInfo
- Publication number
- CN104423970B CN104423970B CN201410437567.5A CN201410437567A CN104423970B CN 104423970 B CN104423970 B CN 104423970B CN 201410437567 A CN201410437567 A CN 201410437567A CN 104423970 B CN104423970 B CN 104423970B
- Authority
- CN
- China
- Prior art keywords
- state machine
- node
- pin
- instruction
- state
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Stored Programmes (AREA)
- Selective Calling Equipment (AREA)
Abstract
本申请案涉及联网传感器及微控制器的动态编程及控制。本发明涉及一种具有被动态地编程且从彼此及从主机系统接收经更新软件的能力的传感器及控制器节点的网络。每一网络节点包含多个状态机,所述状态机中的至少一些状态机可相对于所述网络节点处的物理引脚操作;所述物理引脚对应于来自传感器功能的输入或到控制功能的输出。所述网络节点包含微控制器,所述微控制器可在操作模式中操作以执行状态机且对来自其它节点或所述主机的命令做出响应,且可在读取模式中操作以接收并存储从其它节点或所述主机传输的程序指令。还提供学习模式,借此网络节点可在处于用户控制下时存储对应于所述节点处的指令及行动的程序代码。
Description
技术领域
本发明在分布式联网电子系统的领域中。
背景技术
计算机系统当中的联网通信至今已由人类导向的通信主导。因特网通信为这些人类导向的通信的良好实例,这是因为这些通信通常通过计算机(包含个人计算机、平板计算机、智能电话及其它移动装置)执行,所述计算机由人类有效地操作以存取或传输来自及去往另一此类计算机或来自及去往服务器的信息。
然而,最近趋势为不存在人类对通信的起始或控制的计算机系统及其它电子装置自身当中的联网通信的增加的部署。这些机器到机器(“M2M”)通信现在经由广域网执行,且所得网络现在经常称为“物联网”(“IoT”)。在此上下文中,所述通信的本质可显著不同于常规人类导向的因特网通信。在给定传输中从一个“机器”传输到另一机器的数据量经常相当小(例如,不经常涉及流式视频)且经常并非特别时间敏感的。如此,IoT的通信要求可为稍微宽松的。另一方面,预期未来机器到机器网络节点的数目实质上大于人类导向的因特网中的节点的数目。
自动化设施管理为非常适于通过M2M通信执行的功能的实例。在此上下文中,可在设施的许多各种位置处安装(举例来说)用于感测温度、湿度、周围光级、附近人类的存在及其它环境参数的若干个传感器。可在工业或HVAC设备上安装影响环境的其它传感器及控制器。这些传感器及控制器与主机系统当中的通信需要仅以相对低频率发生(例如,最多大约十分之Hz的取样频率),但如果传感器及控制器的数目充分大,那么可实施对设施环境的高效且智能控制。
工业及过程控制应用、用于科学研究的大规模数据收集等等为其中M2M(或IoT)网络可提供特定益处的其它系统。
在IoT联网通信的上下文中,自动化传感器及其部署具有特定重要性,这是因为其为获得将在联网机器当中传递的观察数据的传感器。那些观察提供由控制器及致动器对传感器的环境的控制的上下文,所述控制器及致动器也可在具有所述传感器的M2M网络中。以引用的方式并入本文中的标题为“传感器电力管理(Sensor Power Management)”的2012年3月29日提出申请的同在申请中且共同让与的美国专利申请案S.N.13/433,546描述用于传感器节点(即,网络中的一个节点)中的电力管理布置的实例。此电力管理在大量传感器的M2M实施方案中为特别有用的,(举例来说)以节约在操作期间的传感器电池电力。
M2M网络的一些现代装备中的节点的数目可超过一千个,那些节点中的每一者对应于传感器、控制器或传感器及控制功能两者且在软件控制下操作。在此些非常大规模网络中,最初将这些节点中的每一者处的程序代码编程的成本及尤其其更新成本可为过高的。此外,有可能不能在部署之前准确地预测特定环境或甚至特定网络节点的功能-在许多情形中,在实践中变得合意的传感器或控制功能可能在安装时为不可预知的。使用当前技术实施的常规M2M传感器网络的功能性及灵活性因此稍微受限。
作为其它背景,许多移动电话装置包含实施“虚拟机”以安全地执行独立于解译型平台的程序代码的处理器。此类虚拟机的实例包含可从谷歌公司购得的ANDROID操作系统中的Dalvik虚拟机及用于执行JAVA程序及过程的虚拟机。作为其它背景,现代嵌入式处理器平台(例如ARDUINO微控制器平台)使用基于称为“布线”软件库的引脚抽象的经编译可执行代码(称为“草图(sketch)”)。
发明内容
本发明的实施例提供一种联网传感器及控制器的系统以及操作所述系统的方法,从而实施在经解译环境中操作以提供动态编程及控制的嵌入式计算平台的虚拟机。
本发明的实施例提供其中程序代码及因此个别传感器及控制器的功能性可适应所述环境的改变的此方法及系统。
本发明的实施例提供其中传感器及控制器可安全地且可靠地调适程序代码及因此网络中的其它传感器及控制器的功能性的此方法及系统。
本发明的实施例提供其中可响应于经感测条件而适应性地实施并修改联网传感器及控制器的系统的总体功能性的此方法及系统。
本发明的实施例提供其中传感器及控制器可以最小化延时及电力消耗的方式调适的此方法及系统。
本发明的实施例提供其中传感器及控制器的程序代码在不中断当前处理的情况下调适或被调适的此方法及系统。
本发明的实施例提供适于供在低能量通信(例如,蓝牙低能量)环境中及在有存储器局限的装置中使用的此方法及系统。
参考以下说明书连同其图式的所属领域的技术人员将明了本发明的实施例的其它目标及优点。
本发明的实施例可实施到执行多个状态机的对应于传感器、控制器或两者的一或多个分布式网络节点中。在每一节点处提供用于在“读取”操作模式中接收并存储与其状态机中的特定一者相关联的个别行的程序代码的解译器功能,以起始或修改所述节点处的所述状态机的功能。在一些实施例中,提供“学习”操作模式,借此节点根据经执行代码及经感测条件将自身编程。
附图说明
图1是其中实施本发明的实施例的控制器及传感器的分布式联网系统的装备的呈框形式的电图式。
图2是根据本发明的实施例的图1的系统中的主机系统及两个节点的呈框形式的电图式。
图3是图解说明图1及2的系统的节点中的一者中的引脚到集成电路的指派的概念图。
图4是图解说明图1及2的系统的节点中的一者中的状态机的布置的逻辑图。
图5a是图解说明根据本发明的实施例的图1及2的系统在“读取”模式中的操作的流程图。
图5b是图解说明根据本发明的实施例的图1及2的系统在“执行”模式中的操作的流程图。
图5c及5d是图解说明根据本发明的实施例的图1及2的系统在“学习”模式中的操作的流程图。
图5e是图解说明根据本发明的实施例的图1及2的系统的用以执行“状态反映”的操作的流程图。
具体实施方式
将结合本发明的实施例描述本发明,即,描述为实施到通过可编程逻辑实施的传感器及控制器的网络中,这是因为预期本发明将在以所述方式实现时尤其有益。然而,预期由本发明提供的灵活性及可调适性将用于超出本说明书中所描述的那些应用的广泛应用中。因此,应理解,以下描述仅通过实例提供且并不打算限制所主张的本发明的真实范围。
图1是图解说明其中可部署本发明的实施例的分布式网络系统的部署的框图。如上文结合本发明的背景技术所论述,一些现代联网系统由含有显著计算容量且能够彼此通信(举例来说,通过无线通信)的若干个传感器及控制器组成。取决于特定应用,此网络中的节点(即,传感器、控制器或两者)的数目可介于从数个节点到大约数百个节点的范围内。此类网络已在设施管理(例如,用于环境控制及安全性管理)及工业控制(例如,对电机及阀的控制)的上下文中变得有吸引力。
在图1的高级实例中,将数个节点N1到N5图解说明为彼此通信且与主机H通信。通常,如上文所论述,预期这些节点N1到N5(在本说明书中,一般来说,统称为节点N)部署于设施或环境中的各种位置处,举例来说,在设施的一或多个室中的位置处、在户外的各种位置处及在一或多件工业设备处。作为图1的实例,节点N1、N4仅或主要充当传感器,节点N2、N5仅或主要充当控制器,且节点N3执行传感器功能及控制器两者。出于本描述的目的,术语“节点”将指能够充当传感器或控制器或者两者且具有通信功能以便在联网布置中与其它节点及主机系统通信的经安装电子系统或子系统。在任何情形中,总体网络中的执行特定功能的节点的数目可变化。根据本发明的实施例,如下文将进一步详细地描述,由给定节点执行的功能及执行那些功能的方式可响应于来自其它网络节点的命令及响应于在其它网络节点处感测的条件两者而随时间改变。如此,且如下文也将描述,节点N中的每一者包含计算电路,例如微控制器、微处理器或其它大规模可编程逻辑。
主机H也存在于此网络中。主机H由安装于节点N放置于其处的设施或环境处或附近的计算机系统(例如计算机或工作站)实现。或者,主机H可为暂时在节点N附近的便携式计算系统,例如膝上型计算机或平板计算机、智能电话等等。如下文将进一步详细地描述,主机H包含充分计算容量及存储器以允许其安装并修改在每一节点N处的程序代码。
如图1中所展示,主机H与节点N1到N5彼此(在此实例中无线地)通信。在本发明的实施例中,预期主机H将通常与每一节点N通信,且节点N1到N5中的每一特定节点将与节点N1到N5中的其它节点中的至少一者(如果不是全部)通信。在无线通信的情形中,执行此通信的方式可遵循若干个常规协议及物理层标准(包含IEEE802.11a/b/g/n等、蓝牙及蓝牙4.0(即,蓝牙低能量或“BLE”))中的任一者。如此项技术中已知,BLE通信局限于20字节的应用有效负载以便最小化电力消耗。本发明的实施例能够通过使用具有涉及“引脚”的过载指令的经减少指令集程序设计语言而利用BLE通信的低电力,使得可在小到单个BLE包中传递相对复杂程序。因此,本说明书中所描述的本发明的实施例非常适于许多电池供电式节点N的系统中的实施方案。或者,主机H及节点N1到N5中的一些或全部可连接于有线网络(例如,以太网)中。在任何情形中,必要时还将安装用于实现节点N1到N5与主机H当中的此类通信的常规路由器、开关、存取点等等(未展示)。
图2图解说明根据本发明的实施例的主机H及节点N1、N3的高级架构。尽管图2中仅展示两个节点N1、N3,但从图1及从上文描述应显而易见,特定网络中的所安装的节点的数目可计数达数百个。
将参考节点N1(通过实例)描述根据本发明的实施例的节点N(图1)的架构。其它节点N2到N5可由类似架构或通过替代架构构造;在任何情形中,预期用于实现的特定硬件可在节点N当中不同。预期已参考本说明书的所属领域的技术人员将能够在不需要过度实验的情况下容易地实施必要的且用于实现适用于适合于特定应用的本发明的实施例的架构的硬件。
本发明的此实施例中的节点N1对应于包含嵌入式微控制器单元(MCU)2以及各种外围功能的可编程子系统。预期节点N1将通常通过其上将安装MCU2的单个电路板以及对于节点N1的所要功能适当的其它集成电路及离散组件来在物理上实现;此电路板将通常装纳于适合于其环境的适当壳体或外壳中。当然,可取决于节点N1的功能而使用多个电路板来实现节点N1;或者,可再次取决于节点N1的功能而将节点N1实现为单个集成电路或较大电子系统的一部分。
根据本发明的实施例,MCU2通过具有用于执行本说明书中所描述的节点N1的功能的计算容量的可编程逻辑实现。在一些实施例中,此可编程逻辑呈工业中可用的若干个微控制器或微处理器装置中的任一者的形式。适合于用作节点N1中的MCU2的微控制器的实例包含可从德州(Texas)仪器公司购得的C2xxxx及CORTEX微控制器家族的那些微控制器。或者,类似计算容量的其它微控制器及微处理器或定制逻辑电路可用于MCU2,只要提供充足计算容量即可。预期已参考本说明书的所属领域的技术人员将能够容易地选择并实施用作用于特定应用的MCU2的适当装置或电路。
在此实例中,除MCU2之外,节点N1还包含数个其它功能。与其它节点N3及主机H的通信通过BLE功能4执行,BLE功能4以用于蓝牙通信的常规方式实现且耦合到节点N1内的MCU2。联网系统中的每一节点N包含用于与所述节点外部的物理环境相互作用的一或多个输入/输出功能。在此实例中,节点N1包含各自耦合到MCU2且由MCU2控制的传感器功能5及控制输出电路7。输入/输出功能(即,传感器功能5及控制输出电路7)的特定数目及功能将取决于节点N1将在联网系统中执行的条件及操作。适合于用于设施管理及工业控制中的传感器功能5的实例包含温度传感器、运动传感器、湿度传感器、适合于工业仪器中的各种类型的换能器、相机、热成像传感器、光电传感器等等。控制输出电路7对应于常规驱动器或用于节点N1的所要输出或控制功能的适当输出电力的其它电路。适合于使用的控制输出电路7的实例包含模拟输出驱动器电路、串行及并行数字输出、脉冲宽度调制(PWM)输出驱动器电路、用于警报器或信号器的驱动器电路及LED驱动器(列举几个)。传感器功能5及控制输出电路7中的每一者的数目将根据节点N1的所要功能而变化。如果网络的设计者希望节点N1仅充当传感器节点,那么将在节点N1内实现一或多个传感器功能5且不实现控制输出电路7;相反地,如果节点N1将仅充当控制器节点,那么将包含一或多个控制输出电路7且不包含传感器功能5。在许多情形中,预期将在节点N1内安装传感器功能5及控制输出电路7中的每一者中的一或多者,但并非所有那些功能及电路均可在联网系统的操作期间的任何给定时间启用。
如图2中所展示,节点N1、N3中的每一者中的MCU2经配置以包含本发明的此实施例的构造及操作特有的特定功能。在本发明的此实施例中,MCU2包含对应于经编程以将所接收命令及指令解译为机器语言可执行操作码及内部控制信号的逻辑电路的解译器功能8。MCU2还包含对应于用于执行来自解译器功能8的经解译命令及指令的逻辑电路的执行器功能10。包含于执行器功能10内的特定电路将取决于MCU2自身的特定架构;针对实施为C2xxx微控制器的MCU2的实例,执行器功能10包含数字信号处理器核心以及CLA协处理器。当然,MCU2的其它实现方案将包含执行器功能内的其它类型的逻辑电路。
MCU2还包含其内存储有程序指令及操作数数据的存储器资源12。存储器资源12的特定布置可根据本发明的实施例而变化。在所述方面,存储器资源12可通过MCU2内的多个存储器以及在MCU2外部但仍在节点N1内实施的一或多个存储器实现。根据本发明的实施例,存储器资源12可通过各种存储器技术(包含易失性存储器(例如,静态随机存取存储器)及非易失性存储器(例如,快闪存储器)中的任一者或两者)实现。程序与数据存储器可占据单独存储器地址空间或可含于单个存储器空间内。针对实施为C2xxx微控制器的MCU2的实例,采用程序及数据通过其占据全局存储器地址空间的经分离区域但可通过单独硬件路径存取的经修改Harvard架构。
还预期MCU2包含超出图2中所展示的那些电路及功能的其它电路及功能,此类其它电路及功能适合于其作为独立式微控制器的功能性。此类其它电路及功能的实例包含电力管理电路、输入及输出驱动器、模/数转换器、数/模转换器、时钟电路、电压调节器等等。这些电路也可参与由MCU2结合本发明的实施例进行的程序指令的操作及执行。预期已参考本说明书的所属领域的技术人员将容易地理解MCU2内所包含的其它必要支持电路。
如上文结合图1所论述,主机H可通过若干种计算机类型(包含个人计算机、便携式计算机及平板计算机、智能电话等等)中的一者实现。如此,主机H的架构及功能性可在不同装备之间广泛地变化。在图2中所展示的系统架构中,主机H包含主机CPU14。主机CPU14将对应于用于实现主机H的计算机功能的中央处理单元子系统。出于本发明的此实施例的目的,主机CPU14包含对应于解译器功能15的电路及功能性。程序代码16也图解说明为在主机CPU14内,通过用于存储、检索及传递程序指令的常规电路存储于程序存储器内。
主机H还包含用于与节点N通信的通信能力;在此实例中,去往及来自主机H的这些通信由安装于主机H处的BLE功能4的例子接收及传输。根据本发明的实施例,程序代码可在网络中从主机H传输到一或多个节点N以动态地(即,当在目标节点处的MCU2正操作时)更新由其MCU2存储及执行的代码。根据BLE功能4处所实行的协议,此所传输代码呈作为BLE包的有效负载的20字节行的形式以节约能量。根据本发明的实施例,这些小BLE包及对应短代码行足以动态地实施将由传感器及控制器的大的网络执行的广泛功能。当然,可替代地使用其中程序代码行大小相应地变化的其它通信协议。
如此项技术中已知,微控制器(例如C2xxx微控制器)包含能够支持在程序控制下的各种功能的若干个端子(即,引脚)。在这些引脚处执行的特定功能可为可编程为输入或输出或者双向输入/输出端子(例如通信端子(串行或并行))或者一些其它功能的。其它引脚可由微控制器的内部硬件配置为仅输入引脚或仅输出引脚。在任一情形中,在图2的架构的上下文中,由这些引脚执行的功能可通过由MCU2的执行器功能10执行的程序代码来控制。举例来说,程序代码可致使读取输入引脚处的信号、驱动输出引脚处的信号或传递通信引脚处的在任一方向上的信号。当然,经由MCU2的给定引脚执行的特定功能将取决于其节点N内的所述引脚在物理上连接到的特定传感器功能5或控制输出功能6。
根据本发明的实施例,如现在将结合图3及4描述,节点N的MCU2的这些引脚或端子在程序控制下、特别是在由MCU2的执行器功能10执行的对应状态机的控制下执行特定功能。图3中图解说明在通过MCU2的例子的程序控制下的物理引脚集合P的简化实例。在此实例中,MCU2的在程序控制下的物理引脚P从1编号到20;MCU2将通常包含用于接收电力及接地电压的其它物理引脚以及不在程序控制下的其它物理引脚,两者均未展示于图3中。当在节点N内安装时,这些物理引脚P将通常取决于将经由所述引脚执行的所要功能而连接到对应传感器功能5或控制输出功能6。
根据本发明的实施例,在指令循环的上下文中,可对引脚P中的特定引脚执行数学运算及配置。其它引脚可与状态或状态变量相关联。举例来说,一个引脚(例如,引脚0)可映射到指示正执行的当前状态的值,且另一引脚(例如,引脚1)可映射到指示所执行的紧挨着的前一状态的值。
图4图解说明用于可编程地控制MCU2内的引脚P的软件架构。根据本发明的实施例,MCU2根据状态机集合20操作。在此实例中,状态机集合20包含n个状态机,所述状态机各自对应于可由图2的架构中的MCU2的执行器功能10执行的程序代码的功能或线程,借此可控制选定引脚P的状态且因此可控制传感器功能5或控制输出功能6的操作。状态变量22指存储器资源12的在其处可由集合20中的状态机设定、存储及读取各个值的一部分。这些状态变量22中的一些状态变量可映射到特定引脚P,且经映射状态变量22对应于全局值(例如,对应于当前状态的变量(即,引脚0处的值))。根据本发明的实施例,状态变量22在以下意义上为共享的:状态机20中的任一者可使用状态变量22的任何组合(包含感测或输出到除其自身的引脚P之外的引脚P的值)执行其引脚P处所反映的其自身的操作。下文将通过数个实例进一步详细地描述状态机20连同引脚P及状态变量22一起操作的方式。
MCU2还可支持一或多个“虚拟引脚”VP。在其中物理引脚P编号高达引脚20的图3中所展示的实例中,六个虚拟引脚VP编号为21到26。虚拟引脚VP在以下意义上为“虚拟”的:其不对应于MCU2自身处的物理引脚,但替代地对应于另一节点N(特别是含有MCU2的节点与其直接通信的节点)处的MCU2或其它微控制器装置处的物理引脚。由这些虚拟引脚VP处的MCU2读取或输出的值在状态变量集合22内,且因此可由MCU2内的状态机20中的任一者使用来执行其自身操作。以此方式,举例来说,MCU2可在控制其自身引脚P的操作中使用在网络内的其它节点N处感测的条件。
根据本发明的实施例,针对由状态机20结合引脚P集合执行的程序代码提供“经减少”指令集。此经减少指令集确保可使MCU2的解译器8保持相对简单且高效,且促进传递(举例来说)在BLE通信的20字节应用有效负载内的小包中的程序代码。经减少指令集的且针对图2到4的架构执行的实例如下(以[instruction][operand]的格式呈现):
?[pin]:返回指派给[pin]的功能的定义的查询
IFG/L/E/N/A/O[pin][value]:具有大于、小于、等于、非、“与”、“或”的选项中的一者的“if”语句(可后续接着条件PUT语句)
ENDIF:如果满足IF条件,那么结束所执行的代码
GET[pin]:对[pin]处的值进行取样的查询(后续接着(无符号)整数值的可选修改符(例如“+”、“-”、“×”、“/”)将在发送之前对[pin]处的经取样值执行所述算数运算;[pin]处的值将保持相同)
PUT[pin][value]:将特定[value]指派给[pin](可重复成对自变量[pin][value])(后续接着(无符号)整数值的可选修改符(例如“+”、“-”、“×”、“/”)将修改当前在[pin]处的值)
SLEEP[pin][value]:实行对指派给[pin]的状态机的等待达由[value]指示的时间
MOV[pin1][pin2]:作为指令,将[pin1]处的当前值放置于[pin2]处;作为命令,给[pin2]配置[pin1]的当前功能
MAC[pin]:将[pin]处的当前值乘以乘数(默认值1),将乘积相加到指派给MAC功能的在引脚处的当前值
WRITE:将状态变量值存储到非易失性存储器中
或者,可视需要在指令集中包含其它指令(包含算数及逻辑指令)。然而,预期指令集的最小化将通过限制所需操作码位的数目而促进小包大小通信(例如,仅三个操作码位对于将七个的指令集大小编码为必要的)。在本发明的实施例中,MCU2一次执行一个状态机20。如上文所述,引脚0经指派以指示当前状态机,且引脚1经指派以指示先前状态机。其它经解译指令控制当前状态的操作模式:
DO:将MCU2置于执行模式中以执行当前状态(在引脚0处)
READ:将MCU2置于用于接收新程序指令的模式中
LEARN:将MCU2置于自适应模式中以学习从另一节点(例如,主机)发布的程序指令
当然,本发明的实施方案中所使用的特定命令、指令及指令集可从上文所列示的仅打算作为说明性实例的那些命令、指令及指令集显著变化。参考上文所描述的指令及命令,现在将参考图5a到5e描述节点N在这些操作模式中的操作。
图5a图解说明图1及2的网络中的节点N1在其执行或“DO”操作模式中的操作的实例。根据本发明的此实施例,过程30设定状态机20中的将在此模式中执行的当前状态机。举例来说,过程30可通过解译器8从主机H或从另一节点N接收指示当前状态的命令而由MCU2执行:
PUT05
在此实例中,此PUT指令将状态0的此当前值设定为“5”以选择状态机5作为将执行的当前状态。在过程32中,解译器8接收DO命令以开始执行此当前状态,且执行器功能10起始并继续执行状态机5。此状态机包含对应于MCU2的指令集中的一指令序列的程序代码。针对上文所描述的指令集的实例,这些指令可包含通过PUT指令的引脚P(举例来说,与控制输出功能6相关联的那些引脚)处的信号值的设定,通过GET指令的引脚P(举例来说,与传感器功能5相关联的那些引脚)处的信号值的获得及由指令集指示的其它操作。在本发明的一些实施例中,这些指令可经由图2的架构中的BLE功能4相对于虚拟引脚VP执行指令,借此PUT、GET、MOV及MAC指令涉及网络中的其它节点N上的引脚。以此方式,节点N1可从在物理上位于其它节点处的传感器功能5获得信号值,且可控制并操作在物理上位于其它节点处的控制输出功能6。
在过程34中,在于过程32中执行当前状态机期间,节点N1接收由网络中的其它节点N中的一者(其在此实例中为节点N2)发布的命令。此命令通过BLE功能4经由所实施的通信网络(举例来说,无线地)传递。在过程36中,由节点N1中的MCU2的解译器8解译且由执行器功能10执行由节点N2发布到节点N1的命令。在执行此命令之后,由于节点N1处于其DO操作模式中,因此在过程38中,节点N1重新开始执行其当前状态机(即,在其引脚0处的状态)。
预期MCU2可经构造且经配置以在处于其DO模式中时(举例来说)通过多线程架构执行其状态机20中的多个状态机。如果如此,那么预期MCU2将包含用于以所要次序或时间顺序执行那些线程的适当调度电路及功能性。
根据本发明的实施例,主机H及与节点N1通信的其它节点N能够将节点N1动态地编程,以及更新已安装并在节点N1处执行的程序代码。此编程的程度可介于从仅(举例来说)通过改变IF指令的比较极限而更新状态机20中的一者中的一行程序代码到将先前不存在于目标节点N1处的状态机的整个代码编程的范围内。主机H及每一节点N在安装并操作传感器及控制器的网络之后以动态方式更新联网系统中的其它节点N并将其编程的能力提供由所述系统执行的功能中的大量灵活性,包含所述系统对改变的环境及其它条件做出响应的功能性的能力。
图5b图解说明图1及2的网络中的节点N1在其编程或“READ”操作模式中的操作的实例。在过程40中,节点N1的编程以编程节点(主机H或系统中的其它节点N中的一者)将目标节点N1置于READ操作模式中开始。在此实例中,此通过编程节点将READ命令传递到节点N1来实现。在过程42中,节点N1的MCU2中的解译器8解译READ命令,且致使执行器功能10停止执行由引脚0指示的当前状态机。READ操作模式接着适当地在节点N1处进行。
在过程44中,编程节点接着向节点N1传递将变成存储于节点N1中的MCU2处的存储器资源12的程序存储器中的代码的一部分的一指令序列。在此READ模式中,这些所接收指令并不像在处于DO模式中时的所接收命令的情形中一样在接收后即刻由节点N1处的MCU2执行。而是,解译器8操作以仅在检测到DO命令或用于现有READ模式的其它命令的程度上解译指令,且执行器功能10将在恰当序列中的传入指令存储于存储器资源12的可检索位置处。在决策45中,解译器8确定传入指令是否为DO命令(或其它退出命令)。如果此指令并非DO(或其它退出)命令(决策45为“否”),那么在过程46中,节点N1保持于READ操作模式中,且将所接收指令存储于存储器资源12的适当位置处。过程接着继续,其中在过程44中,从编程节点发布下一指令并进行接收。在发送将编程的序列中的最后指令之后,编程节点将在过程44中发布DO命令。在由解译器8解译此DO命令(决策45为“是”)后,在过程48中,节点N1即刻退出READ模式且重新进入DO操作模式,从而重新开始执行状态0中所指示的当前状态机。
根据本发明的实施例,用于通过READ模式将目标节点N1编程的命令及指令序列的实例如下。对命令或指令的注解紧接在每一指令行中的“//”指示符之后。在此实例中,首先由主机H在处于DO操作模式中时通过以下命令查询并配置目标节点N1:
?6//查询引脚6的当前功能
ANALOG INPUT//来自目标节点N1的指示引脚6为模拟信号输入的响应
?7//查询引脚7的当前功能
ANALOG INPUT//指示引脚5为模拟信号输入的响应
?15//查询引脚15的当前功能
PULSED OUTPUT
?21//查询(虚拟)引脚21的当前功能
MAC//在虚拟引脚21处执行相乘与累加函数
在此实例中,引脚6、7及15将被设定为用于来自加速器的传入信号的“x”、“y”及“z”通道。因此,有必要将引脚15配置为也充当模拟输入,此通过另一命令实现:
MOV615//将引脚15的功能设定为与引脚6的功能相同
在通过命令的此配置及验证之后,接下来将目标节点N1置于READ模式中以接收由另一节点传递到其的用于其状态机5的程序代码,在此情形中主机H:
PUT05//将当前状态设定为状态5
READ//进入READ模式以接收用于状态5的程序代码
PUT6-512//通过从其当前值减去512的DC偏置而修改引脚6处的经取样值
PUT7-512//通过减去512的DC偏置而修改引脚7处的经取样值
PUT15-512//通过减去512的DC偏置而修改引脚15处的经取样值
MAC6//将引脚6处的经计算值乘以默认乘数(=1)且相加到MAC引脚21处的当前值
MAC7//将引脚7处的经计算值乘以默认乘数(=1)且相加到MAC引脚21处的当前值
MAC15//将引脚15处的经计算值乘以默认乘数(=1)且相加到MAC引脚21处的当前值
IFG21200//如果引脚21处的MAC指令的结果超过200,那么执行循环内的语句
WRITE//将所有模拟值存储于存储器资源21中(在满足IFG条件的情况下)
ENDIF
DO//退出READ模式进入到DO模式中,且执行状态5(即,新编程的代码)
在每一次执行此新编程的状态机后,即刻修改引脚6、7、15处的模拟值(即,减去对应GET指令中所指示的值)且进行累加,其中对照极限测试结果。在此实例中,以特定周期性执行模拟数据采集,但不更新通过PUT指令修改的引脚值直到当前状态机完成执行循环(以允许在代码循环中使用经修改值)为止。可通过使用WRITE命令实施较高频率数据捕获,WRITE命令对所有模拟值进行取样且将数据存储于存储器资源12的缓冲器中以供本地或远程处理;可使用双缓冲来允许连续捕获及处理。
根据本发明的实施例,节点N的“布线”包含使用承载新上下文含义的虚拟引脚,此取决于那些虚拟引脚的特定指派。举例而言:
?24//查询虚拟引脚24的当前功能
SWARM
在本发明的此实施例中,“SWARM”指派对应于构成“群体”的节点N的列表。群体中的节点可使用此虚拟引脚24来向群体中的其它节点中的每一者发布命令。举例而言:
PUT24ECFE1104A3//将具有特定MAC地址的节点添加到经连接节点的群体
现在由节点中的一者(例如,节点N1)对其具有SWARM功能的虚拟引脚24执行的指令将在群体中的节点N中的每一者处具有影响。举例来说,如果节点N1执行指令:
GET2
那么为了获得其自身物理引脚2处的值,节点N1可通过引脚2处的值到其(虚拟)引脚24的MOV将所述值传递到群体中的节点N中的每一者。针对其中在此GET指令时引脚2处的值为50的情形,节点N1接着执行以下指令:
MOV2 24//将引脚2处的值移动到SWARM引脚24
此由于SWARM功能而致使群体中的节点N中的每一者处的以下指令指派到引脚24:
PUT2 50//50为节点N1的引脚2处的值
群体中的节点N可因此对节点N1的引脚2处的条件做出响应,从而有效地“以群形式移动”到由节点N1感测的条件。
可以类似方式实现其它功能(例如寄存器指令)。举例来说,预期具有寄存器的外部电路可(举例来说)通过串行外围接口(SPI)硬件连接到节点N1。以与上文结合SWARM所描述类似的方式,所述连接可与虚拟引脚相关联。节点N1可通过从其物理引脚到虚拟引脚的值的MOV指令以与上文所描述类似的方式将其物理引脚中的一者的状态传递到在物理上连接的电路的寄存器;相反地,寄存器的内容可由节点N1通过执行从其虚拟引脚到其物理引脚的值的MOV指令而读取。
如上文所提及,READ模式可简单地用于替换一或多行代码。下文是用于替换此行代码的指令序列的实例。为了实现此代码替换,可传输“索引”值作为设定在READ命令之前的当前状态的PUT指令的一部分。此实例替换先前实例中的第二行程序代码:
PUT0512//将当前状态设定为状态5,且将行索引(即,存储为此状态机的参数#1的程序计数器)设定为2
READ
IFG5 5000//将IFG指令的极限从5000改变到3000
DO//退出READ模式进入DO模式,且执行当前状态(状态5)
因此,通过READ指令容易地改变状态5的程序代码。
根据本发明的一些实施例,图1及2的联网系统中的每一节点N的程序代码还可安装或更改于在本说明书中称为“LEARN”模式的另一编程代码中。在此LEARN模式中,被编程的目标节点N不仅直接读取从联网系统中的另一节点传输的指令,而且还执行那些指令,且响应于经感测条件的改变而推断时间信息及条件行为。在完成LEARN模式后,目标节点N即刻在处于用户控制下时(或在一些情形中,在网络中的另一节点在用户控制下时)以基于其所观察行为的方式编程,且如此能够模拟用户在未来发生类似条件的情况下的响应。此能力使得传感器及控制器的网络能够以近似于“人工智能”的方式调适其操作,因此显著增强网络的能力。
图5c及5d是根据本发明的实施例的目标节点N1在LEARN操作模式中的操作的实例的流程图。在此实例中,在过程50(图5c)中,主机H向目标节点N1发布LEARN命令,从而起始此模式。目标节点N1可在先前已处于其已借此接收指令并将指令存储于其程序存储器中的READ模式中;经由LEARN模式(如下文所描述)存储的指令将附加到那些最近存储的指令。以此方式,举例来说,编程节点可定义将经由LEARN模式编程的状态机的初始化。目标节点N1可在其接收到LEARN命令时已替代地处于DO操作模式中。在任一情形中,预期目标节点N1处的当前状态(即,将通过LEARN模式的此例子编程的状态机)对应于目标节点N1的当前状态。在于过程50中调用LEARN模式之后,编程节点(在此实例中,主机H)在过程52中向目标节点N1发布指令。目标节点N1从主机H接收此指令,且在过程54中执行所述指令。
根据本发明的此实施例,在于过程54中执行指令与执行从主机H接收的下一指令之间逝去的时间由目标节点N1在其将存储的程序代码中考虑。相继指令的执行之间的此时间关系经常在传感器节点的操作中为重要的,这是因为其指示监视特定条件的频率。如此,目标节点N1在其于过程54中执行所接收指令之后在过程56中启动内部计时器(例如,计数器电路)。在过程58中,目标节点N1经由通信网络从主机H接收下一指令的指令代码且执行所述指令。在过程60中,目标节点N1读取其内部计时器的当前时间值且重新启动计时器以开始测量从此下一指令逝去的时间。
在过程62中,针对当前状态机,目标节点N1将用于所接收及所执行指令中的一或多者的程序代码存储于其存储器资源12中。图5d更详细地图解说明根据本发明的实施例的由目标节点N1执行过程62的方式。在于过程58中接收到并执行下一指令后,目标节点N1处的MCU2的执行器功能10即刻执行决策65以确定前一指令(即,在过程54中执行的指令)是否为GET指令及下一指令(即,在过程58中执行的指令)是否为关于由目标节点N1所做出的行动的特定类型的指令(例如,PUT或MOV指令)。如果未接收到且未执行此指令组合(决策65为“否”),那么在目标节点N1处执行过程66以将对应于前一指令的程序代码作为程序代码(与在过程60中读取的计时器值作为SLEEP指令的操作数组合)存储于其存储器资源12中,如上文所描述。所存储程序代码可不必要地恰好为所接收及所执行的指令,但将基于所述指令及目标节点N1可用的适当推断。目标节点N1接着在决策63中确定编程节点(主机H)是否接下来发布DO命令。如果否(决策63为“否”),那么目标节点N1从其在过程58中接收并执行下一指令开始重复操作。
另一方面,在此实例中,如果前一指令为后续接着PUT或MOV指令的GET指令(决策65为“是”),那么执行器功能10确定在由目标节点N1在过程54中执行的GET指令所指示的引脚处读取的数据值是否从先前值改变大于某一公差极限。在此方面,预期目标节点N1已接收所述引脚的先前值(例如,初始化值),或目标节点N1已自身执行所指示引脚的前一GET指令且收集一或多个先前值。预期公差极限存储于由主机H初始化(例如,在调用LEARN模式的此例子之前的READ模式编程期间)的配置寄存器中,或以其它方式在目标节点N1处设定。如果新观察的值在其先前值的公差极限内(决策67为“否”),那么将包含对应计时器值作为将在过程66中存储的SLEEP指令的操作数,如上文所描述。但如果通过由所观察节点N执行的GET指令获得的最近值已改变多于公差极限(决策67为“是”),那么目标节点N1将推断在过程58中执行的指令(即,PUT或MOV指令)是对由在GET指令中指示的引脚监视的条件的显著改变的响应。在过程68中,通过其对应于经执行GET指令的条件指令(例如,IF指令)的存储而将此推断插入到在此LEARN模式中存储于目标节点N1处的程序代码中,如存储器资源12中的程序代码。举例来说,根据上文在本发明的此实施例中所描述的指令集,过程68将存储IF指令以对照对应于公差极限ε的阈值极限测试在前一GET指令(IF指令包含隐含式GET)中指示的引脚处的值。可由目标节点N1从最近观察的值推断出阈值极限。举例来说,可将阈值极限设定于在前一GET指令(过程54)中获得的值与在下一GET指令(过程58)中获得的值之间的中点值处。在所存储程序代码中的条件(例如,IF)指令之后,目标节点N1存储对应于在GET指令之后的所测量逝去时间的SLEEP指令,所述SLEEP指令后续接着在GET指令之后在过程58中执行的PUT或MOV指令,所述PUT或MOV指令又后续接着ENDIF或条件程序代码的其它终止符。控制接着回到决策63,其中目标节点N1确定编程节点(主机H)是否接下来发布DO命令。如果否(决策63为“否”),那么以从主机H接收并执行下一指令而重复过程。
往回参考图5c,在目标节点N1从主机H接收到DO命令或其它命令以退出LEARN模式(决策63为“是”)后,目标节点N1即刻在过程64中退出LEARN模式且进入执行操作模式。目标节点N1处的当前状态(即,通过LEARN模式的此例子编程的状态机)接着开始以上文相对于图5a所描述的方式执行。
在上文描述中,将目标节点N1描述为在接收到指令时存储指令。或者,预期目标节点N1可经实施使得其等待以借助适当推断产生并存储程序指令直到在接收到DO命令后即刻退出LEARN模式为止。
由目标节点N1响应于由主机H转发到其的指令而在LEARN模式中存储的程序代码的实例将为指令性的。在此实例中,针对其中经监视引脚处的条件显著改变的实例,主机H向目标节点N1发布由等待时间分离的以下命令及指令集:
LEARN
GET6//节点N1从引脚6返回模拟输入值100
(主机H在发布下一指令之前等待两秒)
GET6//此时,节点N1从引脚6返回模拟输入值200
(主机H在发布下一指令之前等待一秒)
PUT2 100//将引脚2设定为值100
DO
在此实例中,目标节点N1将已在接收到后即刻执行GET指令及PUT指令中的每一者从而获得上文所指示的值,且将已测量在那些GET指令中的每一者之后的时间流逝。由于相对于第一GET指令的在第二GET指令中的从引脚6获得的值的显著改变,根据本发明的此实施例,目标节点N1推断较短等待周期及PUT指令是对引脚6处的值的显著增加的响应。因此,在此实例中,在上文在图5c及5d中所描述的过程之后,目标节点N1存储与其当前状态机相关联的以下程序代码:
SLEEP100//对应于两秒等待时间
IFG6 150//阈值极限150为在LEARN操作期间接收的值100与200的中点
SLEEP100//对应于一秒等待时间
PUT2 100//响应于引脚6值超过阈值极限150而将引脚2设定为值100
ENDIF
在DO执行模式中,此代码为对照阈值极限150每两秒测试引脚6处的值直到所述值超过所述极限为止,此后引脚2将在一秒延迟之后被设定为值100的循环。在任一情形中,将继续执行循环直到目标节点N1退出此状态机为止。如从此实例显而易见,由在LEARN模式中的主机H向目标节点N1发布的第一GET指令并非自身存储于最终程序代码中;而是替代地所述GET包含于最终存储的代码循环内。
或者,预期节点N可基于其在不同于自身的其它节点处发生的操作且从主机H或编程节点接受指令代码。举例来说,主机H可以基于在不同节点N2(即,“所观察”节点)处执行的指令将状态机编程的方式在目标节点N1处调用LEARN模式。
根据本发明的此实施例,由联网系统中的节点执行的LEARN操作模式使得各种节点能够响应于网络中的远程位置处的经感测条件而自主地调适其操作。事实上,网络节点可在先前未编程为“成群移动”以对经监视环境中的当前条件做出响应的情况下以所述方式做出响应。实际上,节点将对经感测条件做出响应的特定方式可在安装时为未知的,但根据本发明的此实施例,可稍后在所述节点处适应地且动态地更新所述响应方法。
根据本发明的实施例,联网系统中的节点可包含在处于DO操作模式中时执行“状态反映”的能力。此“状态反映”功能允许网络中的节点响应于其无法自身感测的条件(举例来说,预计到可能在其经监视位置处很快发生的条件改变)而采取行动。此方法类似地允许网络传感器及控制器节点响应于条件改变而“成群移动”其操作。图5e图解说明根据本发明的此实施例的图1及2的网络中的节点N在执行“状态反映”时的行为的实例。
在过程70中,网络中的所有相关节点N均处于其DO操作状态中,从而各自执行其相应当前状态(所述状态中的一些或所有状态可能为跨越节点N相同的状态)。“状态反映”功能以过程72起始,其中节点中的一者(即节点Nx)感测其当前监视的条件的显著改变。预期节点Nx可以任何常规方式(举例来说,基于与在节点Nx的同一引脚处感测的先前数据值相比从当前值的改变)或静态地或者以某一其它方式确定此显著改变。响应于在过程72中检测的此条件改变,在过程74中,节点Nx转变到其状态机20中的另一者。且在过程76中,节点Nx向网络中的其它节点N及其已在过程74中转变到的状态机通知其状态转变。节点Nx将其转变传递到的特定“相邻”节点可变化。举例来说,节点Nx可将改变传递到网络中的所有节点N,或替代地传递到节点N的子集(例如在物理上最接近节点Nx的那些节点)。取决于网络的所要功能,可或可不通知主机H。
接着,在从节点Nx接收其状态转变的通知的相邻节点N中的每一者处执行决策77。根据本发明的此实施例,给节点N处的状态机20中的每一者指派一“能量”值。每一节点N维持表格或其它存储器数据,借此其可将其状态的能量级进行比较。
在本发明的此实施例中,这些能量值可对应于代表节点N的活动或感知等级。举例来说,预期许多现代传感器及控制器网络将由电池供电式网络节点组成,针对电池供电式网络节点,节点处的电力消耗的最小化具有显著重要性。在所述情形中,包含运动检测状态机(及对应运动传感器)的节点N的低能量(即,较低电力消耗)状态可为其中未检测到运动的状态,而较高能量(即,较高电力消耗)状态可对应于其中经由适当相机或热成像传感器获得节点N附近的视觉图像或热图像的状态。在此实例中,从运动检测状态到图像捕获状态的转变可在节点处的运动传感器检测到其附近的运动(运动检测状态机从所述运动得出有一人在节点N附近(“人在房间中”)且其节点N转变到图像捕获状态机的结论)后即刻发生。
决策77因此确定节点Nx转变到的状态是否为比其先前状态高的能量状态。如果否(决策77为“否”),那么相邻节点N保持于其当前状态中,从而监视在其相应附近的条件。如果节点Nx处的传递到其相邻节点N的新状态具有比先前状态高的能量(决策77为“是”),那么在过程78中,相邻节点N通过执行到此相同较高能量状态机的状态转变而采取行动。针对其中节点Nx转变到其附近的捕获图像的上文所给出的实例,相邻节点N将在过程78中转变到所述相同图像捕获状态,且将开始执行对应状态机。在此新状态中,将重复监视过程70以便检测感测当前监视的条件(在此新状态中)的显著改变且做出到另一较高能量状态的转变(过程72、74)的节点中的一者。
并且,根据本发明的此实施例,在过程80中,原始节点Nx可感测导致先前状态转变的条件已在此节点Nx做出返回到先前较低能量状态的状态转变程度上解决。针对上文实例,节点Nx可从其经捕获热图像确定在其附近已没有人达某一时间,响应于此,其转变回到其运动检测状态机。在过程82中,节点Nx向相邻节点N通知其到较低能量状态的状态转变。且在过程84中,这些相邻节点N接着做出到具有较低能量值的状态机的状态转变。此较低能量状态机可为与现在于节点Nx处执行的状态相同的状态,或可为另一较低能量状态(例如,相邻节点先前在其下操作的状态)。接着,像之前一样再次在网络中的节点N中的每一者处执行监视过程70以检测节点N中的任一者处从此较低能量状态的转变。
在各种各样的应用中,本发明的实施例提供在联网系统高效地且适应地执行感测及控制的能力上的许多重要优点。一个重要优点为主机计算机安装并更新联网系统的节点中的一个节点、一些节点或所有节点中的操作程序代码的能力,包含在系统的操作期间动态地更新或改变程序代码的能力。尤其是在具有数百个节点的复杂联网传感器与控制系统中,将网络节点编程的此容易性及高效性大大地减少了安装成本及拥有成本。
本发明的实施例的另一优点为网络节点特别是通过允许一个节点更新或安装网络中的其它节点中的程序代码而在其中调适程序代码的能力。根据本发明的实施例,此能力通过具有其中网络节点处的操作行为(举例来说,可由主机系统处的用户控制)作为程序代码存储于节点中的“学习”模式的网络节点增强。将从一个节点“反映”到其它相邻节点的状态转变的其它能力提供网络的功能性的实时适应性,包含对改变的条件迅速做出响应的提高的能力。
还预期根据本发明的实施例的联网系统的其它优点。一个此类优点的实例可通过使得主机计算机能够作为节点以允许网络中的其它节点更新主机计算机自身的程序代码-从而有效地执行主机计算机功能性的“接管”的方式操作而实现。已参考本说明书的所属领域的技术人员将明了这些及其它优点。
尽管已根据本发明的实施例描述了本发明,但当然,预期已参考本说明书及其图式的所属领域的技术人员将明了对这些实施例的修改及替代,此些修改及替代获得本发明的优点及益处。预期此些修改及替代在如本文中先前所主张的本发明的范围内。
Claims (18)
1.一种可编程系统节点,其包括:
(a)物理环境引脚,其用于传感器输入引脚和控制输出引脚中的至少一者;
(b)网络节点通信引脚,其与所述物理环境引脚分离;
(c)嵌入式微控制器单元,其包含:
(i)存储器电路,其用于存储程序代码、数据和状态变量;
(ii)解译器逻辑电路,其耦合至所述通信引脚且经编程以将所述通信引脚上接收的命令和指令解译成机器语言可执行的程序代码和内部控制信号;
(iii)状态机,每一状态机包含与一组指令中的一个指令序列对应的程序代码,所述状态机耦合至所述物理环境引脚和所述存储器电路的所述状态变量,且每一状态机是单独可选择的;及
(iv)执行器逻辑电路,其耦合至所述解译器逻辑电路且耦合至所述状态机以选择状态机来执行来自所述解译器逻辑电路的所解译的命令和指令,所述执行器逻辑电路初始化并持续所选择的状态机的执行,其中所述执行器逻辑电路接收PUT命令,所述PUT命令选择用于执行的所述所选择的状态机且在与该特定状态机相关联的引脚处设置信号值。
2.根据权利要求1所述的节点,其中所述状态机中的一者连接至所述传感器输入引脚。
3.根据权利要求1所述的节点,其中所述状态机中的一者连接至所述控制输出引脚。
4.根据权利要求1所述的节点,其中所接收的指令指示所述状态机中的一者和所指示的状态机的状态中的一者。
5.根据权利要求1所述的节点,其中所接收的指令指示所述状态机中的一者和所指示的状态机的状态中的一者,所述所指示的状态机和所指示的状态用于接收来自所述传感器输入引脚的传感器值以及操作所述控制输出引脚上的控制功能中的至少一者。
6.根据权利要求1所述的节点,其中所述执行器逻辑电路在一个模式中初始化并持续所选择的状态机中的多个的执行。
7.一种可编程系统节点,其包括:
(a)物理环境引脚,其用于传感器输入引脚和控制输出引脚中的至少一者;
(b)网络节点通信引脚,其与所述物理环境引脚分离;
(c)嵌入式微控制器单元,其包含:
(i)存储器电路,其用于存储程序代码、数据和状态变量;
(ii)解译器逻辑电路,其耦合至所述通信引脚且经编程以将所述通信引脚上接收的命令和指令解译成机器语言可执行的程序代码和内部控制信号;
(iii)状态机,每一状态机包含与一组指令中的一个指令序列对应的程序代码,所述状态机耦合至所述物理环境引脚和所述存储器电路的所述状态变量,且每一状态机是单独可选择的;及
(iv)执行器逻辑电路,其耦合至所述解译器逻辑电路且耦合至所述状态机以选择状态机来执行来自所述解译器逻辑电路的所解译的命令和指令,所述执行器逻辑电路初始化并持续所选择的状态机的执行,其中所述执行器逻辑电路接收GET命令,所述GET命令选择用于执行的所述所选择的状态机且在与该特定状态机相关联的引脚处设置信号值。
8.根据权利要求7所述的节点,其中所述状态机中的一者连接至传感器输入引脚。
9.根据权利要求7所述的节点,其中所述状态机中的一者连接至控制输出引脚。
10.根据权利要求7所述的节点,其中所接收的指令指示所述状态机中的一者和该状态机的状态中的一者。
11.根据权利要求7所述的节点,其中所接收的指令指示所述状态机中的一者和该状态机的状态中的一者,该状态机和该状态机的所指示的状态用于接收来自传感器输入引脚的传感器值以及操作控制输出引脚上的控制功能中的至少一者。
12.根据权利要求7所述的节点,其中所述执行器逻辑电路在一个模式中初始化并持续所选择的状态机中的多个的执行。
13.一种可编程系统节点,其包括:
(a)物理环境引脚,其用于传感器输入引脚和控制输出引脚中的至少一者;
(b)网络节点通信引脚,其与所述物理环境引脚分离;
(c)嵌入式微控制器单元,其包含:
(i)存储器电路,其用于存储程序代码、数据和状态变量;
(ii)解译器逻辑电路,其耦合至所述通信引脚且经编程以将所述通信引脚上接收的命令和指令解译成机器语言可执行的程序代码和内部控制信号;
(iii)状态机,每一状态机包含与一组指令中的一个指令序列对应的程序代码,所述状态机耦合至所述物理环境引脚和所述存储器电路的所述状态变量,且每一状态机是单独可选择的;及
(iv)执行器逻辑电路,其耦合至所述解译器逻辑电路且耦合至所述状态机以选择状态机来执行来自所述解译器逻辑电路的所解译的命令和指令,所述执行器逻辑电路初始化并持续所选择的状态机的执行,其中所述执行器逻辑电路接收READ命令,所述READ命令选择用于执行的所述所选择的状态机且在与该特定状态机相关联的引脚处设置信号值。
14.根据权利要求13所述的节点,其中所述状态机中的一者连接至传感器输入引脚。
15.根据权利要求13所述的节点,其中所述状态机中的一者连接至控制输出引脚。
16.根据权利要求13所述的节点,其中所接收的指令指示所述状态机中的一者和该状态机的状态中的一者。
17.根据权利要求13所述的节点,其中所接收的指令指示所述状态机中的一者和该状态机的状态中的一者,该状态机和该状态机的所指示的状态用于接收来自传感器输入引脚的传感器值以及操作控制输出引脚上的控制功能中的至少一者。
18.根据权利要求13所述的节点,其中所述执行器逻辑电路在一个模式中初始化并持续所选择的状态机中的多个的执行。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/015,849 | 2013-08-30 | ||
US14/015,849 US9742847B2 (en) | 2013-08-30 | 2013-08-30 | Network node physical/communication pins, state machines, interpreter and executor circuitry |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104423970A CN104423970A (zh) | 2015-03-18 |
CN104423970B true CN104423970B (zh) | 2019-05-07 |
Family
ID=52584827
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410437567.5A Active CN104423970B (zh) | 2013-08-30 | 2014-08-29 | 联网传感器及微控制器的动态编程及控制 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9742847B2 (zh) |
CN (1) | CN104423970B (zh) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2546038B (en) * | 2014-11-28 | 2021-06-09 | Mitsubishi Electric Corp | Communication device, communication adaptor, communication system, communication parameter response method, and program |
US10116519B2 (en) * | 2015-03-27 | 2018-10-30 | Yodiwo Ab | Programmable distributed management system of interconnected things and applications |
US10419540B2 (en) * | 2015-10-05 | 2019-09-17 | Microsoft Technology Licensing, Llc | Architecture for internet of things |
CN106936739B (zh) * | 2015-12-30 | 2020-02-11 | 新华三技术有限公司 | 一种报文转发方法及装置 |
BE1023348B1 (nl) * | 2016-01-14 | 2017-02-10 | FixSus BVBA | Een verbeterd gebouwbeheersysteem en werkwijze voor het opereren daarvan |
US20190174207A1 (en) * | 2016-05-09 | 2019-06-06 | StrongForce IoT Portfolio 2016, LLC | Methods and systems for the industrial internet of things |
US11112784B2 (en) | 2016-05-09 | 2021-09-07 | Strong Force Iot Portfolio 2016, Llc | Methods and systems for communications in an industrial internet of things data collection environment with large data sets |
US11327475B2 (en) | 2016-05-09 | 2022-05-10 | Strong Force Iot Portfolio 2016, Llc | Methods and systems for intelligent collection and analysis of vehicle data |
US11774944B2 (en) | 2016-05-09 | 2023-10-03 | Strong Force Iot Portfolio 2016, Llc | Methods and systems for the industrial internet of things |
US10983507B2 (en) | 2016-05-09 | 2021-04-20 | Strong Force Iot Portfolio 2016, Llc | Method for data collection and frequency analysis with self-organization functionality |
US11237546B2 (en) | 2016-06-15 | 2022-02-01 | Strong Force loT Portfolio 2016, LLC | Method and system of modifying a data collection trajectory for vehicles |
US11442445B2 (en) | 2017-08-02 | 2022-09-13 | Strong Force Iot Portfolio 2016, Llc | Data collection systems and methods with alternate routing of input channels |
CN209085657U (zh) | 2017-08-02 | 2019-07-09 | 强力物联网投资组合2016有限公司 | 用于与化工生产工艺有关的或工业环境的数据收集系统 |
CN108391261B (zh) * | 2018-02-28 | 2021-11-23 | 惠州Tcl移动通信有限公司 | 一种蓝牙搜索检测方法、检测设备、存储介质及移动终端 |
CN110597537B (zh) * | 2019-08-29 | 2022-12-13 | 桂林理工大学南宁分校 | 一种物联网节点安全更新升级方法 |
CN110996286A (zh) * | 2019-11-28 | 2020-04-10 | 的卢技术有限公司 | 一种基于无线传感器的车辆控制方法和系统 |
US12039539B2 (en) * | 2020-07-16 | 2024-07-16 | Mastercard International Incorporated | System, method, and device for detecting that a user is intoxicated when processing payment card transactions |
CN112153656B (zh) * | 2020-09-25 | 2024-05-14 | 北京百瑞互联技术股份有限公司 | 一种公开蓝牙mesh网络组网的方法、系统和网络 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6928505B1 (en) * | 1998-11-12 | 2005-08-09 | Edwin E. Klingman | USB device controller |
CN102034342A (zh) * | 2009-09-25 | 2011-04-27 | 英特尔公司 | 智能传感器的方法和装置 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5412260A (en) * | 1991-05-03 | 1995-05-02 | Lattice Semiconductor Corporation | Multiplexed control pins for in-system programming and boundary scan state machines in a high density programmable logic device |
US5317757A (en) * | 1992-02-06 | 1994-05-31 | International Business Machines Corporation | System and method for finite state machine processing using action vectors |
US5903566A (en) * | 1994-06-24 | 1999-05-11 | Metricom, Inc. | Method for distributing program code to intelligent nodes in a wireless mesh data communication network |
US5539739A (en) * | 1994-09-29 | 1996-07-23 | Intel Corporation | Asynchronous interface between parallel processor nodes |
US7904569B1 (en) * | 1999-10-06 | 2011-03-08 | Gelvin David C | Method for remote access of vehicle components |
US7208916B1 (en) * | 2001-02-16 | 2007-04-24 | Intermec Ip Corp. | Battery system including two temperature sensors |
US7424632B2 (en) * | 2004-02-13 | 2008-09-09 | Microsoft Corporation | Systems and methods that facilitate state machine power and wake state management |
GB2411495A (en) * | 2004-02-27 | 2005-08-31 | Cyan Holdings Ltd | Method and apparatus for generating configuration data |
EP1617315A1 (en) * | 2004-07-13 | 2006-01-18 | Harman Becker Automotive Systems GmbH | Adaptive time-out system |
US7904604B2 (en) * | 2004-07-19 | 2011-03-08 | Seagate Technology Llc | Expedited and low power command sequence servicing |
US9170901B2 (en) * | 2009-08-18 | 2015-10-27 | Lexmark International, Inc. | System and method for analyzing an electronics device including a logic analyzer |
KR20130091113A (ko) * | 2012-02-07 | 2013-08-16 | 삼성전자주식회사 | 재구성 기반 컴퓨팅 장치의 제1메모리 제어기 및 제2메모리 제어기와, 디버깅용 트레이스 데이터 처리가 가능한 재구성 기반 컴퓨팅 장치 |
-
2013
- 2013-08-30 US US14/015,849 patent/US9742847B2/en active Active
-
2014
- 2014-08-29 CN CN201410437567.5A patent/CN104423970B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6928505B1 (en) * | 1998-11-12 | 2005-08-09 | Edwin E. Klingman | USB device controller |
CN102034342A (zh) * | 2009-09-25 | 2011-04-27 | 英特尔公司 | 智能传感器的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104423970A (zh) | 2015-03-18 |
US9742847B2 (en) | 2017-08-22 |
US20150067119A1 (en) | 2015-03-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104423970B (zh) | 联网传感器及微控制器的动态编程及控制 | |
US20060095893A1 (en) | Embedded systems building blocks | |
EP3086563A1 (en) | Gateway, management center, and remote access system | |
CN203984447U (zh) | 一种用于智能家居无线控制的系统 | |
Di Nisio et al. | Design of a low cost multipurpose wireless sensor network | |
WO2013091442A1 (en) | System and method for efficient service-instance oriented energy management in the internet of things | |
CN106900082A (zh) | 传感器网络节点的数据处理方法及传感器网络节点 | |
JP2009218776A (ja) | センサネットワークシステム | |
CN105610235A (zh) | 控制镜面显示器的方法和用于控制镜面显示器电子装置 | |
US10039000B2 (en) | Host-slave control system and addressing method thereof | |
Sayyah et al. | Virtual platform-based design space exploration of power-efficient distributed embedded applications | |
CN105527848B (zh) | 通信设备及对该通信设备进行控制的方法 | |
CN109739530A (zh) | 一种基于云端重编译的动环监控设备软件升级方法 | |
CN109246788A (zh) | 网络中继的调度 | |
CN109407534B (zh) | 设备控制方法、装置、配置设备及控制装置 | |
JP2010528361A (ja) | 複数の装置を有するネットワーク制御システムのコンパイラ及びコンパイル方法 | |
Miyazaki et al. | On-demand customizable wireless sensor network | |
CN105280438A (zh) | 一种具有定时动作功能的无线智能开关面板及方法 | |
CN114096044A (zh) | 一种基于物联网云平台的节能控制系统 | |
CN202856996U (zh) | 监测大棚环境的ZigBee无线传感网络系统 | |
JP5402085B2 (ja) | 周辺機能制御システムおよび方法 | |
Ilakkiyadeepaa et al. | Wireless Sensor Networks Based Smart Home Control System | |
Bhaskar et al. | Smart home automation system using AVR microcontroller | |
CN215898055U (zh) | 一种智能照明系统 | |
CN217821325U (zh) | 一种边缘使能终端 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |