CN108293060B - 一种从站固件更新的方法、***、主站及从站 - Google Patents

一种从站固件更新的方法、***、主站及从站 Download PDF

Info

Publication number
CN108293060B
CN108293060B CN201580084468.6A CN201580084468A CN108293060B CN 108293060 B CN108293060 B CN 108293060B CN 201580084468 A CN201580084468 A CN 201580084468A CN 108293060 B CN108293060 B CN 108293060B
Authority
CN
China
Prior art keywords
station
slave station
data packet
firmware
target slave
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
CN201580084468.6A
Other languages
English (en)
Other versions
CN108293060A (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.)
Shenzhen A&E Intelligent Technology Institute Co Ltd
Original Assignee
Shenzhen A&E Intelligent Technology Institute 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 Shenzhen A&E Intelligent Technology Institute Co Ltd filed Critical Shenzhen A&E Intelligent Technology Institute Co Ltd
Publication of CN108293060A publication Critical patent/CN108293060A/zh
Application granted granted Critical
Publication of CN108293060B publication Critical patent/CN108293060B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

一种从站固件更新的方法,用于有效提高多个从站固件更新的效率。所述方法包括:主站获取多个目标从站中各目标从站的地址信息,以及多个目标从站的待更新的固件数据包(101);主站根据各目标从站的地址信息向各目标从站发送设置帧(102);主站接收各目标从站发送的确认信息(103);主站根据各目标从站发送的确认信息确认各目标从站初始化设置成功后,主站广播固件数据包,以使各目标从站接收该固件数据包,并将该固件数据包的数据写入flash,完成固件更新(104)。同时还公开了一种从站固件更新的***、主站及从站。

Description

