CN116185460A - 一种嵌入式系统软件自动升级的方法及装置 - Google Patents
一种嵌入式系统软件自动升级的方法及装置 Download PDFInfo
- Publication number
- CN116185460A CN116185460A CN202310458815.3A CN202310458815A CN116185460A CN 116185460 A CN116185460 A CN 116185460A CN 202310458815 A CN202310458815 A CN 202310458815A CN 116185460 A CN116185460 A CN 116185460A
- Authority
- CN
- China
- Prior art keywords
- file
- client
- upgrade
- server
- embedded system
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 57
- 238000012795 verification Methods 0.000 claims abstract description 36
- 238000004806 packaging method and process Methods 0.000 claims abstract description 5
- 230000003993 interaction Effects 0.000 claims description 18
- 238000004891 communication Methods 0.000 claims description 13
- 230000008569 process Effects 0.000 claims description 13
- 238000009434 installation Methods 0.000 claims description 12
- 230000006835 compression Effects 0.000 claims description 9
- 238000007906 compression Methods 0.000 claims description 9
- 230000006870 function Effects 0.000 claims description 9
- 238000003860 storage Methods 0.000 claims description 9
- 238000004458 analytical method Methods 0.000 claims description 8
- 238000012790 confirmation Methods 0.000 claims description 8
- 230000007246 mechanism Effects 0.000 claims description 8
- 230000004044 response Effects 0.000 claims description 7
- 230000009471 action Effects 0.000 claims description 6
- 230000005540 biological transmission Effects 0.000 claims description 5
- 230000001419 dependent effect Effects 0.000 claims description 4
- 230000006798 recombination Effects 0.000 claims description 4
- 238000005215 recombination Methods 0.000 claims description 4
- 238000012545 processing Methods 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 238000012423 maintenance Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 238000007711 solidification Methods 0.000 description 2
- 230000008023 solidification Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明提供了一种嵌入式系统软件自动升级的方法及装置,包括:将服务器端和客户端进行连接;用户下发升级指令,服务器端发送握手消息至客户端,客户端接收握手消息校验握手消息正确性;在客户端创建文件目录并下载操作文件;客户端对比升级文件名和校验值,确定执行操作,向服务器发出获取对应文件数据的请求;服务器端将对应文件拆分然后封装成数据包发送至客户端;数据包加载到嵌入式系统并进行校验数据包;若数据包校验通过,则解包出升级固件文件并重组数据合成升级文件;将升级文件传递至客户端嵌入式系统的应用程序区并执行应用程序进行自动升级;对客户端进行校验,确认客户端完成升级文件接收和重组。
Description
技术领域
本发明涉及软件升级技术领域,特别涉及一种嵌入式系统软件自动升级的方法及装置。
背景技术
随着社会的进步,科技的发展,多元化设备也是日新月异,用户对嵌入式产品的需求越来越复杂,传统嵌入式处理平台由于处理器架构类型的多种多样升级文件从前期导入、传输到固化过程均存在升级的可靠性隐患,一旦发生文件错误或完整性缺失,都可能造成整个升级过程的失败,甚至造成产品无法正常启动、必须重新烧录固件的后果;
现有技术CN102043634A公开了一种嵌入式系统和嵌入式软件升级方法,包括从外界存储设备上装载升级压缩包,获取所述升级压缩包的校验码;将预置的校验码与所述获取的校验码进行比较,如果相同,则开始解压所述升级压缩包,如果不同则程序退出,提示升级失败;将解压所述升级压缩包后得到程序分别复制到相对应的目录;检测所述复制到相对应的目录的程序是否正确,如果正确则进行升级;
存在以下问题:
(1)仅通过校验码校验一次则压缩升级包,安全性不高;
(2)通过外接存储设备装载升级压缩包,实际升级速度慢,不适用于软件升级读写性能要求高的应用。
发明内容
本发明的目的是提供一种嵌入式系统软件自动升级的方法及装置,旨在解决升级速度慢和安全性不高问题。
为实现上述目的,本发明提供如下技术方案:
本发明提供一种嵌入式系统软件自动升级的方法及装置,包括:
S1:通过CAN总线网络将服务器端和客户端进行连接;客户端监听通讯接口,等待用户发出操作指令,用户通过图形界面向客户端下发升级指令,服务器端根据用户的指令,发送握手消息至客户端,客户端接收握手消息校验握手消息正确性,回复请求响应至服务器端;
S2:在客户端通过通讯网口创建不同的文件目录并下载对应不同操作的文件,进行编程地址有效性的确认;客户端从服务器端下载升级固件的升级文件信息表,对比升级文件信息表与客户端存储的旧文件信息表中的文件名和校验值,确定执行操作;对执行增加或修订的操作,以偏移值和文件长度作为参数,向服务器发出获取对应文件数据的请求;
S3:服务器端将对应文件拆分然后封装成数据包,逐包发送至客户端;数据包加载到客户端Linux嵌入式系统并进行校验数据包;若数据包校验通过则解包出升级固件文件并重组数据合成升级文件;若数据包校验失败,则丢弃无效数据再次请求服务器端重传;将升级文件传递至客户端Linux嵌入式系统的应用程序区并执行应用程序进行自动升级;客户端收到最后一个数据包后通知服务器端回复确认;服务器端接收回复包,发送包含奇偶校验码结束命令给客户端进行校验,确认客户端完成升级文件接收和重组。
进一步的,所述的一种嵌入式系统软件自动升级的方法,所述通过CAN总线网络将服务器端和客户端进行连接的步骤中,包括:服务器端存储需要发送的升级包以及应用程序文件,并等待客户端的联机请求,客户端进行上电并进行初始化,然后发送Boot-up报文,通知服务器端处于预操作状态,服务器端收到Boot-up报文,接收请求报文。
进一步的,所述的一种嵌入式系统软件自动升级的方法,所述初始化是首先初始化RAM基址,接着初始化堆栈,关闭看门狗,随后初始化全局变量,接着初始化CAN通讯接口,以完成Bootloader自身环境初始化。
进一步的,所述的一种嵌入式系统软件自动升级的方法,所述数据包加载到客户端Linux嵌入式系统并进行校验数据包的步骤中,包括:服务器端和客户端交互过程采用CRC32校验,校验错误的数据包丢弃处理,确保通讯交互的正确性;升级文件传输重组完成后,在固化到ROM之前,对驻留RAM的文件执行MD5校验,确认执行固化之前的文件正确性;升级文件固化到ROM的操作完成后,对ROM中的文件进行MD5校验,确认固化的文件正确性。
进一步的,所述的一种嵌入式系统软件自动升级的方法,所述则解包出升级固件文件并重组数据合成升级文件的步骤后,包括:根据待升级文件记录的文件名称、安装目录和安装动作,逐个文件依次顺序执行升级的步骤。
进一步的,所述的一种嵌入式系统软件自动升级的方法,所述升级固件文件包括升级文件信息表、制作升级固件头文件、制作文件包;升级文件信息表包括文件和文件名的消息摘要算法数值、文件偏移地址、文件长度;制作文件包是对文件压缩包进行加密处理并打包生成文件包;文件和文件名的消息摘要算法数值是指文件压缩包的MD5值和文件名MD5值。
进一步的,所述的一种嵌入式系统软件自动升级的方法,所述发送包含奇偶校验码结束命令给客户端进行校验的步骤中,包括:扫描客户端文件系统中的所有本地旧文件,识别出文件名MD5值的文件路径,建立文件路径与文件名MD5值二者的对应关系表Record,逐一对比校验DEL目录下的文件名和Record中的文件名,若相同则与Record文件中读取文件的路径证明文件保持一致,确认客户端完成升级文件接收和重组。
进一步的,所述的一种嵌入式系统软件自动升级的方法,所述客户端接收握手消息校验握手消息正确性的步骤中,包括:需要编写一个入站处理器,接收服务器端传送的握手消息,在进入客户端的Websocket处理器之前检测握手请求信息,在握手期间,到主机的连接上使用的SSLSession返回值:如果主机名是可接受的,则返回true;如果URL的主机名和服务器的标识主机名不匹配,则验证机制可以回调此接口的实现程序来确定是否应该允许此连接,策略基于证书的或依赖于其他验证方案;当验证URL主机名使用的默认规则失败时使用这些回调。
一种嵌入式系统软件自动升级的装置,采用所述的一种嵌入式系统软件自动升级的方法,所述嵌入式系统软件自动升级装置包括:
所述服务器端:驻留在升级设备中,为操作人员提供图形化交互控制功能,同时客户端完成数据交互和完整的软件升级流程;所述服务器端包括存储设备;
所述客户端:驻留在软件升级中,通过注册回调机制兼容多种嵌入式硬件平台,负责与服务器端程序进行数据交互,完成驻留产品上的软件升级和校验功能。
进一步的,所述的一种嵌入式系统软件自动升级的装置,所述客户端包括终端设备;所述终端设备包括校验模块、文件解析模块和升级执行模块;
校验模块:用于进行数据包校验;
文件解析模块:用于解析所述升级文件信息表中的数据;
升级执行模块:用于执行不同的升级操作。
本发明还提供一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时实现上述的一种嵌入式系统软件自动升级的方法及装置的步骤。
有益效果(1)通过从客户端到服务器端联机握手到完成软件升级进行三次校验,当客户发出升级指令时客户端接收握手消息校验握手消息正确性;Linux嵌入式系统对数据包进行校验数据包;到最后服务器端接收回复包,发送包含奇偶校验码结束命令给客户端进行校验确认客户端完成升级文件接收和重组;从握手到最终确认升级经过三次校验,安全性大大提高;
(2)通过在客户端创建不同的文件目录下载对应不同操作的文件再从服务器端下载升级固件的升级文件信息表,向服务器发出获取对应文件数据的请求,大大的缩短终端设备的升级时间,从而减小因设备升级而对用户造成的影响;同时对于设备管理员来说,无需逐一去升级设备,只需将新的升级固件上传到服务器中,所有的终端设备都会去自动的升级,对于含任意旧版本软件的终端设备而言都可通过同一固件使其升级到最新,无需进行阶梯式升级,从而降低维护的复杂度以及减小维护成本;
(3)通过将待升级文件打包到软件升级包中,再将软件升级包加载到linux嵌入式系统进行解包,根据文件名称、安装目录和安装动作自动执行相应的操作,从而避免人工操作易出错的问题。
附图说明
图1为本发明一实施例的一种嵌入式系统软件自动升级的方法及装置的流程图;
图2为本发明一实施例的一种嵌入式系统软件自动升级的方法及装置的结构示意图。
本发明为目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参考附图1,为本发明提出的一种嵌入式系统软件自动升级的方法及装置的流程示意图;
本发明所提供的一种嵌入式系统软件自动升级的方法及装置,步骤包括:
S1:通过CAN总线网络将服务器端和客户端进行连接;客户端监听通讯接口,等待用户发出操作指令,用户通过图形界面向客户端下发升级指令,服务器端根据用户的指令,发送握手消息至客户端,客户端接收握手消息校验握手消息正确性,回复请求响应至服务器端;
在具体实施例中,建立服务器端驻留在升级设备中向上为操作人员提供图形化交互控制功能,向下与客户端完成数据交互和完整的软件升级流程;建立客户端驻留在软件升级中,通过注册回调机制兼容多种嵌入式硬件平台,负责与服务器端程序进行数据交互,完成驻留产品上的软件升级和校验功能;服务器端存储要发送的升级包以及应用程序文件,并等待客户端的联机请求,客户端进行上电并进行初始化,首先初始化RAM基址,接着初始化堆栈,关闭看门狗,随后初始化全局变量,接着初始化CAN通讯接口,以完成Bootloader自身环境初始化;然后发送Boot-up报文,通知服务器端处于预操作状态,服务器端收到Boot-up报文,接收请求报文,并通过CAN总线网络将服务器端与客户端进行连接,实现联机功能;客户端通过以太网通讯接口进行监听与接收确保能及时接收到用户发出的操作指令;当用户通过图形界面向客户端下发升级指令要求服务器端进行升级,服务器端根据用户的升级指令先发送握手消息至客户端以进行确认双方是否正确连接;客户端接收握手消息校验握手消息正确性,握手前客户端需要一个入站处理器,接收服务器端传送的握手消息,在进入客户端的Websocket处理器之前检测握手请求信息,在握手期间,到主机的连接上使用的SSLSession返回值:如果主机名是可接受,则返回true;如果URL的主机名和服务器的标识主机名不匹配,则验证机制可以回调此接口的实现程序来确定是否应该允许此连接,策略基于证书的或依赖于其他验证方案;当验证URL主机名使用的默认规则失败时使用这些回调能确定握手消息是否准确以及双方是否建立起连接,服务器端发送握手消息后进入超时等待,超时未收到客户端的请求响应则握手失败;收到请求响应且校验成功,则握手成功。
S2:在客户端通过通讯网口创建不同的文件目录并下载对应不同操作的文件,进行编程地址有效性的确认;客户端从服务器端下载升级固件的升级文件信息表,对比升级文件信息表与客户端存储的旧文件信息表中的文件名和校验值,确定执行操作;对执行增加或修订的操作,以偏移值和文件长度作为参数,向服务器发出获取对应下载升级文件数据的请求;
在具体实施例中,客户端通过以太网端接口创建不同的文件目录下载不同的操作文件,文件目录包括ADD、MOD、DEL、SKIP中的一种或几种,服务器端向客户端发送编程性报文,客户端收到编程性报文后对编程地址进行确认,若无效则反馈无效重新下载操作文件,若确认有效则服务器端发送启动命令,同时服务器端下载升级固件的升级文件信息表,对比升级文件信息表与客户端存储的旧文件信息表中的文件名和校验值,确定执行操作;对执行增加或修订的操作,以偏移值和文件长度作为参数,向服务器发出获取对应文件数据的请求,服务器端收到客户端回复的下载启动应答后,开始以块数据的形式发送相应文件数据;通过在客户端创建不同的文件目录下载对应不同操作的文件再从服务器端下载升级固件的升级文件信息表,大大的缩短终端设备的升级时间从而减小因设备升级而对用户造成的影响;同时对于设备管理员来说,无需逐一去升级设备,只需将新的升级固件文件上传到服务器中,所有的终端设备都会去自动的升级,对于含任意旧版本软件的终端设备而言都可通过同一固件使其升级到最新,从而降低维护的复杂度以及减小维护成本。
S3:服务器端将对应文件拆分然后封装成数据包,逐包发送至客户端;数据包加载到客户端Linux嵌入式系统并进行校验数据包;若数据包校验通过则解包出升级固件文件并重组数据合成升级文件;若数据包校验失败,则丢弃无效数据再次请求服务器端重传;将升级文件传递至客户端Linux嵌入式系统的应用程序区并执行应用程序进行自动升级;客户端收到最后一个数据包后通知服务器端回复确认;服务器端接收回复包,发送包含奇偶校验码结束命令给客户端进行校验,确认客户端完成升级文件接收和重组;
在具体实施例中,服务器端将对应文件以块数据的大小进行拆分然后封装成数据包,避免数据因一次性传输太大而减缓速度,逐包发送至客户端,客户端收到数据包,组织回复包说明服务器端正在传输数据包中的信息至服务器端,数据包加载到Linux嵌入式系统并进行校验数据包,服务器端和客户端交互过程采用CRC32循环冗余校验,校验错误的数据包丢弃处理,确保通讯交互的正确性;升级文件传输重组完成后,在固化到ROM存储器之前,对驻留RAM存储器的文件执行MD5加密校验,确认执行固化之前的文件正确性;升级文件固化到ROM存储器的操作完成后,对ROM存储器中的文件进行MD5加密校验,确认固化的文件正确性,通过将待升级文件打包到软件升级包中,再将软件升级包加载到linux嵌入式系统进行解包,根据文件名称、安装目录和安装动作自动执行相应的操作,从而避免人工操作易出错的问题;对校验失败的数据包,丢弃无效数据再次请求服务器端重传;将升级文件传递至存储器的应用程序区并执行应用程序进行自动升级;对于校验通过的数据包解包出升级固件文件并重组数据,按照待升级文件记录的文件名称、安装目录和安装动作,逐个文件依次顺序执行相应的操作合成升级文件;将升级文件传递至存储器的应用程序区并执行应用程序进行自动升级;客户端收到最后一个数据包后通知服务器端回复确认;服务器端接收回复包,发送包含奇偶校验码结束命令扫描客户端文件系统中的所有本地旧文件,计算文件名MD5值并建立文件路径和文件名MD5值二者的对应关系表,逐一对比校验DEL删除文件目录下的文件名和关系表中的文件名MD5值,若相同从关系表文件中读取文件的路径证明文件保持一致,确认客户端完成升级文件接收和重组,无需再次传送数据包;通过从客户端到服务器端联机握手到完成软件升级进行三次校验,当客户发出升级指令时客户端接收握手消息校验握手消息正确性;Linux嵌入式系统对数据包进行校验数据包;到最后服务器端接收回复包,发送包含奇偶校验码结束命令给客户端进行校验确认客户端完成升级文件接收和重组;从握手到最终确认升级经过三次校验,安全性大大提高。
在本实施例中,服务器端:驻留在升级设备中,向上为操作人员提供图形化交互控制功能,向下与客户端完成数据交互和完整的软件升级流程;服务器端包括存储模块;
客户端:驻留在软件升级中,通过注册回调机制兼容多种嵌入式硬件平台,负责与服务器端程序进行数据交互,完成驻留PC上的软件升级和校验功能;客户端上包括终端设备进行升级软件与存储软件数据包;终端设备包括校验模块、文件解析模块和升级执行模块;校验模块:用于进行数据包校验;文件解析模块:用于解析升级文件信息表中的数据;升级执行模块:用于执行不同的升级操作;
在具体实施例中,服务器端与客户端通过以太网端口进行连接,终端设备在客户端内充当核心处理模块进行,终端设备安装Linux嵌入式系统,终端设备包括校验模块、文件解析模块和升级执行模块;校验模块用于进行数据包校验;文件解析模块用于解析升级文件信息表中数据;升级执行模块用于执行不同的升级操作,当客户通过客户端的图形界面下达升级指令时,终端设备发送握手消息用于进行预客户端连接,客户端对握手消息进行确认,确认成功后服务器端向客户端发送编程性报文,客户端收到编程性报文对编程地址进行确认,若无效则反馈无效重新下载操作文件,若确认有效则服务器端发送启动命令,同时服务器端下载升级固件的升级文件信息表,对比升级文件信息表与客户端存储的旧文件信息表中的文件名和校验值,确定执行操作;对执行增加或修订的操作,以偏移值和文件长度作为参数,向服务器发出获取对应文件数据的请求,服务器端收到客户端回复的下载启动应答后,服务器端的终端设备将对应文件以块数据的大小进行拆分然后封装成数据包,逐包发送至客户端,客户端收到数据包,组织回复包说明服务器端正在传输数据包中的信息至服务器端,数据包加载到Linux嵌入式系统先经过校验模块进行校验,文件解析模块解析校验错误的数据包丢弃处理;升级文件传输重组完成后,在固化到ROM存储器之前,对驻留RAM存储器的文件执行MD5校验,确认执行固化之前的文件正确性;升级文件固化到ROM的操作完成后,对ROM中的文件进行MD5校验,确认固化的文件正确性,对校验失败的数据包,丢弃无效数据再次请求服务器端重传;将升级文件传递至存储器的应用程序区并执行应用程序进行自动升级;对于校验通过的数据包解包出升级固件文件并重组数据,按照待升级文件记录的文件名称、安装目录和安装动作,逐个文件依次顺序执行相应的操作合成升级文件;将升级文件传递至升级执行模块的应用程序区并执行应用程序进行自动升级;客户端收到最后一个数据包后通知服务器端回复确认;服务器端接收回复包,发送包含奇偶校验码结束命令扫描客户端文件系统中的所有本地旧文件。
在本实施例中,客户端接收握手消息校验握手消息正确性的步骤中,包括客户端需要编写一个入站处理器,接收服务器端传送的握手消息,在进入客户端的Websocket处理器之前检测握手请求信息,在握手期间,到主机的连接上使用的SSLSession返回值:如果主机名是可接受的,则返回true;如果URL的主机名和服务器的标识主机名不匹配,则验证机制可以回调此接口的实现程序来确定是否应该允许此连接,策略基于证书的或依赖于其他验证方案;当验证URL主机名使用的默认规则失败时使用这些回调,通过入站处理器实现对握手消息的校验处理,可有效减少在连接过程中握手的错误性导致连接不成功;该入站处理器可由下式确定:
Host nameVerifierhnv=newHosernameVerifier(){
@Override
Public boolean verify(String hostname,SSL Session session){
if(“you host name”.equals(host name)){
Return true;
}else{
Host nameVerifierhv=Https URL Connection.getDefaultHostnameVerifier();
Return hv.verify(hostname,session);
}
}
}
本发明实施例中还提供一种计算机设备,该计算机设备可以是服务器,其该计算机设备包括通过系统总线连接的处理器、非易失性存储介质。其中,该计算机设备的处理器用于提供计算和控制能力。该非易失性存储介质存储有操作系统、计算机程序和数据库。该存储器为外接存储设备,用于扩展计算机的存储性能。该计算机设备的数据库用于存储数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种嵌入式系统软件自动升级的方法及装置。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本发明的专利保护范围内。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
Claims (10)
1.一种嵌入式系统软件自动升级的方法,其特征在于,包括:
S1:通过CAN总线网络将服务器端和客户端进行连接;客户端监听通讯接口,等待用户发出操作指令,用户通过图形界面向客户端下发升级指令,服务器端根据用户的指令发送握手消息至客户端,客户端接收握手消息校验握手消息正确性,回复请求响应至服务器端;
S2:在客户端通过通讯网口创建不同的文件目录并下载对应不同操作的文件,进行编程地址有效性的确认;客户端从服务器端下载升级固件的升级文件信息表,对比升级文件信息表与客户端存储的旧文件信息表中的文件名和校验值,确定执行操作;对执行增加或修订的操作,以偏移值和文件长度作为参数,向服务器发出获取对应文件数据的请求;
S3:服务器端将对应文件拆分然后封装成数据包,逐包发送至客户端;数据包加载到客户端Linux嵌入式系统并进行校验数据包;若数据包校验通过,则解包出升级固件文件并重组数据合成升级文件;若数据包校验失败,则丢弃无效数据再次请求服务器端重传;将升级文件传递至客户端Linux嵌入式系统的应用程序区并执行应用程序进行自动升级;客户端收到最后一个数据包后通知服务器端回复确认;服务器端接收回复包,发送包含奇偶校验码结束命令给客户端进行校验,确认客户端完成升级文件接收和重组。
2.根据权利要求1所述的一种嵌入式系统软件自动升级的方法,其特征在于,所述通过CAN总线网络将服务器端和客户端进行连接的步骤中,包括:服务器端存储需要发送的升级包以及应用程序文件,并等待客户端的联机请求,客户端进行上电并进行初始化,然后发送Boot-up报文,通知服务器端处于预操作状态,服务器端收到Boot-up报文,接收请求报文。
3.根据权利要求2所述的一种嵌入式系统软件自动升级的方法,其特征在于,所述初始化是首先初始化RAM基址,接着初始化堆栈,关闭看门狗,随后初始化全局变量,接着初始化CAN通讯接口,以完成Bootloader自身环境初始化。
4.根据权利要求1所述的一种嵌入式系统软件自动升级的方法,其特征在于,所述数据包加载到客户端Linux嵌入式系统并进行校验数据包的步骤中,包括:服务器端和客户端交互过程采用CRC32校验,校验错误的数据包丢弃处理,确保通讯交互的正确性;升级文件传输重组完成后,在固化到ROM之前,对驻留RAM的文件执行MD5校验,确认执行固化之前的文件正确性;升级文件固化到ROM的操作完成后,对ROM中的文件进行MD5校验,确认固化的文件正确性。
5.根据权利要求1所述的一种嵌入式系统软件自动升级的方法,其特征在于,所述则解包出升级固件文件并重组数据合成升级文件的步骤后,包括:根据待升级文件记录的文件名称、安装目录和安装动作,逐个文件依次顺序执行升级的步骤。
6.根据权利要求5所述的一种嵌入式系统软件自动升级的方法,其特征在于,所述升级固件文件包括升级文件信息表、制作升级固件头文件、制作文件包;升级文件信息表包括文件和文件名的消息摘要算法数值、文件偏移地址、文件长度;制作文件包是对文件压缩包进行加密处理并打包生成文件包;文件和文件名的消息摘要算法数值是指文件压缩包的MD5值和文件名MD5值。
7.根据权利要求1所述的一种嵌入式系统软件自动升级的方法,其特征在于,所述发送包含奇偶校验码结束命令给客户端进行校验的步骤中,包括:扫描客户端文件系统中的所有本地旧文件,识别出文件名MD5值的文件路径,建立文件路径与文件名MD5值二者的对应关系表Record,逐一对比校验DEL目录下的文件名和Record中的文件名,若相同则与Record文件中读取文件的路径证明文件保持一致,确认客户端完成升级文件接收和重组。
8.根据权利要求1所述的一种嵌入式系统软件自动升级的方法,其特征在于,所述客户端接收握手消息校验握手消息正确性的步骤中,包括:需要编写一个入站处理器,接收服务器端传送的握手消息,在进入客户端的Websocket处理器之前检测握手请求信息,在握手期间,到主机的连接上使用的SSLSession返回值:如果主机名是可接受的,则返回true;如果URL的主机名和服务器的标识主机名不匹配,则验证机制可以回调此接口的实现程序来确定是否应该允许此连接,策略基于证书的或依赖于其他验证方案;当验证URL主机名使用的默认规则失败时使用这些回调。
9.一种嵌入式系统软件自动升级的装置,其特征在于,采用如权利要求1-8任一项所述的一种嵌入式系统软件自动升级的方法,所述嵌入式系统软件自动升级装置包括:
所述服务器端:驻留在升级设备中,为操作人员提供图形化交互控制功能,同时客户端完成数据交互和完整的软件升级流程;所述服务器端包括存储设备;
所述客户端:驻留在软件升级中,通过注册回调机制兼容多种嵌入式硬件平台,负责与服务器端程序进行数据交互,完成驻留产品上的软件升级和校验功能。
10.根据权利要求9所述的一种嵌入式系统软件自动升级的装置,其特征在于,所述客户端包括终端设备;所述终端设备包括校验模块、文件解析模块和升级执行模块;
校验模块:用于进行数据包校验;
文件解析模块:用于解析所述升级文件信息表中的数据;
升级执行模块:用于执行不同的升级操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310458815.3A CN116185460A (zh) | 2023-04-26 | 2023-04-26 | 一种嵌入式系统软件自动升级的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310458815.3A CN116185460A (zh) | 2023-04-26 | 2023-04-26 | 一种嵌入式系统软件自动升级的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116185460A true CN116185460A (zh) | 2023-05-30 |
Family
ID=86433026
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310458815.3A Pending CN116185460A (zh) | 2023-04-26 | 2023-04-26 | 一种嵌入式系统软件自动升级的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116185460A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116489210A (zh) * | 2023-06-21 | 2023-07-25 | 深圳市双合电气股份有限公司 | 一种远程配置、应用下发的方法、装置和计算机设备 |
CN117560285A (zh) * | 2024-01-08 | 2024-02-13 | 河北普兰特生物科技有限公司 | 一种智控物联整机ota升级方法、客户端及服务端 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103942058A (zh) * | 2013-01-17 | 2014-07-23 | 深圳市潮流网络技术有限公司 | 一种嵌入式电子设备软件升级方法及系统 |
CN110008757A (zh) * | 2019-04-09 | 2019-07-12 | 江南大学 | 一种物联网终端固件更新中数据保护方法及系统 |
US20200264864A1 (en) * | 2017-10-24 | 2020-08-20 | Huawei International Pte. Ltd. | Vehicle-mounted device upgrade method and related device |
CN115543371A (zh) * | 2022-08-06 | 2022-12-30 | 中国航空工业集团公司洛阳电光设备研究所 | 一种嵌入式平台高可靠自动化软件升级方法 |
-
2023
- 2023-04-26 CN CN202310458815.3A patent/CN116185460A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103942058A (zh) * | 2013-01-17 | 2014-07-23 | 深圳市潮流网络技术有限公司 | 一种嵌入式电子设备软件升级方法及系统 |
US20200264864A1 (en) * | 2017-10-24 | 2020-08-20 | Huawei International Pte. Ltd. | Vehicle-mounted device upgrade method and related device |
CN110008757A (zh) * | 2019-04-09 | 2019-07-12 | 江南大学 | 一种物联网终端固件更新中数据保护方法及系统 |
CN115543371A (zh) * | 2022-08-06 | 2022-12-30 | 中国航空工业集团公司洛阳电光设备研究所 | 一种嵌入式平台高可靠自动化软件升级方法 |
Non-Patent Citations (1)
Title |
---|
余楚礼 等: "基于GB/T32960的车联网终端固件自更新系统设计", 《汽车工程师》, no. 249, pages 17 - 19 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116489210A (zh) * | 2023-06-21 | 2023-07-25 | 深圳市双合电气股份有限公司 | 一种远程配置、应用下发的方法、装置和计算机设备 |
CN116489210B (zh) * | 2023-06-21 | 2023-10-20 | 深圳市双合电气股份有限公司 | 一种远程配置、应用下发的方法、装置和计算机设备 |
CN117560285A (zh) * | 2024-01-08 | 2024-02-13 | 河北普兰特生物科技有限公司 | 一种智控物联整机ota升级方法、客户端及服务端 |
CN117560285B (zh) * | 2024-01-08 | 2024-04-09 | 河北普兰特生物科技有限公司 | 一种智控物联整机ota升级方法、客户端及服务端 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116185460A (zh) | 一种嵌入式系统软件自动升级的方法及装置 | |
US20180365423A1 (en) | Method and system for firmware-updating a control device for process control | |
US8549165B2 (en) | Processing devices and methods for transmitting and receiving data | |
CN107733847B (zh) | 平台登录网站方法、装置、计算机设备以及可读存储介质 | |
US7350207B2 (en) | Rule-based system and method for downloading computer software over a network | |
US9100696B2 (en) | System and method for upgrading a multiprocessor set-top box device with a monolithic firmware image | |
US20050149923A1 (en) | System update protocol | |
CN110096290B (zh) | 一种电池模拟器主控板软件升级方法 | |
CN109976748A (zh) | 一种程序处理方法、终端、服务器及计算机存储介质 | |
CN112953983A (zh) | Sftp传输方法及装置 | |
CN113315681B (zh) | 一种基于智能家庭网关插件的自动化测试方法及系统 | |
CN112925536B (zh) | 虚拟机系统镜像处理方法、装置、设备及存储介质 | |
CN101453479A (zh) | 一种快速的文件传输系统 | |
CN111147597B (zh) | 文件传输方法、终端、电子设备及存储介质 | |
CN115454575B (zh) | jar包转换并自动加载的方法、装置、设备及存储介质 | |
CN115543371A (zh) | 一种嵌入式平台高可靠自动化软件升级方法 | |
CN114840225A (zh) | 一种应用部署方法、装置、存储介质及电子装置 | |
CN114168185A (zh) | 一种车载全液晶仪表上传升级文件的方法 | |
CN112685048A (zh) | 应用程序打包方法、电子设备及存储介质 | |
CN118245092B (zh) | 一种安全控制平台多模块在线升级的方法 | |
JP2002175236A (ja) | データ登録システム | |
CN114268624B (zh) | 版本文件传输方法、装置及服务器 | |
CN109766377A (zh) | 跨平台的数据获取方法、装置、计算机设备和存储介质 | |
CN115544521B (zh) | 一种离线安装文件的校验和生成方法及装置 | |
CN111050218A (zh) | 机顶盒升级及校验方法、服务器、机顶盒及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20230530 |
|
RJ01 | Rejection of invention patent application after publication |