专利名称:一种复杂可编程逻辑器件的在线升级方法及装置的制作方法
技术领域:
本发明涉及通信技术领域,尤其涉及一种复杂可编程逻辑器件 (ComplexProgrammable Logic Device, CPLD)的在线升级方法及装置。
背景技术:
CPLD具有编程灵活、集成度高、设计开发周期短、适用范围宽、开发工具先进、设计 制造成本低、保密性强等优点,已成为电子产品不可缺少的组成部分,因此被广泛应用于产 品的原型设计和产品生产之中。同时,CPLD还可以实现在线升级,因此当电路系统的CPLD 新增了功能或者CPLD出现故障时,可以通过升级来解决。CPLD等逻辑器件一般位于业务单板上,在CPLD升级的过程中,可以将业务单板上 的业逻辑器件分为进行接口控制的CPLD和进行工作的CPLD。其中,该进行接口控制的 CPLD负责业务单板的启动配置及接口的转换,进行工作的CPLD完成业务单板工作所需的 功能。在CPLD在线升级的过程中,业务单板的CPU接收到CPLD升级命令后,获取用于升级 的CPLD逻辑文件,该进行接口控制的CPLD将CPU本地总线(L0CALBUS)接口转换为CPLD的 联合测试行为组织(Joint TestAction Group,JTAG)接口,CPU通过该转换后的CPLD JTAG 接口将获取的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为本发明实施例提供的CPLD的在线升级方法;图2为本发明实施例提供的该CPLD的在线升级的详细方法;图3为本发明实施例提供的步骤S211中当处理器保存升级次数信息时,对主CPLD对应的待升级文件进行升级的过程;图4为本发明实施例提供的CPLD在线升级过程的详细描述;图5A为本发明实施例提供的详细说明对从CPLD进行升级的过程;图5B为本发明实施例提供的处理器CPU、选通器、主CPLD和从CPLD的原理图;图6为本发明实施例提供的CPLD在线升级的装置结构示意图。
具体实施例方式本发明实施例为了提高通信设备的稳定性和可靠性,提供了一种CPLD的在线升 级方法,该方法中业务单板中采用主、从CPLD,当主CPLD升级不成功时,则通过从CPLD完成 处理器CPU的启动配置,通过主从方式进行CPLD的在现实升级,从而提高了系统的可靠性 和稳定性。 下面结合说明书附图,对本发明实施例进行详细说明。图1为本发明实施例提供的CPLD的在线升级方法,该方法包括以下步骤SlOl 业务单板的处理器获取用于升级的CPLD文件,根据获取的该文件,对业务 单板上的主CPLD对应的待升级文件进行升级并重启业务单板。在本发明实施例中对业务单板上的主CPLD对应的待升级文件进行升级具体包 括业务单板的处理器根据获取的用于升级的CPLD文件中的器件型号信息,与读取的所述 主CPLD的器件型号信息进行匹配,当匹配一致时,则采用该获取的该用于升级的CPLD文件 对所述主CPLD对应的待升级文件进行升级。处理器当确定该用于升级的CPLD文件中的器件型号信息,与读取的所述主CPLD 的器件型号信息匹配一致时,所述处理器读取并保存所述主CPLD对应的待升级文件。S102 当所述主CPLD在业务单板的重启过程中重启不成功时,则所述处理器通过 业务单板上的从CPLD对自身完成启动配置。业务单板重启时,通过主CPLD完成对处理器的启动配置,当主CPLD重启不成功 时,则主CPLD无法正常工作,则从CPLD可以判断主CPLD升级失败,从CPLD可以完成对处
理器的启动配置。在本发明实施例中当处理器通过业务单板上的从CPLD完成对自身的启动配置 后,该处理器接收所述从CPLD发送的所述主CPLD升级失败的信息。由于主CPLD升级失 败,为了使系统恢复到升级前的状态,在本发明实施例中可以将保存的升级前的主CPLD对应的待升级文件重新写入该主CPLD中。业务单板上的CPLD可以实现业务单板的启动控制及正常工作功能,并且当系统 较复杂时,系统内可能存在多个CPLD。在本发明实施例中为了实现对业务单板上所有CPLD 器件进行在线升级,通过JTAG选通器实现主CPLD和从CPLD的选通,并且处理器通过JTAG 接口获取主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文件是否有误。图2为本发明实施例提供的该CPLD的在线升级的详细方法,该方法包括以下步 骤S201 业务单板上的处理器接收到CPLD的升级命令后,获取用于升级的CPLD文件。系统的闪存(FLASH)中可以保存CPLD文件,或者与处理器可以进行信息交互的其 他平台中也可以保存CPLD文件。当处理器接收到升级命令后,可以根据保存CPLD文件的 地址信息,获取对应的用于升级的CPLD文件。S202 处理器对获取的用于升级的CPLD文件进行校验,判断该用于升级的CPLD文 件的信息是否通过校验,当校验通过时,进行步骤S203,否则,进行步骤S212。处理器对该用于升级的CPLD文件进行校验可以采用循环冗余校验(Cyclic Redundancy Check, CRC),以判断该用于升级的CPLD文件是否正确。S203 处理器模拟CPLD的JTAG下载接口,并且通过JTAG选通器选通进行升级的 CPLD的JTAG接口,该选通的进行升级的CPLD可以为主CPLD的JTAG接口,也可以为从CPLD 的JTAG接口,本发明实施例以处理器选通的CPLD为主CPLD的JTAG接口进行说明。处理器在通用输入输出(GeneralPurpose Input Output,GP10)接口上模拟CPLD 的JTAG下载接口。处理器在通过JTAG选通器选通进行升级的CPLD的JTAG接口时,处理器可以输 出低电平有效信号控制JTAG选通器,选通进行升级的CPLD的JTAG接口,例如可以输出低电平有效信号,该低电平有效信号可以为master_cpld_cs#信号,当该处理器输出maSter_ cpld_cs#信号时,该处理器选通的为主CPLD的JTAG接口。S204 处理器根据模拟的JTAG下载接口通过选通的主CPLD的JTAG接口,获取主 CPLD的器件型号信息,并获取该用于升级的CPLD文件的器件型号信息。由于在制作用于升级的CPLD文件时,已经将CPLD的器件型号信息和CPLD配置文 件信息封装在该CPLD文件中。因此处理器可以通过解析该用于升级的CPLD文件获取该 CPLD文件的器件型号信息,并且处理器根据该选通的CPLD的JTAG接口,读取获得选通的 CPLD的器件型号信息。S205 处理器判断获取的器件型号信息是否匹配一致,当匹配一致时,进行步骤S206,否则,进行步骤S212。S206 处理器保持选通的主CPLD的JTAG接口,通过该接口读取主CPLD对应的待 升级文件,并将读取的该主CPLD对应的待升级文件保存。处理器可以将读取的主CPLD对应的待升级文件保存在掉电非易失的存储空间 中,例如可以保存在FLASH中。S207 处理器通过该选通的CPLD的JTAG接口,采用该用于升级的CPLD文件,对选 通的CPLD对应的待升级文件进行升级。S208 处理器通过JTAG接口读取主CPLD升级后文件,并对该主CPLD升级后文件 进行校验,判断该主CPLD升级后文件的信息是否正确,当判断正确时,进行步骤S209,否 贝U,进行步骤S211。S209 当业务单板重启的过程中该选通的主CPLD重启不成功时,处理器指示从 CPLD对自身完成启动配置,并接收从CPLD发送的主CPLD升级失败的信息。S210 所述处理器将保存的升级前的所述主CPLD对应的待升级文件写入所述主 CPLD。S211 处理器将保存的升级前的该主CPLD对应的待升级文件写回该选通的主 CPLD,并输出升级失败信息。S212 处理器判断升级失败。在步骤S211中处理器也可以根据处理器保存的升级次数信息,采用该获取的用 于升级的CPLD文件,对该选通的主CPLD对应的待升级文件进行对应次数的升级,每次对主 CPLD进行升级后,该业务单板启动之前,对主CPLD升级文件进行校验,判断主CPLD升级后 的文件是否通过校验。在采用该获取的用于升级的CPLD文件后,对主CPLD对应的待升级 文件进行升级的过程如上述步骤所述。图3为本发明实施例步骤S211中当处理器根据保 存的升级次数信息,对主CPLD对应的待升级文件进行升级的过程,该过程包括S301 处理器根据保存的升级次数信息,判断当前对主CPLD对应的待升级文件 进行升级的次数是否达到该保存的升级次数,当达到时,进行步骤S302,否则,进行步骤 S303。S302 处理器将保存的升级前的该主CPLD对应的待升级文件写回该选通的主 CPLD,并输出升级失败信息。S303 处理器采用该用于升级的CPLD文件,对主CPLD对应的待升级文件进行升 级,处理器读取主CPLD升级后文件,并对主CPLD升级后文件进行校验,确定是否通过校验,当校验通过时,进行步骤S209,否则,进行步骤S301。在本发明实施例中当业务单板启动成功时,并且选通的主CPLD重启成功时,该处理器通过该选通的主CPLD完成启动配置,并且为了避免从CPLD完成对处理器的启动配置, 主CPLD可以向从CPLD发送主CPLD启动成功的信息。处理器可以进一步校验主CPLD是否升级成功,在本发明实施例中处理器可以通 过检测主CPLD升级后的版本信息,确定主CPLD升级是否成功。由于每个业务单板的版本信 息在寄存器中存在对应的唯一标识信息,在检测主CPLD升级后的版本信息时,根据读取该 业务单板对应的唯一标识信息,根据该标识信息判断该选通的主CPLD升级是否成功。当处 理器判断主CPLD升级失败时,处理器将保存的主CPLD对应的待升级文件重新写入主CPLD, 使系统恢复升级前的状态。当处理器判断主CPLD升级成功时,处理器采用获取的用于升级 的CPLD文件,对从CPLD对应的待升级文件进行升级,并且,对从CPLD进行升级的过程与对 主CPLD进行升级的过程相同。图4为本发明实施例提供的CPLD在线升级过程的详细描述,该过程包括S401 业务单板上的处理器接收到CPLD的升级命令后,获取用于升级的CPLD文 件。S402 处理器对获取的用于升级的CPLD文件进行校验,判断该用于升级的CPLD文 件的信息是否通过校验,当校验通过时,进行步骤S403,否则,进行步骤S413。S403 处理器模拟CPLD的JTAG下载接口,并且通过JTAG选通器选通进行升级的 主 CPLD 的 JTAG 接 口。S404 处理器根据模拟的JTAG下载接口通过选通的主CPLD的JTAG接口,获取主 CPLD的器件型号信息,并获取该用于升级的CPLD文件的器件型号信息。S405 处理器判断获取的器件型号信息是否匹配一致,当匹配一致时,进行步骤 S406,否则,进行步骤S414。S406 处理器保持主CPLD被选通,通过主CPLD的JTAG接口读取该主CPLD对应的 待升级文件,并将读取的该对应的待升级文件保存。S407 处理器通过该选通的主CPLD的JTAG接口,采用获取的用于升级的CPLD文 件,对主CPLD对应的待升级文件进行升级。S408 处理器通过JTAG接口读取主CPLD对应的升级后的文件,并对该主CPLD对 应的升级后的文件进行校验,判断该主CPLD对应的升级后的文件的信息是否正确,当判断 正确时,进行步骤S409,否则,进行步骤S413。S409 业务单板重启,当主CPLD重启成功时,进行步骤S410,否则,进行步骤S412。S410 主CPLD重启成功,处理器通过主CPLD完成对自身的启动配置,并且主CPLD 向从CPLD发送信息,通知该从CPLD主CPLD升级成功。主CPLD重启成功时向从CPLD发送低电平有效信号master_cpld_ok#信号,通知 从CPLD主CPLD重启成功。S411 处理器正常启动后,检测该主CPLD升级后的版本信息,判断该主CPLD是否 升级成功,当判断所述CPLD升级成功时,采用该用于升级的CPLD文件,对从CPLD对应的待 升级文件进行升级。S412 主CPLD重启不成功,处理器通过从CPLD完成对自身的启动配置,并且从CPLD向处理器发送主CPLD升级失败信息,处理器将保存的升级前的该主CPLD对应的待升 级文件写入该选通的主CPLD。由于主CPLD重启失败,因此主CPLD不能向从CPLD发送低电平有效信息,因此从 CPLD判断主CPLD升级失败,从CPLD完成对处理器的启动配置。并且从CPLD可以向处理器 发送主CPLD升级失败的通知信息,例如可以通过发送中断信号Slaver_Cpld_int#信号通 知处理器主CPLD升级失败。S413 处理器将保存的升级前的该主CPLD对应的待升级文件写入该选通的主 CPLD,并输出升级失败信息。S414 处理器判断升级失败。在本发明实施例中由于主CPLD在启动正常时可以完成对处理器的启动配置,在 本发明实施例通过图5A所示详细说明对从CPLD进行升级的过程,该过程包括以下步骤S501 业务单板上的处理器接收到CPLD的升级命令后,获取用于升级的CPLD文 件。S502 处理器对获取的用于升级的CPLD文件进行校验,判断该用于升级的CPLD文 件的信息是否正确,当校验通过时,进行步骤S503,否则,进行步骤S512。S503 处理器模拟CPLD的JTAG下载接口,并且通过JTAG选通器选通进行升级的 从 CPLD 的 JTAG 接 口。S504 处理器根据模拟的JTAG下载接口通过选通的从CPLD的JTAG接口,获取从 CPLD的器件型号信息,并获取该用于升级的CPLD文件的器件型号信息。S505 处理器判断获取的器件型号信息是否匹配一致,当匹配一致时,进行步骤 S506,否则,进行步骤S512。 S506 处理器保持从CPLD被选通,通过从CPLD的JTAG接口读取从CPLD对应的待 升级文件,并将读取的该对应的待升级文件保存。S507 处理器通过该选通的从CPLD的JTAG接口,采用获取的用于升级的CPLD文 件,对从CPLD对应的待升级文件进行升级。S508 处理器通过JTAG接口读取从CPLD升级后文件,并对该从CPLD升级后文件 进行校验,判断该从CPLD升级后文件的信息是否正确,当判断正确时,进行步骤S509,否 则,进行步骤S510。S509 业务单板重启,主CPLD完成对处理器的启动配置,主CPLD根据从CPLD发送 的信息,确定该从CPLD是否重启成功时,当该从CPLD重启不成功时,进行步骤S510,当该从 CPLD重启成功时,进行步骤S511。由于在本发明实施例中在主CPLD正常时,由主CPLD完成对处理器的启动配置,当 从CPLD重启成功时,该从CPLD会向主CPLD发送信息,从而使主CPLD确定该从CPLD是否 重启成功。例如从CPLD输出SlaVer_Cpld_ok#信号为低电平,表明从CPLD升级成功;若 Slaver_cpld_ok#信号为高电平表明从CPLD升级失败。S510 处理器将保存的升级前的从CPLD对应的待升级文件写入从CPLD,并输出升 级失败信息。S511 从CPLD升级成功,该CPLD升级过程结束。S512 处理器判断升级失败。
在本发明实施例中由于之前先对主CPLD进行升级,并且对获取的用于升级的 CPLD文件进行了校验,因此在上述实施方式中可以省略步骤S501和S502,从而提高CPLD 在线升级的效率。图5B为本发明实施例提供的处理器CPU、选通器、主CPLD和从CPLD的原理图。在 本发明实施例中处理器可以在主CPLD和从CPLD之间通过JTAG选通器选通。表1为处理器GPI0_0 5的定义,在该表1中定义了在GPI0_4时,在线升级信号 为低电平有效信号maSter_Cpld_CS#信号,该低电平有效信号为主CPLD的JTAG接口选通 的信号,在GPI0_5时,在线升级信号为低电平有效信号SlaVer_Cpld_CS#信号,该低电平有 效信号为从CPLD的JTAG接口选通的信号。具体表1如下所示 表1当处理器对主CPLD进行升级的过程中,当未选通任何GPLD时,处理器可以不对 GPI0进行控制,该GPI0_0 5的输出为高阻状态。当处理器对主CPLD进行升级时,该处 理器控制GPI0_4的在线升级信号maSter_Cpld_CS#信号为低电平。处理器对在线升级信 号SlaVer_Cpld_CSlHf号不做控制,保持高阻态。同时根据图5所示的原理图,在处理器的 外部对SlaVer_Cpld_CSlHf号上拉,从而该信号为高电平,此时选通器选中的为主CPLD的 JTAG 接口。号还连接到从CPLD,从而可以使从CPLD检测该master_cpld_ cs#信号的状态,当该master_cpld_cs#信号为低电平时,表明主CPLD处于根据用于升级的 CPLD文件对该对应的待升级文件进行升级的状态,此时从CPLD屏蔽Slaver_Cpld_int#信 号的输出,当从CPLD检测该master_cpld_cs#信号为高电平,则表明主CPLD并非处于根据 用于升级的CPLD文件对该对应的待升级文件进行升级的状态,则从CPLD可以控制slaves cpld_int#信号的输出。主CPLD根据用于升级的CPLD文件对该对应的待升级文件进行升级的动作结束并 重启后,系统默认由主CPLD对处理器完成启动配置。若处理器启动成功,处理器在设定时 间内,例如0. 5秒内向主CPLD的内置寄存器“Cpu_Start_0k寄存器”写入1,表明处理器启动0K。主CPLD判断“Cpu_start_ok寄存器”被置1后控制Master_cpld_ok#信号为低电 平,从CPLD可以根据MaSter_Cpld_ok#信号的输出结果判断主CPLD是否启动成功。从CPLD包含一个计时器,该计时器的时间可以根据要求设定,例如可以为1秒, 在自身重启后开始计数,当在该计时器的计时时间到来时对MaSter_Cpld_0k#信号进行判 断,若MaSter_Cpld_ok#信号为低电平,则表明主CPLD启动成功,若Master_Cpld_0k#信号 为高电平表明主CPLD升级失败,则由从CPLD对CPU进行复位并完成CPU的启动配置。同 时从CPLD送出Slave_cpld_int#信号为低电平,将该信号发送至CPU的IRQ0接口,CPU启 动完成后响应IRQ0中断,从而确认主CPLD升级失败,此时CPU获取升级前的主CPLD对应 待升级文件,采用该升级前的对应待升级文件对主CPLD进行恢复。在从CPLD进行升级的过程中,由主CPLD监控从CPLD的升级状态,该具体过程如 下在处理器对从CPLD进行升级时,CPU控制31肌吐_叩1(1_(^#信号为低电平, Master_cpld_cs#信号不作控制保持高阻状态,由于处理器外部对MaSter_Cpld_CS#信号 上拉,从而该信号为高电平,因此选通器选中的是从CPLD的JTAG接口。Slaver_cpld_cs#信号还连接至主CPLD,从而可以使主CPLD检测Slaver_cpld_ cs#信号的状态,若该Slaver_cpld_cs#信号为低电平表示从CPLD处于根据用于升级的 CPLD文件对该对应的待升级文件进行升级的状态,则此时主CPLD屏蔽MaSter_Cpld_int# 信号的输出;若SlaVer_Cpld_CS#信号为高电平则表示从CPLD并非处于根据用于升级的 CPLD文件对该对应的待升级文件进行升级的状态,则主CPLD可以控制MaSter_Cpld_int# 信号的输出。从CPLD根据用于升级的CPLD文件对该对应的待升级文件进行升级的动作结束并 重启后,由主CPLD负责CPU的启动配置。若从CPLD升级成功,其从CPLD输出SlaVer_cpld_ ok#信号为低电平,表明从CPLD升级成功;若SlaVer_Cpld_ok#信号为高电平表明从CPLD 升级失败;SlaVer_Cpld_ok#信号连接到主CPLD,主CPLD在检测到从CPLD升级失败后送出 Master_cpld_int#信号为低电平,将该信号发送至CPU的IRQ1接口,CPU启动完成后响应 IRQ1中断,从而确定从CPLD升级失败,此时CPU获取升级前的从CPLD对应的待升级文件, 采用该升级前的对应待升级文件对从CPLD进行恢复。在本发明实施例中的从CPLD是相对处理器的启动配置而言其为从关系,该从 CPLD还具有不同于主CPLD的其它业务功能。在本发明实施例中从CPLD可以采用至少一 个,例如可以为2个或者多个等,从而更加能够保证在CPLD升级错误或升级失败时,保证通 信设备的可靠性和稳定性。图6为本发明实施例提供的CPLD在线升级的装置结构示意图,该装置包括文件升级模块61,用于获取用于升级的复杂可编程逻辑器件CPLD文件,根据所述 CPLD文件对业务单板上的主CPLD对应的待升级文件进行升级,并重启业务单板;配置完成模块62,用于在所述业务单板的启动过程中所述主CPLD重启不成功时, 通过从CPLD完成启动配置。所述装置还包括写入模块63,用于在所述主CPLD升级失败时,接收从CPLD发送的所述主CPLD升 级失败的信息,并将保存的升级前的所述主CPLD对应的待升级文件重新写入所述主CPLD。
所述文件升级模块61包括匹配单元611,用于根据获取的用于升级的CPLD文件中的器件型号信息,与读取的所述主CPLD的器件型号信息进行匹配;文件升级单元612,用于当确定匹配一致时,采用获取的所述用于升级的CPLD文 件对所述主CPLD对应的待升级文件进行升级。所述文件升级模块61还包括存储单元613,用于在文件升级单元确定所述用于升级的CPLD文件中的器件型号 信息,与读取的所述主CPLD的器件型号信息匹配一致时,读取并保存所述主CPLD对应的待 升级文件。所述装置还包括校验模块64,用于读取所述主CPLD对应的升级后的文件,并对所述主CPLD对应的 升级后的文件进行校验,当校验未通过时,所述处理器根据保存的升级次数信息,采用获取 的所述用于升级的CPLD文件对所述主CPLD对应的待升级文件进行对应次数的升级,并对 每次升级后的主CPLD对应的升级后的文件进行校验,当每次都校验未通过时,将保存的升 级前的所述主CPLD对应的待升级文件写入所述主CPLD,当校验通过时进行业务单板的重 启o所述装置还包括检测模块65,用于当所述主CPLD在业务单板的重启过程中重启成功时,通过主 CPLD完成启动配置,检测所述主CPLD对应的升级后的文件的版本信息,确定所述主CPLD升 级是否成功,当所述主CPLD升级不成功时,所述处理器将保存的升级前的所述主CPLD对应 的待升级文件写入所述主CPLD,当所述主CPLD升级成功时,对从CPLD进行在线升级。所述检测模块65在对从CPLD进行在线升级时具体包括根据获取的用于升级的CPLD文件,对从CPLD对应的待升级文件进行升级,并重启 业务单板,通过主CPLD对完成启动配置,并确定从CPLD是否重启成功,当从CPLD重启不成 功时,处理器将保存的升级前的所述从CPLD对应的待升级文件写入所述从CPLD。本发明实施例提供了一种CPLD的在线升级方法及装置,该方法当处理器获取了 用于升级的CPLD文件时,采用该获取的用于升级的CPLD文件对主CPLD对应的待升级文件 进行升级并重启业务单板,并且在业务单板的启动过程中主CPLD重启不成功时,处理器通 过从CPLD完成启动配置,由于本发明实施例采用主从CPLD配合完成CPLD的在线升级,因 此有效地避免了在CPLD在线升级过程中,由于升级错误或升级失败而影响通信设备的可 靠性和稳定性的问题。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精 神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围 之内,则本发明也意图包含这些改动和变型在内。
权利要求
一种复杂可编程逻辑器件的在线升级方法,其特征在于,包括业务单板的处理器获取用于升级的复杂可编程逻辑器件CPLD文件,根据该文件,对业务单板上的主CPLD对应的待升级文件进行升级并重启业务单板;当所述主CPLD在业务单板的重启过程中重启不成功时,所述处理器通过业务单板上的从CPLD完成对自身的启动配置。
2.如权利要求1所述的方法,其特征在于,所述处理器通过业务单板上的从CPLD完成 对自身的启动配置之后,所述方法还包括所述处理器接收所述从CPLD发送的所述主CPLD升级失败的信息,并将保存的升级前 的所述主CPLD对应的待升级文件写入所述主CPLD。
3.如权利要求1所述的方法,其特征在于,所述对业务单板上的主CPLD对应的待升级 文件进行升级包括所述处理器根据获取的用于升级的CPLD文件中的器件型号信息,与读取的所述主 CPLD的器件型号信息进行匹配;当匹配一致时,采用获取的所述用于升级的CPLD文件对所述主CPLD对应的待升级文 件进行升级。
4.如权利要求3所述的方法,其特征在于,所述处理器当确定所述用于升级的CPLD文 件中的器件型号信息,与读取的所述主CPLD的器件型号信息匹配一致时,读取并保存所述 主CPLD对应的待升级文件。
5.如权利要求4所述的方法,其特征在于,所述对该业务单板上的主CPLD对应的待升 级文件进行升级后,所述业务单板重启之前,所述方法进一步包括所述处理器读取所述主CPLD对应的升级后的文件,并对所述主CPLD对应的升级后的 文件进行校验,并确认校验是否通过; 当校验通过时,进行后续步骤。
6.如权利要求5所述的方法,其特征在于,当确认校验未通过时,所述方法还包括 所述处理器根据保存的升级次数信息,采用获取的所述用于升级的CPLD文件对所述主CPLD对应的待升级文件进行对应次数的升级,并对每次升级后的主CPLD对应的升级后 的文件进行校验,当每次都校验未通过时,将保存的升级前的所述主CPLD对应的待升级文 件写入所述主CPLD。
7.如权利要求2所述的方法,其特征在于,所述方法进一步包括当所述主CPLD在业务单板的重启过程中重启成功时,所述处理器通过主CPLD完成对 自身的启动配置;所述处理器检测所述主CPLD对应的升级后的文件的版本信息,确定所述主CPLD升级 是否成功;当所述主CPLD升级不成功时,所述处理器将保存的升级前的所述主CPLD对应的待升 级文件写入所述主CPLD ;当所述主CPLD升级成功时,所述处理器对从CPLD进行在线升级。
8.如权利要求7所述的方法,其特征在于,所述处理器对从CPLD进行在线升级包括 所述处理器根据获取的用于升级的CPLD文件,对从CPLD对应的待升级文件进行升级,并重启业务单板;处理器通过主CPLD完成对自身的启动配置,并确定从CPLD是否重启成功;当从CPLD重启不成功时,处理器将保存的升级前的所述从CPLD对应的待升级文件写 入所述从CPLD。
9.一种复杂可编程逻辑器件的在线升级装置,其特征在于,所述装置包括文件升级模块,用于获取用于升级的复杂可编程逻辑器件CPLD文件,根据所述CPLD文 件对业务单板上的主CPLD对应的待升级文件进行升级,并重启业务单板;配置完成模块,用于在所述业务单板的启动过程中所述主CPLD重启不成功时,通过从 CPLD完成启动配置。
10.如权利要求9所述的装置,其特征在于,所述装置还包括写入模块,用于在所述主CPLD升级失败时,接收从CPLD发送的所述主CPLD升级失败 的信息,并将保存的升级前的所述主CPLD对应的待升级文件重新写入所述主CPLD。
11.如权利要求9所述的装置,其特征在于,所述文件升级模块包括匹配单元,用于根据获取的用于升级的CPLD文件中的器件型号信息,与读取的所述主 CPLD的器件型号信息进行匹配;文件升级单元,用于当确定匹配一致时,采用获取的所述用于升级的CPLD文件对所述 主CPLD对应的待升级文件进行升级。
12.如权利要求11所述的装置,其特征在于,所述文件升级模块还包括存储单元,用于在文件升级单元确定所述用于升级的CPLD文件中的器件型号信息,与 读取的所述主CPLD的器件型号信息匹配一致时,读取并保存所述主CPLD对应的待升级文 件。
13.如权利要求9所述的装置,其特征在于,所述装置还包括校验模块,用于读取所述主CPLD对应的升级后的文件,并对所述主CPLD对应的升级后 的文件进行校验,当校验未通过时,所述处理器根据保存的升级次数信息,采用获取的所述 用于升级的CPLD文件对所述主CPLD对应的待升级文件进行对应次数的升级,并对每次升 级后的主CPLD对应的升级后的文件进行校验,当每次都校验未通过时,将保存的升级前的 所述主CPLD对应的待升级文件写入所述主CPLD,当校验通过时进行业务单板的重启。
14.如权利要求10所述的装置,其特征在于,所述装置还包括检测模块,用于当所述主CPLD在业务单板的重启过程中重启成功时,通过主CPLD完成 启动配置,检测所述主CPLD对应的升级后的文件的版本信息,确定所述主CPLD升级是否成 功,当所述主CPLD升级不成功时,所述处理器将保存的升级前的所述主CPLD对应的待升级 文件写入所述主CPLD,当所述主CPLD升级成功时,对从CPLD进行在线升级。
15.如权利要求14所述的装置,其特征在于,所述检测模块在对从CPLD进行在线升级 时具体包括根据获取的用于升级的CPLD文件,对从CPLD对应的待升级文件进行升级,并 重启业务单板,通过主CPLD对完成启动配置,并确定从CPLD是否重启成功,当从CPLD重启 不成功时,处理器将保存的升级前的所述从CPLD对应的待升级文件写入所述从CPLD。
全文摘要
本发明公开了一种复杂可编程逻辑器件的在线升级方法,用以解决现有技术中因CPLD的升级错误或升级失败而影响通信设备的可靠性和稳定性的问题。该方法采用该获取的用于升级的CPLD文件对主CPLD对应的待升级文件进行升级并重启业务单板,并且在业务单板的启动过程中主CPLD重启不成功时,处理器通过从CPLD完成启动配置。本发明实施例还提供了一种CPLD的在线升级装置。由于本发明实施例采用主从CPLD配合完成CPLD的在线升级,因此有效地避免了在CPLD在线升级过程中,由于升级错误或升级失败而影响通信设备的可靠性和稳定性的问题。
文档编号G06F9/445GK101853171SQ20101018207
公开日2010年10月6日 申请日期2010年5月24日 优先权日2010年5月24日
发明者李明纬 申请人:福建星网锐捷网络有限公司