基于控制器的软件升级或烧录方法、装置和系统与流程

文档序号:12363054阅读:409来源:国知局
基于控制器的软件升级或烧录方法、装置和系统与流程

本发明涉及工业设备的软件升级技术领域,具体而言,涉及一种基于控制器的软件升级或烧录方法、装置和系统。



背景技术:

随着工业技术的发展,控制器作为CPU与输入输出设备之间的接口,广泛应用于各种仪器与设备中。但是,在本领域,由于控制器在出厂时便同步烧录相应的应用程序,因而,在售后维护阶段,对于控制器的软件升级,主要采用的手段是直接用新的控制器替换旧的控制器,或通过远程软件升级或者USB升级,如果涉及硬件更换,则需要厂家直接生产已烧录有应用程序的控制器,并且要保证更换的控制器与旧的控制器上烧录的应用程序一致,使得控制器的整个更换周期长,效率低。

公开号为CN103438551B的专利文献公开了一种中央空调控制系统及其控制软件升级方法,主要是通过移动终端与待升级控制器对接进行程序升级。该方案对于控制器全新升级较好,但是需要外部移动终端配合才能够实现。

针对上述由于现有的控制器需要在出厂时同步更新好相应的软件程序造成控制器更换周期长、效率低和通用性差的问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明实施例提供了一种基于控制器的软件升级或烧录方法、装置和系统,以至少解决由于现有的控制器需要在出厂时同步更新好相应的软件程序造成控制器更换周期长、效率低和通用性差的技术问题。

根据本发明实施例的一个方面,提供了一种基于控制器的软件升级或烧录方法,包括:第一控制器建立与第二控制器进行通信的通信链路,其中,第一控制器和第二控制器为硬件结构相同的同一类控制器,第一控制器预先安装有升级或烧录的服务程序,第二控制器存储有应用程序;第一控制器通过通信链路发送控制请求,其中,控制请求至少包括:第一控制器的硬件信息和请求升级或烧录的应用程序信息;第一控制器接收第二控制器根据控制请求返回的代码数据,其中,代码数据包括请求升级或烧录的应用程序。

根据本发明实施例的另一方面,还提供了一种基于控制器的软件升级或烧录系统,包括:通信装置,用于第一控制器建立与第二控制器的进行通信的通信链路,其中,第一控制器和第二控制器为硬件结构相同的同一类控制器,第一控制器预先安装有升级或烧录的服务程序,第二控制器存储有应用程序;第一控制器,用于通过通信链路发送控制请求,并接收第二控制器根据控制请求返回的代码数据,其中,控制请求至少包括:第一控制器的硬件信息和请求升级或烧录的应用程序信息,代码数据包括请求升级或烧录的应用程序;第二控制器,用于通过通信链路接收第一控制器发出的控制请求,并根据控制请求将存储在第二控制器的存储模块中的代码数据发送至第一控制器。

根据本发明实施例的另一方面,还提供了一种基于控制器的软件升级或烧录装置,包括:通信模块,用于第一控制器建立与第二控制器进行通信的通信链路,其中,第一控制器和第二控制器为硬件结构相同的同一类控制器,第一控制器预先安装有升级或烧录的服务程序,第二控制器存储有应用程序;发送模块,用于第一控制器通过通信链路发送控制请求,其中,控制请求至少包括:第一控制器的硬件信息和请求升级或烧录的应用程序信息;接收模块,用于第一控制器接收第二控制器根据控制请求返回的代码数据,其中,代码数据包括请求升级或烧录的应用程序。

根据本发明实施例的另一方面,还提供了一种控制系统,包括:上述任意一项的基于控制器的软件升级或烧录系统。

在本发明实施例中,通过第一控制器建立与第二控制器进行通信的通信链路,其中,第一控制器和第二控制器为硬件结构相同的同一类控制器,第一控制器预先安装有升级或烧录的服务程序,第二控制器存储有应用程序;第一控制器通过通信链路发送控制请求,其中,控制请求至少包括:第一控制器的硬件信息和请求升级或烧录的应用程序信息;第一控制器接收第二控制器根据控制请求返回的代码数据,其中,代码数据包括请求升级或烧录的应用程序,达到了无需第三方设备便完成控制器软件的自动升级或烧录的的目的,从而实现了提高控制器通用性、缩短控制器更换周期以及提高控制器软件升级的准确性的技术效果,进而解决了由于现有的控制器需要在出厂时同步更新好相应的软件程序造成控制器更换周期长、效率低和通用性差的技术问题。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本发明实施例的一种基于控制器的软件升级或烧录方法流程图;

