电能表固件升级的方法和装置转让专利

申请号 : CN201710142769.0

文献号 : CN106953902B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 向会军

申请人 : 深圳市金正方科技股份有限公司

摘要 :

本发明揭示了一种电能表固件升级的方法和装置。所述方法应用于自组网中完成自身固件升级的电能表,包括:在该自组网中发送携带电能表标识获取命令的广播消息,该电能表标识获取命令用于指示该自组网中应答该广播消息的电能表执行自身电能表标识的上报操作;接收该自组网中其它电能表应答所述广播消息而上报的电能表标识;按照该电能表标识发送升级命令和固件文件,使对应于所述电能表标识的其它电能表接收到所述升级命令和固件文件,自动执行自身的固件升级过程。本发明在自组网中通过触发一台电能表升级,从而触发其它电能表升级,实现整个自组网里的电能表全自动升级,提高了升级效率。

权利要求 :

1.一种电能表固件升级的方法,其特征在于,应用于自组网中完成自身固件升级的电能表,所述方法包括:在所述自组网中发送携带电能表标识获取命令的广播消息,所述电能表标识获取命令用于指示所述自组网中应答所述广播消息的电能表执行自身电能表标识的上报操作;

接收所述自组网中其它电能表应答所述广播消息而上报的电能表标识;

按照所述电能表标识发送升级命令和固件文件,使对应于所述电能表标识的其它电能表接收到所述升级命令和固件文件,自动执行自身的固件升级过程。

2.根据权利要求1所述的方法,其特征在于,所述按照所述电能表标识发送升级命令和固件文件,使对应于所述电能表标识的其它电能表接收到所述升级命令和固件文件,自动执行自身的固件升级过程,包括:通过向所述电能表标识对应的其它电能表发送获取固件版本信息的命令,获得所述电能表标识对应的固件版本信息;

判断所述电能表标识对应的固件版本信息与自身的固件版本信息是否一致,如果不一致,则向与所述电能表标识对应的电能表发送升级命令和固件文件。

3.一种电能表固件升级的方法,其特征在于,应用于自组网中未完成自身固件升级的电能表,所述方法包括:所述电能表接收所在自组网中的广播消息,所述广播消息是由自组网中完成自身固件升级的电能表在此自组网中以广播形式发送的;

从所述广播消息提取电能表标识获取命令;

执行所述电能表标识获取命令获得自身的电能表标识,通过上报所述电能表标识而应答所述广播消息;

接收发送所述广播消息的电能表返回的升级命令和固件文件;

通过所述升级命令和固件文件执行自身的固件升级过程。

4.根据权利要求3所述的方法,其特征在于,所述通过所述升级命令和固件文件执行自身的固件升级过程之前,所述方法还包括:校验所述固件文件,判断所述固件文件校验是否通过,如果为是,则进入所述通过所述升级命令和固件文件执行自身的固件升级过程的步骤,如果为否,则结束。

5.根据权利要求3所述的方法,其特征在于,所述通过所述升级命令和固件文件执行自身的固件升级过程的步骤之后,所述方法还包括:调用升级状态命令获取升级状态信息;

上报所述升级状态信息至服务器端,所述服务器端根据收到的所述升级状态信息向所述电能表下发切换状态命令;

根据收到的所述切换状态命令将所述电能表切换至工作状态。

6.一种电能表固件升级的装置,其特征在于,应用于自组网中完成自身固件升级的电能表,所述装置包括:广播消息发送模块,用于在所述自组网中发送携带电能表标识获取命令的广播消息,所述电能表标识获取命令用于指示所述自组网中应答所述广播消息的电能表执行自身电能表标识的上报操作;

电能表标识接收模块,用于接收所述自组网中其它电能表应答所述广播消息而上报的电能表标识;

发送模块,用于按照所述电能表标识发送升级命令和固件文件,使对应于所述电能表标识的其它电能表接收到所述升级命令和固件文件,自动执行自身的固件升级过程。

7.根据权利要求6所述的装置,其特征在于,所述发送模块,包括:固件版本信息获取模块,用于通过向所述电能表标识对应的其它电能表发送获取固件版本信息的命令,获得所述电能表标识对应的固件版本信息;

