CN116521210B - 一种物联网水表固件差量升级的方法 - Google Patents
一种物联网水表固件差量升级的方法 Download PDFInfo
- Publication number
- CN116521210B CN116521210B CN202310412442.6A CN202310412442A CN116521210B CN 116521210 B CN116521210 B CN 116521210B CN 202310412442 A CN202310412442 A CN 202310412442A CN 116521210 B CN116521210 B CN 116521210B
- Authority
- CN
- China
- Prior art keywords
- firmware
- internet
- things
- data
- water meter
- 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
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 title claims abstract description 215
- 238000000034 method Methods 0.000 title claims abstract description 102
- 230000008569 process Effects 0.000 claims abstract description 32
- 238000004891 communication Methods 0.000 claims abstract description 25
- 238000012423 maintenance Methods 0.000 claims abstract description 18
- 238000011084 recovery Methods 0.000 claims abstract description 6
- 238000007726 management method Methods 0.000 claims description 94
- 238000012360 testing method Methods 0.000 claims description 26
- 238000004422 calculation algorithm Methods 0.000 claims description 18
- 238000012795 verification Methods 0.000 claims description 18
- 230000000739 chaotic effect Effects 0.000 claims description 15
- 230000003993 interaction Effects 0.000 claims description 10
- 238000011056 performance test Methods 0.000 claims description 10
- 230000006855 networking Effects 0.000 claims description 6
- 238000013500 data storage Methods 0.000 claims description 4
- 230000007774 longterm Effects 0.000 claims description 4
- 238000005516 engineering process Methods 0.000 abstract description 5
- 230000005540 biological transmission Effects 0.000 description 18
- 230000006870 function Effects 0.000 description 11
- 230000004913 activation Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 6
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000003860 storage Methods 0.000 description 5
- 230000002159 abnormal effect Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000001186 cumulative effect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 238000012417 linear regression Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000008439 repair process Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 238000013524 data verification Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000010998 test method Methods 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000013024 troubleshooting Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/658—Incremental updates; Differential updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16Y—INFORMATION AND COMMUNICATION TECHNOLOGY SPECIALLY ADAPTED FOR THE INTERNET OF THINGS [IoT]
- G16Y10/00—Economic sectors
- G16Y10/35—Utilities, e.g. electricity, gas or water
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16Y—INFORMATION AND COMMUNICATION TECHNOLOGY SPECIALLY ADAPTED FOR THE INTERNET OF THINGS [IoT]
- G16Y40/00—IoT characterised by the purpose of the information processing
- G16Y40/10—Detection; Monitoring
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16Y—INFORMATION AND COMMUNICATION TECHNOLOGY SPECIALLY ADAPTED FOR THE INTERNET OF THINGS [IoT]
- G16Y40/00—IoT characterised by the purpose of the information processing
- G16Y40/50—Safety; Security of things, users, data or systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0823—Errors, e.g. transmission errors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- 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/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/04—Protocols for data compression, e.g. ROHC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/001—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using chaotic signals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Development Economics (AREA)
- Quality & Reliability (AREA)
- Economics (AREA)
- General Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Business, Economics & Management (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Environmental & Geological Engineering (AREA)
- Computer Hardware Design (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了物联网水表固件差量升级的方法,应用于物联网水表设备,物联网水表设备与物联网设备管理***通信连接,包括:采用差量方式进行升级,对比当前固件与新固件,找出差量行并根据差量行生成固件升级信息,固件差量表;物联网技术的应用:传统的水表升级方法通常需要人工维护或者现场升级,而本发明的方法及其***使用物联网技术,实现了远程升级和远程维护,大大提高了水表的维护效率;自动化程度高:整个升级过程实现了自动化,无需人工干预,减少了人工出错的风险,同时也提高了升级的效率;数据备份功能:升级过程中加入了数据备份的步骤,保证了数据不会因为升级而丢失,同时也为日后的数据恢复提供了便利。
Description
技术领域
本发明涉及物联网水表技术领域,特别涉及一种物联网水表固件差量升级的方法。
背景技术
近年来,随着国民经济稳步增长,城镇化推行持续加速,智慧城市理念和实践不断发展。人们对水资源稀缺性认识逐步提高,用水控制已经成为国家制定相关行业政策的目标之一,而要达到这个目标,需要相关计量仪表具备数据分析、远程操作、远程计量的功能。这加速了下游行业对物联网水表的需求,为物联网水表及其管理***的生产带来了持续的市场需求和良好的发展机遇,物联网水表行业进入了高速发展的历史最佳时机。
随着用户体验的不断增加,物联网水表固件的升级变得越来越频繁,目前的物联网水表升级通常采用的是整体固件升级的方式,将存储器划分为引导区、应用区1、应用区2三部分,升级时将完整的新固件下发至物联网水表,存储至应用区2,再从引导区跳转至应用区2进行运行。该升级方案对物联网水表存储器空间要求高,且需要将完整固件下发至物联网水表,升级过程数据传输量大,升级时间长,损耗物联网水表电池容量,且占用NB-IoT物联网资源的多。
为此,提出一种物联网水表固件差量升级的方法。
发明内容
有鉴于此,本发明实施例希望提供一种物联网水表固件差量升级的方法,以解决或缓解现有技术中存在的技术问题,至少提供一种有益的选择;
本发明实施例的技术方案是这样实现的:本发明第一方面提供了物联网水表固件差量升级的方法,应用于物联网水表设备,物联网水表设备与物联网设备管理***通信连接,包括:采用差量方式进行升级,对比当前固件与新固件,找出差量行并根据差量行生成固件升级信息,固件差量表,固件差量包。物联网设备管理***将固件升级信息、固件差量表,固件差量包依次传输至物联网水表设备,并进行存储。物联网水表依据固件升级信息,对接收完成的固件差量包中的差量数据进行完整性,正确性判断。校验通过后,执行升级操作,处理器跳转运行引导区固件,将存储在备份区的固件差量数据依据固件差量表将每一行写入物联网水表设备应用固件区域,写入完成后,处理器跳转至应用区固件运行,完成升级。
本发明实施例提供的物联网水表固件差量升级的方法,采用差量式升级方案,只针对当前固件和新固件的差量部分进行传输,并依靠查量表和升级信息,确保升级时差量固件的完整性,以及写入存储器应用固件区域时的地址准确性,同时采用LZO算法对差量数据进行压缩和解压,进一步减少传输的固件数据。该方法极大的减少了升级时传输固件包的个数,提升了固件升级的速度,减少了升级过程对物联网水表电池电量的损耗,以及减少批量升级时对NB-IoT物联网资源的占用。
可选地,物联网水表固件差量升级的方法包括:对固件差量包中的数据采用LZO算法进行压缩后生成新的固件差量包,进一步的减少传输的固件数据长度。
可选地,物联网水表固件差量升级的方法包括:新固件与当前固件以16字节为一行进行比对,找出固件差量行,固件差量包由差量行按地址先后组成,每个固件差量包最大由32个差量行组成,并对差量行进行编号。固件差量表用来表明每个固件差量行在物联网水表的固件中的地址信息,固件差量表中第一个字节的第一个BIT位代表固件数据第一行,第一个字节的第二个BIT位代表固件数据第二行,依次进行对应,当某一行为差量行时,则该BIT位置0,否则对应BIT位置1。固件差异表可以确保物联网水表在升级时将差量固件按行写入存储器应用固件区域地址的正确性。
可选地,物联网水表固件差量升级的方法还包括:生成固件升级信息。所述固件升级信息包括:固件差量包数量,每个固件差量包中固件数据长度,所有固件差量包数据总校验,新固件版本号。固件升级信息用于差量数据接收完整性的判断,差量数据接收正确性的判断。
可选地,还包括:在固件差量包传输完成后,发送固件差量包传输状态查询命令,接收物联网水表设备返回固件差量包传输状态,判断物联网水表设备是否接收到完整的固件差量包,如物联网水表设备返回的固件差量包传输状态中存在未接收到的固件差量包,则对这些固件差量包进行重传。当结束数据差量包数量达到固件差量包数量后,对差量数据进行校验,当差量数据校验与差量信息包中的校验一致时,方可执行升级操作。
本发明第二方面提供了物联网设备管理***,用于执行第一方面,包括执行固件与新固件的对比,找出差量行并根据差量行生成固件升级信息,固件差量表,固件差量包。以及固件升级信息,固件差量表,固件差量包向物联网水表的传输。
可选地,还包括:在固件差量包传输完成后,发送固件差量包传输状态查询命令,接收物联网水表设备返回固件差量包传输状态,判断物联网水表设备是否接收到完整的固件差量包,如物联网水表设备返回的固件差量包传输状态中存在未接收到的固件差量包,则
对这些固件差量包进行重传。
可选地,还包括物联网设备管理***在判断物联网水表设备已接收所有固件差量包后,向物联网水表设备发送升级激活指令。
可选地,还包括:接收物联网水表设备完成升级后发出的最新固件版本信息,并依据该信息来确定升级是否成功。
本发明第三方面提供了物联网水表设备,用于执行第一方面,包括接收物联网设备管理***下发的固件差量表,固件差量包。以及固件升级信息,并将差量固件按行写入存储器应用固件区域地,完成升级。
可选地,还包括:物联网水表设备包括水表基表,电子模块。其中,电子模块包括处理器,存储器,NB-IoT通信模块。存储器,用于存储固件,并划分为3部分,引导区、应用区、备份区;其中引导区用于存储执行升级数据写入的固件,应用区用于存储当前运行的固件,备份区用于升级时存储常量固件。处理器,用于执行固件;NB-IoT通信模块,用于实现物联网水表与物联网设备管理***之间的数据交互。
可选地,还包括:在接收到物联网设备管理***传输的固件差量表,固件差量包。以及固件升级信息后存入存储器的备份区域。
可选地,还包括:在接收到物联网设备管理***传输的固件差量包传输状态查询命令后,将已接收到的固件差量包状态返回至物联网设备管理***。
可选地,还包括:在接收到物联网设备管理***传输的升级激活指令后,对存储的差量固件进行校验,并与固件升级信息中的校验进行比对,在比对通过后,执行升级操作,处理器跳转运行引导区固件,将存储在备份区的固件差量数据依据固件差量表将每一行写入物联网水表设备应用固件区域,写入完成后,处理器跳转至应用区固件运行,完成升级;
水表读取上行数据时,对数据进行Lorenz混沌加密;
S3.1、设定Lorenz混沌***的三个参数值;
S3.2、根据初始密钥和Lorenz混沌***的初始状态,生成伪随机数序列;
S3.3、将明文分成至少两个长度相等的块,每个块进行一次异或操作;
S3.4、将异或结果与伪随机数序列进行异或操作,得到密文;
S3.5、将密文发送给物联网管理***,物联网管理***进行相反的操作,将密文与伪随机数序列进行异或操作,得到异或结果,再将异或结果与伪随机数序列进行异或操作,得到明文。
设定Lorenz混沌***的三个参数值a,b,c,以及初始状态值x0,y0,z0,生成初始密钥K;
Lorenz混沌***的方程组:
dx/dt=a(y-x)
dy/dt=x(b-z)-y
dz/dt=xy–cz
生成伪随机数序列r1,r2,...,rn,其中ri为第i个时间步的状态值。
设初始状态为(x0,y0,z0),时间步长为Δt,通过迭代Lorenz混沌***方程组,得到第i个时间步的状态值(xi,yi,zi):
xi+1=xi+a(yi-xi)Δt
yi+1=yi+[xi(b-zi)-yi]Δt
zi+1=zi+[xiyi-czi]Δt
i=0,1,...,n-1
根据状态值(xi,yi,zi)计算伪随机数序列:
ri=xi mod 256
其中,i=1,2,...,n
加密明文:
将明文M分成若干个长度相等的块M1,M2,...,Mk;对于第i个块Mi,进行如下操作:
将Mi转换成数字,得到Mi';
生成随机数Si;
计算异或结果;
Ci=Mi'xor Si
将Ci和Si的值按照预定格式组合成一个密文块,得到CiSi。
重复上述步骤,直到所有明文块均被加密。
物联网管理***根据相同的初始参数和初始密钥生成伪随机数序列r1,r2,...,rn,与水表的伪随机数序列一致:
解析CiSi,得到Ci和Si的值;
将Ci和Si的值按照预定格式分别解密,得到Mi'和Si;
计算异或结果:
Mi'=Ci xor Si
将Mi'转换成字符,得到Mi;
重复上述步骤,直到所有密文块均被解密。
另一方面,本发明提供一种物联网水表固件差量升级***,上述方法的同时,其还包括如下实体部件:
物联网水表:集成了物联网通信模块和固件升级模块的水表设备;
服务器:存储升级数据包和管理升级过程的服务器;
客户端管理嵌入式模块:与服务器进行通信,管理升级数据包及控制升级过程;
数据存储器:存储水表设备的数据备份和测试结果等信息;
其中,数据存储器划分为3部分:引导区、应用区、备份区;其中引导区用于存储执行升级数据写入的固件,应用区用于存储当前运行的固件,备份区用于升级时存储常量固件;
NB-IoT通信模块:用于实现物联网水表与物联网设备管理***之间的数据交互;
物联网水表接收在接收到物联网设备管理***传输的固件差量表,固件差量包;以及固件升级信息后存入存储器的备份区域;在接收到物联网设备管理***传输的固件差量包传输状态查询命令后,将已接收到的固件差量包状态返回至物联网设备管理***;在接收到物联网设备管理***传输的升级激活指令后,对存储的差量固件进行校验,并与固件升级信息中的校验进行比对,在比对通过后,执行升级操作将固件差量数据依据固件差量表将每一行写入物联网水表设备存储器的应用固件区域,完成升级。
上述升级***工作流(WFMS)如下所示:
WF1、客户端管理软件从服务器中获取最新的升级数据包,并对其进行校验;
WF2、如果数据包完整且正确,则进行数据备份;并执行下一步骤;
WF3、将下载的新固件加载到物联网水表中,实现固件的升级;升级完成后,***会自动重新启动,以使新固件生效;
WF4、将之前备份的数据恢复到新的固件中,以确保升级后***的数据状态与升级前一致;
WF5、对升级后的固件进行再次校验;
WF6、对升级后的***进行自检;
WF7、对升级后的物联网水表进行性能测试;
WF8、将测试结果上传到服务器,以便监测物联网水表的运行状态;
WF9、对物联网水表进行定期维护,包括***升级、数据备份等,以确保其长期稳定运行。
与现有技术相比,本发明的有益效果是:
一、物联网技术的应用:传统的水表升级方法通常需要人工维护或者现场升级,而本发明的方法及其***使用物联网技术,实现了远程升级和远程维护,大大提高了水表的维护效率;
二、自动化程度高:整个升级过程实现了自动化,无需人工干预,减少了人工出错的风险,同时也提高了升级的效率。
三、数据备份功能:升级过程中加入了数据备份的步骤,保证了数据不会因为升级而丢失,同时也为日后的数据恢复提供了便利。
四、自检和性能测试功能:在升级后实现自检和性能测试,可以有效避免升级后出现问题而导致的***不稳定和性能下降。
五、升级数据的校验功能:在升级过程中加入了数据校验的步骤,可以有效防止由于升级数据出错而导致的升级失败。
与现有技术相比,本发明的升级方法和***解决了传统技术中的如下问题:
一、传统的水表升级方法需要人工维护或者现场升级,操作繁琐,效率低下。
二、传统的水表升级方法容易出现数据丢失、升级失败等问题,给水表运营和维护带来麻烦。
三、传统的水表升级方法无法进行自动化升级,无法满足水表自动化运营的需求。
因此,整套水表的升级方法和***通过物联网技术的应用,自动化程度高、数据备份、自检和性能测试等功能的加入,成功地解决了传统水表升级方法中存在的多个问题,具有很高的实用价值。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是物联网水表固件差量升级的方法过程图;
图2是物联网水表设备和物联网设备管理***交互示意图;
图3是物联网水表设备示意图;
图4是LZO压缩算法流程示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明的具体实施方式做详细的说明。在下面的描述中阐述了很多具体细节以便于充分理解本发明。但是本发明能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似改进,因此本发明不受下面公开的具体实施例的限制;
在现有技术中,随着用户体验的不断增加,物联网水表固件的升级变得越来越频繁,目前的物联网水表升级通常采用的是整体固件升级的方式,将存储器划分为引导区、应用区1、应用区2三部分,升级时将完整的新固件下发至物联网水表,存储至应用区2,再从引导区跳转至应用区2进行运行。该升级方案对物联网水表存储器空间要求高,且需要将完整固件下发至物联网水表,升级过程数据传输量大,升级时间长,损耗物联网水表电池容量,且占用NB-IoT物联网资源的多;为此,请参阅图1-4,本发明提供一种技术方案以解决上述技术问题:一种物联网水表固件差量升级的方法,包括连接有物联网管理***的水表,并对水表进行升级;
首先,将当前固件文件和新固件文件导入物联网设备管理***;
随后,方法包括如下步骤:
S1、获取升级数据:使用物联网通信模块从服务器中获取升级数据包,该数据包包含了升级所需的全部程序、配置文件和固件;
该工序的目的是从服务器获取最新的升级数据包,以更新物联网水表的固件和配置文件;通过物联网通信模块连接到服务器,并获取服务器上的升级数据包。该数据包包含了升级所需的全部程序、配置文件和固件;
具体的,升级数据包需要包含与物联网水表型号、硬件版本和现有软件版本相匹配的固件和配置文件。
S2、校验升级数据:对从服务器下载的升级数据包进行校验,检查数据完整性和正确性。如果数据包损坏或不完整,则需要重新下载;
对从服务器下载的升级数据包进行校验,以确保数据的完整性和正确性;
具体的,通过校验算法对从服务器下载的升级数据包进行校验,如果数据包损坏或不完整,则需要重新下载;
细节:如图4所示,校验算法可以使用MD5或SHA等哈希算法来检查数据的完整性和正确性;
S3、数据备份:对原始数据进行备份;
对原始数据进行备份确保在升级过程中不会丢失重要数据;
具体的,将原始数据备份到可靠的存储介质中,如本地存储或云存储;备份的数据包括物联网水表的配置文件、历史数据和设备信息等,以确保升级后***的数据状态与升级前一致;
S4、固件升级:将下载的固件信息加载到物联网水表中,实现固件的升级;升级完成后,***自动重新启动,以使新固件生效;
将下载的新固件加载到物联网水表中,实现固件的升级;将下载的新固件通过物联网通信模块加载到物联网水表中;升级完成后,***会自动重新启动,以使新固件生效;在固件升级过程中,需要确保物联网水表与服务器的连接稳定,以避免升级中断或失败;
具体的,S4.1、物联网设备管理***对比当前固件文件和新固件文件,以16字节为一行进行比对,找出差量行并根据差量行生成固件升级信息,固件差量表;固件信息中的校验为所有固件差异行数据的累计和;固件差量包数量等于固件差异行总数除以固件差异包中差量数据行数得出;固件差量表为固件差异行在固件文件中的位置信息;
S4.2、将固件差量数据依据LZO算法进行压缩后,按每行16字节总成固件差量包,每个固件查量包携带32行差异数据;
S4.3、物联网设备管理***生成升级任务,包含固件升级信息任务、固件差异表任务和固件差量包任务;
S4.4、物联网水表触发数据上传,与物联网设备管理***进行数据交互,物联网设备管理***接收到数据后,开始下发升级任务;
S4.5、物联网设备管理***下发固件升级信息任务,物联网水表接收到该任务后,存储固件升级信息,并返回任务执行成功;
S4.6、物联网设备管理***下发固件差量表任务,物联网水表接收到该任务后,存储固件差异表信息,并返回任务成功。
其中,使用线性回归分析对传感器数据进行拟合,获得精确数据校准结果:
传感器读数:yi;
实际值:xi;
拟合数据:
y=kx+b
k:斜率;
B:截距;
通过最小二乘法求解出k和b的值,即可得到校准后的数据。
示例性的,假设有一组传感器数据:
y1、y2...yn;
与它们对应的真实值为x1、x2...xn;
通过线性回归来校准传感器数据,得到更准确的结果;
具体而言,找到一个线性模型y=ax+b;使得模型的拟合程度尽可能好;
首先,需要求出样本的均值:
以及样本的协方差:
方差:
然后计算模型的斜率a和截距b:
a=SxySx
b=yˉ-axˉ
这样就得到了最佳拟合直线y=ax+b,可以用来校准传感器数据。
S5、数据恢复:将之前备份的数据恢复到新的固件中,以确保升级后***的数据状态与升级前一致;
具体的,该工序将备份的数据恢复到新的固件中,以确保升级后***的数据状态与升级前一致;数据恢复过程需要确保恢复的数据包含在备份数据中,以确保数据状态的一致性;
在计数据流的过程中,对水表的流量数据进行积分以得到总量:
f(xi):在时间区间[x{i1},xi]内的流量平均值;
Δx:时间区间的长度;
n:时间区间的个数。
示例性的,要计算时间区间[t_0,t_1]内的量V,并且在该时间区间内,流量的校准系数为k,则用流量的计算公式为:
其中f(t)表示时间t时刻的流量;
为了计算该积分,可以使用数值积分方法,例如梯形积分法;
假设将时间区间[t_0,t_1]均匀地分成N段,每一段的长度为:
Δt=t1-t0/N
则可以使用梯形公式计算积分近似值:
其中
ti=t0+i·Δt
ti+1=t0+(i+1)·Δt
i的取值范围是0~N-1。
通过以上公式,可以计算出在时间区间[t_0,t_1]内的流量V的近似值。
同时,设定Lorenz混沌***的三个参数值a,b,c,以及初始状态值x0,y0,z0,生成初始密钥K;
Lorenz混沌***的方程组:
dx/dt=a(y-x)dy/dt=x(b-z)-y dz/dt=xy–cz
生成伪随机数序列r1,r2,...,rn,其中ri为第i个时间步的状态值。
设初始状态为(x0,y0,z0),时间步长为Δt,通过迭代Lorenz混沌***方程组,得到第i个时间步的状态值(xi,yi,zi):
xi+1=xi+a(yi-xi)Δt
yi+1=yi+[xi(b-zi)-yi]Δt
zi+1=zi+[xiyi-czi]Δt
i=0,1,...,n-1
根据状态值(xi,yi,zi)计算伪随机数序列:
ri=xi mod 256
其中,i=1,2,...,n
加密明文:
将明文M分成若干个长度相等的块M1,M2,...,Mk;对于第i个块Mi,进行如下操作:
将Mi转换成数字,得到Mi';
生成随机数Si;
计算异或结果;
Ci=Mi'xor Si
将Ci和Si的值按照预定格式组合成一个密文块,得到CiSi。
重复上述步骤,直到所有明文块均被加密。
物联网管理***根据相同的初始参数和初始密钥生成伪随机数序列r1,r2,...,rn,与水表的伪随机数序列一致:
解析CiSi,得到Ci和Si的值;
将Ci和Si的值按照预定格式分别解密,得到Mi'和Si;
计算异或结果:
Mi'=ci xor Si
将Mi'转换成字符,得到Mi;
重复上述步骤,直到所有密文块均被解密。
S6、重新校验升级数据:对升级后的固件进行再次校验,以确保固件升级成功并且无误;
在该工序中,***将会对升级后的固件进行校验,检查固件是否与下载的升级数据包一致;如果校验失败,则会提示升级失败,并返回到固件升级的步骤中重新进行升级。如果校验成功,则进入下一个工序。
具体的,固件差量表用来表明每个固件差量行在物联网水表的固件中的地址信息,固件差量表中第一个字节的第一个BIT位代表固件数据第一行,第一个字节的第二个BIT位代表固件数据第二行,依次进行对应,当某一行为差量行时,则该BIT位置0,否则对应BIT位置1;
该工序中主要包括校验算法的实现和校验结果的返回。校验算法通常使用哈希算法,如MD5、SHA-1等,以检查固件的完整性和正确性。校验结果会被记录下来,并在升级成功后用于数据恢复。
S7、自检:对升级后的***进行自检,检查升级过程中没有出现任何问题;
具体的,在该工序中,***会对升级后的***进行自检,以检查各个组件的工作状态,如传感器、通信模块、存储器等。如果检测到任何异常情况,***将会提示用户并返回到前一个工序重新进行升级;
该工序中的自检程序会包括一系列的测试用例,涵盖***的各个方面。自检程序会检查传感器数据的准确性、通信模块是否能够正常连接服务器、存储器是否能够正常读写等等。自检的结果将被记录下来,并在后续的维护工作中用于问题排查和修复。
S8、性能测试:对升级后的物联网水表进行性能测试,检验是否能够正常工作;
在该工序中,***会对升级后的物联网水表进行一系列的性能测试,如响应速度、功耗、数据传输速率等等;
如果测试结果不满足要求,则需要进行相应的调整和优化,直到满足要求为止;该工序中的性能测试程序通常会包括一系列的测试用例,涵盖物联网水表的各个方面。测试用例会对物联网水表的响应速度、功耗、数据传输速率等进行测试,并生成详细的测试报告。测试结果将被记录下来,并在后续的维护工作中用于查阅检索。
S9、数据上传:将测试结果上传到服务器,以便监测物联网水表的运行状态;
该工序的实现基于物联网通信协议,使用物联网通信模块将测试结果上传到服务器。上传的数据可以是文本格式、JSON格式或二进制格式等;
具体的,在数据上传之前,需要确定上传的数据格式和上传的目标服务器。上传的数据应该包括测试结果和其他相关信息,如测试的时间戳、物联网水表的ID等。上传过程中应该确保数据传输的可靠性和安全性,防止数据丢失或被篡改。
S10、维护:定期对物联网水表进行维护。
基于物联网通信协议和管理模块,管理员可以通过管理软件对物联网水表进行远程维护。维护工作可以包括***升级、数据备份、错误日志查看、远程控制等。具体细节:定期进行维护工作可以保证物联网水表的稳定性和可靠性。管理员可以根据需要对物联网水表进行***升级,更新固件和软件,修复漏洞和缺陷。数据备份可以防止数据丢失或被损坏,防止***出现不可预知的错误。此外,管理员还可以通过错误日志查看功能来监测物联网水表的运行状态,并及时发现和解决问题。远程控制功能可以方便管理员对物联网水表进行远程配置和控制,提高管理效率。
可以理解的是,在升级时只需将差量行传输至物联网水表设备,控制传输的固件数据长度;物联网设备管理***对新固件与当前固件进行比对,生成固件升级信息。固件升级信息包括:固件差量包数量、每个固件差量包中固件数据长度、所有固件差量包数据总校验以及新固件版本号;固件差量包由差量行按地址先后组成,每个固件差量包最大由32个差量行组成,并对差量行进行编号。
在本申请一些具体实施方式中,需采用的实体元器件如下所示:
水表传感器:用于测量水流量和水压等参数。
NB-IoT物联网通信模块:用于和远程服务器进行通信,上传和下载数据。
处理器:负责控制水表各个部分的工作,并处理收集到的传感器数据。
存储器:用于存储收集到的数据、程序代码和配置信息。
时钟芯片:用于记录时间,帮助计算用水量和其他时间相关的任务。
电池或电源适配器:用于为水表提供电力,以便其能够正常运行。
调试工具:用于调试和测试水表各个部分的功能和性能。
防水外壳:保护水表免受水和其他外部物质的侵害。
引导程序:用于管理水表升级和恢复等过程。
这些元器件、装置或机构可以根据具体的水表型号和设计需求进行选择和配置。
在本申请一些具体实施方式中,优选的,处理器优选ARM Cortex系列或树莓派(Raspberry Pi)嵌入式模块;其包括微处理器、存储器、输入/输出设备和各种传感器和执行器等硬件设备;
具体的,使用嵌入式单板作为载体,可以提供足够的计算能力和存储容量,并且具有各种输入/输出接口和通信接口,可以方便地连接各种传感器和执行器,实现数据采集和控制。
在本方案中,上述的部件为本具体实施方式提供的装置中的主体功能性机构;在上述机构的基础上,其安置于一个集成组件上;具体的,集成组件作为整体装置的基准支撑结构,为上述装置提供了针对外部环境配合的基础,并可适配外部工作人员;
在本方案中,本装置整体的所有电器元件依靠市电进行供能;具体的,装置整体的电器元件与市电输出端口处通过继电器、变压器和按钮面板等装置进行常规电性连接,以满足本装置的所有电器元件的供能需求。
具体的,上述集成组件的外部还设有一控制器,该控制器用于连接并控制上述集成组件整体的所有电器元件按照预先设置的程序作为预设值及驱动模式进行驱动;需要指出的是,上述驱动模式即对应了上文中的相关电器元件之间对应的驱动与运算模式;
优选的,控制器为PLC控制器,通过梯形图、顺序功能图、功能块图、指令表或结构文本的等常规PLC控制的模式完成上述控制需求;需要指出的是,其编程所驱动的电器元件或其它动力元件的运行启停时间间距、转速、功率等输出参数是非限定性的;具体的,依据实际使用需求进行相关驱动控制上的调节。
优选的,控制器外还配置独立的无线发射模块和无线接收模块,该独立的无线发射模块发出工作或暂停的指令信号经由介质传送至无线接收模块;必要时,工作人员可通过后台无线遥控装置对该无线收发模块输入指令,以远程控制控制器,并进而遥控本装置的所有电器元件按照相关驱动模式进行驱动;同时,无线收发模块还可传递本装置中相关传感元件,或伺服驱动元件的***所检测的相关系数或其他信息于后台的工作人员。
以上所述具体实施方式的各技术特征可以进行任意的组合,为使描述简洁,未对上述具体实施方式中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
实施例一
为使本发明的上述具体实施方式更加明显易懂,下面对本发明的具体实施方式做详细的示例性的说明。本发明能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似改进,因此本发明不受下面公开的实施例的限制。
本实施例基于上述具体实施方式中描述的相关原理,其中示例性应用时:
S1、将当前固件文件和新固件文件导入物联网设备管理***。
S2、物联网设备管理***对比当前固件文件和新固件文件,以16字节为一行进行比对,找出差量行并根据差量行生成固件升级信息,固件差量表。固件信息中的校验为所有固件差异行数据的累计和。固件差量包数量等于固件差异行总数除以固件差异包中差量数据行数得出。固件差量表为固件差异行在固件文件中的位置信息,例如:固件差量表中第一个字节的第一个BIT位代表固件文件的第一行数据,第一个字节的第二个BIT位代表固件文件的第二行数据,依次进行对应,当某一行为差量行时,则该BIT位置0,否则对应BIT位置1。
S3、将固件差量数据依据LZO算法进行压缩后,按每行16字节总成固件差量包,每个固件查量包携带32行差异数据。
S4、物联网设备管理***生成升级任务,包含固件升级信息任务、固件差异表任务、
固件差量包任务。
S5、物联网水表触发数据上传,与物联网设备管理***进行数据交互,物联网设备管理***接收到数据后,开始下发升级任务。
S6、物联网设备管理***下发固件升级信息任务,物联网水表接收到该任务后,存储固件升级信息,并返回任务执行成功。
S7、物联网设备管理***下发固件差量表任务,物联网水表接收到该任务后,存储固件差异表信息,并返回任务成功。
S8、物联网设备管理***下发第一包固件差量包任务,物联网水表接收到该任务后,依据LZO算法对数据进行解压后,存储至固件备份区,并返回任务成功。
S9、物联网设备管理***下发第二包固件差量包任务,物联网水表接收到该任务后,依据LZO算法对数据进行解压后,存储至固件备份区,并返回任务成功。
S10、物联网设备管理***下发第N(固件差异包总数)包固件差量包任务,物联网水表接收到该任务后,依据LZO算法对数据进行解压后,存储至固件备份区,并返回任务成功。
S11、物联网设备管理***下发固件包状态查询任务,物联网水表返回已接收固件包状态。
S12、物联网设备管理***接收物联网水表返回的包状态信息,并依据该信息判断是否有未传输成功的固件差量包,如有曾继续下发固件差量包任务,重复次流程,到物联网水表接收到所有固件差量。
S13、物联网设备管理***下发固件升级激活任务,物联网水表接收到固件升级激活任务后,对已接受到的固件差量数据计算累加和,并与固件升级信息中的差量数据累加和进行比对,校验通过后开始执行升级。
S14、物联网水表开始执行升级,处理器跳转至引导区进行运行。
S15、处理器从固件备份区取出第一行固件差量行(16字节),计算该行在应用区固件中的位置,并写入。
S16、重复步骤S13,直到所有差量数据;行全部写入应用固件区,
S17、处理器跳转至应用区固件运行,完成升级。
S18、物联网水表上传升级后的固件版本号至物联网设备管理***,物联网设备管理***以此判断升级是否成功。
以上所述实施例仅表达了本发明的相关实际应用的实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
实施例二
为使本发明的上述具体实施方式更加明显易懂,下面对本发明的具体实施方式做详细的示例性的说明。本发明能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似改进,因此本发明不受下面公开的实施例的限制。
本实施例基于上述具体实施方式中描述的相关原理,其中示例性应用时:一种物联网水表固件差量升级***,包括:
物联网水表:集成了物联网通信模块和固件升级模块的水表设备;
服务器:存储升级数据包和管理升级过程的服务器;
客户端管理嵌入式模块:与服务器进行通信,管理升级数据包及控制升级过程;
数据存储器:存储水表设备的数据备份和测试结果等信息;
其中,数据存储器划分为3部分:引导区、应用区、备份区;其中引导区用于存储执行升级数据写入的固件,应用区用于存储当前运行的固件,备份区用于升级时存储常量固件;
NB-IoT通信模块:用于实现物联网水表与物联网设备管理***之间的数据交互;
物联网水表接收在接收到物联网设备管理***传输的固件差量表,固件差量包;以及固件升级信息后存入存储器的备份区域;在接收到物联网设备管理***传输的固件差量包传输状态查询命令后,将已接收到的固件差量包状态返回至物联网设备管理***;在接收到物联网设备管理***传输的升级激活指令后,对存储的差量固件进行校验,并与固件升级信息中的校验进行比对,在比对通过后,执行升级操作将固件差量数据依据固件差量表将每一行写入物联网水表设备存储器的应用固件区域,完成升级。
其工作流(WFMS)如下所示:
WF1、客户端管理软件从服务器中获取最新的升级数据包,并对其进行校验;
WF2、如果数据包完整且正确,则进行数据备份;并执行下一步骤;
WF3、将下载的新固件加载到物联网水表中,实现固件的升级;升级完成后,***会自动重新启动,以使新固件生效;
WF4、将之前备份的数据恢复到新的固件中,以确保升级后***的数据状态与升级前一致;
WF5、对升级后的固件进行再次校验;
WF6、对升级后的***进行自检;
WF7、对升级后的物联网水表进行性能测试;
WF8、将测试结果上传到服务器,以便监测物联网水表的运行状态;
WF9、对物联网水表进行定期维护,包括***升级、数据备份等,以确保其长期稳定运行。
由于本实施例所介绍的物联网设备管理***为实施本申请实施例一中方法所采用的物联网设备管理***,故而基于本申请实施例一中所介绍的方法,本领域所属技术人员能够了解本实施例的联网设备管理***的具体实施方式以及其各种变化形式,所以在此对于该联网设备管理***如何实现本申请实施例中的方法不再详细介绍。只要本领域所属技术人员实施本申请实施例中的方法所采用的联网设备管理***,都属于本申请所欲保护的范围。
实施例三
为使本发明的上述具体实施方式更加明显易懂,下面对本发明的具体实施方式做详细的示例性的说明。本发明能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似改进,因此本发明不受下面公开的实施例的限制。
本实施例提供了一物联网水表设备(如图3所示),该物联网水表设备包括水表基表,电子模块;其中,电子模块包括处理器,存储器,NB-IoT通信模块。可以实现具体实施方式,或是实施例一或二中任一实施方式;
由于本实施例所介绍的物联网水表设备为实施本申请实施例一中方法所采用的设备,故而基于本申请实施例一中所介绍的方法,本领域所属技术人员能够了解本实施例的物联网水表设备的具体实施方式以及其各种变化形式,所以在此对于该物联网水表设备如何实现本申请实施例中的方法不再详细介绍。只要本领域所属技术人员实施本申请实施例中的方法所采用的物联网水表设备,都属于本申请所欲保护的范围。
实施例四
为使本发明的上述具体实施方式更加明显易懂,下面对本发明的具体实施方式做详细的示例性的说明。本发明能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似改进,因此本发明不受下面公开的实施例的限制。
一种物联网水表固件差量升级***,其需搭配具体实施方式或实施例一至三任意一项进行同步作业,其包括如下实体部件:
物联网水表:集成了物联网通信模块和固件升级模块的水表设备;
服务器:存储升级数据包和管理升级过程的服务器;
客户端管理嵌入式模块:与服务器进行通信,管理升级数据包及控制升级过程;
数据存储器:存储水表设备的数据备份和测试结果等信息;
其中,数据存储器划分为3部分:引导区、应用区、备份区;其中引导区用于存储执行升级数据写入的固件,应用区用于存储当前运行的固件,备份区用于升级时存储常量固件;
NB-IoT通信模块:用于实现物联网水表与物联网设备管理***之间的数据交互;
在上述部件中,物联网水表接收在接收到物联网设备管理***传输的固件差量表,固件差量包;以及固件升级信息后存入存储器的备份区域;在接收到物联网设备管理***传输的固件差量包传输状态查询命令后,将已接收到的固件差量包状态返回至物联网设备管理***;在接收到物联网设备管理***传输的升级激活指令后,对存储的差量固件进行校验,并与固件升级信息中的校验进行比对,在比对通过后,执行升级操作将固件差量数据依据固件差量表将每一行写入物联网水表设备存储器的应用固件区域,完成升级。
采用差量方式,对比当前固件与新固件,找出差异部分,将差异部分传输至物联网水表设备,减小传输固件包数,提高固件升级效率。
物联网设备管理***对当前固件与升级固件以16字节为一行进行比对,找出差量行并根据差量行生成固件升级信息,固件差量表,固件差量包。
物联网设备管理***使用LZO算法对固件差量数据进行压缩生成固件差量包。物联网设备管理***将固件升级信息、固件差量表,固件差量包依次传输至物联网水表设备,并进行存储,同时采用LZO算法对接收的固件差量包进行解压操作后存储。
物联网设备管理***在传输完成所有固件差量包后,发送指令对已传输固件差量包进行查询,物联网水表设备返回已接收固件差量包信息。物联网设备管理***在判断物联网水表设备已接收所有固件差量包后,向物联网水表设备发送升级激活指令。
物联网水表设备接收到升级激活指令后,依据固件升级信息,对接收完成的固件差量包中的差量数据进行完整性,正确性判断。校验通过后,依据执行升级操作,处理器跳转运行引导区固件,将存储在备份区的固件差量数据依据固件差量表将每一行写入物联网水表设备应用固件区域,写入完成后,处理器跳转至应用区固件运行,完成升级。
物联网水表设备完成升级后将最新固件版本信息发送至物联网设备管理***,物联网设备管理***依据该信息来确定升级是否成功。
上述升级***工作流(WFMS)如下所示:
WF1、客户端管理软件从服务器中获取最新的升级数据包,并对其进行校验;
WF2、如果数据包完整且正确,则进行数据备份;并执行下一步骤;
WF3、将下载的新固件加载到物联网水表中,实现固件的升级;升级完成后,***会自动重新启动,以使新固件生效;
WF4、将之前备份的数据恢复到新的固件中,以确保升级后***的数据状态与升级前一致;
WF5、对升级后的固件进行再次校验;
WF6、对升级后的***进行自检;
WF7、对升级后的物联网水表进行性能测试;
WF8、将测试结果上传到服务器,以便监测物联网水表的运行状态;
WF9、对物联网水表进行定期维护,包括***升级、数据备份等,以确保其长期稳定运行。
由于本实施例所介绍的物联网设备管理***为实施本申请实施例一中方法所采用的物联网设备管理***,其与实施例二类似,故而基于本申请实施例一中所介绍的方法,本领域所属技术人员能够了解本实施例的联网设备管理***的具体实施方式以及其各种变化形式,所以在此对于该联网设备管理***如何实现本申请实施例中的方法不再详细介绍。只要本领域所属技术人员实施本申请实施例中的方法所采用的联网设备管理***,都属于本申请所欲保护的范围。
实施例五
为使本发明的上述具体实施方式更加明显易懂,下面对本发明的具体实施方式做详细的示例性的说明。本发明能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似改进,因此本发明不受下面公开的实施例的限制。
本实施例提供了全流程实施模拟场景,其可采用具体实施方式,或是实施例一至四任意一种实施方案或多种实施方案进行组合实用:
有一个物联网水表,需要对其固件进行升级:
S1.准备工作
在开始升级之前,需要先进行准备工作。首先,需要确定升级所需的新固件文件,并将其上传至物联网设备管理***。其次,需要将水表连接至物联网设备管理***,并确保其能够正常通信。
S2.固件文件比对
物联网设备管理***对比当前固件文件和新固件文件,以16字节为一行进行比对,找出差量行并根据差量行生成固件升级信息,固件差量表。固件信息中的校验为所有固件差异行数据的累计和。固件差量包数量等于固件差异行总数除以固件差异包中差量数据行数得出。固件差量表为固件差异行在固件文件中的位置信息。
假设比对结果如下:
固件差异行数:20差量包中差量数据行数:32固件差量表:第1行第2个字节的第3个BIT位为0,表示固件文件的第1行第2个字节的第3个BIT位为差量行,其他BIT位为非差量行;第3行第1个字节的第7个BIT位为0,表示固件文件的第3行第1个字节的第7个BIT位为差量行,其他BIT位为非差量行,依次类推。
S3.固件差量数据压缩
将固件差量数据依据LZO算法进行压缩后,按每行16字节总成固件差量包,每个固件查量包携带32行差异数据。
假设压缩后的固件差量包为10个,每个固件差量包携带32行差异数据。
S4.生成升级任务
物联网设备管理***生成升级任务,包含固件升级信息任务、固件差异表任务、固件差量包任务。
S5.数据上传
物联网水表触发数据上传,与物联网设备管理***进行数据交互,物联网设备管理***接收到数据后,开始下发升级任务。
S6.下发固件升级信息任务
物联网设备管理***下发固件升级信息任务,物联网水表接收到该任务后,存储固件升级信息,并返回任务执行成功。
S6.下发固件升级信息任务:在完成了固件升级包的生成之后,接下来需要将固件升级包下发给需要升级的设备。在这个过程中,可以考虑以下几个步骤:
S6.1、确定升级包的下发方式:可以使用物理媒介(如USB、SD卡等)或者无线网络(如Wi-Fi、蓝牙等)等方式进行下发。
S6.2、确定升级包的下发对象:需要确定需要升级的设备列表,可以通过设备注册、分组等方式进行管理。
S6.3、配置升级任务信息:在下发升级包之前,需要将升级任务的相关信息配置好,包括升级包的版本号、升级开始时间、升级结束时间等信息。
S6.4、下发升级任务:在确认好升级任务信息之后,可以将升级任务下发给需要升级的设备,让其开始升级操作。
S6.5、监控升级进度:在升级任务开始之后,需要及时监控升级进度,以确保升级操作正常进行。可以通过设备状态查询、日志记录等方式进行监控。
S6.6、处理升级异常情况:在升级过程中,可能会出现一些异常情况,例如网络中断、升级包损坏等情况,需要及时进行处理,以避免升级失败。
通过以上步骤,可以完成固件升级包的下发任务,并确保升级过程的顺利进行。
S7.下发固件升级指令
一旦新的固件版本已经可用并且已被测试通过,需要下发升级指令来更新设备的固件。下发指令的方式取决于设备的连接方式和通信协议。如果设备使用的是MQTT协议连接到云平台,则可以使用MQTT协议的消息发布/订阅功能下发升级指令。如果设备使用的是HTTP或者CoAP协议连接到云平台,则可以使用HTTP或者CoAP协议的PUT请求下发升级指令。
S8.设备升级
一旦设备接收到升级指令,它将下载新的固件版本并安装它。在升级过程中,设备可能需要重启,因此需要在升级指令中设置好重启时间,以确保设备在合适的时间重启。
S9.升级后检查
升级完成后,需要检查设备是否已成功升级到新版本的固件。可以使用设备状态查询接口来查询设备当前运行的固件版本,并将其与新版本进行比较。如果设备已经成功升级到新版本,则可以将升级状态更新为“成功”,否则需要将其更新为“失败”,并触发重新升级流程。
以上所述实施例仅表达了本发明的相关实际应用的实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (6)
1.一种物联网水表固件差量升级的方法,包括连接有物联网管理***的水表,并对水表进行升级,其特征在于,包括如下步骤:
S1、获取升级数据:使用物联网通信模块从服务器中获取升级数据包,该数据包包含了升级所需的全部程序、配置文件和固件;
S2、校验升级数据:对从服务器下载的升级数据包进行校验,检查数据完整性和正确性;如果数据包损坏或不完整,则需要重新下载;
S3、数据备份:对原始数据进行备份;
S4、固件升级:将下载的固件信息加载到物联网水表中,实现固件的升级;升级完成后,***自动重新启动,以使新固件生效;
在S4中,还包括:
S4.1、物联网设备管理***对比当前固件文件和新固件文件,以16字节为一行进行比对,找出差量行并根据差量行生成固件升级信息,固件差量表;固件信息中的校验为所有固件差异行数据的累计和;固件差量包数量等于固件差异行总数除以固件差异包中差量数据行数得出;固件差量表为固件差异行在固件文件中的位置信息;
固件差量表用来表明每个固件差量行在物联网水表的固件中的地址信息,固件差量表中第一个字节的第一个BIT位代表固件数据第一行,第一个字节的第二个BIT位代表固件数据第二行,依次进行对应,当某一行为差量行时,则该BIT位置0,否则对应BIT位置1;
S5、数据恢复:将之前备份的数据恢复到新的固件中,以确保升级后***的数据状态与升级前一致;
S6、重新校验升级数据:对升级后的固件进行再次校验,以确保固件升级成功并且无误;
水表读取上行数据时,对数据进行Lorenz混沌加密;
S3.1、设定Lorenz混沌***的三个参数值;
S3.2、根据初始密钥和Lorenz混沌***的初始状态,生成伪随机数序列;
S3.3、将明文分成至少两个长度相等的块,每个块进行一次异或操作;
S3.4、将异或结果与伪随机数序列进行异或操作,得到密文;
S3.5、将密文发送给物联网管理***,物联网管理***进行相反的操作,将密文与伪随机数序列进行异或操作,得到异或结果,再将异或结果与伪随机数序列进行异或操作,得到明文;
设定Lorenz混沌***的三个参数值a,b,c,以及初始状态值x0,y0,z0,生成初始密钥K;Lorenz混沌***的方程组:
dx/dt=a(y-x)
dy/dt=x(b-z)-y
dz/dt=xy–cz
生成伪随机数序列r1,r2,...,rn,其中ri为第i个时间步的状态值;
设初始状态为(x0,y0,z0),时间步长为Δt,通过迭代Lorenz混沌***方程组,得到第i个时间步的状态值(xi,yi,zi):
xi+1=xi+a(yi-xi)Δt
yi+1=yi+[xi(b-zi)-yi]Δt
zi+1=zi+[xiyi-czi]Δt
i=0,1,...,n-1
根据状态值(xi,yi,zi)计算伪随机数序列:
ri=xi mod 256
其中,i=1,2,...,n
加密明文:
将明文M分成若干个长度相等的块M1,M2,...,Mk;对于第i个块Mi,进行如下操作:
将Mi转换成数字,得到Mi';
生成随机数Si;
计算异或结果;
Ci=Mi'xor Si
将Ci和Si的值按照预定格式组合成一个密文块,得到CiSi;
重复上述步骤,直到所有明文块均被加密;
S7、自检:对升级后的***进行自检,检查升级过程中没有出现任何问题;
S8、性能测试:对升级后的物联网水表进行性能测试,检验是否能够正常工作;
S9、数据上传:将测试结果上传到服务器,以便监测物联网水表的运行状态;
S10、维护:定期对物联网水表进行维护。
2.根据权利要求1的一种物联网水表固件差量升级的方法,其特征在于:在S4中,还包括:
S4.2、将固件差量数据依据LZO算法进行压缩后,按每行16字节总成固件差量包,每个固件查量包携带32行差异数据;
S4.3、物联网设备管理***生成升级任务,包含固件升级信息任务、固件差异表任务和固件差量包任务;
S4.4、物联网水表触发数据上传,与物联网设备管理***进行数据交互,物联网设备管理***接收到数据后,开始下发升级任务;
S4.5、物联网设备管理***下发固件升级信息任务,物联网水表接收到该任务后,存储固件升级信息,并返回任务执行成功;
S4.6、物联网设备管理***下发固件差量表任务,物联网水表接收到该任务后,存储固件差异表信息,并返回任务成功。
3.根据权利要求2的一种物联网水表固件差量升级的方法,其特征在于:在升级时只需将差量行传输至物联网水表设备,控制传输的固件数据长度;
物联网设备管理***对新固件与当前固件进行比对,生成固件升级信息;固件升级信息包括:固件差量包数量、每个固件差量包中固件数据长度、所有固件差量包数据总校验以及新固件版本号;
固件差量包由差量行按地址先后组成,每个固件差量包最大由32个差量行组成,并对差量行进行编号。
4.根据权利要求1~3任意一项的一种物联网水表固件差量升级的方法,其特征在于:在S3中:物联网管理***根据相同的初始参数和初始密钥生成伪随机数序列r1,r2,...,rn,与水表的伪随机数序列一致:
解析CiSi,得到Ci和Si的值;
将Ci和Si的值按照预定格式分别解密,得到Mi'和Si;
计算异或结果:
Mi'=Ci xor Si
将Mi'转换成字符,得到Mi;
重复上述步骤,直到所有密文块均被解密。
5.一种物联网水表固件差量升级***,包括如权利要求1~4任意一项的方法,其特征在于:包括
物联网水表:集成了物联网通信模块和固件升级模块的水表设备;
服务器:存储升级数据包和管理升级过程的服务器;
客户端管理嵌入式模块:与服务器进行通信,管理升级数据包及控制升级过程;
数据存储器:存储水表设备的数据备份和测试结果等信息;
其中,数据存储器包括引导区、应用区、备份区;
引导区用于存储执行升级数据写入的固件,应用区用于存储当前运行的固件,备份区用于升级时存储常量固件;
NB-IoT通信模块:用于实现物联网水表与物联网设备管理***之间的数据交互;
水表将固件差量数据依据固件差量表将每一行写入物联网水表设备存储器的应用固件区域,完成升级。
6.根据权利要求5的***,其特征在于:其工作流如下所示:
WF1、客户端管理软件从服务器中获取最新的升级数据包,并对其进行校验;
WF2、如果数据包完整且正确,则进行数据备份;并执行下一步骤;
WF3、将下载的新固件加载到物联网水表中,实现固件的升级;升级完成后,***会自动重新启动,以使新固件生效;
WF4、将之前备份的数据恢复到新的固件中,以确保升级后***的数据状态与升级前一致;
WF5、对升级后的固件进行再次校验;
WF6、对升级后的***进行自检;
WF7、对升级后的物联网水表进行性能测试;
WF8、将测试结果上传到服务器,以便监测物联网水表的运行状态;
WF9、对物联网水表进行定期维护,包括***升级、数据备份等,以确保其长期稳定运行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310412442.6A CN116521210B (zh) | 2023-04-18 | 2023-04-18 | 一种物联网水表固件差量升级的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310412442.6A CN116521210B (zh) | 2023-04-18 | 2023-04-18 | 一种物联网水表固件差量升级的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116521210A CN116521210A (zh) | 2023-08-01 |
CN116521210B true CN116521210B (zh) | 2024-05-03 |
Family
ID=87396806
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310412442.6A Active CN116521210B (zh) | 2023-04-18 | 2023-04-18 | 一种物联网水表固件差量升级的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116521210B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116775365B (zh) * | 2023-08-17 | 2023-12-22 | 紫光同芯微电子有限公司 | 可加载执行文件的无损升级方法、安全芯片及存储介质 |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002047272A2 (en) * | 2000-12-07 | 2002-06-13 | Cryptico A/S | A method of performing mathematical operations in an electronic device, a method of generating pseudo-random numbers in an electronic device, and a method of encrypting and decrypting electronic data |
CN104272762A (zh) * | 2012-05-07 | 2015-01-07 | 卡姆鲁普股份有限公司 | 具有远程程序更新的耗量表 |
CN110618830A (zh) * | 2019-08-14 | 2019-12-27 | 恒鸿达科技有限公司 | 一种基于nbiot网络的远程升级方法和*** |
CN111124443A (zh) * | 2018-11-01 | 2020-05-08 | 上海擎感智能科技有限公司 | 车辆、车机设备及车载仪表升级方法 |
CN111538524A (zh) * | 2020-04-30 | 2020-08-14 | 浙江荣鑫智能仪表股份有限公司 | 一种物联网燃气表的差分升级方法和物联网燃气表 |
CN112068865A (zh) * | 2020-09-02 | 2020-12-11 | 上海飞奥燃气设备有限公司 | 高效智能燃气表差分固件升级方法 |
CN112152846A (zh) * | 2020-09-18 | 2020-12-29 | 重庆神缘智能科技有限公司 | 一种基于物联网的计量仪表远程升级方法 |
CN112328293A (zh) * | 2020-11-05 | 2021-02-05 | 歌尔科技有限公司 | 一种嵌入式设备的差分升级方法及相关组件 |
CN113553077A (zh) * | 2021-05-31 | 2021-10-26 | 宁波三星医疗电气股份有限公司 | 一种智能电表的固件升级方法及智能电表 |
CN113805927A (zh) * | 2020-06-11 | 2021-12-17 | 中移(苏州)软件技术有限公司 | 一种代码更新方法、装置、电子设备及计算机存储介质 |
CN114500508A (zh) * | 2022-01-25 | 2022-05-13 | 深圳友讯达科技股份有限公司 | 一种燃气表升级方法、装置及电子设备 |
CN114968289A (zh) * | 2021-02-23 | 2022-08-30 | 杭州海兴电力科技股份有限公司 | 一种基于差异比较的电能表远程快速升级方法 |
CN115242413A (zh) * | 2021-04-06 | 2022-10-25 | ***通信有限公司研究院 | 物联网设备固件安全升级方法、装置、电子设备及介质 |
CN115509591A (zh) * | 2022-10-10 | 2022-12-23 | 浙江工业大学 | 一种固件差异化热升级方法 |
CN115712447A (zh) * | 2022-11-15 | 2023-02-24 | 成都长城开发科技股份有限公司 | 一种智能电表实现增量式升级的方法及*** |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7096311B2 (en) * | 2002-09-30 | 2006-08-22 | Innopath Software, Inc. | Updating electronic files using byte-level file differencing and updating algorithms |
US20050271207A1 (en) * | 2004-06-05 | 2005-12-08 | Helmut Frey | Method and system for chaotic digital signature, encryption, and authentication |
CN111104149A (zh) * | 2018-10-25 | 2020-05-05 | 华为技术有限公司 | 一种固件升级方法、装置及终端 |
US11334345B2 (en) * | 2020-10-08 | 2022-05-17 | Pelion Technology, Inc. | Differential firmware update generation |
-
2023
- 2023-04-18 CN CN202310412442.6A patent/CN116521210B/zh active Active
Patent Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002047272A2 (en) * | 2000-12-07 | 2002-06-13 | Cryptico A/S | A method of performing mathematical operations in an electronic device, a method of generating pseudo-random numbers in an electronic device, and a method of encrypting and decrypting electronic data |
CN104272762A (zh) * | 2012-05-07 | 2015-01-07 | 卡姆鲁普股份有限公司 | 具有远程程序更新的耗量表 |
CN111124443A (zh) * | 2018-11-01 | 2020-05-08 | 上海擎感智能科技有限公司 | 车辆、车机设备及车载仪表升级方法 |
CN110618830A (zh) * | 2019-08-14 | 2019-12-27 | 恒鸿达科技有限公司 | 一种基于nbiot网络的远程升级方法和*** |
CN111538524A (zh) * | 2020-04-30 | 2020-08-14 | 浙江荣鑫智能仪表股份有限公司 | 一种物联网燃气表的差分升级方法和物联网燃气表 |
CN113805927A (zh) * | 2020-06-11 | 2021-12-17 | 中移(苏州)软件技术有限公司 | 一种代码更新方法、装置、电子设备及计算机存储介质 |
CN112068865A (zh) * | 2020-09-02 | 2020-12-11 | 上海飞奥燃气设备有限公司 | 高效智能燃气表差分固件升级方法 |
CN112152846A (zh) * | 2020-09-18 | 2020-12-29 | 重庆神缘智能科技有限公司 | 一种基于物联网的计量仪表远程升级方法 |
WO2022095199A1 (zh) * | 2020-11-05 | 2022-05-12 | 歌尔股份有限公司 | 一种嵌入式设备的差分升级方法及相关组件 |
CN112328293A (zh) * | 2020-11-05 | 2021-02-05 | 歌尔科技有限公司 | 一种嵌入式设备的差分升级方法及相关组件 |
CN114968289A (zh) * | 2021-02-23 | 2022-08-30 | 杭州海兴电力科技股份有限公司 | 一种基于差异比较的电能表远程快速升级方法 |
CN115242413A (zh) * | 2021-04-06 | 2022-10-25 | ***通信有限公司研究院 | 物联网设备固件安全升级方法、装置、电子设备及介质 |
CN113553077A (zh) * | 2021-05-31 | 2021-10-26 | 宁波三星医疗电气股份有限公司 | 一种智能电表的固件升级方法及智能电表 |
CN114500508A (zh) * | 2022-01-25 | 2022-05-13 | 深圳友讯达科技股份有限公司 | 一种燃气表升级方法、装置及电子设备 |
CN115509591A (zh) * | 2022-10-10 | 2022-12-23 | 浙江工业大学 | 一种固件差异化热升级方法 |
CN115712447A (zh) * | 2022-11-15 | 2023-02-24 | 成都长城开发科技股份有限公司 | 一种智能电表实现增量式升级的方法及*** |
Non-Patent Citations (2)
Title |
---|
NB-IoT终端软件远程自动更新技术研究及应用;陈成;中国优秀硕士学位论文全文数据库;20200415(第2020/04期);I136-144 * |
郝丽萍,石坤泉.计算机网络数据保密与安全.北京理工大学出版社,2021,第158-162页. * |
Also Published As
Publication number | Publication date |
---|---|
CN116521210A (zh) | 2023-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6115676A (en) | Methods and apparatus for performing load profile and load control | |
CN116521210B (zh) | 一种物联网水表固件差量升级的方法 | |
CA2493321C (en) | System for acquiring data from a facility and method | |
US7263459B2 (en) | System for acquiring data from facilities and method | |
CN103718122B (zh) | 现场仪器以及现场仪器的动作方法 | |
US7489977B2 (en) | System and method for implementing time synchronization monitoring and detection in a safety instrumented system | |
US9984244B2 (en) | Controller, information processing apparatus, and recording medium | |
US7818465B2 (en) | I/O module expansion unit and distributed automation system | |
JP6823785B2 (ja) | ネットワークにおけるノードの設定管理 | |
US11208916B2 (en) | Self-healing remote dynamic data recording | |
US20140236914A1 (en) | Controller, information processing apparatus, and recording medium | |
JP2013546056A (ja) | 自己記述を有するフィールド装置 | |
MX2014010084A (es) | Metodo para configurar una instalacion de energia eolica, e instalacion de energia eolica. | |
CN111786791A (zh) | 一种基于区块链的工业互联网数据采集方法及网关 | |
CN112631633A (zh) | 基于双芯智能电表的功能模块升级方法和装置 | |
CN111088998B (zh) | 煤矿中心站监控***测试方法、装置及分站模拟*** | |
CN114489711A (zh) | 终端升级方法、装置及存储介质 | |
CN104081299A (zh) | 可编程控制器、可编程控制器***及可编程控制器的提供*** | |
CN116382724B (zh) | 基于云打印机的一种远程升级方法与*** | |
JP2021144639A (ja) | 資産情報管理システム、及び資産情報管理方法 | |
CN113884976B (zh) | 一种基于云平台的智能电表数据保护方法、*** | |
US7917801B2 (en) | Systems and methods for managing network communications | |
US20210141606A1 (en) | Random number generation device, information processing device, and random number generation method | |
WO2023097883A1 (zh) | 一种数据传输方法及车载动态数据管理*** | |
JP6531949B2 (ja) | 制御システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |