CN105573794A - 一种嵌入式系统软件远程更新方法及系统 - Google Patents
一种嵌入式系统软件远程更新方法及系统 Download PDFInfo
- Publication number
- CN105573794A CN105573794A CN201510958423.9A CN201510958423A CN105573794A CN 105573794 A CN105573794 A CN 105573794A CN 201510958423 A CN201510958423 A CN 201510958423A CN 105573794 A CN105573794 A CN 105573794A
- Authority
- CN
- China
- Prior art keywords
- code
- processor
- code packages
- surveillance center
- programming
- 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
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
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)
- Stored Programmes (AREA)
Abstract
本发明涉及一种嵌入式系统软件远程更新方法及系统,该方法通过监控中心将更新程序文件代码按预设分包规则分包形成多个代码包后,响应更新请求将所述代码包通过无线网络发送至信号处理机,信号处理机接收到代码包并检测确认无误后将所述更新程序文件的代码包的主程序代码与从程序代码区分、位置分开写入非易失性存储器中;信号处理机更新程序烧写成功后响应述监控中心的重启指令信号重启,处理器重载更新程序文件的代码包,利用所述主程序代码、从程序代码分别对主处理器和\或从处理器的对应程序进行更新。本发明更新方法更为稳定,烧写可靠性高,更新更为可靠。
Description
技术领域
本发明属于嵌入式系统技术领域,具体涉及一种嵌入式系统软件远程更新方法及系统。
背景技术
引导程序和引导方式是多DSP系统的重要组成部分。只有正确设计和编写引导方式和引导程序才能使得处理器系统正常进行程序引导加载。内核加载通过ADI公司的DSP开发软件VisualDSP++的elfloader.exe程序生成,并附加到用户应用代码中,在启动过程中由处理器执行程序加载的过程。
内核加载程序是一个可进行自修改的程序,即处理器进行启动时,首先将内核加载程序调入内部存储器,然后执行内核加载程序,把用户的程序调入处理器内部存储器,在用户程序调入完毕后,内核加载程序自动将用户程序替换内核加载程序,然后对处理器进行复位,以便执行用户程序,因此内核加载程序是一个自动进行程序修改的代码;ADSPTS201s处理器支持以下4种引导加载方式:
1、EPROM引导方式通过处理器外部总线进行程序引导和加载;
2、主机引导方式通过主机或者将其他处理器作为主机,实现处理器的程序引导和加载;
3、链路口引导方式通过处理器的链路口实现程序的引导和加载;
4、非引导方式通过外部不同的Strap信号,从内部存储器的不同地址开始执行程序。
在DSP开发初期,一般都使用仿真器,通过JTAG口进行软件编程和在线仿真测试。软件完成后,利用JTAG口烧写程序编码到FLASH固定位置。系统重新上电后,DSP把FLASH中的编码读回内部RAM运行,完成引导加载过程。这种程序烧写的方法有一个缺点:JTAG口要连接仿真器,这样必须拆卸系统硬件来调试更新程序,十分不便。这一点尤其不利于工作在无人职守的野外或高低温等复杂条件下的嵌入式系统的程序更新。所以,具有远程烧写程序的功能就显得尤为重要。
基于DSP的远程烧写程序的方法很多,但其安全可靠性都不高,在烧写的时候均要求系统不能断电,否则将造成整个系统软件崩溃。只能人工通过JTAG口调试烧写才能恢复。如何有效提高系统维护的安全性、可靠性成为了一个重要而关键的问题。
发明内容
本发明的目的在于解决上述的技术问题而提供一种高可靠性的嵌入式系统软件远程更新方法及系统。
为实现上述目的,本发明采用如下技术方案:
一种嵌入式系统软件远程更新方法,包括以下步骤:
监控中心按预设内部协议将更新程序文件代码按预设分包规则分包,形成多个代码包后,响应更新请求根据预设发送规则将所述代码包通过无线网络发送至信号处理机;
所述信号处理机接收到所述监控中心发送的所述更新程序文件的代码包并检测确认无误后,通过自身烧写功能将所述更新程序文件的代码包的主程序代码与从程序代码区分、位置分开写入非易失性存储器中;
所述信号处理机更新程序烧写成功后响应所述监控中心的重启指令信号重启,处理器重载所述更新程序文件的代码包,利用所述主程序代码、从程序代码分别对主处理器和\或从处理器的对应程序进行更新。
所述主程序代码存储在所述非易失性存储器的第一空间地址中,所述从程序代码存在所述非易失性存储器的第二空间地址中,且所述第一空间地址的起始地址为所述非易失性存储器0x00地址,所述第二空间地址的起始地址为所述第一空间地址的终止地址后的第一个地址。
所述第一空间地址及第二空间地址分别包括有多个block段。
重载所述更新程序文件的代码包时,所述非易失性存储器内的所述主程序由所述主处理器采用外部总线进行引导与加载,所述从程序通过所述主处理器与从处理器间的链路口引导与加载。
所述信号处理机每接收到一个代码包后判断数据是否正确,然后发正确接收或错误接收回馈信息给所述监控中心,所述监控中心接收到正确接收回馈信息再发下一个新代码包;如所述监控中心未收到正确接收回馈信息或收到错误接收回馈信息,则在预设时间间隔后自动重发该错误接收回馈信息或未有正确接收回馈信息对应的代码包;如所述监控中心重发该代码包的重发次数超过预设代码包重发次数,则放弃本次更新;
所述信号处理机接收一个代码包并发送所述回馈信息后,在预设时间段后未收到代码包时自动重新发送回馈信息,如在预设回馈信息设重发次数内仍未收到代码包,则放弃此次软件烧写。
所述信号处理机接收完全部的代码包后,核对所有代码包的信息、进行数据拼接、校验,确认无误后通知所述监控中心进入烧写模式;同时所述信号处理机按照非易失性存储器的读写指令,把RAM存储器中的数据从所述非易失性存储器的预设起始位置开始写入直到烧写完成;烧写完成后,将烧写成功的信息回馈给所述监控中心;所述监控中心获得烧写成功消息后,下发信号处理机重启指令,信号处理机重启,实现更新程序文件重新加载,完成程序更新。
如果所述监控中心自所述信号处理机收到烧写失败的反馈消息,或者等待预设时间还没有收到烧写成功与否的反馈信息,则所述监控中心重新下发更新指令重新对所述信号处理机的处理器的软件进行更新,直至所述信号处理机的处理器软件更新成功。
所述更新程序文件的代码包的每一个包的信息均包括有报头、报文长度、形成的代码包的总包数、本代码包的包号、本代码包包含的需要更新的编码数据和校验位信息;其中,所述报文长度包括所述报头,所述校验位信息包括奇偶校验位与CRC校验位。
所述奇偶校验位为1个字节,所述CRC校验位为2个字节。
本发明的目的还在于提供一种嵌入式系统软件远程更新系统,包括:
监控中心,用于按预设内部协议将更新程序文件代码按预设分包规则分包,形成多个代码包后,根据预设发送规则将所述代码包通过无线网络发送至信号处理机进行烧写,并在所述代码包烧写成功后下发重启指令给所述信号处理机重启;
所述信号处理机,用于接收到所述监控中心发送的所述更新程序文件的所有代码包并检测确认无误后,通过自身烧写功能将所述更新程序文件的代码包的主程序代码与从程序代码区分、位置分开写入非易失性存储器中,然后发送烧写成功回馈信息给所述监控中心;
所述信号处理机,还用于在更新程序烧写成功后,响应所述监控中心的重启指令信号重启后,通过处理器重载所述更新程序文件的代码包,利用所述主程序代码、从程序代码分别对主处理器和\或从处理器的对应程序进行更新。
本发明通过控中心按预设内部协议将更新程序文件代码按预设分包规则分包,形成多个代码包后,响应更新请求根据预设发送规则将代码包通过无线网络发送至信号处理机;信号处理机接收到代码包并检测确认无误后,通过自身烧写功能将更新程序文件的代码包的主程序代码与从程序代码区分、位置分开写入非易失性存储器中;然后响应所述监控中心的重启指令信号重启,处理器重载更新程序文件的代码包,利用主程序代码、从程序代码分别对主处理器和\或从处理器的对应程序进行更新,实现更新程序文件按主程序与从程序的数据分段、位置分开、分片写入非易失性存储器中后,重载对主处理器和\或从处理器的程序进行更新,相比现有技术而说,更新方法更为稳定,从程序更新不受主程序的影响,可独立进行,因此烧写可靠性高,更新更为可靠。
附图说明
图1为本发明实施例提供的一种嵌入式系统软件远程更新方法的流程图;
图2为本发明实施例提供的一种嵌入式系统软件远程更新系统的结构示意图;
图3为本发明实施例提供的主从程序代码在非易失性存储器内的存储布置示意图;
图4为本发明实施例提供的又一种嵌入式系统软件远程更新方法的流程图。
具体实施方式
下面,结合实例对本发明的实质性特点和优势作进一步的说明,但本发明并不局限于所列的实施例。
参见图1所示,一种嵌入式系统软件远程更新方法,包括以下步骤:
监控中心按预设内部协议将更新程序文件代码按预设分包规则分包,形成多个(如n个)代码包后,响应更新请求根据预设发送规则将所述代码包通过无线网络发送至信号处理机;
所述信号处理机接收到所述监控中心发送的所述更新程序文件的代码包并检测确认无误后,通过自身烧写功能将所述更新程序文件的代码包的主程序代码与从程序代码区分、位置分开写入非易失性存储器(Flash)中;
所述信号处理机更新程序烧写成功后响应所述监控中心的重启指令信号重启,处理器重载所述更新程序文件的代码包,利用所述主程序代码、从程序代码分别对主处理器和\或从处理器的对应程序进行更新。
需要说明的是,本发明中,所述主程序代码与从程序代码区分、位置分开写入非易失性存储器中也可以理解为将主、从处理器的更新程序分片烧写,并按数据分段的方式写入非易失性存储器中进行烧写。
具体的,在更新时,所述信号处理机在检测模式下,通过相应的探测系统实时探测监控中心是否有更新程序文件数据,如果是可向所述监控中心发送更新请求后,停止探测工作模式,由所述监控中心响应更新请求后,进行所述更新程序文件代码包的发送以实现数据的更新。
需要说明的是,本发明中,参见图2所示,所述信号处理机的嵌入式系统包括处理器,所述处理器包括主处理器与至少一个从处理器,主处理器实现信号处理机的嵌入式系统程序的管理和控制,把探测信息经过外围芯片FPGA,通过串口发送到无线通信设备,以无线的方式发送探测结果,实现和监控中心软件的相互通信;从处理器实现信号处理计算,把处理计算结果传递给主处理器。监控中心对前端嵌入式系统实现远程管理,包括自检、数据采集、程序更新和状态模式转换等;这样,可以在重启后实现重新加载所述更新程序文件按主程序与从程序更新数据分开的代码包后,对应的对主处理器与从处理器的软件进行更新。而且在一般的处理器程序更新时,主程序一般无须更新,这样仅对从处理器的软件进行更新,从而更新过程中从处理器的更新不受主处理器更新与否的影响,更新过程更为可靠,稳定。所述主处理器与从处理器可以是DSP芯片或其它嵌入式系统所用的控制芯片。
发送更新程序数据代码包时,所述监控中心按照内部协议把更新程序文件分包,通过无线网络下发到以主处理器为核心的信号处理机。信号处理机接收完数据后,通过自身的烧写功能,把更新程序代码自动写入非易失性存储器Flash中,重新启动后,信号处理机的处理器则重载实现远程分片烧写程序的功能;在更新后程序的初始化设置中,每次会自动读回非易失性存储器Flash中的程序代码,完成更新系统软件的功能。
需要说明的是,所述非易失性存储器Flash内部分为多个block段,可以擦写任意位置的block段,没有擦写的block数据不会丢失。根据这一特性,把主处理器、从处理器的软件更新程序的烧写位置分开。如图3所示。本发明中,所述主程序代码存储在所述非易失性存储器的第一空间地址中,所述从程序代码存在所述非易失性存储器的第二空间地址中,且所述第一空间地址的起始地址为所述非易失性存储器0x00地址,所述第二空间地址的起始地址为所述第一空间地址的终止地址后的第一个地址。
所述第一空间地址及第二空间地址分别包括有多个block段。
具体的,可以是所述主程序代码存储在所述非易失性存储器的0x00地址至第19个block段的地址中,所述从程序代码存在所述非易失性存储器的第20个block段开始的block段的地址中,具体根据更新程序文件的数量具体选用分别烧写入非易失性存储器哪两个数据段中的位置。
其中,本发明中,在重载所述更新程序文件的代码包时,所述非易失性存储器内的所述主程序由所述主处理器采用外部总线(EPROM方式)进行引导与加载;所述从程序通过所述主处理器与从处理器间的链路(Link)口引导与加载。所述主处理器与从处理器间的链路(Link)口引导与加载可以实现可靠的多次更新。
本发明通过将主、从处理器的更新程序分开位置进行烧写,由于主处理器只涉及管理控制功能,所以把主处理器作为整个系统的主框架,一般不做更新。用从处理器实现其主要的性能算法以及参数设置,从处理器的加载通过处理器的link口引导。这样,大部分的在线维护和算法程序升级通过更新从处理器就能完成。在更新的过程中,主处理器程序不会受影响,增强了系统的可靠性,也不必担心突然的掉电会导致系统软件的崩溃,从而增加了嵌入式系统远程烧写更新程序的可靠性。
参见图4所示,具体的,本发明中,所述监控中心在发送更新程序文件时,系统采用握手协议,所述信号处理机接收到监控中心软件的更新指令后,停止探测工作模式,开始接收总包数为n的n个数据包。所述更新程序文件的代码包的预设发送规则是指,所述信号处理机每接收到一个代码包后判断数据是否正确,然后发正确接收或错误接收回馈信息给所述监控中心,所述监控中心接收到正确接收回馈信息再发下一个新代码包;如所述监控中心未收到正确接收回馈信息或收到错误接收回馈信息,则进入等待模式,在预设时间间隔后(如10秒后)自动重发该未对应有正确接收回馈信息或错误接收回馈信息的原代码包;如所述监控中心重发未对应有正确接收回馈信息或错误接收回馈信息的原代码包的重发次数(如3次)超过预设代码包重发次数,则放弃本次更新;
所述信号处理机接收一代码包并发送所述回馈信息后进入等待模式,在预设时间段后(如10秒后)未收到下一新代码包,或未收到未对应有正确接收回馈信息或错误接收回馈信息的原代码包时,自动重新发送回馈信息,如在预设成功回馈信息设重发次数(如3次)内仍未收到下一代码包,则放弃此次软件烧写,回到更新数据探测状态,向所述监控中心发送探测信息。
本发明中,所述信号处理机按上述的方法接收完全部的n个代码包后,核对所有代码包的信息、进行数据拼接、校验,确认无误后通知所述监控中心进入烧写模式;同时所述信号处理机按照非易失性存储器的读写指令,把内部RAM存储器中的数据从所述非易失性存储器的预设起始位置开始写入直到烧写完成;烧写完成后,将烧写成功的信息回馈给所述监控中心;所述监控中心获得烧写成功消息后,下发信号处理机重启指令,信号处理机重启,从而实现更新程序文件重新加载,完成程序更新。
进一步的,本发明中,如果所述监控中心自所述信号处理机收到烧写失败的反馈消息,或者等待预设时间还没有收到烧写成功与否的反馈信息,则所述监控中心重新下发更新指令重新对所述信号处理机的处理器的软件进行更新,直至所述信号处理机的处理器软件更新成功。
具体的,本发明中,如下所示,所述更新程序文件的代码包的每一个包的信息均包括有报头SOH、报文长度、本次更新程序文件形成的代码包的总包数、本代码包的包号、本代码包包含的需要更新的编码数据和校验位信息;其中,所述报文长度包括所述报头,所述校验位信息包括奇偶校验位与CRC校验位。每一个包的字节可以根据具体来设定,具体根据实际更新程序文件的大小以及无线数据传送能力来具体设定,如更新程序代码文件为131395,据无线传输设备的发送能力的情况,把数据按照每包300Byte分包,每包包括报头、总包数、包号和校验位等信息。
其中,所述奇偶校验位可以为1个字节,所述CRC校验位可以为2个字节。
报头 | 报文长度 | 总包数 | 包号 | 数据 | 校验位 |
为了解决网络堵塞、断开或者串口的误码都会造成数据错误,而造成更新不成功,为了节省资源和增加更新的成功率,本发明中所述监控中心的软件支持断点续传更新程序文件代码包,可以在网络中断又连接后嵌入式系统再次连接监控中心接收更新程序文件数据代码包时,在上一次未完成数据代码包接收或传送的基础上继续进行更新数据代码包的续传,接收。
由于本发明是把大量的更新程序文件代码分包,每1小包添加报头和校验位等信息;且采用奇偶校验和CRC校验相结合进行校验;从处理器用Link口引导加载更新数据代码包,所述监控中心的软件支持断点续传,从而可以实现可靠的多次更新。即使更新过程中遇到突发情况导致更新不成功,主处理器仍然工作正常,可以再次下发更新指令,重新更新从处理器,直至更新成功。
参见图2,本发明的目的还在于提供一种嵌入式系统软件远程更新系统,包括:
监控中心,用于按预设内部协议将更新程序文件代码按预设分包规则分包,形成多个(如n个)代代码包后,根据预设发送规则将所述代码包通过无线网络发送至信号处理机进行烧写,并在所述代码包烧写成功后下发重启指令给所述信号处理机重启;
所述信号处理机,用于接收到所述监控中心发送的所述更新程序文件的所有代码包并检测确认无误后,通过自身烧写功能将所述更新程序文件的代码包的主程序代码与从程序代码区分、位置分开写入非易失性存储器中,然后发送烧写成功回馈信息给所述监控中心;
所述信号处理机,还用于在更新程序烧写成功后,响应所述监控中心的重启指令信号重启后,通过处理器重载所述更新程序文件的代码包,利用所述主程序代码、从程序代码分别对主处理器和\或从处理器的对应程序进行更新。
需要说明的是,本发明中,所述主程序代码与从程序代码区分、位置分开写入非易失性存储器中也可以理解为将主、从处理器的更新程序分片烧写,并按数据分段的方式写入非易失性存储器中进行烧写。
具体的,在更新时,所述信号处理机在检测模式下,通过相应的探测系统实时探测监控中心是否有更新程序文件数据,如果是可向所述监控中心发送更新请求后,停止探测工作模式,由所述监控中心响应更新请求后,进行所述更新程序文件代码包的发送以实现数据的更新。
需要说明的是,本发明中,所述信号处理机的嵌入式系统包括处理器,所述处理器包括主处理器与至少一个从处理器,主处理器实现信号处理机的嵌入式系统程序的管理和控制,把探测信息经过外围芯片FPGA,通过串口发送到无线通信设备,以无线的方式发送探测结果,实现和监控中心软件的相互通信;从处理器实现信号处理计算,把处理计算结果传递给主处理器。监控中心对前端嵌入式系统实现远程管理,包括自检、数据采集、程序更新和状态模式转换等;这样,可以在重启后实现重新加载所述更新程序文件按主程序与从程序更新数据分开的代码包后,对应的对主处理器与从处理器的软件进行更新。而且在一般的处理器程序更新时,主程序一般无须更新,这样仅对从处理器的软件进行更新,从而更新过程中从处理器的更新不受主处理器更新与否的影响,更新过程更为可靠,稳定。
所述主处理器与从处理器可以是DSP芯片或其它嵌入式系统所用的控制芯片。
发送更新程序数据代码包时,所述监控中心按照内部协议把更新程序文件分包,通过无线网络下发到以主处理器为核心的信号处理机。信号处理机接收完数据后,通过自身的烧写功能,把新程序代码自动写入非易失性存储器Flash中,重新启动后,信号处理机的处理器则重载实现远程分片烧写程序的功能;在更新后程序的初始化设置中,每次会自动读回非易失性存储器Flash中的程序代码,完成更新系统软件的功能。
需要说明的是,所述非易失性存储器Flash内部分为多个block段,可以擦写任意位置的block段,没有擦写的block数据不会丢失。根据这一特性,把主处理器、从处理器的软件更新程序的烧写位置分开。如图3所示。本发明中,所述主程序代码存储在所述非易失性存储器的第一空间地址中,所述从程序代码存在所述非易失性存储器的第二空间地址中,且所述第一空间地址的起始地址为所述非易失性存储器0x00地址,所述第二空间地址的起始地址为所述第一空间地址的终止地址后的第一个地址。
所述第一空间地址及第二空间地址分别包括有多个block段。
具体的,可以是所述主程序代码存储在所述非易失性存储器的0x00地址至第19个block段的地址中,所述从程序代码存在所述非易失性存储器的第20个block段开始的block段的地址中,具体根据更新程序文件的数量具体选用分别烧写入非易失性存储器哪两个数据段中的位置。
其中,本发明中,在重载所述更新程序文件的代码包时,所述非易失性存储器内的所述主程序由所述主处理器采用外部总线(EPROM方式)进行引导与加载;所述从程序通过所述主处理器与从处理器间的链路(Link)口引导与加载。所述主处理器与从处理器间的链路(Link)口引导与加载可以实现可靠的多次更新。
本发明通过将主、从处理器的程序分开位置进行烧写,由于主处理器只涉及管理控制功能,所以把主处理器作为整个系统的主框架,一般不做更新。用从处理器实现其主要的性能算法以及参数设置,从处理器的加载通过处理器的link口引导。这样,大部分的在线维护和算法程序升级通过更新从处理器就能完成。在更新的过程中,主处理器程序不会受影响,增强了系统的可靠性,也不必担心突然的掉电会导致系统软件的崩溃,从而增加了嵌入式系统远程烧写更新程序的可靠性。
参见图4所示,具体的,本发明中,所述监控中心在发送更新程序文件时,系统采用握手协议,所述信号处理机接收到监控中心软件的更新指令后,停止探测工作模式,开始接收总包数为n的n个数据包。所述更新程序文件的代码包的预设发送规则是指,所述信号处理机每接收到一个代码包后判断数据是否正确,然后发正确接收或错误接收回馈信息给所述监控中心,所述监控中心接收到正确接收回馈信息再发下一个新代码包;如所述监控中心未收到正确接收回馈信息或收到错误接收回馈信息,则进入等待模式,在预设时间间隔后(如10秒后)自动重发该未对应有正确接收回馈信息或错误接收回馈信息的原代码包;如所述监控中心重发未对应有正确接收回馈信息或错误接收回馈信息的原代码包的重发次数(如3次)超过预设代码包重发次数,则放弃本次更新;
所述信号处理机接收一代码包并发送所述回馈信息后进入等待模式,在预设时间段后(如10秒后)未收到下一新代码包,或未收到未对应有正确接收回馈信息或错误接收回馈信息的原代码包时,自动重新发送回馈信息,如在预设成功回馈信息设重发次数(如3次)内仍未收到下一代码包,则放弃此次软件烧写,回到更新数据探测状态,向所述监控中心发送探测信息。
本发明中,所述信号处理机按上述的方法接收完全部的n个代码包后,核对所有代码包的信息、进行数据拼接、校验,确认无误后通知所述监控中心进入烧写模式;同时所述信号处理机按照非易失性存储器的读写指令,把内部RAM存储器中的数据从所述非易失性存储器的预设起始位置开始写入直到烧写完成;烧写完成后,将烧写成功的信息回馈给所述监控中心;所述监控中心获得烧写成功消息后,下发信号处理机重启指令,信号处理机重启,从而实现更新程序文件重新加载,完成程序更新。
进一步的,本发明中,如果所述监控中心自所述信号处理机收到烧写失败的反馈消息,或者等待预设时间还没有收到烧写成功与否的反馈信息,则所述监控中心重新下发更新指令重新对所述信号处理机的处理器的软件进行更新,直至所述信号处理机的处理器软件更新成功。
具体的,本发明中,如下所示,所述更新程序文件的代码包的每一个包的信息可以是包括有报头SOH、报文长度、本次更新程序文件形成的代码包的总包数、本代码包的包号、本代码包包含的需要更新的编码数据和校验位信息;其中,所述报文长度包括所述报头,所述校验位信息包括奇偶校验位与CRC校验位。每一个包的字节可以根据具体来设定,具体根据实际更新程序文件的大小以及无线数据传送能力来具体设定,如更新程序代码文件为131395,据无线传输设备的发送能力的情况,把数据按照每包300Byte分包,每包包括报头、总包数、包号和校验位等信息。
其中,所述奇偶校验位可以为1个字节,所述CRC校验位可以为2个字节。
报头 | 报文长度 | 总包数 | 包号 | 数据 | 校验位 |
为了解决网络堵塞、断开或者串口的误码都会造成数据错误,而造成更新不成功,为了节省资源和增加更新的成功率,本发明中所述监控中心的软件支持断点续传更新程序文件代码包,可以在网络中断又连接后嵌入式系统再次连接监控中心接收更新程序文件数据代码包时,在上一次未完成数据代码包接收或传送的基础上继续进行更新数据代码包的续传,接收。
由于本发明是把大量的更新程序文件代码分包,每1小包添加报头和校验位等信息;且采用奇偶校验和CRC校验相结合进行校验;从处理器用Link口引导加载更新数据代码包,所述监控中心的软件支持断点续传,从而可以实现可靠的多次更新。即使更新过程中遇到突发情况导致更新不成功,主处理器仍然工作正常,可以再次下发更新指令,重新更新从处理器,直至更新成功。
本发明提供的嵌入式系统软件远程更新方法及系统,具有很高的可靠性和实用性,能有效的解决嵌入式软件远程更新成功率低、可靠性差的问题,对对嵌入式系统软件更新提供一种安全、可靠的远程软件更新技术,可有效的解决嵌入式系统软件的远程更新成功率低、可靠性差问题。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种嵌入式系统软件远程更新方法,其特征在于,包括以下步骤:
监控中心按预设内部协议将更新程序文件代码按预设分包规则分包,形成多个代码包后,响应更新请求根据预设发送规则将所述代码包通过无线网络发送至信号处理机;
所述信号处理机接收到所述监控中心发送的所述更新程序文件的代码包并检测确认无误后,通过自身烧写功能将所述更新程序文件的代码包的主程序代码与从程序代码区分、位置分开写入非易失性存储器中;
所述信号处理机更新程序烧写成功后响应所述监控中心的重启指令信号重启,处理器重载所述更新程序文件的代码包,利用所述主程序代码、从程序代码分别对主处理器和\或从处理器的对应程序进行更新。
2.根据权利要求1所述嵌入式系统软件远程更新方法,其特征在于,所述主程序代码存储在所述非易失性存储器的第一空间地址中,所述从程序代码存在所述非易失性存储器的第二空间地址中,且所述第一空间地址的起始地址为所述非易失性存储器0x00地址,所述第二空间地址的起始地址为所述第一空间地址的终止地址后的第一个地址。
3.根据权利要求2所述嵌入式系统软件远程更新方法,其特征在于,所述第一空间地址及第二空间地址分别包括有多个block段。
4.根据权利要求1-3任一项所述嵌入式系统软件远程更新方法,其特征在于,重载所述更新程序文件的代码包时,所述非易失性存储器内的所述主程序由所述主处理器采用外部总线进行引导与加载,所述从程序通过所述主处理器与从处理器间的链路口引导与加载。
5.根据权利要求1所述嵌入式系统软件远程更新方法,其特征在于,所述信号处理机每接收到一个代码包后判断数据是否正确,然后发正确接收或错误接收回馈信息给所述监控中心,所述监控中心接收到正确接收回馈信息再发下一个新代码包;如所述监控中心未收到正确接收回馈信息或收到错误接收回馈信息,则在预设时间间隔后自动重发该错误接收回馈信息或未有正确接收回馈信息对应的代码包;如所述监控中心重发该代码包的重发次数超过预设代码包重发次数,则放弃本次更新;
所述信号处理机接收一个代码包并发送所述回馈信息后,在预设时间段后未收到代码包时自动重新发送回馈信息,如在预设回馈信息设重发次数内仍未收到代码包,则放弃此次软件烧写。
6.根据权利要求7所述嵌入式系统软件远程更新方法,其特征在于,所述信号处理机接收完全部的代码包后,核对所有代码包的信息、进行数据拼接、校验,确认无误后通知所述监控中心进入烧写模式;同时所述信号处理机按照非易失性存储器的读写指令,把RAM存储器中的数据从所述非易失性存储器的预设起始位置开始写入直到烧写完成;烧写完成后,将烧写成功的信息回馈给所述监控中心;所述监控中心获得烧写成功消息后,下发信号处理机重启指令,信号处理机重启,实现更新程序文件重新加载,完成程序更新。
7.根据权利要求8所述嵌入式系统软件远程更新方法,其特征在于,如果所述监控中心自所述信号处理机收到烧写失败的反馈消息,或者等待预设时间还没有收到烧写成功与否的反馈信息,则所述监控中心重新下发更新指令重新对所述信号处理机的处理器的软件进行更新,直至所述信号处理机的处理器软件更新成功。
8.根据权利要求1所述嵌入式系统软件远程更新方法,其特征在于,所述更新程序文件的代码包的每一个包的信息均包括有报头、报文长度、形成的代码包的总包数、本代码包的包号、本代码包包含的需要更新的编码数据和校验位信息;其中,所述报文长度包括所述报头,所述校验位信息包括奇偶校验位与CRC校验位。
9.根据权利要求8所述嵌入式系统软件远程更新方法,其特征在于,所述奇偶校验位为1个字节,所述CRC校验位为2个字节。
10.一种嵌入式系统软件远程更新系统,其特征在于,包括:
监控中心,用于按预设内部协议将更新程序文件代码按预设分包规则分包,形成多个代码包后,响应更新请求根据预设发送规则将所述代码包通过无线网络发送至信号处理机进行烧写,并在所述代码包烧写成功后下发重启指令给所述信号处理机重启;
所述信号处理机,用于接收到所述监控中心发送的所述更新程序文件的所有代码包并检测确认无误后,通过自身烧写功能将所述更新程序文件的代码包的主程序代码与从程序代码区分、位置分开写入非易失性存储器中,然后发送烧写成功回馈信息给所述监控中心;
所述信号处理机,还用于在更新程序烧写成功后,响应所述监控中心的重启指令信号重启后,通过处理器重载所述更新程序文件的代码包,利用所述主程序代码、从程序代码分别对主处理器和\或从处理器的对应程序进行更新。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510958423.9A CN105573794A (zh) | 2015-12-18 | 2015-12-18 | 一种嵌入式系统软件远程更新方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510958423.9A CN105573794A (zh) | 2015-12-18 | 2015-12-18 | 一种嵌入式系统软件远程更新方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105573794A true CN105573794A (zh) | 2016-05-11 |
Family
ID=55883967
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510958423.9A Pending CN105573794A (zh) | 2015-12-18 | 2015-12-18 | 一种嵌入式系统软件远程更新方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105573794A (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106095454A (zh) * | 2016-06-16 | 2016-11-09 | 北京经纬恒润科技有限公司 | 一种协处理器的软件更新方法、系统及主处理器 |
CN106569833A (zh) * | 2016-11-14 | 2017-04-19 | 积成电子股份有限公司 | 一种具有二级boot的dsp程序在线升级方法 |
CN106775588A (zh) * | 2016-11-30 | 2017-05-31 | 合肥科迈捷智能传感技术有限公司 | 一种基于主从处理器架构的固件升级方法 |
CN106951253A (zh) * | 2017-03-21 | 2017-07-14 | 广州慧睿思通信息科技有限公司 | 一种嵌入式固件在线升级方法 |
CN107844307A (zh) * | 2017-10-16 | 2018-03-27 | 歌尔科技有限公司 | 电子设备的系统更新方法及电子设备 |
CN107977214A (zh) * | 2017-12-18 | 2018-05-01 | 广东美的暖通设备有限公司 | 智能设备识别码的烧录方法、装置及计算机可读存储介质 |
CN109189429A (zh) * | 2018-09-11 | 2019-01-11 | 武汉正维电子技术有限公司 | 双核处理器amp模式下cpu0更新cpu1程序的方法 |
CN109783153A (zh) * | 2017-11-13 | 2019-05-21 | 深圳市创客工场科技有限公司 | 物理硬件控制方法、装置、电子设备及存储介质 |
CN109901117A (zh) * | 2019-03-13 | 2019-06-18 | 苏州理工雷科传感技术有限公司 | 一种雷达重启方法及装置 |
CN113377457A (zh) * | 2021-06-26 | 2021-09-10 | 西安电子工程研究所 | 一种信号处理分系统及数字信号处理dsp程序在线加载方法 |
CN113885922A (zh) * | 2021-11-12 | 2022-01-04 | 成都中科微信息技术研究院有限公司 | 一种leo通信系统软件版本更新重构方法 |
CN114025354A (zh) * | 2021-11-17 | 2022-02-08 | 圆藏(上海)科技有限公司 | 一种降低信息传输误码的通信方法、系统及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080052699A1 (en) * | 2006-08-02 | 2008-02-28 | Baker Steven T | Syncronized dual-processor firmware updates |
CN101694622A (zh) * | 2009-09-29 | 2010-04-14 | 中兴通讯股份有限公司 | 一种多设备组合装置的固件远程升级方法及系统 |
CN102722390A (zh) * | 2012-06-05 | 2012-10-10 | 上海联影医疗科技有限公司 | 多处理器共用flash的装置及固件程序加载与升级方法 |
TW201423594A (zh) * | 2012-12-12 | 2014-06-16 | Compal Broadband Networks Inc | 用於多處理器之韌體更新方法及系統 |
-
2015
- 2015-12-18 CN CN201510958423.9A patent/CN105573794A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080052699A1 (en) * | 2006-08-02 | 2008-02-28 | Baker Steven T | Syncronized dual-processor firmware updates |
CN101694622A (zh) * | 2009-09-29 | 2010-04-14 | 中兴通讯股份有限公司 | 一种多设备组合装置的固件远程升级方法及系统 |
CN102722390A (zh) * | 2012-06-05 | 2012-10-10 | 上海联影医疗科技有限公司 | 多处理器共用flash的装置及固件程序加载与升级方法 |
TW201423594A (zh) * | 2012-12-12 | 2014-06-16 | Compal Broadband Networks Inc | 用於多處理器之韌體更新方法及系統 |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106095454A (zh) * | 2016-06-16 | 2016-11-09 | 北京经纬恒润科技有限公司 | 一种协处理器的软件更新方法、系统及主处理器 |
CN106569833A (zh) * | 2016-11-14 | 2017-04-19 | 积成电子股份有限公司 | 一种具有二级boot的dsp程序在线升级方法 |
CN106569833B (zh) * | 2016-11-14 | 2020-04-10 | 积成电子股份有限公司 | 一种具有二级boot的dsp程序在线升级方法 |
CN106775588A (zh) * | 2016-11-30 | 2017-05-31 | 合肥科迈捷智能传感技术有限公司 | 一种基于主从处理器架构的固件升级方法 |
CN106951253A (zh) * | 2017-03-21 | 2017-07-14 | 广州慧睿思通信息科技有限公司 | 一种嵌入式固件在线升级方法 |
CN107844307A (zh) * | 2017-10-16 | 2018-03-27 | 歌尔科技有限公司 | 电子设备的系统更新方法及电子设备 |
CN109783153A (zh) * | 2017-11-13 | 2019-05-21 | 深圳市创客工场科技有限公司 | 物理硬件控制方法、装置、电子设备及存储介质 |
CN107977214B (zh) * | 2017-12-18 | 2021-07-27 | 广东美的暖通设备有限公司 | 智能设备识别码的烧录方法、装置及计算机可读存储介质 |
CN107977214A (zh) * | 2017-12-18 | 2018-05-01 | 广东美的暖通设备有限公司 | 智能设备识别码的烧录方法、装置及计算机可读存储介质 |
CN109189429A (zh) * | 2018-09-11 | 2019-01-11 | 武汉正维电子技术有限公司 | 双核处理器amp模式下cpu0更新cpu1程序的方法 |
CN109901117A (zh) * | 2019-03-13 | 2019-06-18 | 苏州理工雷科传感技术有限公司 | 一种雷达重启方法及装置 |
CN109901117B (zh) * | 2019-03-13 | 2022-05-27 | 苏州理工雷科传感技术有限公司 | 一种雷达重启方法及装置 |
CN113377457A (zh) * | 2021-06-26 | 2021-09-10 | 西安电子工程研究所 | 一种信号处理分系统及数字信号处理dsp程序在线加载方法 |
CN113885922A (zh) * | 2021-11-12 | 2022-01-04 | 成都中科微信息技术研究院有限公司 | 一种leo通信系统软件版本更新重构方法 |
CN113885922B (zh) * | 2021-11-12 | 2024-06-21 | 成都中科微信息技术研究院有限公司 | 一种leo通信系统软件版本更新重构方法 |
CN114025354A (zh) * | 2021-11-17 | 2022-02-08 | 圆藏(上海)科技有限公司 | 一种降低信息传输误码的通信方法、系统及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105573794A (zh) | 一种嵌入式系统软件远程更新方法及系统 | |
CN106569847B (zh) | 一种用于车载系统基于移动网络实现iap远程升级的方法 | |
CN106257417B (zh) | 引导程序升级方法、嵌入式设备、控制设备及嵌入式系统 | |
CN104090796A (zh) | 一种嵌入式设备程序更新方法和系统 | |
CN104102518B (zh) | 一种双cpu系统及其程序升级方法 | |
CN104899065A (zh) | 一种可批量软件在线恢复与软件在线升级的方法和系统 | |
CN105975308B (zh) | 家庭网关中低内存开销的远程升级系统及远程升级方法 | |
CN105426198A (zh) | 车载双控制芯片系统及其辅助控制芯片程序更新方法 | |
CN101330399A (zh) | 嵌入式设备的升级方法 | |
CN101594613A (zh) | 终端设备及其升级的方法、系统 | |
CN106874054B (zh) | 一种直放站内模块程序在线升级方法与系统 | |
CN106886438A (zh) | 基于fpga的系统远程更新方法 | |
CN104750515A (zh) | 固件版本升级的方法及系统 | |
CN110187909B (zh) | 一种基于安卓系统的单片机固件升级方法 | |
CN111142914B (zh) | 一种基于zynq固件升级的方法及计算机可读存储介质 | |
CN108037931B (zh) | 一种对微处理器存储单元进行文件烧写的方法 | |
CN110413487A (zh) | 一种服务器的指示灯管理方法、系统及基板管理控制器 | |
CN115794148A (zh) | 一种智能锁固件升级方法、装置及智能锁固件升级系统 | |
CN107332589B (zh) | 一种基于蓝牙的固件升级装置 | |
CN109634643B (zh) | 人防指挥所的三防自动化设备固件升级系统 | |
CN111522571A (zh) | 设备升级方法、装置、终端设备及存储介质 | |
CN116755749A (zh) | 板载mcu的升级方法、板载mcu、板卡及信息处理系统 | |
CN103631611A (zh) | 对光端机进行升级的方法及该设备 | |
CN105704707A (zh) | 从设备及其空中升级的方法 | |
CN212181459U (zh) | Fpga升级系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20160511 |