CN109889368B - 一种基于stm32控制器的gprs远程升级方法 - Google Patents
一种基于stm32控制器的gprs远程升级方法 Download PDFInfo
- Publication number
- CN109889368B CN109889368B CN201910014473.XA CN201910014473A CN109889368B CN 109889368 B CN109889368 B CN 109889368B CN 201910014473 A CN201910014473 A CN 201910014473A CN 109889368 B CN109889368 B CN 109889368B
- Authority
- CN
- China
- Prior art keywords
- server
- program
- equipment end
- upgrading
- equipment
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 34
- 238000005070 sampling Methods 0.000 claims description 3
- 238000007781 pre-processing Methods 0.000 abstract 1
- 230000003044 adaptive effect Effects 0.000 description 5
- 210000001072 colon Anatomy 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000002265 prevention Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
Images
Landscapes
- Stored Programmes (AREA)
- Computer And Data Communications (AREA)
- Information Transfer Between Computers (AREA)
Abstract
一种基于STM32控制器的GPRS远程升级方法,包括以下步骤:1)通过类似keil编译器将文件生成HEX文件格式,再将HEX文件加载到服务器端;2)服务器通过人为主动点选进行单台或者多台设备的固件升级;3)服务器向设备端发送程序更新消息,设备端开始进行升级;4)设备端预处理;5)设备端接收升级程序处理:设备端向服务器发送开始升级程序指令时,设备端开始采用防误码通信协议机制进行接收服务器升级程序固件,并通过动态规划计算出设备端需要等待服务器下发的时间T,即自适应系统延时;6)设备将存储的程序在线下载到应用程序空间。本发明能有效的解决远程升级时间过长、失败率高和升级不稳定问题。
Description
技术领域
本发明涉及一种远程升级方法,尤其是一种基于STM32控制器的GPRS远程升级方法,属于无线通信领域。
背景技术
当前,设备在进行功能升级时,需要对设备进行重新下载程序。传统的设备在进行程序升级的时候,只能现场用仿真器对控制器下载程序,这给厂家带来了极大的不便,并且许多远程控制设备在进行远程升级程序时,容易导致升级不成功。
发明内容
为了提高现有的远程升级设备的升级效率,本发明提供了一种能提高远程升级稳定性,缩短升级时间的基于STM32控制器的GPRS远程升级方法。
本发明解决其技术问题所采用的技术方案如下:
一种基于STM32控制器的GPRS远程升级方法,所述GPRS的远程升级方法包括如下步骤:
1)程序生成阶段:通过类似keil编译器将文件生成HEX文件格式,再将HEX文件加载到服务器端;
2)设备选中:服务器可以通过人为主动点选进行单台或者多台设备的固件升级;
3)程序升级消息通知:服务器向设备端发送程序更新消息,设备端开始进行升级;
5)设备端接收升级程序处理:设备端向服务器发送开始升级程序指令时,设备端开始采用防误码通信协议机制进行接收服务器升级程序固件,即设备端在接收程序包时,包序列要与设备端包计数一致。在接收完所有包时,设备端计算程序校验值,并与服务器下发校验值比较。另外,设备端需要通过动态规划计算出设备端每次接收完当前包后需要等待服务器下发下一个包的时间T,即自适应系统延时;
6)设备端IAP在线程序升级:设备将存储在外部FLASH的程序转换成BIN格式在线下载到应用程序空间,完成升级。
A.在设备向服务器发送长度为L的数据包后,芯片不断向通信模块查询信号量,得到N组信号质量(Q1,Q2,...,QN);
B.分析得到的N组信号质量(Q1,Q2,...,QN),求出理想的信号质量
再进一步,在所述步骤5)中,设备等待时间T的动态规划过程,包括以下步骤:
a.设备向服务器发送数据长度为L的数据包,L的取值范围为0-300;
b.在设备向服务器发送长度为L的数据包后,打开芯片定时器开始计数,直到芯片接收到服务器发回的应答信号,定时器停止计数,设备按此操作重复发送S组数据包,得到时间(T0,T1,...,TS);
c.计算当前等待时间,服务器需查询本次的信号质量,记为Q;
d.自适应等待时间T:
由公式(1)得到
再进一步,在所述步骤5)中,在计算每次设备端需要等待服务器下发的时间前,服务器只需查询当前的信号质量Q,就可根据公式得到当前自适应时间T。
本发明的有益效果表现在:(1)通过在升级前随机向服务器发送几组数据包,判断当前的信号质量是否允许升级,提高远程升级的成功率;(2)动态规划自适应的RTO,提高了整个升级过程的效率;(3)防误码通信机制提高了整个升级过程的准确性,防止出现丢包,误码,以及单片机在线升级失败的情况;(4)控制方法基于STM32实现,资源丰富并且能减小控制器的体积。
附图说明
图1为基于STM32远程升级实现的软件流程图。
图2为基于STM32远程升级实现的硬件流程图。
具体实施方式
下面结合附图对本发明的实施方式作进一步描述。
参照图1和图2,一种基于STM32控制器的GPRS远程升级方法,所述GPRS的远程升级方法包括以下步骤:
1)程序生成阶段:通过类似keil编译器将文件生成HEX文件格式,再将HEX文件加载到服务器端;
2)设备选中:服务器可以通过人为主动点选进行单台或者多台设备的固件升级;
3)程序升级消息通知:服务器向设备端发送程序更新消息,设备端开始进行升级;
5)设备端接收升级程序处理:设备端向服务器发送开始升级程序指令时,设备端开始采用防误码通信协议机制进行接收服务器升级程序固件,即设备端在接收程序包时,包序列要与设备端包计数一致。在接收完所有包时,设备端计算程序校验值,并与服务器下发校验值比较。另外,设备端需要通过动态规划计算出设备端每次接收完当前包后需要等待服务器下发下一个包的时间T,即自适应系统延时;
6)设备端IAP在线程序升级:设备将存储在外部FLASH的程序转换成BIN格式在线下载到应用程序空间,完成升级。
进一步,在所述步骤2)中,服务器在人为选择设备升级之前,设备应向服务器发送注册帧,注册帧中包含设备MAC地址、SIM卡的SIM卡号、软件版本号和硬件版本号,这个是用来区分升级程序的每个子设备。
再进一步,在所述步骤3)中,设备端发送程序更新消息时,设备端应先判断是否是空闲状态,若是空闲状态,则向服务器发送等待下发程序应答指令,否则向服务器发送结束升级程序应答指令。
A.在设备向服务器发送长度为L的数据包后,芯片不断向通信模块查询信号量,得到N组信号质量(Q1,Q2,...,QN);
B.分析得到的N组信号质量(Q1,Q2,...,QN),求出理想的信号质量
再进一步,在所述步骤5)中,设备等待时间T的动态规划过程,包括以下步骤:
a.设备向服务器发送数据长度为L的数据包,L的取值范围为0-300;
b.在设备向服务器发送长度为L的数据包后,打开芯片定时器开始计数,直到芯片接收到服务器发回的应答信号,定时器停止计数,设备按此操作重复发送S组数据包,得到时间(T0,T1,...,TS);
c.计算当前等待时间,服务器需查询本次的信号质量,记为Q;
d.自适应等待时间T:
由公式(1)得到
再进一步,在步骤5)中,防误码通信机制,包括以下步骤:
5.1)服务器分包下发程序时,服务器首先要将待下载的HEX文件,按照HEX文件检查规则,如若错误,本次固件升级的过程终止;
5.2)由于HEX文件每行都有校验,将HEX文件分包下发时,每包的包校验等于每行的校验之和;
5.3)将HEX文件前面的冒号去掉转化成16进制文件形式发送,服务器开始向设备发送固件升级消息,采取握手应答的方式,服务器先发出第1条固件升级消息,设备端收到回复一条固件升级消息,服务器收到回复后再发送第2条升级消息......,直到最后一条固件升级消息回复到服务器;
5.4)由于HEX文件每行的字节数偏少,因此每发送一包固件升级信息可以包含HEX文件中的10行信息,最后不足10条的按实际条数发送;
5.5)协议中每个包有包序列,设备接收包时也对包进行计数,这样,保证了不会产生丢包和错包,当在等待时间内未接到或接到包序列不一致的包,设备向服务器发送重发指令,服务器进行当前包重发,在规定的等待时间内,设备端发起3次重发指令,最后还是未接受到正确的包,则本次升级失败,这种升级方式保证了通信的正常进行;
5.6)当接收完所有包之后,服务器下发升级完成消息,首先,设备按照HEX文件检查规则,如若错误,本次固件升级的过程终止;其次,消息中包含了HEX文件每行的校验和的后两位,设备再将接收到的HEX程序每一行校验值相加,取最后两位与升级完成消息的校验位进行匹配,一致时,设备发起升级完成消息,否则,发送升级失败消息,设备在升级失败的时候都恢复升级前的状态,等待服务器下一次的升级消息。
最后,在所述步骤6)中,设备端程序升级:对于出厂模式的设备和工作模式的设备,设备进行升级的方式有所不同,如图2所示,出厂模式的设备在进行升级时是程序在STM32芯片内部FLASH的bootloader区中运行,正在运行的程序将通信模块的接收到的程序存储到外部flash中,接收完升级程序时,再往内部FLASH中APP区中进行烧写程序,烧写完后再跳入APP程序中;而工作模式的设备在升级时是通过APP区中正在运行的程序将通信模块接收到的程序存储到外部flash中,接收完升级程序时,芯片复位,STM32芯片从APP区跳到bootloader区,再通过bootloader区将外部flash的程序烧写到APP区中,程序再从bootloader区跳到APP区中运行。
本发明提出的一种基于STM32控制器的GPRS的远程升级方法,采用在升级之前判断当前信号质量是否良好,是否适合升级,提高了升级的成功率,设备端每次接收包到服务器发下一个包需要等待的时间采用动态规划,缩小了整个升级程序的时间,提高了设备在实际时使用中可以缩小程序升级时间,更快的进入工作模式。对于出厂模式和工作模式的设备,STM32分为两种方式进行升级,提高了单片机在线升级的成功率。
Claims (6)
1.一种基于STM32控制器的GPRS远程升级方法,其特征在于,所述GPRS远程升级方法包括如下步骤:
1)程序生成阶段:通过keil编译器将文件生成HEX格式的文件,再将HEX格式的文件加载到服务器;
2)设备选中:服务器可以通过人为主动点选进行单台或者多台设备的固件升级;
3)程序升级消息通知:服务器向设备端发送程序更新消息,设备端开始进行升级;
4)设备端预处理:设备端在进行升级前,STM32控制器采用随机采样的方法计算求出理想的信号质量设备端得到区间中理想的信号质量中有不低于S*0.7个理想的信号质量大于等于20时,允许设备升级程序;否则,设备端向服务器请求取消远程升级消息;
5)设备端接收升级程序处理:设备端向服务器发送开始升级程序指令时,设备端开始采用防误码通信协议机制进行接收服务器升级程序固件,即设备端在接收程序包时,包序列要与设备端包计数一致;在接收完所有包时,设备端计算程序校验值,并与服务器下发校验值比较;另外,设备端需要通过动态规划计算出设备端每次接收完当前包后需要等待服务器下发下一个包的时间T,即设备端等待时间;
6)设备端IAP在线程序升级:设备端将存储在外部FLASH的程序转换成BIN格式在线下载到应用程序空间,完成升级。
3.如权利要求2所述的一种基于STM32控制器的GPRS远程升级方法,其特征在于:在所述步骤5)中,设备端等待时间T的动态规划过程,包括以下步骤:
a.设备端向服务器发送数据长度为L的数据包,L的取值范围为0-300;
b.在设备端向服务器发送数据长度为L的数据包后,打开芯片定时器开始计数,直到芯片接收到服务器发回的应答信号,定时器停止计数,设备端按此操作重复发送S组数据包,得到时间(T0,T1,...,TS);
c.计算当前等待时间,服务器需查询本次的信号质量,记为Q;
d.设备端等待时间T:
由公式(1)得到
6.如权利要求3所述的一种基于STM32控制器的GPRS远程升级方法,其特征在于:在计算每次设备端需要等待服务器下发的时间前,服务器只需查询当前的信号质量Q,就根据公式得到当前设备端等待时间T。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910014473.XA CN109889368B (zh) | 2019-01-07 | 2019-01-07 | 一种基于stm32控制器的gprs远程升级方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910014473.XA CN109889368B (zh) | 2019-01-07 | 2019-01-07 | 一种基于stm32控制器的gprs远程升级方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109889368A CN109889368A (zh) | 2019-06-14 |
CN109889368B true CN109889368B (zh) | 2022-04-08 |
Family
ID=66925670
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910014473.XA Active CN109889368B (zh) | 2019-01-07 | 2019-01-07 | 一种基于stm32控制器的gprs远程升级方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109889368B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110933663B (zh) * | 2019-12-17 | 2020-11-24 | 珠海格力电器股份有限公司 | 多联空调机组及其远程升级方法 |
CN112764777B (zh) * | 2021-01-18 | 2022-07-22 | 苏州浪潮智能科技有限公司 | 低速总线设备的升级方法、装置、设备及可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107402776A (zh) * | 2016-05-20 | 2017-11-28 | 南京阿波罗机器人科技有限公司 | 一种基于蓝牙4的手机无线升级stm32单片机控制器固件方法 |
CN108845811A (zh) * | 2018-05-30 | 2018-11-20 | 武汉高仕达电气有限公司 | 一种基于can总线的双核dsp固件升级方法及系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102314369B (zh) * | 2011-10-09 | 2014-07-23 | 杭州先锋电子技术股份有限公司 | 一种远程在线监控系统中设备自升级方法 |
WO2016183542A1 (en) * | 2015-05-14 | 2016-11-17 | Walleye Software, LLC | Computer data system position-index mapping |
KR101886209B1 (ko) * | 2016-04-19 | 2018-08-08 | (주)휴맥스 | 미디어 서비스 제공 장치 및 방법 |
-
2019
- 2019-01-07 CN CN201910014473.XA patent/CN109889368B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107402776A (zh) * | 2016-05-20 | 2017-11-28 | 南京阿波罗机器人科技有限公司 | 一种基于蓝牙4的手机无线升级stm32单片机控制器固件方法 |
CN108845811A (zh) * | 2018-05-30 | 2018-11-20 | 武汉高仕达电气有限公司 | 一种基于can总线的双核dsp固件升级方法及系统 |
Non-Patent Citations (3)
Title |
---|
Privacy and Security in Internet of Things and Wearable Devices;Orlando Arias等;《 IEEE Transactions on Multi-Scale Computing Systems》;20151106;全文 * |
基于惯性传感器的坐姿和摔倒检测系统设计;季祥;《中国优秀硕士学位论文数据库(电子期刊)》;20200815;全文 * |
面对电动车的车联网技术的研究和应用;卞羽生;《中国优秀硕士学位论文数据库(电子期刊)》;20180415;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN109889368A (zh) | 2019-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109889368B (zh) | 一种基于stm32控制器的gprs远程升级方法 | |
CN102510409A (zh) | 一种利用无线网络对移动终端程序快速远程更新的方法及系统 | |
JP2003018050A (ja) | 電力線通信システムの適応型多重チャンネルパケットの伝送方法 | |
WO2011006328A1 (zh) | 设备固件升级系统及方法、设备管理服务器及移动终端 | |
CN110109693A (zh) | 嵌入式设备远程固件升级方法 | |
CN103379446B (zh) | 一种基于wifi的多终端控制方法及设备 | |
CN110708205A (zh) | 通过网关对设备进行fota的方法及系统 | |
CN113746892B (zh) | 一种远程升级方法及无线终端设备 | |
CN111211918A (zh) | 一种用于LoRa私有协议的组网方法 | |
CN114915671A (zh) | 一种基于NB-IoT的路灯控制器的远程升级方法 | |
CN112286556A (zh) | 通信设备及其mcu的远程升级方法 | |
CN112565349A (zh) | 一种基于中央油烟机的无线通信方法及相关设备 | |
CN108958781B (zh) | 一种远程嵌入式固件在线升级方法 | |
CN106648721A (zh) | 一种软件升级方法及装置 | |
CN114440389A (zh) | 空调器及其升级方法、计算机设备和计算机可读存储介质 | |
CN105471660A (zh) | 一种适用于新型低轨卫星平台的数据获取方法 | |
CN111417112B (zh) | 一种分布式ota网关组网及终端接入方法及ota升级系统 | |
CN114745740B (zh) | 一种智能家电的升级系统及方法 | |
CN109358872A (zh) | 远程固件升级方法、装置及计算机可读存储介质 | |
CN113949733B (zh) | 一种电能表的固件升级方法 | |
US20040127202A1 (en) | Method for remotely updating software for radio port | |
CN107832072A (zh) | 一种基于串口通信静默升级单片机固件的方法 | |
JP2002027010A (ja) | 伝送装置及び伝送方法 | |
CN113596623A (zh) | 一种plc广播批量升级方法及系统 | |
CN114257509A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |