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

实现低功耗阀固件升级的方法及存储介质、电子设备

文献发布时间:2024-04-18 19:58:53


实现低功耗阀固件升级的方法及存储介质、电子设备

技术领域

本发明涉及智能供热技术领域,尤其涉及一种实现低功耗阀固件升级的方法及存储介质、电子设备。

背景技术

在供热行业的应用场景中,户阀和楼阀的安装环境复杂,采用有线部署方式。然而,随着无线通讯技术的发展,以及无线安装便捷且人工成本较低,无线通讯和电池供电方式成为趋势。

阀设备是低功耗设备,仅在需要上报时才连接到物联网,并在上报完成后进入休眠状态。传统的AT(Attention)指令开发方式存在一些问题,如交互过程繁琐、通信时间较长、在网络较差的情况下耗电量较大等,难以满足低功耗要求。此外,当涉及多种协议交互时,传统的开发方式也难以实现并发处理,无法应对复杂的现场应用场景,无法根据实际情况选择合适的固件进行迭代,也无法保证固件迭代过程中的安全性。

发明内容

本发明旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本发明的一个目的在于提出一种实现低功耗阀固件升级的方法,在低功耗阀固件升级过程中,可保证数据和低功耗阀的安全性。

本发明的第二个目的在于提出一种计算机可读存储介质。

本发明的第三个目的在于提出一种电子设备。

为达到上述目的,本发明第一方面实施例提出一种实现低功耗阀固件升级的方法,用于与多个低功耗阀通信连接的通信模块,所述方法包括:接收目标低功耗阀发送的升级请求报文;对所述升级请求报文进行合法验证,验证合法后,根据所述升级请求报文获取目标固件;根据所述目标固件向所述目标低功耗阀发送升级应答报文,以使所述目标低功耗阀在接收到所述升级应答报文,校验所述升级应答报文合法,且校验所接收的目标固件完整后,根据所接收的目标固件进行固件升级。

根据本发明实施例的实现低功耗阀固件升级的方法,通信模块在接收目标低功耗阀发送的升级请求报文时,对升级请求报文进行合法性验证,验证合法后获取目标固件,并将目标固件通过升级应答报文的形式下发至目标低功耗阀,目标低功耗阀在接收到升级应答报文后进行合法性以及完整性校验,保证数据和设备的安全性。

另外,根据本发明上述实施例提出的实现低功耗阀固件升级的方法还可以具有如下附加的技术特征:

根据本发明的一个实施例,所述升级请求报文和所述升级应答报文均采用第一预设报文格式,所述第一预设报文格式包括设备类型、固件版本和校验码,其中,所述校验码用于验证所述升级请求报文和所述升级应答报文是否合法,根据所述升级请求报文获取目标固件,包括:根据所述升级请求报文中的设备类型和固件版本确定所述目标固件,并查询本地是否存在所述目标固件;若存在,则从本地获取所述目标固件;若不存在,则从目标服务器下载所述目标固件。

根据本发明的一个实施例,所述从目标服务器下载所述目标固件,包括:向所述目标服务器发送加密的下载请求报文,其中,所述下载请求报文根据所述升级请求报文生成;接收所述服务器对所述下载请求报文进行解密且验证所述下载请求报文合法后,根据所述下载请求报文下发加密的固件下载报文;对所述固件下载报文进行解密,且验证所述固件下载报文合法后,根据所述固件下载报文从所述目标服务器下载所述目标固件。

根据本发明的一个实施例,所述下载请求报文和所述固件下载报文采用第二预设报文格式,所述第二预设报文格式包括固件版本、时间戳、随机数和秘钥,向所述目标服务器发送加密的下载请求报文,包括:根据所述升级请求报文中的固件版本确定的加密方式,其中,不同的所述固件版本对应不同的加密方式;利用所述加密方式根据所述固件版本、所述时间戳和所述随机数生成秘钥,得到所述下载请求报文,并向所述服务器发送所述下载请求报文,以使所述服务器根据所述下载请求报文中的固件版本,查询目标解密方式,利用所述目标解密方式对所述下载请求报文进行解密后,根据所述下载请求报文下发加密的固件下载报文。

根据本发明的一个实施例,根据所述目标固件向所述目标低功耗阀发送升级应答报文,包括:对所述目标固件进行分包,向所述目标低功耗阀发送所述升级应答报文,其中,所述升级应答报文包括所述目标固件分包后的资源数据。

