一种智能电表固件升级方法、设备及存储介质与流程

文档序号:16262549发布日期:2018-12-14 21:41阅读:503来源:国知局
一种智能电表固件升级方法、设备及存储介质与流程

本发明涉及通信技术领域,特别是涉及一种智能电表固件升级方法、设备及存储介质。

背景技术

目前的智能电表发展仍然处于起步阶段,绝大多数的电表在现场完成安装之后都不会做升级,具体原因包括如下几点:一是因为升级成本太高:需要有专人到现场,人力成本太大;二是操作繁琐,耗时非常长:维护人员到达现场之后需要打开表盖,接485线或者红外等进行升级,操作起来比较复杂,并且耗时长影响用户的正常用电。因此,需要有一种更合理的低成本且快速的智能电表固件升级方式是非常有必要的。



技术实现要素:

本发明提供一种智能电表固件升级方法、设备及存储介质,用以解决现有技术中智能电表固件时,成本高、操作繁琐且耗时较长的问题。

为实现上述发明目的,本发明采用下述的技术方案:

依据本发明的与一个方面,提供一种智能电表固件升级方法,包括:

接收主站下发的智能电表的固件升级包;

将所述固件升级包通过广播的形式方式发送至下行的所有电表中。

可选的,如权利要求1所述的方法,其特征在于,所述固件升级包包括多个数据分包,所述将固件升级包通过广播的形式分别发送至下行的所有电表中,包括:

按照所述数据分包的包号依序将所有数据分包分别广播至所有电表中;其中,所述数据分包的第一包中携带有所述所述固件升级包的升级版本号。

可选的,所述按照所述数据分包的包号依序将所有数据分包分别广播至所有电表中,包括:

根据预设的广播次数重复广播所述数据分包的第一包。

可选的,所述按照所述数据分包的包号依序将所有数据分包分别广播至所有电表中,包括;

根据预设的发送时间间隔将所述数据分包分别广播至所有电表中。

可选的,所述将所述固件升级包通过广播的形式发送至下行的所有电表中之后,所述方法还包括:

轮询读取每只表的收包情况,确定每个数据分包的收包成功率;

根据所述收包成功率确定采用广播/组播/单播的方式将收发失败的数据分包重新发送至相应的电表中。

可选的,根据所述收包成功率确定采用广播/组播/单播的方式将收发失败的数据分包重新发送至相应的电表中,包括:

当某个数据分包的收包成功率小于第一预设阈值时,则将所述数据分包通过广播的方式发送至所有电表中;或者,

当某个数据分包的收包成功率大于所述第一预设阈值且小于第二预设阈值时,则将所述数据分包通过组播的方式发送至所述数据分包收包失败的电表中;或者,

当某个数据分包的收包成功率大于第二预设阈值且小于100%时,则将所述数据分包通过单播的方式发送至所述数据分包收包失败的电表中。

可选的,所述轮询读取每只表的收包情况后,所述方法还包括:

根据预设周期向所述主站上报传包状态,以使所述主站获知升级进展。

可选的,所述接收主站下发的智能电表的固件升级包之后,所述方法还包括:

暂停当前处理的任务,将固件升级任务的优先级调整最高。

可选的,通过局域网或通用分组无线服务gprs通信与主站进行通信,通过电力线plc、射频rf或广域物联/lora中的任一种方式与下行的所有电表进行通信。

可选的,所述方法还包括:

在确定所述所有电表接收到所述固件升级包,通过广播的方式让所有的电表表进行校验;

待校验完成后,通过单播的方式对每个电表进行激活,记录电表升级结果,并将所述电表升级结果通知给所述主站。

依据本发明的与一个方面,提供一种智能电表固件升级设备,包括:存储器和处理器;其中,所述存储器中存储有智能电表固件升级程序,当所述智能电表固件升级程序被所述处理器执行时,以实现上述的智能电表固件升级方法。

依据本发明的与一个方面,提供一种计算机可读存储介质,所述计算机可读存储介质存储有智能电表固件升级程序,当所述智能电表固件升级程序被所述处理器执行时,以实现上述的智能电表固件升级方法。

本发明有益效果如下:

本发明实施例所提供的智能电表固件升级方法、设备及存储介质,通过接收主站下发的智能电表的固件升级包,而后将固件升级包通过广播的形式方式发送至下行的所有电表中。这样通过集中器对下挂的电表做批量升级处理,通过本发明可以有效节省人力成本和时间成本,提高了固件升级的效率。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

为了更清楚地说明本发明实施例或现有中的方案,下面将对实施例或现有描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例中智能电表固件升级的系统架构图;

图2为本发明实施例中智能电表固件升级方法的流程图;

图3为本发明一具体实施例中智能电表固件升级方法的时序图;

图4为本发明一具体实施例集中器广播后电表中接收数据分包的状态图;

