一种固件升级方法、装置、设备及介质
文献发布时间:2023-06-19 18:49:33
技术领域
本申请涉及通讯技术,特别是涉及一种固件升级方法、装置、设备及介质。
背景技术
视联网采用全球最先进的实时高清视频交换技术,实现了目前互联网无法实现的全网高清视频实时传输,将高清视频会议、视频监控、远程培训、智能化监控分析、应急指挥、视频电话、现场直播、电视邮件、信息发布等数十种视频、语音、图片、文字、通讯、数据等服务全部整合在一个系统平台,通过多种终端设备实现高清品质视频通信实时互联互通。
目前视联网终端设备的程序升级成为亟待需要解决的技术问题之一,但是目前视联网终端设备的升级通常采用的方法是:在升级程序中固化升级信息,从而实现对终端设备的升级,由于升级信息固化在升级程序中,若升级信息发生变化,则需要重新开发升级程序,升级程序不通用,并且维护成本高。
发明内容
本申请提供了一种固件升级方法、装置、设备及介质,以解决目前升级程序不通用的问题。
为了解决上述问题,本申请公开了一种固件升级方法,所述方法应用于终端,所述终端包括主控芯片和从控芯片,所述方法包括:
从配置文件中加载所述从控芯片的固件信息;
将所述固件信息发送至所述从控芯片,以使所述从控芯片判断所述固件信息是否变化,若变化,根据固件的升级包对所述固件进行升级,其中,所述固件信息包括:固件标识信息、固件的文件路径、固件的版本信息。
可选地,所述从配置文件中加载所述从控芯片的所述固件信息之前,所述方法还包括:
获取所述从控芯片的不同固件信息;
将所述固件信息保存到配置文件。
可选地,所述将所述固件信息发送至所述从控芯片包括:
所述主控芯片定时通过组播的方式将所述固件信息发送至所述从控芯片。
可选地,所述主控芯片包括:第一升级程序,所述从控芯片包括第二升级程序;
所述将所述固件信息发送至所述从控芯片,以使所述从控芯片判断所述固件信息是否变化包括:
通过所述第一升级程序中的固件版本服务将所述固件对应的第一版本信息和/或所述固件信息对应的第一MD5值发送至所述从控芯片,以使所述第二升级程序将所述第一版本信息和/或所述第一MD5值分别与所述从控芯片保存的第二版本信息和/或第二MD5值进行对比,若不一致,则确定所述固件信息发生变化。
为了解决上述问题,本申请还公开了一种固件升级装置,所述装置应用于终端,所述终端包括主控芯片和从控芯片,所述装置包括:
加载模块,用于从配置文件中加载所述从控芯片的固件信息,将所述固件信息发送至所述从控芯片;
判断模块,用于判断所述固件信息是否变化,若变化,根据固件的升级包对所述固件进行升级,其中,所述固件信息包括:固件标识信息、固件的文件路径、固件的版本信息。
可选地,所述装置还包括:获取模块,用于获取所述从控芯片的不同固件信息;
保存模块,用于将所述固件信息保存到所述配置文件;
可选地,所述加载模块,具体用于定时通过组播的方式将所述固件信息发送至所述从控芯片。
可选地,所述主控芯片包括:第一升级程序,所述从控芯片包括第二升级程序;
所述第一升级程序中的固件版本服务将固件对应的第一版本信息和/或所述固件信息对应的第一MD5值发送至所述从控芯片;
所述第二升级程序将所述第一版本信息和所述第一MD5值分别与所述从控芯片保存的第二版本信息和/或第二MD5值进行对比,若不一致,则确定所述固件信息发生变化。
为了解决上述问题,本申请还公开了一种电子设备,包括:
一个或多个处理器;和
其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述电子设备执行所述的固件升级方法。
为了解决上述问题,本申请还公开了一种计算机可读存储介质,其存储的计算机程序使得处理器执行所述的固件升级方法。
与现有技术相比,本申请包括以下优点:
本申请实施例,从配置文件中加载所述从控芯片的所述固件信息;将所述固件信息发送至所述从控芯片,以使所述从控芯片判断所述固件信息是否变化,若变化,根据固件的升级包对所述固件进行升级,由于通过配置文件进行固件升级,当固件信息发生变化时,只需要修改配置文件即可,不需要重新修改固件升级程序,从而实现了固件升级程序的通用性,并有效降低了固件升级程序的维护成本。
当然,实施本申请的任一产品不一定需要同时达到以上所述的所有优点。
附图说明
图1是本申请实施例所述一种固件升级方法的流程图;
图2是本申请实施例所述一种终端的结构示意图;
图3是本申请实施例所述一种固件升级方法的流程图;
图4是本申请所述一种固件升级方法应用的实例;
图5是本申请实施例所述一种固件升级装置的结构图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
参照图1,其示出了本申请实施例所述一种固件升级方法的流程图,所述方法应用于终端,参见图2,其示出了本申请实施例所述一种终端的结构示意图,具体包括:主控芯片21和从控芯片22-24。主控芯片21主要负责控制管理从控芯片22-24。从控芯片22-24,主要负责采集音视频数据,并对音视频数据进行编码或解码。
在视联网中,视联网终端包括:一个主控芯片21和三个从控芯片22-24,主控芯片21一端与外界网络相连,主控芯片21另一端分别通过视联网与三个从控芯片相连,当从控芯片的固件版本需要更新时,通过配置文件直接加载从控芯片的固件信息,主控芯片将固件升级包发送给从控芯片,从控芯片分别将本地固件更新成主控转发的最新版本,使得从控芯片的固件升级过程中不在依赖从控应用程序与从控程应用序启动时序,也能实现固件升级。
步骤101:从配置文件中加载所述从控芯片的固件信息。
固件是指写入EPROM(可擦写可编程只读存储器)或EEPROM(电可擦可编程只读存储器)中的程序。
其中,所述固件信息包括但不限于:固件标识信息、固件的文件路径、固件的版本信息。但是由于个别厂商可能会存在,不存在固件的版本信息的情况,因此固件信息也可以包括:固件标识信息(固件ID)和固件的文件路径。
步骤102:将所述固件信息发送至所述从控芯片,以使所述从控芯片判断所述固件信息是否变化,若变化,则执行步骤103,若不变化,则执行步骤104。
具体应用中,主控芯片定时通过组播的方式将固件信息发送至从控芯片。
主控芯片定时将固件信息发送至从控芯片,这样从控固件升级过程可以多次进行,直到升级成功为止,这样可以避免一次固件升级不成功的情况,并且与现有技术通过一次升级并不能保证固件升级成功相比,采用定时发送固件信息的机制可以多次进行升级请求,从而保证固件升级成功。
其中,定时时间的设定可以由本领域技术人员采用任意适当方式进行设定,如可以采用人工经验设定定时时间,例如:定时时间为10秒,本申请对此不作限制。
主控芯片定时通过组播的方式发布最新的固件信息,若采用组播的方式发布最新的固件信息,需要主控芯片和三个从控芯片都加入到一个组播组内,即加入到一个组播地址内,这样主控芯片发布最新的固件信息,组中的所有从控芯片均可以接收到最新的固件信息,组播组中的成员是动态的,可以在任何时刻加入和离开组播组。
步骤103:根据固件的升级包对所述固件进行升级。
步骤104:不进行固件升级。
本申请实施例,从配置文件中加载所述从控芯片的所述固件信息;将所述固件信息发送至所述从控芯片,以使所述从控芯片判断所述固件信息是否变化,若变化,根据固件的升级包对所述固件进行升级,由于通过配置文件进行固件升级,当固件信息发生变化时,只需要修改配置文件即可,不需要重新修改固件升级程序,从而实现了固件升级程序的通用性,并有效降低了固件升级程序的维护成本。
参照图3,其示出了本申请实施例所述一种固件升级方法的流程图,所述方法应用于终端,所述方法具体包括:
步骤301:获取所述从控芯片的不同固件信息。
在实际应用中,基于终端的不同应用场景,获取不同从控芯片的不同固件信息,由于终端的应用场景不同,因此获取的从控芯片的固件信息也会不同,并将固件信息保存在配置文件中,也就是说,当终端的场景发生变化,需要对从控芯片的固件进行升级,主要修改配置文件即可,不需要对升级程序进行任何修改。
其中,固件信息包括但不限于:固件标识信息(固件ID)、固件的文件路径、固件的版本信息。但是由于个别厂商可能会存在,不存在固件的版本信息的情况,因此固件信息也可以包括:固件标识信息(固件ID)和固件的文件路径。
步骤302:将所述固件信息保存到所述配置文件。
在具体应用中,可以将配置文件保存在终端,也可以将配置文件保存在服务器中,对于配置文件保存的位置,本申请不做具体限制。
步骤303:从所述配置文件中加载所述从控芯片的所述固件信息。
在实际应用中,在升级程序启动时,若配置文件保存在终端,则终端可以从配置文件中加载从控芯片的固件信息。
若配置文件保存在服务器中,则终端需要向服务器发送请求,从而获取配置文件,然后从配置文件中加载从控芯片的固件信息。
步骤304:将所述固件信息发送至所述从控芯片,以使从控芯片判断所述固件信息是否变化,若变化,则执行步骤305,若未发生变化,则执行步骤306。
具体应用中,主控芯片定时通过组播的方式将固件信息发送至从控芯片。
主控芯片定时将固件信息发送至从控芯片,这样从控固件升级过程可以多次进行,直到升级成功为止,这样可以避免一次固件升级不成功的情况,并且与现有技术通过一次升级并不能保证固件升级成功相比,采用定时发送固件信息的机制可以保证固件升级成功。
其中,定时时间的设定可以由本领域技术人员采用任意适当方式进行设定,如可以采用人工经验设定定时时间,例如:定时时间为10秒,本申请对此不作限制。
主控芯片定时通过组播的方式发布最新的固件信息,若采用组播的方式发布最新的固件信息,需要主控芯片和三个从控芯片都加入到一个组播组内,即加入到一个组播地址内,这样主控芯片发布最新的固件信息,组中的所有从控芯片均可以接收到最新的固件信息,组播组中的成员是动态的,可以在任何时刻加入和离开组播组。
当主控芯片和从控芯片均启动之后,作为一种实现方式,步骤304包括:
从控芯片接收到主控芯片发送的固件信息,对固件信息进行解析,获得固件对应的第一版本信息和固件信息对应的第一MD5值,将该第一版本信息和第一MD5值与从控信息保存的第二版本信息和第二MD5值进行对比,若不一致,则确定固件信息发生变化。
若第一版本信息和第二版本信息不同,第一MD5值与第二MD5值相同,也认为固件信息不一致,则确定固件信息发生变化。
若第一版本信息和第二版本信息相同,第一MD5值与第二MD5值不相同,也认为固件信息不一致,则确定固件信息发生变化。
若第一版本信息和第二版本信息不相同,第一MD5值与第二MD5值不相同,也认为固件信息不一致,则确定固件信息发生变化。
固件信息对应的第一MD5值,一般是指对固件信息的固件的文件路径进行MD5运算后,得到的第一MD5值。
作为另一种实现方式,步骤304包括:
通过所述第一升级程序中的固件版本服务将所述固件信息对应的第一MD5值发送至所述从控芯片,以使所述第二升级程序将所述第一MD5值与所述从控芯片保存的第二MD5值进行对比,若不一致,则确定所述固件信息发生变化。
作为另一种实现方式,步骤304包括:
从控芯片接收到主控芯片发送的固件信息,对固件信息进行解析,获得固件对应的第一版本信息,将该第一版本信息和第一MD5值与从控信息保存的第二版本信息进行对比,若不一致,则确定固件信息发生变化。
在实际应用中,可以将固件升级功能从应用程序中分离出来,即在主控芯片和从控芯片中均设置一个单独的升级程序,主控芯片的升级程序为第一升级程序,然后在第一升级程序中增加固件版本服务,通过固件版本服务实现固件版本号和/或固件MD5的发送,由于将固件升级和应用程序进行分离去耦合,从而解决了固件升级过程中业务阻塞的问题,由于从控芯片中设置了单独升级程序,同时也解决了从控芯片异常后导致其自身无法在升级修复的问题。
当所述主控芯片包括:第一升级程序,所述从控芯片包括:第二升级程序时;作为其中另一种实现方式,步骤304包括:
通过所述第一升级程序中的固件版本服务将所述固件对应的第一版本信息和所述固件对应的第一MD5值发送至所述从控芯片,以使所述第二升级程序将所述第一版本信息和所述第一MD5值分别与所述从控芯片保存的第二版本信息和第二MD5值进行对比,若不一致,则确定所述固件信息发生变化。
若第一版本信息和第二版本信息不同,第一MD5值与第二MD5值相同,也认为固件信息不一致,则确定固件信息发生变化。
若第一版本信息和第二版本信息相同,第一MD5值与第二MD5值不相同,也认为固件信息不一致,则确定固件信息发生变化。
若第一版本信息和第二版本信息不相同,第一MD5值与第二MD5值不相同,也认为固件信息不一致,则确定固件信息发生变化。
作为另一种实现方式,步骤304包括:
通过所述第一升级程序中的固件版本服务将所述固件信息对应的第一MD5值发送至所述从控芯片,以使所述第二升级程序将所述第一MD5值与所述从控芯片保存的第二MD5值进行对比,若不一致,则确定所述固件信息发生变化。
此外,由于主控芯片将固件信息发送至从控芯片的过程中,在可能因为传输错误导致升级包传输不完整的情况。因此,可以对固件的文件路径对应的MD5值进行校验,如果MD5值校验成功,则判定该升级包校验通过,确保了升级包的完整性。其中,MD5信息摘要算法(MD5 Message-Digest Algorithm)是密码散列函。
作为其中另一种实现方式,步骤304包括:
通过所述第一升级程序中的固件版本服务将所述固件对应的第一版本信息发送至所述从控芯片,以使所述第二升级程序将所述第一版本信息与所述从控芯片保存的第二版本信息进行对比,若不一致,则确定所述固件信息发生变化。
需要说明的是,第一版本信息可以理解为是最新的固件版本信息,第二版本信息是之前本地保存的固件版本信息,也可以理解为旧的固件版本信息,在具体应用中,版本信息可以理解为固件版本号。
步骤305:根据固件的升级包对所述固件进行升级。
作为其中一种实现方法,所述根据固件的升级包对所述固件进行升级,包括:接收所述从控芯片发送的升级请求;响应所述升级请求,根据所述固件的升级包对所述固件进行升级。
步骤306:不进行固件升级,流程结束。
本申请实施例,当主控芯片和从控芯片均设置单独升级程序,这样固件升级与应用业务分离,解决固件升级过程阻塞应用业务的问题。
为了本领域技术人员更好的理解本申请限定的技术方案,以图2为例,参见图4详细说明本申请所述一种固件升级方法应用的实例。
1、主控芯片21不断接收从控芯片22-24采集的音视频数据,主控芯片21的升级程序启动后,当主控芯片21通过固件版本服务检测到从控芯片22-24的采集音视频数据的应用程序(固件)版本发生更新时,主控芯片从配置文件中加载固件信息,通过主控芯片的固件版本服务,每隔10秒,通过组播地址226.0.1.1向从控芯片22、从控芯片23和从控芯片24发布固件信息。
2、从控芯片22根据本地固件版本信息(第二版本信息)与主控芯片发布的最新固件版本信息(第一版本信息)进行比对,确定是否升级,若需要升级,则从控芯片22向主控芯片21发送升级请求,主控芯片21分包发送升级包,收到最后一个升级包后,执行动作,这样升级成功后,将从控芯片22本地固件版本信息更新成与主控芯片21发布的一样的最新固件版本信息。
3、从控芯片23根据本地固件版本信息与主控芯片发布的最新固件版本信息进行比对,确定是否升级,若需要升级,则从控芯片23向主控芯片21发送升级请求,主控芯片23分包发送升级包,收到最后一个升级包后,执行动作,这样升级成功后,将从控芯片23本地固件版本信息更新成与主控芯片21发布的一样的最新固件版本信息。
4、从控芯片24根据本地固件版本信息与主控芯片发布的最新固件版本信息进行比对,确定是否升级,若需要升级,则从控芯片24向主控芯片21发送升级请求,主控芯片221分包发送升级包,收到最后一个升级包后,执行动作,这样升级成功后,将从控芯片24本地固件版本信息更新成与主控芯片21发布的一样的最新固件版本信息。
需要说明的是,对于前述的方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请所必需的。
基于上述方法实施例的说明,本申请还提供了相应的装置实施例,来实现上述方法实施例所述的内容。
参照图5,其示出了本申请实施例所述一种固件升级装置的结构图,所述装置应用于终端,所述终端包括主控芯片和从控芯片,所述装置包括:
加载模块501,用于从配置文件中加载所述从控芯片的固件信息,将所述固件信息发送至所述从控芯片。
判断模块502,用于判断所述固件信息是否变化,若变化,根据固件的升级包对所述固件进行升级,其中,所述固件信息包括:固件标识信息、固件的文件路径、固件的版本信息。
可选地,所述装置还包括:
获取模块,用于获取所述从控芯片的不同固件信息;
保存模块,用于将所述固件信息保存到配置文件。
可选地,所述加载模块,具体用于定时通过组播的方式将所述固件信息发送至所述从控芯片。
可选地,所述主控芯片包括:第一升级程序,所述从控芯片包括第二升级程序;
通过所述第一升级程序中的固件版本服务将固件对应的第一版本信息和/或所述固件第一MD5值发送至所述从控芯片;
所述第二升级程序将所述第一版本信息和/或所述第一MD5值分别与所述从控芯片保存的第二版本信息和/或第二MD5值进行对比,若不一致,则确定所述固件信息发生变化。
可选地,所述确定模块用于根据所述固件的升级包对所述固件进行升级,包括:
接收单元,用于接收所述从控芯片发送的升级请求;
升级单元,用于响应所述升级请求,根据所述固件的升级包对所述固件进行升级。
本申请实施例,获取所述从控芯片的不同固件信息;将所述固件信息保存到所述配置文件;从所述配置文件中加载所述从控芯片的所述固件信息;将所述固件信息发送至所述从控芯片,以使所述从控芯片判断所述固件信息是否变化,若变化,根据固件的升级包对所述固件进行升级,由于通过配置文件进行固件升级,当固件信息发生变化时,只需要修改配置文件即可,不需要重新修改固件升级程序,从而实现了固件升级程序的通用性,并有效降低了固件升级程序的维护成本。
对于上述装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见所示方法实施例的部分说明即可。
本发明实施例还提供了一种电子设备,包括:
一个或多个处理器;和
其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述电子设备执行所述的一种固件升级方法。
本发明实施例还提供了一种计算机可读存储介质,其存储的计算机程序使得处理器执行所述的一种固件升级方法。
可选地,计算机可读存储介质可以是非临时性计算机可读存储介质,例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域技术人员易于想到的是:上述各个实施例的任意组合应用都是可行的,故上述各个实施例之间的任意组合都是本申请的实施方案,但是由于篇幅限制,本说明书在此就不一一详述了。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
以上对本申请所提供的一种固件升级方法、装置、设备及介质,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
- 一种固件更新的方法、系统、装置、设备及存储介质
- 一种固件升级方法、网关设备及固件升级系统
- 一种基于存储介质的固件自动升级方法及其存储介质
- 多联机系统固件升级方法、计算机装置及计算机可读存储介质
- 远程固件升级方法、装置及计算机可读存储介质
- 无人飞行器的固件升级方法、固件升级装置、控制装置、无人飞行器及介质
- 设备的固件升级装置、设备及其固件升级方法