一种通用的嵌入式计算机软件在线升级方法技术

技术编号:14984979 阅读:100 留言:0更新日期:2017-04-03 16:41
本发明专利技术公开了一种通用的嵌入式计算机软件在线升级方法,采用在线升级服务器对嵌入式计算机软件升级,在线升级服务器的升级步骤包括:开始升级,读取升级文件头,校验升级文件,比较版本号,发送升级文件,发送重启指令,结束升级。

【技术实现步骤摘要】

本专利技术属于嵌入式设备
,特别涉及一种通用的嵌入式计算机软件在线升级方法
技术介绍
传统的嵌入式计算机,由于硬件资源的限制(比如,程序存储器容量小,运算速度慢,无外部通信接口或外部通信接口速度慢),在生产阶段就把用户程序固化到程序存储器中,出厂后用户程序是无法随意更改的。如果在运行中程序出现问题,或者功能需要改进,那就只能返厂维修,或者现场拆机更换硬件板卡。随着科技的不断发展,嵌入式计算机中的硬件资源也越来越充裕,这就为嵌入式计算机实现更多功能提供了硬件保障。为了方便厂家对系统的维护、满足用户多变的需求,以及延长系统的生命周期等,嵌入式计算机应当具备在线升级的能力。目前,在LED显示屏控制器所用的嵌入式计算机中普遍使用的升级方法是,直接把升级文件中的新版用户程序写入程序存储器中,覆盖掉之前的旧版用户程序,然后重启系统,直接使用程序存储器中的新版用户程序。这种升级方法将会导致以下问题:1.在线升级时,待升级的嵌入式计算机无法运行用户程序,因此,嵌入式计算机将会失去响应。2.升级完成后,必须重启待升级的嵌入式计算机,这将会影响整个嵌入式系统的正常运行。3.在线升级时,如果升级数据发生错误(比如,升级文件接收错误,升级文件写入错误),这将会导致用户分区的用户程序错误。4.在线升级时,如果嵌入式计算机硬件发生故障(比如,系统掉电,程序存储器损坏),这也会导致用户分区的用户程序错误(引导区和恢复区只读不写)。5.在线升级时,如果升级文件选择错误,这同样会导致用户分区的用户程序错误,最终将会导致重启后用户程序无法正常运行。
技术实现思路
本专利技术的目的在于克服现有升级方法的不足,提供一种可靠的、不影响系统运行的嵌入式计算机软件在线升级方法。本专利技术的技术方案是,一种通用的嵌入式计算机软件在线升级方法,采用在线升级服务器对嵌入式计算机软件升级,在线升级服务器的升级步骤包括:步骤[201],开始升级;步骤[202],读取升级文件头,该文件头为升级文件的前若干个字节,包括前半部分字节和后半部分字节,前半部分字节为文件头的后半部分字节以及升级文件除文件头之外的所有数据的校验和,后半部分字节为升级文件的版本号;步骤[203],校验升级文件,即,计算文件头的后半部分字节以及升级文件除文件头之外的所有数据的校验和,然后与文件头前半部分字节的数据进行比较,如果相同则说明升级文件数据无误,否则说明升级文件数据错误;步骤[204],比较版本号,即,发送获取软件版本号的指令给嵌入式计算机以获得嵌入式计算机中正在运行软件的版本号,然后与文件头后半部分字节的数据进行比较,如果升级文件的版本号大于正在运行软件的版本号则说明升级文件版本号无误,否则说明升级文件版本号错误;步骤[205],发送升级文件,即,把升级文件中除了文件头之外的所有数据(即升级文件中的有效升级数据)拆为若干个数据块,按照升级通信协议打包,形成升级文件数据包后按顺序发送给嵌入式计算机,每发送一个升级文件数据包后都要等待对方的应答,如果接收到失败的应答则重新发送当前的数据包,否则继续发送下一个数据包,直到所有有效的升级数据发送完成为止,如果同一个升级文件数据包连续多次发送失败,则表示升级失败;步骤[206],发送重启指令,在合适的时间发送重启指令给嵌入式计算机,以便完成升级,重启指令的发送时间完全由用户而定;步骤[207],结束升级。进一步的,所述嵌入式计算机具有程序存储器,程序存储器具有多个分区,包括:启动区,用于存储嵌入式计算机的启动程序,为只读分区,上电后,嵌入式计算机的主控制器从启动区读出启动程序并运行,用来启动整个嵌入式计算机;配置区,用于存储分区的激活信息,为可读写分区,在嵌入式计算机启动的最后阶段,启动程序会读取配置区中的分区激活信息,然后转跳到激活的分区,执行激活分区中的用户程序;恢复区,用于存储预设的用户程序,为只读分区,在正常情况下恢复区未激活,只有在升级失败时才会激活该分区,在升级失败时,嵌入式计算机启动后会进入该分区,执行该分区中预设的用户程序,预设的用户程序具备完整的升级文件接收和写入的功能,确保在升级失败时,嵌入式计算机仍然具备在线升级的功能,预设的用户程序还具备硬件维护的功能,可以方便用户检测硬件单元的故障;用户一区,为可读写分区,用户一区存储正常使用的用户程序,即从在线升级服务器接收到的升级文件数据;用户二区,为可读写分区,与用户一区一样,用来存储正常使用的用户程序,在正常情况下,启动程序会转跳到两个用户分区中的一个来运行其中存储的用户程序。进一步的,嵌入式计算机的升级步骤包括:步骤[401],开始升级,接收到获取软件版本号的指令后,嵌入式计算机将正在运行软件的版本号返回给在线升级服务器,表示升级开始;步骤[402],接收升级文件,按顺序从在线升级服务器接收升级文件数据包,成功拆包后写入程序存储器中未激活的用户分区(用户一区或用户二区),最后校验本次写入的数据,如果校验无误,则发送成功的应答给在线升级服务器,否则发送失败的应答,如果同一个升级文件数据包连续多次校验错误,则表示升级失败,之后将修改配置区中的分区激活信息,激活恢复区,否则,嵌入式计算机将会循环接收升级文件,直到所有的升级文件数据包接收完成为止,之后将修改配置区中的分区激活信息,激活另一个用户分区;步骤[403],重启嵌入式计算机,等待在线升级服务器的重启指令,接收到后立即重启;步骤[404],结束升级。进一步的,嵌入式计算机的启动步骤包括:步骤[501],上电开始启动;步骤[502],运行启动区程序;步骤[503],读取配置区分区激活信息,如果上次升级失败,配置区中记录的激活信息为恢复区;如果上次升级成功,配置区中记录的激活信息为用户分区之一;步骤[504],转跳到激活的分区,并运行分区中的用户程序;步骤[505],启动完成。进一步的,所述的嵌入式计算机是作为LED显示屏控制器使用。进一步的,所述的嵌入式计算机基于单片机、ARM、MIPS或PowerPC平台。本专利技术的有益效果是:在线升级时,待升级的嵌入式计算机内用户程序的运行不受影响;升级完成后,不必立即重启待升级的嵌入式计算机,重启时间完全由用户来确定,可以在本文档来自技高网
...