图5为本发明一具体实施例集中器组播后电表中接收数据分包的状态图;

图6为本发明一具体实施例集中器单播后电表中接收数据分包的状态图;

图7为本发明实施例中智能电表固件升级设备的原理框图。

具体实施方式

以下结合附图以及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不限定本发明。

如图1所示,本发明实施例中智能电表固件升级的系统架构图。该系统中包括:主站、集中器以及集中器下挂的所有电表。其中,集中器可以弱化成主站和电表之间进行数据交互的其他中间通道,集中器和电表之间的通信方式不局限于plc(powerlinecommunication,电力线通信),rf(radiofrequency,射频)/lora(longrange,广域物联),主站和集中器之间通过局域网或gprs通信。这里的通信方式仅用于举例说明,不用于对本发明的限定,对于其他能实现本发明的方式都在本发明的保护范围之内。

实施例1

本发明实施例所提供的智能电表固件升级方法,如图2所示,具体包括如下步骤:

步骤11,接收主站下发的智能电表的固件升级包;

在该步骤中,由于主站和集中器之间是通过局域网或gprs进行通信的,相对来说,传包速度较快,因此该步骤相对于整个升级流程来说花销基本是可忽略的。以电表固件升级包200k,每包大小为1k,传输一包的时间2s,总共花费的时间:(200/1)*2s=400s,即7分钟左右主站就可以将固件升级包传到集中器上。

步骤12,将固件升级包通过广播的形式发送至下行的所有电表中。

在该步骤中,由于集中器处理升级作用之外,还有正常的任务,例如抄表任务等等,因此,本发明集中器在收到电表的固件升级包之后,需要暂停当前处理的任务,将电表的固件升级任务调整至最高优先级,这样可以有效避免其他任务影响固件升级,导致整个固件升级的过程加长,影响用户的正常用户情况。

由于固件升级包中包括多个数据分包,因此,在将固件升级包通过广播的形式发送至下行的所有电表中时,按照数据分包的包号依序将所有数据分包分别广播至所有电表中。具体地,包括如下步骤:

步骤121,广播数据分包的第一包至所有电表。

这里,第一包携带固件升级包的升级版本号,用以电表根据升级版本号确定是否进行本次升级。在集中器下挂的所有电表中可能存在不同厂家或者同一厂家不同型号的电表,通过在第一数据分包中设置升级版本号,可以有效确保升级的正确,避免影响其他非需要升级电表的正常使用。

其中,在该步骤中,需要根据预设的广播次数重复广播数据分包的第一包。这里设置为广播3次。由于第一包中携带升级版本号,而该版本号是决定后续升级的关键。因此,在该实施例中,为了能基本确保所有电表能收到第一包,需要发送多次。电表在接收到第一分包之后对升级版本号进行校验:如果版本号属于同一型号的电表,则电表对后续进行处理,否则不对后续广播的数据分包进行处理。

步骤122,依序按照包号将数据分包从二包至最后一包分别广播至所有电表中。电表收到数据分包之后,若在上步处理过第一数据分包后,则会收下后续发送的数据分包,进行数据分包校验(例如格式校验等),并按照包号将数据包放到相应的存储空间。

其中,在发送后续的数据分包时,优选的,根据预设的发送时间间隔将数据分包分别广播至所有电表中,即连续两包之间需设置有效的时间间隔。在该实施例中,设置的时间间隔为5s,这样可以有效保证数据分包都能够被接收,避免因同时发送数据分包导致丢包的现象。

为了进一步保证电表接收数据包的成功率,本发明一实施例中,需要重复一次步骤122的的广播发送操作。电表在接收到下发的升级包后,根据包号确定已经接收过,则将该数据分包进行丢弃即可,否则需要将相应的数据分包存储至相应的存储位置。

基于上述可知,这样通过集中器对下挂的电表做批量升级处理,通过本发明可以有效节省人力成本和时间成本,提高了固件升级的效率。

实施例2

基于上述的实施例,正常情况下,通过广播之后,多数数据分包已经传输成功,但是同样存在电表未接收到数据分包的情况。因此,在该实施例中,针对少数数据分包未被接收的情况进行了限定。

具体地,本发明实施例所提供的智能电表固件升级方法,在将固件升级包通过广播的形式发送至下行的所有电表中之后,还包括:

步骤13,轮询读取每只表的收包情况,确定每个数据分包的收包成功率。

在该步骤中,主站向集中器下发轮询指令,集中器将轮询指令发送至每个电表中,并读取每一只表的收包情况。这里的收包情况包括失败、成功以及相应的数据分包包号。这样可以确定具体哪一数据分包接收成功或者接收失败。其中,在轮询后,集中器周期性的向主站上报当前传包状态(收包情况),让主站知道当前升级进展,其中周期可设置,对于已经传包完成的电表,不做重复上报,但是提供传包进度查询接口,使主站也可以定周期来查询传包进度。

