[发明专利]基于总线的多节点设备嵌入式程序升级方法在审
申请号: | 202010630205.3 | 申请日: | 2020-07-03 |
公开(公告)号: | CN111782246A | 公开(公告)日: | 2020-10-16 |
发明(设计)人: | 徐国鑫;郑志军;张鼎 | 申请(专利权)人: | 常州东晟合众节能科技有限公司 |
主分类号: | G06F8/65 | 分类号: | G06F8/65;G06F9/4401;G06F11/10 |
代理公司: | 常州品益专利代理事务所(普通合伙) 32401 | 代理人: | 王涵江 |
地址: | 213000 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 总线 节点 设备 嵌入式 程序 升级 方法 | ||
本发明涉及一种基于总线的多节点设备嵌入式程序升级方法,包括用于多节点设备的单片机,所述单片机的Flash存储空间划分为Bootloader区、主程序区和校验区三个区域;启动时会通过校验区数据检查主程序区代码是否完整,若完整则跳转到主程序区运行主程序,若不完整则等待程序更新,直到主程序区文件完整后再跳转到主程序区运行主程序。本发明实现了对多个从机设备的批量更新升级,节省了大量的时间和人力成本;升级时,若一次不成功可再次重复更新,并且采用具体寄存器地址覆盖的方式,大大解决了通讯不良导致无法升级的影响,提高了升级成功率;Flash中的主程序区只需要开辟一个主程序大小的空间,对Flash的内存要求低,大大减少了成本。
技术领域
本发明涉及基于嵌入式系统的电子产品技术领域,尤其是一种基于总线的多节点设备嵌入式程序升级方法。
背景技术
在通讯类电子模块开发完成后,随着市场需求的变化,后续可能会对其进行软件功能上的升级。但此时产品已进行现场安装,如果进行传统的拆卸升级,那么必须面临数量多、耗时长、安装位置或方式不易于拆卸、重新拆壳导致的意外损坏、升级成本巨大等一系列问题。因此有必要实现单片机程序的远程升级,并且需要实现批量升级。
目前,在对单片机设备进行升级时,多由一个主机对从机设备进行单个远程升级,升级时采用有线或无线的方式进行通讯,将新的程序代码写入到从机设备的Flash中。从机设备的单片机的Flash划分为三个区域,分别为Bootloader区、主程序区和校验区,具体如下:
Bootloader区:用于存放Bootloader代码,该段程序主要用于接收待升级程序,设备通过通讯接口将程序接收后写入Flash内部的主程序区,然后对比校验区,校验通过则跳转到主程序进行运行。
主程序区:该区域划分为至少两个分区,分别用于存放不同版本的程序
校验区:用于存放更新标志和校验参数,通过检测更新标志来执行不同分区的主程序。
上述升级方案存在以下缺点:
1、无法批量广播升级,在产品数量较多的情况下,重复的升级带来巨大的时间成本。
2、对升级环境要求较高,若整个升级过程存在一次以上丢帧情况,则无法升级成功。
3、因为要划分2程序存储空间,对单片机的Flash内存要求较高,这将带来更大成本增加。
发明内容
本发明要解决的技术问题是:提供一种基于总线的多节点设备嵌入式程序升级方法,以解决现有技术对单片机本身内存要求过高,升级环境要求较高且无法实现批量广播升级的问题。
本发明解决其技术问题所采用的技术方案是:一种基于总线的多节点设备嵌入式程序升级方法,包括用于多节点设备的单片机,所述单片机的Flash存储空间划分为Bootloader区、主程序区和校验区三个区域;所述的主程序区用于存放主程序代码;所述的校验区用于存放校验数据,包含主程序长度、主程序CRC、设备类型以及软件版本号;所述的Bootloader区用于存放Bootloader程序,在出厂的时候直接烧录进去,该Bootloader程序用于引导程序的启动和更新。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于常州东晟合众节能科技有限公司,未经常州东晟合众节能科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010630205.3/2.html,转载请声明来源钻瓜专利网。