嵌入式设备及其升级方法、控制终端与流程

文档序号:18161009发布日期:2019-07-13 09:19阅读:198来源:国知局
嵌入式设备及其升级方法、控制终端与流程

本发明涉及嵌入式设备技术领域,特别是涉及一种嵌入式设备及其升级方法、控制终端。



背景技术:

传统的嵌入式设备在升级过程中可以采用通过烧写工具烧写来实现,此时通常需要连接特定的烧写器或者线缆逐个地升级。嵌入式设备也可以通过操作现场与其数据通信的设备或者软件按照一定的升级流程完成升级,或者通过flash、mmc以及sd卡等存储设备完成升级。采用上述升级方式进行升级的过程中,需要维护人员到达现场对嵌入式设备进行升级,工作量较大、效率低且成本高,尤其是当多个嵌入式设备分散在不同地点的时候。



技术实现要素:

基于此,有必要针对传统的嵌入式设备的升级过程工作量大、效率低且成本高的问题,提供一种嵌入式设备及其升级方法、控制终端。

一种嵌入式设备的升级方法,用于对所述嵌入式设备的目标对象进行升级;所述嵌入式设备中配置有支持预设网络协议的服务器;所述方法包括:

获取通过所述预设网络协议登录所述嵌入式设备所需的识别信息,并获取用于升级所述目标对象的升级文件所在路径以及目标路径;

通过所述服务器与和所述识别信息登录所述嵌入式设备;

根据所述升级文件所在路径获取用于升级所述目标对象的升级文件版本信息;

根据所述目标对象的升级文件所在路径以及目标路径,将与所述目标对象的当前安装版本信息匹配的升级文件复制到所述嵌入式设备中;以及

根据所述升级文件对所述嵌入式设备进行升级。

上述嵌入式设备的升级方法,通过嵌入式设备中配置的支持预设网络协议的服务器可以远程连接到该嵌入式设备中,对嵌入式设备中的目标对象进行升级。升级过程中,将与所述目标对象的当前安装版本信息匹配的升级文件复制到嵌入式设备本地再根据该升级文件对嵌入式设备进行升级。整个升级过程无需到现场进行升级操作,并且可以并行对多个分散在不同地点的嵌入式设备进行升级,可以减少升级工作量,提高了升级效率并降低了升级成本。

在其中一个实施例中,所述预设网络协议为ssh协议,所述服务器为ssh服务器。

在其中一个实施例中,所述方法还包括获取所述嵌入式设备中的所述目标对象的当前安装版本信息;所述当前安装版本信息包括硬件版本信息和当前安装软件版本信息中的至少一个;

所述根据所述目标对象的升级文件所在路径以及目标路径,将与所述目标对象的当前安装版本信息匹配的升级文件复制到所述嵌入式设备中,包括:

获取预设配置文件,所述预设配置文件中设置有所述嵌入式设备的硬件软件兼容映射表;

利用所述预设配置文件判断所述升级文件版本信息和所述当前安装版本信息是否匹配;以及

在所述升级文件版本信息与所述当前安装版本信息匹配时,将与所述目标对象的当前安装版本信息匹配的升级文件复制到所述嵌入式设备中。

在其中一个实施例中,当获取到的升级文件版本信息为多个时,根据预设配置文件确定与所述目标对象的当前安装版本信息匹配的升级文件,并将匹配成功的升级文件展示以供用户选择;或者

展示获取到的升级文件以供用户选择,并接收用户选择的升级文件后获取所述升级文件的升级文件版本信息。

在其中一个实施例中,所述根据所述升级文件对所述嵌入式设备进行升级的步骤之前还包括:

获取所述目标对象的安装文件所在路径以及备份路径;以及

根据所述备份路径将所述安装文件所在路径下的文件进行备份。

在其中一个实施例中,所述根据所述升级文件对所述嵌入式设备进行升级的步骤之前,还包括:

判断所述升级文件是否成功复制到所述嵌入式设备中;

判断所述安装文件所在路径下的文件是否成功备份;

在所述升级文件成功复制到所述嵌入式设备中且所述安装文件所在路径下的文件成功备份后,执行所述根据所述升级文件对所述嵌入式设备进行升级的步骤。

在其中一个实施例中,还包括:在升级失败时,利用备份的文件还原所述目标对象。

在其中一个实施例中,还包括:根据相应操作产生对应的日志文件并保存。

一种控制终端,用于对嵌入式设备的目标对象进行升级;所述嵌入式设备中配置有支持预设网络协议的服务器,其特征在于,所述控制终端中配置有支持所述预设网络协议的客户端,以通过所述服务器登录所述嵌入式设备;所述控制终端还包括存储器和处理器;所述处理器上存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如前述任一实施例所述方法的步骤。