根据本发明的一个实施例,所述目标固件的预设位置设有资源数据长度和校验和,所述资源数据长度和校验和用于在所述目标低功耗阀接收到所述升级应答报文后,校验所述升级应答报文是否合法,以及校验所接收的目标固件是否完整。

根据本发明的一个实施例,所述方法还包括:根据所述固件下载报文从所述服务器下载通信模块固件、与所述目标低功耗阀不同类型设备固件、以及与所述目标低功耗阀同类型设备固件。

根据本发明的一个实施例,所述向所述目标服务器发送加密的下载请求报文之前,所述方法还包括:获取所述通信模块的目标需求;根据所述目标需求,确定目标通信方式,以采用所述目标通信方式向通信模块发送请求报文,其中,所述目标通信方式包括http、https、tcp、udp、mqtt中的至少一者。

为达到上述目的,本发明第二方面实施例提出了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现如本发明第一方面实施例提出的实现低功耗阀固件升级的方法。

为达到上述目的,本发明第三方面实施例提出了一种电子设备,包括存储器、处理器,所述存储器上存储有计算机程序,所述计算机程序被所述处理器执行时,实现如本发明第一方面实施例提出的实现低功耗阀固件升级的方法。

本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

图1是本发明一个实施例的实现低功耗阀固件升级的方法的流程图;

图2是本发明一个实施例的从目标服务器下载目标固件的流程图;

图3是本发明一个具体地实施例的低功耗阀进行固件升级的示意图;

图4是本发明实施例的电子设备的结构框图。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。

下面结合说明书附图1-附图4以及具体的实施方式对本发明实施例的实现低功耗阀固件升级的方法及存储介质、电子设备进行详细说明。

本发明实施例的实现低功耗阀固件升级的方法,用于与多个低功耗阀通信连接的通信模块。本发明实施例中的低功耗阀可为嵌入式低功耗阀、智能阀单片机。

图1是本发明一个实施例的实现低功耗阀固件升级的方法的流程图。如图1所示,实现低功耗阀固件升级的方法可包括:

S101,接收目标低功耗阀发送的升级请求报文。

具体地,低功耗的低功耗阀通过通信模块定时上报其监测的数据。低功耗阀在上报其监测的数据时,还可同步进行固件更新检测,当检测到需要进行固件更新时,可向通信模块发送升级请求报文。

需要说明的是,低功耗阀向通信模块发送升级请求报文不限于上述情况,可设置低功耗阀定时进行固件更新检测,当其检测到需要进行固件更新时,可向通信模块发送升级请求报文。或低功耗阀检测到其设备类型改变,且固件版本为初级版本时,也可向通信模块发送升级请求报文。本发明实施例不对低功耗阀向通信模块发送升级请求报文的情况进行限定。

本发明实施例将与通信模块连接的需要进行固件更新的低功耗阀作为目标低功耗阀,通信模块接收目标低功耗阀发送的升级请求报文,以根据该升级请求报文向目标低功耗阀发送目标固件的资源文件,使目标低功耗阀根据该目标固件的资源文件进行固件升级。

S102,对升级请求报文进行合法验证,验证合法后,根据升级请求报文获取目标固件。

具体地,为保证固件升级的安全性,通信模块在接收到升级请求报文后,对升级请求报文进行合法验证,以判断升级请求报文是否来自合法设备(低功耗阀)。验证升级请求报文合法后,根据升级请求报文获取目标低功耗阀请求的目标固件。

在本发明的一个实施例中,升级请求报文和升级应答报文均采用第一预设报文格式,第一预设报文格式包括设备类型、固件版本和校验码,其中,校验码用于验证升级请求报文和升级应答报文是否合法,根据升级请求报文获取目标固件,包括:

根据升级请求报文中的设备类型和固件版本确定目标固件,并查询本地是否存在目标固件;

若存在,则从本地获取目标固件;

若不存在,则从目标服务器下载目标固件。

具体地,通信模块接收的升级请求报文中包括目标低功耗阀的设备类型,以及目标低功耗阀当前固件的固件版本,以及基于升级请求报文生成的校验码。通信模块根据升级请求报文中的设备类型、固件版本等计算校验码,若计算得到的校验码与升级请求报文中的校验码一致,则确定升级请求报文合法。在验证升级请求报文合法后,根据升级请求报文获取目标固件。

