本发明属于水利rtu技术领域,具体涉及一种基于lora通信的水利rtu采集功能升级方法。
背景技术:
rtu是安装在远程现场的电子设备,用来监视和测量安装在远程现场的传感器和设备,负责对现场信号、工业设备的监测和控制。rtu将测得的状态或信号转换成可在通信媒体上发送的数据格式,它还将从中央计算机发送来得数据转换成命令,实现对设备的功能控制,rtu的硬件主要包括cpu、存储器、以及各种输入输出接口等功能模块。这些模块被集成到电路板中,通过电路板布线完成rtu各功能模块连接。cpu是rtu控制器的中枢系统,负责处理各种输入信号,经运算处理后,完成输出。存储器是rtu记忆系统,用来存储各种临时或永久性数据,水利rtu具有可靠性更高、通信更便捷、开放性更好的特点,目前在水利、水务行业广泛应用(如山洪预警监测领域、中小河流监测领域、水库动态监测领域、泵站监测领域等),在市政、能源、交通、电力、环境、气象、地质、农业等有远程终端测控站点需求的领域也发展迅猛。
在水利rtu的实际应用中,已经部署安装到项目现场的rtu设备由于功能升级的原因,需要对rtu的内部程序进行更新。对于通过lora进行远程通信的rtu,每次通信的长度有限,如果通过lora进行远程程序升级,升级速度很慢,而且升级成功率不高,为此,提出一种基于lora通信的水利rtu采集功能升级方法。
技术实现要素:
本发明的目的在于提供基于lora通信的水利rtu采集功能升级方法,以解决上述背景技术中提出的问题。
为实现上述目的,本发明采用了如下技术方案:基于lora通信的水利rtu采集功能升级方法,包括以下步骤:
s1、将mcu的程序存储空间划分为两部分,一部分为用于实现底层驱动、存储、通信、逻辑判断的底层驱动程序存储空间,另一部分为用于实现数据采集功能的采集程序存储空间;
s2、将底层驱动程序存储空间的函数调用通过数组存储在固定的地址;
s3、采集程序存储空间通过数组实现底层函数调用;
s4、在rtu升级时,将收到的程序文件存储在外部flash存储空间中;
s5、对程序文件进行校验,校验正确后再将程序文件覆盖到采集部分的存储空间,完成采集部分的功能升级。
优选的,所述rtu内设有远程升级通信模块,所述远程升级通信模块用于接收远程升级命令。
优选的,当所述远程升级通信模块接收到远程升级命令时,清空升级文件存储区域,停止数据采集,同时向服务器发送远程升级命令。
优选的,所述服务器在接收到远程升级命令时,等待远程升级报文。
优选的,在所述服务器等待远程升级报文前,设定等待时间,等待时间为30s-60s,当超出所述等待时间后,重新等待远程升级命令。
优选的,当所述服务器接收到远程升级报文时,回复应答报文存储文件,然后接收升级文件。
优选的,在s5中,对程序文件进行校验时,当文件校验错误,返回s1,重新等待远程升级命令,当文件校验正确后,采集程序替换,继续运行rtu。
优选的,所述远程升级通信模块包括信号收发器,且信号收发器为具有蓝牙、wifi、gprs和4g中至少一种功能的信号收发器。
优选的,所述flash存储空间划分为三个部分,第一个部分为用于数据采集的存储空间,第二个部分为用于底层驱动函数指针数组的存储空间,第三个为用于实现底层驱动、存储、通信和逻辑控制的存储空间。
优选的,所述mcu为8位、16位或32位单片机,具有两路以上uart接口。
本发明的技术效果和优点:本发明提出的基于lora通信的水利rtu采集功能升级方法,与现有技术相比,具有以下优点:
本发明通过将mcu的程序存储空间划分为两部分,一部分实现底层驱动、存储、通信、逻辑判断等功能,另外一部分专门用于实现数据采集功能,底层驱动部分的函数调用通过数组存储在固定的地址,采集部分程序通过这个数组实现底层函数调用,rtu升级时将收到的程序文件存储在外部flash中,校验正确后再将程序文件覆盖到采集部分的存储空间,完成采集部分的功能升级,降低了升级数据的大小,提高了升级的成功率和灵活性。
附图说明
图1为本发明的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供了如图1所示的基于lora通信的水利rtu采集功能升级方法,包括以下步骤:
s1、将mcu的程序存储空间划分为两部分,一个部分为用于实现底层驱动、存储、通信、逻辑判断的底层驱动程序存储空间,另一个部分为用于实现数据采集功能的采集程序存储空间;
s2、将底层驱动程序存储空间的函数调用通过数组存储在固定的地址;
s3、采集程序存储空间通过数组实现底层函数调用;
s4、在rtu升级时,将收到的程序文件存储在外部flash存储空间中;
s5、对程序文件进行校验,校验正确后再将程序文件覆盖到采集部分的存储空间,完成采集部分的功能升级。
较佳地,所述rtu内设有远程升级通信模块,所述远程升级通信模块用于接收远程升级命令。
通过采用上述技术方案,远程升级通信模块可以接收远程升级命令,并将接收到的远程升级命令发送至服务器。
较佳地,当所述远程升级通信模块接收到远程升级命令时,清空升级文件存储区域,停止数据采集,同时向服务器发送远程升级命令。
通过采用上述技术方案,可以在远程升级通信模块接收到远程升级命令时,将升级文件存储区域清空,以供存储空间内有足够的文件放置升级文件,停止数据采集可以避免服务器接收到的命令冲突,导致采集到错误数据的情况出现,
较佳地,所述服务器在接收到远程升级命令时,等待远程升级报文。
通过采用上述技术方案,通过等待远程升级报文,可以确定远程升级命令的准确性,避免误操作导致的不该出现的远程升级命令出现。
较佳地,在所述服务器等待远程升级报文前,设定等待时间,等待时间为30s-60s,当超出所述等待时间后,重新等待远程升级命令。
通过采用上述技术方案,通过设置等待时间,可以超出等待时间后,服务器处于休眠状态,降低能耗。
较佳地,当所述服务器接收到远程升级报文时,回复应答报文存储文件,然后接收升级文件。
通过采用上述技术方案,准确回复应答报文存储文件,以保证远程升级命令的准确性。
较佳地,在s5中,对程序文件进行校验时,当文件校验错误,返回s1,重新等待远程升级命令,当文件校验正确后,采集程序替换,继续运行rtu。
通过采用上述技术方案,可以避免错误升级文件覆盖现有的正确文件,导致水利rtu系统瘫痪的情况出现。
较佳地,所述远程升级通信模块包括信号收发器,且信号收发器为具有蓝牙、wifi、gprs和4g中至少一种功能的信号收发器。
通过采用上述技术方案,可以提高远程升级数据传输的便捷性。
较佳地,所述flash存储空间划分为三个部分,第一个部分为用于数据采集的存储空间,第二个部分为用于底层驱动函数指针数组的存储空间,第三个为用于实现底层驱动、存储、通信和逻辑控制的存储空间。
通过采用上述技术方案,采用不同的部分进行存储,可以实现对数据采集、底层驱动函数指针数组、实现底层驱动、存储、通信和逻辑控制的分别管理,降低flash存储空间的工作负荷。
较佳地,所述mcu为8位、16位或32位单片机,具有两路以上uart接口。
通过采用上述技术方案,可以根据实际情况自由设计。
工作原理:首先将mcu的程序存储空间划分为两部分,一个部分为用于实现底层驱动、存储、通信、逻辑判断的底层驱动程序存储空间,另一个部分为用于实现数据采集功能的采集程序存储空间,然后将底层驱动程序存储空间的函数调用通过数组存储在固定的地址,采集程序存储空间通过数组实现底层函数调用,接着远程升级通信模块用于接收远程升级命令,当远程升级通信模块接收到远程升级命令时,清空升级文件存储区域,停止数据采集,同时向服务器发送远程升级命令,服务器在接收到远程升级命令时,等待远程升级报文,避免误操作导致的不该出现的远程升级命令出现,当所述服务器接收到远程升级报文时,回复应答报文存储文件,然后接收升级文件,在rtu升级时,将收到的程序文件存储在外部flash存储空间中,最后对程序文件进行校验,校验正确后再将程序文件覆盖到采集部分的存储空间,完成采集部分的功能升级,降低了升级数据的大小,提高了升级的成功率和灵活性。
实施例二
本发明还提供了如图1所示的基于lora通信的水利rtu采集功能升级方法,与实施例一不同的是:
远程升级通信模块接收到远程升级命令时,向服务器发送远程升级命令,服务器在接收到远程升级命令时,等待远程升级报文,超出等待时间45s后,自动恢复等待到远程升级命令状态。
工作原理:首先将mcu的程序存储空间划分为两部分,一个部分为用于实现底层驱动、存储、通信、逻辑判断的底层驱动程序存储空间,另一个部分为用于实现数据采集功能的采集程序存储空间,然后将底层驱动程序存储空间的函数调用通过数组存储在固定的地址,采集程序存储空间通过数组实现底层函数调用,接着远程升级通信模块用于接收远程升级命令,当远程升级通信模块接收到远程升级命令时,清空升级文件存储区域,停止数据采集,同时向服务器发送远程升级命令,服务器在接收到远程升级命令时,等待远程升级报文,避免误操作导致的不该出现的远程升级命令出现,当所述服务器接收到远程升级报文时,回复应答报文存储文件,然后接收升级文件,在rtu升级时,将收到的程序文件存储在外部flash存储空间中,最后对程序文件进行校验,校验正确后再将程序文件覆盖到采集部分的存储空间,完成采集部分的功能升级,降低了升级数据的大小,提高了升级的成功率和灵活性。
实施例三
本发明还提供了如图1所示的基于lora通信的水利rtu采集功能升级方法,与实施例一不同的是:
远程升级通信模块接收到远程升级命令时,向服务器发送远程升级命令,服务器在接收到远程升级命令时,等待远程升级报文,超出等待时间60s后,自动恢复等待到远程升级命令状态。
工作原理:首先将mcu的程序存储空间划分为两部分,一个部分为用于实现底层驱动、存储、通信、逻辑判断的底层驱动程序存储空间,另一个部分为用于实现数据采集功能的采集程序存储空间,然后将底层驱动程序存储空间的函数调用通过数组存储在固定的地址,采集程序存储空间通过数组实现底层函数调用,接着远程升级通信模块用于接收远程升级命令,当远程升级通信模块接收到远程升级命令时,清空升级文件存储区域,停止数据采集,同时向服务器发送远程升级命令,服务器在接收到远程升级命令时,等待远程升级报文,避免误操作导致的不该出现的远程升级命令出现,当所述服务器接收到远程升级报文时,回复应答报文存储文件,然后接收升级文件,在rtu升级时,将收到的程序文件存储在外部flash存储空间中,最后对程序文件进行校验,校验正确后再将程序文件覆盖到采集部分的存储空间,完成采集部分的功能升级,降低了升级数据的大小,提高了升级的成功率和灵活性。
最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
1.基于lora通信的水利rtu采集功能升级方法,其特征在于,包括以下步骤:
s1、将mcu的程序存储空间划分为两部分,一部分为用于实现底层驱动、存储、通信、逻辑判断的底层驱动程序存储空间,另一部分为用于实现数据采集功能的采集程序存储空间;
s2、将底层驱动程序存储空间的函数调用通过数组存储在固定的地址;
s3、采集程序存储空间通过数组实现底层函数调用;
s4、在rtu升级时,将收到的程序文件存储在外部flash存储空间中;
s5、对程序文件进行校验,校验正确后再将程序文件覆盖到采集部分的存储空间,完成采集部分的功能升级。
2.根据权利要求1所述的基于lora通信的水利rtu采集功能升级方法,其特征在于:所述rtu内设有远程升级通信模块,所述远程升级通信模块用于接收远程升级命令。
3.根据权利要求2所述的基于lora通信的水利rtu采集功能升级方法,其特征在于:当所述远程升级通信模块接收到远程升级命令时,清空升级文件存储区域,停止数据采集,同时向服务器发送远程升级命令。
4.根据权利要求3所述的基于lora通信的水利rtu采集功能升级方法,其特征在于:所述服务器在接收到远程升级命令时,等待远程升级报文。
5.根据权利要求4所述的基于lora通信的水利rtu采集功能升级方法,其特征在于:在所述服务器等待远程升级报文前,设定等待时间,等待时间为30s,当超出所述等待时间后,重新等待远程升级命令。
6.根据权利要求5所述的基于lora通信的水利rtu采集功能升级方法,其特征在于:当所述服务器接收到远程升级报文时,回复应答报文存储文件,然后接收升级文件。
7.根据权利要求1所述的基于lora通信的水利rtu采集功能升级方法,其特征在于:在s5中,对程序文件进行校验时,当文件校验错误,返回s1,重新等待远程升级命令,当文件校验正确后,采集程序替换,继续运行rtu。
8.根据权利要求1所述的基于lora通信的水利rtu采集功能升级方法,其特征在于:所述远程升级通信模块包括信号收发器,且信号收发器为具有蓝牙、wifi、gprs和4g中至少一种功能的信号收发器。
9.根据权利要求1所述的基于lora通信的水利rtu采集功能升级方法,其特征在于:所述flash存储空间划分为三个部分,第一个部分为用于数据采集的存储空间,第二个部分为用于底层驱动函数指针数组的存储空间,第三个为用于实现底层驱动、存储、通信和逻辑控制的存储空间。
10.根据权利要求1所述的基于lora通信的水利rtu采集功能升级方法,其特征在于:所述mcu为8位、16位或32位单片机,具有两路以上uart接口。
技术总结