掌桥专利:专业的专利平台
掌桥专利
首页

一种用于燃气调压计量箱系统的多设备固件升级方法

文献发布时间:2024-04-18 20:01:30


一种用于燃气调压计量箱系统的多设备固件升级方法

技术领域

本发明涉及固件升级技术领域,具体地,涉及一种用于燃气调压计量箱系统的多设备固件升级方法。

背景技术

智能燃气调压计量箱作为工商业终端用户的安全用气设备,主要由燃气调压计量箱和远程终端设备(Remote Terminal Unit,RTU)组成,针对长期持续大流量使用燃气的用气场景,可以实时监测调压计量箱的各类参数及使用工况,进行实时、高效的监测传输与控制,解决用气的实时监测通信及安全用气的问题,使得燃气调压计量箱提供被监控和数据采集(Supervisory Control and Data Acquisition,SCADA)平台访问的能力。

然而,现有的燃气调压计量箱设备具有以下缺点:

1、传统调压计量箱内包含诸多的采集设备,如流量计、温度传感器、压力传感器、泄露报警器等,无法保证各个设备系统的长期稳定运行,无法对每个设备进行升级。

2、传统调压计量箱的数据采集系统多为通过一根RS485总线将数据连接至主站,各个设备需要进行独立升级,且只支持本地通过站控系统进行升级,步骤繁琐。

3、常用的升级方案针对boot加app结构,仅可以实现对app的升级,且存在升级失败,设备彻底失去恢复的可能,boot引导程序在出厂时,已固化烧录到芯片内部存储的固定区域,无法在使用中对其进行升级。

发明内容

针对现有技术中的缺陷,本发明的目的在于提供一种用于燃气调压计量箱系统的多设备固件升级方法,本方法可使得燃气调压箱的多个智能设备都具备远程升级功能,从而使得多个智能设备的运行更加稳健,节省了维护成本,同时具备修复系统中存在的稳定性问题,也可以更新更多的新功能应用。

为解决上述问题,本发明的技术方案为:

一种用于燃气调压计量箱系统的多设备固件升级方法,其中所述燃气调压计量箱系统包括燃气调压计量箱、RTU设备以及客户端维护平台,所述燃气调压计量箱内包括多个传感器设备,所述方法包括以下步骤:

客户端维护平台根据升级需要生成升级数据包并通过无线传输至RTU设备;

所述RTU设备接收客户端维护平台发送的的升级数据包,所述升级数据包包括给RTU自身设备升级的数据包和给燃气调压计量箱内设备升级的数据包;

所述RTU设备根据升级数据包进行升级维护,完成RTU设备自身的升级,以及依据不同的设备地址完成对燃气调压计量箱中多个设备的固件升级。

优选地,所述燃气调压计量箱的多个待升级的传感器设备通过RS485总线连接至RTU设备,通过Modbus RTU传输协议进行数据交互,所述RTU设备包括无线通信模组,通过Modbus Tcp传输协议与客户端维护平台进行数据通信。

优选地,所述RTU设备包括固件升级控制寄存器和固件升级传输数据包寄存器,固件升级控制寄存器用于配置传输数据包的升级类型、数据包传输的流程控制、读取升级状态功能,固件升级传输数据包寄存器用于将待升级的OTA文件包括包号、数据包长度、片内存储映射地址、固件数据块、CRC16校验映射到对应的寄存器地址中。

优选地,所述RTU设备包括两块完全独立的片内FLASH区BANK1、BANK2,在BANK1和BANK2区域中分别存储了不同版本的设备运行固件程序,每块区域内划分出不同的代码区域,分别包含启动引导加载程序以及应用程序,应用程序区又划分出业务代码区、实时操作系统库区和芯片驱动库区,依据固件升级改动的空间分别对应不同的区域升级。

优选地,所述RTU设备还包括外部SFLASH区域,将用于计量箱内多设备远程升级的固件升级包缓存于外部SFLASH区域。

优选地,所述RTU设备依据固件升级包包头存储的MBR信息中的设备描述信息来区分燃气调压计量箱中不同设备的固件程序,通过Modbus RTU传输协议,完成对燃气调压计量箱中多个设备的固件升级。

优选地,所述方法还包括步骤:当某一设备的固件程序在升级时发生异常错误时,系统会自动切换到该设备的旧版本的固件程序。