步骤14,根据收包成功率确定采用广播/组播/单播的方式将收发失败的数据分包重新发送至相应的电表中。

在该步骤中,预先设置第一阈值和第二阈值。根据第一阈值和第二阈值,来判断收包失败的数据分包的发送方式。这里,每个数据分包的收包成功率=(第n包收包成功的电表数)/(总的升级电表数)。

具体地,根据收包成功率确定采用广播/组播/单播的方式将收发失败的数据分包重新发送至相应的电表中,包括:

当某个数据分包的收包成功率小于第一预设阈值(例如80%)时,则将数据分包通过广播的方式发送至所有电表中;或者,

当某个数据分包的收包成功率大于第一预设阈值且小于第二预设阈值(例如90%)时,则将数据分包通过组播的方式发送至数据分包收包失败的电表中;或者,

当某个数据分包的收包成功率大于第二预设阈值且小于100%时,则将数据分包通过单播的方式发送至数据分包收包失败的电表中。

步骤15,重复步骤13和步骤14,确定后续数据分包的发送方式,直至所有电表都收包成功,即收包成功率为100%。

基于上述可知,在完成实施例1中的广播后,为了保证数据分包都被电表接收,继续根据数据分包的收包状态确定后续收包失败发送方式:当某些数据包的收包失败高时,可再次对数据分包进行广播;而当收包失败比较低时,可可采用组播的方式进行发送,而收包失败非常低时,可采用单播进行发送。因此,在该实施例中,通过广播、组播以及单播相结合的发送方式,可以确保固件升级以最小的时间开销来完成,提高升级的效率,避免对用户的正常用电造成严重影响。

实施例3

下面结合具体的实例对本发明的技术内容进行说明。如图3所示,在该实施例中,待集中器完整的收完电表升级包之后,集中器开启电表升级,集中器对电表升级分三轮执行:

第一轮采用广播,广播的目的是将多数升级包下发到电表侧;

第二轮采用组播,组播的目的是将有局部电表共同没有传成功的数据包下发给电表;

第三轮采用单播,其目的是将前面两步没有传输成功的数据包下发给电表。

其中,在通过第一轮广播后,电表中接收数据分包的情况如图4所示。可知,在第一轮广播后还有局部电表未成功某些接收数据分包,可通过组播达到发送的目的。在通过第二轮组播后,电表中接收数据分包的情况如图5所示。可知,在第一轮广播后还有少量电表未成功某些接收数据分包,这时通过点对点的通信即可将数据分包发送至对应的电表中。在通过第三轮单播后,电表中接收数据分包的情况如图6所示。可知,通过三轮的处理后,所有的电表都可以接收到固件升级包。

在该实施例中,以电表升级包200k,每个数据分包127字节为例,对本发明中固件升级包发送的高效性进行说明。具体如下:

(1)在广播阶段,数据分包的包数为:(200*1024)/127=1612

连续两次广播间隔时间:5s,所有数据分包需要广播2次;

广播总时间的开销为:1612(包数)*5(秒)*2(次)s=16120s=268min=4h28min

(2)在组播阶段,由于轮询开销:200*5s=1000s=16min,组播开销:20%*1612*5*2s=3224s=53min,那么总的开销可得为:16min+53min=69min

(3)在单播阶段,由于再次轮询开销:200*5s=1000s,而单播的开销为:10%*1612*(200*20%)*5*2s==64480s=1074min=17h54min。

基于上述可知,在该实施例中,固件升级包只需不到一天的时间即可完成数据的发送。相对于人工维护的方式,需人工到现场进行维护,可以有效降低人工的成本和时间成本。

实施例4

基于上述任一实施例,本发明实施例固件升级包发送完成后,需要继续对电表进行校验和激活操作。具体地,包括如下:

在确定所有电表接收到固件升级包,通过广播的方式让所有的电表表进行校验;

待校验完成后,通过单播的方式对每个电表进行激活,记录电表升级结果,并电表升级结果通知给主站。

这里,通过广播让所有电表进行校验,目的是让电表接收完所有的固件升级的数据分包之后,自行完成整个固件升级包的校验(例如,确认固件升级包是否完成等),确保将要升级的升级包是正确的。待校验完成之后,电表记录校验状态(校验成功/校验失败)。

在进行激活时,需要对每一只表依次做单播激活,每次激活之后记录电表升级成功失败记录。目的是让电表做升级操作,在激活过程中如果出现失败,那么电表将回退原来的版本。同时集中器将激活结果上报到主站,主站知晓升级结果。其中,在电表执行激活操作之前,首先检测校验状态,如果是校验成功,则进入激活操作,如果是校验失败,则激活失败,电表仍然维持校验失败的状态,以便主站查询升级失败原因。升级之后,需将电表升级结果通知给主站,使主站感知到电表升级成功或失败的结果。