固件版本信息判断模块,用于判断所述电能表标识对应的固件版本信息与自身的固件版本信息是否一致,如果不一致,则向与所述电能表标识对应的电能表发送升级命令和固件文件。

8.一种电能表固件升级的装置,其特征在于,应用于自组网中未完成自身固件升级的电能表,所述装置包括:广播消息接收模块,用于所述电能表接收所在自组网中的广播消息,所述广播消息是由自组网中完成自身固件升级的电能表在此自组网中以广播形式发送的;

提取模块,用于从所述广播消息提取电能表标识获取命令;

消息应答模块,用于执行所述电能表标识获取命令获得自身的电能表标识,通过上报所述电能表标识而应答所述广播消息;

接收模块,用于接收发送所述广播消息的电能表返回的升级命令和固件文件;

固件升级执行模块,用于通过所述升级命令和固件文件执行自身的固件升级过程。

9.根据权利要求8所述的装置,其特征在于,所述装置还包括:固件文件校验模块,用于校验所述固件文件,判断所述固件文件校验是否通过,如果为是,则触发所述固件升级执行模块,如果为否,则结束。

10.根据权利要求8所述的装置,其特征在于,所述装置还包括:状态信息获取模块,用于调用升级状态命令获取升级状态信息;

状态信息上报模块,用于上报所述升级状态信息至服务器端,所述服务器端根据收到的所述升级状态信息向所述电能表下发切换状态命令;

状态切换模块,用于根据收到的所述切换状态命令将所述电能表切换至工作状态。

说明书 :

电能表固件升级的方法和装置

技术领域

[0001] 本发明涉及网络通信领域,特别涉及一种电能表固件升级的方法和装置。

背景技术

[0002] 随着国家电网的改革,电网领域的技术快速发展,促使电能表在电力自动化领域中得到了更为广泛和大规模的应用。电能表作为电网领域的重要节点不仅在数量上得到了广泛的推广,在技术上面也得到了快速的迭代,随着需求的增加电能表在固件的更新上更趋频繁。
[0003] 面对用户侧使用中数量巨大的电能表,现有的技术实现中电能表固件的升级广泛采用的是通过人的工方式利用升级设备对电能表进行操作执行电能表固件的升级方式,升级设备每次只能完成一台电能表的升级操作,例如利用升级设备升级完A位置的一台电能表后,再将将该升级设备带到B位置对另外一台电能表升级,这样的方式导致升级效率非常低。
[0004] 在电能表数量比较多的情况下,即使配备相当多的人力和升级设备,也很难将升级效率提高,在人力和升级设备配备不足的情况下,升级周期相对会很长,但是电能表的固件程序涉及到计费并最终影响到扣费,从而影响到电力公司或者用户的直接利益,所以这种通过人力实现的升级方式无法提升升级的实时性,很难提高升级的效率。

发明内容