【技术保护点】
一种通用的嵌入式计算机软件在线升级方法,其特征在于,采用在线升级服务器对嵌入式计算机软件升级,在线升级服务器的升级步骤包括:步骤[201],开始升级;步骤[202],读取升级文件头,该文件头为升级文件的前若干个字节,包括前半部分字节和后半部分字节,前半部分字节为文件头的后半部分字节以及升级文件除文件头之外的所有数据的校验和,后半部分字节为升级文件的版本号;步骤[203],校验升级文件,即,计算文件头的后半部分字节以及升级文件除文件头之外的所有数据的校验和,然后与文件头前半部分字节的数据进行比较,如果相同则说明升级文件数据无误,否则说明升级文件数据错误;步骤[204],比较版本号,即,发送获取软件版本号的指令给嵌入式计算机以获得嵌入式计算机中正在运行软件的版本号,然后与文件头后半部分字节的数据进行比较,如果升级文件的版本号大于正在运行软件的版本号则说明升级文件版本号无误,否则说明升级文件版本号错误;步骤[205],发送升级文件,即,把升级文件中除了文件头之外的所有数据(即升级文件中的有效升级数据)拆为若干个数据块,按照升级通信协议打包,形成升级文件数据包后按顺序发送给嵌入式计算机,每发送一个升级文件数据包后都要等待对方的应答,如果接收到失败的应答则重新发送当前的数据包,否则继续发送下一个数据包,直到所有有效的升级数据发送完成为止,如果同一个升级文件数据包连续多次发送失败,则表示升级失败;步骤[206],发送重启指令,在合适的时间发送重启指令给嵌入式计算机,以便完成升级,重启指令的发送时间完全由用户而定;步骤[207],结束升级。...

【技术特征摘要】
1.一种通用的嵌入式计算机软件在线升级方法,其特征在于,采用在线升级服
务器对嵌入式计算机软件升级,在线升级服务器的升级步骤包括:
步骤[201],开始升级;
步骤[202],读取升级文件头,
该文件头为升级文件的前若干个字节,包括前半部分字节和后半部分字节,
前半部分字节为文件头的后半部分字节以及升级文件除文件头之外的所有
数据的校验和,后半部分字节为升级文件的版本号;
步骤[203],校验升级文件,即,
计算文件头的后半部分字节以及升级文件除文件头之外的所有数据的校验
和,然后与文件头前半部分字节的数据进行比较,如果相同则说明升级文件数
据无误,否则说明升级文件数据错误;
步骤[204],比较版本号,即,
发送获取软件版本号的指令给嵌入式计算机以获得嵌入式计算机中正在运
行软件的版本号,然后与文件头后半部分字节的数据进行比较,如果升级文件
的版本号大于正在运行软件的版本号则说明升级文件版本号无误,否则说明升
级文件版本号错误;
步骤[205],发送升级文件,即,
把升级文件中除了文件头之外的所有数据(即升级文件中的有效升级数据)
拆为若干个数据块,按照升级通信协议打包,形成升级文件数据包后按顺序发
送给嵌入式计算机,
每发送一个升级文件数据包后都要等待对方的应答,如果接收到失败的应
答则重新发送当前的数据包,否则继续发送下一个数据包,直到所有有效的升
级数据发送完成为止,
如果同一个升级文件数据包连续多次发送失败,则表示升级失败;
步骤[206],发送重启指令,
在合适的时间发送重启指令给嵌入式计算机,以便完成升级,重启指令的
发送时间完全由用户而定;
步骤[207],结束升级。
2.如权利要求1所述的通用的嵌入式计算机软件在线升级方法,其特征在于,

\t所述嵌入式计算机具有程序存储器,程序存储器具有多个分区,包括:
启动区,用于存储嵌入式计算机的启动程序,为只读分区,
上电后,嵌入式计算机的主控制器从启动区读出启动程序并运行,用来启
动整个嵌入式计算机;
配置区,用于存储分区的激活信息,为可读写分区,
在嵌入式计算机启动的最后阶段,启动程序会读取配置区中的分区激活信
息,然后转跳到激活的分区,执行激活分区中的用户程序;
恢复区,用于存储预设的用户程序,为只读分区,
在正常情况下恢复区未激活,只有在升级失败时才会激活该分区,在升级
失败时,嵌入式计算机启动后会...

【专利技术属性】
技术研发人员:贾鑫金星
申请(专利权)人:中海网络科技股份有限公司
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1