专利名称:复杂可编程逻辑器件cpld动态升级装置及方法
技术领域:
本发明涉及通信技术领域,尤其涉及通信业务单板的复杂可编程逻辑器件CPLD 动态升级装置及方法。
背景技术:
在通信系统中,使用大量的固件版本,比如处理器的BOOT版本、CPLD (Complex Programmable Logic Device,复杂可编程逻辑器件)逻辑版本和FPGA(Field Program Gates Array,现场可编程逻辑门阵列)逻辑版本等。这些固件版本往往并非是一成不变的, 当顾客要求新增功能或者出现了一些缺陷时就需要进行升级。目前BOOT版本和FPGA逻辑版本比较容易实现在线升级,而CPLD逻辑文件需要用 专用电缆进行烧录,不同厂商的下载电缆也不尽相同,这就给CPLD逻辑版本的现场升级带 来了很大困难,大大提高了维护成本,升级过程还可能导致业务的长时间中断,这些都无法 满足通信系统所要求的高可靠性、高稳定性和可维护性的需求。目前,各可编程逻辑器件厂商(比如Altera、Lattice和Xilinx)都提出了 SRAM(内存)加片内FLASH(闪存)的CPLD架构,并提供了对CPLD逻辑文件进行在线升级 的技术。但是由于CPLD逻辑文件的升级必须非常谨慎进行,如果错误写入的话,可能导致 严重的后果,比如损坏业务单板或者导致业务单板无法正常上电启动。在一种现有的CPLD升级方案中,需要一个接口控制器来控制升级过程,但这增加 了设备的电路复杂度;另外要求升级CPLD过程中业务处理器不被其他任务、进程或者中断 所打断,这就必然会导致在升级过程中影响业务时间较长。因而如何实现简便可靠的CPLD在线升级成为需要解决的一个技术问题。
发明内容
本发明所要解决的技术问题在于,提供一种复杂可编程逻辑器件CPLD动态升级 的装置及方法。为了解决上述问题,本发明提出了一种CPLD动态升级的方法,包括业务单板处理器从远程后台网管平台获取后台CPLD版本信息,与本单板中运行 的CPLD版本信息以及CPLD芯片的片内FLASH用户数据区保存的工作版本信息进行比较, 若均不一致,则向远程后台网管平台请求进行CPLD版本升级;业务单板处理器控制CPLD芯片进行版本下载,将获取的后台CPLD版本文件写入 CPLD芯片的片内FLASH工作版本区,并更新用户数据区的工作版本信息;业务单板处理器向CPLD芯片的在线升级逻辑单元发送切换加载工作版本命令, 在线升级逻辑单元的版本加载模块根据切换加载工作版本命令从工作版本区获取后台 CPLD版本进行工作版本加载。所述方法进一步包括若获取的后台CPLD版本信息与本单板中运行的CPLD版本信息不一致,而与所述
4用户数据区保存的工作版本信息一致时,业务单板处理器直接向CPLD芯片的在线升级逻辑单元发送切换加载工作版本命 令,在线升级逻辑单元的版本加载模块根据切换加载工作版本命令从工作版本区获取后台 CPLD版本进行工作版本加载。所述方法进一步包括在进行工作版本加载时,通过在线升级逻辑单元的保护模块监控版本加载过程如果发现异常,则版本加载模块重新加载CPLD芯片的片内FLASH启动版本区的启 动版本,单板复位后,继续获取从远程后台网管平台获取后台CPLD版本信息进行版本信息 的比较;否则,表示版本切换成功,单板复位后继续获取从远程后台网管平台获取后台 CPLD版本信息进行版本信息的比较。所述切换加载工作版本命令,包括版本加载码,版本加载确认码,版本区标识。所述方法进一步包括所述远程后台网管平台根据业务单板处理器的升级申请请求,监控CPLD升级申 请次数,如果升级申请次数超过规定的次数,则发出告警表示该业务单板出现了无法修复 的故障。本发明还提供一种CPLD在线升级装置,包括业务单板处理器、复杂可编程逻辑 器件CPLD芯片和通信接口,其中所述业务单板处理器通过通信接口与远程后台网管平台相连,通过本地总线或者 地址数据总线与CPLD芯片相连接,用于控制CPLD芯片的在线升级过程;所述CPLD芯片包括在线升级逻辑单元和片内FLASH,所述片内FLASH具有启动版 本区、工作版本区和用户数据区;所述在线升级逻辑单元包括版本加载模块;所述业务单板处理器,用于从远程后台网管平台获取后台CPLD版本信息,与本单 板中运行的CPLD版本信息以及CPLD芯片的片内FLASH用户数据区保存的工作版本信息进 行比较,若均不一致,则向远程后台网管平台请求进行CPLD版本升级;所述业务单板处理器,控制CPLD芯片进行版本下载,将获取的后台CPLD版本文件 写入CPLD芯片的片内FLASH工作版本区,并更新用户数据区的工作版本信息;所述业务单板处理器,向CPLD芯片的在线升级逻辑单元发送切换加载工作版本 命令,在线升级逻辑单元的版本加载模块根据切换加载工作版本命令从工作版本区获取后 台CPLD版本进行工作版本加载。所述业务单板处理器进行版本信息比较时,若获取的后台CPLD版本信息与本单 板中运行的CPLD版本信息不一致,而与所述用户数据区保存的工作版本信息一致,则所述业务单板处理器直接向CPLD芯片的在线升级逻辑单元发送切换加载工作版 本命令,在线升级逻辑单元的版本加载模块根据切换加载工作版本命令从工作版本区获取 后台CPLD版本进行工作版本加载。所述所述在线升级逻辑单元包括保护模块;所述保护模块,用于在进行工作版本加载时,通过在线升级逻辑单元的保护模块 监控版本加载过程如果发现异常,则版本加载模块重新加载CPLD芯片的片内FLASH启动版本区的启动版本,单板复位后,所述业务单板处理器继续获取从远程后台网管平台获取后台CPLD版 本信息进行版本信息的比较;否则,表示版本切换成功,单板复位后,所述业务单板处理器继续获取从远程后台 网管平台获取后台CPLD版本信息进行版本信息的比较。所述业务单板处理器向CPLD芯片的在线升级逻辑单元发送的切换加载工作版本 命令包括版本加载码,版本加载确认码,版本区标识。所述在线升级逻辑单元还包括CPU接口模块,用于负责CPLD芯片与业务单板处理器的交互,实现在线升级逻辑 单元与业务单板处理器的交互命令解析以及进行状态上报;双口 RAM控制模块,实现CPU接口模块与FLASH读写控制模块之间的数据缓存,减 少版本文件下载时间;FLASH读写控制模块,将CPU接口转换为片内FLASH所需的FLASH控制接口。本发明的CPLD版本进行在线升级的装置及其方法,可实现对CPLD逻辑文件进行 可靠的在线动态升级。与现有技术相比较,本发明不需要额外的接口控制器和FLASH存储 芯片,仅利用CPLD片内FLASH即可,电路简单;并且在CPLD逻辑文件下载更新过程中业务 处理器的其他任务可以正常执行,可快速完成版本切换,从而达到CPLD在线动态升级过程 对系统业务影响减至最小。
图1是本发明的CPLD在线动态升级装置示意图;图2是本发明的在线升级逻辑单元的结构框图;图3是本发明的版本切换过程的切换控制命令格式示意图;图4是本发明的CPLD在线动态升级流程示意图。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚,以下结合附图对本发明作进一步 地详细说明。本发明针对通信业务单板等设备上CPLD (复杂可编程逻辑器件)目前在线升级存 在实现复杂,升级过程会影响单板其它功能应用的问题。提出了一种用于通过远程后台网 管平台对业务单板的CPLD版本进行动态升级的装置及方法。本发明对远程后台网管平台的CPLD版本信息,与CPLD芯片当前运行的版本信息 以及所保存的工作版本信息进行比较,已确认单板是否需要在线升级;升级时,先将后台 CPLD版本下载到片内FLASH的工作版本区,再对工作版本区的后台CPLD版本进行加载完成 在线升级;加载过程中还对加载过程进行保护监控,确保升级异常时及时处理。本发明不需要额外的接口控制器和FLASH存储芯片,仅利用CPLD片内FLASH的不 同分区分别作为工作版本文件的存储区以及工作版本信息的存储区即可,电路简单;并且 在CPLD逻辑文件下载更新过程中业务处理器的其他任务可以正常执行,可快速完成版本 切换,从而达到CPLD在线动态升级过程对系统业务影响减至最小。如图1所示,显示了本发明的CPLD在线升级装置示例图。该在线升级装置,包括
6业务单板处理器、复杂可编程逻辑器件CPLD芯片和通信接口。其中,所述业务单板处理器 通过通信接口与远程后台网管平台相连,通过本地总线或者地址数据总线与CPLD芯片相 连接,用于控制CPLD芯片的在线升级过程。业务单板处理器CPU对CPLD芯片的控制信号 是指处理器的读写和复位等控制信号。所述业务单板处理器是指业务单板上所用的主处理器,可以是CPU或者MCU (微处 理器)。在控制CPLD芯片的在线升级过程中,所述业务单板处理器比较远端后台网管平台 所保存的CPLD版本信息和本地CPLD芯片的CPLD版本信息,根据比较结果判断本地CPLD芯 片是否需要进行动态升级,如需升级则从远程后台网管平台下载获取要升级的文件到CPLD 芯片的工作区,并对CPLD实现动态升级控制,在CPLD在线升级过程中做为CPLD版本下载 和切换的控制器。所述通信接口,用于业务单板与后台网管平台通信,可以是网口、串口或者光口寸。 所述CPLD芯片,采用SRAM加片内FLASH架构的CPLD芯片。所述CPLD芯片集成 的片内FLASH,可作为CPLD版本加载所需的存储资源,这就可节省板内存储器资源;在本实 施例中,也可采用外置存储芯片来替代片内FLASH,其具体实施方式
可参照片内FLASH的实 施方式进行。本实施例中,将CPLD芯片的片内FLASH的存储空间分为三个分区启动版本 区、工作版本区和用户数据区。其中启动版本区不支持在线升级,需要通过出厂时由JTAG 口进行烧录完成,该启动版 本区的逻辑版本用于提供业务单板处理器访问内部FLASH接口和业务单板处理器启动所 必需的基本逻辑;工作版本区支持在线升级,用于存放CPLD芯片正常工作时的CPLD逻辑版本;用户数据区,用于存放在线下载所需的工作版本的信息、版本切换标识以及其他 用户信息,可支持在线修改更新。所述CPLD芯片,主要用于实现与业务单板相关的功能和控制,其逻辑程序包括两 部分。如图1所示,所述CPLD芯片的CPLD逻辑单元分为两部分在线升级逻辑单元,用于 完成CPLD在线升级;完成单板其余功能所需的逻辑单元。其中,所述在线升级逻辑单元的 模块框图如图2所示,给出了在线升级逻辑单元的原理框图。包括CPU接口模块,用于负责CPLD芯片与业务单板处理器(CPU)的交互,实现在线升级 逻辑单元与CPU的交互命令解析以及进行状态上报;双口 RAM控制模块,实现CPU接口模块与FLASH读写控制模块之间的数据缓存,减 少版本文件下载时间;FLASH读写控制模块,将CPU接口转换为内置FLASH存储器所需的FLASH控制接
n ;保护模块,与CPU接口模块和版本加载模块相连,用于对版本加载进行监控并确 保版本可靠加载;版本加载模块,加载存储在内置FLASH中的指定版本文件为当前运行版本。整个CPLD的在线动态升级过程包括两个主要部分版本下载和版本切换。下面对 上述版本下载及版本切换分别进行说明。所述版本下载指的是
7
业务单板处理器通过通信接口获取远程后台网管平台中存储的本单板的CPLD版 本信息,并与本单板中运行的CPLD版本信息及存储在用户数据区的工作版本信息比较,发 现不一致则向后台网管平台发起CPLD版本升级请求,并获取用于升级的CPLD版本文件;然 后通过进行版本下载操作,即将所述的CPLD版本文件写入所述的CPLD器件片内FLASH的 工作版本区,并更新用户数据区的工作版本信息。所述版本切换指的是在线升级逻辑单元中的版本加载模块接收到CPU发起的版本加载命令或者保护 模块发现加载过程异常后发出的硬件控制版本重加载命令时,按照命令中的版本区标识进 行版本加载,切换更新当前运行版本。版本切换完成后单板自动复位一次。切换命令格式 如图3所示,包括8比特的版本加载码,8比特的版本加载确认码,1比特的版本区标识。本 示例中设置版本加载码为0x55,版本加载确认码为OxAA,启动版本区的版本标识为0,工作 版本区的版本标识为1。假设目前运行的版本为启动版本,需要切换到工作版本时的命令格 式为0x55,0xAA,l。CPU只需向指定的CPLD寄存器中写入0x55,0xaa,l后,即可触发版本 切换到工作版本操作。如图4所示,显示了本发明的CPLD在线升级时,CPLD版本动态升级的流程示例图。 结合图1,图2,该动态升级流程包括如下步骤步骤401 上电后,CPLD芯片中在线升级逻辑单元的CPLD版本加载模块启动版本 加载;步骤402:业务单板处理器获取后台网管平台保存的后台CPLD版本信息,并与 CPLD芯片中当前运行CPLD版本信息进行比较;步骤403 业务单板处理器判断后台CPLD版本信息与当前的CPLD运行版本信息 是否一致。一致则进入步骤404,否则进入步骤405 ;步骤404 结束升级流程,单板进入正常工作流程。到达该步骤表示在线升级流程结束。步骤405 业务单板处理器继续判断后台CPLD版本信息与CPLD的片内FLASH中 存储的CPLD版本信息是否一致。若一致则进入步骤408,否则进入步骤406 ;步骤406 业务单板处理器CPU从后台网管平台接收后台CPLD版本文件,并通过 CPLD在线升级逻辑单元将所下载的CPLD版本文件写入内置FLASH的工作版本区。步骤407 业务单板处理器CPU判断后台CPLD版本文件是否下载完成,如果未完 成则返回步骤406继续进行下载,否则进入步骤408。步骤408 业务单板处理器CPU向CPLD芯片中的在线升级逻辑单元发送切换加载 工作版本命令。步骤409 :CPLD在线升级逻辑单元的版本加载模块根据CPU的切换加载命令进行 工作版本加载,从片内FLASH中的工作版本区获取CPLD版本进行加载。切换加载命令的格 式可参见图3所示的命令格式。步骤410 保护模块监控版本加载过程,如果发现异常则进入步骤411,否则表示 版本切换成功,单板复位后进入步骤402。步骤411 版本加载模块重新加载启动版本,单板复位后进入步骤402。依此循环,直到进入步骤404完成在线升级流程。为了避免异常情况下在线升级流程处于死循环,后台网管平台需要监控CPLD升级申请次数,如果升级申请次数超过规定 的次数,则发出告警表示该单板出现了无法修复的故障。上述步骤401,步骤409、410、411由CPLD内部的在线升级逻辑单元执行,无需单板 CPU的参与。本发明的对CPLD版本进行在线升级的装置及其方法,可实现对CPLD逻辑文件进 行可靠的在线动态升级。与现有技术相比较,本发明不需要额外的接口控制器和FLASH存 储芯片,仅利用CPLD片内FLASH即可,电路简单;并且在CPLD逻辑文件下载更新过程中业 务处理器的其他任务可以正常执行,可快速完成版本切换,从而达到CPLD在线动态升级过 程对系统业务影响减至最小。以上所述仅为本发明的实施例而已,并不用于限制本发明,对于本领域的技术人 员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、 等同替换、改进等,均应包含在本发明的权利要求范围之内。
9
权利要求
一种CPLD动态升级的方法,其特征在于,包括业务单板处理器从远程后台网管平台获取后台CPLD版本信息,与本单板中运行的CPLD版本信息以及CPLD芯片的片内FLASH用户数据区保存的工作版本信息进行比较,若均不一致,则向远程后台网管平台请求进行CPLD版本升级;业务单板处理器控制CPLD芯片进行版本下载,将获取的后台CPLD版本文件写入CPLD芯片的片内FLASH工作版本区,并更新用户数据区的工作版本信息;业务单板处理器向CPLD芯片的在线升级逻辑单元发送切换加载工作版本命令,在线升级逻辑单元的版本加载模块根据切换加载工作版本命令从工作版本区获取后台CPLD版本进行工作版本加载。
2.如权利要求1所述的方法,其特征在于,所述方法进一步包括若获取的后台CPLD版本信息与本单板中运行的CPLD版本信息不一致,而与所述用户 数据区保存的工作版本信息一致时,业务单板处理器直接向CPLD芯片的在线升级逻辑单元发送切换加载工作版本命令, 在线升级逻辑单元的版本加载模块根据切换加载工作版本命令从工作版本区获取后台 CPLD版本进行工作版本加载。
3.如权利要求1或2所述的方法,其特征在于,所述方法进一步包括在进行工作版本加载时,通过在线升级逻辑单元的保护模块监控版本加载过程 如果发现异常,则版本加载模块重新加载CPLD芯片的片内FLASH启动版本区的启动版 本,单板复位后,继续获取从远程后台网管平台获取后台CPLD版本信息进行版本信息的比 较;否则,表示版本切换成功,单板复位后继续获取从远程后台网管平台获取后台CPLD版 本信息进行版本信息的比较。
4.如权利要求1或2所述的方法,其特征在于,所述切换加载工作版本命令,包括版本 加载码,版本加载确认码,版本区标识。
5.如权利要求1或2所述的方法,其特征在于,所述方法进一步包括所述远程后台网管平台根据业务单板处理器的升级申请请求,监控CPLD升级申请次 数,如果升级申请次数超过规定的次数,则发出告警表示该业务单板出现了无法修复的故 障。
6.一种CPLD在线升级装置,包括业务单板处理器、复杂可编程逻辑器件CPLD芯片和 通信接口,其中所述业务单板处理器通过通信接口与远程后台网管平台相连,通过本地总线或者地址 数据总线与CPLD芯片相连接,用于控制CPLD芯片的在线升级过程;所述CPLD芯片包括在线升级逻辑单元和片内FLASH,所述片内FLASH具有启动版本区、 工作版本区和用户数据区;所述在线升级逻辑单元包括版本加载模块;所述业务单板处理器,用于从远程后台网管平台获取后台CPLD版本信息,与本单板中 运行的CPLD版本信息以及CPLD芯片的片内FLASH用户数据区保存的工作版本信息进行比 较,若均不一致,则向远程后台网管平台请求进行CPLD版本升级;所述业务单板处理器,控制CPLD芯片进行版本下载,将获取的后台CPLD版本文件写入 CPLD芯片的片内FLASH工作版本区,并更新用户数据区的工作版本信息;所述业务单板处理器,向CPLD芯片的在线升级逻辑单元发送切换加载工作版本命 令,在线升级逻辑单元的版本加载模块根据切换加载工作版本命令从工作版本区获取后台 CPLD版本进行工作版本加载。
7.如权利要求6所述的CPLD在线升级装置,其特征在于,所述业务单板处理器进行版本信息比较时,若获取的后台CPLD版本信息与本单板中 运行的CPLD版本信息不一致,而与所述用户数据区保存的工作版本信息一致,则所述业务单板处理器直接向CPLD芯片的在线升级逻辑单元发送切换加载工作版本命 令,在线升级逻辑单元的版本加载模块根据切换加载工作版本命令从工作版本区获取后台 CPLD版本进行工作版本加载。
8.如权利要求6或7所述的CPLD在线升级装置,其特征在于,所述所述在线升级逻辑 单元包括保护模块;所述保护模块,用于在进行工作版本加载时,通过在线升级逻辑单元的保护模块监控 版本加载过程如果发现异常,则版本加载模块重新加载CPLD芯片的片内FLASH启动版本区的启动版 本,单板复位后,所述业务单板处理器继续获取从远程后台网管平台获取后台CPLD版本信 息进行版本信息的比较;否则,表示版本切换成功,单板复位后,所述业务单板处理器继续获取从远程后台网管 平台获取后台CPLD版本信息进行版本信息的比较。
9.如权利要求6或7所述的CPLD在线升级装置,其特征在于,所述业务单板处理器向CPLD芯片的在线升级逻辑单元发送的切换加载工作版本命令 包括版本加载码,版本加载确认码,版本区标识。
10.如权利要求6或7所述的CPLD在线升级装置,其特征在于,所述在线升级逻辑单元 还包括CPU接口模块,用于负责CPLD芯片与业务单板处理器的交互,实现在线升级逻辑单元 与业务单板处理器的交互命令解析以及进行状态上报;双口 RAM控制模块,实现CPU接口模块与FLASH读写控制模块之间的数据缓存,减少版 本文件下载时间;FLASH读写控制模块,将CPU接口转换为片内FLASH所需的FLASH控制接口。
全文摘要
本发明公开了一种CPLD动态升级的装置及方法,其中,业务单板处理器从远程后台网管平台获取后台CPLD版本信息,与本单板中运行的CPLD版本信息以及片内FLASH用户数据区保存的工作版本信息进行比较,若均不一致,则进行版本下载,将获取的后台CPLD版本文件写入CPLD芯片的片内FLASH工作版本区,并更新用户数据区的工作版本信息;在线升级逻辑单元的版本加载模块根据切换加载工作版本命令从工作版本区获取后台CPLD版本进行加载。本发明电路简单,仅利用CPLD片内FLASH,在线升级过程中业务处理器的其他任务可以正常执行,可快速完成版本切换。
文档编号G06F9/445GK101853172SQ201010183489
公开日2010年10月6日 申请日期2010年5月24日 优先权日2010年5月24日
发明者张宣平 申请人:中兴通讯股份有限公司