其中,通信模块在根据升级请求报文获取目标固件时,通信模块根据升级请求报文中的设备类型(即目标低功耗阀的设备类型)和固件版本(即目标低功耗阀当前固件的固件版本)确定目标固件,并查询本地是否存在目标固件。若存在,则从本地获取目标固件;若不存在,则从目标服务器下载目标固件。

S103,根据目标固件向目标低功耗阀发送升级应答报文,以使目标低功耗阀在接收到升级应答报文,校验升级应答报文合法,且校验所接收的目标固件完整后,根据所接收的目标固件进行固件升级,其中,升级应答报文中包括目标固件。

具体地,通信模块根据目标固件向目标低功耗阀发送升级应答报文。其中,升级应答报文包括目标低功耗阀的设备类型、目标固件的固件版本,以及基于升级应答报文生成的校验码。

目标低功耗阀在接收到升级应答报文后,根据升级应答报文中的设备类型、固件版本计算校验码,若计算得到的校验码与升级应答报文中的校验码一致,则确定升级应答报文合法。校验升级应答报文合法后,目标低功耗阀获取升级应答报文中的目标固件,并校验所接收的目标固件是否完整,若完整,则根据所接收的目标固件进行固件升级。

在本发明的一个实施例中,从目标服务器下载目标固件,可包括:

S201,向目标服务器发送加密的下载请求报文,其中,下载请求报文根据升级请求报文生成;

S202,接收目标服务器对下载请求报文进行解密且验证下载请求报文合法后,根据下载请求报文下发加密的固件下载报文;

S203,对固件下载报文进行解密,且验证固件下载报文合法后,根据固件下载报文从目标服务器下载目标固件。

由于通信模块算力较差,无法使用标准的加密算法,使用明文容易被篡改,安全可靠性较低。为了满足算力较差的通信模块能够安全地发送报文且具有时效性。本发明实施例基于时间戳+设备号+随机生成的秘钥:将时间戳、设备号和随机生成的秘钥组合起来作为报文的一部分。这样可以在报文中引入时效性和设备身份验证的元素。

具体地,对向目标服务器发送加密的下载请求报文,目标服务器基于加密的下载请求报文,对加密的下载请求报文进行解密,以及验证,验证合法后下发加密的固件下载报文,以进一步提高安全性。通信模块对固件下载报文进行解密,且验证固件下载报文合法后,根据固件下载报文从目标服务器下载目标固件,从而有效防止固件被篡改。

在本发明的一个实施例中,下载请求报文和固件下载报文采用第二预设报文格式,第二预设报文格式包括固件版本、时间戳、随机数和秘钥,向目标服务器发送加密的下载请求报文,可包括:

根据升级请求报文中的固件版本确定的加密方式,其中,不同的固件版本对应不同的加密方式;

利用加密方式根据固件版本、时间戳和随机数生成秘钥,得到下载请求报文,并向目标服务器发送下载请求报文,以使目标服务器根据下载请求报文中的固件版本,查询目标解密方式,利用目标解密方式对下载请求报文进行解密后,根据下载请求报文下发加密的固件下载报文。

作为一具体实施例,第二预设报文包括服务器域名、请求的目标固件、设备号、时间戳、随机数、秘钥。

通信模块在请求目标固件时,向目标服务器发送的下载请求报文。其中,下载请求报文的格式如下:

http://xxx.com?&bin=xxx.bin&ID=xxxXXXXXX&time=1687063700&rand=xxxxxxxx&secert=xxxxxxxxxxx。

其中,http://xxx.com为目标服务器域名,bin=xxx.bin为当前固件(目标低功耗阀当前固件的固件版本),ID=xxxXXXXXX为设备号,time=1687063700为时间戳,rand=xxxxxxxx为随机数(临时秘钥),secert=xxxxxxxxxxx为根据设备号ID、时间戳time以及随机数rand生成的秘钥。

其中,通信模块根据设备号ID、时间戳time以及随机数rand生成的秘钥,加密方法可为:取设备号ID转数字id,时间戳time转数字t,随机数rand转数字r,生成秘钥secert=id*t*r。需要说明的是,加密方法是根据固件版本确定的。通信模块根据升级请求报文中固件版本确定何种计算秘钥的方法,通过设备号ID,时间戳time(时间误差5分钟内),随机数rand计算得出秘钥,拼接到url(下载请求报文)生成下载请求报文。