一种嵌入式设备,安装有目标对象;所述嵌入式设备中配置有支持预设网络协议的服务器,以与配置有所述预设网络协议的客户端的控制终端建立网络连接,从而由所述控制终端执行如前述任一实施例所述方法的步骤,以实现对所述嵌入式设备中的目标对象的升级。

附图说明

图1为一实施例中的嵌入式服务器与控制终端的结构示意图。

图2为一实施例中的控制终端的内部结构示意图。

图3为一实施例中的嵌入式设备的升级方法的流程图。

图4为另一实施例中的嵌入式设备的升级方法的流程图。

图5为再一实施例中的嵌入式设备的升级方法的流程图。

图6为又一实施例中的嵌入式设备的升级方法的流程图。

图7为一实施例中的控制终端对嵌入式设备进行升级的流程示意图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

本申请一实施例提供了一种嵌入式设备的升级方法,该方法用于对嵌入式设备的目标对象进行升级。在本案中,目标对象是指安装在嵌入式设备中的各种软件程序或者文件,比如在嵌入式设备上运行的引导加载程序(如bootloader)、操作系统(如linux、vxworks以及windowsce)、库文件(lib)以及应用程序(app)等。也即,本案中的目标对象并不仅仅限于应用程序。

图1为一实施例中的嵌入式设备的升级方法的应用场景图。该嵌入式设备的升级方法可以通过控制终端来执行,以实现对嵌入式设备中的目标对象的升级操作。控制终端可以为普通计算机、工控机或者其他嵌入式设备等。在本实施例中,嵌入式设备中配置有支持预设网络协议的服务器。相应地,控制终端上也配置有支持相同预设网络协议的客户端。在一实施例中,控制终端可以直接与嵌入式设备进行通信连接,也可以通过专门的网络接入设备进行连接。嵌入式设备的通信接口有串口、can、网络等。控制终端上的客户端可以通过预设网络协议登录嵌入式设备以对嵌入式设备进行远程操作,实现对嵌入式设备的远程升级,使得整个升级过程无需到现场进行升级操作,并且可以并行对多个分散在不同地点的嵌入式设备进行升级,可以减少升级工作量,提高了升级效率并降低了升级成本。

在一实施例中,该预设网络协议为ssh(secureshell,安全外壳协议)协议。此时,服务器为ssh服务器,客户端为ssh客户端。ssh协议是一种网络协议,因此只有能进行网络通信的嵌入式设备才能使用ssh协议。ssh协议为建立在应用层和传输层基础上的安全协议,是目前可靠的、专为远程登录会话和其他网络服务提供安全性的协议。采用ssh协议,既能确保数据安全,又不需要开发复杂的交互接口,能够简单方便地进行数据传输和执行指令操作。

在一实施例中,控制终端的内部结构如图2所示。该控制终端包括通过系统总线连接的处理器、存储器和网络接口。其中,该控制终端的处理器用于提供计算和控制能力。该控制终端的存储器包括存储介质、内存储器。该存储介质存储有操作系统和计算机程序。该内存储器为存储介质中的操作系统和计算机程序的运行提供环境。该控制终端的网络接口用于与嵌入式终端通过网络连接通信。该计算机程序被处理器执行时,用于实现一种嵌入式设备的升级方法的步骤。本领域技术人员可以理解,图2中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

图3为一实施例中的嵌入式设备的升级方法的流程图,该方法包括以下步骤:

步骤s310,获取通过预设网络协议登录嵌入式设备所需的识别信息,并获取用于升级目标对象的升级文件所在路径以及目标路径。

在一实施例中,上述升级方法可以通过应用程序或者脚本的形式来实现。因此需要执行该方法时,只需要在控制终端上运行该应用程序或者脚本即可开始升级的整个流程。

在本案中,预设网络协议以ssh协议为例进行说明。获取到的识别信息可以包括嵌入式设备的互联网协议地址(internetprotocoladdress,ipaddress),以及用于登录该嵌入式设备的用户信息。其中,用户信息包括用户名以及密码。在其他的实施例中,用户信息也可以为其他具有用户身份识别功能的特殊字符等信息。目标对象可以由用户进行预设选择和设定,比如设定为安装在嵌入式设备中的某一个应用程序。用于对目标对象进行升级的升级文件可以直接存储在控制终端上,也可以独立存储于控制终端外部的其他终端设备如服务器上,故对应的升级文件所在路径可以指向控制终端内,也可以指向控制终端外部。当升级文件存在控制终端外部时,此时控制终端需要能够与该存储设备进行通信,进而获取到该升级文件。目标路径是指该目标对象在嵌入式设备中的存储路径,而该路径也是固定已知的。也即升级文件所在路径和目标路径都可以预先存储在控制终端中,从而可以直接获取得到。

