CN117193833B - 一种工控应用固件在线升级的方法 - Google Patents

一种工控应用固件在线升级的方法 Download PDF

Info

Publication number
CN117193833B
CN117193833B CN202311462893.7A CN202311462893A CN117193833B CN 117193833 B CN117193833 B CN 117193833B CN 202311462893 A CN202311462893 A CN 202311462893A CN 117193833 B CN117193833 B CN 117193833B
Authority
CN
China
Prior art keywords
data
firmware
flash
upgrading
online
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
Application number
CN202311462893.7A
Other languages
English (en)
Other versions
CN117193833A (zh
Inventor
邓敏
冯科佳
吴家祥
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chengdu Kejiang Technology Co ltd
Original Assignee
Chengdu Kejiang Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Chengdu Kejiang Technology Co ltd filed Critical Chengdu Kejiang Technology Co ltd
Priority to CN202311462893.7A priority Critical patent/CN117193833B/zh
Publication of CN117193833A publication Critical patent/CN117193833A/zh
Application granted granted Critical
Publication of CN117193833B publication Critical patent/CN117193833B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Abstract

本发明公开了一种工控应用固件在线升级的方法,涉及固件在线升级技术领域;为了提高在线升级的安全性和高效性;具体包括以下步骤:对固件在线升级指令进行接收,进行APP和boot在线升级方式选取;在线升级时,将自身的数据帧存入到在线升级序列中;对在线升级指令进行处理,处理过程中进行块对齐,写入FLASH,并且对记录进行索引;结束升级后将剩余的字节写入到FLASH后,进行校验。本发明通过加工Bit文件会下载到固件芯片内部RAM空间,使得固件开发阶段需要频繁的进行程序的擦除烧写操作,这样的好处是程序下载速度非常快,不会消耗Flash芯片的寿命,从而提高升级速率。

Description

一种工控应用固件在线升级的方法
技术领域
本发明涉及固件在线升级技术领域,尤其涉及一种工控应用固件在线升级的方法。
背景技术
在工控行业中,数字化仪控系统作为关键设备,控制器是该系统的中枢核心,为了完善控制器的稳定性,修补控制器的漏洞,需要对控制器中的固件进行升级;目前对固件升级的方法通常需要采用人工方式将固件通过数据线等外接设备实现固件的在线升级;
但是通过此种方式使得技术人员需耗费时间对控制器进行拆卸和组装,并且完成固件升级工作以后,还需要检查控制器能否正常运行,此种方式均会耗费大量的人力和时间,无法保证固件在线升级后的效率和固件升级后的正常工作;
基于此,本申请提出一种工控应用固件在线升级的方法,可以通过在线方式实现对于固定的升级,从而有效提高升级作业的效率。
发明内容
本发明的目的是为了解决现有技术中存在的缺点,而提出的一种工控应用固件在线升级的方法。
为了实现上述目的,本发明采用了如下技术方案:
一种工控应用固件在线升级的方法,包括以下步骤:
S1:对固件在线升级指令进行接收,对APP在线升级和boot在线升级的方式进行判断;
S2:在线升级时,将自身的数据帧存入到在线升级队列中;
S3:对在线升级指令进行处理,处理过程中进行块对齐,写入FLASH,并且对记录进行索引;
S4:结束升级后将剩余的字节写入到FLASH后,进行校验;
S5:校验过程中对FLASH数据进行读取,将其反馈至上位机内,利用上位机对下发数据的一致性进行判断;
S6:重启后进行测试,对软硬件进行回读。
优选的:所述APP在线升级包括以下步骤:
A1:对固件升级的软件版本、CPU型号和具体模块型号进行判断和读取;
A2:基于UDPQ协议,保证UDPQ包每包长度1024字节,将其写入update区;
A3:接收n包升级数据包,保证其正常长度1024,将255整数长度的写入FLASH;
A4:若接收到回读固件指令,则说明数据发送完成,将最后小于255长度的数据补全OxFF写入FLASH,且根据索引依次返回固件数据,进行校验比较;
A5:比较通过后,写入APP升级标志,供重启后boot识别;
A6:重启后,boot判断升级标志,将升级区域数据复制到APP区,清除升级标志,跳入APP开始运行。
优选的:所述boot在线升级包括以下步骤:
B1:对固件升级的软件版本、CPU型号和具体模块型号进行判断和读取;
B2:基于UDPQ协议,保证UDPQ包每包长度1024字节,将其写入update区;
B3:接收n包升级数据包,保证其正常长度1024,将255整数长度的写入FLASH;
B4:若接收到回读固件指令,则说明数据发送完成,将最后小于255长度的数据补全OxFF写入FLASH,且根据索引依次返回固件数据,进行校验比较;
B5:比较通过后,将update区域数据复制到boot区,注意最后未满足255长度的数据,需要补全后再写入;
B6:重启,正常运行。
优选的:所述S5步骤中利用上位机对下发数据的一致性进行判断,包括以下步骤:
S51:串口解析模块接收上位机发来的固件程序,写入内部FIFO或RAM中进行缓存;
S52:通过SPIFLASH控制器将缓存的数据写入外部的Flash芯片中。
优选的:所述串口解析模块为USB、网口、SPI其中的一种。
优选的:所述固件包括两种文件格式:
Bit文件和Mcs文件,Bit文件通常用于调试,Bit文件下载到芯片内部RAM空间。
优选的:Mcs文件用于最后的程序发布,由Bit文件生成。
所述数据帧包括帧头+256字节数据+CRC校验值
优选的:所述数据帧包括帧头+256字节数据+CRC校验值。
优选的:所述FLASH的写入方式,包括以下两种方式:
C1.每接收到—帧数据之后,对FLASH执行—次写256字节操作;
C2.所有的数据接收完成后,一次性将数据写入外部的FLASH芯片。
在前述方案的基础上:所述S6步骤中的重启后进行测试,对软硬件进行回读,包括以下步骤:
S61:对FLASH芯片执行全片擦除指令;
S62:擦除完成之后,再执行写入,写入完成之后;
S63:对指定存储区间进行数据回读,和接收到的数据进行比较,达到测试目的。
本发明的有益效果为:
1.Bit文件会下载到芯片内部RAM空间,使得固件开发阶段需要频繁的进行程序的擦除烧写操作,这样的好处是程序下载速度非常快,不会消耗Flash芯片的寿命。
2.通过每接收到—帧数据之后,对FLASH执行—次写256字节操作,不需要开辟较大的FIFO空间对资源占用小。
3.升级文件大小为几百KB,即使数据未接收完成出现异常,也不会对原始的固件芯片内的固件造成损坏,不会导致死机情况。
附图说明
图1为本发明提出的一种工控应用固件在线升级的方法的流程示意图。
具体实施方式
下面结合具体实施方式对本专利的技术方案作进一步详细地说明。
实施例1
一种工控应用固件在线升级的方法,如图1所示,包括以下步骤:
S1:对固件在线升级指令进行接收,进行APP和boot在线升级方式选取;
S2:在线升级时,将自身的数据帧存入到在线升级序列中;
S3:对在线升级指令进行处理,处理过程中进行块对齐,写入FLASH,并且对记录进行索引;
S4:结束升级后将剩余的字节写入到FLASH后,进行校验;
S5:校验时对FLASH数据进行读取,反馈至上位机内,利用上位机对下发数据的一致性进行判断;
S6:重启后进行测试。
所述APP在线升级包括以下步骤:
A1:对固件升级的软件版本、CPU型号和具体模块型号进行判断;
A2:基于UDPQ协议,对UDPQ包每包长度字节进行设定,将其写入update区;
A3:接收n包升级数据包,将其长度写入FLASH;
A4:将最后小于255长度的数据补全OxFF写入FLASH,根据索引依次返回固件数据,进行校验比较;
A5:比较通过后,写入APP升级标志,供重启后boot识别;
A6:boot判断升级标志,将升级区域数据复制到APP区,清除升级标志,跳入APP开始运行。
所述boot在线升级包括以下步骤:
B1:对固件升级的软件版本、CPU型号和具体模块型号进行判断和读取;
B2:基于UDPQ协议,保证UDPQ包每包长度1024字节,将其写入update区;
B3:接收n包升级数据包,保证其正常长度1024,将255整数长度的写入FLASH;
B4:若接收到回读固件指令,则说明数据发送完成,将最后小于255长度的数据补全OxFF写入FLASH,进行校验比较;
B5:比较通过后,将update区域数据复制到boot区,将未满足255长度的数据,补全后再写入;
B6:重启后运行。
实施例2
一种工控应用固件在线升级的方法,如图1所示,包括以下步骤:
S1:对固件在线升级指令进行接收,进行APP和boot在线升级方式选取;
S2:在线升级时,将自身的数据帧存入到在线升级序列中;
S3:对在线升级指令进行处理,处理过程中进行块对齐,写入FLASH,并且对记录进行索引;
S4:结束升级后将剩余的字节写入到FLASH后,进行校验;
S5:校验时对FLASH数据进行读取,反馈至上位机内,利用上位机对下发数据的一致性进行判断;
S6:重启后进行测试。
所述APP在线升级包括以下步骤:
A1:对固件升级的软件版本、CPU型号和具体模块型号进行判断;
A2:基于UDPQ协议,对UDPQ包每包长度字节进行设定,将其写入update区;
A3:接收n包升级数据包,将其长度写入FLASH;
A4:将最后小于255长度的数据补全OxFF写入FLASH,根据索引依次返回固件数据,进行校验比较;
A5:比较通过后,写入APP升级标志,供重启后boot识别;
A6:boot判断升级标志,将升级区域数据复制到APP区,清除升级标志,跳入APP开始运行。
所述boot在线升级包括以下步骤:
B1:对固件升级的软件版本、CPU型号和具体模块型号进行判断和读取;
B2:基于UDPQ协议,保证UDPQ包每包长度1024字节,将其写入update区;
B3:接收n包升级数据包,保证其正常长度1024,将255整数长度的写入FLASH;
B4:若接收到回读固件指令,则说明数据发送完成,将最后小于255长度的数据补全OxFF写入FLASH,进行校验比较;
B5:比较通过后,将update区域数据复制到boot区,将未满足255长度的数据,补全后再写入;
B6:重启后运行。
所述S5步骤中利用上位机对下发数据的一致性进行判断,包括以下步骤:
S51:串口解析模块接收上位机发来的固件程序,写入内部RAM中进行缓存;
S52:通过FLASH控制器将缓存的数据写入外部的Flash芯片中。
所述串口解析模块包括但不限于USB、网口、SPI,通过网络调试助手更新固件,利用USB口更新固件,通过外部的单片机进行更新固件,通过读取SD卡文件进行更新固件;
所述固件包括两种文件格式:
Bit文件和Mcs文件,Bit文件用于调试,Bit文件下载到芯片内部RAM空间;
Mcs文件用于最后的程序发布,由Bit文件生成。
所述数据帧包括帧头、256字节数据、RC校验值,固件接收到数据之后,对数据进行校验,校验正确回复给上位机一个正确响应信号,校验错误回复错误响应信号,串口上位机接收到正确的响应信号后,继续发下一个数据帧,接收到错误的响应信号后,重复发上一帧数据,直到所有的数据发送完成,发送结束命令。
所述FLASH的写入方式,包括以下两种方式:
C1:每接收到—帧数据之后,对FLASH执行—次写256字节操作;
C2:所有的数据接收完成后,一次性将数据写入外部的FLASH芯片。
所述S6步骤中的重启后进行测试,包括以下步骤:
S61:对FLASH芯片执行全片擦除指令;
S62:擦除完成之后,再执行写入;
S63:对指定存储区间进行数据回读,和接收到的数据进行比较,达到测试目的。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。

Claims (6)

1.一种工控应用固件在线升级的方法,其特征在于,包括以下步骤:
S1:对固件在线升级指令进行接收,进行APP在线升级和boot在线升级的方式选取;
S2:在线升级时,将自身的数据帧存入到在线升级序列中;
S3:对在线升级指令进行处理,处理过程中进行块对齐,写入FLASH,并且对记录进行索引;
S4:结束升级后将剩余的字节写入到FLASH后,进行校验;
S5:校验时对FLASH数据进行读取,反馈至上位机内,利用上位机对下发数据的一致性进行判断;
S6:重启后进行测试;
其中,所述APP在线升级包括以下步骤:
A1:对固件升级的软件版本、CPU型号和具体模块型号进行判断;
A2:基于UDPQ协议,对UDPQ包每包长度字节进行设定,将其写入update区;
A3:接收n包升级数据包,将其长度写入FLASH;
A4:将最后小于255长度的数据补全OxFF写入FLASH,根据索引依次返回固件数据,进行校验比较;
A5:比较通过后,写入APP升级标志,供重启后boot识别;
A6:boot判断升级标志,将升级区域数据复制到APP区,清除升级标志,跳入APP开始运行;
其中,所述boot在线升级包括以下步骤:
B1:对固件升级的软件版本、CPU型号和具体模块型号进行判断和读取;
B2:基于UDPQ协议,保证UDPQ包每包长度1024字节,将其写入update区;
B3:接收n包升级数据包,保证其正常长度1024,将255整数长度的写入FLASH;
B4:若接收到回读固件指令,则说明数据发送完成,将最后小于255长度的数据补全OxFF写入FLASH,进行校验比较;
B5:比较通过后,将update区域数据复制到boot区,将未满足255长度的数据,补全后再写入;
B6:重启后运行;
其中,所述S5步骤中利用上位机对下发数据的一致性进行判断,包括以下步骤:
S51:串口解析模块接收上位机发来的固件程序,写入内部RAM中进行缓存;
S52:通过FLASH控制器将缓存的数据写入外部的Flash芯片中。
2.根据权利要求1所述的一种工控应用固件在线升级的方法,其特征在于,所述串口解析模块为USB、网口、SPI其中的一种。
3.根据权利要求2所述的一种工控应用固件在线升级的方法,其特征在于,所述固件包括两种文件格式:
Bit文件和Mcs文件,Bit文件用于调试,Bit文件下载到芯片内部RAM空间;
Mcs文件用于最后的程序发布,由Bit文件生成。
4.根据权利要求3所述的一种工控应用固件在线升级的方法,其特征在于,所述数据帧包括帧头、256字节数据、RC校验值。
5.根据权利要求4所述的一种工控应用固件在线升级的方法,其特征在于,所述FLASH的写入方式,包括以下两种方式:
C1:每接收到—帧数据之后,对FLASH执行—次写256字节操作;
C2:所有的数据接收完成后,一次性将数据写入外部的FLASH芯片。
6.根据权利要求5所述的一种工控应用固件在线升级的方法,其特征在于,所述S6步骤中的重启后进行测试,包括以下步骤:
S61:对FLASH芯片执行全片擦除指令;
S62:擦除完成之后,再执行写入;
S63:对指定存储区间进行数据回读,和接收到的数据进行比较,达到测试目的。
CN202311462893.7A 2023-11-06 2023-11-06 一种工控应用固件在线升级的方法 Active CN117193833B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311462893.7A CN117193833B (zh) 2023-11-06 2023-11-06 一种工控应用固件在线升级的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311462893.7A CN117193833B (zh) 2023-11-06 2023-11-06 一种工控应用固件在线升级的方法

Publications (2)

Publication Number Publication Date
CN117193833A CN117193833A (zh) 2023-12-08
CN117193833B true CN117193833B (zh) 2024-01-23

Family

ID=89003788

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311462893.7A Active CN117193833B (zh) 2023-11-06 2023-11-06 一种工控应用固件在线升级的方法

Country Status (1)

Country Link
CN (1) CN117193833B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109901867A (zh) * 2019-02-14 2019-06-18 浙江中控太阳能技术有限公司 Boot区代码在线升级方法及定日镜控制器及定日镜
CN111104143A (zh) * 2019-12-26 2020-05-05 北谷电子有限公司上海分公司 一种固件升级方法及升级装置
CN111813425A (zh) * 2019-04-12 2020-10-23 顺丰科技有限公司 设备升级方法、装置、设备及存储介质
CN111913727A (zh) * 2020-08-14 2020-11-10 电子科技大学中山学院 一种采用STM32单片机内部Flash实现AISG-V3协议固件存储的方法
CN116088911A (zh) * 2023-03-17 2023-05-09 摩通传动与控制(深圳)有限公司 一种分布式io的固件批量升级系统、方法及终端装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11029941B2 (en) * 2017-11-30 2021-06-08 Nanjing Chervon Industry Co., Ltd. Electrical device and program update method thereof

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109901867A (zh) * 2019-02-14 2019-06-18 浙江中控太阳能技术有限公司 Boot区代码在线升级方法及定日镜控制器及定日镜
CN111813425A (zh) * 2019-04-12 2020-10-23 顺丰科技有限公司 设备升级方法、装置、设备及存储介质
CN111104143A (zh) * 2019-12-26 2020-05-05 北谷电子有限公司上海分公司 一种固件升级方法及升级装置
CN111913727A (zh) * 2020-08-14 2020-11-10 电子科技大学中山学院 一种采用STM32单片机内部Flash实现AISG-V3协议固件存储的方法
CN116088911A (zh) * 2023-03-17 2023-05-09 摩通传动与控制(深圳)有限公司 一种分布式io的固件批量升级系统、方法及终端装置

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
一种基于Ymodem协议的设备固件在线升级解决方案;叶蓓 等;《上海船舶运输科学研究所学报》;第44卷(第3期);第22-27页 *
基于RISC-V处理器的固件更新系统设计;郭俊 等;《计算机工程与应用》;第58卷(第4期);第298-303页 *
基于嵌入式移动智能终端固件升级系统的设计与实现;朱琼;《中国优秀硕士学位论文全文数据库 信息科技辑》;I138-139 *

Also Published As

Publication number Publication date
CN117193833A (zh) 2023-12-08

Similar Documents

Publication Publication Date Title
US6718407B2 (en) Multiplexer selecting one of input/output data from a low pin count interface and a program information to update a firmware device from a communication interface
CN109358887B (zh) 一种单片机程序的在线升级方法、装置及系统
CN111008033A (zh) 一种基于串口的通用dsp在线升级系统及升级方法
US8601464B2 (en) Memory online update system and method
CN1641582A (zh) 以故障保险方式向非易失存储应用自定义软件映象更新
CN111769962A (zh) 一种mcu固件ota升级方法
CN111813428A (zh) 终端固件的升级方法、装置、电子设备及存储介质
CN112947977A (zh) 一种软件在线升级方法及系统
CN114443175B (zh) 一种用于弹载fpga在线升级的启动配置方法
CN111459744A (zh) 视频处理芯片的固件烧录方法和固件调试方法
CN104133743B (zh) 一种将文件烧录到emmc芯片的方法及装置
CN117193833B (zh) 一种工控应用固件在线升级的方法
CN114138295A (zh) 一种电子设备的应用程序固件升级方法、装置及系统
JP2001134629A (ja) シミュレーション方法およびシミュレーション装置
CN107885523B (zh) 一种快速稳定的串口升级软件方法
US6636992B1 (en) Method for renewing program code in an embedded micro-controller unit
US11450398B2 (en) Method of testing slave device of inter-integrated circuit bus
CN104678292A (zh) 一种复杂可编程逻辑器件cpld测试方法和装置
CN112181444B (zh) 一种基于1553b总线的dsp多核数据烧写方法
CN114356365A (zh) 一种基于PSoC芯片的远程更新方法
US20150012688A1 (en) Computer system and operating method thereof
CN116301959A (zh) 一种基于串口的soc远程程序更新方法及装置
CN111522568A (zh) 一种boot下验证升级文件的方法
CN117687664A (zh) 一种dsp的在线升级配置方法及装置
CN111506333B (zh) 一种双dsp程序在线升级方法及系统

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