优选地,所述当某一设备的固件程序在升级时发生异常错误时,系统会自动切换到该设备的旧版本的固件程序的步骤,具体包括:所有的固件升级包采用双备份机制,基于双BANK闪存机制,分别用来存储当前运行的固件程序以及上一版本的备份固件程序,当某一程序在升级时发生异常错误,系统会自动切换到对应的旧版本固件程序。

与现有技术相比,本发明的有益效果如下:

1、本发明使得调压计量箱的多个智能设备可以被远程客户端维护平台进行维护,而不需要现场对每个设备进行升级和维护,节省了维护成本。

2、本发明采用双备份固件升级机制,使得升级系统更加可靠稳定,即使在升级完成后出现了升级包校验失败,也可以回退切换到旧版本运行设备,不至于设备完全宕机。

3、本发明的升级方法支持本地设备的远程升级功能,使得一些不具备远程通信能力的传感器设备可以通过RTU设备完成远程升级,为用户提供了灵活的升级方式,既可以在现场进行本地的固件烧录升级,也可以通过客户端维护平台进行远程升级操作。

附图说明

通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:

图1为本发明实施例提供的燃气调压计量箱系统结构框图;

图2为本发明实施例提供的燃气调压计量箱系统通信框图;

图3为本发明实施例提供的用于燃气调压计量箱系统的多设备固件升级方法流程框图;

图4为本发明实施例提供的OTA文件结构示意图;

图5为本发明实施例提供的固件升级控制寄存器示意图;

图6为本发明实施例提供的固件升级数据包寄存器地址映射图;

图7为本发明实施例提供的固件升级数据交互流程图;

图8为本发明实施例提供的RTU设备的的存储区域划分示意图;

图9为本发明实施例提供的RTU设备差分升级还原过程图;

图10为本发明实施例提供的RTU设备应用代码升级过程图;

图11为本发明实施例提供的RTU设备boot代码升级过程图。

具体实施方式

下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。

具体地,智能燃气调压计量箱作为工商业终端用户的安全用气设备,主要由燃气调压计量箱和RTU远传设备组成,针对长期持续大流量使用燃气的用气场景,可以实时监测调压计量箱的各类参数及使用工况,进行实时、高效的监测传输与控制,解决用气的实时监测通信及安全用气的问题,使得燃气调压计量箱提供被SCADA平台访问的能力,智能燃气调压计量箱系统的功能框图如图1所示。

所述智能燃气调压计量箱的箱体内部设有流量计、温度传感器、压力传感器、泄露报警器等多个智能采集终端设备,多个采集终端设备通过RS485总线连接至RTU设备,通过Modbus RTU传输协议进行数据交互。所述RTU远传设备采用5G通信技术,具备唯一的IPV6固定地址,通过Modbus Tcp传输通信协议,作为Modbus服务器,具备实时工况采集传输功能、各类安全监测功能、实时远程数据采集和远程控制功能以及远程登录访问功能,是一个兼具了实时性、安全性、可靠性以及可维护性的高复杂度集成系统,智能燃气调压计量箱系统的通信框图如图2所示。

本发明提供一种用于燃气调压计量箱系统的多设备固件升级方法,从而可为燃气调压计量箱中的多设备固件提供升级服务,本发明主要是应用芯片的一种双BANK的闪存机制来管理升级代码,其中每个Bank区域都可存储完整的运行代码,通过配置Option Byte选项字节寄存器就可以实现自动切换,本发明的升级方法具有高可靠性和高安全性,具备固件代码的备份能力,即使在升级过程中出现异常,导致升级固件失败,也可以利用备份机制,回退到旧的固件版本。

具体地,如图3所示,所述用于燃气调压计量箱系统的多设备固件升级方法包括以下步骤:

S1:客户端维护平台根据升级需要生成升级数据包并通过无线传输至RTU设备;

具体地,本发明用于燃气调压计量箱系统的多设备固件升级方法,多个待升级的采集设备通过RS485总线连接至RTU设备,通过Modbus RTU传输协议进行数据交互,同时,所述RTU设备作为TCP的Server端,具备提供不同的服务端口能力,使用高速的5G通信模组进行数据通信,通过Modbus Tcp传输协议可分别与SCADA数据采集平台和客户端维护平台进行连接。

S2:所述RTU设备接收客户端维护平台发送的的升级数据包,所述升级数据包包括给RTU自身设备升级的数据包和给燃气调压计量箱内设备升级的数据包;