步骤s320,通过服务器与识别信息登录嵌入式设备。

在本实施例中,通过ssh服务器以及获取到的服务器的互联网协议地址、用户名和密码即可登录嵌入式设备。由于服务器固定在嵌入式设备中,因此通过服务器的互联网协议地址就可以确定需要登录的嵌入式设备。具体地,可以通过调用命令行连接工具并利用识别信息登录嵌入式设备。对于控制终端为windows操作系统时,命令行连接工具可以为plink.exe。通过调用plink.exe操作ssh端口,实现数据传输以及登录并执行命令,并在执行完当前命令后自动关闭。以登录过程为例,可以通过脚本或者应用程序调用plink.exe+用户名+互联网协议地址+密码,登录嵌入式设备。在其他的实施例中,也可以采用pscp.exe等命令行连接工具来传输文件以及登录并执行命令。在本案中涉及到对嵌入式设备进行操作的步骤中,都可以通过调用命令行连接工具来执行该步骤,以实现对嵌入式设备的操作。

步骤s330,根据升级文件所在路径获取用于升级目标对象的升级文件版本信息。

根据获取到的升级文件所在路径去获取存在的升级文件版本类型,从而可以确定出用于升级目标对象的升级文件版本信息。例如,当该升级文件所在路径中的升级文件只有一个版本的时候,显然就可以直接将其认定为用于升级目标对象的升级文件版本信息。如果升级文件所在路径中的升级文件存在多个版本,则可以根据预设规则去确定一个版本信息作为用于升级目标对象的升级文件版本信息。

步骤s340,根据目标对象的升级文件所在路径以及目标路径,将与目标对象的当前安装版本信息匹配的升级文件复制到嵌入式设备中。

在确定升级文件版本信息后,从升级文件所在路径去获取对应的升级文件后,将与目标对象的当前安装版本信息匹配的升级文件复制到嵌入式设备本地,只有本地复制成功,才对目标对象进行升级。具体地,可以通过脚本或应用程序调用命令行连接工具+升级文件所在的路径及升级文件版本信息+用户名+互联网协议地址+密码+目标路径,从控制终端复制该升级文件到嵌入式设备。

可以理解,要实现升级,升级文件可以包括用于升级目标对象的待升级程序和待升级文件(或者待升级文本)等。也即在本实施例中,是基于ssh协议进行升级文件的传输和下载,从而不容易出现数据丢失的情况,具有较高的安全性,并且升级文件通过网络传输,传输速度快。

步骤s350,根据升级文件对嵌入式设备进行升级。

在将升级文件复制到嵌入式设备后,即可对嵌入式设备进行升级操作。具体地,可以通过脚本或应用程序调用命令行连接工具+用户名+互联网协议地址+密码+升级相关命令,对嵌入式设备要进行升级的目标对象进行升级。

上述嵌入式设备的升级方法,通过嵌入式设备中配置的支持预设网络协议的服务器可以远程连接到该嵌入式设备中,对嵌入式设备中的目标对象进行升级。升级过程中,将与目标对象的当前安装版本信息匹配的升级文件复制到嵌入式设备本地再根据该升级文件对嵌入式设备进行升级。整个升级过程无需到现场进行升级操作,并且可以并行对多个分散在不同地点的嵌入式设备进行升级,可以减少升级工作量,提高了升级效率并降低了升级成本。上述升级方法可单独对某个程序或某个文件进行升级,也可以对多个程序或文件进行升级,便于不同人员分别开发与维护运行在嵌入式设备上的不同程序或文件。上述升级方法完全由控制终端的脚本或应用程序实现,可以按需求任意改变,可扩展性强。

图4为另一实施例中的嵌入式设备的升级方法的流程图,该方法还包括步骤s410以及步骤s420。

步骤s410,获取嵌入式设备中的目标对象的当前安装版本信息。

步骤s410执行在步骤s320之后,也即在登录之后对嵌入式设备中的目标对象的当前安装版本信息进行查询。当前安装版本信息包括硬件版本信息和当前安装软件版本信息中的至少一个。其中,硬件版本信息是指安装目标对象所需要的硬件条件。当前安装软件版本是指嵌入式设备中当前安装的软件版本信息。具体地,可以通过脚本或应用程序调用命令行连接工具+用户名+互联网协议地址+密码+版本查询命令,获取嵌入式设备中的目标对象的当前安装版本信息。例如,可以通过读eeprom(带电可擦可编程只读存储器)信息、引脚电平等方式获取硬件版本信息,通过读取目标对象的文件名等方式获取当前安装的软件版本信息。

