CN117193833B - 一种工控应用固件在线升级的方法 - Google Patents
一种工控应用固件在线升级的方法 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 30
- 238000012545 processing Methods 0.000 claims abstract description 11
- 230000008569 process Effects 0.000 claims abstract description 6
- 238000012795 verification Methods 0.000 claims description 12
- 238000012360 testing method Methods 0.000 claims description 10
- 230000005540 biological transmission Effects 0.000 claims description 5
- 230000000295 complement effect Effects 0.000 claims description 5
- 238000011161 development Methods 0.000 abstract description 2
- 230000004044 response Effects 0.000 description 4
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total 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:对指定存储区间进行数据回读,和接收到的数据进行比较,达到测试目的。
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)
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)
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 |
-
2023
- 2023-11-06 CN CN202311462893.7A patent/CN117193833B/zh active Active
Patent Citations (5)
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)
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 |