一种从站固件更新的方法、***、主站及从站
技术领域
本发明涉及通信领域,尤其涉及一种从站固件更新的方法、***、主站及从站。
背景技术
目前,现场总线已经成为工业控制领域技术发展的热点之一,Modbus总线具有协议简单、实施容易、性价比高等优点,在工业自动化领域应用较广。由Modbus协议建立的网络一般是一个工业通信***,该工业通信***由可编程逻辑控制器和计算机通过公用线路或局部专用线路连接而成,该网络只有一个主站,所有通信由该主站发起,且网络中最多可以支持247个从站。在某些情况下,如需要完善从站功能,增强从站稳定性,或修补漏洞等,需要从站进行固件升级。
现有技术中,从站固件更新的方法为,主站将固件更新数据分别发送至各从站,各从站接收到固件更新数据向主站发送成功接收的应答,从站根据接收到的固件更新数据进行固件升级。
现有技术的缺陷:现有技术采用主站分别升级每个从站固件的方式来进行,由于整个通信网络最多可以支持247个从站,当从站的数目多的情况下,主站分别对每个从站进行固件升级,非常耗时,升级速度慢,效率低下。
发明内容
本发明实施例提供了一种从站固件更新的方法、***、主站及从站,能够有效提升多个从站固件更新的效率。
本发明实施例的第一方面提供了一种从站固件更新的方法,包括:
主站获取多个目标从站中各目标从站的地址信息,以及所述多个目标从站的待更新的固件数据包,所述多个目标从站为需要更新固件数据包的从站。
所述主站根据所述各目标从站的地址信息向所述各目标从站发送设置帧,以使所述目标从站根据所述设置帧设置所述目标从站的状态位并向所述从站反馈接收所述设置帧的确认信息,所述状态位的不同状态值用于指示所述固件数据包的接收或存入情况。
所述主站根据所述确认信息确认所述各目标从站初始化设置成功后,广播所述固件数据包,以使所述各目标从站根据所述固件数据包进行数据更新,并在数据更新过程中调整所述状态位的状态值。
进一步的,所述方法还包括:
所述主站向各目标从站发送查询帧,所述查询帧用于指示所述各目标从站反馈所述各目标从站的状态位的状态值。
所述主站接收所述目标从站发送的所述状态值。
当所述主站接收到所述各目标从站中的至少一个目标从站返回的状态值时,将所述至少一个目标从站返回的第二状态位信息与所述至少一个目标从站对应存储。
所述主站根据存储的所述状态值确定对应目标从站的所述固件数据包的接收或存入情况。
所述主站根据所述接收或存入的情况确定重新广播所述固件数据包。
进一步的,所述主站广播所述固件信息之后,所述方法还包括:
所述主站向各目标从站发送软复位帧,以使所述目标从站根据所述软复位帧执行复位操作。
进一步的,所述主站广播所述固件数据包包括:
所述主站通过多个通信周期广播所述固件数据包。
本发明实施例的第二方面提供了一种从站固件更新的方法,包括:
从站接收所主站发送的设置帧。
所述从站根据所述设置帧设置所述目标从站的状态位并向所述主站发送接收所述设置帧的确认信息,所述状态位的不同状态值用于指示所述固件数据包的接收或存入情况。
所述从站接收所述主站广播的固件数据包。
所述各从站根据所述固件数据包进行数据更新,并在数据更新过程中调整所述状态位的状态值。
当所述从站达到预置状态值时,所述目标从站执行复位操作。
进一步的,所述目标从站接收所述主站广播的固件数据包时,所述方法还包括:
所述从站接收所述主站发送的查询帧。
所述从站根据所述查询帧反馈所述各目标从站的状态位的状态值。
进一步的,所述目标从站执行复位操作包括:
所述从站接收所述主站发送的软复位帧。
所述从站根据所述软复位帧执行复位操作。
进一步的,所述目标从站接收所述主站广播的固件数据包包括:
所述从站接收所述主站多通信周期广播的所述固件数据包。
本发明实施例的第三方面提供了一种主站,包括:
获取模块,用于获取多个目标从站中各目标从站的地址信息,以及所述多个目标从站的待更新的固件数据包,所述多个目标从站为需要更新固件数据包的从站。
第一发送模块,用于根据所述获取模块获取的各目标从站的地址信息向所述各目标从站发送设置帧,以使所述目标从站根据所述设置帧设置所述目标从站的状态位,所述状态位的不同状态值用于指示所述固件数据包的接收或存入情况。
第一接收模块,用于接收所述目标从站发送的已接收所述设置帧的确认信息。
数据传输模块,用于根据所述确认信息确认所述各目标从站初始化设置成功后,广播所述固件数据包,以使所述各目标从站根据所述固件数据包进行数据更新,并在数据更新过程中调整所述状态位的状态值。
进一步的,还包括:
第二发送模块,用于向各目标从站发送查询帧,所述查询帧用于指示所述各目标从站反馈所述各目标从站的状态位的状态值。
第二接收模块,用于接收所述目标从站发送的所述状态值。
存储模块,当所述接收模块接收到所述各目标从站中的至少一个目标从站返回的状态值时,将所述至少一个目标从站返回的第二状态位信息与所述至少一个目标从站对应存储。
确定模块,用于根据所述存储模块存储的所述状态值确定对应目标从站的所述固件数据包的接收或存入情况。
所述数据传输模块,还用于根据所述确定模块确定的接收或存入的情况确定重新广播所述固件数据包。
进一步的,还包括:
第三发送模块,用于向各目标从站发送软复位帧,以使所述目标从站根据所述软复位帧执行复位操作。
本发明实施例的第四方面提供了一种从站,包括:
第三接收模块,用于接收所主站发送的设置帧。
设置模块,用于根据所述第三接收模块接收的所述设置帧设置所述目标从站的状态位,所述状态位的不同状态值用于指示所述固件数据包的接收或存入情况。
第四发送模块,用于根据所述第三接收模块接收的所述设置帧向所述主站发送确认信息。
第四接收模块,用于接收所述主站广播的固件数据包。
数据更新模块,用于根据所述第四接收模块接收的所述固件数据包进行数据更新,并在数据更新过程中调整所述状态位的状态值。
执行模块,用于当所述目标从站达到预置状态值时,执行复位操作。
进一步的,还包括:
第五接收模块,用于接收所述主站发的送查询帧。
第五发送模块,用于根据所述第五接收模块接收的所述查询帧向所述主站发送所述各目标从站的状态位的状态值。
进一步的,所述执行模块包括:
接收单元,用于接收所述主站发送的软复位帧。
执行单元,用于根据所述接收单元接收的所述软复位帧执行复位操作。
本发明的第五方面提供了一种从站固件更新的***,包括:主站和多个从站;
主站获取多个从站中各从站的地址信息,以及所述多个从站的待更新的固件数据包,所述多个从站为需要更新固件数据包的从站。
所述主站根据所述各从站的地址信息向所述各从站发送设置帧。
所述从站接收主站发送的设置帧。
所述从站根据所述设置帧设置所述从站的状态位并向所述从站反馈接收所述设置帧的确认信息,所述状态位的不同状态值用于指示所述固件数据包的接收或存入情况。
所述主站根据所述确认信息确认所述各从站初始化设置成功后,广播所述固件数据包。
所述从站接收所述主站广播的固件数据包并根据所述固件数据包进行数据更新,并在数据更新过程中调整所述状态位的状态值。
进一步的,广播所述固件数据包时,所述主站向各从站发送查询帧,所述查询帧用于指示所述各从站反馈所述各从站的状态位的状态值。
所述从站接收所述主站发的送查询帧。
所述从站根据所述查询帧反馈所述各从站的状态位的状态值。
所述主站接收所述从站发送的所述状态值。
当所述主站接收到所述各从站中的至少一个从站返回的状态值时,将所述至少一个从站返回的第二状态位信息与所述至少一个从站对应存储。
所述主站根据存储的所述状态值确定对应从站的所述固件数据包的接收或存入情况。
所述主站根据所述接收或存入的情况确定重新广播所述固件数据包。
进一步的,所述主站广播所述固件信息之后,所述主站向各从站发送软复位帧。
所述从站接收所述主站发送的软复位帧。
所述从站根据所述软复位帧执行复位操作。
进一步的,所述主站广播所述固件数据包包括:
所述主站通过多个通信周期广播所述固件数据包。
所述从站接收所述主站多通信周期广播的所述固件数据包。
从以上技术方案可以看出,本发明实施例具有以下优点:
主站获取多个目标从站中各目标从站的地址信息,以及所述多个目标从站的待更新的固件数据包,其中,多个目标从站为需要更新固件数据包的从站,主站根据确认信息确认所述各目标从站初始化设置成功后,主站通过广播的数据传输方式向各目标从站传输固件数据包,以使各目标从站可以一起接收主站传输的固件数据包,多个目标从站根据固件数据包独立进行数据更新,能够使多个从站固件更新速度快,效率高。
附图说明
图1为本发明实施例1的一种从站固件更新的方法的示意图;
图2为本发明实施例2的一种从站固件更新的方法的示意图;
图3为本发明实施例3的一种从站固件更新的方法的示意图;
图4为本发明实施例4的一种主站的示意图;
图5为本发明实施例5的一种从站的示意图;
图6为本发明实施例6的一种从站固件更新的***的示意图。
具体实施方式
本发明实施例提供了一种从站固件更新的方法、主站及从站,能够有效提升多个从站固件更新的效率。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。下面分实施例对本发明进行具体描述。
实施例1
请参阅图1所示,本发明提供了一种从站固件更新的方法,包括:
101、主站获取多个目标从站中各目标从站的地址信息,以及多个目标从站的待更新的固件数据包。
可以理解的是,主站可以从上位机获取多个从站的相关信息,也可以从可扩展标记语言xml文件中获取多个从站的相关信息,该多个从站的相关信息包括在该主站的网络覆盖范围下共有多少个从站,这些从站中有多少需要进行固件更新的从站。主站确定需要进行固件更新的从站为目标从站,该从站的相关信息还包括目标从站的地址信息,以及待更新的固件数据包。
该固件数据包可以包括以下几项内容:站地址,表示目标从站的站地址;功能码,定义功能(可以自定义为0x1C);包个数,表示共有多少个数据包;包序号,表示当前第几个包;包大小,表示固件数据包的大小;数据,固件信息。
其中,该固件数据包括的数据格式可以为如下所示:
站地址 功能码 包个数 包序号 包大小 数据 数据
102、主站根据各目标从站的地址信息向各目标从站发送设置帧。
主站根据各目标从站的地址信息向各目标从站发送设置帧,以使目标从站接收到该设置帧根据设置帧设置目标从站的状态位并向从站反馈接收设置帧的确认信息。
状态位的不同状态值用于指示固件数据包的接收或存入情况。
可以理解的是,该设置帧可以包括如下内容:站地址、功能码(可以自定义为0x20),错误标识(16bit),写FLASH标志(1bit)和可写标志(1bit)。
其中,该设置帧的数据格式可以为如下所示:
站地址 功能码 错误标志1 错误标志2 Flash标志 可写标志
可以理解的是,主站根据各目标从站的地址信息向各目标从站发送设置帧,以使各目标从站读取该设置帧中的数据信息,并根据读取的数据设置目标从站的状态位的第一状态值,该第一状态值可以用来表示目标从站的状态位的初始化值,即还未接收固件数据包时的状态值,例如,目标从站可以将错误标志位设置为“错误”,将Flash标志位设置为“未写”,将可写标志位设置为“可写”。
103、主站接收各目标从站发送的确认信息。
若在预置时间段内,未收到第N目标从站的确认信息(N用于区分各从站,可以为标识也可以为序号),则执行步骤102;若在预置时间段内,主站确认收到各从站的确认信息,执行步骤104。
104、主站根据各目标从站发送的确认信息确认各从站初始化设置成功后,主站广播固件数据包,以使各从站接收该固件数据包,并将该固件数据包的数据写入Flash,完成固件更新。
若主站在预置时间段内接收到各从站发送的确认信息,则主站确定各目标从站初始化设置成功,主站通过广播的通信方式传输固件数据包,以使各从站接收该固件数据包,并将该固件数据包的数据写入Flash,完成固件更新的过程,在接收该固件数据包的过程中,调整从站状态位的状态值,该状态值用于表示固件数据包接收或写入Flash的情况。
实施例2
请参阅图2所示,本发明提供了一种从站固件更新的方法,包括:
201、从站接收主站发送的设置帧。
从站接收主站发送的设置帧,该设置帧可以包括如下内容:站地址位、功能码位(可以自定义为0x20),错误标识位(16bit),写FLASH标志位(1bit)和可写标志位(1bit)。
其中,该设置帧的数据格式可以为如下所示:
站地址 功能码 错误标志1 错误标志2 Flash标志 可写标志
需要说明的是,本实施例中的从站与实施例1中的目标从站相同,即为固件需要更新的从站。
202、从站根据设置帧设置目标从站的状态位的状态值。
从站读取该设置帧中的数据信息,并根据读取的数据设置目标从站的状态位的第一状态值,该第一状态值可以用来表示目标从站的状态位的初始化值,即还未接收固件数据包时的状态值,例如,目标从站可以将错误标志位设置为“错误”,表明该目标从站还未接收数据;将Flash标志位设置为“未写”,表明该目标从站未有固件数据包写入Flash;将可写标志位设置为“可写”,表明该目标从站为固件需要更新的从站。状态位的不同状态值用于指示固件数据包的接收或存入情况。
203、从站向主站发送接收设置帧的确认信息。
若从站根据设置帧完成设置从站状态位的状态值,即从站完成状态值的初始化设置,该从站向主站发送用于指示该从站完成初始化设置的确认信息。
204、从站接收主站广播的固件数据包。
从站接收主站以广播形式传输的固件数据包,该固件数据包可以包括以下几项内容:站地址,表示目标从站的站地址;功能码,可以自定义为0x1C;包个数,表示共有多少个数据包;包序号,表示当前第几个包;包大小,表示固件数据包的大小;数据,固件信息。
其中,该固件数据的数据格式可以为如下所示:
站地址 功能码 包个数 包序号 包大小 数据 数据
可以理解的是,从站可以读取固件数据包的功能码(0x1C),该功能码用于指示该数据包为以广播的方式传输的数据包,从站即接收该固件数据包,或者从站可以读取该数据包中的站地址,根据站地址确认是否接受该固件数据包括。
205、从站根据固件数据包进行数据更新,并在数据更新过程中调整状态位的状态值。
从站根据固件数据包进行数据更新,在数据更新的过程中将第一状态值调整到第二状态值,该第二状态值用于指示从站更新固件数据包的进行情况。
其中,从站在数据更新的过程中将第一状态值调整到第二状态值的具体过程包括:
从站接收到固件数据包,从站对固件数据包进行CRC校验,若从站判断CRC校验正确,则从站将从站状态位中对应的错误标志从第一状态值的“错误”调整为第二状态值的“正确”,表明从站已接收到该固件数据包。
从站将固件数据包中的数据存到内存中。
若从站判定每一个固件数据包中的错误标志均为“正确”,则从站将固件数据包中的数据写入Flash,并将从站状态位中对应的Flash标志从第一状态值的“未写”调整为“已写”,表明该从站已经将固件数据包中数据写入Flash中。
若从站判定各个固件数据包中的数据均已写入Flash中,从站对Flash中已写入的数据进行CRC校验。
若从站对已写入Flash中的数据CRC校验正确,则从站将从站状态位的状态值调整为第三状态值,该第三状态值可以理解为设置固件更新标识,以表明从站的固件更新完成。
206、当状态值达到预置值时,从站执行复位操作。
当从站达到预置的第三状态值时,该从站接收外部输入的复位指令,从站根据复位指令执行复位操作。
本发明实施例中,通过在数据更新过程中调整状态位的状态值,记录数据接收状态,保证了从站接收数据的准确性。
实施例3
请参阅图3所示,本发明实施例提供一种从站固件更新的方法,包括:
301、主站获取多个目标从站中各目标从站的地址信息,以及多个目标从站的待更新的固件数据包,多个目标从站为需要更新固件数据包的从站。
可以理解的是,主站可以从上位机获取多个从站的相关信息,也可以从可扩展标记语言xml文件中获取多个从站的相关信息,该多个从站的相关信息包括在该主站的网络覆盖范围下共有多少个从站,这些从站中有多少需要进行固件更新的从站。主站确定需要进行固件更新的从站为目标从站,该从站的相关信息还包括目标从站的地址信息,以及待更新的固件数据包。
该固件数据包可以包括以下几项内容:站地址,表示目标从站的站地址;功能码,可以自定义为0x1C;包个数,表示共有多少个数据包;包序号,表示当前第几个包;包大小,表示固件数据包的大小;数据,固件信息。
其中,该固件数据包括的数据格式可以为如下所示:
站地址 功能码 包个数 包序号 包大小 数据 数据
需要说明的是,该从站获取的固件数据包为未分包的数据包,从站进行分包的操作,也可以理解为获取的固件数据包为已进行分包之后的数据包,此处不限定。对于该固件数据包的大小说明:每128byte为1个帧,每2kbyte为1各块,1个块包含16个帧,Flash需要按块烧写,一个固件数据包为多个块。
302、主站根据各目标从站的地址信息向各目标从站发送设置帧。
从站接收主站发送的设置帧,该设置帧可以包括如下内容:站地址、功能码(可以自定义为0x20),错误标识(16bit),写FLASH标志(1bit)和可写标志(1bit)。
其中,该设置帧的数据格式可以为如下所示:
站地址 功能码 错误标志1 错误标志2 Flash标志 可写标志
303、从站接收主站发送的设置帧,并根据设置帧设置从站的状态位的状态值。
可以理解的是,从站可以读取固件数据包的功能码(0x1C),该功能码用于指示该数据包为以广播的方式传输的数据包,从站即接收该固件数据包,或者从站可以读取该数据包中的站地址,根据站地址确认是否接收该固件数据包括。
状态位的不同状态值用于指示固件数据包的接收或存入情况。
从站读取该设置帧中的数据信息,并根据读取的数据设置目标从站的状态位的第一状态值,该第一状态值可以用来表示从站的状态位的初始化值,即未接收固件数据包时的状态值,例如,从站可以将错误标志位设置为“错误”,表明该目标从站还未接收数据;将Flash标志位设置为“未写”,表明该目标从站未有固件数据包写入Flash;将可写标志位设置为“可写”,表明该目标从站为固件需要更新的从站。该从站的状态位的不同状态值用于指示固件数据包的接收或存入情况。在本实施例中将状态位“可写”的从站称为目标从站。
304、从站向主站发送接收设置帧的第一确认信息,
若从站根据设置帧完成设置从站状态位的状态值,即从站完成状态值的初始化设置,从站向主站发送第一确认信息。
305、当主站根据确认信息确认各目标从站初始化设置成功后,广播固件数据包。
由于主站是通过广播的形式传输固件数据包,每一个从站均能接收到主站传输的固件数据包,主站根据确认信息确认初始化主站中每个从站的状态,需要说明的是,主站内存中存储对应的各目标从站的状态。
若在预置时间段内,未收到第N从站的确认信息(N用于区分各从站,可以为标识也可以为序号),则主站重复发送该设置帧,例如,主站重发该设置帧3次,以保证从站可以接收到所述主站发送的设置帧,若主站仍然未收到该目标从站发送的确认信息,主站将该目标从站的状态设置为“无响应”。
若在预置时间段内,主站确认完成了各从站的状态的设置,则主站确认各目标从站初始化设置成功,当主站确认各目标从站初始化设置成功后,执行步骤306。
306、从站接收主站广播的固件数据包。
可以理解的是,此步骤之后的从站为目标从站,目标从站可以读取固件数据包的功能码(0x1C),该功能码用于指示该数据包为以广播的方式传输的数据包,目标从站即可以接收该固件数据包。
307、各目标从站根据固件数据包进行数据更新,并在数据更新过程中调整状态位的状态值。
从站根据固件数据包进行数据更新,在数据更新的过程中将第一状态值调整到第二状态值,该第二状态值用于指示从站更新固件数据包的进行情况。
其中,从站在数据更新的过程中将第一状态值调整到第二状态值的具体过程包括:
从站接收到固件数据包,从站对固件数据包进行CRC校验,若从站判断CRC校验正确,则从站将从站状态位中对应的错误标志从第一状态值的“错误”调整为第二状态值的“正确”,表明从站已接收到该固件数据包。
从站将固件数据包中的数据存到内存中。
若从站判定每一个固件数据包中的错误标志均为“正确”,则从站将固件数据包中的数据写入Flash,并将从站状态位中对应的Flash标志从第一状态值的“未写”调整为“已写”,表明该从站已经将固件数据包中数据写入Flash中。
对写入Flash中的数据进行CRC校验,若CRC校验正确,设置更新标志,以表明从站的固件数据更新完成。
需要说明的是,每个固件数据包由多个块组成,从站对应状态对应的表征一个块的传输状况。从站接收到一个块传完后,将一个块的数据写进Flash然后再接收另一个块,可以理解的是步骤307是一个重复的过程,直到所有数据传输完毕后,从站对写入Flash中的数据进行CRC校验,若CRC校验正确,设置更新标志,以表明从站的固件数据更新完成。
308、主站向各从站发送查询帧。
可以理解的是,主站可以分通信周期广播固件数据包,每一个通信周期一次性广播一个块16个帧的数据,并等待预置时长,由于主站发送广播的固件数据包时,是没有从站会发出响应的,这时主站需要进行查询确认以便使从站能够确认本次通信周期广播的固件数据包传输正确,所以主站会向目标从站发送查询帧,以使从站进行响应。主站向各目标广播数据包的过程中,主站各目标从站发送查询帧。该查询帧用于指示各目标从站反馈各目标从站的状态位的状态值。
309、从站接收主站发的送查询帧。
该查询帧包括站地址和功能码,功能码可以自定义为0x21,查询帧的格式如下所示:
站地址 功能码
310、从站根据查询帧反馈该目标从站的状态位的状态值。
反馈的帧格式与设置从站状态位的帧格式相同。反馈的数据格式为:
站地址 功能码 错误标志1 错误标志2 Flash标志 可写标志
311、当主站接收到各目标从站中的至少一个目标从站返回的状态值时,将至少一个目标从站返回的状态值与至少一个目标从站对应存储;
可以理解的是,主站根据从站返回的状态值在内存中会对应存储各从站的从站状态,根据状态值确定是否重新广播固件数据包。
从站状态还包括:传输错误,写Flash错误等。
站地址 功能码 错误标志1 错误标志2 Flash标志 可写标志
例如,当主站接收到第N个目标从站反馈的第二状态信息中对应的错误标识的状态值为“正确”,则主站将该目标从站的状态位的错误标志的状态值对应存储为“正确”,表明该目标从站已接收到第N个固件数据包且接收到的固件数据包正确。
312、主站根据存储的状态值确定对应目标从站的固件数据包的接收或存入情况。
主站根据接收或存入情况确定是否重新广播对应的固件数据包。
例如:从站判定每一个固件数据包中的错误标志均为“正确”,则从站将固件数据包中的数据写入Flash,并将从站状态位中对应的Flash标志从第一状态值的“未写”调整为“已写”,表明该从站已经将固件数据包中数据写入Flash中。
若主站未接收到该目标从站反馈的错误标志的状态值为“正确”的第二状态信息,则主站广播重发对应的数据帧,并等待预置时长,以保证从站可以接收到并接收正确的数据帧,若重试3次仍接收错误,主站设置主站中该目标从站对应的从站的状态为“传输错误”。
同理,若主站在预置时长内未接收到该目标从站反馈的对应的Flash标志为“已写”的状态值,则主站将该从站的状态位的状态存储为“Flash错误”。
313、当主站确定各目标从站的对应的状态位均被对应存储且所有固件数据包传输完成,主站向各目标从站发送软复位帧。
当主站确定各从站的对应的状态位均被对应存储且所有固件数据包的数据传输完成,表明主站需要向各从站的广播传输的固件数据包已传输完成,主站向各目标从站发送软复位帧。
314、目标从站接收主站发送的软复位帧。
软复位帧的格式如下:
站地址 功能码
315、从站向主站发送收到第二确认信息。
从站向主站发送的第二确认信息的数据格式与软复位帧的格式相同。
确认信息的数据格式如下:
站地址 功能码
316、目标从站根据软复位帧执行复位操作。
从站根据软复位帧执行复位操作是,根据固件更新标志从Flash区调取已写入的数据,将该已写入的数据调整到实际运行的区域,最终完成对所有从站同时固件升级的任务。
本发明实施例中,通过主站发送查询帧对从接收的数据状态进行查询,主站根据接收或存入情况确定是否重新广播对应的固件数据包,以保证从站能够准确接收到固件数据包。
实施例4
上面对本发明实施例中的用户切换方法进行了描述,下面对本发明实施例中的一种主站进行描述,请参阅图4,本发明实施例中提供一种主站1包括:
获取模块401,用于获取多个目标从站中各目标从站的地址信息,以及多个目标从站的待更新的固件数据包,多个目标从站为需要更新固件数据包的从站。
第一发送模块402,用于根据获取模块401获取的各目标从站的地址信息向各目标从站发送设置帧,以使目标从站根据设置帧设置目标从站的状态位,状态位的不同状态值用于指示固件数据包的接收或存入情况。
第一接收模块403,用于接收目标从站发送的已接收设置帧的确认信息。
数据传输模块404,用于根据第一接收模块403接收的确认信息确认各目标从站初始化设置成功后,广播固件数据包,以使各目标从站根据固件数据包进行数据更新,并在数据更新过程中调整状态位的状态值。
进一步的,主站1还包括:
第二发送模块405,用于向各目标从站发送查询帧,查询帧用于指示各目标从站反馈各目标从站的状态位的状态值。
第二接收模块406,用于接收目标从站发送的状态值。
存储模块407,当第二接收模块406接收到各目标从站中的至少一个目标从站返回的状态值时,将至少一个目标从站返回的第二状态位信息与至少一个目标从站对应存储。
确定模块408,用于根据存储模块407存储的状态值确定对应目标从站的固件数据包的接收或存入情况。
数据传输模块404,还用于根据所述确定模块408确定的所述接收或存入情况重新广播所述固件数据包。
第三发送模块409,用于向各目标从站发送软复位帧,以使目标从站根据软复位帧执行复位操作。
实施例5
请参阅图5所示,本发明实施例提供一种从站2包括:
第三接收模块501,用于接收所主站发送的设置帧。
设置模块502,用于根据第三接收模块501接收的设置帧设置目标从站的状态位,状态位的不同状态值用于指示固件数据包的接收或存入情况。
第四发送模块503,用于根据第三接收模块501接收的设置帧向主站发送确认信息。
第四接收模块504,用于接收主站广播的固件数据包。
数据更新模块505,用于根据第四接收模块504接收的固件数据包进行数据更新,并在数据更新过程中调整状态位的状态值。
执行模块506,用于当目标从站达到预置状态值时,执行复位操作。
第五接收模块507,用于接收主站发的送查询帧。
第五发送模块508,用于根据第五接收模块507接收的查询帧向主站发送各目标从站的状态位的状态值。
进一步的,执行模块506还包括:
接收单元5061,用于接收主站发送的软复位帧。
执行单元5062,用于根据接收单元5061接收的软复位帧执行复位操作。
实施例6
请参阅图6所示,本发明提供了一种从站2固件更新的***,包括:包括主站1和多个从站2。
主站1获取多个从站2中各从站2的地址信息,以及所述多个从站2的待更新的固件数据包,所述多个从站2为需要更新固件数据包的从站2。
所述主站1根据所述各从站2的地址信息向所述各从站2发送设置帧。
所述从站2接收主站1发送的设置帧。
所述从站2根据所述设置帧设置所述从站2的状态位并向所述从站2反馈接收所述设置帧的确认信息,所述状态位的不同状态值用于指示所述固件数据包的接收或存入情况。
所述主站1根据所述确认信息确认所述各从站2初始化设置成功后,广播所述固件数据包。
所述从站2接收所述主站1广播的固件数据包并根据所述固件数据包进行数据更新,并在数据更新过程中调整所述状态位的状态值。
进一步的,广播所述固件数据包时,所述主站1向各从站2发送查询帧,所述查询帧用于指示所述各从站2反馈所述各从站2的状态位的状态值。
所述从站2接收所述主站1发的送查询帧。
所述从站2根据所述查询帧反馈所述各从站2的状态位的状态值。
所述主站1接收所述从站2发送的所述状态值。
当所述主站1接收到所述各从站2中的至少一个从站2返回的状态值时,将所述至少一个从站2返回的第二状态位信息与所述至少一个从站2对应存储。
所述主站1根据存储的所述状态值确定对应从站2的所述固件数据包的接收或存入情况。
所述主站1根据所述接收或存入的情况确定重新广播所述固件数据包。
进一步的,所述主站1广播所述固件信息之后,所述主站1向各从站2发送软复位帧。
所述从站2接收所述主站1发送的软复位帧。
所述从站2根据所述软复位帧执行复位操作。
进一步的,所述主站1通过多个通信周期广播所述固件数据包。
所述从站2接收所述主站1多通信周期广播的所述固件数据包。
所述***的具体工作步骤可以参阅实施例1至实施例3对应的具体描述,此处不赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (18)