图2是根据本发明实施例的一种可选的基于控制器的软件升级或烧录方法流程图;

图3是根据本发明实施例的一种可选的基于控制器的软件升级或烧录方法流程图;

图4是根据本发明实施例的一种可选的基于控制器的软件升级或烧录方法流程图;

图5是根据本发明实施例的一种优选的基于控制器的软件烧录方法流程图;

图6是根据本发明实施例的一种基于控制器的软件升级或烧录系统示意图;

图7是根据本发明实施例的一种可选的基于控制器的软件升级或烧录系统示意图;

图8是根据本发明实施例的一种可选的基于控制器的软件升级或烧录系统示意图;

图9是根据本发明实施例的一种可选的基于控制器的软件升级或烧录系统示意图;

图10是根据本发明实施例的一种可选的基于控制器的软件升级或烧录系统示意图;以及

图11是根据本发明实施例的一种基于控制器的软件升级或烧录装置示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

实施例1

根据本发明实施例,提供了一种基于控制器的软件升级或烧录方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

图1是根据本发明实施例的一种基于控制器的软件升级或烧录方法流程图,如图1所示,该方法包括如下步骤:

步骤S102,第一控制器建立与第二控制器进行通信的通信链路,其中,第一控制器和第二控制器为硬件结构相同的同一类控制器,第一控制器预先安装有升级或烧录的服务程序,第二控制器存储有应用程序。

具体地,在上述步骤中,上述第一控制器可以为需要更换的新的控制器,即厂家生产的预先安装有升级或烧录的服务程序的控制器;上述第二控制器可以为待更换的旧的控制器,该控制器存储有相应的应用程序;上述应用程序可以为为完成某项或多项特定工作而开发的运行于操作系统之上的计算机程序;上述服务程序可以为在上述第一控制器生产时已经固化在第一控制器芯片中的程序,主要用于实现整个软件升级过程中的数据交互机制,以及实现控制器的代码读取、写入等功能;上述通信链路可以是有线通信链路也可以是无线通信链路。在将第二控制器更换为第一控制器时,第一控制器无需在出厂时预装第二控制器的应用程序,而只需要预装一些升级或烧录的服务程序。

此处需要说明的是,上述第一控制器和第二控制器为硬件结构相同的同一类控制器,对同类型控制器开发升级或烧录服务程序,在控制器出厂时,将该服务程序固化在控制器的芯片中。

容易注意,上述服务程序主要包括以下几方面的内容:对同在一网络的控制器发出升级请求;接收控制器发出的代码数据;将代码数据写入自身的存储模块;对代码数据进行有效性校验;代码烧录完毕,确认升级成功后重启。

步骤S104,第一控制器通过通信链路发送控制请求,其中,控制请求至少包括:第一控制器的硬件信息和请求升级或烧录的应用程序信息。

具体地,在上述步骤中,上述控制请求可以为上述第一控制器需要烧录软件的请求,包括第一控制器的硬件信息和请求升级或烧录的应用程序信息;第一控制器在建立与第二控制器的通信链路之后,通过该通信链路向第二控制器发送控制请求。

步骤S106,第一控制器接收第二控制器根据控制请求返回的代码数据,其中,代码数据包括请求升级或烧录的应用程序。

具体地,在上述步骤中,上述代码数据可以为包括升级或烧录的应用程序的二进制数据;当第一控制器向第二控制器发送控制请求后,第二控制器根据该控制请求返回相应的需要升级或烧录的应用程序的代码数据,上述第一控制器接收该代码数据,完成软件的升级或烧录。

由上可知,在本申请上述实施例中,通过在待升级或烧录应用程序的控制器中预装升级或烧录的服务程序,当待升级或烧录应用程序的控制器与现场硬件信息相同的控制器建立通信链路后,待升级或烧录应用程序的控制器向现场硬件信息相同的控制发送升级或烧录的应用程序的控制请求,现场硬件信息相同的控制器接收到控制请求后便返回请求升级或烧录的应用程序的代码数据,待升级或烧录的控制器接收该代码数据进而完成应用程序的升级或烧录,达到了无需第三方设备便完成控制器软件的自动升级或烧录的目的,实现了提高控制器通用性、缩短控制器更换周期以及提高控制器软件升级的准确性的技术效果。

