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

文档序号:9910765阅读:来源:国知局
数据包后都要等待对方的应答,如果接收到失败的应答则重新发送当前的数据包,否则继续发送下一个数据包,直到所有有效的升级数据发送完成为止。如果同一个升级文件数据包连续10次发送失败,则表示升级失败。
[0075]等待对方的成功应答,可以确保本次数据传输无误。
[0076]步骤[206],发送重启指令。在合适的时间发送重启指令给嵌入式计算机,以便完成升级。
[0077]重启指令的发送时间完全由用户而定,用户可以选择一个相对不怎么影响系统运行的时间来重启。
[0078]步骤[207],结束升级。
[0079]通信介质:
[0080]通信介质是连接在线升级服务器与嵌入式计算机的物理介质,用来传输两者之间的通信数据,可是是有线或者无线的形式,通信介质的物理形式不影响在线升级的效果。[0081 ]嵌入式计算机:
[0082]嵌入式计算机是需要升级的设备,结构上包括主控制器、程序存储器。主控制器接收升级文件并写入程序存储器,在接收到重启指令后重启整个嵌入式计算机。程序存储器用来存储升级文件,嵌入式计算机正常运行时主控制器将会读取程序存储器中升级文件中的用户程序来运行。
[0083]嵌入式计算机程序存储器的分区结构参见附图3。
[0084]分区(301),启动区。启动区存储嵌入式计算机的启动程序,为只读分区。上电后主控制器从启动区读出启动程序并运行,用来启动整个嵌入式计算机。
[0085]启动区为只读分区,可以避免因程序存储器多次擦除而导致的存储器损坏。
[0086]分区(302),配置区。配置区存储分区的激活信息,为可读写分区。在嵌入式计算机启动的最后阶段,启动程序会读取配置区中的分区激活信息,然后转跳到激活的分区,执行激活分区中的用户程序。
[0087]分区(303),恢复区。恢复区存储预设的用户程序,为只读分区。在正常情况下恢复区未激活,只有在升级失败时才会激活该分区。在升级失败时,嵌入式计算机启动后会进入该分区,执行该分区中预设的用户程序。预设的用户程序具备完整的升级文件接收和写入的功能,确保在升级失败时,嵌入式计算机仍然具备在线升级的功能。预设的用户程序还具备硬件维护的功能,可以方便用户检测硬件单元的故障。
[0088]恢复区为只读分区,可以避免因程序存储器多次擦除而导致的存储器损坏。即使用户分区(用户一区和用户二区)因多次的擦除和写入发生损坏,也能确保在下次重启后,嵌入式计算机仍然能够进入恢复区,正常地与用户进行通信,用来检测或排除故障。
[0089]分区(304),用户一区,为可读写分区。用户一区存储正常使用的用户程序,即从在线升级服务器接收到的升级文件数据。
[0090]分区(305),用户二区,为可读写分区。与用户一区一样,用来存储正常使用的用户程序。在正常情况下,启动程序会转跳到两个用户分区中的一个来运行其中存储的用户程序。
[0091]嵌入式计算机的升级步骤参见附图4。
[0092]步骤[401],开始升级。接收到获取软件版本号的指令后,嵌入式计算机将正在运行软件的版本号返回给在线升级服务器,表示升级开始。
[0093]步骤[402],接收升级文件。按顺序从在线升级服务器接收升级文件数据包,成功拆包后写入程序存储器中未激活的用户分区(用户一区或用户二区),最后校验本次写入的数据。如果校验无误,则发送成功的应答给在线升级服务器,否则发送失败的应答。如果同一个升级文件数据包连续10次校验错误,则表示升级失败,之后将修改配置区中的分区激活信息,激活恢复区,否则,嵌入式计算机将会循环接收升级文件,直到所有的升级文件数据包接收完成为止,之后将修改配置区中的分区激活信息,激活另一个用户分区。
[0094]校验升级文件数据包中的数据,可以确保写入嵌入式计算机程序存储器中的升级数据与在线升级服务器从升级文件中读取的数据完全一样。
[0095]用户一区和用户二区这两个用户分区形成乒乓结构,可以确保在在线升级过程中,用户程序的运行不受影响,即两者可以同时进行。
[0096]步骤[403],重启嵌入式计算机。等待在线升级服务器的重启指令,接收到后立即重启。
[0097]步骤[404],结束升级。
[0098]嵌入式计算机的启动步骤参见附图5。
[0099]步骤[501],上电开始启动。
[0100]步骤[502],运行启动区程序。
[0101]步骤[503],读取配置区分区激活信息。如果上次升级失败,配置区中记录的激活信息为恢复区;如果上次升级成功,配置区中记录的激活信息为用户分区之一。
[0102]步骤[504],转跳到激活的分区,并运行分区中的用户程序。
[0103]步骤[505],启动完成。
[0104]在线升级服务器[101]、通信介质[102]、嵌入式计算机[103]这三者通过在线升级协议的有机结合,使得LED显示屏控制器所用的嵌入式计算机在软件升级方面变得更加可靠和易用。
【主权项】
1.一种通用的嵌入式计算机软件在线升级方法,其特征在于,采用在线升级服务器对嵌入式计算机软件升级,在线升级服务器的升级步骤包括: 步骤[201],开始升级; 步骤[202],读取升级文件头, 该文件头为升级文件的前若干个字节,包括前半部分字节和后半部分字节, 前半部分字节为文件头的后半部分字节以及升级文件除文件头之外的所有数据的校验和,后半部分字节为升级文件的版本号; 步骤[203],校验升级文件,SP, 计算文件头的后半部分字节以及升级文件除文件头之外的所有数据的校验和,然后与文件头前半部分字节的数据进行比较,如果相同则说明升级文件数据无误,否则说明升级文件数据错误; 步骤[204],比较版本号,SP, 发送获取软件版本号的指令给嵌入式计算机以获得嵌入式计算机中正在运行软件的版本号,然后与文件头后半部分字节的数据进行比较,如果升级文件的版本号大于正在运行软件的版本号则说明升级文件版本号无误,否则说明升级文件版本号错误; 步骤[205],发送升级文件,SP, 把升级文件中除了文件头之外的所有数据(即升级文件中的有效升级数据)拆为若干个数据块,按照升级通信协议打包,形成升级文件数据包后按顺序发送给嵌入式计算机, 每发送一个升级文件数据包后都要等待对方的应答,如果接收到失败的应答则重新发送当前的数据包,否则继续发送下一个数据包,直到所有有效的升级数据发送完成为止,如果同一个升级文件数据包连续多次发送失败,则表示升级失败; 步骤[206],发送重启指令, 在合适的时间发送重启指令给嵌入式计算机,以便完成升级,重启指令的发送时间完全由用户而定; 步骤[207],结束升级。2.如权利要求1所述的通用的嵌入式计算机软件在线升级方法,其特征在于,所述嵌入式计算机具有程序存储器,程序存储器具有多个分区,包括: 启动区,用于存储嵌入式计算机的启动程序,为只读分区, 上电后,嵌入式计算机的主控制器从启动区读出启动程序并运行,用来启动整个嵌入式计算机; 配置区,用于存储分区的激活信息,为可读写分区, 在嵌入式计算机启动的最后阶段,启动程序会读取配置区中的分区激活信息,然后转跳到激活的分区,执行激活分区中的用户程序; 恢复区,用于存储预设的用户程序,为只读分区, 在正常情况下恢复区未激活,只有在升级失败时才会激活该分区,在升级失败时,嵌入式计算机启动后会进入该分区,执行该分区中预设的用户程序, 预设的用户程序具备完整的升级文件接收和写入的功能,确保在升级失败时,嵌入式计算机仍然具备在线升级的功能, 预设的用户程序还具备硬件维护的功能,可以方便用户检测硬件单元的故障; 用户一区,为可读写分区, 用户一区存储正常使用的用户程序,即从在线升级服务器接收到的升级文件数据; 用户二区,为可读写分区, 与用户一区一样,用来存储正常使用的用户程序,在正常情况下,启动程序会转跳到两个用户分区中的一个来运行其中存储的用户程序。3.如权利要求2所述的通用的嵌入式计算机软件在线升级方法,其特征在于,嵌入式计算机的升级步骤包括: 步骤[401],开始升级, 接收到获取软件版本号的指令后,嵌入式计算机将正在运行软件的版本号返回给在线升级服务器,表示升级开始; 步骤[402],接收升级文件, 按顺序从在线升级服务器接收升级文件数据包,成功拆包后写入程序存储器中未激活的用户分区(用户一区或用户二区),最后校验本次写入的数据, 如果校验无误,则发送成功的应答给在线升级服务器,否则发送失败的应答, 如果同一个升级文件数据包连续多次校验错误,则表示升级失败,之后将修改配置区中的分区激活信息,激活恢复区,否则,嵌入式计算机将会循环接收升级文件,直到所有的升级文件数据包接收完成为止,之后将修改配置区中的分区激活信息,激活另一个用户分区; 步骤[403 ],重启嵌入式计算机, 等待在线升级服务器的重启指令,接收到后立即重启; 步骤[404],结束升级。4.如权利要求2所述的通用的嵌入式计算机软件在线升级方法,其特征在于,嵌入式计算机的启动步骤包括: 步骤[501],上电开始启动; 步骤[502],运行启动区程序; 步骤[503],读取配置区分区激活信息, 如果上次升级失败,配置区中记录的激活信息为恢复区;如果上次升级成功,配置区中记录的激活信息为用户分区之一; 步骤[504],转跳到激活的分区,并运行分区中的用户程序; 步骤[505],启动完成。5.如权利要求1所述的通用的嵌入式计算机软件在线升级方法,其特征在于,所述的嵌入式计算机是作为LED显示屏控制器使用。6.如权利要求1所述的通用的嵌入式计算机软件在线升级方法,其特征在于,所述的嵌入式计算机基于单片机、ARM、MIPS或PowerPC平台。
【专利摘要】本发明公开了一种通用的嵌入式计算机软件在线升级方法,采用在线升级服务器对嵌入式计算机软件升级,在线升级服务器的升级步骤包括:开始升级,读取升级文件头,校验升级文件,比较版本号,发送升级文件,发送重启指令,结束升级。
【IPC分类】G06F9/445, G06F9/44
【公开号】CN105677398
【申请号】CN201511027217
【发明人】贾鑫, 金星
【申请人】中海网络科技股份有限公司
【公开日】2016年6月15日
【申请日】2015年12月31日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1