1.一种从站固件更新的方法,其特征在于,包括:
主站获取多个目标从站中各目标从站的地址信息,以及所述多个目标从站的待更新的固件数据包,所述多个目标从站为需要更新固件数据包的从站;
所述主站根据所述各目标从站的地址信息向所述各目标从站发送设置帧,以使所述目标从站根据所述设置帧设置所述目标从站的状态位并向所述主站反馈所述设置帧的确认信息,所述状态位的不同状态值用于指示所述固件数据包的接收或存入情况;
所述主站根据所述确认信息确认所述各目标从站初始化设置成功后,广播所述固件数据包,以使所述各目标从站根据所述固件数据包进行数据更新,并在数据更新过程中调整所述状态位的状态值。
2.根据权利要求1所述的方法,其特征在于,广播所述固件数据包时,所述方法还包括:
所述主站向各目标从站发送查询帧,所述查询帧用于指示所述各目标从站反馈所述各目标从站的状态位的状态值;
所述主站接收所述目标从站发送的所述状态值;
当所述主站接收到所述各目标从站中的至少一个目标从站返回的状态值时,将所述至少一个目标从站返回的第二状态位信息与所述至少一个目标从站对应存储;
所述主站根据存储的所述状态值确定对应目标从站的所述固件数据包的接收或存入情况;
所述主站根据所述接收或存入的情况确定重新广播所述固件数据包。
3.根据权利要求1或2所述的方法,其特征在于,所述主站广播所述固件信息之后,所述方法还包括:
所述主站向各目标从站发送软复位帧,以使所述目标从站根据所述软复位帧执行复位操作。
4.根据权利要求1或2所述的方法,其特征在于,所述主站广播所述固件数据包包括:
所述主站通过多个通信周期广播所述固件数据包。
5.一种从站固件更新的方法,其特征在于,包括:
从站接收主站发送的设置帧;
所述从站根据所述设置帧设置所述从站的状态位并向所述主站发送接收所述设置帧的确认信息,所述状态位的不同状态值用于指示所述固件数据包的接收或存入情况;
所述从站接收所述主站广播的固件数据包;
各所述从站根据所述固件数据包进行数据更新,并在数据更新过程中调整所述从站状态位的状态值;
当所述从站达到预置状态值时,所述从站执行复位操作。
6.根据权利要求5所述的方法,其特征在于,所述从站接收所述主站广播的固件数据包时,所述方法还包括:
所述从站接收所述主站发的送查询帧;
所述从站根据所述查询帧反馈各所述从站的状态位的状态值。
7.根据权利要求5或6所述的方法,其特征在于,所述从站执行复位操作包括:
所述从站接收所述主站发送的软复位帧;
所述从站根据所述软复位帧执行复位操作。
8.根据权利要求5或6所述的方法,其特征在于,所述从站接收所述主站广播的固件数据包包括:
所述从站接收所述主站多通信周期广播的所述固件数据包。
9.一种主站,其特征在于,包括:
获取模块,用于获取多个目标从站中各目标从站的地址信息,以及所述多个目标从站的待更新的固件数据包,所述多个目标从站为需要更新固件数据包的从站;
第一发送模块,用于根据所述获取模块获取的各目标从站的地址信息向所述各目标从站发送设置帧,以使所述目标从站根据所述设置帧设置所述目标从站的状态位,所述状态位的不同状态值用于指示所述固件数据包的接收或存入情况;
第一接收模块,用于接收所述目标从站发送的已接收所述设置帧的确认信息;
数据传输模块,用于根据所述确认信息确认所述各目标从站初始化设置成功后,广播所述固件数据包,以使所述各目标从站根据所述固件数据包进行数据更新,并在数据更新过程中调整所述状态位的状态值。
10.根据权利要求9所述的主站,其特征在于,还包括:
第二发送模块,用于向各目标从站发送查询帧,所述查询帧用于指示所述各目标从站反馈所述各目标从站的状态位的状态值;
第二接收模块,用于接收所述目标从站发送的所述状态值;
存储模块,当所述接收模块接收到所述各目标从站中的至少一个目标从站返回的状态值时,将所述至少一个目标从站返回的第二状态位信息与所述至少一个目标从站对应存储;
确定模块,用于根据所述存储模块存储的所述状态值确定对应目标从站的所述固件数据包的接收或存入情况;
所述数据传输模块,还用于根据所述确定模块确定的所述接收或存入情况确定重新广播所述固件数据包。
11.根据权利要求9或10所述的主站,其特征在于,还包括:
第三发送模块,用于向各目标从站发送软复位帧,以使所述目标从站根据所述软复位帧执行复位操作。
12.一种从站,其特征在于,包括:
第三接收模块,用于接收所主站发送的设置帧;
设置模块,用于根据所述第三接收模块接收的所述设置帧设置目标从站的状态位,所述状态位的不同状态值用于指示固件数据包的接收或存入情况;
第四发送模块,用于根据所述第三接收模块接收的所述设置帧向所述主站发送确认信息;
第四接收模块,用于接收所述主站广播的固件数据包;
数据更新模块,用于根据所述第四接收模块接收的所述固件数据包进行数据更新,并在数据更新过程中调整所述状态位的状态值;
执行模块,用于当所述目标从站达到预置状态值时,执行复位操作。
13.根据权利要求12所述的从站,其特征在于,还包括:
第五接收模块,用于接收所述主站发送的查询帧;
第五发送模块,用于根据所述第五接收模块接收的所述查询帧向所述主站发送各所述目标从站的状态位的状态值。
14.根据权利要求12或13所述的从站,其特征在于,所述执行模块包括:
接收单元,用于接收所述主站发送的软复位帧;
执行单元,用于根据所述接收单元接收的所述软复位帧执行复位操作。
15.一种从站固件更新的***,其特征在于,所述***包括主站和多个从站;
主站获取多个从站中各从站的地址信息,以及所述多个从站的待更新的固件数据包,所述多个从站为需要更新固件数据包的从站;
所述主站根据所述各从站的地址信息向所述各从站发送设置帧;
所述从站接收主站发送的设置帧;
所述从站根据所述设置帧设置所述从站的状态位并向所述主站反馈所述设置帧的确认信息,所述状态位的不同状态值用于指示所述固件数据包的接收或存入情况;
所述主站根据所述确认信息确认所述各从站初始化设置成功后,广播所述固件数据包;
所述从站接收所述主站广播的固件数据包并根据所述固件数据包进行数据更新,并在数据更新过程中调整所述状态位的状态值。
16.根据权利要求15所述的***,其特征在于,
广播所述固件数据包时,所述主站向各从站发送查询帧,所述查询帧用于指示所述各从站反馈所述各从站的状态位的状态值;
所述从站接收所述主站发的送查询帧;
所述从站根据所述查询帧反馈所述各从站的状态位的状态值;
所述主站接收所述从站发送的所述状态值;
当所述主站接收到所述各从站中的至少一个从站返回的状态值时,将所述至少一个从站返回的第二状态位信息与所述至少一个从站对应存储;
所述主站根据存储的所述状态值确定对应从站的所述固件数据包的接收或存入情况;
所述主站根据所述接收或存入的情况确定重新广播所述固件数据包。
17.根据权利要求15或16所述的***,其特征在于,所述主站广播所述固件信息之后,
所述主站向各从站发送软复位帧;
所述从站接收所述主站发送的软复位帧;
所述从站根据所述软复位帧执行复位操作。
18.根据权利要求15或16所述的***,其特征在于,所述主站广播所述固件数据包包括:
所述主站通过多个通信周期广播所述固件数据包;
所述从站接收所述主站多通信周期广播的所述固件数据包。
CN201580084468.6A 2015-12-29 2015-12-29 一种从站固件更新的方法、***、主站及从站 Active CN108293060B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2015/099328 WO2017113080A1 (zh) 2015-12-29 2015-12-29 一种从站固件更新的方法、***、主站及从站

