一种CPLD在线升级方法及装置与流程

文档序号:17159593发布日期:2019-03-20 00:29阅读:564来源:国知局
一种CPLD在线升级方法及装置与流程

本发明实施例涉及通信技术领域,尤其涉及一种cpld在线升级方法及装置。



背景技术:

随着通信技术的发展,可编程逻辑器件(complexprogrammablelogicdevice,cpld)技术的应用也越来越广泛。比如,cpld技术可以应用于多板卡交换机中。为了解决在cpld技术实际应用中不断出现的各种问题,在cpld技术的整个应用过程中,尤其是在cpld程序的研发调试阶段,cpld程序的更新是不可避免的。

目前,在多板卡交换机中更新cpld程序的方式多种多样,其中,对于在线升级cpld文件(即cpld程序的更新)的方式而言,实现过程为:用户在主控板卡上下达命令,以对主控板卡和业务板卡中的部分或是全部板卡进行cpld文件在线升级。由于每张板卡对应主控板卡上下达的一条命令,且每两条命令的内容不相同,因此,当有多张需要进行cpld文件升级的板卡时,用户便需要对主控板卡上下达多条不同的命令。随着需要进行在线升级的板卡数量的大幅增加,也就需要耗费大量时间下达更多的命令,从而降低了cpld文件在线升级的效率。



技术实现要素:

本发明实施例提供一种cpld在线升级方法及装置,用于解决因针对不同板卡下达不同命令而耗费大量时间,导致cpld文件在线升级的效率过低的问题。

为达到上述目的,本发明采用如下技术方案:

一种cpld文件在线升级的方法,所述方法包括:

板卡获取触发所述板卡进行可编程逻辑器件cpld文件升级的命令;

所述板卡获取cpld在线升级文件集合,所述cpld在线升级文件集合包括至少两个cpld在线升级文件,所述cpld在线升级文件携带有头部信息,所述头部信息包括用于查找cpld在线升级文件的标识,及用于确定所述板卡的cpld待升级文件是否需要升级的信息;

所述板卡根据所述标识,获取所述cpld在线升级文件集合中与所述cpld待升级文件对应的cpld在线升级文件;

若所述头部信息中携带有所述板卡的cpld待升级文件需要升级的信息,则所述板卡对所述cpld待升级文件升级。

一种cpld文件在线升级的装置,所述装置包括:

获取模块,用于获取触发板卡进行可编程逻辑器件cpld文件升级的命令;

所述获取模块,还用于获取cpld在线升级文件集合,所述cpld在线升级文件集合包括至少两个cpld在线升级文件,所述cpld在线升级文件携带有头部信息,所述头部信息包括用于查找cpld在线升级文件的标识,及用于确定所述板卡的cpld待升级文件是否需要升级的信息;

所述获取模块,还用于根据所述标识,获取所述cpld在线升级文件集合中与所述cpld待升级文件对应的cpld在线升级文件;

升级模块,用于若所述获取模块获取的所述头部信息中携带有所述板卡的cpld待升级文件需要升级的信息,则对所述cpld待升级文件升级。

本发明实施例提供一种cpld在线升级方法及装置,与现有技术相比,本发明实施例中,首先将所有板卡对应的cpld在线升级文件组合为一个cpld在线升级文件集合,再令需要进行cpld文件在线升级的板卡获取命令,之后令获取到该命令的板卡获取cpld在线升级文件集合,再令该板卡判断该板卡上的cpld待升级文件是否需要升级,并在需要升级时,进行cpld在线文件升级。本发明实施例中,无论该cpld在线升级文件集合对应多少个cpld在线升级文件,无论这些cpld在线升级文件对应多少个板卡,无论有多少张板卡需要cpld在线升级,都只需要下达一条命令,进而本发明实施例克服了现有技术的缺点,节省了大量时间,提高了cpld文件在线升级的效率,从而解决了因针对不同板卡下达不同命令而耗费大量时间,导致cpld文件在线升级的效率过低的问题。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种多板卡机架式系统的结构示意图;

图2为本发明实施例提供的一种cpld文件在线升级方法的流程图;

图3为本发明实施例提供的一种在线升级源文件中添加头部信息的示意图;

图4为本发明实施例提供的一种合并cpld在线升级文件得到一个cpld在线升级文件集合的示意图;

图5、图6为本发明实施例提供的另一种cpld文件在线升级方法的流程图;

图7为本发明实施例提供的一种加入测试通道后cpld在线升级方法的示意图;

图8为本发明实施例提供的一种cpld文件在线升级的装置结构示意图。

具体实施方式

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

本发明实施例适用于一种系统,该系统可以应用于交换机。其中,该系统可以为多板卡机架式系统。在该系统中,至少包括主控板卡和业务板卡,比如,如图1所示的多板卡机架式系统中,一个主控板卡对应n个业务板卡,其中,n为大于或等于2的自然数。在本发明实施例中,主控板卡与业务板卡之间可以通过管理接口进行数据传输。