通信模块结合自身情况,射频参数,电池电量,最近通讯成功率,自主决定采用(http、https、tcp、udp、mqtt)其中之一进行通讯,加密报文如下:Mver:xxx.bin,Product:xxx,ID:XXXXXXX,time:xxxxxxx,rand:xxxxxx,secret:1111111111。其中,Mver:xxx.bin为当前固件(目标低功耗阀当前固件的固件版本);Product:xxx为设备类型(目标低功耗阀的设备类型);ID:XXXXXXX为设备号;time:xxxxxxx为时间戳;rand:xxxxxx为随机数;secret:1111111111为秘钥。需要说明的是,固件版本不同,加密算法不同。

目标服务器收到目标低功耗阀的基本信息,根据目标低功耗阀的固件版本选用对应的解密算法。若计算结果一致,则根据目标低功耗阀设备类型和当前固件的固件版本确定是否发送最新固件。

具体地,目标服务器接收到通信模块发送的下载请求报文后,根据下载请求报文中的固件版本,查表确定解密方式,将利用该解密方式根据下载请求报文中的设备号ID、时间戳time以及随机数rand计算得到的密钥与下载请求报文中的密钥进行对比,若一致,则确定通信模块发送的下载请求报文合法。验证通信模块发送的下载请求报文合法后,目标服务器基于通信模块发送的下载请求报文下发的固件下载报文。其中,目标服务器下发的固件下载报文的格式如下:

http://xxx.com?&bin=xxx.bin&ID=xxxXXXXXX&time=1687063700&rand=xxxxxxxx&secert=xxxxxxxxxxx。

其中,http://xxx.com为目标服务器域名,bin=xxx.bin为目标固件(服务器查询的最新的固件版本),ID=xxxXXXXXX为设备号,time=1687063700为时间戳,rand=xxxxxxxx为随机数(临时秘钥),secert=xxxxxxxxxxx为根据设备号ID、时间戳time以及随机数rand生成的秘钥。

需要说明的是,加密方法是根据固件版本确定的。目标服务器根据固件下载报文中固件版本(目标固件的固件版本)确定计算秘钥方法,通过设备号ID,时间戳time(时间误差5分钟内),随机数rand计算得出秘钥,并将计算得出的秘钥拼接到固件下载报文中。

通信模块获取到固件下载报文后,首先根据IP,即http://xxx.com判断固件下载报文是否来自合法的服务器下发。如果判断结果为合法下发,通信模块将使用经过适配的解密算法,即根据目标固件的固件版本确定的解密算法对固件下载报文进行解密,以确定报文的合法性。根据IP判断报文是否来自合法服务器,并使用适配的解密算法对报文进行解密,通信模块可以确保获取到的固件是合法的,并保证数据的安全性和完整性。通信模块将解密,且验证合法后的固件下载报文发送给目标服务器,从目标服务器下载目标固件。

需要说明的是,判断报文是否来自合法的服务器可以通过IP地址进行初步验证。为了更加严格地确保安全性,还可以采用其他的安全机制,例如数字证书、身份认证等方式来进行验证。

在本发明的实施例中,低功耗设备的固件自动化的升级流程:低功耗阀设备定时上报正常的情况下,自动检查固件更新,并进行下载和升级,支持版本回退,减少人工干预。服务器根据上传的固件版本,信号强度,电池电量,IP地址决定是否发送加密的url,发送何种url,设备注册,数据库建表,进行固件版本管理。

需要说明的是,如果目标服务器是用户自建的服务器,则需要控制当前的请求量,避免集中请求固件,服务器带宽有限,不能及时响应,导致请求失败,超时,缩短电池寿命。

在本发明的一个实施例中,实现低功耗阀固件升级的方法还包括:

根据固件下载报文从服务器下载通信模块固件、与目标低功耗阀不同类型设备固件、以及与目标低功耗阀同类型设备固件。

可实施的,通信模块在根据固件下载报文从服务器下载目标固件时,还同步下载通信模块固件、与目标低功耗阀不同类型设备固件、以及与目标低功耗阀同类型设备固件,下载的所有的固件都保存在通信模块中。

通信模块固件用于控制和管理整个通信模块的软件,它支持多种通信协议,如mqtt、tcp、udp等,以便与其他设备进行通信。本发明实施例中的通信模块固件也具备本地多固件管理功能,可以管理和更新不同类型的单片机固件。

