基于总线的多节点设备嵌入式程序升级方法技术

技术编号:25947267 阅读:34 留言:0更新日期:2020-10-17 03:39
本发明专利技术涉及一种基于总线的多节点设备嵌入式程序升级方法,包括用于多节点设备的单片机,所述单片机的Flash存储空间划分为Bootloader区、主程序区和校验区三个区域;启动时会通过校验区数据检查主程序区代码是否完整,若完整则跳转到主程序区运行主程序,若不完整则等待程序更新,直到主程序区文件完整后再跳转到主程序区运行主程序。本发明专利技术实现了对多个从机设备的批量更新升级,节省了大量的时间和人力成本;升级时,若一次不成功可再次重复更新,并且采用具体寄存器地址覆盖的方式,大大解决了通讯不良导致无法升级的影响,提高了升级成功率;Flash中的主程序区只需要开辟一个主程序大小的空间,对Flash的内存要求低,大大减少了成本。

【技术实现步骤摘要】
基于总线的多节点设备嵌入式程序升级方法
本专利技术涉及基于嵌入式系统的电子产品
,尤其是一种基于总线的多节点设备嵌入式程序升级方法。
技术介绍
在通讯类电子模块开发完成后,随着市场需求的变化,后续可能会对其进行软件功能上的升级。但此时产品已进行现场安装,如果进行传统的拆卸升级,那么必须面临数量多、耗时长、安装位置或方式不易于拆卸、重新拆壳导致的意外损坏、升级成本巨大等一系列问题。因此有必要实现单片机程序的远程升级,并且需要实现批量升级。目前,在对单片机设备进行升级时,多由一个主机对从机设备进行单个远程升级,升级时采用有线或无线的方式进行通讯,将新的程序代码写入到从机设备的Flash中。从机设备的单片机的Flash划分为三个区域,分别为Bootloader区、主程序区和校验区,具体如下:Bootloader区:用于存放Bootloader代码,该段程序主要用于接收待升级程序,设备通过通讯接口将程序接收后写入Flash内部的主程序区,然后对比校验区,校验通过则跳转到主程序进行运行。主程序区:该区域划分为至少两个分区,分别用于存放不同版本的程序校验区:用于存放更新标志和校验参数,通过检测更新标志来执行不同分区的主程序。上述升级方案存在以下缺点:1、无法批量广播升级,在产品数量较多的情况下,重复的升级带来巨大的时间成本。2、对升级环境要求较高,若整个升级过程存在一次以上丢帧情况,则无法升级成功。3、因为要划分2程序存储空间,对单片机的Flash内存要求较高,这将带来更大成本增加。
技术实现思路
本专利技术要解决的技术问题是:提供一种基于总线的多节点设备嵌入式程序升级方法,以解决现有技术对单片机本身内存要求过高,升级环境要求较高且无法实现批量广播升级的问题。本专利技术解决其技术问题所采用的技术方案是:一种基于总线的多节点设备嵌入式程序升级方法,包括用于多节点设备的单片机,所述单片机的Flash存储空间划分为Bootloader区、主程序区和校验区三个区域;所述的主程序区用于存放主程序代码;所述的校验区用于存放校验数据,包含主程序长度、主程序CRC、设备类型以及软件版本号;所述的Bootloader区用于存放Bootloader程序,在出厂的时候直接烧录进去,该Bootloader程序用于引导程序的启动和更新。方法步骤如下:启动时首先启动Bootloader程序,Bootloader程序利对用校验区的数据,去比对主程序的完整性,若完全正确则跳转到主程序区运行,否则就停留在Bootloader程序中,等待程序更新。等待程序更新时,远程主机可将新的主程序文件通过通讯接口进行下发,Bootloader接收到合格的数据,并且写入到主程序区。在程序更新过程中,Bootloader会不停的对比主程序区和校验区的校验数据是否完整,一但校验完整则跳转到主程序区运行,如附图2。在主程序正常运行过程中,接收到升级指令后,升级指令向校验区写入新程序的信息,包括主程序CRC,主程序长度,设备类型以及软件版本号。并重启单片机,单片机重启后程序先进入Bootloader程序。接下来和上述软件启动时一样,进行主程序和校验区数据对比,然后执行后续操作,如附图3。Bootloader程序和主程序都保存了设备地址/序列号以及定义的广播地址,主机可通过设备地址/序列号或者广播地址与从机设备进行通讯、更新升级,如附图4。通过设备地址/序列号可实现单个从机设备的程序升级,此时从机设备收到每一帧都会有响应返回主机。通过定义的广播地址可实现批量从机设备的程序升级,此时从机设备无响应返回主机。在更新升级过程中,新主程序代码写入到主程序区时,每一帧都包含了固定的写入位置,写入时采用覆盖的方式,只更新当前写入位置的代码。在升级过程中因为通讯问题产生丢帧等导致本次无法升级成功时,只需要再次升级即可,当上次丢的数据被补齐后完整并通过校验后,程序将成功跳转到主程序区运行新的主程序。本专利技术的有益效果是:1、实现了对多个从机设备的批量更新升级,节省了大量的时间和人力成本,对一条总线下的100个电表,升级只要10-20分钟;2、升级时,若一次不成功可再次重复更新,并且采用具体寄存器地址覆盖的方式,大大解决了通讯不良导致无法升级的影响,提高了升级成功率;3、Flash中的主程序区只需要开辟一个主程序大小的空间,Bootloader的空间很小,对Flash的内存要求低,可以选用FLASH的单片机,大大减少了成本。附图说明图1是本专利技术Flash存储空间划分及区域存放数据说明示意图;图2是从机设备开机时的程序运行流程图;图3是从机设备更新程序时的程序运行流程图;图4是主机与从机设备的地址通讯示意图。具体实施方式现在结合附图和优选实施例对本专利技术作进一步详细的说明。这些附图均为简化的示意图,仅以示意方式说明本专利技术的基本结构,因此其仅显示与本专利技术有关的构成。如图1-4所示的一种基于总线的多节点设备嵌入式程序升级方法,对单片机内部Flash存储空间分为三个区:1、主程序区:主程序代码的存储区。2、校验区:存放校验数据,包含主程序长度、主程序CRC、设备类型以及软件版本号。3、Bootloader区:用于存放Bootloader程序,该Bootloader程序用于引导程序的启动和更新。工作流程如附图2、附图3,主要是固件启动时会通过校验区数据检查主程序区代码是否完整,若完整则跳转到主程序区运行主程序,若不完整则等待程序更新,直到主程序区文件完整后再跳转到主程序区运行主程序,具体为:启动时首先启动Bootloader程序,Bootloader程序利对用校验区的数据,去比对主程序的完整性,若完全正确则跳转到主程序区运行,否则就停留在Bootloader程序中,等待程序更新。等待程序更新时,远程主机可将新的主程序文件通过通讯接口进行下发,Bootloader接收到合格的数据,并且写入到主程序区。在程序更新过程中,Bootloader会不停的对比主程序区和校验区的校验数据是否完整,一但校验完整则跳转到主程序区运行,如附图2。在主程序正常运行过程中,接收到升级指令后,升级指令向校验区写入新程序的信息,包括主程序CRC,主程序长度,设备类型以及软件版本号。并重启单片机,单片机重启后程序先进入Bootloader程序。接下来和上述软件启动时一样,进行主程序和校验区数据对比,然后执行后续操作,如附图3。Bootloader程序和主程序都保存了设备地址/序列号以及定义的广播地址,主机可通过设备地址/序列号或者广播地址与从机设备进行通讯、更新升级,如附图4。通过设备地址/序列号可实现单个从机设备的程序升级,此时从机设备收到每一帧都会有响应返回主机。通过定义的广播地址可实现批量从机设备的程序升级,此时从机设备无响应返回主机。对基于总线的多节点设备嵌入式程序升级时,1)对单个从机设备本文档来自技高网
...