步骤s420,判断升级文件版本信息与当前安装版本信息是否匹配。

步骤s420执行在步骤s330和步骤s340之间。在一实施例中,当前安装版本信息中仅包括当前安装的软件版本信息,从而只需要将升级文件版本信息与当前安装的软件版本信息进行匹配,以确保升级后目标对象仍能够正常的与其他应用程序或者设备进行交互。当嵌入式设备中的硬件发生变化后,则当前安装版本信息中需要包括硬件版本信息和当前安装的软件版本信息,以确保升级文件版本信息能够同时与硬件版本信息以及当前安装的软件版本信息相互匹配。

在进行匹配判断过程中,可以根据预设配置文件来判断升级文件版本信息与当前安装版本信息是否匹配,从而避免出现功能不符,甚至系统崩溃等问题。可以理解,升级文件版本信息必然与硬件版本信息匹配。在一实施例中,在匹配过程中,可以先去获取预设配置文件,然后根据该预设配置文件去进行判断。预设配置文件中可以包括硬件软件兼容映射表。其中,硬件软件兼容映射表中的匹配关系可以是一对一、一对多、多对一或者多对多。因此,可以由控制终端运行升级脚本读取扩展性标识语言(extensiblemarkuplanguage,xml)文件获取到该映射表。

在判断出升级文件版本信息与获取到当前安装版本信息相匹配时,才执行步骤s340,从而确保升级文件版本信息能够在硬件和软件方面均匹配。只有升级文件版本信息匹配了才不会出现功能不符、系统崩溃等问题。当判断出不匹配时,则执行步骤s430,结束操作,也即退出当前的升级方法。

在一实施例中,在步骤s330中,当升级文件所在路径下的升级文件版本信息为多个时,可以根据预设配置文件确定与目标对象的当前安装版本信息匹配的升级文件。也即,即便是存在多个升级文件版本时,也可以自动实现整个升级过程。如前所述,预设配置文件中包括由硬件软件兼容映射表,映射表中可以体现升级文件版本的优先级别,从而在存在多个升级文件版本时,直接根据该映射表中的优先级别去确定与目标对象的当前安装版本信息匹配的升级文件。在一实施例中,在确定与目标对象的当前安装版本信息匹配的升级文件后,会将匹配成功的升级文件展示以供用户选择。

在另一实施例中,在步骤s330中,当升级文件所在路径下的升级文件版本信息为多个时,控制终端可以直接展示获取到的升级文件从而供维护人员进行选择,然后接收维护人员(也即用户)选择的升级文件后获取该升级文件的升级文件版本信息,并与当前安装版本信息进行匹配。这种升级操作简单,不易出错。

在一实施例中,在步骤s350之前还包括步骤s440以及步骤s450,如图5所示。

步骤s440,获取目标对象的安装文件所在路径以及备份路径。

图5中,步骤s440执行在步骤s340和步骤s450之间。在其他的实施例中,步骤s440可以和步骤s310同时执行,或者在步骤s450之前的执行即可。如前所述,由于目标对象在嵌入式设备中的安装位置固定已知,因此其安装文件所在路径也是可以预先存储在控制终端中,或者存储在其他的终端中可以供控制终端进行获取。可以理解,安装文件同样可以包括程序和文件中的至少一种。备份路径是指需要将目标对象当前的安装文件备份在嵌入式设备本地的存储地址。该备份路径可以由用户进行设定或者在控制终端中进行默认设置。

步骤s450,根据备份路径将安装文件所在路径下的文件进行备份。

安装文件所在路径下的文件同样包括程序和文件。具体地,可以通过脚本或应用程序调用命令行连接工具+目标对象的安装文件所在路径及其名称+用户名+互联网协议地址+密码+目标路径,备份嵌入式设备上要进行升级的目标对象当前软件版本的文件到嵌入式设备本地。

在完成备份后再执行步骤s350也即升级操作,从而在升级失败时,可以利用备份的文件还原目标对象,确保嵌入式设备能够正常工作。

在一实施例中,在步骤s450和步骤s350之间还包括步骤s460和步骤s470,如图5所示。

步骤s460,判断升级文件是否成功复制到嵌入式设备中。

在完成复制步骤后,也即执行完步骤s340后主动检验该升级文件是否成功复制。

步骤s470,判断安装文件所在路径下的文件是否成功备份。