具体地,所述升级数据包包括给RTU自身设备升级的数据包和给燃气调压计量箱内设备升级的数据包。升级传输的OTA文件采用将升级的bin文件进行依据一定的块大小进行分包打散再组装的过程。OTA文件的包头插入升级包的信息描述,数据包头包含包索引号、数据包长度、片内flash存储地址,包尾部包含CRC16两字节校验值,用于整包数据的完整性校验。OTA文件的包尾部插入16个字节的GCM算法生成的完整性签名信息校验。整体OTA文件的结构如图4所示。

传输层的应用协议采用Modbus协议中的用户自定义功能码中的0x64-0x6E区域,分别定义了0x64固件升级控制寄存器和固件升级传输数据包寄存器,固件升级控制寄存器主要用于配置传输数据包的升级类型、数据包传输的流程控制、读取升级状态等功能,如图5所示。固件升级传输数据包寄存器主要是将待升级的OTA文件包括包号、数据包长度、片内存储映射地址、固件数据块、CRC16校验映射到对应的寄存器地址中,如图6所示。其中数据传输数据包支持差分升级和整包升级,可以依据级固件包的大小进行选择,差分升级包可以提高升级传输效率,降低存储空间;整包升级针固件包较小的升级,减少了还原过程,不依赖与当前的运行版本,升级流程更加简单易用。

升级的交互流程如图7所示,主要包括建立升级通道、请求升级、数据固件升级、固件数据包传输过程、升级结束等多个交互过程。

S3:所述RTU设备根据升级数据包进行升级维护,完成RTU设备自身的升级,以及依据不同的设备地址完成对燃气调压计量箱中多个设备的固件升级。

具体地,所述RTU设备根据升级数据包进行升级维护,所述RTU设备可通过5G通信模组实现远程OTA升级,升级方式可依据固件包大小进行选择为整包差分升级或固定区域段升级。其中,所述RTU设备包含了两块完全独立的BANK片内FLASH区,以及一块大容量的串行FLASH区,如图8所示。在BANK1和BANK2区域中分别存储了不同版本的设备运行固件程序,每块区域内划分出不同的代码区域,分别包含BOOT(启动引导加载程序)以及APP(应用程序),应用程序区又划分出LR代码区(业务代码)、RTOS Lib区(实时操作系统库)和DriverLib区(芯片驱动库)。可以依据固件升级改动的空间分别对应不同的区域升级,如可以单独升级Boot区或者APP区以及APP区的业务代码段更新、RTOS系统更新或者芯片驱动库更新,提供了多种灵活的更新代码方式。

RTU设备通过Modbus Tcp将远程升级的固件升级包缓存于外部SFLASH区域,所述RTU设备依据固件升级包包头存储的MBR信息中的设备描述信息来区分燃气调压计量箱中不同设备的固件程序,通过Modbus RTU传输协议,依据不同的设备地址,完成对燃气调压计量箱中多个设备的固件升级。

图9所示为待升级包为差分升级包,依据当前正在运行的BANK1区域代码为字典进行差分还原操作,并将还原后的固件代码即升级代码更新到BANK2的固件存储区域,更新完成并经过GCM算法的完整性校验后,进行切换Option Byte的寄存器操作,触发系统复位操作,会自动到升级完成的BANK2的BOOT2区域代码,读取响应的MBR信息后,跳转到APP2的应用程序代码区域,至此完成一次远传固件的升级、还原、校验、切换、启动等升级过程。

同时,还可直接更新应用区域代码,如图10所示,无需采用Bank1进行还原操作,直接将存储在外部SFLASH区域的app.bin代码搬运至BANK2的应用代码区域即完成了相应的升级过程。除此以外,还可直接更新启动引导加载程序,如图11所示,直接将存储在外部SFLASH区域的boot.bin代码搬运至BANK2的Boot2区域即完成了相应的升级过程。

进一步地,在一个可选的实施例中,本发明用于燃气调压计量箱系统的多设备固件升级方法还包括以下步骤:

当某一设备的固件程序在升级时发生异常错误时,系统会自动切换到该设备的旧版本的固件程序。

具体地,本发明所有的固件升级包采用双备份机制,即便升级完成后固件包异常,也可回退之前的固件版本运行,本发明中的设备升级基于STM32系列芯片的双BANK闪存机制,分别用来存储当前运行的固件程序以及上一版本的备份固件程序,当某一BANK的程序在升级时发生异常错误,系统则会自动切换到对应的稳定BANK区域运行旧版本的固件,以此来保证系统的安全升级与回滚,升级结束。

以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。

技术分类

06120116556899