与目标低功耗阀不同类型设备固件是为了满足与通信模块连接的不同类型的设备。每个类型设备固件都针对特定的设备型号进行优化和适配,以确保其在对应设备上的正常运行和功能实现。与目标低功耗阀不同类型设备固件也保存在通信模块中,可以根据需要进行管理和更新。

与目标低功耗阀同类型设备固件为满足同一个低功耗设备在不同的应用场景下可能需要不同的用法。嵌入式低功耗设备的一个程序无法满足所有的应用场景。即使能够满足,但是嵌入式低功耗设备成本、开发人力和软件兼容性测试等方面的需求也会消耗大量的时间。示例性的,当低功耗设备的设备类型被改变且固件版本为0x0000时,设备会发起请求。通信模块接收到升级请求报文后,查询本地是否有最新的固件。如果有最新的固件,设备将使用预设协议进行升级。如果没有最新的固件,通信模块会根据网络情况主动请求获取对应的固件。

通信模块固件的多协议通信和本地多固件管理功能,实现与其他设备的灵活通信,并能够方便地管理和更新不同类型的单片机固件。这样可以提高系统的灵活性和可维护性,以适应不同设备和应用场景的需求。

通信模块根据合法的地址,通过HTTP或HTTPS协议进行请求,一次性获取全部的固件,无需进行反复的短包交互,提高通信效率,减少通信开销,并且能够更快地完成固件的获取。

需要注意的是,选择使用HTTP还是HTTPS协议取决于具体的安全需求。如果固件的传输需要保证安全性,建议使用HTTPS协议进行加密传输。而如果安全性要求相对较低,可以使用HTTP协议进行传输。

本发明实施例在固件的预设位置存放秘钥和签名,可以进行二次验证,以确保固件的完整性和安全性。目标低功耗阀或通信模块在接收到对应的目标固件文件后,可根据预设位置提取出固件预设位置的秘钥和签名,并使用相应的算法进行验证。只有在验证通过的情况下,才可以继续进行固件升级操作。为了确保加密算法的安全性和可靠性,可定期更新秘钥和签名的生成算法,提高系统的安全性和抵御潜在的攻击风险。

由于低功耗设备的处理能力和内存有限,一次性处理过大的数据可能会导致问题。本发明实施例中的通信模块将获取到的目标固件进行合理的分包,使用预设协议(第一预设报文)将分包发送给低功耗设备,以使低功耗设备快速完成固件的迭代。

在本发明的一个实施例中,根据目标固件向目标低功耗阀发送升级应答报文,包括:

对目标固件进行分包,向目标低功耗阀发送升级应答报文,其中,升级应答报文包括目标固件分包后的资源数据。

在本发明的一个实施例中,目标固件的预设位置设有资源数据长度和校验和,资源数据长度和校验和用于在目标低功耗阀接收到升级应答报文后,校验升级应答报文是否合法,以及校验所接收的目标固件是否完整。

作为一具体地的示例,升级请求报文和升级应答报文所采用第一预设报文格式包括起始标志位、可变数据长度、设备类型、固件版本、数据帧序、允许最大包长度、数据类型、数据内容、校验码。其中,第一预设报文各字段所占字节如下表1所示:

表1 第一预设报文各字段所占字节

其中,起始标志:主动请求为0x7b,被动应答为0x7d。可变数据长度:首先以最大包长度发送数据,如果发送失败,则设置数据内容长度,根据预设数据内容长度发送固件的资源数据。设备类型:包括楼阀、户阀、面板等不同的设备类型。固件版本:同一设备类型可能存在不同的固件版本。数据帧序号:用于避免重发或错发的控制序号。保留:保留字段。数据类型:用于拓展应用。数据内容:指的是有效负载部分。校验码:用于校验数据。

通信模块与低功耗设备的交互过程如下:低功耗设备主动请求时,发送的请求固件报文的报文格式如下表2所示:

表2 请求固件报文的报文格式

通信模块在接收到请求固件报文后,根据请求固件报文中的校验码对请求固件报文进行校验,计算合法后,根据请求固件报文中的设备类型和固件版本,判断本地是否存在对应目标固件。若本地存在合法的最新固件,则按照以下格式进行组包,表3所示:

表3 升级应答报文的报文格式

低功耗阀在收到通信模块下发升级应答报文后,对升级应答报文进行校验。根据升级应答报文中的校验码进行校验,如果校验合法,会继续请求下一帧数据。如果校验不合法,会继续请求当前帧序的数据包,允许重复请求3次。如果重复请求失败,则退出,并在下次请求时继续从当前帧序开始操作,而不需要从头开始。