在一种可选的实施例中,在第一控制器建立与第二控制器进行通信的通信链路之前,上述方法还可以包括:制定升级或烧录的通信协议,其中,通信协议用于使第一控制器和第二控制器按照预设的数据帧格式进行数据交互。

在上述实施例中,上述通信协议用于使上述第一控制器和第二控制器按照预设的数据帧格式进行数据交互;在第一控制器建立与第二控制器进行通信的通信链路之前,首先要制定升级或烧录的通信协议。

一种可选的实施例中,上述通信协议可以为MODBUS协议、TCP/IP协议等。

通过上述实施例,实现了控制器与控制器之间的数据通信,从而达到确保整个升级数据有效发送的目的。

在一种可选的实施例中,如图2所示,第一控制器建立与第二控制器进行通信的通信链路可以包括如下步骤:

步骤S202,第一控制器根据通信协议广播控制请求;

步骤S204,与第一控制器在同一网络内的控制器集群接收到控制请求后,判断控制请求中的硬件信息是否与控制器集群中的一个或多个控制器的硬件信息相同,其中,控制器集群中与第一控制器的硬件信息相同的控制器为第二控制器;

步骤S206,第二控制器接收控制请求,并生成允许升级或烧录的指令;

步骤S208,在第一控制器接收第二控制器返回的允许升级或烧录的指令之后,建立与第二控制器之间的通信链路。

具体地,在上述步骤中,上述第一控制器为预装有升级或烧录的服务程序的通用控制器;上述控制器集群可以为现场现有的控制器组成的一个集群;当上述第一控制器需要进行应用程序烧录时,第一控制器根据预先建立的通信协议,以广播的形式向与第一控制器在同一网络内的控制器集群发送请求升级或烧录应用程序的控制请求,判断控制请求中包含的第一控制器的硬件信息是否与控制器集群中一个或多个控制器的硬件信息相同,将控制器集群中与第一控制器的硬件信息相同的控制器作为第二控制器,当第二控制器接收到第一控制器发送的控制请求后,生成允许升级或烧录的指令,并将该指令返回给第一控制器,第一控制器在接收到第二控制器返回的允许升级或烧录应用程序的指令之后,建立第一控制器宇第二控制器之间的通信链路。

通过上述步骤,实现了在硬件信息相同的控制器之间建立通信链路的目的,从而保证了应用程序升级或烧录的准确性。

在一种可选的实施例中,在第一控制器接收第二控制器根据请求返回的代码数据之前,如图3所示,上述方法还可以包括如下步骤:

步骤S302,第二控制器通过通信链路接收第一控制器发出的控制请求;

步骤S304,第二控制器根据控制请求将存储在第二控制器的存储模块中的代码数据发送至第一控制器,其中,代码数据包括请求升级或烧录的应用程序。

具体地,在上述步骤中,上述代码数据可以为包含请求升级或烧录的应用程序的代码数据;当第二控制器通过通信链路接收到来自第一控制器发出的升级或烧录应用程序的请求后,第二控制器根据上述控制将其存储模块中存储的包含应用程序的代码数据发送至第一控制器。

可选地,上述第二控制器的存储模块可以为Flash闪存模块。

通过上述步骤,实现了无需携带第三方设备,直接从现有的控制器中获取应用程序的目的,能够给现场控制器维护带来非常大的便利。

在一种可选的实施例中,在第一控制器接收第二控制器根据请求返回的代码数据之后,如图4所示,上述方法还可以包括如下步骤:

步骤S402,第一控制器将接收到的代码数据按照预设地址写入相应的存储模块;

步骤S404,在第一控制器接收完所有的代码数据后,第一控制器向第二控制器发送升级或烧录完成指令。

具体地,在上述步骤中,当第一控制器接收到第二控制器返回的包含应用程序的代码数据后,第一控制器将接收到的代码数据按照预设地址写入相应存储模块,并在接收完成所有的代码数据之后,向第二控制器发送升级或烧录完成指令。