本发明一实施例中,上述实施例中固件升级包的发送和本实施例中的校验和激活,对整个固件升级的时间开销进行的计算。具体地,

电表自行检验时间约1min,时间开销:5s+1min;

激活操作时,时间开销:200(电表数)*5s=1000s=16min;

升级成功事件上报的时间开销为:3s

而总共时间开销具体如下:

主站传包给集中器时间:7min广播时间:268min组播时间:69min

单播时间:1074min校验时间:1min激活开销:16min上报开销:1min

总计固件升级的开销为:7+268+69+1074+1+16+1=1436min=1d

通过上述实施例可以看到,本发明在对集中器下的电表做批量升级时优势非常明显,节省了人力成本,提高了升级效率。

实施例5

根据本发明的实施例,提供了一种智能电表固件升级设备,用于实现实施例1~4中任一实施例中的方法。如图7所示。该设备括处理器52以及存储有处理器52可执行指令的存储器51。其中,处理器52可以是通用处理器,例如中央处理器(centralprocessingunit,cpu),还可以是数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic),或者是被配置成实施本发明实施例的一个或多个集成电路。存储器51,用于存储程序代码,并将该程序代码传输给cpu。存储器51可以包括易失性存储器(volatilememory),例如随机存取存储器(randomaccessmemory,ram);存储器51也可以包括非易失性存储器(non-volatilememory),例如只读存储器(read-onlymemory,rom)、快闪存储器(flashmemory)、硬盘(harddiskdrive,hdd)或固态硬盘(solid-statedrive,ssd);存储器51还可以包括上述种类的存储器的组合。

具体地,该智能电表固件升级设备,包括存储器51和处理器;其中,存储器51中存储有计算机可执行的智能电表固件升级程序,处理器52用于执行智能电表固件升级程序以实现如下步骤:

接收主站下发的智能电表的固件升级包;

将固件升级包通过广播的形式方式发送至下行的所有电表中。

可选的,固件升级包包括多个数据分包,处理器52用于执行智能电表固件升级程序以实现如下步骤:

按照数据分包的包号依序将所有数据分包分别广播至所有电表中;其中,数据分包的第一包中携带有固件升级包的升级版本号。

可选的,处理器52用于执行智能电表固件升级程序以实现如下步骤:

根据预设的广播次数重复广播数据分包的第一包。

可选的,处理器52用于执行智能电表固件升级程序以实现如下步骤:

根据预设的发送时间间隔将数据分包分别广播至所有电表中。

可选的,将固件升级包通过广播的形式发送至下行的所有电表中的步骤之后,处理器52用于执行智能电表固件升级程序以实现如下步骤:

轮询读取每只表的收包情况,确定每个数据分包的收包成功率;

根据收包成功率确定采用广播/组播/单播的方式将收发失败的数据分包重新发送至相应的电表中。

可选的,处理器52用于执行智能电表固件升级程序以实现如下步骤:

当某个数据分包的收包成功率小于第一预设阈值时,则将数据分包通过广播的方式发送至所有电表中;或者,

当某个数据分包的收包成功率大于第一预设阈值且小于第二预设阈值时,则将数据分包通过组播的方式发送至数据分包收包失败的电表中;或者,

当某个数据分包的收包成功率大于第二预设阈值且小于100%时,则将数据分包通过单播的方式发送至数据分包收包失败的电表中。

可选的,处理器52用于执行智能电表固件升级程序以实现如下步骤:

根据预设周期向主站上报传包状态,以使主站获知升级进展。

可选的,接收主站下发的智能电表的固件升级包的步骤之后,处理器52还用于执行智能电表固件升级程序以实现如下步骤:

暂停当前处理的任务,将固件升级任务的优先级调整最高。

其中,该设备通过局域网或gprs通信通与主站进行通信,通过rf/plc/lora等方式与下行的所有电表进行通信。

可选的,处理器52用于执行智能电表固件升级程序以实现如下步骤:

在确定所有电表接收到固件升级包,通过广播的方式让所有的电表表进行校验;

待校验完成后,通过单播的方式对每个电表进行激活,记录电表升级结果,并将电表升级结果通知给主站。

实施例6

本发明实施例还提供了一种计算机可读存储介质。这里的计算机可读存储介质存储有一个或者多个程序。其中,计算机可读存储介质可以包括易失性存储器,例如随机存取存储器;存储器也可以包括非易失性存储器,例如只读存储器、快闪存储器、硬盘或固态硬盘;存储器还可以包括上述种类的存储器的组合。当计算机可读存储介质中一个或者多个程序可被一个或者多个处理器执行,以实现实施例1~4中任一实施例中所提供的智能电表固件升级方法。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。

虽然通过实施例描述了本申请,本领域的技术人员知道,本申请有许多变形和变化而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

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