CN110244970A - 一种单片机及其升级系统、升级方法 - Google Patents
一种单片机及其升级系统、升级方法 Download PDFInfo
- Publication number
- CN110244970A CN110244970A CN201910404701.4A CN201910404701A CN110244970A CN 110244970 A CN110244970 A CN 110244970A CN 201910404701 A CN201910404701 A CN 201910404701A CN 110244970 A CN110244970 A CN 110244970A
- Authority
- CN
- China
- Prior art keywords
- chip microcontroller
- upgrade
- host computer
- information
- bootstrap
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/654—Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明涉及单片机技术领域,具体地说是一种单片机及其升级系统、升级方法,单片机包括引导程序存储区、下载程序存储区、执行程序存储区、升级信息存储区,升级系统包括上述单片机和上位机,升级方法包括指令接收、判别版本号、数据传输、检验反馈、运行程序;本发明和现有技术相比,使用单片机内部flash,无需其他的外部存储设备,使用标准的Canopen协议下发,数据链路层可靠,相比其他所有总线,可以做到达到汉明间距(Hamming Distanz)为6,能够检测报文里多达5个随机引入的位错误及15位突发性错误,灵活,兼容性高,价格低。
Description
技术领域
本发明涉及单片机技术领域,具体地说是一种单片机及其升级系统、升级方法。
背景技术
目前,现有的单片机内部flash划分往往只有一个总空间,在进行升级时往往需要借助外部存储设备,且难以做到批量升级,效率较低。
因此,现有技术还有待发展。
发明内容
鉴于上述现有技术的不足之处,本发明的目的在于提供一种单片机及其升级系统、升级方法。旨在解决现有技术升级效率不足,易产生误差的问题。
为了达到上述目的,本发明采取了以下技术方案:
本发明提供一种单片机,包括:
引导程序存储区,用于存储引导程序,所述引导程序用于初始化硬件设备、建立内存空间映射、下载应用程序;
下载程序存储区,与所述引导程序存储区通信连接,用于存储所述引导程序下载的应用程序;
执行程序存储区,与引导程序存储区、下载程序存储区分别通信连接,用于存储需要运行的应用程序;
升级信息存储区,与所述执行程序存储区通讯连接,用于存储需要运行的应用程序的升级信息。
进一步的,还包括预留空间,所述预留空间用于存储应用程序运行参数。
本发明还提供一种单片机的升级系统,包括上述的单片机,还包括上位机,所述上位机与单片机之间通过Canopen通信连接。
本发明还提供一种单片机的升级方法,包括上述的升级系统,其特征在于,还包括下列步骤:
1)单片机上电启动,运行所述引导程序;
2)单片机检查所述升级信息,若所述升级信息不存在,则所述单片机保持指令接收状态,直至接收到上位机发送的升级指令,并转至步骤3);若升级信息存在,则所述单片机保持指令接收状态,直至接收到上位机发送的升级指令或到达第一预设时间,若接收到上位机发送的升级指令,则转至步骤3),若在第一预设时间内未接收到上位机发送的升级指令,则转至步骤4);
3)单片机下载上位机发送的应用程序数据,并进行应用程序升级;
4)运行应用程序。
进一步的,所述升级信息包括主版本号、次版本号、修订号、生成号。
进一步的,步骤3)中所述应用程序升级包括下列步骤:
a)单片机接收上位机发送的升级信息,并向上位机发送通用应答;
b)单片机接收上位机发送的应用程序大小信息,并向上位机发送通用应答;
c)单片机接收上位机发送的应用程序数据信息,并向上位机发送通用应答;
d)单片机接收上位机发送的CRC校验内容信息,并向上位机发送通用应答。
进一步的,所述CRC校验内容包括阶段校验内容和末尾校验内容,每传送1K的应用程序数据就传送一次阶段校验内容,在全部应用程序数据传送完成后传输一次末尾校验内容。
进一步的,步骤3)和步骤4)之间还包括:单片机接收到应用程序数据后将应用程序数据写入所述下载程序存储区,当CRC校验内容传输完成后,所述引导程序将下载程序存储区中的应用程序数据复制到执行程序存储区中。
进一步的,当上位机传送信息后未收到通用应答时,将重发相应信息若干次,直至收到通用应答或到达预设次数上限,若重发相应信息的次数到达预设次数上限后仍未收到通用应答,则此次升级失败。
进一步的,步骤a)与b)之间还包括:所述引导程序将上位机传输的升级信息与所述升级信息存储区中的升级信息相对比,若对比得升级信息不同,则转至步骤b),否则跳过步骤b)、步骤c)、步骤d),结束应用程序升级。
本发明与现有技术相比,使用单片机内部flash,无需其他的外部存储设备,使用标准的Canopen协议下发,数据链路层可靠,因为相比其他所有总线,只有CAN可以做到达到汉明间距(Hamming Distanz)为6,能够检测报文里多达5个随机引入的位错误及15位突发性错误,灵活,兼容性高,价格低。
附图说明
图1为本发明提供的升级系统的示意图;
图2为本发明提供的升级方法流程示意图。
具体实施方式
以下对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
实施例1
如图1所示,以stm32f103vgt6单片机为例,本发明将单片机内部共1M大小的flash空间分为若干区域,包括:
引导程序存储区,占用100K空间,用于存储BootLoader引导程序,所述引导程序用于初始化硬件设备、建立内存空间映射、下载应用程序;
下载程序存储区,占用256K空间,与所述引导程序存储区通信连接,用于存储所述引导程序下载的应用程序;
执行程序存储区,占用256K空间,与引导程序存储区、下载程序存储区分别通信连接,用于存储需要运行的应用程序;
升级信息存储区,占用28K空间,与所述执行程序存储区通讯连接,用于存储需要运行的应用程序的升级信息。
进一步的,剩余的空间为预留空间,用于存储应用程序运行参数。
本发明还提供一种单片机的升级系统,包括上述的单片机,还包括上位机,所述上位机与单片机之间通过Canopen通信连接。
如图2所示,本发明还提供一种单片机的升级方法,包括上述的升级系统,其特征在于,还包括下列步骤:
1)单片机上电启动,运行所述引导程序;
2)单片机检查所述升级信息,若所述升级信息不存在,则所述单片机保持指令接收状态,直至接收到上位机发送的升级指令,并转至步骤3);若升级信息存在,则所述单片机保持指令接收状态,直至接收到上位机发送的升级指令或到达10秒钟,若接收到上位机发送的升级指令,则转至步骤3),若在10秒钟内未接收到上位机发送的升级指令,则转至步骤4);
3)单片机下载上位机发送的应用程序数据,并进行应用程序升级;
4)运行应用程序。
进一步的,所述升级信息包括主版本号、次版本号、修订号、生成号。
进一步的,步骤3)中所述应用程序升级包括下列步骤:
a)单片机接收上位机发送的升级信息,并向上位机发送通用应答;
b)单片机接收上位机发送的应用程序大小信息,并向上位机发送通用应答;
c)单片机接收上位机发送的应用程序数据信息,并向上位机发送通用应答;
d)单片机接收上位机发送的CRC校验内容信息,并向上位机发送通用应答。
进一步的,所述CRC校验内容包括阶段校验内容和末尾校验内容,每传送1K的应用程序数据就传送一次阶段校验内容,在全部应用程序数据传送完成后传输一次末尾校验内容。
进一步的,步骤3)和步骤4)之间还包括:单片机接收到应用程序数据后将应用程序数据写入所述下载程序存储区,当CRC校验内容传输完成后,所述引导程序将下载程序存储区中的应用程序数据复制到执行程序存储区中。
进一步的,当上位机传送信息后未收到通用应答时,将重发相应信息若干次,直至收到通用应答或到达预设次数上限,若重发相应信息的次数到达预设次数上限后仍未收到通用应答,则此次升级失败。
进一步的,步骤a)与b)之间还包括:所述引导程序将上位机传输的升级信息与所述升级信息存储区中的升级信息相对比,若对比得升级信息不同,则转至步骤b),否则跳过步骤b)、步骤c)、步骤d),结束应用程序升级。
Claims (10)
1.一种单片机,其特征在于,包括:
引导程序存储区,用于存储引导程序,所述引导程序用于初始化硬件设备、建立内存空间映射、下载应用程序;
下载程序存储区,与所述引导程序存储区通信连接,用于存储所述引导程序下载的应用程序;
执行程序存储区,与引导程序存储区、下载程序存储区分别通信连接,用于存储需要运行的应用程序;
升级信息存储区,与所述执行程序存储区通讯连接,用于存储需要运行的应用程序的升级信息。
2.根据权利要求1所述的一种单片机,其特征在于,还包括预留空间,所述预留空间用于存储应用程序运行参数。
3.一种单片机的升级系统,包括权利要求1或2所述的单片机,其特征在于,还包括上位机,所述上位机与单片机之间通过Canopen通信连接。
4.一种单片机的升级方法,包括权利要求3所述的升级系统,其特征在于,还包括下列步骤:
1)单片机上电启动,运行所述引导程序;
2)单片机检查所述升级信息,若所述升级信息不存在,则所述单片机保持指令接收状态,直至接收到上位机发送的升级指令,并转至步骤3);若升级信息存在,则所述单片机保持指令接收状态,直至接收到上位机发送的升级指令或到达第一预设时间,若接收到上位机发送的升级指令,则转至步骤3),若在第一预设时间内未接收到上位机发送的升级指令,则转至步骤4);
3)单片机下载上位机发送的应用程序数据,并进行应用程序升级;
4)运行应用程序。
5.根据权利要求3所述的一种单片机的升级方法,其特征在于,所述升级信息包括主版本号、次版本号、修订号、生成号。
6.根据权利要求3所述的一种单片机的升级方法,其特征在于,步骤3)中所述应用程序升级包括下列步骤:
a)单片机接收上位机发送的升级信息,并向上位机发送通用应答;
b)单片机接收上位机发送的应用程序大小信息,并向上位机发送通用应答;
c)单片机接收上位机发送的应用程序数据信息,并向上位机发送通用应答;
d)单片机接收上位机发送的CRC校验内容信息,并向上位机发送通用应答。
7.根据权利要求6所述的一种单片机的升级方法,其特征在于,所述CRC校验内容包括阶段校验内容和末尾校验内容,每传送1K的应用程序数据就传送一次阶段校验内容,在全部应用程序数据传送完成后传输一次末尾校验内容。
8.根据权利要求6所述的一种单片机的升级方法,其特征在于,步骤3)和步骤4)之间还包括:单片机接收到应用程序数据后将应用程序数据写入所述下载程序存储区,当CRC校验内容传输完成后,所述引导程序将下载程序存储区中的应用程序数据复制到执行程序存储区中。
9.根据权利要求6所述的一种单片机的升级方法,其特征在于,当上位机传送信息后未收到通用应答时,将重发相应信息若干次,直至收到通用应答或到达预设次数上限,若重发相应信息的次数到达预设次数上限后仍未收到通用应答,则此次升级失败。
10.根据权利要求6所述的一种单片机的升级方法,其特征在于,步骤a)与b)之间还包括:所述引导程序将上位机传输的升级信息与所述升级信息存储区中的升级信息相对比,若对比得升级信息不同,则转至步骤b),否则跳过步骤b)、步骤c)、步骤d),结束应用程序升级。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910404701.4A CN110244970A (zh) | 2019-05-16 | 2019-05-16 | 一种单片机及其升级系统、升级方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910404701.4A CN110244970A (zh) | 2019-05-16 | 2019-05-16 | 一种单片机及其升级系统、升级方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110244970A true CN110244970A (zh) | 2019-09-17 |
Family
ID=67884409
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910404701.4A Withdrawn CN110244970A (zh) | 2019-05-16 | 2019-05-16 | 一种单片机及其升级系统、升级方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110244970A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112291323A (zh) * | 2020-10-22 | 2021-01-29 | 上海电科智能系统股份有限公司 | 一种基于mqtt通讯协议的单片机固件升级通讯方法 |
CN112631628A (zh) * | 2020-12-11 | 2021-04-09 | 邦彦技术股份有限公司 | 单片机升级方法、单片机、存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120291021A1 (en) * | 2011-05-13 | 2012-11-15 | Lsi Corporation | Method and system for firmware upgrade of a storage subsystem hosted in a storage virtualization environment |
CN103559066A (zh) * | 2013-11-19 | 2014-02-05 | 上海创程车联网络科技有限公司 | 基于canopen协议的嵌入式软件升级方法 |
CN104007996A (zh) * | 2014-06-16 | 2014-08-27 | 南京融教科技有限公司 | 一种分布式控制系统的可靠固件升级实现方法 |
CN105117253A (zh) * | 2015-08-27 | 2015-12-02 | 常州大学 | 一种基于BootLoader的UV LED固化系统远程升级方法 |
CN106227572A (zh) * | 2016-08-30 | 2016-12-14 | 深圳市蓝海华腾技术股份有限公司 | 一种变频器控制系统程序升级方法 |
CN108572830A (zh) * | 2017-12-22 | 2018-09-25 | 深圳市鼎阳科技有限公司 | 一种嵌入式系统及其引导程序的升级方法、系统 |
-
2019
- 2019-05-16 CN CN201910404701.4A patent/CN110244970A/zh not_active Withdrawn
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120291021A1 (en) * | 2011-05-13 | 2012-11-15 | Lsi Corporation | Method and system for firmware upgrade of a storage subsystem hosted in a storage virtualization environment |
CN103559066A (zh) * | 2013-11-19 | 2014-02-05 | 上海创程车联网络科技有限公司 | 基于canopen协议的嵌入式软件升级方法 |
CN104007996A (zh) * | 2014-06-16 | 2014-08-27 | 南京融教科技有限公司 | 一种分布式控制系统的可靠固件升级实现方法 |
CN105117253A (zh) * | 2015-08-27 | 2015-12-02 | 常州大学 | 一种基于BootLoader的UV LED固化系统远程升级方法 |
CN106227572A (zh) * | 2016-08-30 | 2016-12-14 | 深圳市蓝海华腾技术股份有限公司 | 一种变频器控制系统程序升级方法 |
CN108572830A (zh) * | 2017-12-22 | 2018-09-25 | 深圳市鼎阳科技有限公司 | 一种嵌入式系统及其引导程序的升级方法、系统 |
Non-Patent Citations (2)
Title |
---|
XIANG L ET AL.: "Design and Realization of FPGA Based Single-Chip Dual-Core Embedded Dual Module Hot Spare Syste", 《JOURNAL OF INTERNET TECHNOLOGY》 * |
吴斌 等: "多单片机分布式控制的双路测时仪设计与实现", 《西安工业大学学报》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112291323A (zh) * | 2020-10-22 | 2021-01-29 | 上海电科智能系统股份有限公司 | 一种基于mqtt通讯协议的单片机固件升级通讯方法 |
CN112631628A (zh) * | 2020-12-11 | 2021-04-09 | 邦彦技术股份有限公司 | 单片机升级方法、单片机、存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7822963B2 (en) | Remote computer operating system upgrade | |
US5652832A (en) | Method and apparatus for diagnosis and correction of peripheral device allocation faults | |
US7991988B2 (en) | Communication device and firmware update method thereof | |
US20010011347A1 (en) | Method and apparatus for upgrading firmware boot and main codes in a programmable memory | |
CN111176702B (zh) | 固件升级方法、装置、计算机设备和存储介质 | |
CN102195817B (zh) | 一种软件升级方法和装置以及软件回退方法和装置 | |
CN108415717A (zh) | 一种zynqsoc固件升级方法及升级装置 | |
CN110244970A (zh) | 一种单片机及其升级系统、升级方法 | |
CN111813428A (zh) | 终端固件的升级方法、装置、电子设备及存储介质 | |
CN108509215B (zh) | 一种系统软件的更换方法、装置、终端设备及存储介质 | |
CN112152846B (zh) | 一种基于物联网的计量仪表远程升级方法 | |
CN109976767A (zh) | 软件烧录方法和装置 | |
US20240070026A1 (en) | Method For Remote Upgrade and Rollback of Unmanned Aerial Vehicle (UAV) Software | |
CN110007941B (zh) | 一种智能垃圾分类回收系统的mcu固件及升级方法 | |
JP4829932B2 (ja) | 組み込みシステム内のファームウエアをアップグレードする装置と方法 | |
CN107402794A (zh) | 一种充电桩自身程序升级方法及装置 | |
US20040192280A1 (en) | System for updating application software of data acquisition devices | |
CN111897560A (zh) | 基于NB-IoT模块的程序升级系统、方法、设备以及存储介质 | |
CN117687664A (zh) | 一种dsp的在线升级配置方法及装置 | |
CN108572847B (zh) | 一种通过usb口升级单片机软件版本的方法 | |
CN112612528B (zh) | 一种基于Bootloader的系统软件选择性启动和远程更新方法 | |
CN105704707A (zh) | 从设备及其空中升级的方法 | |
CN111880819B (zh) | 一种存储设备固件升级方法、系统、设备及计算机介质 | |
US6301709B1 (en) | Circuit pack system with semi-or fully-automatic upgrade capability | |
CN114996717A (zh) | 一种防止误擦除的升级程序设计方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20190917 |
|
WW01 | Invention patent application withdrawn after publication |