可选地,上述第一控制器的存储模块可以为Flash闪存模块。

通过上述实施例,通过从现有的控制器中获取应用程序的方式,无需在出厂时将应用程序固化到控制器中,提高了控制器的通用性,缩短了控制器的更换周期。

作为一种优选的实施方式,可以结合图5来说明本申请上述实施例。如图5所示为一种优选的基于控制器的软件烧录方法流程图,包括如下步骤:

步骤S502,将同类型控制器接入同一个网络;

步骤S504,需要烧录程序的控制器发出烧录请求;

步骤S506,网络中已经有相应应用程序的控制器收到请求,确认请求的合法性,并通过指令告知待烧录控制器可以准备程序烧录;

步骤S508,网络中已经有相应应用程序的控制器从自身Flash闪存模块中读取相应的代码二进制数据,并根据指定协议将数据通过通信总线进行发送;

步骤S510,待烧录控制器接收代码数据并根据预设地址写入自身的Flash闪存模块中,写入完毕对整个程序进行校验,校验正确后,完成整个程序的写入。

在上述步骤中,上述同类型控制器可以是硬件一致,包括硬件端口等,只是应用程序不同的控制器;为了实现在控制器与控制器之间的软件升级/烧录功能,当某个控制器需要升级新程序或者烧录程序时,可以按照制定好的通信协议将控制器与现场现有的同类型控制器通过通信接口连接,待升级/烧录控制器接入后,根据协议发出升级情况,在同个网络内的控制器收到请求后,确认是与自己同样控制器,则发出允许升级指令,当两者的升级流程建立之后,网络内的可供升级的控制器开始复制自己的源代码数据,并通过固定的通信方式(有线/无线)发送出去,待升级控制器连续接收相应的源代码数据,并根据预设地址写入到相应的FLASH存储空间中去,最终接收完所有数据,通过校验,自动重启,从而完成整个控制器的自动升级烧录。

容易注意,基于本申请上述实施例,可以设计一种通用控制器,当现场产品需要更换控制器时,可以不需要获取原来的软件烧录文件,直接用旧的控制器或者现场已有的同样机型的控制器,通过某种通信方式对接,直接拷贝原有控制器程序,烧录到新的控制器上,这样一方面对于硬件通用的主板,生产时只需烧写程序升级的服务程序,无需写入应用程序,在后续相应产品需要更换主板时,可以直接在原有主板上拷贝程序。

通过上述实施例提供的技术方案,通过寻找同类型控制器程序升级的方式,有效解决现场程序升级问题,无需担心程序升级错误,无需携带程序,能够给现场维护带了非常大的便利,同时有效解决控制器的通用性。

实施例2

根据本发明实施例,还提供了一种基于控制器的软件升级或烧录系统实施例。本发明实施例1中的基于控制器的软件升级或烧录方法可以在本发明实施例2的系统中执行。

图6是根据本发明实施例的一种基于控制器的软件升级或烧录系统示意图,如图6所示,该系统包括:第一控制器603和第二控制器605。

其中,第一控制器603,用于发送控制请求,并接收第二控制器根据控制请求返回的代码数据,其中,控制请求至少包括:第一控制器的硬件信息和请求升级或烧录的应用程序信息,代码数据包括请求升级或烧录的应用程序。

具体地,上述第一控制器可以为需要更换的新的控制器,即厂家生产的预先安装有升级或烧录的服务程序的控制器;上述应用程序可以为为完成某项或多项特定工作而开发的运行于操作系统之上的计算机程序;上述控制请求可以为上述第一控制器需要烧录软件的请求,包括第一控制器的硬件信息和请求升级或烧录的应用程序信息;第一控制器在建立与第二控制器的通信链路之后,通过该通信链路向第二控制器发送控制请求。

第二控制器605,与第一控制器603连接,用于与第一控制器建立通信链路,接收第一控制器发出的控制请求,并根据控制请求将存储在第二控制器的存储模块中的代码数据发送至第一控制器;其中,第一控制器和第二控制器为硬件结构相同的同一类控制器,第一控制器预先安装有升级或烧录的服务程序,第二控制器存储有应用程序。