【技术保护点】
1.一种基于总线的多节点设备嵌入式程序升级方法,其特征在于:包括用于多节点设备的单片机,所述单片机的Flash存储空间划分为Bootloader区、主程序区和校验区三个区域;方法步骤如下:/n1)启动Bootloader程序,Bootloader程序利用校验区的数据,去比对主程序的完整性,若完全正确则跳转到主程序区运行,否则就停留在Bootloader程序中,等待程序更新;/n2)在主程序正常运行过程中,接收到升级指令后,升级指令向校验区写入新程序的信息进行程序更新,并重启单片机,单片机重启后程序进入Bootloader程序;/n3)重复步骤1)至步骤2)。/n

【技术特征摘要】
1.一种基于总线的多节点设备嵌入式程序升级方法,其特征在于:包括用于多节点设备的单片机,所述单片机的Flash存储空间划分为Bootloader区、主程序区和校验区三个区域;方法步骤如下:
1)启动Bootloader程序,Bootloader程序利用校验区的数据,去比对主程序的完整性,若完全正确则跳转到主程序区运行,否则就停留在Bootloader程序中,等待程序更新;
2)在主程序正常运行过程中,接收到升级指令后,升级指令向校验区写入新程序的信息进行程序更新,并重启单片机,单片机重启后程序进入Bootloader程序;
3)重复步骤1)至步骤2)。


2.如权利要求1所述的基于总线的多节点设备嵌入式程序升级方法,其特征在于:所述的步骤1)中,等待程序更新时,远程主机可将新的主程序文件通过通讯接口进行下发,Bootloader接收到合格的数据,并且写入到主程序区。


3.如权利要求1所述的基于总线的多节点设备嵌入式程序升级方法,其特征在于:在程序更新过程中,Bootloader不停的对比主程序区和校验区的校验数据是否完整,一旦校验完整则跳转到主程序区运行。

【专利技术属性】
技术研发人员:徐国鑫郑志军张鼎
申请(专利权)人:常州东晟合众节能科技有限公司
类型:发明
国别省市:江苏;32

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

1