具有远程程序更新的耗量表的制作方法
【专利摘要】本发明涉及具有被布置在通信网络中的耗量表(2)的系统,其中,所述耗量表的程序数据能够经由所述通信网络被更新。数据收集器(3)被布置用于在所述网络上更新一组耗量表的程序数据。这是通过以下方式来执行的:建立与所述一组耗量表中的每个耗量表的专用更新会话,以及向处于会话的耗量表发送编址的更新程序段。在与给定耗量表的更新会话期间,处于通信范围(8)内的任何其它耗量表如果接收到更新段,那么它将存储该更新段,即使该段是以另一仪表为地址的。在下一仪表的更新会话中,只有尚未从之前会话被存储到另一耗量表的段才被发送到下一仪表。
【专利说明】具有远程程序更新的耗量表
【技术领域】
[0001]本发明涉及一种布置在通信网络中的耗量表系统,并且更具体地,涉及一种能够经由通信网络更新程序数据的耗量表系统。
【背景技术】
[0002]用于测量被供给设施(supplied utility)的消耗量数据的耗量表(例如电量表、区域供热的热量表以及冷水水量表)常常配备有与该仪表远程通信的通信单元以及被布置在通信网络中的能力。支持网络的耗量表极大地便利了数据收集以及通过传输控制命令进行的远程控制和通过软件上载进行的远程更新。
[0003]可以用多种方式来获得耗量表与通信网络中的中央单元之间的远程通信。通常通过广播、多播或单播的标准方式中的一个(单独地或组合地采用)来在网络中发送数据。通常,网络中的接收单元侦听给定信道上的信号,并且在接收到候选信号时解析该信号头部,以进行初始评估以便确定该信号是否是针对该接收单元的。在广播中,信号并不包含预期接收机的特定的地址信息,并且能够读取该信号的任何接收机都能够记录该信号,而在多播中,信号包含用于标识接收机组的地址信息,并且在单播中,信号包含用于标识单个接收机的地址信息。如果接收机接收到包括与其自己的地址不同的地址的信号,那么它将忽视该信号。
[0004]耗量表的网络可能包括大量的个体单元,这是因为一个区域中的每个家庭可能包含向中央单元传回数据的一个或多个仪表,并且在给定的网络中单独地与每个耗量表进行通信通常是一项相当大的通信任务。为了减少向网络中的每个仪表发出信息的总时间,可以使用广播,这是因为广播是向大量接收机发出相同信息的简单方式。然而,随之而来的代价是对传输的有限控制,这是因为广播是单向的通信路径。如果重要的是更紧密地控制传输,那么可以采用双向方式的单播或多播,但是代价是较高的网络负载。
[0005]支持网络的耗量表通常配备有嵌入式微处理器,其包含通常被称为固件的控制软件,并且其能够基于控制软件和其它软件实体执行各种处理任务。有利的是,能够经由网络远程地更新控制软件以及可能的其它软件实体。为了远程更新耗量表的控制软件,需要向网络中的大量仪表发送相对大量的数据。从而在更新过程期间,存在着例如由于传输冲突而引起的数据的一些部分在传输中丢失的风险。关于控制软件上载或者其它核心软件实体的上载,重要的是在每个更新的仪表处接收到全部数据,否则无法与软件的更新版本交换。因此,应当实现能够保证这一点的方法。然而,通常存在的期望是:应当将更新一组耗量表所花费的时间保持得尽可能低。
[0006]Enel Distribuz1ne名下的W02005/015890公开了一种向耗量表远程分发程序数据的系统。在更新过程的第一阶段中,采用单播来向每个仪表单独地发送与为了接收到完整的程序数据集它应当接收哪种数据有关的信息。在第二阶段中,广播程序数据。在第三阶段中,接连地查询每个仪表的接收状态,并且重新广播错过的程序数据分组。继续第三阶段,直到全部仪表报告它们已经接收到完整的程序数据为止。在这种系统中,数据分发器与每个仪表之间的专用会话被建立了多次,每一次之后都跟随着错过的程序数据的广播。
[0007]在Elster Electricity名下的W02008/130991中公开了一种类似的方法。
【发明内容】
[0008]在通信网络中实现耗量表系统将是有利的,在所述耗量表系统中,能够以以下方式来远程地更新各个耗量表的程序数据:所述方式确保对更新过程的控制,并且同时能够限制一大组耗量表的程序数据的总更新时间。
[0009]为了实现这样的系统,在本发明的第一方案中,提供了一种具有多个耗量表和数据收集器的系统,每个耗量表被布置用于测量被供给设施的耗量数据,所述数据收集器用于收集所述耗量数据,所述耗量表和所述数据收集器被布置在通信网络中,每个耗量表包括用于基于程序数据或通过使用程序数据操作该耗量表的处理器;
[0010]其中,所述数据收集器被布置用于通过将更新程序数据作为一系列更新程序段而从分发器单元发送到一组耗量表中的每个耗量表,来在所述网络上更新所述一组耗量表的程序数据;
[0011]其中,所述数据收集器建立与所述一组耗量表中的每个耗量表的专用更新会话,并且其中,以处于会话中的耗量表为地址的段被发送并且可能被重新发送,直到该处于会话中的耗量表确认接收到全部段为止;
[0012]其中,在所述更新会话期间,更新程序段未以其为地址的耗量表在接收到所述段时接受所述段以便存储;
[0013]并且其中,在所述更新会话期间,只有尚未从先前会话被存储到另一耗量表的段才被发送到处于会话的耗量表。
[0014]从而在数据收集器与每个耗量表之间建立专用会话以向每个仪表提供更新程序数据的意义上来讲,提供了基于单播的系统,但是其利用了在单播会话中传输的数据能够被通信范围内的其它耗量表接收并存储的事实。术语程序数据应当被宽泛地理解成包括计算机代码、计算机可读指令以及适合于影响微处理器的操作的其它数据结构。此外,每个耗量表包括处理器的陈述还涵盖以下情形:耗量表包括多于一个的用于操作该耗量表的处理器,并且其中,耗量表的操作被多于一个的处理器共享。根据本发明的实施例,在利用多于一个的处理器的功能实现中,可以更新这些处理器中的一个、一些或者甚至全部的程序数据。
[0015]通过将更新过程基于单播方案,能够获得对更新过程的紧密控制,其中,针对每个仪表只建立一个会话,并且其中,一旦已经完成了会话,就确保处于会话中的仪表已经接收到了与更新程序数据有关的全部数据。
[0016]通过使得“偷听到”更新程序分发器与处于接收更新数据的过程中的另一设备之间的数据通信的非目标耗量表能够存储接收到的数据,在该耗量表处于会话时,不需要再次向其发送已经存储的数据,而是仅仅验证已经存储的数据。从而减少了更新一组耗量表所花费的总时间。
[0017]在本发明的上下文中,“偷听”以及“正在偷听”用于以下过程,在所述过程中,一个耗量表位于去往另一仪表的传输的通信范围内,使得该耗量表能够接收到去往该另一仪表的信号,但是传输是以该另一仪表为地址的。
[0018]数据收集器通过建立与每一个耗量表的专用会话来负责更新会话。虽然数据收集器是对会话负责的设备,但是在更新会话期间,不需要从数据收集器发送更新程序数据,而是数据收集器可以指示另一设备发送更新程序段,即,指示另一设备充当分发器单元。通常,数据收集器本身可以充当分发器单元,但是耗能表或网络节点设备可以被指示成分发器单元。通常,在多跳网络中,数据收集器充当第一级传输的分发器单元,而网络节点可以充当更深级传输的分发器单元。
[0019]耗量表配备有通信能力。用于提供通信能力的元件和组件可以与耗量表构建在一起,并且甚至与耗量表共享组件,或者可以被分离地安置并以任何适当的方式连接到耗量表,以提供支持网络的仪表。
[0020]在一个重要的实施例中,处理器是用于基于能够控制耗量表的固件或更高级软件结构形式的控制程序数据来操作耗量表的可编程处理器。
[0021]本发明的重要应用是更新控制软件。但是,本发明的实施例可以有利地用于更新其它数据结构,所述其它数据结构是以受控方式被发送到一组耗量表的。在一个实施例中,程序数据可以是供耗量表的控制程序使用或者供连接到耗量表的辅助设备使用的计算机代码或其它形式的程序数据。这可以是例如收费表结构、特定的计算算法(例如价格计算算法)、网络表或者用于辅助设备(例如辅助显示设备或辅助传感器设备)的控制程序数据。
[0022]在不同的实施例中,耗量表的通信电路可以从功能性地并物理地与耗量表的通用电路集成变化到功能性地并物理地与耗量表的通用电路分离。在以集成方式提供通信电路的情况下,通信电路的程序数据可以与耗量表的通用控制程序一起更新,而如果以分离的方式提供通信电路,那么可以作为辅助设备来更新通信电路的程序数据。
[0023]在实施例中,耗量表可以是用于对被供给设施的量进行计费的计费耗量表。耗量表可以是对所消耗的能量的量进行计量的能量表、区域供热的热量表、区域冷却的冷却表、区域供水(例如饮用水)的水表、汽表和/或电表。耗量表可以是法定仪表,即服从监管要求的仪表。这样的监管要求可以是对测量的精度的要求。
[0024]在本发明的其它方案中,提供了用于根据第一方案的系统中的数据收集器以及耗量表。
[0025]另外,在本发明的又一个方案中,提供了一种在具有多个耗量表和数据收集器的系统中分发更新程序数据的方法,每个耗量表被布置用于测量被供给设施的耗量数据,所述数据收集器用于收集所述耗量数据,所述耗量表和所述数据收集器被布置在通信网络中,每个耗量表包括用于基于程序数据或者通过使用程序数据来操作该耗量表的处理器;
[0026]所述方法包括:从分发器单元向一组耗量表中的每个耗量表,在所述网络上,将所述更新程序数据分发到所述一组耗量表;
[0027]所述方法还包括:
[0028]将所述更新程序数据布置成一系列更新程序段;
[0029]在所述数据收集器与所述一组耗量表中的每个耗量表之间建立专用更新会话;
[0030]使得每个段以处于会话中的耗量表为地址,并发送以及可能重新发送每一个段,直到所述处于会话中的耗能表确认接收到全部段为止;
[0031]其中,在接收到程序段时,确定所述程序段的地址,如果所述程序段以接收耗能表为地址,则接受所述更新程序段以便存储并确认接收到,而如果所述程序段没有以所述接收耗能表为地址,则接受所述更新程序段以便存储,但不确认接收到,
[0032]并且其中,在所述更新会话期间,只有尚未从之前会话被存储到另一耗能表的段才被发送。
[0033]一般地,在本发明的范围内,本发明的各个方案可以以任何可能的方式组合以及耦合。本发明的这些以及其它方案、特征和/或优点根据下文描述的实施例将变得显而易见,并且参考下文描述的实施例进行阐述。
【专利附图】
【附图说明】
[0034]将参考附图仅仅通过例子的方式来描述本发明的实施例,在附图中:
[0035]图1示出了具有被布置在通信网络中的耗量表和数据收集器单元的系统的实施例;
[0036]图2示出了用于更新一组耗量表的程序数据的实施例的一般流程图;
[0037]图3示意性地示出了分段的程序的例子;
[0038]图4示意性地示出了用于在接收设备处构建更新程序的程序表的例子;
[0039]图5示意性地示出了在接收设备处部分地构建更新程序的例子;
[0040]图6示意性地示出了图1中与多跳通信网络有关的部分;以及
[0041]图7示出了与多跳网络中的程序数据更新有关的流程图的实施例。
【具体实施方式】
[0042]在图1中示出了本发明的实施例。该图示出了系统I包括多个耗量表2以及数据收集器3、3A、3B,这里是子收集器和主收集器的形式。主收集器是设施提供者3A的收集系统,而子收集器是集中器单元3B,其被布置成网络中的集中器节点以收集来自一组指定的耗量表的耗量数据。在一般的实施例中,存在多个集中器,每一个被分配了多个耗量表。耗量表以及数据收集器中的每一个包括用于在网络中进行双向数据通信的通信单元,并且每个耗量表存储仪表ID,使得其在网络中是可单独识别的。在实施例中,整个网络是无线网络,但是,有利的是,至少集中器与耗量表之间的网络是无线网络,而两个收集器部件之间的链路可以是任何适当的类型。通常,网络可以是任意适当的网络,包括电力线载波(PLC)网络。
[0043]在实施例中,指示集中器设备3B更新一组耗量表2的控制程序或固件。耗量表是通过不同级别的逻辑编程操作的,范围从一个或多个微处理器的基本操作到可编程微处理器的高级编程。一些微处理器甚至可以由操作系统来操作。在最低级别,控制程序可以由固定代码实现,然而高级处理器包括一个或多个可编程级别。控制程序的更新涵盖耗量表的控制电路的任意编程级别的计算机代码结构的一部分或者甚至全部的交换。
[0044]关于更新控制程序,控制程序被分割成多个程序段。将数据程序分割成与程序的数据传输有关的段在数据传输领域中通常是已知的。
[0045]在实施例中,在第一步骤中,集中器3B接收来自控制级的更新程序以及更新被配给它的全部耗量表的指令。然而,通常可以选择分配给集中器的任意耗量表组或子组以便更新。作为第一更新步骤,集中器在本身与第一仪表4之间建立专用更新会话。在这个会话期间,使得程序段以第一仪表4为地址,并且在网络中发送所述程序段。耗量表存储用于在网络中进行单独识别的仪表ID。在实施例中,仪表ID可以用作地址,然而,网络还可以采用动态编址。
[0046]在实施例中,集中器发送第一段,并等待接收确认,一旦接收到该确认,就发送第二段。如果没有接收到对于某个程序段的确认,那么集中器重新发送特定的段。一旦所有的段都被发送并且被第一仪表4确认,集中器就建立与第二仪表5的新的更新会话。可以在每一个段之后、发送下一个段之前接收到接收确认。在另一实施例中,可以按组来发送段,例如可以发送几个段,并且可以发送对所述几个段或者对接收到的段(如果只接收到它们中的一些的话)的确认。可以在具有两个、三个、五个、十个或其它数量的段的组之后发送确认。有利的是,在确认之间只发送较小数量的段,以获得严密受控的传输过程。在第一会话期间,仪表5处于通信范围内,因而发送给第一仪表4的所有数据传输也被第二仪表5接收。在常规单播情形中,第二仪表忽视以第二仪表以外的另一仪表为地址的数据,然而,在本发明中,允许第二仪表5存储发送给第一仪表4的程序段。但是,在与第一仪表的会话期间,第二仪表并不提供接收确认。仅仅是在第二仪表5处存储程序段。
[0047]因为在第一会话期间允许第二仪表5存储发送给第一仪表4的程序段,所以在第二会话期间只需要给第二仪表发送错过的段。例如如果在第二仪表处接收到了全部段,那么集中器接收对此的确认,并关闭与第二仪表的会话,以及建立与下一(第三)仪表的新会话。在某个点,给定仪表6可能已经错过了以第一仪表为地址的一些程序段。随后,使得这些程序段以仪表6为地址,并被逐一发送,每个段或段组被仪表6确认。由于仪表6错过了发送给第一仪表4的一些数据段,所以存在该仪表附近的仪表(例如仪表7)错过同样段的某种可能。当向仪表6重新发送这些程序段时,仪表7将存储也被该仪表错过的任意程序段。
[0048]在所示实施例中,只有区域8中的仪表处于集中器3B的直接通信范围内。从而该区域外的全部仪表错过了发送给第一仪表4的数据段的全部或许多。
[0049]耗量表9在集中器的直接范围之外。因此,集中器需要向仪表9发送大部分(如果不是全部的话)更新程序段。再次地,在向仪表9传输段期间,偷听到该传输的所有仪表将存储偷听到的程序段。在实施例中,剩余的仪表可能处于去往仪表9的传输的范围内,并且因而能够接收到大部分(如果不是全部的话)段。因而,对于剩余的仪表,集中器可能只需要检查错过的程序段,并且可能重新发送几个段。
[0050]用这种方式,给所有仪表提供更新程序数据(新固件),其中,在过程控制和接收必然性方面获得了单播的全部益处。但是并没有将相同的程序段单独地发送很多次,从而减少了更新整个耗量表组所花费的总时间。
[0051 ] 一般地,本发明的实施例用于向多个耗量表发送相同的程序数据或计算机代码是有利的。虽然重要的应用是远程更新一组耗量表的固件,但是其它应用也可以通过使用根据本发明实施例的偷听原理而获益。这样的应用包括但不限于以下例子。
[0052]在一个实施例中,更新程序数据是供处理器用于操作耗量表的程序数据。即,更新程序数据本身并不涉及控制程序,而是涉及控制程序所使用的与仪表的操作有关的数据结构。这样的程序数据例如可以是收费表结构。在将要在一组耗量表中更新新的收费表结构的情况下,可以通过使用本发明的实施例来发送收费表结构。在另一例子中,程序数据可以是例如用于基于耗量来计算价格的计算算法。在又一例子中,程序数据可以是网络信息,例如路由信息。在实施例中,可以向全部参与节点分发例如路由表之类的路由信息,以便进行与网络中的路由数据有关的本地处理。通过将路由表设置在耗量表中,可以从正常数据分组中移除路由信息。在另一例子中,控制程序或其它程序可以基于程序模块,其中,更新一个或几个模块,但是维持程序的核心结构。
[0053]在另一个实施例中,更新程序数据是供通信地连接到耗量表的辅助设备使用的程序数据。耗量表可以连接到辅助设备,所述辅助设备未必连接到网络,或者链接到较差的网络。例如,耗量表可以连接到家用显示器,其中,可能希望经由耗量表的网络发送更新信息以便显示给用户。耗量表也可以连接到分离的模块,例如中继模块,其中,可能希望经由耗量表向该模块传送数据。此外,耗量表可以充当其它设备的通信节点,例如电池驱动的水表的通信节点。可以通过本发明的实施例的通信过程将更新程序数据发送给水表。辅助设备通常可以与耗量表分离地安置,或者可以安置在包括辅助设备的集成外壳中。具体地,辅助设备可以是以任意适当方式附接到耗量表的功能模块。在实施例中,在向辅助设备重新发送更新程序数据之前,在耗量表处完全地接收到了更新程序数据。可替换地,可以与耗量表处的接收同时地向辅助设备发送更新程序数据。可以根据耗量表与辅助设备之间的特定连接,通过标准通信方法来进行更新程序数据向辅助设备的重新发送。
[0054]图2示出了用于更新一组耗量表的程序数据的本发明实施例的一般性流程图。
[0055]在第一步骤20中,数据收集器(通常是集中器的形式)接收更新程序,并被指示通过网络更新指定的一组耗量表的程序数据。所述一组耗量表可以是被布置在网络中的一组仪表,或者其可以是给定的耗量表网络中的全部仪表。
[0056]集中器被布置用于通过将更新程序作为一系列更新程序段发送到所述一组耗量表中的每个耗量表来更新程序数据。集中器通常通过使用存储在集中器设备处的分割算法来管理更新程序的分割。通常,任何类型的分发器设备都可以在分发更新程序之前管理分割。
[0057]图3示意性地示出了分段的程序30的例子。每个更新程序段被布置成数据帧或数据分组,被标记为Si, i是索引。在图中,每个段被示为包括有效载荷Pi和头部Hi,头部承载诸如接收机地址、路由信息、段号等等之类的信息。头部可以由一组子头部形成,子头部包括专用于地址信息的部分以及专用于分组信息的部分。有效载荷包含将在更新程序中使用的程序部分。此外,虽然未被示出,但是每个段Si还可以包括诸如具有控制信息(例如,循环冗余校验(CRC)信息)的脚注之类的部分。通常,每个段可以基于网络通信中普遍存在的分层数据结构。
[0058]返回到图2,在步骤21中,数据收集器建立与所述一组耗量表中的(第一)耗量表的专用更新会话,以向第一耗量表发送更新程序的全部段。
[0059]在实施例中,在耗量表实际更新之前,数据收集器向所述一组仪表中的全部仪表宣告200它们将要接收更新程序数据。该宣告可以是针对所述一组仪表的多播消息或一系列单播宣告的形式。该宣告可以包括更新程序信息,例如将要接收的段的数量、每个段的存储地址等,以便供耗量表在更新会话期间使用以向数据收集器提供确认。基于该宣告,每个耗量表能够建立其自己的更新程序表,以便能够跟踪其接收到的段。在可替换的实施例中,并不使用宣告。相反,更新程序的第一部分可以包括关于程序的信息,或者可以指示耗量表在接收到每个程序段之后以如下方式向集中器确认回去,所述方式使得集中器能够跟踪处于会话的耗量表接收到的段。
[0060]图4示意性地示出了用于在接收设备处构建更新程序的程序表40或程序结构的例子。这里用带编号的槽示意性地示出了每个有效载荷位置。也可以使用其它信息。
[0061]返回到图2,在步骤22中,集中器利用处于会话中的耗量表的仪表ID来对每个段进行编址,并发送以及可能重新发送每个段,直到处于会话中的耗量表确认接收到全部段为止。
[0062]在实施例201中,这可以通过向处于会话中的仪表发送用于请求该仪表报告它错过了哪些段的消息22A来完成。假定耗量表已经接收到了与图4的更新程序的总数据结构有关的信息,第一响应22B可以是“我错过了段S1到SN”,即全部段。在22C,集中器确定处于会话的仪表是否错过了任何段。如果是(y),那么集中器向仪表发送22D错过的段中的第一段S1,并且与该段一起或者作为单独的请求22A再次请求错过的段。
[0063]如果替代地集中器接收到没有(η)错过任何段的响应22Ε,那么其关闭与当前仪表的会话。
[0064]在下一步骤24中,集中器确定是否已经更新了所述一组仪表中的全部仪表。如果不是(η),那么发起与下一仪表21的会话。
[0065]步骤23是针对所有仪表执行的后台过程。在该过程中,耗量表持续地或周期性地分析在其接收机处接收到的信号。在其检测到去往具有与其自己不同的地址或仪表ID的耗量表的更新程序段的情况下,其接受该更新程序段以进行存储。用这种方式,位于通信范围内的仪表从其能够接收到的但是针对其它接收方的传输受益。如果宣告已经被发送,那么其可以知道其不久将需要数据段,否则其可以装备有存储区域,所述存储区域存储可能能够形成更新程序的全部数据段,并且如果在一段时间之后未被使用则擦除它或重写它。用这种方式,只需要重新发送在之前会话期间尚未接收以及存储的程序段。在其检测到以其为地址的更新程序段的情况下,其将遵从过程201。
[0066]在下一更新会话21中,集中器建立与所述一组耗量表中的下一耗量表的专用更新会话,以将更新程序的全部段发送到下一耗量表,或者确保在下一耗量表接收到全部段。
[0067]在一个情况中,下一仪表已经存储了更新程序的全部段。在该情况中流程图201将为:
[0068]向仪表发送22Α用于请求该仪表报告它错过了哪些段的消息。由于没有错过段,所以响应22Β可以是“我没有错过段”。在22C,集中器确定没有错过任何段,并且在22Ε,其关闭与仪表的会话。
[0069]在另一情况中,下一仪表错过了段S。到Sd和Sx到SY。这在图5中被示出,其中已经存储的程序部分是灰色的,而错过的部分是白色的。
[0070]在22A中打开与仪表的会话之后,集中器请求该仪表报告它错过了哪些段。该仪表报告它错过了 S。到Sd,并且在22D中,在被编址的传输中向该仪表发送段S。。在下一请求的答复中,该仪表报告它错过了 Se+1到Sd等,直到其接收到Sd为止。在接收到Sd之后,其响应其还错过Sx到Sy等。
[0071]通常可以在已经发送了每个段之后发送对于被错过的段的请求,或者可以在已经发送了一组段之后发送该请求,使得在接收到一组段之后接收到接收确认。在发送了从S。到Sd的一组段而在中间没有请求对错过段的确认的情况下,可能出现两种情形。如果正确地接收了全部段,那么仪表简单地响应其错过段Sx到Sy,而如果没有接收到Sm到Sm,那么其响应这些段仍然是错过的。
[0072]并且,偷听到23段S。到Sd和Sx到Sy的传输的任何仪表存储这样的数据段(如果尚未存储的话)。
[0073]在步骤25中,所述一组仪表中的全部仪表已经接收到更新程序。如果还没有,那么耗量表对直接从传输接收到的、来自存储的程序段的或者来自接收到的段和存储的段的组合的全部数据段进行组合,以构建完整的更新程序。
[0074]在步骤26中,每个耗量表用更新程序替换其程序。在实施例中,更新程序可以被发送到每个仪表的激活命令激活。耗量表可以在接收到激活命令之后开始替换程序,可替换地,激活命令可以指定替换时间,从而指示耗量表在指定的替换时间替换程序。该替换可能受到其它条件的限制,这将在下面讨论。
[0075]在一般的实施例中,可以建立多个并行的更新会话,然而这会导致更复杂的过程,这是因为耗量表网络可能是非常复杂的,并且从而更新过程的并行处理可能对更新过程施加非常复杂的约束,以避免与传输冲突有关的问题。替代地,可以有利地按顺序接连地更新仪表。从而在实施例中,通过接连地创建与每个耗量表的专用更新会话,并在建立下一更新会话之前从处于会话的耗量表接收对所有段的接收确认,来接连地更新所述一组耗量表中的耗量表。用这种方式,可以实现非常简单的过程流程,带来较高的无错更新过程的可能性。与利用并行的更新过程相比,利用串行的更新过程,整个组的更新时间可能更高。然而,由于被编址的数据段能够被存储在具有与该数据段的地址不同的仪表ID的仪表处并且在串行过程中可能预料到更少的传输错误的事实,串行的更新过程可能是有利的。
[0076]一般地,耗量表可以用多种方式来实现,以确保其存储没有以其为地址的更新程序的程序段。任何数据分组都承载头部,头部包含确定接收到的信号是否是针对该仪表所需要的信息以及其它信号信息。基于头部中的信息,耗量表可以被编程,以识别所述头部的一部分,所述部分指示应当存储该程序段,以期望该程序段是程序更新的一部分。
[0077]可以有利的是,提供专用存储标识符或上传ID作为在更新程序的段中承载的信息的一部分,例如,作为头部的一部分。该存储标识符承载与具有与该地址不同的ID的耗量表存储数据段有关的信息。例如,该标识符可以承载指示仪表存储段(如果接收到的话)或者禁止仪表存储段(如果接收到的话)的代码。例如,如果只有一小组仪表需要更新,那么可能有利的是禁止其它仪表存储段,从而有效地使得传输进入单播传输。存储标识符还可以承载版本信息,所述版本信息使得只向相关仪表发送专用软件版本成为可能。
[0078]在图1中,边界8内的仪表是第一级仪表,即处于集中器3B的直接通信范围内的仪表。为了与该边界外部的仪表进行通信,需要一个连接器单元。例如仪表10中的一个除了作为耗量仪表以外还可以实现转发器单元或可替换地路由器单元的功能,使得被定向到没有处于集中器的直接通信范围内的任何通信都通过仪表10而被定向。
[0079]在图6中进一步示出了与多跳网络有关的方案。对此,多跳网络将被理解成至少包括第二网络级的网络。也就是说,它包括至少一个没有处于收集器的直接通信范围内的网络级,收集器通常是集中器设备的形式。
[0080]图6示意性地示出了图1中与多跳通信网络有关的部分,其中,图1中的元件被重新布置以强调该网络结构。集中器处于与仪表10直接通信的范围内,但是不能直接到达仪表 60-62。
[0081]对于第一级仪表,即处于集中器的直接通信范围内的仪表,有利地是集中器是分发器设备,即存储更新程序并管理各个段的分割和编址的设备。在有利的实施例中,对于从集中器不可直接到达的仪表,分发单元被转换成网络单元,充当去往多跳网络的第二级或更高级的连接器节点。一旦集中器已经将全部段发送给分发器节点10并且接收到了接收确认,其就可以指示该仪表充当仪表60-62的分发器节点,其中该仪表充当仪表60-62的转发器或路由器设备。
[0082]在实施例中,在完成了更新程序到处于直接范围的仪表的传输之后,集中器指示仪表10作为分发器设备。
[0083]图7示出了流程图的实施例。
[0084]在步骤70中,集中器指示仪表10向仪表60发送更新程序。
[0085]在步骤71,仪表10将更新程序的每个段的地址编址为耗量表60的仪表地址,并发送72以及可能重新发送每个段,直到耗量表60确认接收到全部段为止。可以以与图2的流程图201相关的类似方式来执行这种传输,除了每个段的确认是被发送到分发器单元(即,仪表10)以外。一旦仪表60已经接收到了所有段,分发器节点就向集中器报告73这种情况。作为下一会话,集中器指示仪表10向下一仪表(例如仪表61)发送更新程序。并且,根据本发明的实施例,并不向仪表61发送来自去往仪表60的传输的已经被仪表61存储的所有段。
[0086]用这种方式,集中器负责更新组内的所有仪表,然而并不是向多跳网络中的连接器节点多次重新发送更新程序,而是使用连接器节点处的已存储数据段来分发给更深的级。
[0087]在实施例中,数据收集器给分发单元分配最大分发时间,其是允许分发器单元用于通过网络发送更新程序数据而不与数据收集器联系所使用的最大时间。分发器单元与收集器之间的联系可以是分发器单元向数据收集器报告正在进行的更新过程的状态。这允许数据收集器在需要通信网络进行更高优先级的活动的情况下中断更新过程。在不需要网络进行更高优先级的活动的情况下,通过给分发器单元分配新的最大分发时间来允许分发器单元继续更新过程。
[0088]在实施例中,充当多跳网络的第二级或更高级的连接器节点的网络单元可以是专用通信单元,例如专用转发器设备或专用路由器设备。在这样的实施例中,通信单元可以按照结合图6和7所公开的方式用作分发器单元。
[0089]在另一实施例中,充当多跳网络的第二级或更高级的连接器节点的网络单元可以是将不被更新的耗量表,但是其充当将被更新的耗量表的网络节点。而且,这样的耗量表可以按照结合图6和7所公开的方式用作分发器单元。
[0090]在其它实施例中,分发器单元可以是被增加到网络中的具有与所述一组耗量表中的耗量表的程序数据不同的程序数据的耗量表,并且其中,所增加的耗量表的程序数据变成更新程序数据。所添加的耗量表可以被实现为具有取其自己程序数据的副本的功能,或者所添加的耗量表可以在存储器中存储其程序数据的副本。一旦已经指示了集中器使用来自所增加的仪表的更新程序,集中器就指示所增加的仪表向第一设备(例如集中器本身)发送其程序数据,并随后根据本发明的实施例向一组耗量表分发控制程序。
[0091]如果将以安全的方式(即通过应用加密)来分发计算机代码,那么希望以快速的方式向大量接收实体分发类似的计算机代码将会受阻。本发明的实施例具有以下优点:它们支持多种安全方案,不需要单独的加密单播传输,但是确保了高度的安全等级。
[0092]在实施例中,可以用一组耗量表中的全部耗量表已知的加密密钥来加密更新程序。如果确保了对这样的共享加密密钥进行了安全处理,那么这可以是足够级别的安全。例如,共享加密密钥可以存储在工厂或者在更新过程之前以加密形式被分发,例如用单独加密密钥进行加密。
[0093]在实施例中,更新程序可以由单独编址的激活命令激活,所述命令被对于每个耗量表唯一的加密密钥单独加密。用这种方式,至少能够以较高的安全等级处理激活。
[0094]在实施例中,宣告包括用于解密更新程序段的加密密钥。
[0095]在实施例中,宣告可以由对于每个耗量表唯一的加密密钥进行加密。在宣告包括共享加密密钥的情况下,这样的实施例提供了非常高的安全等级,而不危害更新所述一组耗量表的程序数据所花费的时间。
[0096]虽然已经结合指定的实施例描述了本发明,但是不应当以限于给出的例子的任何方式来理解本发明。本发明可以由任意适当的方式来实现;并且将鉴于所附权利要求集来解释本发明的范围。按照给定顺序提出的步骤并不意味着本发明限于执行这些步骤的顺序。步骤之间的任何交换都处于本发明的范围内。权利要求书中的任意参考标记不应当被解释为限制所述范围。
【权利要求】
1.一种具有多个耗量表(2)以及数据收集器(3)的系统(I),所述多个耗量表每一个被布置用于测量被供给设施的耗量数据,所述数据收集器用于收集所述耗量数据,所述耗量表和所述数据收集器被布置在通信网络中,每一个耗量表包括用于基于程序数据或者通过使用程序数据来操作该耗量表的处理器; 其中,所述数据收集器被布置用于通过将更新程序数据作为一系列更新程序段(30)而从分发器单元(3B、10)发送到一组耗量表中的每一个耗量表,来在所述网络上更新所述一组耗量表的程序数据; 其中,所述数据收集器建立与所述一组耗量表中的每一个耗量表的专用更新会话,并且其中,以处于会话的耗量表为地址的段被发送并且可能被重新发送,直到所述处于会话的耗量表确认接收到全部段为止; 其中,在所述更新会话期间,更新程序段没有以其为地址的耗量表在接收到该段时接受该段以进行存储; 并且其中,在所述更新会话期间,只有尚未从之前会话被存储到另一耗量表的段才被发送到所述处于会话的耗量表。
2.根据权利要求1所述的系统,其中,所述处理器是用于基于控制程序数据来操作该耗量表的可编程处理器,并且其中,所述更新程序数据是用于更新所述控制程序数据的控制程序数据。
3.根据权利要求1所述的系统,其中,所述更新程序数据是供该耗量表的控制程序使用以操作该耗量表的程序数据。
4.根据权利要求1所述的系统,其中,所述更新程序数据是供通信地连接到该耗量表的辅助设备使用的程序数据。
5.根据前述权利要求中的任意一项所述的系统,其中,所述一组耗量表中的每一个耗量表接收关于即将到来的更新会话的宣告。
6.根据前述权利要求中的任意一项所述的系统,其中,所述一组耗量表中的耗量表通过以下方式而被接连地更新:接连地建立与每一个耗量表的专用更新会话,以及在建立下一更新会话之前从所述处于会话的耗量表接收对全部段的接收确认。
7.根据权利要求6所述的系统,其中,所述接收确认是在每一个段被发送之后并且在下一段被发送之前接收的。
8.根据权利要求6所述的系统,其中,所述接收确认是在一组段被发送之后接收的。
9.根据前述权利要求中的任意一项所述的系统,其中,每一个更新程序段还包括存储标识符,所述存储标识符承载与更新程序段未以其为地址的耗量表对该段进行存储有关的信息。
10.根据权利要求9所述的系统,其中,所述一组耗量表中的每一个耗量表接收关于即将到来的更新会话的宣告,并且其中,所述宣告包括所述存储标识符,使得如果未以一耗量表为地址的更新程序段的存储标识符与所述宣告的标识符匹配,那么该耗量表只存储该更新程序段。
11.根据前述权利要求中的任意一项所述的系统,其中,所述分发器单元是从数据收集器、耗量表、转发器单元或者路由器单元的组中选择的。
12.根据前述权利要求中的任意一项所述的系统,其中,所述一组耗量表是多跳通信网络的一部分,并且其中,所述分发单元是充当去往所述多跳网络的第二级或更高级的连接器节点的网络单元。
13.根据前述权利要求中的任意一项所述的系统,其中,所述数据收集器给所述分发单元分配最大分发时间,所述最大分发时间是允许所述分发器单元用于在所述网络上发送所述更新程序数据而不与所述数据收集器联系的最大时间。
14.根据前述权利要求中的任意一项所述的系统,其中,所述分发器单元是被添加到所述网络中的具有与所述一组耗量表中的耗量表的程序数据不同的程序数据的耗量表,并且其中,所添加的耗量表的程序数据变为所述更新程序数据。
15.根据前述权利要求中的任意一项所述的系统,其中,所述更新程序数据是用所述一组耗量表中的全部耗量表已知的加密密钥进行加密的。
16.根据前述权利要求中的任意一项所述的系统,其中,所述更新程序数据是被单独编址的激活命令激活的,所述单独编址的激活命令是由对于每一个耗量表唯一的加密密钥单独加密的。
17.根据权利要求10所述的系统,其中,所述宣告包括用于对所述更新程序段进行解密的加密密钥。
18.根据权利要求10或17所述的系统,其中,所述宣告是由对于每一个耗量表唯一的加密密钥加密的。
19.一种在根据权利要求1-18中的任意一项所述的系统中使用的数据收集器。
20.一种在根据权利要求1-18中的任意一项所述的系统中使用的耗量表。
21.一种在具有多个耗量表(2)以及数据收集器(3)的系统中分发更新程序数据的方法,所述多个耗量表每一个被布置用于测量被供给设施的耗量数据,所述数据收集器用于收集所述耗量数据,所述耗量表和所述数据收集器被布置在通信网络中,每个耗量表包括用于基于程序数据或者通过使用程序数据来操作该耗量表的处理器; 所述方法包括:在所述网络上,从分发器单元(3B、10)向一组耗量表中的每一个耗量表分发去往所述一组耗量表的所述更新程序数据; 所述方法还包括: 将所述更新程序数据布置成一系列更新程序段(30); 在所述数据收集器与所述一组耗量表中的每一个耗量表之间建立(21)专用更新会话; 使得每个段以处于会话的耗量表为地址(22),并发送以及可能重新发送每个段,直到所述处于会话的耗量表确认接收到全部段为止; 其中,在接收到程序段时,确定(23)所述程序段的地址,如果所述程序段以接收耗量表为地址,那么接受所述更新程序段以进行存储并对接收进行确认;而如果所述程序段未以所述接收耗量表为地址,那么接受所述更新程序段以进行存储但并不对接收进行确认; 并且其中,在所述更新会话期间,只有尚未从之前会话被存储到另一耗量表的段才被发送。
【文档编号】G06F9/445GK104272762SQ201380023871
【公开日】2015年1月7日 申请日期:2013年5月6日 优先权日:2012年5月7日
【发明者】F·哈尔德, J·D·克里斯琴森 申请人:卡姆鲁普股份有限公司