本技术涉及安全控制的领域,尤其是涉及一种安全控制平台多模块在线升级的方法。
背景技术:
1、随着物联网(iot)和嵌入式系统的普及,越来越多的设备依赖固件来实现其功能。这些设备包括智能手机、智能家居设备、工业控制系统、医疗设备等。固件升级成为确保设备安全性、稳定性和功能更新的重要手段。通过固件升级,厂商可以快速响应安全漏洞、提供新功能和改进用户体验。随着云计算和远程管理技术的发展,远程固件升级变得更加普遍和方便。厂商可以通过云服务或远程管理系统向大量设备推送固件更新,而无需物理接触设备。
2、安全性是固件升级的关键问题之一。随着网络安全风险的不断增加,固件升级过程需要保证数据的机密性、完整性和真实性。采用数字签名、加密传输等技术可以确保固件升级的安全性。对于一些关键设备,如网络设备和工业控制系统,停机升级可能会导致生产中断和重大损失。因此,零停机升级技术逐渐发展起来,允许在设备运行时进行升级,从而减少停机时间和业务影响。ota升级是一种通过无线网络(如wi-fi、蜂窝网络)进行固件升级的方式,这种方法允许用户在不连接到计算机的情况下直接从互联网下载并安装固件更新。设备固件升级ota即空中下载技术,是指通过无线网络从远程服务器中下载最新的应用或系统,从而对设备固件实现升级;宏观上,用户只需将固件镜像上传到某个安全的 web服务器 (https),并将其 url 提供给节点。集中式管理固件升级系统,是一种专门设计用于管理大量设备固件升级的系统,ftp协议是一种标准的网络协议,用于在客户端和服务器之间传输文件。ftp协议不提供数据加密功能,因此在传输敏感数据时需要额外的安全措施。sftp协议是在ftp协议的基础上添加了安全层,通过ssh协议进行数据加密和身份验证,提高了传输的安全性。ftp/sftp适用于需要在网络上传输大文件的场景。cdn是一种分布式网络架构,将内容缓存到全球各地的服务器上,以提高内容的传输速度和可用性。固件文件可以通过cdn进行加速传输,减少网络延迟和传输时间。cdn加速可以有效提高固件文件的下载速度,特别是在全球范围内分布设备时,可以显著减少传输时间。
3、目前,公告号为cn111427602b的专利公开了一种vpx机箱的智能平台管理控制器在线升级固件的方法,包括主控模块和若干功能模块,所述主控模块和若干功能模块均具有智能平台管理控制器;本发明在工作中,通过利用已有的vpx机箱架构,通过ipmi传输协议,对web管理界面、机箱管理控制器和智能平台管理控制器增加相应的固件在线升级功能,以实现在界面进行简单点击操作后即可完成对ipmc固件的升级。
4、针对上述的相关技术,发明人认为存在以下缺陷:上述方法中需要单个固件依次进行升级,同类型的固件无法同时升级,导致升级时间较长,当系统缺乏稳定的网络连接,容易导致固件升级失败,因此有待改进。
技术实现思路
1、针对现有技术的不足,本技术提供了一种安全控制平台多模块在线升级的方法,旨在解决上述问题。
2、一种安全控制平台多模块在线升级的方法,包括以下步骤:
3、s1请求阶段:上位机软件会发送目的模板升级请求,通讯模板会转发到控制模板,由控制模板校验权限后广播到链路中所有的模板,接收到广播的目的板回复是否允许升级;
4、s2下载阶段:当上位机接收到所有目的模板的回复后,若存在允许更新升级的模板,则开始发送固件;固件会经由通讯模板发送给控制模板,再由各种模板进行广播,目的模板在接收到数据后进行数据包帧序校验和固件头校验,若校验失败,则拒绝之后的升级;系统会重复此流程,直至固件数据发送完成;
5、s3下载完成阶段:固件数据发送完成之后会上位机会发送固件下载完成命令,以告知目的模板固件下载完成,目的模板收到固件下载完成命令之后会停止接收固件等待上位机发送固件校验命令;
6、s4校验阶段:固件校验会对固件进行固件头区、segment和sector进行crc校验,校验失败的会停止更新行为,校验成功的可以进行下一步;
7、s5更新阶段:当上位机发送更新命令时,模板会更新固件到固件更新区。
8、可选的,s1请求阶段还包括使用tcp的窗口重发机制,使用主动发送窗口回复数据来确保数据安全准确的被通讯模板接收到,如果通讯模板接受数据则会发送窗口回复,上位机接收到窗口回复,则会停止重发。
9、可选的,s1请求阶段还包括采用了帧序校验和模板状态与命令校验以及系统校验进行功能安全控制。
10、可选的,s1中每个模板都存在一个地址,每次上位机发送固件请求时,都会将固件目标地址以掩码形式发送,掩码会存在于每包数据的头部,所有通讯模板和io模板都会收到数据,并校验头部掩码,判断是否自身需要升级并回复数据,与pc直接相连的通讯模板负责对回复数据进行处理,合并成掩码回复给上位机,掩码中o为失败或者无需升级,1为需要升级。
11、可选的,在固件发送完成之后,模板会重启进入bootloader,bootloader会读取固件并且确认是否为有效固件,是有效固件则进行固件升级。
12、可选的,在flash中划分出固件存放区和固件更新存放区,当固件接收并校验完成后,会重启进入bootloader ,在bootloader中会检测固件更新存放区的固件是否有效,如果有效,则会把数据搬运到固件存放区。
13、可选的,使用每2k字节数据进行crc校验,模板收到每包数据大小为1k,会把收到的数据存放到大小为2k的暂存区,当收满2k时就进行crc校验,如果校验成功,存放到固件更新存放区。
14、可选的,在等待请求状态下,系统接收到请求下装命令后将转换到等待下载状态;在等待校验状态下,系统进行校验后将转换到等待更新状态,依此类推;此外,状态机考虑超时情况,当系统处于超时状态时,将会执行相应的超时处理,并返回到等待请求状态以等待新的命令。
15、可选的,上位机软件在更新时需要操作人员手动确认,以避免误操作或者错误更新造成的危险。
16、可选的,对于不同类型的模板,在固件头中划分出特定的字段作为特征字,标识出固件类型,模板类型,固件更新次数以及固件crc表。
17、综上所述,本技术包括以下至少一种有益技术效果:
18、本技术实现了顺序升级,在升级完第一个固件之后可以继续升级第二个固件,无需选择新的固件。并且同种类型的固件是同时更新的,很大程度的缩减了升级所需要的时间,通过同时升级多个模块的固件,可以大大缩短整体升级的时间;相比逐个升级每个模块,同时升级可以在同一时间段内完成更多的更新操作,提高了系统的整体效率,同时升级多个模块的固件可以减少升级过程中的中断时间,这意味着系统在升级期间可以更快地恢复到正常状态,降低了因升级操作而导致的系统不稳定或服务中断的风险;使用多模块同时固件升级技术可以确保系统中各个模块的固件版本保持一致,这有助于避免因为不同模块的版本不一致而引发的兼容性或功能性问题,通过一次性进行多个模块的固件升级,可以简化系统管理和维护的工作,管理员不需要分别管理每个模块的升级过程,而是可以集中精力在整体的升级计划和策略上;多模块同时固件升级技术可以提供更大的灵活性,允许系统管理员根据实际需求选择性地升级特定的模块,而不必将所有模块都同时升级。这种灵活性可以根据系统的特性和用户需求来进行定制化配置,提高了系统的适用性和可维护性。
1.一种安全控制平台多模块在线升级的方法,其特征在于:包括以下步骤:
2.根据权利要求1所述的一种安全控制平台多模块在线升级的方法,其特征在于:s1请求阶段还包括使用tcp的窗口重发机制,使用主动发送窗口回复数据来确保数据安全准确的被通讯模板接收到,如果通讯模板接受数据则会发送窗口回复,上位机接收到窗口回复,则会停止重发。
3.根据权利要求1所述的一种安全控制平台多模块在线升级的方法,其特征在于:s1请求阶段还包括采用了帧序校验和模板状态与命令校验以及系统校验进行功能安全控制。
4.根据权利要求1所述的一种安全控制平台多模块在线升级的方法,其特征在于:s1中每个模板都存在一个地址,每次上位机发送固件请求时,都会将固件目标地址以掩码形式发送,掩码会存在于每包数据的头部,所有通讯模板和io模板都会收到数据,并校验头部掩码,判断是否自身需要升级并回复数据,与pc直接相连的通讯模板负责对回复数据进行处理,合并成掩码回复给上位机,掩码中o为失败或者无需升级,1为需要升级。
5.根据权利要求1所述的一种安全控制平台多模块在线升级的方法,其特征在于:在固件发送完成之后,模板会重启进入bootloader,bootloader会读取固件并且确认是否为有效固件,是有效固件则进行固件升级。
6.根据权利要求3所述的一种安全控制平台多模块在线升级的方法,其特征在于:在flash中划分出固件存放区和固件更新存放区,当固件接收并校验完成后,会重启进入bootloader ,在bootloader中会检测固件更新存放区的固件是否有效,如果有效,则会把数据搬运到固件存放区。
7.根据权利要求6所述的一种安全控制平台多模块在线升级的方法,其特征在于:使用每2k字节数据进行crc校验,模板收到每包数据大小为1k,会把收到的数据存放到大小为2k的暂存区,当收满2k时就进行crc校验,如果校验成功,存放到固件更新存放区。
8.根据权利要求3所述的一种安全控制平台多模块在线升级的方法,其特征在于:在等待请求状态下,系统接收到请求下装命令后将转换到等待下载状态;在等待校验状态下,系统进行校验后将转换到等待更新状态,依此类推;此外,状态机考虑超时情况,当系统处于超时状态时,将会执行相应的超时处理,并返回到等待请求状态以等待新的命令。
9.根据权利要求1所述的一种安全控制平台多模块在线升级的方法,其特征在于:上位机软件在更新时需要操作人员手动确认,以避免误操作或者错误更新造成的危险。
10.根据权利要求1所述的一种安全控制平台多模块在线升级的方法,其特征在于:对于不同类型的模板,在固件头中划分出特定的字段作为特征字,标识出固件类型、模板类型、固件更新次数以及固件crc表。