Publications (2)

Publication Number Publication Date
CN108293060A CN108293060A (zh) 2018-07-17
CN108293060B true CN108293060B (zh) 2021-06-08

Family

ID=59224004

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580084468.6A Active CN108293060B (zh) 2015-12-29 2015-12-29 一种从站固件更新的方法、***、主站及从站

Country Status (2)

Country Link
CN (1) CN108293060B (zh)
WO (1) WO2017113080A1 (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI703836B (zh) * 2019-11-26 2020-09-01 台達電子工業股份有限公司 基於EtherCAT協定的資料交握方法
CN110941179B (zh) * 2019-12-09 2023-03-31 杭州和利时自动化有限公司 一种无扰下装方法、装置、设备及可读存储介质
CN111639876B (zh) * 2020-06-07 2022-05-17 电管家能源管理(上海)有限公司 一种主站连接与计算***
CN111817939B (zh) * 2020-07-22 2022-01-28 浙江中控技术股份有限公司 基于工业以太网协议的主站冗余实现***及方法
CN112035135A (zh) * 2020-08-07 2020-12-04 珠海格力电器股份有限公司 从站设备的固件程序更新方法、设备和存储介质
CN112565041B (zh) * 2020-12-18 2022-06-14 杭州和利时自动化有限公司 一种ff现场总线***的硬件信息配置方法、装置及介质
CN112929251B (zh) * 2021-02-07 2022-09-09 深圳市显控科技股份有限公司 基于can的从站数据刷新方法、装置及***
CN114244753B (zh) * 2021-11-29 2023-09-29 上海繁易信息科技股份有限公司 基于rs485总线的多个上位机与控制器快速通讯方法
CN114268539B (zh) * 2021-12-22 2023-09-12 中国长江三峡集团有限公司 自动进行Powerlink主站配置下发并监视的前置处理方法及***
CN116028387A (zh) * 2023-01-31 2023-04-28 惠州市海葵信息技术有限公司 数据处理方法、从站、主站以及存储介质
CN116980290B (zh) * 2023-09-22 2024-01-26 北京智芯微电子科技有限公司 红外通讯升级方法、装置和电子设备
CN117784699B (zh) * 2024-02-28 2024-05-28 深圳市瑞天激光有限公司 一种通讯方法、装置及***

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102945181A (zh) * 2012-12-03 2013-02-27 钜泉光电科技(上海)股份有限公司 基于电力线来进行设备软件更新的方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010198332A (ja) * 2009-02-25 2010-09-09 Canon Inc ファームウェア更新装置、ファームウェア更新システム、ファームウェア更新方法、およびファームウェア更新プログラム
JP5857451B2 (ja) * 2011-06-03 2016-02-10 富士通株式会社 配信方法及び配信システム
WO2012159369A1 (zh) * 2011-08-05 2012-11-29 华为技术有限公司 门户应用组件信息的传递方法及从站和主站
CN102546784B (zh) * 2011-12-29 2014-03-26 深圳市迈进科技有限公司 一种基于can总线进行批量升级设备固件的方法
CN103414547B (zh) * 2013-07-22 2017-10-10 大唐移动通信设备有限公司 一种主站控制多从站的方法、主站以及***
CN104980956B (zh) * 2015-06-29 2019-02-22 迈锐数据(北京)有限公司 远程批量更新节点固件的方法
CN105049309B (zh) * 2015-07-29 2018-03-09 上海新时达电气股份有限公司 基于powerlink实时以太网的伺服驱动器同步方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102945181A (zh) * 2012-12-03 2013-02-27 钜泉光电科技(上海)股份有限公司 基于电力线来进行设备软件更新的方法

Also Published As

Publication number Publication date
CN108293060A (zh) 2018-07-17
WO2017113080A1 (zh) 2017-07-06

Similar Documents

Publication Publication Date Title
CN108293060B (zh) 一种从站固件更新的方法、***、主站及从站
CN102546784B (zh) 一种基于can总线进行批量升级设备固件的方法
EP2456257B1 (en) Method and system for upgrading wireless data card
CN104144466A (zh) 物联网中传感器接入方法、物联网***和服务器
CN102625281A (zh) 无线通信模块及其升级方法
CN104949288A (zh) 多联空调机组及其程序升级***和方法、程序升级装置
CN106155734B (zh) 一种软件版本的下载方法及装置
CN107273158B (zh) 程序升级方法及装置、主机、从机和多联机空调***
CN106681777A (zh) 一种多联机程序快速升级方法
CN113721966B (zh) 节点升级方法、装置、存储介质及电子装置
CN103516824A (zh) 基于ip层的网络拓扑识别方法和设备
CN109379204A (zh) 多联机***固件升级方法、计算机装置及计算机可读存储介质
US20220334824A1 (en) Method for managing software versions of electronic device(s) in a vehicle and related device
CN108800454A (zh) 数据同步方法及装置、多联机空调***
CN104750524A (zh) 升级数据包的传输方法及装置、数据包的升级方法及装置
CN104079371A (zh) 一种数据通信方法、设备及***
CN105389281A (zh) Can总线数据发送、接收方法及固件升级方法
CN112311736B (zh) 遥控装置、家电设备及其通信协议配置方法、装置
CN112035135A (zh) 从站设备的固件程序更新方法、设备和存储介质
CN102932208A (zh) 站点监控方法及装置
CN102341784B (zh) MoCA中发生错误时快速MAP恢复的方法
CN106412657B (zh) 一种机顶盒烧写序列码的方法及***
CN115334041A (zh) 一种主从站通讯设备自动分配地址的方法、主站、从站和***
CN106909331A (zh) 一种bms参数扩展及显示***
CN102907032A (zh) 基于capwap协议的wlan wtp固件版本升级的方法、装置和***

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