具体地,上述第二控制器可以为待更换的旧的控制器,该控制器存储有相应的应用程序;上述代码数据可以为包括升级或烧录的应用程序的二进制数据;上述通信链路可以是有线通信链路也可以是无线通信链路;上述服务程序可以为在上述第一控制器生产时已经固化在第一控制器芯片中的程序,主要用于实现整个软件升级过程中的数据交互机制,以及实现控制器的代码读取、写入等功能;在将第二控制器更换为第一控制器时,第一控制器无需在出厂时预装第二控制器的应用程序,而只需要预装一些升级或烧录的服务程序;当第一控制器向第二控制器发送控制请求后,第二控制器根据该控制请求返回相应的需要升级或烧录的应用程序的代码数据,上述第一控制器接收该代码数据,完成软件的升级或烧录。

此处需要说明的是,上述第一控制器和第二控制器为硬件结构(包括硬件端口)相同、而应用程序不同的同一类控制器,对同类型控制器开发升级或烧录服务程序,在控制器出厂时,将该服务程序固化在控制器的芯片中。

容易注意,上述服务程序主要包括以下几方面的内容:对同在一网络的控制器发出升级请求;接收控制器发出的代码数据;将代码数据写入自身的存储模块;对代码数据进行有效性校验;代码烧录完毕,确认升级成功后重启。

由上可知,在本申请上述实施例中,通过在待升级或烧录应用程序的控制器中预装升级或烧录的服务程序,当待升级或烧录应用程序的控制器与现场硬件信息相同的控制器建立通信链路后,待升级或烧录应用程序的控制器向现场硬件信息相同的控制发送升级或烧录的应用程序的控制请求,现场硬件信息相同的控制器接收到控制请求后便返回请求升级或烧录的应用程序的代码数据,待升级或烧录的控制器接收该代码数据进而完成应用程序的升级或烧录,达到了无需第三方设备便完成控制器软件的自动升级或烧录的目的,实现了提高控制器通用性、缩短控制器更换周期以及提高控制器软件升级的准确性的技术效果。

在一种可选的实施例中,如图7所示,上述系统还包括:通信装置601,用于建立第一控制器和第二控制器的通信链路;其中,通信装置至少包括以下之一:无线通讯模块或通信总线。

具体地,在上述实施例中,上述通信装置可以为无线通信模块,例如,WIFI模块、蓝牙模块、GPRS模块和Zigbee模块等,也可以为有线通信总线,例如CAN总线、PCI总线等。

通过上述实施例,实现了控制器与控制器之间的数据通信,从而达到确保整个升级数据有效发送的目的。

在一种可选的实施例中,如图8所示,上述第一控制器还可以包括:第一存储模块6031,用于存储升级或烧录的服务程序。

具体地,上述第一控制器为基于本申请实施例设计的一种通用控制器,上述第一存储模块可以为上述第一控制器中的一个Flash闪存模块,用于存储升级或烧录的服务程序。

基于上述实施例,当现场产品需要更换控制器时,可以不需要获取原来的软件烧录文件,直接用旧的控制器或者现场已有的同样机型的控制器,通过某种通信方式对接,直接拷贝原有控制器程序,烧录到新的控制器上,这样一方面对于硬件通用的主板,生产时只需烧写程序升级的服务程序,无需写入应用程序,在后续相应产品需要更换主板时,可以直接在原有主板上拷贝程序。

通过上述实施例,实现从现有的控制器中获取应用程序的方式,无需在出厂时将应用程序固化到控制器中,提高了控制器的通用性,缩短了控制器的更换周期。

在一种可选的实施例中,如图8所示,上述第二控制器还可以包括:第二存储模块6051,用于存储应用程序。

具体地,上述第二控制器为现场旧的控制器,上述第二存储模块可以为上述第二控制器中一个Flash闪存模块,用于存储相应的应用程序。

通过上述实施例,实现了无需携带第三方设备,直接从现有的控制器中获取应用程序的目的,能够给现场控制器维护带来非常大的便利。

一种可选的实施例中,上述第一存储模块和第二存储模块均可以为Flash存储器。

在一种可选的实施例中,上述系统还包括:中央处理器,用于制定升级或烧录的通信协议,其中,升级或烧录协议用于使第一控制器和第二控制器按照预设的数据帧格式进行数据交互。

