CN107645419A - 基于tcp协议的固件升级方法、电子设备及存储介质 - Google Patents
基于tcp协议的固件升级方法、电子设备及存储介质 Download PDFInfo
- Publication number
- CN107645419A CN107645419A CN201710986189.XA CN201710986189A CN107645419A CN 107645419 A CN107645419 A CN 107645419A CN 201710986189 A CN201710986189 A CN 201710986189A CN 107645419 A CN107645419 A CN 107645419A
- Authority
- CN
- China
- Prior art keywords
- firmware upgrade
- upgrade
- remote server
- response
- message format
- 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
Landscapes
- Stored Programmes (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了基于TCP协议的固件升级方法包括如下步骤:接收来自远程服务器以预设报文格式发送的固件升级命令,预设报文格式由报文头、功能码和数据区依次排列构成;以预设报文格式反馈应答至远程服务器,所述应答为成功、失败和错误中的任意一种,并当应答为成功时,执行升级步骤;接收来自远程服务器以预设报文格式发送的设备升级指令,对该类别的全部设备或报文头对应地址的具体设备进行固件升级。本发明的远程服务器作为主设备,数据采集器作为从设备,两者之间多次握手应答,形成可靠的传输关系。
Description
技术领域
本发明涉及固件烧录技术,尤其涉及基于TCP协议的固件升级方法、电子设备及存储介质。
背景技术
在工业设备的 通讯应用中,Modbus协议已经成为事实上的工业标准。它是一种标准的、开放的、面向消息的协议,它制定了消息域格局和内容的公共格式。Modbus协议有三种传输模式,分别为ASXII、RTU和TCP。依据通信栈可以看到,用户只需要关心应用层的数据即可,传输层和网络层采用成熟可靠的TCP/IP协议栈。TCP协议的应用场景是数据采集器收集到啊各个设备的运行数据,然后经由TCP协议接收服务器的查询和设置指令。
原有的基于TCP协议的固件烧写方式是主要有高压少吕、电路编程、在线系统编程等,在调试上不够方便,传输固件不够可靠。
发明内容
为了克服现有技术的不足,本发明的目的之一在于提供基于TCP协议的固件升级方法,其能解决现有技术传输固件不可靠的问题。
本发明的目的之一采用以下技术方案实现:
基于TCP协议的固件升级方法,应用在数据采集器中,包括如下步骤:
接收步骤:接收来自远程服务器以预设报文格式发送的固件升级命令,所述预设报文格式由报文头、功能码和数据区依次排列构成;
应答步骤:以预设报文格式反馈应答至远程服务器,所述应答为成功、失败和错误中的任意一种,并当应答为成功时,执行升级步骤;
升级步骤:接收来自远程服务器以预设报文格式发送的设备升级指令,判断是否对报文头对应类别的设备进行固件升级,若是,则对该类别的全部设备进行固件升级,否则,对报文头对应地址的设备进行固件升级。
优选的,所述报文头由通讯编号、设备编码、数据长度和设备地址依次排列组成。
优选的,在升级步骤中,“判断是否对报文头对应类别的设备进行固件升级”具体为判断设备编码是否为设定编码以及设备地址是否为广播地址,若是则对该广播地址对应类别的全部设备进行固件升级,否则,对具体的设备地址对应的设备进行固件升级。
优选的,执行完升级步骤之后,还包括响应步骤:以预设报文格式反馈响应至远程服务器,该响应对应的数据区为响应码,所述响应码包括成功、繁忙、失败和错误中的任意一种。
优选的,还包括如下步骤:
查询步骤:接收来自远程服务器以预设报文格式发送的升级进度查询命令,并根据设备地址上报相应设备的固件更新进度。
优选的,还包括如下步骤:
取消步骤:接收来自远程服务器以预设报文格式发送的取消升级查询命令,并根据设备地址停止相应设备的固件升级进程。
优选的,还包括如下步骤:
获取步骤:接收来自远程服务器以预设报文格式发送的获取固件信息命令,之后查询外置闪存是否存储有待升级文件,若是,则反馈存在信号至远程服务,否则,反馈不存在信号至远程服务器。
本发明的目的之二采用以下技术方案实现:
一种电子设备,其包括存储器、处理器以及存储在存储器上并可被处理器执行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
接收步骤:接收来自远程服务器以预设报文格式发送的固件升级命令,所述预设报文格式由报文头、功能码和数据区依次排列构成;
应答步骤:以预设报文格式反馈应答至远程服务器,所述应答为成功、失败和错误中的任意一种,并当应答为成功时,执行升级步骤;
升级步骤:接收来自远程服务器以预设报文格式发送的设备升级指令,判断是否对报文头对应类别的设备进行固件升级,若是,则对该类别的全部设备进行固件升级,否则,对报文头对应地址的设备进行固件升级。
优选的,所述报文头由通讯编号、设备编码、数据长度和设备地址依次排列组成。
本发明的目的之三采用以下技术方案实现:
一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1-7任一项所述的固件升级方法。
相比现有技术,本发明的有益效果在于:
本发明的远程服务器作为主设备,数据采集器作为从设备,两者之间多次握手应答,形成可靠的传输关系。
附图说明
图1为本发明的基于TCP协议的固件升级方法的流程图。
具体实施方式
下面,结合附图以及具体实施方式,对本发明做进一步描述:
本发明提供一种基于TCP协议的固件升级方法,应用场景为,多个设备分别通过对应的数据采集器基于TCP协议与远程服务器连接。如图1所述,包括如下步骤:
S1:接收来自远程服务器以预设报文格式发送的固件升级命令,所述预设报文格式由报文头、功能码和数据区依次排列构成;
在本实施例中将方法应用在数据采集器中,功能码和数据区组成PDU,报文头为7个字节,报文头包括2字节的报文编号、2字节的设备编码、2字节的数据长度和1字节的设备地址,报文编码由服务器生产,用以区分不同的数据报文,一般每次通信之后将需加1,设备编码用以标识数据的属主(设备类型),设备地址用以识别不同的设备。功能码为一个字节,数据域为0-248字节,整个报文帧最大为256字节。不同的功能码对应不同的功能。例如,0x21代表触发数据采集器固件的升级,0x23代表查询设备固件的升级进度。一般来讲,远程服务器充当主机,数据采集器充当从机,主机没有发起会话时,从机不应主动传送任何数据。
S2:以预设报文格式反馈应答至远程服务器,所述应答为成功、失败和错误中的任意一种,并当应答为成功时,执行S3;
数据采集器根据固件升级命令会作出应答,成功表示数据采集器已经转入升级模式,做好了升级准备,即将结束来自服务器的文件传送请求,识别表示数据采集器有更紧急的任务要完成,暂不接受升级任务,如果是错误,说明数据块个数和每个数据块的长度相乘过大,无对应缓冲区存储。还有一种情况是数据区的一个构成数据块个数为0x0000时,表示不需要传输固件文件,因此此时数据采集器的应答内容为错误,表示无完整固件。
S3:接收来自远程服务器以预设报文格式发送的设备升级指令,判断是否对报文头对应类别的设备进行固件升级,若是,则对该类别的全部设备进行固件升级,否则,对报文头对应地址的设备进行固件升级。
在本步骤中,“判断是否对报文头对应类别的设备进行固件升级”具体为判断设备编码是否为设定编码以及设备地址是否为广播地址,若是则对该广播地址对应类别的全部设备进行固件升级,否则,对具体的设备地址对应的设备进行固件升级。
还可以包括S4:以预设报文格式反馈响应至远程服务器,该响应对应的数据区为响应码,所述响应码包括成功、繁忙、失败和错误中的任意一种。
此时的设备升级指令的数据区包含固件类型、升级波特率、数据块个数和每个数据块长度。当“设备编码”不为0x0001且“设备地址”为广播地址0x00时,表示服务器需要数采器更新对应设备编码的那一类设备的固件。当“升级波特率”为0x0000时,表示使用原有数据采集波特率进行固件升级。若“数据块个数”为0x0000时,表示不需要传输固件文件,直接采用外置Flash中对应的固件进行升级。
数字采集器首先需要判断命令中的设备编码域是否为0x0001以及设备地址域是否为广播地址0x00,若是,则逐个对该类设备进行固件升级操作,否则,升级对应地址的设备固件。
此时,数据采集器也会反馈应答至远程服务器,以预设报文格式应答,数据区为响应码,响应码为成功、繁忙、失败、错误中的一种。成功表示数字采集器接受并即将执行设备升级指令;繁忙表示数字采集器还有更紧急的任务在执行,暂不接受设备更新任务;失败表示对应地址的设备不存在,或者不在线;错误表示数据块个数和每个数据块的长度相乘过大,无对应缓冲区存储,特殊地,当请求命令中的“数据块个数”为0x0000时,表示无完整的固件。
还可以包括如下步骤:
S5:接收来自远程服务器以预设报文格式发送的升级进度查询命令,并根据设备地址上报相应设备的固件更新进度。
远程服务器使用功能码来查询数字采集器下属设备的固件升级进度。当“设备地址”为广播地址0x00时,表示服务器需要数采器自动上报正在执行固件更新的那台设备的进度情况,更新周期为10s。数字采集器接收到该命令时,需判断命令中的“设备地址”域是否为广播地址0x00,若是,则按规定的周期自动上报设备的固件更新进度,直到进度值为100;否则,返回对应地址的设备的固件更新情况。当“进度值”为0xFF时,表示所要查询的设备已经升级完毕或并未处在升级过程中。
S6:接收来自远程服务器以预设报文格式发送的取消升级查询命令,并根据设备地址停止相应设备的固件升级进程。
远程服务器使用功能码来取消数字采集器下属设备的固件升级任务。当“设备地址”为广播地址0x00时,表示取消数采器下所有设备的固件升级任务;否则,则取消对应地址的设备的固件升级任务。若设备正在升级,则判断“强制中断标识”,若为0,则继续完成,否则中断当前烧录任务。
数字采集器接收到该命令时,应作出响应,应答的数据区为响应码,响应码包括成功、不对应和失败三种情况中的一种,成功表示数字采集器执行设备升级取消指令,不对应表示对应的设备不在线、不处于升级任务列表中,也不处于升级状态下;失败表示数字采集器不接受升级取消指令。
S7:接收来自远程服务器以预设报文格式发送的获取固件信息命令,之后查询外置闪存是否存储有待升级文件,若是,则反馈存在信号至远程服务,否则,反馈不存在信号至远程服务器。
远程服务器使用该功能码来获取数字采集器外置Flash的数字采集器固件区或设备固件区所存储的固件的MD5值,用于决定是否一定需要传输固件文件。当用户要升级的固件已经存在于数采器外置Flash中对应的固件区,远程服务器可以不再重复传输文件。数字采集器接收到该命令后,读取外置Flash的信息区,获取对应固件区域的固件文件的MD5值,并给远程服务器作出应答,该应答的数据区包括固件区域、响应码和MD5值,响应码定义为成功、识别和不存在,成功表示数字采集器对应区域存在已经下载完全的固件,且已正确获取到其MD5值;失败表示数字采集器对应区域存在已经下载完全的固件,但获取不到其MD5值。不存在表示数字采集器对应区域不存在已经下载完全的固件。
远程服务器将要发送的固件进行正定,将固件划分为若干个大小相等的数据块,按每个数据库长度的大小,将不足一个数据库的部分以0xFF进行填充,然后逐个将数据块发送给数字采集器。为保证每个数据块在传输过程中的完整性,需对每个数据块进行校验,校验方式采用Modbus RTU协议下的16为CRC校验算法。
远程服务器还可以通过功能码查询固件数据块接收信息信息,数字采集器接收到服务器的功能码后将实时的数据块烧写记录表返回给远程服务器。
本发明还提供一种电子设备,其包括存储器、处理器以及存储在存储器上并可被处理器执行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
接收步骤:接收来自远程服务器以预设报文格式发送的固件升级命令,所述预设报文格式由报文头、功能码和数据区依次排列构成;
应答步骤:以预设报文格式反馈应答至远程服务器,所述应答为成功、失败和错误中的任意一种,并当应答为成功时,执行升级步骤;
升级步骤:接收来自远程服务器以预设报文格式发送的设备升级指令,判断是否对报文头对应类别的设备进行固件升级,若是,则对该类别的全部设备进行固件升级,否则,对报文头对应地址的设备进行固件升级。
该电子设备中报文头同一由通讯编号、设备编码、数据长度和设备地址依次排列组成,其计算机程序执行的步骤流程与固件升级方法相同,在此不作赘述。
本发明还提供一种存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,实现本发明的固件升级方法。
对本领域的技术人员来说,可根据以上描述的技术方案以及构思,做出其它各种相应的改变以及形变,而所有的这些改变以及形变都应该属于本发明权利要求的保护范围之内。
Claims (10)
1.基于TCP协议的固件升级方法,应用在数据采集器中,其特征在于,包括如下步骤:
接收步骤:接收来自远程服务器以预设报文格式发送的固件升级命令,所述预设报文格式由报文头、功能码和数据区依次排列构成;
应答步骤:以预设报文格式反馈应答至远程服务器,所述应答为成功、失败和错误中的任意一种,并当应答为成功时,执行升级步骤;
升级步骤:接收来自远程服务器以预设报文格式发送的设备升级指令,判断是否对报文头对应类别的设备进行固件升级,若是,则对该类别的全部设备进行固件升级,否则,对报文头对应地址的设备进行固件升级。
2.如权利要求1所述的固件升级方法,其特征在于,所述报文头由通讯编号、设备编码、数据长度和设备地址依次排列组成。
3.如权利要求2所述的固件升级方法,其特征在于,在升级步骤中,“判断是否对报文头对应类别的设备进行固件升级”具体为判断设备编码是否为设定编码以及设备地址是否为广播地址,若是则对该广播地址对应类别的全部设备进行固件升级,否则,对具体的设备地址对应的设备进行固件升级。
4.如权利要求2所述的固件升级方法,其特征在于,执行完升级步骤之后,还包括响应步骤:以预设报文格式反馈响应至远程服务器,该响应对应的数据区为响应码,所述响应码包括成功、繁忙、失败和错误中的任意一种。
5.如权利要求4所述的固件升级方法,其特征在于,还包括如下步骤:
查询步骤:接收来自远程服务器以预设报文格式发送的升级进度查询命令,并根据设备地址上报相应设备的固件更新进度。
6.如权利要求4所述的固件升级方法,其特征在于,还包括如下步骤:
取消步骤:接收来自远程服务器以预设报文格式发送的取消升级查询命令,并根据设备地址停止相应设备的固件升级进程。
7.如权利要求4所述的固件升级方法,其特征在于,还包括如下步骤:
获取步骤:接收来自远程服务器以预设报文格式发送的获取固件信息命令,之后查询外置闪存是否存储有待升级文件,若是,则反馈存在信号至远程服务,否则,反馈不存在信号至远程服务器。
8.一种电子设备,其包括存储器、处理器以及存储在存储器上并可被处理器执行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现以下步骤:
接收步骤:接收来自远程服务器以预设报文格式发送的固件升级命令,所述预设报文格式由报文头、功能码和数据区依次排列构成;
应答步骤:以预设报文格式反馈应答至远程服务器,所述应答为成功、失败和错误中的任意一种,并当应答为成功时,执行升级步骤;
升级步骤:接收来自远程服务器以预设报文格式发送的设备升级指令,判断是否对报文头对应类别的设备进行固件升级,若是,则对该类别的全部设备进行固件升级,否则,对报文头对应地址的设备进行固件升级。
9.如权利要求8所述的电子设备,其特征在于,所述报文头由通讯编号、设备编码、数据长度和设备地址依次排列组成。
10.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-7任一项所述的固件升级方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710986189.XA CN107645419A (zh) | 2017-10-20 | 2017-10-20 | 基于tcp协议的固件升级方法、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710986189.XA CN107645419A (zh) | 2017-10-20 | 2017-10-20 | 基于tcp协议的固件升级方法、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107645419A true CN107645419A (zh) | 2018-01-30 |
Family
ID=61124157
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710986189.XA Pending CN107645419A (zh) | 2017-10-20 | 2017-10-20 | 基于tcp协议的固件升级方法、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107645419A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109284118A (zh) * | 2018-09-27 | 2019-01-29 | 郑州云海信息技术有限公司 | 一种固件刷新方法、系统、电子设备及计算机可读存储介质 |
CN110109693A (zh) * | 2019-04-22 | 2019-08-09 | 南京理工大学 | 嵌入式设备远程固件升级方法 |
CN111309359A (zh) * | 2020-03-16 | 2020-06-19 | 深圳益邦物联科技有限公司 | 固件远程控制自动升级方法、电子设备及存储介质 |
CN113055204A (zh) * | 2019-12-26 | 2021-06-29 | 国基电子(上海)有限公司 | 路由器固件升级方法、服务器及计算机可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100169876A1 (en) * | 2008-12-31 | 2010-07-01 | Square D Company | Automatic firmware updates for intelligent electronic devices |
CN102075564A (zh) * | 2010-12-23 | 2011-05-25 | 李华嵩 | 一种远程软件升级技术方法 |
CN102314369A (zh) * | 2011-10-09 | 2012-01-11 | 杭州先锋电子技术股份有限公司 | 一种远程在线监控系统中设备自升级方法 |
-
2017
- 2017-10-20 CN CN201710986189.XA patent/CN107645419A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100169876A1 (en) * | 2008-12-31 | 2010-07-01 | Square D Company | Automatic firmware updates for intelligent electronic devices |
CN102075564A (zh) * | 2010-12-23 | 2011-05-25 | 李华嵩 | 一种远程软件升级技术方法 |
CN102314369A (zh) * | 2011-10-09 | 2012-01-11 | 杭州先锋电子技术股份有限公司 | 一种远程在线监控系统中设备自升级方法 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109284118A (zh) * | 2018-09-27 | 2019-01-29 | 郑州云海信息技术有限公司 | 一种固件刷新方法、系统、电子设备及计算机可读存储介质 |
CN109284118B (zh) * | 2018-09-27 | 2021-08-31 | 郑州云海信息技术有限公司 | 一种固件刷新方法、系统、电子设备及计算机可读存储介质 |
CN110109693A (zh) * | 2019-04-22 | 2019-08-09 | 南京理工大学 | 嵌入式设备远程固件升级方法 |
CN113055204A (zh) * | 2019-12-26 | 2021-06-29 | 国基电子(上海)有限公司 | 路由器固件升级方法、服务器及计算机可读存储介质 |
CN113055204B (zh) * | 2019-12-26 | 2023-07-25 | 富联国基(上海)电子有限公司 | 路由器固件升级方法、服务器及计算机可读存储介质 |
CN111309359A (zh) * | 2020-03-16 | 2020-06-19 | 深圳益邦物联科技有限公司 | 固件远程控制自动升级方法、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107645419A (zh) | 基于tcp协议的固件升级方法、电子设备及存储介质 | |
CN107104836A (zh) | Zigbee设备的固件升级方法和装置 | |
CN109254789A (zh) | 智能设备电控固件烧写方法、系统、智能设备及服务器 | |
CN101635637A (zh) | 基于串行总线的智能地址分配的方法和系统 | |
CN105893091A (zh) | 一种智能机器人软件程序升级的方法及系统 | |
CN103944813A (zh) | 一种实现通用适配功能的网关及方法 | |
CN102478797A (zh) | 一种可配置通讯协议的监控系统 | |
CN105082540A (zh) | 一种通过3d切片装置控制3d打印机的方法 | |
CN102736565A (zh) | 一种基于上、下位机结构的自动化控制设备的通信方法 | |
CN103442250B (zh) | 电视机调试系统和方法 | |
CN112423322B (zh) | 型号信息发送方法、装置、存储介质及电子装置 | |
CN105404995B (zh) | 一种插件式物流数据开放平台构建方法 | |
CN107395666A (zh) | 一种操作数控机床升级数据包的方法及装置 | |
CN105933326A (zh) | 异地终端数据的上报方法及装置 | |
CN103217956B (zh) | 工业控制系统及其控制方法和控制装置 | |
CN103096361B (zh) | 一种无线局域网系统中性能统计数据的交互方法及装置 | |
CN101729284A (zh) | 一种基于设备端主动以实现管理系统中链路轮询的方法 | |
CN105812413A (zh) | 通信方法及设备 | |
CN105573300A (zh) | 一种基于物联网的数据采集复制系统及其控制方法 | |
CN113282587A (zh) | 状态数据的传输方法及装置、存储介质、电子装置 | |
CN106775818B (zh) | 基于can总线的ecu升级方法及ecu升级设备 | |
US9525594B2 (en) | Method for combined unicast/multicast software transmission | |
CN108958781A (zh) | 一种远程嵌入式固件在线升级方法 | |
CN103713582A (zh) | 一种远程监控的方法和设备 | |
CN102638392B (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 |
Application publication date: 20180130 |
|
RJ01 | Rejection of invention patent application after publication |