CN102662701B - Cpld在线升级方法、装置及业务单板 - Google Patents

Cpld在线升级方法、装置及业务单板 Download PDF

Info

Publication number
CN102662701B
CN102662701B CN201210085371.5A CN201210085371A CN102662701B CN 102662701 B CN102662701 B CN 102662701B CN 201210085371 A CN201210085371 A CN 201210085371A CN 102662701 B CN102662701 B CN 102662701B
Authority
CN
China
Prior art keywords
cpld
upgrade
upgrading
cpu
upgraded
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.)
Expired - Fee Related
Application number
CN201210085371.5A
Other languages
English (en)
Other versions
CN102662701A (zh
Inventor
董超
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZTE Corp
Original Assignee
ZTE Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by ZTE Corp filed Critical ZTE Corp
Priority to CN201210085371.5A priority Critical patent/CN102662701B/zh
Publication of CN102662701A publication Critical patent/CN102662701A/zh
Application granted granted Critical
Publication of CN102662701B publication Critical patent/CN102662701B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明涉及一种CPLD在线升级方法、装置及系统,其方法包括:接收远程控制平台发送的CPLD升级文件;将CPLD升级文件拷贝至本地存储器,当接收到远程控制平台发送的CPLD升级命令时,根据存储器中保存的CPLD升级文件,并通过CPU模拟JTAG接口的方式对待升级CPLD进行逻辑加载。本发明实现了对现场设备CPLD的远程升级,无需依赖待升级CPLD内部逻辑,采用模拟JTAG接口的升级方式,可兼容各个厂家的CPLD,通用性好;而且对于在线升级过程中,出现CPU复位或者断电等异常情况下,还可在系统重新启动时,对在线升级未完成的CPLD进行重新加载升级,提高了CPLD在线升级的可靠性。

Description

CPLD在线升级方法、装置及业务单板
技术领域
本发明涉及无线通信技术领域,尤其涉及一种CPLD在线升级方法、装置及业务单板。
背景技术
在通信系统中,需要使用大量的固件版本,比如处理器的BOOT版本,CPLD(ComplexProgramableLogicDevice,复杂可编程逻辑器件)逻辑版本和FPGA(FieldProgramGatesArray,现场可编程逻辑门阵列)逻辑版本等。这些固件版本往往并非一成不变,当客户要求新增功能或者出现一些缺陷时,则需要对固件版本进行升级。
目前,BOOT版本和FPGA版本比较容易实现在线升级,而CPLD逻辑文件则需要采用专用电缆进行烧录,但是,由于不同厂商的下载电缆不尽相同,当现场设备单板CPLD需要更新时,维护人员无法到现场通过线缆升级,给CPLD逻辑版本的现场升级带来了很大的困难,大大提高了维护成本,而且其升级过程还可能导致业务的长时间中断,无法满足通信系统所要求的高可靠性、高稳定性和可维护性的需求。
为了解决CPLD在线升级的问题,目前有采用SRAM(内存)加片内FLASH(闪存)的CPLD架构,以支持在线升级,但是由于CPLD逻辑文件的升级必须谨慎进行,如果写入错误,则可能导致严重的后果,比如导致业务单板无法正常上电启动。而且,现行的CPLD在线升级方案中,各个硬件厂家大多依赖芯片商提供的架构,这种SRAM+FLASH的解决架构,在实现CPLD在线升级时,一定程度上还需要依赖于CPLD内部的逻辑,而且相关的外围电路处理模块都要针对具体某一厂家甚至某一型号的芯片来设计,其可靠性、通用性及可移植性差,且升级流程复杂。
发明内容
本发明的主要目的在于提供一种CPLD在线升级方法、装置及业务单板,旨在实现对现场设备CPLD的远程升级,并提高CPLD在线升级可靠性。
为了达到上述目的,本发明提出一种CPLD在线升级方法,包括:
接收远程控制平台发送的CPLD升级文件;
将所述CPLD升级文件拷贝至本地存储器,所述存储器位于待升级CPLD之外;
当接收到所述远程控制平台发送的CPLD升级命令时,根据所述存储器中保存的CPLD升级文件,并通过CPU模拟JTAG接口的方式对所述待升级CPLD进行逻辑加载。
优选地,所述将CPLD升级文件拷贝至本地存储器的步骤具体包括:
通过所述CPU将所述CPLD升级文件拷贝至本地存储器的在线升级文件区。
优选地,所述根据存储器中保存的CPLD升级文件,并通过CPU模拟JTAG接口的方式对所述待升级CPLD进行逻辑加载的步骤包括:
将所述CPLD升级文件中所述待升级CPLD对应的物理位置信息写入所述存储器的CPLD升级状态标志区中的当前升级CPLD物理位置标识位;
将所述存储器的CPLD升级状态标志区中的升级状态标识置为升级中;
通过所述CPU模拟JTAG接口的方式对所述待升级CPLD进行逻辑加载。
优选地,所述通过CPU模拟JTAG接口的方式对所述待升级CPLD进行逻辑加载的步骤之后还包括:
当加载成功后,将所述CPLD升级状态标志区中的数据清除。
优选地,所述通过CPU模拟JTAG接口的方式对所述待升级CPLD进行逻辑加载的步骤之后还包括:
当系统重新上电后,通过所述CPU检查所述CPLD升级状态标志区中的升级状态标识是否为升级中;若是,则
通过所述CPU读取所述存储器中保存的上次升级信息,对未升级完成的CPLD重新进行加载升级。
优选地,所述通过CPU读取所述存储器中保存的上次升级信息,对未升级完成的CPLD重新进行加载升级的步骤之前还包括:
通过所述CPU检测所述CPLD升级状态标志区中的当前升级CPLD物理位置标识对应的CPLD是否存在,若存在,则执行下一步骤。
优选地,所述接收远程控制平台发送的CPLD升级文件的步骤之后还包括:
以预定方式对所述CPLD升级文件进行校验。
本发明还提出一种CPLD在线升级装置,包括:
接收模块,用于接收远程控制平台发送的CPLD升级文件;
存储模块,用于将所述CPLD升级文件拷贝至本地存储器,所述存储器位于待升级CPLD之外;
在线加载模块,用于当接收到所述远程控制平台发送的CPLD升级命令时,根据所述存储器中保存的CPLD升级文件,并通过CPU模拟JTAG接口的方式对所述待升级CPLD进行逻辑加载。
优选地,所述存储模块还用于通过所述CPU将所述CPLD升级文件拷贝至本地存储器的在线升级文件区。
优选地,所述在线加载模块包括:
写入单元,用于将所述CPLD升级文件中所述待升级CPLD对应的物理位置信息写入所述存储器的CPLD升级状态标志区中的当前升级CPLD物理位置标识位;
状态标识单元,用于将所述存储器的CPLD升级状态标志区中的升级状态标识置为升级中;
加载单元,用于通过所述CPU模拟JTAG接口的方式对所述待升级CPLD进行逻辑加载。
优选地,该装置还包括:
清除模块,用于当加载成功后,将所述CPLD升级状态标志区中的数据清除。
优选地,该装置还包括:
检测模块,用于当系统重新上电后,通过所述CPU检查所述CPLD升级状态标志区中的升级状态标识是否为升级中;
所述在线加载模块还用于当所述CPLD升级状态标志区中的升级状态标识为升级中时,通过所述CPU读取所述存储器中保存的上次升级信息,对未升级完成的CPLD重新进行加载升级。
优选地,所述检测模块还用于当所述CPLD升级状态标志区中的升级状态标识为升级中时,通过所述CPU检测所述CPLD升级状态标志区中的当前升级CPLD物理位置标识对应的CPLD是否存在,若存在,则由所述在线加载模块通过所述CPU读取所述存储器中保存的上次升级信息,对未升级完成的CPLD重新进行加载升级。
优选地,该装置还包括:
校验模块,用于当接收模块接收到远程控制平台发送的CPLD升级文件后,以预定方式对所述CPLD升级文件进行校验。
本发明还提出一种CPLD在线升级业务单板,包括:CPU、待升级的CPLD以及CPLD在线升级装置,所述CPLD在线升级装置为权利要求8-14中任一项所述的装置。
本发明提出的一种CPLD在线升级方法、装置及业务单板,通过需要升级的业务单板的CPU与远程控制平台进行通信,将远程控制平台发送的CPLD升级文件拷贝到业务单板本地存储器中,当接收到远程控制平台发送的CPLD升级命令时,根据存储器中保存的CPLD升级文件,以模拟JTAG接口的方式对待升级CPLD进行逻辑加载,从而实现了对现场设备CPLD的远程升级,而且方法简单,无需依赖待升级CPLD内部逻辑,采用模拟JTAG接口的升级方式,可兼容各个厂家的CPLD,通用性好,对于具有多块CPLD的复杂业务单板,具有较高的实用价值,并提高了CPLD在线升级的可靠性。此外,对于在线升级过程中,出现各种异常,例如CPU复位或者断电的情况下,还可在系统重新启动时,对在线升级未完成的CPLD进行重新加载升级,进一步提高了CPLD在线升级的可靠性。
附图说明
图1是本发明CPLD在线升级方法一实施例的流程示意图;
图2是本发明CPLD在线升级方法一实施例中业务单板的电路结构框图;
图3是本发明CPLD在线升级方法另一实施例的流程示意图;
图4a是本发明CPLD在线升级方法另一实施例中业务单板的电路结构框图;
图4b是图4a所示的存储模块中CPLD升级状态标志区的结构示意图;
图5是本发明CPLD在线升级方法再一实施例的流程示意图;
图6是本发明CPLD在线升级方法又一实施例的流程示意图;
图7是本发明CPLD在线升级装置一实施例的结构示意图;
图8是本发明CPLD在线升级装置另一实施例的结构示意图;
图9是图8所示的实施例中在线加载模块的结构示意图;
图10是本发明CPLD在线升级装置再一实施例的结构示意图。
为了使本发明的技术方案更加清楚、明了,下面将结合附图作进一步详述。
具体实施方式
本发明实施例的解决方案主要是:通过需要升级的业务单板的CPU与远程控制平台进行通信,将远程控制平台发送的CPLD升级文件拷贝到业务单板本地存储器中,当接收到远程控制平台发送的CPLD升级命令时,根据存储器中保存的CPLD升级文件,以模拟JTAG接口的方式对待升级CPLD进行逻辑加载,以实现对现场设备CPLD的远程升级,并提高CPLD在线升级的可靠性。
如图1所示,本发明一实施例提出一种CPLD在线升级方法,包括:
步骤S101,接收远程控制平台发送的CPLD升级文件;
如图2所示,本实施例中业务单板内具有CPU和待升级的CPLD,同时还设置有CPLD在线升级装置,用于对待升级的CPLD进行升级,该CPLD在线升级装置包括在线加载模块和存储模块,该存储模块独立于CPU和待升级的CPLD之外,具体可以为非易失性存储器,比如FLASH等。
业务单板通过外部通信口与远程控制平台通信,远程控制平台负责对业务单板的CPU进行远程控制操作,通过业务单板的外部通信口和被升级业务单板的CPU进行通信。
其中,业务单板的外部通信口可以是网口或者串口。
上述在线加载模块由CPU接口模块和JTAG(JointTestActionGroup,联合测试行动小组)模拟模块组成,CPU接口模块连接CPU总线,是CPU和JTAG模拟模块之间的桥梁,可以让CPU对JTAG模拟模块进行操作,JTAG模拟模块外部连接待升级CPLD的JTAG接口,模拟线缆方式对其进行逻辑加载。在线加载模块一般由可编程逻辑器件加硬件描述语言Verilog或VHDL实现,以提高模块的可移植性。
CPU通过CPU总线分别连接存储模块和在线加载模块的CPU接口模块,在线加载模块通过JTAG模拟模块与待升级的CPLD的JTAG接口连接。
当升级流程启动后,业务单板的CPU首先通过外部通信口接收远程控制平台发送的CPLD升级文件,以便后续在线加载模块可以根据该CPLD升级文件对待升级CPLD进行逻辑加载升级。
步骤S102,将CPLD升级文件拷贝至本地存储器,存储器位于待升级CPLD之外;
如前所述,CPLD在线升级装置中的非易失性存储器独立于业务单板中的CPU和CPLD之外。
当CPU通过外部通信口接收到远程控制平台发送的CPLD升级文件后,将该CPLD升级文件拷贝到非易失性存储器中。
步骤S103,当接收到远程控制平台发送的CPLD升级命令时,根据存储器中保存的CPLD升级文件,并通过CPU模拟JTAG接口的方式对待升级CPLD进行逻辑加载。
当CPU接收到远程控制平台发送的CPLD升级命令时,根据存储器中保存的CPLD升级文件,模拟待升级CPLD的JTAG接口的方式对待升级CPLD进行逻辑加载。
由于本实施例对CPLD进行逻辑加载升级的过程采用业务单板中独立于CPU和CPLD之外的存储器,无需依赖待升级CPLD内部逻辑,不仅实现简单,而且通用性好,支持各个厂家的CPLD,对于具有多块CPLD的复杂业务单板,具有较高的实用价值,并提高了CPLD在线升级的可靠性。
如图3所示,本发明另一实施例提出一种CPLD在线升级方法,在上述实施例的基础上,作出进一步的改进。
如图4a所示,在本实施例中,将CPLD在线升级装置中的存储器划分为多个区域,具体包括在线升级文件区、CPLD升级状态标志区以及其他数据区。其中,在线升级文件区用来存储待升级CPLD的逻辑文件,CPLD升级状态标志区提供给CPU记录本次升级信息,参考图4b,该CPLD升级状态标志区由两部分组成,其中一个为由若干bit组成的当前升级CPLD物理位置标识,另一个为1bit的升级状态标识。
在本实施例中,当CPU通过外部通信口接收到远程控制平台发送的CPLD升级文件后,将CPLD升级文件拷贝至本地存储器的在线升级文件区。
本实施例中,上述步骤S103中根据存储器中保存的CPLD升级文件,并通过CPU模拟JTAG接口的方式对待升级CPLD进行逻辑加载的步骤具体包括:
步骤S1031,将CPLD升级文件中待升级CPLD对应的物理位置信息写入存储器的CPLD升级状态标志区中的当前升级CPLD物理位置标识位;
当CPU接收到远程控制平台发送的CPLD升级命令时,CPU将CPLD待升级文件的物理位置信息记录到存储器内部的CPLD升级状态标志区中的当前升级CPLD物理位置标识位,该标识位的长度可以各级业务单板的具体情况而设定,如果业务单板上可升级的CPLD没有位于支持热插拔的子单板上,那么当前升级CPLD物理位置标识可以直接将本次升级命令的相关参数进行保存,如果有CPLD位于支持热插拔的子单板上,则需考虑到升级过程中子单板被误拔出的情况,将物理位置信息记录的较为详细,比如要具体到子单板对应的唯一条码信息,视系统复杂度而定。
步骤S1032,将存储器的CPLD升级状态标志区中的升级状态标识置为升级中;
当CUP记录完待升级CPLD对应的物理位置信息后,再将存储器的CPLD升级状态标志区中的升级状态标识置为升级中,表示有CPLD正处于升级状态中。
步骤S1033,通过CPU模拟JTAG接口的方式对待升级CPLD进行逻辑加载。
CPU通过CPU总线模拟JTAG接口的方式对待升级CPLD进行逻辑加载,只有当加载完成并成功后,CPU才会将CPLD升级状态标志区中的数据清除,继而系统进入正常工作流程。
此外,如果CPLD在加载过程中出现了CPU被复位或者断电的情况,导致逻辑加载中断,为了处理这种异常情况,本实施例采用以下解决方案。
具体在步骤S1033之后还包括:
步骤S104,判断加载是否成功;若是,则进入步骤S105;否则,进入步骤S106;
步骤S105,将CPLD升级状态标志区中的数据清除。
步骤S106,当系统重新上电后,通过CPU检查CPLD升级状态标志区中的升级状态标识是否为升级中;若是,则进入步骤S107;否则,进入正常工作流程;
步骤S107,通过CPU读取存储器中保存的上次升级信息,对未升级完成的CPLD重新进行加载升级,并返回步骤S104。
上述步骤S104-步骤S107中,当CPLD加载升级成功后,CPU会将CPLD升级状态标志区中的数据清除,继而系统进入正常工作流程,否则,系统进入异常处理流程。具体过程如下:
系统上电后,CPUBOOT加载,然后CPU会去检查存储器中CPLD升级状态标识是否为升级中,如果不是,则直接进入正常工作流程,如果是,则证明上一次系统复位时有未完成逻辑加载的CPLD,这时CPU转入异常处理流程。
本实施例以业务板上没有支持热插拔的子单板,或者支持热插拔的子单板上没有CPLD的应用场景进行举例说。此时,CPU会回去读取存储器中保存的上次升级信息,并按照存储器中保存的CPLD升级文件,重新对未完成逻辑加载的CPLD进行升级,升级成功后再清除CPLD升级状态标志区数据,而后系统进入正常工作流程。
由于本实施例对CPLD进行逻辑加载升级的过程采用业务单板中独立于CPU和CPLD之外的存储器,无需依赖待升级CPLD内部逻辑电路,不仅实现简单,而且采用模拟JTAG接口的升级方式,可兼容各个厂家的CPLD,通用性好,对于具有多块CPLD的复杂业务单板,具有较高的实用价值;而且针对升级过程中可能出现的异常中断情况,提供一种优化的升级操作流程和版本加载流程,在升级过程中出现CPU复位或者断电等异常情况,导致逻辑没有升级成功,在版本重新加载时,CPU回去读取存储器中保存的上次升级信息,对未升级完成的CPLD重新升级,以保证系统能够正常工作,从而提高了升级的可靠性。
如图5所示,本发明再一实施例提出一种CPLD在线升级方法,在上述实施例的基础上,在上述步骤S107之前还包括:
步骤S108,通过CPU检测CPLD升级状态标志区中的当前升级CPLD物理位置标识对应的CPLD是否存在,若存在,则进入步骤S107;否则,进入正常工作流程。
本实施例与上述图3所示的实施例的区别在于,本实施例针对业务板上支持热插拔的子单板出现CPU复位或者断电等异常情况时,提出的一种解决方案,具体过程如下:
系统上电后,CPUBOOT加载,然后CPU会去检查存储器中CPLD升级状态标识是否为升级中,如果不是,则直接进入正常工作流程,如果是,则CPU会首先检测CPLD升级状态标志区中当前升级CPLD物理位置标识对应的CPLD是否存在,在某些支持热插拔的业务板上,当对支持热插拔的子单板进行CPLD升级时,有可能出现子单板被拔出的情况,如果CPU检测到该CPLD已不存在,则直接进入正常工作流程,如果还存在,那么CPU会按照存储器中保存的CPLD升级文件,重新对未升级完成的CPLD进行升级,当升级成功后,再清除CPLD升级状态标志区中的数据,而后系统进入正常工作流程。
本实施例针对业务板上支持热插拔的子单板出现CPU复位或者断电等异常情况,导致逻辑没有升级成功,在版本重新加载时,CPU回去读取存储器中保存的上次升级信息,对未升级完成的CPLD重新升级,以保证系统能够正常工作,从而提高了升级的可靠性。
如图6所示,本发明又一实施例提出一种CPLD在线升级方法,在上述图3所示的实施例的基础上,在步骤S101之后还包括:
步骤S100,以预定方式对CPLD升级文件进行校验。
本实施例与上述图3所示的实施例的区别在于,在本实施例中,当CPU通过外部通信口接收到远程控制平台发送的CPLD升级文件后,首先以预定方式对该CPLD升级文件进行校验,当校验合格后,再将CPLD升级文件拷贝至本地存储器,以便后续可根据该保存的CPLD升级文件,模拟JTAG接口的方式对待升级CPLD进行逻辑加载。本实施例通过对CPLD升级文件的校验,确保数据正确,进一步提高了CPLD在线升级的可靠性。
如图7所示,本发明一实施例提出一种CPLD在线升级装置,包括:接收模块701、存储模块702以及在线加载模块703,其中:
接收模块701,用于接收远程控制平台发送的CPLD升级文件;
存储模块702,用于将CPLD升级文件拷贝至本地存储器,存储器位于待升级CPLD之外;
在线加载模块703,用于当接收到远程控制平台发送的CPLD升级命令时,根据存储器中保存的CPLD升级文件,并通过CPU模拟JTAG接口的方式对待升级CPLD进行逻辑加载。
本实施例CPLD在线升级装置设置在需要升级的业务单板中,用于对待升级的CPLD进行升级,该业务单板内具有CPU和待升级的CPLD。
本实施例中CPLD在线升级装置内的存储模块703独立于业务单板中的CPU和待升级的CPLD之外,具体可以为非易失性存储器,比如FLASH等。CPLD在线升级装置内各模块均由业务单板的CPU控制进行相应的操作。
业务单板通过外部通信口与远程控制平台通信,远程控制平台负责对业务单板的CPU进行远程控制操作,通过业务单板的外部通信口和被升级业务单板的CPU进行通信。
其中,业务单板的外部通信口可以是网口或者串口。
上述在线加载模块703由CPU接口模块和JTAG模拟模块组成,CPU接口模块连接CPU总线,是CPU和JTAG模拟模块之间的桥梁,可以让CPU对JTAG模拟模块进行操作,JTAG模拟模块外部连接待升级CPLD的JTAG接口,模拟线缆方式对其进行逻辑加载。在线加载模块703一般由可编程逻辑器件加硬件描述语言Verilog或VHDL实现,以提高模块的可移植性。
CPU通过CPU总线分别连接存储模块702和在线加载模块703的CPU接口模块,在线加载模块703通过JTAG模拟模块与待升级的CPLD的JTAG接口连接。
本实施例中接收模块701与业务单板的CPU连接,同时还连接在线加载模块703。当升级流程启动后,接收模块701通过CPU及业务单板的外部通信口接收远程控制平台发送的CPLD升级文件,以便后续在线加载模块703可以根据该CPLD升级文件对待升级CPLD进行逻辑加载升级。
当接收模块701通过CPU接收到远程控制平台发送的CPLD升级文件后,由存储模块受CPU控制将该CPLD升级文件拷贝到非易失性存储器中。
当CPU接收到远程控制平台发送的CPLD升级命令时,在线加载模块703则根据存储器中保存的CPLD升级文件,模拟待升级CPLD的JTAG接口的方式对待升级CPLD进行逻辑加载。
由于本实施例对CPLD进行逻辑加载升级的过程采用业务单板中独立于CPU和CPLD之外的存储器,无需依赖待升级CPLD内部逻辑,不仅实现简单,而且通用性好,支持各个厂家的CPLD,对于具有多块CPLD的复杂业务单板,具有较高的实用价值,并提高了CPLD在线升级的可靠性。
如图8所示,本发明另一实施例提出一种CPLD在线升级装置,在上述图7所示的实施例的基础上还包括:清除模块704及检测模块705;
如图9所示,在本实施例中,在线加载模块703包括:写入单元7031、状态标识单元7032以及加载单元7033,其中:
写入单元7031,用于将所述CPLD升级文件中所述待升级CPLD对应的物理位置信息写入所述存储器的CPLD升级状态标志区中的当前升级CPLD物理位置标识位;
状态标识单元7032,用于将存储器的CPLD升级状态标志区中的升级状态标识置为升级中;
加载单元7033,用于通过CPU模拟JTAG接口的方式对待升级CPLD进行逻辑加载。
在本实施例中,清除模块704用于当加载成功后,将CPLD升级状态标志区中的数据清除。
检测模块705用于当系统重新上电后,通过CPU检查CPLD升级状态标志区中的升级状态标识是否为升级中;
在线加载模块703还用于当CPLD升级状态标志区中的升级状态标识为升级中时,通过CPU读取所述存储器中保存的上次升级信息,对未升级完成的CPLD重新进行加载升级。
此外,本实施例检测模块705还用于当所述CPLD升级状态标志区中的升级状态标识为升级中时,通过CPU检测所述CPLD升级状态标志区中的当前升级CPLD物理位置标识对应的CPLD是否存在,若存在,则由在线加载模块705通过所述CPU读取所述存储器中保存的上次升级信息,对未升级完成的CPLD重新进行加载升级。
具体地,本实施例在上述实施例的基础上,作出进一步的改进。
如图4a所示,在本实施例中,将CPLD在线升级装置中的存储器划分为多个区域,具体包括在线升级文件区、CPLD升级状态标志区以及其他数据区。其中,在线升级文件区用来存储待升级CPLD的逻辑文件,CPLD升级状态标志区提供给CPU记录本次升级信息,参考图4b,该CPLD升级状态标志区由两部分组成,其中一个为由若干bit组成的当前升级CPLD物理位置标识,另一个为1bit的升级状态标识。
在本实施例中,当接收模块701通过CPU及外部通信口接收到远程控制平台发送的CPLD升级文件后,存储模块702将CPLD升级文件拷贝至本地存储器的在线升级文件区。
当CPU接收到远程控制平台发送的CPLD升级命令时,在线加载模块703中的写入单元7031由CPU控制将CPLD待升级文件的物理位置信息记录到存储器内部的CPLD升级状态标志区中的当前升级CPLD物理位置标识位,该标识位的长度可以各级业务单板的具体情况而设定,如果业务单板上可升级的CPLD没有位于支持热插拔的子单板上,那么当前升级CPLD物理位置标识可以直接将本次升级命令的相关参数进行保存,如果有CPLD位于支持热插拔的子单板上,则需考虑到升级过程中子单板被误拔出的情况,将物理位置信息记录的较为详细,比如要具体到子单板对应的唯一条码信息,视系统复杂度而定。
当记录完待升级CPLD对应的物理位置信息后,在线加载模块703中的状态标识单元7032再将存储器的CPLD升级状态标志区中的升级状态标识置为升级中,表示有CPLD正处于升级状态中。
之后,在线加载模块703中的加载单元7033由CPU控制通过CPU总线模拟JTAG接口的方式对待升级CPLD进行逻辑加载,当加载完成并成功后,由CPU控制清除模块704将CPLD升级状态标志区中的数据清除,继而系统进入正常工作流程。
此外,如果CPLD在加载过程中出现了CPU被复位或者断电的情况,导致逻辑加载中断,为了处理这种异常情况,本实施例采用以下解决方案。
当CPLD加载升级成功后,由CPU控制清除模块704将CPLD升级状态标志区中的数据清除,继而系统进入正常工作流程,否则,系统进入异常处理流程。具体过程如下:
系统上电后,CPUBOOT加载,然后由CPU控制检测模块705去检查存储器中CPLD升级状态标识是否为升级中,如果不是,则直接进入正常工作流程,如果是,则证明上一次系统复位时有未完成逻辑加载的CPLD,这时CPU转入异常处理流程。
对应业务板上没有支持热插拔的子单板,或者支持热插拔的子单板上没有CPLD的应用场景,此时,在线加载模块705会回去读取存储器中保存的上次升级信息,并按照存储器中保存的CPLD升级文件,重新对未完成逻辑加载的CPLD进行升级,升级成功后再由清除模块704清除CPLD升级状态标志区数据,而后系统进入正常工作流程。
针对业务板上支持热插拔的子单板出现CPU复位或者断电等异常情况,当系统上电后,CPUBOOT加载,首先通过检测模块705检查存储器中CPLD升级状态标识是否为升级中,如果不是,则直接进入正常工作流程,如果是,则检测模块705首先检测CPLD升级状态标志区中当前升级CPLD物理位置标识对应的CPLD是否存在,在某些支持热插拔的业务板上,当对支持热插拔的子单板进行CPLD升级时,有可能出现子单板被拔出的情况,如果CPU检测到该CPLD已不存在,则直接进入正常工作流程,如果还存在,那么CPU会控制在线加载模块703按照存储器中保存的CPLD升级文件,重新对未升级完成的CPLD进行升级,当升级成功后,再清除CPLD升级状态标志区中的数据,而后系统进入正常工作流程。
由于本实施例对CPLD进行逻辑加载升级的过程采用业务单板中独立于CPU和CPLD之外的存储器,无需依赖待升级CPLD内部逻辑电路,不仅实现简单,而且采用模拟JTAG接口的升级方式,可兼容各个厂家的CPLD,通用性好,对于具有多块CPLD的复杂业务单板,具有较高的实用价值;而且针对升级过程中可能出现的异常中断情况,提供一种优化的升级操作流程和版本加载流程,在升级过程中出现CPU复位或者断电等异常情况,导致逻辑没有升级成功,在版本重新加载时,CPU回去读取存储器中保存的上次升级信息,对未升级完成的CPLD重新升级,以保证系统能够正常工作,从而提高了升级的可靠性。
如图10所示,本发明再一实施例提出一种CPLD在线升级装置,在上述图7所示的实施例的基础上还包括:
校验模块700,用于当接收模块接收到远程控制平台发送的CPLD升级文件后,以预定方式对所述CPLD升级文件进行校验。
本实施例与上述实施例的区别在于,在本实施例中,当接收模块701通过CPU及外部通信口接收到远程控制平台发送的CPLD升级文件后,由校验模块700以预定方式对该CPLD升级文件进行校验,当校验合格后,再将CPLD升级文件拷贝至本地存储器,以便后续可根据该保存的CPLD升级文件,模拟JTAG接口的方式对待升级CPLD进行逻辑加载。本实施例通过对CPLD升级文件的校验,确保数据正确,进一步提高了CPLD在线升级的可靠性。
此外本发明一实施例还提出一种CPLD在线升级业务单板,包括:CPU、待升级的CPLD以及CPLD在线升级装置,该CPLD在线升级装置可以为上述各实施例中所述的装置,其内部结构和功能特点,请参照上述各实施例,在此不再赘述。
本发明实施例CPLD在线升级方法、装置及业务单板,通过需要升级的业务单板的CPU与远程控制平台进行通信,将远程控制平台发送的CPLD升级文件拷贝到业务单板本地存储器中,当接收到远程控制平台发送的CPLD升级命令时,根据存储器中保存的CPLD升级文件,以模拟JTAG接口的方式对待升级CPLD进行逻辑加载,从而实现了对现场设备CPLD的远程升级,而且方法简单,无需依赖待升级CPLD内部逻辑,采用模拟JTAG接口的升级方式,可兼容各个厂家的CPLD,通用性好,对于具有多块CPLD的复杂业务单板,具有较高的实用价值,并提高了CPLD在线升级的可靠性。此外,对于在线升级过程中,出现各种异常,例如CPU复位或者断电的情况下,还可在系统重新启动时,对在线升级未完成的CPLD进行重新加载升级,进一步提高了CPLD在线升级的可靠性。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (11)

1.一种复杂可编程逻辑器件CPLD在线升级方法,其特征在于,包括:
接收远程控制平台发送的CPLD升级文件;
以预定方式对所述CPLD升级文件进行校验;
将所述CPLD升级文件拷贝至本地存储器,所述存储器位于待升级CPLD之外;
当接收到所述远程控制平台发送的CPLD升级命令时,根据所述存储器中保存的CPLD升级文件,并通过CPU模拟JTAG接口的方式对所述待升级CPLD进行逻辑加载,具体包括:将所述CPLD升级文件中所述待升级CPLD对应的物理位置信息写入所述存储器的CPLD升级状态标志区中的当前升级CPLD物理位置标识位;将所述存储器的CPLD升级状态标志区中的升级状态标识置为升级中;通过所述CPU模拟JTAG接口的方式对所述待升级CPLD进行逻辑加载;其中,标识位的长度以各级业务单板的具体情况而设定,若业务单板上可升级的CPLD没有位于支持热插拔的子单板上,那么当前升级CPLD物理位置标识可以直接将本次升级命令的相关参数进行保存,如果有CPLD位于支持热插拔的子单板上,则具体记录相关的物理位置信息。
2.根据权利要求1所述的方法,其特征在于,所述将CPLD升级文件拷贝至本地存储器的步骤具体包括:
通过所述CPU将所述CPLD升级文件拷贝至本地存储器的在线升级文件区。
3.根据权利要求2所述的方法,其特征在于,所述通过CPU模拟JTAG接口的方式对所述待升级CPLD进行逻辑加载的步骤之后还包括:
当加载成功后,将所述CPLD升级状态标志区中的数据清除。
4.根据权利要求2所述的方法,其特征在于,所述通过CPU模拟JTAG接口的方式对所述待升级CPLD进行逻辑加载的步骤之后还包括:
当系统重新上电后,通过所述CPU检查所述CPLD升级状态标志区中的升级状态标识是否为升级中;若是,则
通过所述CPU读取所述存储器中保存的上次升级信息,对未升级完成的CPLD重新进行加载升级。
5.根据权利要求3所述的方法,其特征在于,所述通过CPU读取所述存储器中保存的上次升级信息,对未升级完成的CPLD重新进行加载升级的步骤之前还包括:
通过所述CPU检测所述CPLD升级状态标志区中的当前升级CPLD物理位置标识对应的CPLD是否存在,若存在,则执行下一步骤。
6.一种CPLD在线升级装置,其特征在于,包括:
接收模块,用于接收远程控制平台发送的CPLD升级文件;
校验模块,用于当接收模块接收到远程控制平台发送的CPLD升级文件后,以预定方式对所述CPLD升级文件进行校验;
存储模块,用于将所述CPLD升级文件拷贝至本地存储器,所述存储器位于待升级CPLD之外;
在线加载模块,用于当接收到所述远程控制平台发送的CPLD升级命令时,根据所述存储器中保存的CPLD升级文件,并通过CPU模拟JTAG接口的方式对所述待升级CPLD进行逻辑加载;所述在线加载模块包括:
写入单元,用于将所述CPLD升级文件中所述待升级CPLD对应的物理位置信息写入所述存储器的CPLD升级状态标志区中的当前升级CPLD物理位置标识位;
状态标识单元,用于将所述存储器的CPLD升级状态标志区中的升级状态标识置为升级中;
加载单元,用于通过所述CPU模拟JTAG接口的方式对所述待升级CPLD进行逻辑加载;其中,标识位的长度以各级业务单板的具体情况而设定,若业务单板上可升级的CPLD没有位于支持热插拔的子单板上,那么当前升级CPLD物理位置标识可以直接将本次升级命令的相关参数进行保存,如果有CPLD位于支持热插拔的子单板上,则具体记录相关的物理位置信息。
7.根据权利要求6所述的装置,其特征在于,所述存储模块还用于通过所述CPU将所述CPLD升级文件拷贝至本地存储器的在线升级文件区。
8.根据权利要求7所述的装置,其特征在于,还包括:
清除模块,用于当加载成功后,将所述CPLD升级状态标志区中的数据清除。
9.根据权利要求7所述的装置,其特征在于,还包括:
检测模块,用于当系统重新上电后,通过所述CPU检查所述CPLD升级状态标志区中的升级状态标识是否为升级中;
所述在线加载模块还用于当所述CPLD升级状态标志区中的升级状态标识为升级中时,通过所述CPU读取所述存储器中保存的上次升级信息,对未升级完成的CPLD重新进行加载升级。
10.根据权利要求9所述的装置,其特征在于,
所述检测模块还用于当所述CPLD升级状态标志区中的升级状态标识为升级中时,通过所述CPU检测所述CPLD升级状态标志区中的当前升级CPLD物理位置标识对应的CPLD是否存在,若存在,则由所述在线加载模块通过所述CPU读取所述存储器中保存的上次升级信息,对未升级完成的CPLD重新进行加载升级。
11.一种CPLD在线升级业务单板,其特征在于,包括:CPU、待升级的CPLD以及CPLD在线升级装置,所述CPLD在线升级装置为权利要求6-10中任一项所述的装置。
CN201210085371.5A 2012-03-28 2012-03-28 Cpld在线升级方法、装置及业务单板 Expired - Fee Related CN102662701B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210085371.5A CN102662701B (zh) 2012-03-28 2012-03-28 Cpld在线升级方法、装置及业务单板

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210085371.5A CN102662701B (zh) 2012-03-28 2012-03-28 Cpld在线升级方法、装置及业务单板

Publications (2)

Publication Number Publication Date
CN102662701A CN102662701A (zh) 2012-09-12
CN102662701B true CN102662701B (zh) 2016-07-27

Family

ID=46772202

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210085371.5A Expired - Fee Related CN102662701B (zh) 2012-03-28 2012-03-28 Cpld在线升级方法、装置及业务单板

Country Status (1)

Country Link
CN (1) CN102662701B (zh)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102013106098A1 (de) * 2013-06-12 2014-12-18 Endress + Hauser Gmbh + Co. Kg Verfahren zur Parametrierung eines Feldgerätes
CN103490927A (zh) * 2013-09-10 2014-01-01 中兴通讯股份有限公司 一种固件升级方法、设备及通信系统
CN105468389A (zh) * 2014-09-04 2016-04-06 中兴通讯股份有限公司 基于cpld的远程升级控制方法和装置
CN106411967B (zh) * 2015-07-27 2019-08-30 深圳市赛格导航科技股份有限公司 汽车电子产品远程升级方法和系统
CN105159731B (zh) * 2015-10-12 2018-09-28 中国电子科技集团公司第五十四研究所 一种fpga配置文件远程升级的装置
CN107193583A (zh) * 2017-04-07 2017-09-22 惠州市天泽盈丰物联网科技股份有限公司 后台在线升级设备程序方法
CN109491679B (zh) * 2017-09-08 2023-03-24 迈普通信技术股份有限公司 一种cpld在线升级方法及装置
CN108037947B (zh) * 2017-12-11 2021-09-07 北京奇虎科技有限公司 补丁包加载方法及其装置、终端
CN108306959A (zh) * 2018-01-29 2018-07-20 郑州云海信息技术有限公司 一种远程升级cpld固件的方法、装置和存储介质
CN108418707B (zh) * 2018-01-31 2020-12-01 武汉虹信科技发展有限责任公司 通信系统中双cpld互相在线备份升级方法及业务单板
CN110704090B (zh) * 2018-07-09 2022-09-30 阿里巴巴集团控股有限公司 现场可编程门阵列fpga及其升级方法和升级系统
CN109117160A (zh) * 2018-08-15 2019-01-01 广州南方卫星导航仪器有限公司 具有在线升级cpld固件的gnss主机、系统和方法
CN109491716B (zh) * 2018-10-19 2021-11-16 北京行易道科技有限公司 启动方法及装置、程序存储方法及装置
CN111104134B (zh) * 2018-10-26 2021-09-07 华为技术有限公司 可编程器件的管理单元的更新方法、装置和存储介质
CN109885327A (zh) * 2019-02-28 2019-06-14 新华三信息安全技术有限公司 一种升级cpld的方法及装置
CN110196726B (zh) * 2019-05-17 2023-05-26 江西山水光电科技股份有限公司 一种基于cpu+cpld实现fpga程序远程升级加载的方法
CN110442365A (zh) * 2019-07-26 2019-11-12 锐捷网络股份有限公司 可编程逻辑器件的升级方法及装置
CN110784303B (zh) * 2019-10-18 2023-06-02 天津津航计算技术研究所 一种带安全认证的远程升级装置
CN110990316B (zh) * 2019-10-31 2021-10-01 苏州浪潮智能科技有限公司 用于输出热插拔设备状态的方法和可编程逻辑电路
CN112199108A (zh) * 2020-09-21 2021-01-08 珠海格力电器股份有限公司 终端系统升级方法、装置、终端及存储介质
CN112181459B (zh) * 2020-09-25 2022-08-26 苏州浪潮智能科技有限公司 一种cpld升级优化方法及系统
CN112527345A (zh) * 2020-11-27 2021-03-19 苏州浪潮智能科技有限公司 一种扩展柜cpld在线升级的方法、装置、设备及可读介质
CN112596434B (zh) * 2020-12-07 2022-11-04 天津津航计算技术研究所 一种cpld引脚逻辑状态监测方法
CN112783048B (zh) * 2020-12-31 2022-02-18 南京晨光集团有限责任公司 一种用于伺服驱动器的远程调试系统
CN112905219A (zh) * 2021-02-07 2021-06-04 惠州Tcl移动通信有限公司 基于sd卡的软件更新方法、终端及计算机可读存储介质
CN112882770B (zh) * 2021-03-04 2024-01-12 中国航空工业集团公司西安航空计算技术研究所 一种分布式处理系统数据加载升级框架及方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101030140A (zh) * 2006-03-02 2007-09-05 中兴通讯股份有限公司 一种对固件程序进行在线升级的装置及其方法
CN101453374A (zh) * 2008-12-29 2009-06-10 武汉烽火网络有限责任公司 网络设备在线升级方法及系统
CN101853172A (zh) * 2010-05-24 2010-10-06 中兴通讯股份有限公司 复杂可编程逻辑器件cpld动态升级装置及方法
CN101853171A (zh) * 2010-05-24 2010-10-06 福建星网锐捷网络有限公司 一种复杂可编程逻辑器件的在线升级方法及装置
CN101894029A (zh) * 2010-06-21 2010-11-24 中兴通讯股份有限公司 一种在线升级复杂可编程逻辑器件的方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101030140A (zh) * 2006-03-02 2007-09-05 中兴通讯股份有限公司 一种对固件程序进行在线升级的装置及其方法
CN101453374A (zh) * 2008-12-29 2009-06-10 武汉烽火网络有限责任公司 网络设备在线升级方法及系统
CN101853172A (zh) * 2010-05-24 2010-10-06 中兴通讯股份有限公司 复杂可编程逻辑器件cpld动态升级装置及方法
CN101853171A (zh) * 2010-05-24 2010-10-06 福建星网锐捷网络有限公司 一种复杂可编程逻辑器件的在线升级方法及装置
CN101894029A (zh) * 2010-06-21 2010-11-24 中兴通讯股份有限公司 一种在线升级复杂可编程逻辑器件的方法及装置

Also Published As

Publication number Publication date
CN102662701A (zh) 2012-09-12

Similar Documents

Publication Publication Date Title
CN102662701B (zh) Cpld在线升级方法、装置及业务单板
CN102622280B (zh) 一种基于双文件系统的软件版本升级的控制方法及装置
US9207929B2 (en) Integrated system and firmware update method
CN103942065B (zh) 用于更新固件兼容性数据的方法和系统
CN102693139B (zh) 一种无线升级手机软件的方法及系统
CN103999055B (zh) 访问命令/地址寄存器装置中存储的数据
CN107171833A (zh) 一种通过bmc实现服务器bmc和bios批量升级方法
US7529653B2 (en) Message packet logging in a distributed simulation system
CN104461594B (zh) 嵌入式操作系统的升级方法及装置
CN103942061A (zh) 电池固件更新方法、便携式电子装置及充电电池模块
WO2012079301A1 (zh) 移动终端的触摸屏固件升级方法及装置
CN108021410A (zh) 一种智能家电设备的固件升级方法及系统
CN106445577A (zh) 更新方法、服务器系统以及非瞬态计算机可读取介质
CN104978271B (zh) 一种Android系统的自动升级压测方法及系统
CN103154900A (zh) 编入程序更新方法、编入程序更新程序、电子设备、网络系统
CN104035803A (zh) 一种更新cpld/fpga固件的方法、装置及烧录器
CN109002310A (zh) 固件升级方法
CN106469103A (zh) 硬盘的维护方法和装置
CN109783390A (zh) Psu固件升降级稳定性测试方法、装置、终端及存储介质
CN108108193A (zh) 一种安全易用的固件升级方法及系统
CN108874582A (zh) 一种系统恢复方法、装置及终端
CN103136002A (zh) 一种基于UBoot的自动升级的控制方法及系统
CN107690630A (zh) 计算设备中的桥配置
CN115184764A (zh) 一种芯片测试方法、装置、电子设备及存储介质
CN109408088A (zh) Cpld升级方法、装置、系统和计算机可读存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160727

Termination date: 20200328