[0005] 为了解决相关技术中存在的电能表固件升级效率低的问题,本公开提供了一种电能表固件升级的方法和装置。
[0006] 一种电能表固件升级的方法,应用于自组网中完成自身固件升级的电能表,所述方法包括:
[0007] 在所述自组网中发送携带电能表标识获取命令的广播消息,所述电能表标识获取命令用于指示所述自组网中应答所述广播消息的电能表执行自身电能表标识的上报操作;
[0008] 接收所述自组网中其它电能表应答所述广播消息而上报的电能表标识;
[0009] 按照所述电能表标识发送升级命令和固件文件,使对应于所述电能表标识的其它电能表接收到所述升级命令和固件文件,自动执行自身的固件升级过程。
[0010] 一种电能表固件升级的方法,应用于自组网中未完成自身固件升级的电能表,所述方法包括:
[0011] 所述电能表接收所在自组网中的广播消息,所述广播消息是由自组网中完成自身固件升级的电能表在此自组网中以广播形式发送的;
[0012] 从所述广播消息提取电能表标识获取命令;
[0013] 执行所述电能表标识获取命令获得自身的电能表标识,通过上报所述电能表标识而应答所述广播消息;
[0014] 接收发送所述广播消息的电能表返回的升级命令和固件文件;
[0015] 通过所述升级命令和固件文件执行自身的固件升级过程。
[0016] 一种电能表固件升级的装置,应用于自组网中完成自身固件升级的电能表,所述装置包括:
[0017] 广播消息发送模块,用于在所述自组网中发送携带电能表标识获取命令的广播消息,所述电能表标识获取命令用于指示所述自组网中应答所述广播消息的电能表执行自身电能表标识的上报操作;
[0018] 电能表标识接收模块,用于接收所述自组网中其它电能表应答所述广播消息而上报的电能表标识;
[0019] 发送模块,用于按照所述电能表标识发送升级命令和固件文件,使对应于所述电能表标识的其它电能表接收到所述升级命令和固件文件,自动执行自身的固件升级过程。
[0020] 一种电能表固件升级的装置,应用于自组网中未完成自身固件升级的电能表,所述装置包括:
[0021] 广播消息接收模块,用于所述电能表接收所在自组网中的广播消息,所述广播消息是由自组网中完成自身固件升级的电能表在此自组网中以广播形式发送的;
[0022] 提取模块,用于从所述广播消息提取电能表标识获取命令;
[0023] 消息应答模块,用于执行所述电能表标识获取命令获得自身的电能表标识,通过上报所述电能表标识而应答所述广播消息;
[0024] 接收模块,用于接收发送所述广播消息的电能表返回的升级命令和固件文件;
[0025] 固件升级执行模块,用于通过所述升级命令和固件文件执行自身的固件升级过程。
[0026] 本公开的实施例提供的技术方案可以包括以下有益效果:
[0027] 完成自身固件升级的电能表在自组网中发送携带电能表标识获取命令的广播消息,电能表标识获取命令用于指示自组网中应答广播消息的电能表执行自身电能表标识的上报操作,接收自组网中其它电能表应答广播消息而上报的电能表标识,按照电能表标识发送升级命令和固件文件,使对应于电能表标识的其它电能表接收到升级命令和固件文件,自动执行自身的固件升级过程。在此固件升级方法中,减少大量的人力操作,实现了电能表全自动固件升级,有效提高了升级效率,而且随着自组网里的完成自身固件升级的电能表数量的增多,未完成自身固件升级的电能表的升级速度相对会越来越快,能有效减少自组网中剩余的未升级电能表完成自身固件升级所需的时间,而且该固件程序升级方案适合各种规模的电能表网络,相比现有的固件升级技术,在电表数量越多的网络环境下,该固件程序升级方案更能有效提高电能表固件升级的效率。
[0028] 应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。

附图说明

[0029] 此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并于说明书一起用于解释本发明的原理。
[0030] 图1和图2是根据本公开所涉及的实施环境的示意图。
[0031] 图3是根据一示例性实施例示出的一种应用于自组网中完成自身固件升级的电能表的固件升级方法的流程图。
[0032] 图4是根据图3对应实施例示出的对步骤350的细节进行描述的流程图;
[0033] 图5是根据一示例性实施例示出的一种应用于自组网中未完成自身固件升级的电能表的固件升级方法的流程图。
[0034] 图6是根据一示例性实施例示出的电能表完成自身固件升级后切换至工作状态的流程图;
[0035] 图7是根据一示例性实施例示出的一种固件升级过程示意图 。
[0036] 图8是根据另一示例性实施例示出的电能表运行的服务程序所包含的部分功能的示意图。
[0037] 图9是根据一示例性实施例示出的一种应用于自组网中完成自身固件升级的电能表的固件升级方法的框图。
[0038] 图10是根据图9对应实施例示出的对升级命令发送模块的细节进行描述的框图。
[0039] 图11是根据另一示例性实施例示出的一示例性实施例示出的一种应用于自组网中未完成自身固件升级的电能表的固件升级方法的框图。
[0040] 图12是根据另一实施例示出的电能表完成自身固件升级后切换至工作状态的框图。

具体实施方式

