一种固件升级方法及升级装置制造方法及图纸

技术编号:24035052 阅读:28 留言:0更新日期:2020-05-07 01:40
本发明专利技术涉及自动控制工程领域,提供了一种固件升级方法、升级装置及boot程序,所述方法包括:S1、上位机将准备好的hex文件解析为多个长度固定的二进制数据包;S2、在所述上位机和待升级固件之间建立通信通道;S3、所述上位机通过所述通信通道向所述待升级固件发送指令,使其进入指定的boot程序;S4、所述上位机向所述待升级固件发送所述二进制数据包;S5、所述待升级固件接受并校验所述二进制数据包;如校验成功,则刷新用户程序,如校验不成功,则不刷新;S6、结束固件升级过程,所述待升级固件跳转到用户程序入口执行所述用户程序。本发明专利技术能够快速、便捷的对固件进行升级,配合远程服务器,还能实现远程升级。

A firmware upgrade method and device

【技术实现步骤摘要】
一种固件升级方法及升级装置
本专利技术涉及自动控制工程领域,尤其涉及一种固件升级方法升级装置。
技术介绍
在工程机械的控制中,由于DSP芯片良好的可编程性能,经常采用DSP芯片作为核心处理器。现有的DSP芯片具有如下两种烧写方式:仿真器烧写和串口烧写。通过仿真器烧写需要将仿真器的接口与DSP的JTAG口相连,然后将仿真器与装有烧写软件和调试器驱动的电脑相连接。然而此种方式的连接过程比较缓慢,而且,当DSP芯片安装于狭小空间内时,JTAG口可能无法引出,造成不能烧写的状况。通过串口烧写则需要在系统上电前手动将DSP芯片的BOOT引脚接地,从而使DSP芯片能够进入内部固化的引导程序,然后采用专用软件将hex文件下载至DSP中。在此过程中,需要多次重启系统,且当DSP芯片安装在设备内部时,烧写的操作极为不便。因此,上述的两种烧写方式都不能满足目前用户对烧写/升级固件程序的便利性要求。随着电子技术的发展和用户需求的提升,对已投入使用的DSP芯片的升级维护也越来越频繁,需要一种便利的、能不需要打开设备机箱即可对DSP芯片进行固件升级的技术。
技术实现思路
本专利技术的目的在于提供一种固件升级方法,包括如下步骤:S1、上位机将准备好的hex文件解析为多个长度固定的二进制数据包;S2、在所述上位机和待升级固件之间建立通信通道;S3、所述上位机通过所述通信通道向所述待升级固件发送指令,使其进入指定的boot程序;S4、所述上位机向所述待升级固件发送所述二进制数据包;S5、所述待升级固件接受并校验所述二进制数据包;如校验成功,则刷新用户程序,如校验不成功,则不刷新;S6、结束固件升级过程,所述待升级固件跳转到用户程序入口执行所述用户程序。上述的固件升级方法中,在所述二进制数据包中嵌入目的地址,所述目的地址为所述二进制数据包将写入的地址。上述的固件升级方法中,对所述二进制数据包加密。上述的固件升级方法中,通过调用动态链接库的方式对所述二进制数据包进行加密。上述的固件升级方法中,所述二进制数据包的长度固定为:256Byte、512Byte或1000Byte。上述的固件升级方法中,所述上位机通过远程服务器与所述待升级固件的实现远程连接,进行远程升级。上述的固件升级方法中,步骤S3中,所述指定的boot程序为支持至少一种通信协议的boot程序。上述的固件升级方法中,步骤S4中,所述上位机先向所述待升级固件发送握手数据,握手成功后才下发加密的二进制数据包,否则直接结束烧写操作。上述的固件升级方法中,当一包所述二进制数据包发送失败,则重新发送该二进制数据包。上述的固件升级方法中,步骤S4具体包括:S41、所述上位机发送握手请求给所述待升级固件;S42、所述待升级固件收到所述请求后回送一个种子给所述上位机;S43、所述上位机将所述种子加密后发回给所述待升级固件;S44、所述待升级固件验证加密后的种子,如通过则握手成功,否则直接结束烧写操作。本专利技术还提供了一种固件升级装置,包括上位机和待升级固件,所述上位机与所述待升级固件通过通信总线连接;所述上位机将准备好的hex文件解析为多个长度固定的二进制数据包发送给所述待升级固件;所述待升级固件中的boot程序为可通过CAN通信触发的boot程序,所述上位机通过所述CAN总线发送约定指令,使所述待升级固件进入指定的boot程序;所述待升级固件接受并校验所述二进制数据包成功后,跳转到用户程序入口,结束固件升级过程。上述的固件升级装置中,还包括一远程服务器,所述上位机通过所述远程服务器与待升级固件的CAN总线通信,进而实现远程烧写操作。本专利技术还提供了一种boot程序,初始化包括通信模块的硬件设备后,检查是否存在用户程序,如是,则执行该用户程序,如否,则进入烧写固件的过程;所述执行该用户程序中包括:当所述用户程序收到升级固件的指令时,进入烧写固件的过程。上述的boot程序中,所述烧写固件的过程包括:B1、握手,反复不成功则执行B5,成功则执行B2;B2、接收多个定长的二进制数据包并校验,B3、校验成功则将所述二进制数据包写入用户程序区,并执行B5;B4、数据长时间未接收完或校验出错,则执行B5;B5、执行用户程序。与现有技术相比,本专利技术的技术方案通过一直在线的CAN总线对DSP芯片进行烧写/升级,大大简化了这一类型芯片的烧写/升级过程,解决了在密闭、狭小的空间中传统的烧写方式无法展开的缺陷。同时,通过远程服务器本专利技术还能够实现远程升级,使设备的升级不受距离限制,有利于节省人力和时间,极大的提高了设备的升级效率。另外,本专利技术中,烧写程序的解析和下发通过调用一dll动态链接库实现,所述动态库与BOOT程序之间加解密算法统一。动态库解析程序文件后将得到的程序数据和地址信息一同下发给BOOT程序,BOOT程序按地址将数据烧录到芯片内部FLASH中,有效降低了程序烧写的复杂度。当在其他型号的DSP芯片上使用时,动态库文件不需改动,BOOT程序只需修改应用程序烧写和跳转的起始位置,就可以兼容使用,因此具备同类型DSP芯片下较好的移植性。附图说明图1是本专利技术一实施例的结构框图;图2是本专利技术一实施例的操作界面图;图3是本专利技术一实施例的流程图。具体实施方式为使本专利技术的目的、特征更明显易懂,下面结合附图对本专利技术的具体实施方式作进一步的说明。然而,本专利技术可以用不同的形式实现,不应只是局限在所述的实施例。且,在不冲突的情况下,本申请中的实施例及实施例中的特征允许相互组合或替换。结合以下的说明,本专利技术的优点和特征将更清楚。需说明的是,附图均采用非常简化的形式且均使用非精准的比例,仅用以方便、明晰地辅助说明本专利技术实施例的目的。还需声明的是,本专利技术中对步骤编号的目的在于便于引用,而非限定先后顺序。对于个别需强调顺序的步骤,文中将以专门文字进行特别说明。以比较常见的DSP芯片TMS320F28335为例,对本专利技术做进一步的说明。本专利技术的方案构想是:在印制板上固定选择DSP芯片TMS320F28335的boot模式为F,即GPIO87-GPIO84四个管脚固定为高电平“1”,使得芯片上电后即运行FLASH中的boot程序。而该boot程序经过专利技术人的修改,可通过CAN总线接收新的用户程序,进而烧写到用户程序段(其物理地址也在FLASH中)中,实现通过CAN总线烧写/升级用户程序的目的。该方案的有益之处在于,烧写/升级用户程序时不需要打开机箱对DSP芯片进行管脚设置,烧写/升级后也不需要重新启动DSP芯片,只需在当前的系统连接下,直接进行boot程序引导即可,烧写/升级后也不需要重新启动DSP芯片,因为修改后的boot程序在最后会自动跳转到用户程序的入口,即能直接进入用户程序,本文档来自技高网...

