CN110109693A - 嵌入式设备远程固件升级方法 - Google Patents
嵌入式设备远程固件升级方法 Download PDFInfo
- Publication number
- CN110109693A CN110109693A CN201910324546.5A CN201910324546A CN110109693A CN 110109693 A CN110109693 A CN 110109693A CN 201910324546 A CN201910324546 A CN 201910324546A CN 110109693 A CN110109693 A CN 110109693A
- Authority
- CN
- China
- Prior art keywords
- embedded device
- data
- firmware
- firmware program
- remote
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 28
- KKIMDKMETPPURN-UHFFFAOYSA-N 1-(3-(trifluoromethyl)phenyl)piperazine Chemical compound FC(F)(F)C1=CC=CC(N2CCNCC2)=C1 KKIMDKMETPPURN-UHFFFAOYSA-N 0.000 claims abstract description 30
- 230000005540 biological transmission Effects 0.000 claims description 7
- 238000012546 transfer Methods 0.000 claims description 4
- 229910002056 binary alloy Inorganic materials 0.000 description 3
- 238000003780 insertion Methods 0.000 description 3
- 230000037431 insertion Effects 0.000 description 3
- 238000012790 confirmation Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
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)
- Stored Programmes (AREA)
Abstract
本发明公开一种嵌入式设备远程固件升级方法,适用于通过以太网或无线网络与远程TFTP服务器信号连接的基于STM32F407单片机的靶场测试数据采集设备,包括如下步骤:(11)下载请求:嵌入式设备作为TFTP客户端,向存储新版固件程序文件的远程TFTP服务器发起下载文件请求;(12)文件传输:远程TFTP服务器接收到读文件请求后,直接向嵌入式设备发回包含数据块编号以及数据块大小的数据报文,所有数据块整体构成新版固件程序文件;(13)程序写入:嵌入式设备将接收到的新版固件程序文件写入固件程序区域;(14)程序执行:嵌入式设备执行新版固件程序。本发明的嵌入式设备远程固件升级方法,升级操作简单、效率高。
Description
技术领域
本发明属于远程固件更新技术领域,特别是一种基于STM32F407单片机的靶场测试数据采集设备的远程固件升级方法。
背景技术
固件(firmware)一般存储于设备中的电可擦除只读存储器EEPROM(ElectricallyErasable Programmable ROM)或FLASH芯片中,一般可由用户通过特定的刷新程序进行升级的程序。
在目前的嵌入式领域应用中,对设备进行固件更新通常使用编程器(下载器)等专业设备将编写好的程序烧录到嵌入式设备中。
由于每一次的程序升级都需要将每个设备通过编程器(下载器)与计算机进行连接,从而达到下载的目的。这种方法往往只能为需要进行固件升级的设备进行一一升级,连接繁琐并且重复性劳动多,升级效率低下,后期升级维护复杂。
发明内容
本发明的目的在于提供一种嵌入式设备远程固件升级方法,升级操作简单、效率高。
实现本发明目的的技术解决方案为:
一种嵌入式设备远程固件升级方法,适用于通过以太网或无线网络与远程TFTP服务器信号连接的基于STM32F407单片机的靶场测试数据采集设备,所述嵌入式设备包括flash空间,所述flash空间包括引导程序区域和固件程序区域,包括如下步骤:
(11)下载请求:嵌入式设备作为TFTP客户端,向存储新版固件程序文件的远程TFTP服务器发起下载文件请求;
(12)文件传输:远程TFTP服务器接收到读文件请求后,直接向嵌入式设备发回包含数据块编号以及数据块大小的数据报文,所有数据块整体构成新版固件程序文件;
(13)程序写入:嵌入式设备将接收到的新版固件程序文件写入固件程序区域;
(14)程序执行:嵌入式设备执行新版固件程序。
本发明与现有技术相比,其显著优点为:
1、升级操作简单:嵌入式设备进行固件升级时无需专业下载器,通过TFTP客户端模式连接到远程TFTP服务器无需固件编写者操作,操作简单;
2、效率高:多台嵌入式设备可以进行批量固件升级,升级效率高。
3、灵活可控:设备的升级与否可有用户自主决定,为用户提供选择升级的权力。
下面结合附图和具体实施方式对本发明作进一步的详细描述。
附图说明
图1为本发明嵌入式设备远程固件升级方法的主流程图。
图2为图1中文件传输步骤的流程图。
具体实施方式
如图1所示,本发明嵌入式设备远程固件升级方法,适用于通过以太网或无线网络与远程TFTP服务器信号连接的基于STM32F407单片机的靶场测试数据采集设备,所述嵌入式设备包括flash空间,所述flash空间包括引导程序(BootLoader)区域和固件程序区域。
本发明嵌入式设备远程固件升级方法,包括如下步骤:
(11)下载请求:嵌入式设备作为TFTP客户端,向存储新版固件程序文件的远程TFTP服务器发起下载文件请求;
(12)文件传输:远程TFTP服务器接收到读文件请求后,直接向嵌入式设备发回包含数据块编号以及数据块大小的数据报文,所有数据块整体构成新版固件程序文件;
所述(12)文件传输步骤中,远程TFTP服务器每次向嵌入式设备发回一个包含数据块和该数据块编号的DATA报文,嵌入式设备每次成功收到DATA报文后,向远程TFTP服务器发送一个回应报文;远程TFTP服务器接收到回应报文后,顺序发送下一个DATA报文。
所述DATA报文中的数据块,直到最后一个DATA报文发送前,每个数据块大小均是完整;当发送DATA报文数据小于512字节时,文件传输结束;若最后一个DATA报文的数据大小正好为512字节,则远程TFTP服务器必须再次发送一个数据大小为0字节的额外DATA报文以表示传输结束。
当TFTP客户端接收到一个数据包的大小小于完整数据块大小的数据包后,传输结束。
TFTP协议为了传输的可靠性,使用了差错控制控制机制,差错控制主要用在报文损坏、报文丢失、确认丢失和报文重复四种情况。
因此,优选地,所述(12)文件传输步骤中,当DATA报文出现损坏时,嵌入式设备检测出损坏DATA报文,并将该DATA报文丢弃,远程TFTP服务器不会收到回应报文,发送端计时器超时后,将重新传送该DATA报文;
当DATA报文出现丢失,发送端无法接收到回应报文,发送端计时器超时后,将重新发送该DATA报文;
当回应报文丢失后,若发送端计时器超时时间大于接收端计时器超时时间,接收端将重新发送ACK报文,若发送端计时器超时时间小于接收端计时器超时时间,发送端将重新发送DATA报文;
当接收端收到了包含与之前收到的块编号重复的DATA报文时,将会丢弃掉当前接收到的DATA报文。
(13)程序写入:嵌入式设备将接收到的新版固件程序文件写入固件程序区域;
(14)程序执行:嵌入式设备执行新版固件程序。
本发明使用采用TFTP传输协议,嵌入式设备以TFTP客户端模式连接到储存着新版二进制固件文件的TFTP服务器,向TFTP服务器发起下载请求,数据传输过程中,数据块大小为512字节,每块数据传输成功后,客户端将会向TFTP服务器发送ACK报文,TFTP服务器将会向设备发送下一个数据报文。新版固件下载完成后,在BootLoader的引导下,设备进行Flash的固件程序区域的擦除以及写入,完成对设备的固件升级,升级成功后,设备将跳转至固件存放区域的固件程序首地址完成设备正常运行。
本发明以嵌入式设备为主体的方案为:
一种嵌入式设备远程固件升级方法,适用于通过以太网或无线网络与远程TFTP服务器信号连接的嵌入式设备,所述嵌入式设备包括flash空间,所述flash空间包括引导程序区域和固件程序区域,其特征在于,包括如下步骤:
(21)嵌入式设备作为TFTP客户端,向存储新版固件程序文件的远程TFTP服务器发起读文件请求;
(22)嵌入式设备收到远程TFTP服务器发回的新版固件程序文件后,将新版固件程序文件写入固件程序区域;
(23)嵌入式设备执行新版固件程序。
本发明以远程TFTP服务器为主体的方案为:
一种嵌入式设备远程固件升级方法,适用于通过以太网或无线网络与远程TFTP服务器信号连接的基于STM32F407单片机的靶场测试数据采集设备,所述嵌入式设备包括flash空间,所述flash空间包括引导程序区域和固件程序区域,其特征在于,包括如下步骤:
远程TFTP服务器接收到嵌入式设备作为TFTP客户端发来的读文件请求后,向嵌入式设备发回包含数据块编号以及数据块大小的数据报文,所有数据块整体构成新版固件程序文件;以供嵌入式设备将新版固件程序文件写入固件程序区域并执行新版固件程序。
优选地,上述各方案中所述嵌入式设备为基于STM32F407单片机的靶场测试数据采集设备。
使用基于STM32F407单片机的靶场测试数据采集设备进行基于在应用编程(IAP)的远程固件升级。在嵌入式上电或者复位的同时,若用户按下了嵌入式设备的升级按键,设备跳转至引导程序所在的首地址执行引导程序。其中,BootLoader将会通过在线编程的方式下载到嵌入式设备Flash的引导程序区域,引导程序完成对TFTP协议的配置,以TFTP客户端模式连接到远程TFTP服务器,并向TFTP发起下载新版二进制固件文件的请求。新版固件下载完毕之后,设备将在BootLoader引导程序的配合下完成对设备Flash的擦除,写入操作,新版固件写入完毕之后,设备将会跳转至固件存放区域的首地址执行新版固件程序功能。若用户没有在设备上电或者复位的同时按下升级按键,设备将跳转至旧版固件所在的区间区域首地址,若设备flash的固件程序区域存在固件程序数据,则设备运行固件程序功能,若不存在固件数据,则提示用户当前设备不存在合法的固件。
图2为TFTP客户端传输协议的流程图。TFTP(Trivial File Transfer Protocol)协议是一种基于UDP协议的简单文件传输协议,它支持ASCII码或者二进制格式的文件的上传与下载。TFTP协议共定义了五种类型的报文,如下表所示:
表1 TFTP协议报文
报文名称 | 报文含义以及对应操作码 |
RRQ | 读文件请求报文,操作码为1 |
WRQ | 写文件请求报文,操作码为2 |
DATA | 数据报文,操作码为3 |
ACK | 回应报文,操纵码为4 |
ERROR | 错误信息报文,操作码为5 |
本发明所实现的远程固件升级方法以在应用编程技术为基础,通过将Lwip轻型TCP/IP协议栈移植到基于STM32F407单片机的靶场测试数据采集设备中,在此基础上使用TFTP协议,将嵌入式设备配置为TFTP客户端模式,使用以太网连接到局域网内的TFTP服务器,完成对新版二进制固件程序文件的下载,烧录,实现设备的批量更新。
在实现IAP功能时,需要实现在程序正常运行的同时,检测用户是否通过在设备上电或复位的同时按下升级按键,从而进入升级模式,实现对固件程序的更新。在嵌入式设备Flash的空间内,存放着两种程序区域,一种称作引导程序(BootLoader)区域,该区域的程序负责用户主动进入升级模式操作之后,对远程固件的下载和烧录,另一种乘坐固件程序区域,该区域的程序负责嵌入式设备的正常运行功能,并且可以被擦除以及再次写入。
在对基于STM32F407单片机的靶场测试数据采集设备的片上Flash进行新版固件程序更新时,需要先对Flash进行固件程序区域地址进行擦除,对Flash的擦除主要分为扇区擦除和整片擦除两种方法。本发明采用对STM32F407的Flash进行扇区擦除。当嵌入式设备成功下载完存储在TFTP服务器的新版固件二进制文件后,设备将会在引导程序BootLoader的配合下先进行对Flash的擦除操作,BootLoader程序会从预先定义的存放固件程序区域的首地址开始对Flash进行擦除,在擦除前BootLoader程序会先解锁Flash,并提示用户Flash的擦除操作开始进行。Flash擦除完毕后,BooLoader将向Flash的固件程序区域首地址写入512字节的数据,数据写入成功后再向下一个地址再次写入512字节的数据,直到固件文件数据完全写入Flash的固件程序区域。当新版固件程序写入完毕后,嵌入式设备将跳转至固件程序的首地址开始运行固件程序。
Claims (9)
1.一种嵌入式设备远程固件升级方法,适用于通过以太网或无线网络与远程TFTP服务器信号连接的基于STM32F407单片机的靶场测试数据采集设备,所述嵌入式设备包括flash空间,所述flash空间包括引导程序区域和固件程序区域,其特征在于,包括如下步骤:
(11)下载请求:嵌入式设备作为TFTP客户端,向存储新版固件程序文件的远程TFTP服务器发起下载文件请求;
(12)文件传输:远程TFTP服务器接收到读文件请求后,直接向嵌入式设备发回包含数据块编号以及数据块大小的数据报文,所有数据块整体构成新版固件程序文件;
(13)程序写入:嵌入式设备将接收到的新版固件程序文件写入固件程序区域;
(14)程序执行:嵌入式设备执行新版固件程序。
2.根据权利要求1所述的固件升级方法,其特征在于,所述嵌入式设备为基于STM32F407单片机的靶场测试数据采集设备。
3.根据权利要求1所述的固件升级方法,其特征在于:
所述(12)文件传输步骤中,远程TFTP服务器每次向嵌入式设备发回一个包含数据块和该数据块编号的DATA报文,嵌入式设备每次成功收到DATA报文后,向远程TFTP服务器发送一个回应报文;远程TFTP服务器接收到回应报文后,顺序发送下一个DATA报文。
4.根据权利要求3所述的固件升级方法,其特征在于:
所述DATA报文中的数据块,直到最后一个DATA报文发送前,每个数据块大小均是完整;当发送DATA报文数据小于512字节时,文件传输结束;若最后一个DATA报文的数据大小正好为512字节,则远程TFTP服务器必须再次发送一个数据大小为0字节的额外DATA报文以表示传输结束。
5.根据权利要求3所述的固件升级方法,其特征在于:
所述(12)文件传输步骤中,当DATA报文出现损坏时,嵌入式设备检测出损坏DATA报文,并将该DATA报文丢弃,远程TFTP服务器不会收到回应报文,发送端计时器超时后,将重新传送该DATA报文;
当DATA报文出现丢失,发送端无法接收到回应报文,发送端计时器超时后,将重新发送该DATA报文;
当回应报文丢失后,若发送端计时器超时时间大于接收端计时器超时时间,接收端将重新发送ACK报文,若发送端计时器超时时间小于接收端计时器超时时间,发送端将重新发送DATA报文;
当接收端收到了包含与之前收到的块编号重复的DATA报文时,将会丢弃掉当前接收到的DATA报文。
6.一种嵌入式设备远程固件升级方法,适用于通过以太网或无线网络与远程TFTP服务器信号连接的嵌入式设备,所述嵌入式设备包括flash空间,所述flash空间包括引导程序区域和固件程序区域,其特征在于,包括如下步骤:
(21)嵌入式设备作为TFTP客户端,向存储新版固件程序文件的远程TFTP服务器发起读文件请求;
(22)嵌入式设备收到远程TFTP服务器发回的新版固件程序文件后,将新版固件程序文件写入固件程序区域;
(23)嵌入式设备执行新版固件程序。
7.根据权利要求6所述的固件升级方法,其特征在于,所述嵌入式设备为STM32F407单片机。
8.一种嵌入式设备远程固件升级方法,适用于通过以太网或无线网络与远程TFTP服务器信号连接的嵌入式设备,所述嵌入式设备包括flash空间,所述flash空间包括引导程序区域和固件程序区域,其特征在于,包括如下步骤:
远程TFTP服务器接收到嵌入式设备作为TFTP客户端发来的读文件请求后,向嵌入式设备发回包含数据块编号以及数据块大小的数据报文,所有数据块整体构成新版固件程序文件;以供嵌入式设备将新版固件程序文件写入固件程序区域并执行新版固件程序。
9.根据权利要求8所述的固件升级方法,其特征在于,所述嵌入式设备为STM32F407单片机。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910324546.5A CN110109693A (zh) | 2019-04-22 | 2019-04-22 | 嵌入式设备远程固件升级方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910324546.5A CN110109693A (zh) | 2019-04-22 | 2019-04-22 | 嵌入式设备远程固件升级方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110109693A true CN110109693A (zh) | 2019-08-09 |
Family
ID=67486231
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910324546.5A Pending CN110109693A (zh) | 2019-04-22 | 2019-04-22 | 嵌入式设备远程固件升级方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110109693A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111124448A (zh) * | 2019-12-03 | 2020-05-08 | 紫光云(南京)数字技术有限公司 | 一种可快速维护固件的物联网嵌入式系统及升级方法 |
CN111488162A (zh) * | 2020-04-09 | 2020-08-04 | 智洋创新科技股份有限公司 | 单片机远程快速升级的方法 |
CN111552493A (zh) * | 2020-04-24 | 2020-08-18 | 苏州华芯微电子股份有限公司 | 防盗器软件更新方法、防盗器、自刷新设备 |
CN111694593A (zh) * | 2020-05-22 | 2020-09-22 | 中国航空工业集团公司西安航空计算技术研究所 | 一种基于改进arinc615a协议的目标程序在线升级方法 |
CN111913727A (zh) * | 2020-08-14 | 2020-11-10 | 电子科技大学中山学院 | 一种采用STM32单片机内部Flash实现AISG-V3协议固件存储的方法 |
CN112015446A (zh) * | 2020-07-06 | 2020-12-01 | 尚特杰电力科技有限公司 | 一种数据采集器远程升级方法和系统 |
CN114006901A (zh) * | 2021-12-31 | 2022-02-01 | 广州鲁邦通物联网科技股份有限公司 | 一种嵌入式网络设备免拆机盖固件升级方法和系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102364891A (zh) * | 2011-09-13 | 2012-02-29 | 杭州华三通信技术有限公司 | 嵌入式以太网设备升级软件的方法及嵌入式以太网设备 |
CN107645419A (zh) * | 2017-10-20 | 2018-01-30 | 深圳益邦阳光有限公司 | 基于tcp协议的固件升级方法、电子设备及存储介质 |
-
2019
- 2019-04-22 CN CN201910324546.5A patent/CN110109693A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102364891A (zh) * | 2011-09-13 | 2012-02-29 | 杭州华三通信技术有限公司 | 嵌入式以太网设备升级软件的方法及嵌入式以太网设备 |
CN107645419A (zh) * | 2017-10-20 | 2018-01-30 | 深圳益邦阳光有限公司 | 基于tcp协议的固件升级方法、电子设备及存储介质 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111124448A (zh) * | 2019-12-03 | 2020-05-08 | 紫光云(南京)数字技术有限公司 | 一种可快速维护固件的物联网嵌入式系统及升级方法 |
CN111488162A (zh) * | 2020-04-09 | 2020-08-04 | 智洋创新科技股份有限公司 | 单片机远程快速升级的方法 |
CN111552493A (zh) * | 2020-04-24 | 2020-08-18 | 苏州华芯微电子股份有限公司 | 防盗器软件更新方法、防盗器、自刷新设备 |
CN111694593A (zh) * | 2020-05-22 | 2020-09-22 | 中国航空工业集团公司西安航空计算技术研究所 | 一种基于改进arinc615a协议的目标程序在线升级方法 |
CN111694593B (zh) * | 2020-05-22 | 2023-05-12 | 中国航空工业集团公司西安航空计算技术研究所 | 一种基于改进arinc615a协议的目标程序在线升级方法 |
CN112015446A (zh) * | 2020-07-06 | 2020-12-01 | 尚特杰电力科技有限公司 | 一种数据采集器远程升级方法和系统 |
CN111913727A (zh) * | 2020-08-14 | 2020-11-10 | 电子科技大学中山学院 | 一种采用STM32单片机内部Flash实现AISG-V3协议固件存储的方法 |
CN114006901A (zh) * | 2021-12-31 | 2022-02-01 | 广州鲁邦通物联网科技股份有限公司 | 一种嵌入式网络设备免拆机盖固件升级方法和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110109693A (zh) | 嵌入式设备远程固件升级方法 | |
US10268471B2 (en) | Method for upgrading terminal system, terminal, and system | |
CN105591824A (zh) | 一种固件升级的方法、系统 | |
CN109101261A (zh) | 一种数据采集传输仪终端的远程在线升级方法及系统 | |
EP2528274B1 (en) | Method and system for upgrading network device | |
CN100484288C (zh) | 通过空中传送来下载和升级无线设备的终端软件 | |
EP2456257A1 (en) | Method and system for upgrading wireless data card | |
CN110730104A (zh) | 一种mesh网络设备的多设备批量固件升级的方法 | |
CN110311964A (zh) | 套接字ota升级方法、装置、系统、用户终端和存储介质 | |
RU2013123983A (ru) | Архитектура систем мониторинга состояния здоровья | |
CN101778376A (zh) | 一种实现固件无线更新的方法及装置 | |
CN102377821B (zh) | 网络终端设备的版本智能更新方法和装置 | |
CN106301959A (zh) | 基于windows和linux平台的网关批量升级方法及系统 | |
KR101541112B1 (ko) | Fota 시스템 및 그 실행 방법 | |
CN105183496A (zh) | 一种基于国产cpu和操作系统的软件自动升级和推送方法 | |
CN113721966B (zh) | 节点升级方法、装置、存储介质及电子装置 | |
CN102740279A (zh) | 一种无线网络接入终端及其运行方法 | |
CN104915234A (zh) | 一种Android移动终端升级上报方法及系统 | |
CN114440389A (zh) | 空调器及其升级方法、计算机设备和计算机可读存储介质 | |
CN114866525A (zh) | 一种一主多从模式嵌入式设备远程在线固件升级方法及系统 | |
CN114884935A (zh) | 数据升级方法、装置、电子设备和存储介质 | |
CN109889368B (zh) | 一种基于stm32控制器的gprs远程升级方法 | |
CN108874410B (zh) | 补丁管理方法及装置 | |
CN101854442B (zh) | 网络设备及其固件更新方法 | |
CN104580360A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190809 |