本发明实施例在固件中的预设位置存放了4字节的资源数据长度和4字节的校验和。低功耗阀根据资源数据长度和校验和,判断固件是否接收完成,并对接收到的资源数据进行校验。如果校验正确,低功耗阀将不再请求数据,并完成固件的迭代。在下次请求时,会填充最新的设备类型和固件版本,以避免重复升级。

本发明实施例通过将固件进行分包,将大的数据拆分成多个小包,以适应低功耗设备的处理能力和内存限制。同时,通过调整串口波特率,可以提高数据传输的速度和效率,以加快固件的传输和处理过程。

为了确保数据的可靠传输,可以使用上述协议来发送分包数据。使用的协议可以根据单片机的需求和特定场景进行设计,以满足数据传输的要求。通过使用自定义协议,可以保证数据的完整性和正确性,以确保固件的迭代过程顺利进行。

目标固件一直保存在通信模块中,低功耗设备没有收到完整的固件,不会擦除当前正在运行的固件数据。从而在升级中途发生断电时,低功耗设备也不会被损坏。当低功耗设备重新上电并发起请求时,通信模块会再次将目标固件迭代给目标低功耗阀。可见,通信和网络稳定性并不会影响迭代过程。如果与后台没有交互过程,低功耗设备可以关闭射频,降低功耗,延长电池寿命。

本发明实施例,通过保持固件在通信模块中的保存和重新请求机制,低功耗设备可以在中途断电后恢复正常运行,同时通过关闭射频等措施降低功耗,提高设备的可靠性和电池寿命。

在实际应用中,低功耗设备可以通过与通信模块进行本地交互,以获取最新的固件版本并进行升级。通过主动的本地交互,低功耗设备可以主动向通信模块发送请求,检查是否有新的固件版本可用,并进行下载和安装,实现固件的迭代,保持单片机的功能和性能的最新状态。另外,在某些情况下,如果固件升级后出现问题或不符合预期,低功耗设备也可以通过本地交互实现固件的回滚。通过向通信模块发送请求,单片机可以获取之前的固件版本,并进行回滚操作,将单片机恢复到之前的工作状态。

本发明实施例中的,低功耗设备可以根据实际应用场景主动进行本地交互,实现固件的迭代和回滚,以保持低功耗设备的功能和性能处于最佳状态,并在需要时进行回退,以确保低功耗设备系统的稳定性和可靠性。

本发明实施例提供一具体实施例,如图3所示,智能阀单片机1-智能阀单片机N与通信模块有线连接,通信模块与服务器通信连接。当智能阀单片机1需要进行固件升级时,向通信模块发送升级请求报文,通信模块若检测到本地存在目标固件(资源文件),即固件1,则将固件1通过分包的形式的发送给智能阀单片机1,其中,发送固件1-1至固件1-N 时,采用上述第二报文形式。智能阀单片机1接收到每一固件1-1至固件1-N 时,对其进行合法性以及完整性进行校验,校验完成后,进行固件升级。通信模块若检测到本地不存在目标固件,则向目标服务器发送下载请求报文,即请求服务器下发所需的资源文件。目标服务器解密且校验下载请求报文合法后,下发加密的目标固件的url(固件下载报文)。通信模块基于固件下载报文发起http或https请求,以从目标服务器下载其所需的目标固件。通信模块得到目标固件后,将固件1通过分包的形式的发送给智能阀单片机1。其他智能阀单片机进行固件升级的方式同理,在此不再赘述。

在本发明的一个实施例中,向目标服务器发送加密的下载请求报文之前,方法还包括:

获取通信模块的目标需求;

根据目标需求,确定目标通信方式,以采用目标通信方式向通信模块发送请求报文,其中,目标通信方式包括http、https、tcp、udp、mqtt中的至少一者。

为达到最低功耗和较高的成功率要求,本发明实施例中的通信模块向目标服务器发送加密的下载请求报文之前,获取通信模块的目标需求,根据目标需求利用预设算法,确定目标通信方式,如采用mqtt、tcp、udp、http、https,上报请求固件报文。

在本发明的实施例中,目标需求至少包括功耗、成功率和数据传输量中的一者。