【技术保护点】
1.一种固件升级方法,其特征在于,包括如下步骤:/nS1、上位机将准备好的hex文件解析为多个长度固定的二进制数据包;/nS2、在所述上位机和待升级固件之间建立通信通道;/nS3、所述上位机通过所述通信通道向所述待升级固件发送指令,使其进入指定的boot程序;/nS4、所述上位机向所述待升级固件发送所述二进制数据包;/nS5、所述待升级固件接受并校验所述二进制数据包;如校验成功,则刷新用户程序,如校验不成功,则不刷新;/nS6、结束固件升级过程,所述待升级固件跳转到用户程序入口执行所述用户程序。/n

【技术特征摘要】
1.一种固件升级方法,其特征在于,包括如下步骤:
S1、上位机将准备好的hex文件解析为多个长度固定的二进制数据包;
S2、在所述上位机和待升级固件之间建立通信通道;
S3、所述上位机通过所述通信通道向所述待升级固件发送指令,使其进入指定的boot程序;
S4、所述上位机向所述待升级固件发送所述二进制数据包;
S5、所述待升级固件接受并校验所述二进制数据包;如校验成功,则刷新用户程序,如校验不成功,则不刷新;
S6、结束固件升级过程,所述待升级固件跳转到用户程序入口执行所述用户程序。


2.如权利要求1所述的固件升级方法,其特征在于,在所述二进制数据包中嵌入目的地址,所述目的地址为所述二进制数据包将写入的地址。


3.如权利要求1所述的固件升级方法,其特征在于,对所述二进制数据包加密。


4.如权利要求3所述的固件升级方法,其特征在于,通过调用动态链接库的方式对所述二进制数据包进行加密。


5.如权利要求1所述的固件升级方法,其特征在于,所述二进制数据包的长度固定为:256Byte、512Byte或1000Byte。


6.如权利要求1所述的固件升级方法,其特征在于,所述上位机通过远程服务器与所述待升级固件的实现远程连接,进行远程升级。


7.如权利要求1所述的固件升级方法,其特征在于,步骤S3中,所述指定的boot程序为支持至少一种通信协议的boot程序。


8.如权利要求1所述的固件升级方法,其特征在于,步骤S4中,所述上位机先向所述待升级固件发送握手数据,握手成功后才下发加密的二进制数据包,否则直接结束烧写操作。


9.如权利要求8所述的固件升级方法,其特征在于,当一包所述二进制数据包发送失败,则重新发送该二进制数据包。

【专利技术属性】
技术研发人员:刘涛张善睿张琳李小鹏孙强强
申请(专利权)人:北谷电子有限公司上海分公司北谷电子有限公司
类型:发明
国别省市:上海;31

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

1