在上述实施例中,上述通信协议用于使上述第一控制器和第二控制器按照预设的数据帧格式进行数据交互;在第一控制器建立与第二控制器进行通信的通信链路之前,首先要制定升级或烧录的通信协议。

可选地,上述通信协议可以为MODBUS协议、TCP/IP协议等。

在一种可选的实施例中,如图9所示,上述第一控制器还可以包括:

第一处理器6037,与第一存储模块连接,用于在第一控制器接收第二控制器返回的允许升级或烧录的指令之后,建立与第二控制器之间的通信链路;

第一发送装置6033,与第一处理器连接,用于第一控制器根据通信协议广播控制请求,以及在第一控制器接收完所有的代码数据后,第一控制器向第二控制发送升级或烧录完成指令;

第一接收装置6035,与第一发送装置连接,用于第一控制器接收第二控制器返回的允许升级或烧录的指令。

具体地,当第一控制器接收到第二控制器返回的包含应用程序的代码数据后,第一控制器将接收到的代码数据按照预设地址写入相应存储模块,并在接收完成所有的代码数据之后,向第二控制器发送升级或烧录完成指令。

在一种可选的实施例中,上述系统还可以包括:检测装置,用于与第一控制器在同一网络内的控制器集群接收到控制请求后,判断控制请求中的硬件信息是否与控制器集群中的一个或多个控制器的硬件信息相同,其中,控制器集群中与第一控制器的硬件信息相同的控制器为第二控制器。

具体地,上述第一控制器为预装有升级或烧录的服务程序的通用控制器;上述控制器集群可以为现场现有的控制器组成的一个集群;当上述第一控制器需要进行应用程序烧录时,第一控制器根据预先建立的通信协议,以广播的形式向与第一控制器在同一网络内的控制器集群发送请求升级或烧录应用程序的控制请求,判断控制请求中包含的第一控制器的硬件信息是否与控制器集群中一个或多个控制器的硬件信息相同,将控制器集群中与第一控制器的硬件信息相同的控制器作为第二控制器,当第二控制器接收到第一控制器发送的控制请求后,生成允许升级或烧录的指令,并将该指令返回给第一控制器,第一控制器在接收到第二控制器返回的允许升级或烧录应用程序的指令之后,建立第一控制器宇第二控制器之间的通信链路。

一种可选的实施例中,将同类型的控制接入同一个网络,需要烧录程序的控制器发出烧录请求,网络中已经有相应应用程序的控制器收到请求,确认请求的合法性,并通过指令告知待烧录控制器可以准备程序烧录,网络中已经有相应应用程序的控制器从自身Flash闪存模块中读取相应的代码二进制数据,并根据指定协议将数据通过通信总线进行发送,待烧录控制器接收代码数据并根据预设地址写入自身的Flash闪存模块中,写入完毕对整个程序进行校验,校验正确后,完成整个程序的写入。

通过上述实施例,实现了在硬件信息相同的控制器之间建立通信链路的目的,从而保证了应用程序升级或烧录的准确性。

在一种可选的实施例中,如图10所示,上述第二控制器还可以包括:第二接收装置6053,与第二存储模块6051连接,用于第二控制器接收控制请求;第二处理器6055,与第二接收装置6053连接,用于根据控制请求生成允许升级或烧录的指令;第二发送装置6057,与所述第二处理器6055连接,用于第二控制器根据控制请求将存储在第二控制器的存储模块中的代码数据发送至第一控制器,其中,代码数据为请求升级或烧录的应用程序。

具体地,上述代码数据可以为包含请求升级或烧录的应用程序的二进制数据;当第二控制器通过通信链路接收到来自第一控制器发出的升级或烧录应用程序的请求后,第二控制器根据上述控制将其存储模块中存储的包含应用程序的代码数据发送至第一控制器。

可选地,上述第二控制器的存储模块可以为Flash闪存模块。

在一种可选的实施例中,上述第一存储模块6031还用于存储第一控制器接收到的代码数据。

作为一种优选的实施方式,为了实现在控制器与控制器之间的软件升级/烧录功能,当某个控制器需要升级新程序或者烧录程序时,可以按照制定好的通信协议将控制器与现场现有的同类型控制器通过通信接口连接,待升级/烧录控制器接入后,根据协议发出升级情况,在同个网络内的控制器收到请求后,确认是与自己同样控制器,则发出允许升级指令,当两者的升级流程建立之后,网络内的可供升级的控制器开始复制自己的源代码数据,并通过固定的通信方式(有线/无线)发送出去,待升级控制器连续接收相应的源代码数据,并根据预设地址写入到相应的FLASH存储空间中去,最终接收完所有数据,通过校验,自动重启,从而完成整个控制器的自动升级烧录。