需要说明的是,mqtt或udp协议具有较小的通信开销和较快的连接建立速度,当低功耗的通信方式对于通信模块的要求至关重要时,可采用mqtt或udp协议可以实现较低的功耗。不同的通信方式在不同的网络环境下具有不同的成功率。例如,mqtt和tcp协议在不稳定的网络环境下具有较高的成功率,而udp协议则可能会因为数据包丢失而导致成功率下降。因此,在选择通信方式时,需要综合考虑网络稳定性和成功率要求。不同的通信方式对数据传输量的要求也不同。如果需要传输较大量的数据,http或https协议可能更适合,因为它们支持较大的数据传输。而mqtt和udp协议则适用于传输较小量的数据。

在本发明的实施例中,通信模块可以通过以下算法确定以何种通信方式上报请求固件报文。具体地,评估功耗需求,确定最低功耗的通信方式。如果功耗是主要关注点,可以优先考虑mqtt或udp协议。考虑成功率要求和网络稳定性,选择适合的通信方式。如果成功率要求较高且网络稳定,mqtt或tcp协议是更好的选择。根据数据传输量的大小,选择适当的通信方式。如果需要传输较大量的数据,http或https协议可能是更适合的选择。通过综合考虑功耗需求、成功率要求和数据传输量,可以通过合适的算法确定以何种方式上报信息,以达到最低功耗和较高的成功率要求。

本发明实施例根据固件版本确定秘钥算法,利用秘钥算法根据时间戳、设备号和随机生成的秘钥计算得到最终的秘钥,来减少资源消耗,并且可通过固件版本迭代更新秘钥算法,以保证算法的高效性和安全性。

在本发明的实施例中,不同固件版本采用不同的加密算法,可以增加固件版本的安全性。每个版本的固件版本使用不同的加密算法,即使某个加密算法被破解,其他版本的固件仍然保持安全。大大提高了系统的抗攻击能力,减少固件被篡改或盗用的风险。通过固件版本更新优化秘钥算法,可以不断改进和升级加密算法,提高加密的可靠性。随着技术的发展和攻击手段的演进,旧版本的加密算法可能会变得不够安全。通过版本更新,可以及时采用更强大和可靠的加密算法,保证固件的安全性。

本发明实施例通过采用不同版本固件的不同加密算法,并通过版本更新优化算法,可以有效保证加密的安全性和可靠性。这样可以提高系统的安全性,防止固件被恶意篡改或盗用,保护供热行业中的数据和设备的安全。同时,建议定期评估和更新加密算法,以适应不断变化的安全威胁和攻击手段。通过以上方案,通信模块可以在算力较差的情况下安全地发送报文,并且具备一定的时效性和安全性。同时,通过优化算法和更新秘钥算法的方式,可以保证算法的高效性和安全性。

目标服务器收到报文后,通过查表确定解密算法,并进行解密操作。随后,根据解密后的数据进行比较结果的计算,并进行数据合法性的校验。通过这些步骤,服务器可以验证报文的完整性和合法性。在数据合法性校验通过后,服务器根据预先设定的规则,统计设备的信号强度、通讯方式以及设备电压等信息。根据这些统计结果,服务器确定以何种方式(http、https、tcp、udp、mqtt)推送最新的资源包给设备。以确保低功耗设备以最低的功耗获取到最新的资源包。因此,服务器在选择推送方式时,服务器会综合考虑以下因素:功耗、可靠性、传输效率。

当考虑功耗时,选择低功耗的通信方式,例如mqtt或udp,以减少设备的能耗。当考虑可靠性时,考虑网络环境和通信稳定性,选择具有较高成功率的通信方式,如mqtt或tcp。当考虑传输效率时,根据资源包的大小和传输速度要求,选择适当的通信方式。对于较大的资源包,http或https可能更合适,而对于小型资源包,mqtt或udp可能更适合。通过综合考虑功耗、可靠性和传输效率等因素,服务器可以确定最适合的通信方式,并推送最新的资源包给设备,以确保设备以最低的功耗获取到完整的最新资源包。

需要注意的是,在实施过程中,还需要根据具体情况进行调整和优化,以满足设备的需求和系统的要求。