[0041] 这里将详细地对示例性实施例执行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
[0042] 图1是根据本公开所涉及的实施环境的示意图。该实施环境包括:终端设备110和至少两台电能表,如电能表120,电能表121等。
[0043] 图2是根据本公开所涉及的更为具体的实施环境的示意图,在图1的基础上增加了集中器250和服务器260。图1和图2中电能表之间的联网方式,可以是基于LORA,MESH,ZIGBEE等无线技术组建的自组网也可以是基于电力线载波PLC,RS485等技术的自组网。该实施环境包括:终端设备210和至少两台电能表,如电能表220,电能表221以及可选的集中器250和服务器260等。
[0044] 图1中的终端设备110和图2中的终端设备210可以是能触发自组网中任何一台电能表升级的任何设备,而且终端设备110和终端设备210会安装相应的软件程序。终端设备110与电能表120之间的关联方式,以及终端设备210与电能表220之间的关联方式,包括RS232,RS485,USB,硬件的网络关联方式和/或协议,以及二者之间往来的数据通讯方式,终端设备110或终端设备210通过软件程序触发电能表进行固件程序更新。
[0045] 图2中,包括终端设备210、电能表220 226以及可选的集中器250。~
[0046] 电能表220 226根据物理网络组建可相互识别的自组网,理论上任何一台已完成~自身固件升级的电能表都能触发自组网中未完成自身固件升级的电能表升级,如图2所示,电能表220完成自身固件升级后,可以依据电能表224作为中继,给电能表222升级,也可以依据电能表226作为中继,给电能表225升级。实际上,由于网络距离的远近和网络信号的强弱,根据网络特性,一般都是触发附近的电能表升级,如图2所示,电能表220触发电能表
224,226升级,电能表226升级完成后触发电能表225升级,电能表224升级完成后触发电能表222,221升级,电能表225升级完成后触发电能表223升级。由此可知,自组网中的电能表之间信息的传送无需集中器250即可实现,图中的集中器250主要用于转发电能表与服务器端之间的通信信息。
[0047] 终端设备210用来实现触发自组网中的电能表220完成自身固件升级,如此即可产生自组网中第一台已完成固件升级的电能表。
[0048] 电能表220完成自身固件升级后,在自组网中自动触发其它的电能表升级。
[0049] 如图2所示,电能表220 226通过集中器250与服务器端260实现信息交互。~
[0050] 图3是根据一示例性实施例示出的一种应用于自组网中完成自身固件升级的电能表的固件升级方法的流程图。该电能表的固件升级方法适用于图1,图2所示实施环境的自组网。如图3所示,电能表固件升级的方法,该方法应用于自组网中完成自身固件升级的电能表,可以包括以下步骤。
[0051] 在步骤310中,在自组网中发送携带电能表标识获取命令的广播消息,电能表标识获取命令用于指示自组网中应答广播消息的电能表执行自身电能表标识的上报操作。
[0052] 其中,自组网中的电能表本身既是自组网中的通信节点,又是自组网的中继节点,作为通信节点是指电能表通过自组网相互通信,作为中继节点是指电能表能转发其它电能表的数据,即电能表作为中继节点具备了中继设备的一部分功能。
[0053] 中继设备是指在具有相同接口和相同介质访问控制协议的同构网段互联时,中间加入的仪器设备,它可以对传输的信号进行放大并可重发。从而可以避免因网段电缆线路过长而产生的信号衰减,进而有效地提高传输的可靠性。
[0054] 在自组网中没有严格的控制中心,所有电能表的地位是平等的,是一种对等式网络。自组网中任何电能表的故障都不会影响整个网络的运行,具有很强的抗毁性,因此自组网中的电能表无需额外的中继设备即可实现联网和数据的传送,即电能表之间相互组网。
[0055] 正常环境下,自组网中所有的电能表都处于正常计费的工作状态,在这个状态下如果要实现整个自组网中的电能表升级,需要先在自组网中触发一台电能表升级。即通过自组网中的完成固件升级的电能表来触发其它的电能表执行升级。
[0056] 例如,首先,在自组网中选取一台电能表,然后终端设备通过预装的软件程序将升级命令和固件文件发送给这台电能表,从而实现其自身固件升级。其次,这台完成自身固件升级的电能表,在自组网中发送携带电能表标识获取命令的广播消息,收到广播消息的其他电能表对该广播消息进行应答而上传电能表标识,因此发送广播消息的电能表能获取到应答该广播消息的电能表上报的电能表标识。然后,发送广播消息的电能表向与该电能表标识对应的电能表发送升级命令和固件文件,最终触发与该电能表标识对应的电能表执行升级。
[0057] 因此,实现了自组网中的电能表自动升级,提高了升级效率。而且随着自组网中已经完成自身固件升级的电能表数量的增加,能同时触发更多的电能表进行升级,从而进一步提高了升级效率。
[0058] 电能表标识获取命令用于指示执行此命令的电能表获取自身所对应的电能表标识。该电能表标识是识别电能表的特定且唯一的编号,即电能表编号。
[0059] 其中,广播消息是指自组网中的电能表在该自组网中发送的其它电能表一般都能收到的消息。收到该广播消息的电能表通过提取该广播消息的内容并更具该内容对发送该消息的电能表进行应答。
[0060] 自组网中已经完成自身固件升级的电能表,发送携带电能表标识获取命令的广播消息。该广播消息中包括有电能表标识获取命令。
[0061] 自组网中完成自身固件升级的电能表可以被设置为不接收广播消息,或者接收但不响应该广播消息,而自组网中未完成自身固件升级的电能表在收到该广播消息后会对发送该广播消息的电能表进行应答。因此自组网中未完成自身固件升级的电能表在收到携带电能表标识获取命令的广播消息后会对广播消息进行应答,上报其自身的电能表标识。
[0062] 在步骤330中,接收自组网中其它电能表应答所述广播消息而上报的电能表标识。
[0063] 其中,自组网中未升级的电能表收到步骤310发送的广播消息,根据广播消息里的电能表标识获取命令做出响应,向发出该广播信息的电能表上报其自身的电能表标识,完成自身固件升级的电能表接收对广播信息应答的电能表标识。
[0064] 更进一步,对广播信息应答的电能表上报其自身的电能表标识,完成自身固件升级的电能表接收该上报的电能表标识。本方案中,该完成自身固件升级的电能表可以设置为接收最先响应该广播信息的电能表标识,也可以设置为接收最先收到的电能表标识,这样即可实现对电能表进行一对一的升级,即每次仅对一个电能表进行升级操作。
[0065] 虽然一对一的升级方式,稳定可靠,但为了尽可能的提高升级的效率,还可以采用一次对多台应答的电能表进行标记,然后一对一的进行升级,这时候可以根据自组网中电能表的数量来设定每次升级的列中电能表的数量,即一次接收多个电能表标识并对于该电能表标识对应的电能表进行标记,这些进行标记的电能表在升级执行之前,不会接收广播消息,所以更不会对广播消息进行应答,将队列中的电能表按顺序依次进行升级。如果超过预设的时间间隔,被标记且未升级的电能表没有收到应有的回应,则自动恢复对广播消息的接收和应答。
[0066] 此时根据收到电能表标识的时间先后顺序,将电能表标识排成一个队列,并发送队列标记命令将与该队列中电能表标识对应的电能表的队列状态进行标记,然后按照队列中电能表标识的先后顺序,依次对队列中电能表标识对应的电能表升级,这样能有效减少广播次数,提高升级效率。这种一对多的升级方式,如果网络带宽和质量较高的情况下还可以直接一次对队列中的多台电能表同时升级。自组网中的电能表数量特别多的情况下,这种一对多的升级方式更能提高升级效率。
[0067] 更进一步,为了尽可能的提高升级的效率,还可以在预先设置的较短时间内屏蔽队列中进行标记的电能表对广播信息的响应。
[0068] 在步骤350中,按照电能表标识发送升级命令和固件文件,使对应于电能表标识的其它电能表接收到升级命令和固件文件,自动执行自身的固件升级过程。
[0069] 其中,自组网中的任意一台已经完成自身固件升级的电能表(包括自组网中第一台完成自身固件升级的电能表)在升级过程中会收到升级所需的固件文件,该固件文件可以存储在电能表里的存储区域,而且下次收到新的固件文件时会将先前存储区域里的固件文件删除。
[0070] 已经完成自身固件升级的电能表在通过前述步骤得到电能表标识后,向与该电能表标识对应的电能表发送升级命令和固件文件。
[0071] 至此,与该电能表标识对应的电能表收到升级命令和固件文件后,已具备升级所需要的条件,即可执行自身的固件升级过程。如此循环,自组网中越来越多的电能表会被触发升级。
[0072] 通过如上所述的过程,便实现了在自组网中,已经完成自身固件升级的电能表自动触发其它未升级的电能表,进而能够实现自组网中未升级的电能表自动升级,从而有效提高了升级效率。
[0073] 图4是根据图3对应实施例示出的对步骤350的细节进行描述的流程图。该步骤350,如图4所示,可以包括以下步骤。
[0074] 在步骤351中,通过向电能表标识对应的其它电能表发送获取固件版本信息的命令,获得电能表标识对应的固件版本信息。
[0075] 其中,获取电能表标识后,已经完成自身固件升级的电能表向与电能表标识对应的电能表发送获取固件版本信息的命令获得该电能表标识对应的电能表固件版本信息。
[0076] 在步骤353中,判断电能表标识对应的固件版本信息与自身的固件版本信息是否一致,如果不一致,则向与电能表标识对应的电能表发送升级命令和固件文件。
[0077] 其中,根据步骤351的描述,自组网中该完成自身固件升级的电能表已获取到与电能表标识对应的电能表的固件版本信息,这时候判断该电能表标识对应的固件版本信息与自身的版本信息是否一致,如果版本信息不一致,向与电能表标识对应的电能表发送升级命令和固件文件。
[0078] 通过如上所述的过程,在升级固件程序之前能有效避免错误升级或者重复升级,能有有效提高升级的效率,实现自动升级的效果。
[0079] 图5是根据一示例性实施例示出的一种应用于自组网中未完成自身固件升级的电能表的固件升级方法的流程图。该固件升级方法应用于未完成自身固件升级的电能表,如图5所示,可以包括以下步骤。
[0080] 在步骤410中,电能表接收所在自组网中的广播消息,广播消息是由自组网中完成自身固件升级的电能表在此自组网中以广播形式发送的。
[0081] 其中,自组网中,在完成自身固件升级的电能表发送携带电能表标识获取命令的广播消息后,根据广播协议,未完成固件升级的电能表收到该广播消息。
[0082] 在步骤430中,从广播消息提取电能表标识获取命令。
[0083] 其中,对广播信息响应并从步骤410收到的广播信息中提取电能表标识获取命令。
[0084] 其中,对广播信息响应后,与电能表标识对应的电能表收到发送该广播消息的电能表发送的升级命令和升级的固件文件。
[0085] 在步骤450中,执行电能表标识获取命令获得自身的电能表标识,通过上报电能表标识而应答广播消息。
[0086] 其中,电能表通过执行步骤430提取的电能表标识获取命令,获取其自身的电能表标识,并通过上报该电能表标识来应答广播消息。
[0087] 在步骤470中,接收发送广播消息的电能表返回的升级命令和固件文件。
[0088] 其中,发送广播消息的电能表收到应答的电能表标识后,会向该电能表标识对应的电能表发送升级命令和固件文件,因此电能表会接收该升级命令和固件文件。
[0089] 在步骤490中,通过升级命令和固件文件执行自身的固件升级过程。
[0090] 其中,如前所述的,电能表收到升级命令和固件文件,会调用固件文件刷新命令来执行电能表自身的固件升级过程。
[0091] 此时,电能表即完成了自身固件程序的升级,实现了自组网中电能表固件升级的全自动化,有效提高了升级效率。
[0092] 在另一个示例性实施例示出的固件升级方法中,在步骤490之前,该方法还包括以下步骤。
[0093] 校验所述固件文件,判断所述固件文件校验是否通过,如果为是,则进入所述通过所述升级命令和固件文件执行自身的固件升级过程的步骤,如果为否,则结束。
[0094] 其中,固件文件接收后会存储在电能表中,这时候可以对该固件文件进行校验以判断固件文件的正确性和完整性,对固件文件进行校验后再执行升级操作,能有效降低升级失败的几率,从而更能提高升级效率。
[0095] 图6是根据一示例性实施例示出的电能表完成自身固件升级后切换至工作状态的流程图。该固件升级方法应用于完成自身固件升级的电能表,如图6所示,可以包括以下步骤。
[0096] 在步骤510中,调用升级状态命令获取升级状态信息。
[0097] 其中,电能表完成固件程序升级后,调用升级状态命令来获取自身的升级状态信息。
[0098] 在步骤530中,上报所述升级状态信息至服务器端,所述服务器端根据收到的所述升级状态信息向所述电能表下发切换状态命令。
[0099] 将步骤510获取到的升级状态信息可以通过图2中的集中器转发至服务器端。服务器端接收该升级状态信息,并对该升级状态信息进行统计,根据统计结果,判断自组网中电能表的升级情况。可以具体知道自组网中哪些电能表完成了升级,哪些未完成升级。
[0100] 在步骤550中,根据收到的切换状态命令将电能表切换至工作状态。
[0101] 其中,自组网中处在工作状态的电能表是计费运行正常的电能表,在此状态下能接收自组网中的广播消息,而自组网中完成自身固件升级的电能表处在升级状态,在此状态下能触发其它电能表执行固件程序升级。随着自组网中完成固件升级的电能表数量的不断增多,服务器端接收到的升级状态信息也越来越多。通过参考单台电能表升级所需的时间,可以设定一个参考周期,如果超过该时间周期,服务器端不再收到上报的升级状态信息,依此可以判断自组网中的电能表升级基本上已经完成。另外,直接根据服务器端统计的升级状态信息,也可以知道具体有多少电能表完成了升级。服务器端可以根据电能表升级的完成情况来下发切换状态命令,电能表根据服务器端下发的切换状态命令,将电能表自身状态切换为工作状态从而实现正常工作。
[0102] 此时,电能表将升级状态信息上报给服务器端,服务器端根据收到的上报升级状态信息进行统计,能有效判断已完成自身固件升级和未完成自身固件升级的电能表数量,还可以根据这些信息得出剩余未升级的电能表完成自身固件升级所需要的时间,有效提高了升级效率。
[0103] 图7是根据一示例性实施例示出的一种固件升级过程示意图。该固件升级方法应用于未完成自身固件升级的电能表,如图7所示。
[0104] 其中,终端设备671通过软件程序直接升级自组网中任意一台电能表的固件程序。这样即可在自组网中产生第一台已完成固件升级的电能表671后,该已完成固件升级的电能表671下发携带获取电能表标识命令的广播信息,其它电能表会收到该广播消息后响应各自的电能表标识命令,发送广播消息的电能表再通过电能表标识获取电能表的固件版本信息进行比对,如果不同则下发升级命令。
[0105] 然后,未升级的电能表在收到升级命令后触发进程调用接收API进行接收固件,等待固件接收完成后效验接收的固件文件数据。
[0106] 进一步,上述未升级的电能表在效验通过后调度刷新固件API,对自身执行固件升级操作。
[0107] 最后,上述未升级的电能表在刷新自身固件完成后,控制服务API会调度传输通讯API发送携带获取电能表标识命令的广播信息,再获取其它电能表的电能表标识,再通过该电能表标识获取与该电能表标识对应的电能表的固件版本,下发命令为未升级的电能表进行固件升级,如此循环执行升级,直到自组网中的电表全部完成自身固件升级。
[0108] 图8是根据另一示例性实施例示出的电能表运行的服务程序所包含的部分功能的示意图。
[0109] 其中,该服务程序内置在电能表里,在电能表的整个升级过程中,该服务程序一直处在运行状态。该服务程序包括但不限于图8所示模块或功能。示意图仅仅是示例性的描述,并不限于这些功能。
[0110] 图8可以是一种对图7中的电能表中的服务程序做详细化的描述。
[0111] 电能表内置的服务程序主要分为四部分组成。
[0112] 其中,第一部分是服务网络监测线程,主要实现一个特殊的协议栈实现网络连接和组建自组网,并依据网络实现数据传输,数据包括电能表的状态,固件文件,加密和校验信息。
[0113] 第二部分是服务状态机,主要实现电能表在接收各种命令,消息和固件文件,电能表升级中断后重新升级以及电能表运行状态的切换。
[0114] 第三部分是内部服务,主要实现电能表的数据读写,包括固件文件的保存、原始数据的备份和恢复、电能表升级状态信息的上报、自组网中电能表的识别。
[0115] 第四部分是控制服务API,提供内部系统的调用和对外部系统的跳转。
[0116] 如图8所示,该服务程序包括但不限于控制服务API,文件传输API,传输通讯API和刷新固件API。
[0117] 其中,文件传输API包括但不限于固件文件发送命令6821和固件文件发送命令6822。
[0118] 传输传输API包括但不限于发送广播命令6831,上报电能表标识命令6832,接收电能表标识命令6833,发送升级命令6834,接收升级命令6835,获取固件版本命令6836上报状态信息命令6837和切换状态命令6838。
[0119] 刷新固件API包括但不限于固件文件校验命令6841和固件文件刷新命令6842。
[0120] 下述为本公开装置实施例,可以用于执行本公开上述固件升级方法实施例。对于本公开装置实施例中未披露的细节,请参照本公开固件升级方法实施例。
[0121] 图9是根据一示例性实施例示出的一种应用于自组网中完成自身固件升级的电能表的固件升级方法的框图。该固件升级装置可以用于图1,图2所示的实施环境中,执行图3所示的固件升级方法和全部步骤。如图9所示,该固件升级装置包括但不限于:广播消息发送模块710、电能表标识接收模块730和发送模块750。
[0122] 广播消息发送模块710,用于在所述自组网中发送携带电能表标识获取命令的广播消息,所述电能表标识获取命令用于指示所述自组网中应答所述广播消息的电能表执行自身电能表标识的上报操作。
[0123] 电能表标识接收模块730,用于接收自组网中其它电能表应答所述广播消息而上报的电能表标识。
[0124] 发送模块750,用于按照电能表标识发送升级命令和固件文件,使对应于所述电能表标识的其它电能表接收到升级命令和固件文件,自动执行自身的固件升级过程。
[0125] 图10是根据图9对应实施例示出的对升级命令发送模块的细节进行描述的框图。该升级命令发送模块750,如图10所示,包括但不限于:固件版本信息获取模块751和固件版本信息判断模块753。
[0126] 固件版本信息获取模块751,用于通过向所述电能表标识对应的其它电能表发送获取固件版本信息的命令,获得电能表标识对应的固件版本信息。
[0127] 固件版本信息判断模块753,用于判断所述电能表标识对应的固件版本信息与自身的固件版本信息是否一致,如果不一致,则向与电能表标识对应的电能表发送升级命令和固件文件。
[0128] 图11是根据另一示例性实施例示出的一示例性实施例示出的一种应用于自组网中未完成自身固件升级的电能表的固件升级方法的框图。该固件升级装置可以用于图1,图2所示的实施环境中,执行图5所示的固件升级方法和全部步骤。如图11所示,该固件升级装置包括但不限于:广播消息接收模块810、提取模块830、消息应答模块850、接收模块870和固件升级执行模块890。
[0129] 广播消息接收模块810,用于电能表接收所在自组网中的广播消息,广播消息是由自组网中完成自身固件升级的电能表在此自组网中以广播形式发送的。
[0130] 提取模块830,用于从广播消息提取电能表标识获取命令。
[0131] 消息应答模块850,用于执行电能表标识获取命令获得自身的电能表标识,通过上报电能表标识而应答广播消息。
[0132] 接收模块870,用于接收发送广播消息的电能表返回的升级命令和固件文件。
[0133] 固件升级执行模块890,用于通过升级命令和固件文件执行自身的固件升级过程。
[0134] 在另一个示例性实施例中,该固件升级装置,还可以包括但不限于:固件文件校验模块。
[0135] 该固件文件校验模块用于校验固件文件,判断固件文件校验是否通过,如果为是,则进入通过升级命令和固件文件执行自身的固件升级过程的步骤,如果为否,则结束。
[0136] 图12是根据另一实施例示出的电能表完成自身固件升级后切换至工作状态的框图。如图12所示,包括但不限于:状态信息获取模块910,状态信息上报模块930和状态切换模块950。
[0137] 状态信息获取模块910, 用于调用升级状态命令获取升级状态信息。
[0138] 状态信息上报模块930,用于上报升级状态信息至服务器端,服务器端根据收到的升级状态信息向电能表下发切换状态命令。
[0139] 状态切换模块950,用于根据收到的切换状态命令将电能表切换至工作状态。
[0140] 应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围执行各种修改和改变。本发明的范围仅由所附的权利要求来限制。