其中,主控板卡用于获取命令、下发cpld在线升级文件集合、从主控板卡上的cpld在线升级文件集合中提取cpld在线升级文件、判断主控板卡上的cpld待升级文件是否需要升级;业务板卡用于接收主控板卡下发的命令、接收cpld在线升级文件集合、从接收到的cpld在线升级文件集合中提取cpld在线升级文件、判断业务板卡上的cpld待升级文件是否需要升级。本发明实施例提供了一种cpld文件在线升级的方法,如图2所示,该方法可以由图1所示的主控板卡或业务板卡来执行,该方法包括:

步骤101、板卡获取触发板卡进行cpld文件升级的命令。

其中,触发板卡进行cpld文件升级的命令可以从主控板卡的管理接口获取,即本地获取;或者,该命令还可以从主控板卡的以太接口获取,即从互联网远程获取。主控板卡可以向业务板卡下发该命令,以触发业务板卡进行cpld文件在线升级。

步骤102、板卡获取cpld在线升级文件集合。

其中,已添加头部信息的cpld在线升级源文件被称为cpld在线升级文件;头部信息包括用于查找cpld在线升级文件的标识,及用于确定板卡的cpld待升级文件是否需要升级的信息。在本发明实施例中,用于查找cpld在线升级文件的标识至少包括cpld在线升级文件大小和板卡类型;用于确定板卡的cpld待升级文件是否需要升级的信息至少包括cpld在线升级文件版本和板卡版本。

其中,板卡获取cpld在线升级文件集合的过程可以为:

首先,对于同一系统中所有板卡所对应的cpld在线升级源文件,在每个cpld在线升级源文件中添加头部信息,例如,如图3所示为在cpld在线升级源文件上添加头部信息的过程,该过程的实现方法不做限定。其中,由于每个板卡对应一个cpld在线升级源文件,本系统中至少包括一个业务板卡和一个主控板卡,故本系统的cpld在线升级源文件的数量至少为两个。

之后,再将所有板卡可能用到的cpld在线升级文件合并为一个cpld在线升级文件集合,例如,如图4所示为将m个cpld在线升级文件合并得到一个cpld在线升级文件集合的过程。其中,m为大于或等于2的自然数,文件合并过程不做限定。

最后,板卡获取cpld在线升级文件集合。该过程中,由步骤101中的命令指定需要进行cpld文件在线升级的主控板卡或业务板卡,由该主控板卡或业务板卡获取cpld在线升级文件集合。其中,若该板卡为主控板卡,则该板卡通过该板卡上的以太接口从互联网上获取cpld在线升级文件集合;若该板卡为业务板卡,则该板卡通过该板卡上的管理接口从主控板卡上获取cpld在线升级文件集合。

步骤103、板卡根据用于查找cpld在线升级文件的标识,获取cpld在线升级文件集合中与cpld待升级文件对应的cpld在线升级文件。

步骤104、若头部信息中携带有板卡的cpld待升级文件需要升级的信息,则板卡对cpld待升级文件升级。

其中,若头部信息中没有携带cpld待升级文件需要升级的信息,则丢弃cpld在线升级文件,以降低板卡上用于处理数据和/或计算数据的器件的内存占用率,进而提高升级效率。

综上,本发明实施例中,首先将所有板卡对应的cpld在线升级文件组合为一个cpld在线升级文件集合,再令需要进行cpld文件在线升级的板卡执行步骤101,之后令获取到该命令的板卡获取cpld在线升级文件集合,再令该板卡判断该板卡上的cpld待升级文件是否需要升级,并在需要升级时,进行cpld在线文件升级。本发明实施例中,无论该cpld在线升级文件集合对应多少个cpld在线升级文件,无论这些cpld在线升级文件对应多少个板卡,无论有多少张板卡需要cpld在线升级,都只需要下达一条命令,进而本发明实施例克服了现有技术的缺点,节省了大量时间,提高了cpld文件在线升级的效率。

为了提取与板卡上的cpld待升级文件一一对应的cpld在线升级源文件,将cpld在线升级文件集合展开为多个cpld在线升级源文件,并在展开的多个cpld在线升级源文件中查找与板卡上的cpld待升级文件一一对应的cpld在线升级源文件,在本发明实施例的一种可能的实现方式中,根据cpld在线升级文件中的头部信息上用于查找cpld在线升级文件的标识提取cpld在线升级源文件。因此,在如图2所示的实现方式的基础上,还可以实现为如图5所示的实现方式。其中,步骤103板卡根据标识,获取cpld在线升级文件集合中与cpld待升级文件对应的cpld在线升级文件,可以实现为步骤201至步骤203:

步骤201、板卡确定该板卡的板卡类型。