本发明实施例中通信模块、低功耗设备,使用轻量级的物联网通信协议,如MQTT或CoAP,这些协议具有较低的通信开销,能够快速建立连接并进行高效的数据传输,从而实现快速上报和低功耗。可使用更高级的通信模组或芯片,支持更快速、更稳定的连接,以减少通信时间和功耗。例如,选择支持LTE-M或NB-IoT等低功耗广域网(LPWAN)技术的通信模块。在设计通信模块、低功耗设备硬件时,考虑采用低功耗的组件和优化电源管理策略,以最大程度地降低功耗。采用异步通信方式,通过事件驱动或回调函数的方式进行通信,以实现并发处理,提高系统的响应速度和效率。

本发明实施例通过采用轻量级通信协议、优化通信模组选择、异步通信方式和优化电源管理策略等措施,满足通信模块、低功耗设备的低功耗要求,实现快速上报和适应复杂的现场应用场景。

本发明实施例中的通信模块,支持本地多固件管理,多设备支持,多协议通讯。通信模块在网络相对良好的情况下,获取到多个同类型设备固件,以及不同类型的设备固件保存在通信模块当中。从而使得低功耗设备根据运行状况选择合适的固件版本以及合适的协议进行固件更新,固件版本切换。

本发明实施例中,固件的升级过程具有以下特点:升级时间短、安全性高、成功率高、对网络稳定性要求低、服务器易搭建、版本管理简洁。由于固件的合理分包和调整串口波特率等措施,使得升级过程能够快速完成,减少了升级所需的时间。通过使用自定义协议和合理的数据传输方式,可以保证数据的完整性和正确性,减少了数据被篡改或丢失的风险,提高了升级过程的安全性。

通过合理的分包和数据传输方式,可以减少数据传输的错误和丢失,提高了升级的成功率,降低了升级失败的可能性。由于固件的分包和本地交互方式,升级过程对网络的稳定性要求较低,即使在网络不稳定的环境下,仍能够完成升级过程。由于固件的分包和本地交互方式,服务器搭建相对简单,不需要复杂的通信协议和大量的数据传输。同时,由于升级过程的简洁性,版本管理也相对简单,易于维护和管理。

本发明实施例的实现低功耗阀固件升级的方法,具有升级时间短、安全性高、成功率高、对网络稳定性要求低、服务器易搭建和版本管理简洁等特点,从而使得升级过程更加高效、可靠和易于管理。

本发明提供一种计算机可读存储介质。

在该实施例中,计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,实现如上述的实现低功耗阀固件升级的方法。

本发明提供一种电子设备。

在该实施例中,电子设备包括存储器、处理器,所述存储器上存储有计算机程序,其特征在于,所述计算机程序被所述处理器执行时,实现如上述的实现低功耗阀固件升级的方法。

图4是本发明实施例的电子设备的结构框图。

如图4所示,电子设备500包括:处理器501和存储器503。其中,处理器501和存储器503相连,如通过总线502相连。可选地,电子设备500还可以包括收发器504。需要说明的是,实际应用中收发器504不限于一个,该电子设备500的结构并不构成对本发明实施例的限定。

处理器501可以是CPU(Central Processing Unit,中央处理器),通用处理器,DSP(Digital Signal Processor,数据信号处理器),ASIC(Application SpecificIntegrated Circuit,专用集成电路),FPGA(Field Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本发明公开内容所描述的各种示例性的逻辑方框、模块和电路。处理器501也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。

总线502可包括一通路,在上述组件之间传送信息。总线502可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。总线502可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

存储器503用于存储与本发明上述实施例的实现低功耗阀固件升级的方法对应的计算机程序,该计算机程序由处理器501来控制执行。处理器501用于执行存储器503中存储的计算机程序,以实现前述方法实施例所示的内容。

其中,电子设备500包括但不限于:移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图4示出的电子设备500仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

本发明实施例的计算机可读存储介质、电子设备,利用如上实现低功耗阀固件升级的方法可完成低功耗阀的固件升级,并具有升级时间短、安全性高、成功率高、对网络稳定性要求低、服务器易搭建和版本管理简洁等特点。

需要说明的是,在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。

应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”、“顺时针”、“逆时针”、“轴向”、“径向”、“周向”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。

此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。

在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系,除非另有明确的限定。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。

在本发明中,除非另有明确的规定和限定,第一特征在第二特征“上”或“下”可以是第一和第二特征直接接触,或第一和第二特征通过中间媒介间接接触。而且,第一特征在第二特征“之上”、“上方”和“上面”可是第一特征在第二特征正上方或斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”可以是第一特征在第二特征正下方或斜下方,或仅仅表示第一特征水平高度小于第二特征。

尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

技术分类

06120116514086