在完成备份步骤后,也即执行完步骤s450后主动检验该文件是否被成功备份。只有在步骤s460和步骤s470的判断结果均为是,也即升级文件被成功复制且当前的安装文件被成功备份后,才执行步骤s350。否则,均直接执行步骤s430,结束操作,也即不执行升级操作。在一实施例中,步骤s460和步骤s470的顺序可以互换,也可以同时进行判断。

在本实施中,升级过程是在复制以及备份操作均成功完成后再进行,从而使得升级过程不会因为数据传输出错或者不完全而导致升级失败问题的发生,并且可以确保升级过程因为某些原因导致失败时,仍能够给将正确将目标对象还原至升级前的状态,而不会导致嵌入式设备处于失效状态,可以再次进行升级,进一步提高了升级过程的安全性以及可靠性。

在一实施例中,升级文件中包括用于对目标对象进行升级的待升级程序和待升级文件,还包括用于执行升级操作的执行程序。该执行程序可以为脚本或者应用程序。在将升级文件复制到嵌入式设备后,可以通过运行该执行程序来控制嵌入式设备利用升级文件完成对目标对象的升级操作。在一实施例中,可以通过该执行程序来检验升级文件中的待升级程序和待升级文件是否成功完成复制。例如,在升级文件的复制过程中,可以先传输升级所需的待升级程序和待升级文件,后传输要在嵌入式设备中执行的用于实现升级操作的执行程序。在另一实施例中,也可以利用该执行程序去检验嵌入式设备中目标对象当前的安装文件是否成功备份。

在一实施例中,上述方法还包括步骤s510~s530,如图6所示

步骤s510,获取目标对象升级后的安装版本信息。

在完成升级操作后去获取目标对象升级后的安装版本信息。

步骤s520,判断该安装版本信息与升级文件版本信息是否一致。

如果二者一致,则可以表示升级成功,如果不一致则表示升级失败。比如升级前硬件版本为1、软件版本为a,目标对象要升级为b版本,也即升级文件为b版本,升级重启后,获取的硬件版本为1、软件版本为b,则可判断升级成功。当升级成功时,执行步骤s530,否则执行步骤s430,结束操作。

步骤s530,重启目标对象完成升级。

在一实施例中,在整个升级过程中,只要出现错误,则执行步骤s430,结束操作。比如,在匹配失败时,在复制不成功或者备份不成功时,则直接不进入升级操作,以提高整个升级效率。

在一实施例中,会将升级过程的相应操作产生对应的日志文件并保存。比如,可以将升级流程中,每个升级操作以及对应的时间、备份程序或者文件的名称、升级文件版本信息等都会自动记录到日志文件中,便于了解升级过程的详细信息,当升级失败时,可用于问题分析与定位。故,上述升级方法是一种基于ssh协议,且具有备份功能和日志记录功能的通过网络的远程升级方法。

上述升级方法可以有效解决传统的嵌入式设备的升级过程中由于数据传输出错、人工操作失误、存储设备故障等异常导致升级失败甚至设备失效、以及升级命令及数据容易被截获,安全性低,而且操作较复杂,容易出错,升级失败后不能或不容易还原,还可能导致设备失效、不能进行再次升级的问题发生。在对目标对象进行升级的过程中,会根据目标对象设计不同的执行程序。比如应用程序升级通常是重新安装或者替换原有的应用程序文件,此时运行该执行程序后会将待升级程序进行安装或者直接将待升级文件替换原有的应用程序文件。引导加载程序升级先要擦除存储设备(如flash、mmc卡等),再将引导加载程序写入存储设备;操作系统(os)升级同样是擦除和写入存储设备(如emmc),与存放引导加载程序的存储设备是不同的设备或同一个设备不同的存储区域;库文件的升级通常涉及解压缩、增加可执行权限等操作。也即,在本实施例中,在对嵌入式设备进行升级的过程中,需要操作硬件且不限于应用程序的升级过程。

图7为一具体实施例中控制终端对嵌入式设备进行升级操作的过程。具体地,控制终端先运行用于执行升级方法的脚本。通过运行脚本对用于升级目标对象的升级文件版本信息进行确定以及软硬件匹配进行判断后,通过ssh协议传输升级文件给嵌入式设备,并在嵌入式设备接收完成后,发生启动执行脚本命令,从而利用传输的升级文件中所包含的执行脚本(也就可以称之为升级脚本)进行升级,从而完成整个升级过程。也即在本实施例中,需要使用到两个脚本,一个脚本运行在控制终端,而另一个脚本是随升级文件传输至嵌入式设备中,由控制终端命令其运行后,在嵌入式设备中运行以实现对目标对象的升级过程。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

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