其中,板卡可以通过有计算和数据处理功能的器件,如中央处理器(centralprocessingunit,cpu)或微处理器(microcontrollerunit,mcu)查看板卡的板卡类型。板卡类型可以根据板卡的硬件形态划分,比如,可以根据板卡的插口数量将板卡划分为16插口板卡、32插口板卡、64插口板卡等不同板卡类型;板卡类型还可以根据板卡的软件功能划分,比如,根据板卡的更新代数(即板卡的版本)可以将板卡划分为一代板卡、二代板卡、三代板卡等不同板卡类型。

步骤202、板卡在cpld在线升级文件集合中查找指定cpld在线升级文件。

其中,指定cpld在线升级文件为与该板卡的板卡类型相同的cpld在线升级文件。并且,板卡在cpld在线升级文件集合中查找与板卡的板卡版本相对应的cpld在线升级文件时,可以从cpld在线升级文件集合的任意位置开始。其过程可以为:

在cpld在线升级文件集合中查看各cpld在线升级文件的头部信息,当查找到的头部信息中的板卡类型与该板卡的板卡类型一致时,则执行步骤203;当查找到的头部信息中的板卡类型与本板卡的板卡类型不一致时,跳过处理该cpld在线升级文件的过程以节省时间,并继续查看下一个cpld在线升级文件上的头部信息。

步骤203、板卡从指定cpld在线升级文件中获取与cpld在线升级源文件大小相同的cpld在线升级源文件。

综上,本发明实施例中,根据板卡类型和cpld在线升级源文件大小,从cpld在线升级文件集合中提取与板卡上的cpld待升级文件一一对应的cpld在线升级源文件,因此,避免了由于板卡无法在cpld在线升级文件集合的多个cpld在线升级文件中,辨别与该板卡上的cpld待升级文件相对应的cpld在线升级文件,因而无法进行cpld在线文件升级的情况。并且,本发明实施例中,板卡可以根据板卡类型和cpld在线升级源文件大小,自动提取cpld在线升级源文件,无需板卡依据获取到的命令提取cpld在线升级源文件的过程;当本系统中不只有一个板卡时,便需要针对各个板卡下达不同的命令。综上,本发明实施例克服了由于板卡无法在cpld在线升级文件集合的多个cpld在线升级文件中,辨别与该板卡上的cpld待升级文件相对应的cpld在线升级文件,因而无法进行cpld在线文件升级的缺陷,和针对不同板卡下达不同命令而耗费大量时间的缺陷,提高了cpld文件在线升级效率。

为了判断板卡是否需要对该板卡上的cpld待升级文件进行升级,在本发明实施例的一种可能的实现方式中,板卡判断该板卡对应的cpld在线升级文件中的头部信息上是否携带有cpld待升级文件需要升级的信息,以决定是否对cpld待升级文件进行升级。因此,在如图2或图5所示的实现方式的基础上,以图2为例,还可以实现为如图6所示的实现方式。其中,步骤104、若头部信息中携带有板卡的cpld待升级文件需要升级的信息,则板卡对cpld待升级文件升级,可以实现为步骤301:

步骤301、若满足指定条件,则板卡对cpld待升级文件进行升级。

其中,指定条件至少包括以下一项:头部信息中携带的板卡版本等于板卡的板卡版本、头部信息中携带的cpld在线升级文件版本高于cpld待升级文件的版本。优选地,指定条件至少包括以下两项:即头部信息中携带的板卡版本等于板卡的板卡版本、头部信息中携带的cpld在线升级文件版本高于cpld待升级文件的版本。

若不满足上述指定条件,则所述板卡丢弃cpld在线升级源文件,以减少内存损耗。

综上,本发明实施例中判断该板卡对应的cpld在线升级文件中的头部信息上是否携带有cpld待升级文件需要升级的信息,以决定是否对cpld待升级文件进行升级,进而避免了cpld待升级文件的升级过程出现混乱(比如,当cpld在线升级文件对应的cpld版本低于板卡上的cpld待升级文件的版本、或当cpld在线升级文件对应的板卡版本不等于该板卡的板卡版本的情况下仍然进行cpld文件在线升级)。

为了应对进行cpld文件在线升级时不断出现的各种问题,在板卡进行cpld文件在线升级的过程中,测试人员可以对多板卡机架式系统进行测试。因此,本发明实施例还可以实现为如图7所示的实现方式。

如图7所示,整个cpld文件在线升级流程可以分为part(部分)a、part(部分)b、part(部分)c三部分。其中,parta为在cpld在线升级源文件上添加头部信息,并将多个cpld在线升级文件合并为一个cpld在线升级文件集合的过程;partb为在主控板卡上提取在线升级源文件并判断主控板卡上的cpld待升级文件是否需要进行cpld在线升级的过程;partc为在业务板卡上提取在线升级源文件并判断业务板卡上的cpld待升级文件是否需要进行cpld在线升级的过程。

