CN101853171A - 一种复杂可编程逻辑器件的在线升级方法及装置 - Google Patents
一种复杂可编程逻辑器件的在线升级方法及装置 Download PDFInfo
- Publication number
- CN101853171A CN101853171A CN201010182071A CN201010182071A CN101853171A CN 101853171 A CN101853171 A CN 101853171A CN 201010182071 A CN201010182071 A CN 201010182071A CN 201010182071 A CN201010182071 A CN 201010182071A CN 101853171 A CN101853171 A CN 101853171A
- Authority
- CN
- China
- Prior art keywords
- cpld
- file
- upgrading
- upgraded
- correspondence
- 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.)
- Pending
Links
Images
Abstract
本发明公开了一种复杂可编程逻辑器件的在线升级方法,用以解决现有技术中因CPLD的升级错误或升级失败而影响通信设备的可靠性和稳定性的问题。该方法采用该获取的用于升级的CPLD文件对主CPLD对应的待升级文件进行升级并重启业务单板,并且在业务单板的启动过程中主CPLD重启不成功时,处理器通过从CPLD完成启动配置。本发明实施例还提供了一种CPLD的在线升级装置。由于本发明实施例采用主从CPLD配合完成CPLD的在线升级,因此有效地避免了在CPLD在线升级过程中,由于升级错误或升级失败而影响通信设备的可靠性和稳定性的问题。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种复杂可编程逻辑器件(ComplexProgrammable Logic Device,CPLD)的在线升级方法及装置。
背景技术
CPLD具有编程灵活、集成度高、设计开发周期短、适用范围宽、开发工具先进、设计制造成本低、保密性强等优点,已成为电子产品不可缺少的组成部分,因此被广泛应用于产品的原型设计和产品生产之中。同时,CPLD还可以实现在线升级,因此当电路系统的CPLD新增了功能或者CPLD出现故障时,可以通过升级来解决。
CPLD等逻辑器件一般位于业务单板上,在CPLD升级的过程中,可以将业务单板上的业逻辑器件分为:进行接口控制的CPLD和进行工作的CPLD。其中,该进行接口控制的CPLD负责业务单板的启动配置及接口的转换,进行工作的CPLD完成业务单板工作所需的功能。在CPLD在线升级的过程中,业务单板的CPU接收到CPLD升级命令后,获取用于升级的CPLD逻辑文件,该进行接口控制的CPLD将CPU本地总线(LOCALBUS)接口转换为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的在线升级方法,该方法包括以下步骤:
S101:业务单板的处理器获取用于升级的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接口进行说明。
处理器在通用输入输出(General Purpose Input Output,GPIO)接口上模拟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,否则,进行步骤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为处理器GPIO_0~5的定义,在该表1中定义了在GPIO_4时,在线升级信号为低电平有效信号master_cpld_cs#信号,该低电平有效信号为主CPLD的JTAG接口选通的信号,在GPIO_5时,在线升级信号为低电平有效信号slaver_cpld_cs#信号,该低电平有效信号为从CPLD的JTAG接口选通的信号。具体表1如下所示:
CPU GPIO | 在线升级信号 | I/O属性 | 信号描述 |
GPIO_0 | TCK | O | JTAG接口TCK信号 |
GPIO_1 | TMS | O | JTAG接口TMS信号 |
GPIO_2 | TDI | O | JTAG接口TDI信号 |
GPIO_3 | TDO | I | JTAG接口TDO信号 |
GPIO_4 | master_cpld_cs# | O | 主CPLDJTAG选通信号 |
GPIO_5 | slaver_cpld_cs# | O | 从CPLDJTAG选通信号 |
表1
当处理器对主CPLD进行升级的过程中,当未选通任何GPLD时,处理器可以不对GPIO进行控制,该GPIO_0~5的输出为高阻状态。当处理器对主CPLD进行升级时,该处理器控制GPIO_4的在线升级信号master_cpld_cs#信号为低电平。处理器对在线升级信号slaver_cpld_cs#信号不做控制,保持高阻态。同时根据图5所示的原理图,在处理器的外部对slaver_cpld_cs#信号上拉,从而该信号为高电平,此时选通器选中的为主CPLD的JTAG接口。
master_cpld_cs#信号还连接到从CPLD,从而可以使从CPLD检测该master_cpld_cs#信号的状态,当该master_cpld_cs#信号为低电平时,表明主CPLD处于根据用于升级的CPLD文件对该对应的待升级文件进行升级的状态,此时从CPLD屏蔽slaver_cpld_int#信号的输出,当从CPLD检测该master_cpld_cs#信号为高电平,则表明主CPLD并非处于根据用于升级的CPLD文件对该对应的待升级文件进行升级的状态,则从CPLD可以控制slaver_cpld_int#信号的输出。
主CPLD根据用于升级的CPLD文件对该对应的待升级文件进行升级的动作结束并重启后,系统默认由主CPLD对处理器完成启动配置。若处理器启动成功,处理器在设定时间内,例如0.5秒内向主CPLD的内置寄存器“Cpu_start_ok寄存器”写入1,表明处理器启动OK。主CPLD判断“Cpu_start_ok寄存器”被置1后控制Master_cpld_ok#信号为低电平,从CPLD可以根据Master_cpld_ok#信号的输出结果判断主CPLD是否启动成功。
从CPLD包含一个计时器,该计时器的时间可以根据要求设定,例如可以为1秒,在自身重启后开始计数,当在该计时器的计时时间到来时对Master_cpld_ok#信号进行判断,若Master_cpld_ok#信号为低电平,则表明主CPLD启动成功,若Master_cpld_ok#信号为高电平表明主CPLD升级失败,则由从CPLD对CPU进行复位并完成CPU的启动配置。同时从CPLD送出Slave_cpld_int#信号为低电平,将该信号发送至CPU的IRQ0接口,CPU启动完成后响应IRQ0中断,从而确认主CPLD升级失败,此时CPU获取升级前的主CPLD对应待升级文件,采用该升级前的对应待升级文件对主CPLD进行恢复。
在从CPLD进行升级的过程中,由主CPLD监控从CPLD的升级状态,该具体过程如下:
在处理器对从CPLD进行升级时,CPU控制Slaver_cpld_cs#信号为低电平,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,当校验通过时进行业务单板的重启。
所述装置还包括:
检测模块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在线升级过程中,由于升级错误或升级失败而影响通信设备的可靠性和稳定性的问题。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (15)
1.一种复杂可编程逻辑器件的在线升级方法,其特征在于,包括:
业务单板的处理器获取用于升级的复杂可编程逻辑器件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。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010182071A CN101853171A (zh) | 2010-05-24 | 2010-05-24 | 一种复杂可编程逻辑器件的在线升级方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010182071A CN101853171A (zh) | 2010-05-24 | 2010-05-24 | 一种复杂可编程逻辑器件的在线升级方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101853171A true CN101853171A (zh) | 2010-10-06 |
Family
ID=42804679
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010182071A Pending CN101853171A (zh) | 2010-05-24 | 2010-05-24 | 一种复杂可编程逻辑器件的在线升级方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101853171A (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102308281A (zh) * | 2011-07-21 | 2012-01-04 | 华为技术有限公司 | 对芯片进行动态升级的方法、系统及基板管理控制器 |
CN102662701A (zh) * | 2012-03-28 | 2012-09-12 | 中兴通讯股份有限公司 | Cpld在线升级方法、装置及业务单板 |
CN106354541A (zh) * | 2016-10-25 | 2017-01-25 | 杭州迪普科技有限公司 | 一种加载逻辑文件的方法及装置 |
CN106569858A (zh) * | 2016-10-31 | 2017-04-19 | 锐捷网络股份有限公司 | 一种配置文件的更新方法以及电路板 |
CN107015817A (zh) * | 2017-05-25 | 2017-08-04 | 孙文现 | 一种设备固件空中升级的方法 |
CN107301056A (zh) * | 2017-07-27 | 2017-10-27 | 上海斐讯数据通信技术有限公司 | 一种ap在线升级处理方法及装置 |
CN108599903A (zh) * | 2018-03-09 | 2018-09-28 | 新华三技术有限公司 | 单板启动控制方法和装置 |
CN109408088A (zh) * | 2018-10-09 | 2019-03-01 | 郑州云海信息技术有限公司 | Cpld升级方法、装置、系统和计算机可读存储介质 |
CN109491716A (zh) * | 2018-10-19 | 2019-03-19 | 北京行易道科技有限公司 | 启动方法及装置、程序存储方法及装置 |
CN110162024A (zh) * | 2019-06-29 | 2019-08-23 | 潍柴动力股份有限公司 | 一种ecu数据自校验方法及装置 |
CN110554879A (zh) * | 2019-07-26 | 2019-12-10 | 深圳震有科技股份有限公司 | 一种基于处理器的烧录方法、系统和计算机设备 |
CN111026421A (zh) * | 2019-11-15 | 2020-04-17 | 深圳中电长城信息安全系统有限公司 | 一种升级装置 |
CN112527345A (zh) * | 2020-11-27 | 2021-03-19 | 苏州浪潮智能科技有限公司 | 一种扩展柜cpld在线升级的方法、装置、设备及可读介质 |
WO2023029826A1 (zh) * | 2021-08-30 | 2023-03-09 | 华为技术有限公司 | 一种启动文件校验方法、校验组件及设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101030140A (zh) * | 2006-03-02 | 2007-09-05 | 中兴通讯股份有限公司 | 一种对固件程序进行在线升级的装置及其方法 |
CN101136768A (zh) * | 2006-09-01 | 2008-03-05 | 中兴通讯股份有限公司 | 通信设备的软件及硬件版本管理方法和系统 |
CN101458624A (zh) * | 2007-12-14 | 2009-06-17 | 华为技术有限公司 | 可编程逻辑器件的加载方法、处理器和装置 |
-
2010
- 2010-05-24 CN CN201010182071A patent/CN101853171A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101030140A (zh) * | 2006-03-02 | 2007-09-05 | 中兴通讯股份有限公司 | 一种对固件程序进行在线升级的装置及其方法 |
CN101136768A (zh) * | 2006-09-01 | 2008-03-05 | 中兴通讯股份有限公司 | 通信设备的软件及硬件版本管理方法和系统 |
CN101458624A (zh) * | 2007-12-14 | 2009-06-17 | 华为技术有限公司 | 可编程逻辑器件的加载方法、处理器和装置 |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102308281A (zh) * | 2011-07-21 | 2012-01-04 | 华为技术有限公司 | 对芯片进行动态升级的方法、系统及基板管理控制器 |
WO2012106912A1 (zh) * | 2011-07-21 | 2012-08-16 | 华为技术有限公司 | 对芯片进行动态升级的方法、系统及基板管理控制器 |
US9152544B2 (en) | 2011-07-21 | 2015-10-06 | Huawei Technologies Co., Ltd. | Method and system for upgrading a firmware of a chip and baseboard management controller by waiting until an idle state of a connected system to finish upgrade |
CN102662701A (zh) * | 2012-03-28 | 2012-09-12 | 中兴通讯股份有限公司 | Cpld在线升级方法、装置及业务单板 |
CN102662701B (zh) * | 2012-03-28 | 2016-07-27 | 中兴通讯股份有限公司 | Cpld在线升级方法、装置及业务单板 |
CN106354541A (zh) * | 2016-10-25 | 2017-01-25 | 杭州迪普科技有限公司 | 一种加载逻辑文件的方法及装置 |
CN106569858A (zh) * | 2016-10-31 | 2017-04-19 | 锐捷网络股份有限公司 | 一种配置文件的更新方法以及电路板 |
CN106569858B (zh) * | 2016-10-31 | 2019-08-20 | 锐捷网络股份有限公司 | 一种配置文件的更新方法以及电路板 |
CN107015817A (zh) * | 2017-05-25 | 2017-08-04 | 孙文现 | 一种设备固件空中升级的方法 |
CN107015817B (zh) * | 2017-05-25 | 2021-06-01 | 北京君泊网络科技有限责任公司 | 一种设备固件空中升级的方法 |
CN107301056A (zh) * | 2017-07-27 | 2017-10-27 | 上海斐讯数据通信技术有限公司 | 一种ap在线升级处理方法及装置 |
CN108599903A (zh) * | 2018-03-09 | 2018-09-28 | 新华三技术有限公司 | 单板启动控制方法和装置 |
CN108599903B (zh) * | 2018-03-09 | 2021-06-29 | 新华三技术有限公司 | 单板启动控制方法和装置 |
CN109408088A (zh) * | 2018-10-09 | 2019-03-01 | 郑州云海信息技术有限公司 | Cpld升级方法、装置、系统和计算机可读存储介质 |
CN109491716A (zh) * | 2018-10-19 | 2019-03-19 | 北京行易道科技有限公司 | 启动方法及装置、程序存储方法及装置 |
CN109491716B (zh) * | 2018-10-19 | 2021-11-16 | 北京行易道科技有限公司 | 启动方法及装置、程序存储方法及装置 |
CN110162024A (zh) * | 2019-06-29 | 2019-08-23 | 潍柴动力股份有限公司 | 一种ecu数据自校验方法及装置 |
CN110554879A (zh) * | 2019-07-26 | 2019-12-10 | 深圳震有科技股份有限公司 | 一种基于处理器的烧录方法、系统和计算机设备 |
CN111026421A (zh) * | 2019-11-15 | 2020-04-17 | 深圳中电长城信息安全系统有限公司 | 一种升级装置 |
CN112527345A (zh) * | 2020-11-27 | 2021-03-19 | 苏州浪潮智能科技有限公司 | 一种扩展柜cpld在线升级的方法、装置、设备及可读介质 |
WO2023029826A1 (zh) * | 2021-08-30 | 2023-03-09 | 华为技术有限公司 | 一种启动文件校验方法、校验组件及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101853171A (zh) | 一种复杂可编程逻辑器件的在线升级方法及装置 | |
KR102562210B1 (ko) | 전자 장치 | |
CN106547653B (zh) | 计算机系统故障状态检测方法、装置及系统 | |
KR20110124617A (ko) | 시스템-온-칩 및 그것의 디버깅 방법 | |
CN106610712A (zh) | 基板管理控制器复位系统及方法 | |
CN109408121B (zh) | Edid读取与配置方法、系统及介质 | |
CN111159090B (zh) | 一种信息处理方法、装置和电子设备 | |
CN104572442A (zh) | 可编程逻辑芯片片内程序校验系统 | |
CN106775847B (zh) | 一种板卡软件版本更新方法及装置 | |
CN108121842B (zh) | 多处理器系统芯片的低功耗工作方式的验证方法和装置 | |
US10824517B2 (en) | Backup and recovery of configuration files in management device | |
CN103475514B (zh) | 无bmc的节点、集群系统及bios修复和升级方法 | |
CN102081526B (zh) | 基本输入/输出系统架构 | |
CN106557392A (zh) | 服务器故障检测装置及方法 | |
CN109408099B (zh) | 远程fpga固件代码更新系统、方法及介质 | |
JP6880961B2 (ja) | 情報処理装置、およびログ記録方法 | |
CN113448608A (zh) | 一种基于区域切片技术的fpga增量升级方法及装置 | |
CN110825547B (zh) | 一种基于smbus的pcie卡异常恢复装置及方法 | |
CN107885626A (zh) | 片上系统可编程器件的系统启动自检测的装置及方法 | |
CN113867812B (zh) | 一种bmc获取链路信息的方法、系统、设备以及介质 | |
CN101458624A (zh) | 可编程逻辑器件的加载方法、处理器和装置 | |
CN113434354B (zh) | 一种总线异常处置方法、装置、电子设备及可读存储介质 | |
EP2829974A2 (en) | Memory dump method, information processing apparatus and program | |
CN116266150A (zh) | 一种业务恢复方法、数据处理单元及相关设备 | |
CN108615543A (zh) | 用于离散量信号处理芯片的自检方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20101006 |