基于上述实施例,可以设计一种通用控制器,当现场产品需要更换控制器时,可以不需要获取原来的软件烧录文件,直接用旧的控制器或者现场已有的同样机型的控制器,通过某种通信方式对接,直接拷贝原有控制器程序,烧录到新的控制器上,这样一方面对于硬件通用的主板,生产时只需烧写程序升级的服务程序,无需写入应用程序,在后续相应产品需要更换主板时,可以直接在原有主板上拷贝程序。

通过上述实施方式提供的技术方案,通过寻找同类型控制器程序升级的方式,有效解决现场程序升级问题,无需担心程序升级错误,无需携带程序,能够给现场维护带了非常大的便利,同时有效解决控制器的通用性。

根据本发明实施例的另一方面,还提供了一种控制系统,其特征在于,包括上述任意一项基于控制器的软件升级或烧录系统所提供的可选或优选的实施例。

实施例3

根据本发明实施例,还提供了一种基于控制器的软件升级或烧录装置实施例。本发明实施例1中的基于控制器的软件升级或烧录方法可以在本发明实施例3的装置中执行。

图11是根据本发明实施例的一种基于控制器的软件升级或烧录装置示意图,如图11所示,该装置包括:通信模块101、第一发送模块103和第一接收模块105。

其中,通信模块101,用于第一控制器建立与第二控制器进行通信的通信链路,其中,第一控制器和第二控制器为硬件结构相同的同一类控制器,第一控制器预先安装有升级或烧录的服务程序,第二控制器存储有应用程序;第一发送模块103,用于第一控制器通过通信链路发送控制请求,其中,控制请求至少包括:第一控制器的硬件信息和请求升级或烧录的应用程序信息;第一接收模块105,用于第一控制器接收第二控制器根据控制请求返回的代码数据,其中,代码数据包括请求升级或烧录的应用程序。

由上可知,在本申请上述实施例中,通过在待升级或烧录应用程序的控制器中预装升级或烧录的服务程序,当待升级或烧录应用程序的控制器与现场硬件信息相同的控制器建立通信链路后,待升级或烧录应用程序的控制器向现场硬件信息相同的控制发送升级或烧录的应用程序的控制请求,现场硬件信息相同的控制器接收到控制请求后便返回请求升级或烧录的应用程序的代码数据,待升级或烧录的控制器接收该代码数据进而完成应用程序的升级或烧录,达到了无需第三方设备便完成控制器软件的自动升级或烧录的目的,实现了提高控制器通用性、缩短控制器更换周期以及提高控制器软件升级的准确性的技术效果。

在一种可选的实施例中,上述装置还包括:创建模块,用于制定升级或烧录的通信协议,其中,通信协议用于使第一控制器和第二控制器按照预设的数据帧格式进行数据交互。

在一种可选的实施例中,上述通信模块还包括:第二发送模块,用于第一控制器根据通信协议广播控制请求;检测模块,用于与第一控制器在同一网络内的控制器集群接收到控制请求后,判断控制请求中的硬件信息是否与控制器集群中的一个或多个控制器的硬件信息相同,其中,控制器集群中与第一控制器的硬件信息相同的控制器为第二控制器;第二接收模块,用于第二控制器接收控制请求,并生成允许升级或烧录的指令;建立模块,用于在第一控制器接收第二控制器返回的允许升级或烧录的指令之后,建立与第二控制器之间的通信链路。

在一种可选的实施例中,上述装置还包括:第三发送模块,用于第二控制器根据控制请求将存储在第二控制器的存储模块中的代码数据发送至第一控制器,其中,代码数据包括请求升级或烧录的应用程序。

在一种可选的实施例中,上述装置还包括:第三接收模块,用于第一控制器将接收到的代码数据按照预设地址写入相应的存储模块;第四发送模块,用于在第一控制器接收完所有的代码数据后,第一控制器向第二控制器发送升级或烧录完成指令。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1