在parta中,阶段1为在cpld在线升级源文件上添加头部信息的过程,阶段2为将多个cpld在线升级文件合并为一个cpld在线升级文件集合的过程。其中,实现阶段1和阶段2的具体过程可以参考步骤102中的内容,在此不做赘述。

在partb中,首先,主控板卡上的板卡cpld在线升级文件提取装置接收cpld在线升级文件集合,并向需要进行cpld文件在线升级的业务板卡发送cpld在线升级文件集合。之后,若主控板卡需要进行cpld文件在线升级,则板卡cpld在线升级文件提取装置可以向cpld在线升级文件判断装置发送cpld在线升级文件集合,或者,板卡cpld在线升级文件提取装置可以通过测试通道向联合测试行为组织(jointtestactiongroup,jtag)cpld在线升级接口发送该集合。若主控板卡不需要进行cpld文件在线升级,则parta流程结束。

若板卡cpld在线升级文件提取装置向板卡cpld在线升级文件判断装置发送该集合,则板卡cpld判断装置判断板卡上的cpld待升级文件是否需要进行cpld文件在线升级;如果需要,则通过jtagcpld在线升级接口进行cpld文件在线升级。如果不需要,则丢弃cpld在线升级文件。

若板卡cpld在线升级文件提取装置通过测试通道向jtagcpld在线升级接口发送该集合,则通过jtagcpld在线升级接口对板卡上的cpld待升级文件进行cpld文件在线升级。

其中,测试通道只在cpld文件的测试期内开通;并且测试人员需要提供身份证明以开启测试通道,比如,测试人员可以通过指纹认证开启测试通道。并且,测试人员使用测试通道时,还可以对cpld待升级文件进行调试或回退等操作,在此对测试人员采取的具体操作不做限定。

partc-1至partc-x中,x为大于或等于2的自然数,除业务板卡通过管理接口接收cpld在线升级文件集合的过程以外,其他步骤与partb的步骤完全一致,在此不做赘述。

本发明实施例提供了一种cpld文件在线升级的装置40,如图8所示,该装置40包括:

获取模块41,用于获取触发板卡进行可编程逻辑器件cpld文件升级的命令。

获取模块41,还用于获取cpld在线升级文件集合,cpld在线升级文件集合包括至少两个cpld在线升级文件,cpld在线升级文件携带有头部信息,头部信息包括用于查找cpld在线升级文件的标识,及用于确定板卡的cpld待升级文件是否需要升级的信息。

获取模块41,还用于根据标识,获取cpld在线升级文件集合中与cpld待升级文件对应的cpld在线升级文件。

升级模块42,用于若获取模块41获取的头部信息中携带有板卡的cpld待升级文件需要升级的信息,则对cpld待升级文件升级。

需要说明的是,用于查找cpld在线升级文件的标识至少包括cpld在线升级文件大小和板卡类型,用于确定板卡的cpld待升级文件是否需要升级的信息至少包括cpld在线升级文件版本和板卡版本中的一种。

在本发明实施例的一种可能的设计中,获取模块41,还用于:

确定板卡的板卡类型;

在cpld在线升级文件集合中查找指定cpld在线升级文件,指定cpld在线升级文件为与板卡类型相同的cpld在线升级文件;

从指定cpld在线升级文件中获取与cpld在线升级源文件大小相同的cpld在线升级文件。

在本发明实施例的一种可能的设计中,升级模块42,还用于:

若满足指定条件,则对cpld待升级文件进行升级,指定条件至少包括以下一项:头部信息中携带的板卡版本等于板卡的板卡版本、头部信息中携带的cpld在线升级文件版本高于cpld待升级文件的版本。优选地,指定条件至少包括以下两项:即头部信息中携带的板卡版本等于板卡的板卡版本、头部信息中携带的cpld在线升级文件版本高于cpld待升级文件的版本。

综上,本发明实施例中,首先将所有板卡对应的cpld在线升级文件组合为一个cpld在线升级文件集合,再令需要进行cpld文件在线升级的板卡获取命令,之后令获取到该命令的板卡获取cpld在线升级文件集合,再令该板卡判断该板卡上的cpld待升级文件是否需要升级,并在需要升级时,进行cpld在线文件升级。本发明实施例中,无论该cpld在线升级文件集合对应多少个cpld在线升级文件,无论这些cpld在线升级文件对应多少个板卡,无论有多少张板卡需要cpld在线升级,都只需要下达一条命令,进而本发明实施例克服了现有技术的缺点,节省了大量时间,提高了cpld文件在线升级的效率。

通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

以上所述,仅为本发明的具体实施方式,但本发明实施例的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明实施例的保护范围之内。因此,本发明实施例的保护范围应以所述权利要求的保护范围为准。

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