CN105224345A - 一种可编程逻辑器件远程更新系统及其方法 - Google Patents
一种可编程逻辑器件远程更新系统及其方法 Download PDFInfo
- Publication number
- CN105224345A CN105224345A CN201410231001.7A CN201410231001A CN105224345A CN 105224345 A CN105224345 A CN 105224345A CN 201410231001 A CN201410231001 A CN 201410231001A CN 105224345 A CN105224345 A CN 105224345A
- Authority
- CN
- China
- Prior art keywords
- pld
- port
- programmable logic
- logic device
- processor
- 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.)
- Granted
Links
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种可编程逻辑器件远程更新系统及其方法,系统包括:计算机,以及彼此相连的处理器、可编程逻辑器件和配置单元。计算机向处理器发送配置文件数据,处理器根据配置文件数据,通过GPIO端口模拟可编程逻辑器件配置配置单元JTAG端口的时序和行为,实现处理器对配置单元进行配置的ISP操作。本发明能够有效地解决在复杂应用条件下,尤其是保密性要求高的环境下,工作人员不适合到现场烧写逻辑,采用传统的专用仿真器烧写加载方式不能满足要求的技术问题。
Description
技术领域
本发明涉及电子电路技术领域,尤其是涉及一种应用于可编程逻辑器件的远程更新系统及其方法。
背景技术
可编程逻辑器FPGA是一种逻辑电路器件,其特点是具有静态可重复编程或在线动态重构特性。这种电路的硬件功能可以像软件一样通过编程来修改,从而使得电路设计和产品升级变得十分方便,极大的提高了电子系统的灵活性和通用能力。目前,已有众多芯片供应商,如XILINX或者ALTERA都可以提供各种型号的FPGA或者CPLD。
可编程逻辑器件在嵌入式系统中应用越来越广泛。在设计阶段和现场运行之后的各个阶段,都可能遇到设计的升级、修改、测试等问题。带有在系统可编程(ISP)功能的逻辑器件,使得不需要进行重新现场烧写,即可完成功能的重新配置。同时,网络技术的发展也使得远程维护成为可能。目前,现有的FPGA中都集成了JTAG测试接口,FPGA的JTAG测试接口主要包括测试数据输入(TDI)管脚,测试数据输出(TDO)管脚,测试时钟输入(TCK)管脚和测试模式选择(TMS)管脚。
在现有技术中,与本发明内容相关的技术方案主要有:
文献一:由中兴通讯股份有限公司于2007年10月24日申请,并于2008年03月12日公开,公开号为CN101140315A的中国发明专利申请《一种JTAG下载方式下FPGA逻辑代码的下载方法及下载系统》。该发明申请提供了一种JTAG下载方式下FPGA逻辑代码的下载方法及下载系统,用于对两片以上的相同FPGA下载相同的逻辑代码。其中,所述下载方法包括:将JTAG下载信号中的测试模式选择TMS信号、测试时钟输入TCK信号和测试数据输入TDI信号同时输入至各个FPGA对应的管脚,将逻辑代码井有下载到各个FPGA。按照本发明的下载方法和下载系统,能够减少FPGA逻辑代码下载所需时间,提高FPGA调试效率。
文献二:由北京天融信网络安全技术有限公司于2006年12月30日申请,并于2008年07月02日公开,公开号为CN101211266A的中国发明专利申请《一种实现FPGA自动下载和在线升级的方法》。该发明申请公开了一种实现FPGA自动下载和在线升级的方法,其中,实现FPGA自动下载的方法包括如下步骤:将FPGA的下载总线接口与CPU的通用可编程输入/输出接口连接:设置FPGA的下载模式CPU通过Flash总线从非易失性存储器件中将下载程序读出CPU将读出的下载程序通过通用可编程输入/输出接口信号总线写入FPGA中,直至下载完成。本发明无需配置专用存储芯片就能够实现FPGA程序的自动下载,利用通用的网络接口就能够实现FPGA程序的在线升级。
文献三:由天津曙光计算机产业有限公司于2010年12月17日申请,并于2011年05月11日公开,公开号为CN102053850A的中国发明专利申请《一种在线升级FPGA逻辑的方法》。该发明申请提供了一种在线升级FPGA逻辑的方法,包括远程终端,控制端,FPGA可编程逻辑门电路和PROM,将FPGA的下载总线接口与CPU通过PCIE总线接口实现连接:通过PCIE总线向非易失性存储器件中写入要升级的逻辑文件和逻辑信息,包括版本号、升级时间信息:写入完毕FPGA中的升级逻辑要对写入非易失性存储器件的内容进行校验,以保证写入的正确性:写入结束后,执行自动加载指令,完成加载过程,不需要对板卡断电重启,只需要热复位即可完成逻辑升级过程,掉电后只需要上电重启也可以完成逻辑加载的过程。本发明在一些环境比较复杂、不适合工作人员到现场去烧写逻辑的情况下,采用本方法可以很方便的解决升级问题,并且不需要断电重启,自动加载后只需要对系统热复位即可完成,可远程操作,节省人力物力,操作简单方便。如附图1所示。
文献四:由华为技术有限公司于2001年06月28日申请,并于2003年12月31日公开,公开号为CN1464421A的中国发明专利《一种对现场可编程门阵列的在线加载方法》。该专利公开了一种对现场可编程门阵列的在线加载方法,是在该板CPU芯片没有通用vo接口的单板上,对该单板上的可擦编程逻辑器件EPLD编程设置多个寄存器和计数器,使CPU能够通过其总线和该可擦编程逻辑器件EPLD按位访问现场可编程门阵列FPGA,实现单板上的现场可编程门阵列FPGA在线加载。本发明不仅解决了没有通用vo接口的CPU的FPGA现场加载问题,实现了单板上FPGA的在线升级功能,填补了现有技术中的空缺:而且,该FPGA的加载过程控制灵活,处理步骤比较简单、工作可靠、便于实现,资源占有极小。
但是,综上,现有技术的可编程逻辑器件配置系统及其方法都存在以下缺点:
现有的可编程逻辑器件FPGA的软件更新主要采用JTAG仿真器进行软件程序的更新。在设计、调试、运行阶段,特别在环境复杂,主控制板密封情况下进行程序的更新是比较难,FPGA程序进行更新必须要连接仿真器。已有的技术虽然有通过PCI总线进行远程的更新,但是对于通用化调试极不方便。
发明内容
有鉴于此,本发明的目的在于提供一种可编程逻辑器件远程更新系统及其方法,能够有效地解决在复杂应用条件下,尤其是保密性要求高的环境下,工作人员不适合到现场烧写逻辑,采用传统专用仿真器烧写加载方式不能满足要求的技术问题。
为了实现上述发明目的,本发明具体提供了一种可编程逻辑器件远程更新系统的技术实现方案,一种可编程逻辑器件远程更新系统,包括:计算机,以及彼此相连的处理器、可编程逻辑器件和配置单元。所述计算机向所述处理器发送配置文件数据,所述处理器根据所述配置文件数据,通过GPIO端口模拟所述可编程逻辑器件配置所述配置单元JTAG端口的时序和行为,实现所述处理器对所述配置单元进行配置的ISP操作。
优选的,所述可编程逻辑器件采用FPGA或CPLD,所述配置单元采用PROM。
优选的,所述处理器采用DSP,通过所述DSP的四个GPIO端口分别模拟所述JTAG端口中的TMS端口、TDI端口、TDO端口和TCK端口。
优选的,所述可编程逻辑器件和配置单元的TMS端口、TCK端口接线并联后依次连接至所述处理器用于模拟所述TMS端口、TCK端口的GPIO端口,所述处理器用于模拟TDI端口的GPIO端口连接所述可编程逻辑器件的TDI端口、所述可编程逻辑器件的TDO端口连接所述配置单元的TDI端口,所述配置单元的TDO端口连接至所述处理器用于模拟TDO端口的GPIO端口。
优选的,所述计算机将包括更新命令在内的配置数据传送至所述处理器,所述处理器对配置数据进行相应的时序转化和数据处理后,将经过处理的所述配置数据通过模拟JTAG状态机时序的方式下载至所述配置单元中,以完成所述配置单元中配置数据的更新。
优选的,所述计算机通过串行总线或网络总线向所述处理器发送配置数据,所述配置数据为IntelHex格式的XSVF文件。
优选的,所述计算机逐条解析所述FPGA或CPLD的烧写XSVF文件,并将解析后的数据逐条传送至所述处理器。所述处理器根据所述计算机传送的数据,并按照JTAG状态机的时序和数据格式生成所述FPGA或CPLD的编程指令、数据和控制信号。
本发明还另外具体提供了一种可编程逻辑器件远程更新方法的技术实现方案,所述方法包括以下步骤:
S100:计算机向处理器发送配置数据;
S101:所述处理器根据所述配置数据,通过GPIO端口模拟可编程逻辑器件操作配置单元JTAG端口的时序和行为;
S102:所述处理器通过GPIO端口以模拟JTAG端口的时序和行为的方式向所述配置单元输出配置数据,实现对所述配置单元进行配置的ISP操作。
本发明还具体提供了可编程逻辑器件远程更新方法的另一种技术实现方案,包括以下步骤:
S100:所述计算机逐条解析所述模拟可编程逻辑器件的烧写XSVF文件,并将解析后的数据通过串行总线或网络总线逐条传送至所述处理器;
S101:所述处理器获得所述XSVF文件后,先将所述XSVF文件暂存至RAM空间,再读取所述XSVF文件,逐条解析,通过GPIO端口模拟JTAG状态机的TAP口操作,并产生包括编程指令、数据和控制信号在内的配置数据;
S102:所述处理器通过GPIO端口以模拟JTAG端口的时序和行为的方式输出所述配置数据,并通过所述可编程逻辑器件实现对所述配置单元进行配置的ISP操作,完成对所述可编程逻辑器件配置数据的更新。
优选的,所述处理器采用DSP,所述可编程逻辑器件采用FPGA或CPLD,所述配置单元采用PROM。
通过实施上述本发明提供的可编程逻辑器件远程更新系统及其方法,具有如下技术效果:
(1)本发明解决了现有技术在一些环境比较复杂、保密性要求比较高的情况下,不适合工作人员到现场去烧写程序,采用传统的专用仿真器烧写加载方式不能满足要求的技术问题;
(2)本发明解决了现有技术在目前情况下,工作人员多采用专用仿真器在现场对逻辑进行升级的方式,使得工作的可执行性比较困难的技术问题,可以通过网络远程更新配置文件;
(3)本发明通过解析FPGA烧写文件XSVF文件,利用DSPGPIO口模拟FPGA或CPLD配置PROM上JTAG口的时序和行为,完成了对FPGA或CPLD配置PROM的ISP操作;
(4)本发明以网络为载体实现操作数据的远距离传输,可对网络中的所有设备进行软件维护和升级,避免了拆装产品、利用专用下载线下载等过程所需的大量时间,节省了设计成本、降低了设计复杂度、减轻了设计的工作量。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是现有技术在线升级FPGA逻辑装置的系统结构框图;
图2是本发明可编程逻辑器件远程更新系统一种具体实施方式的系统结构框图;
图3是本发明可编程逻辑器件远程更新方法一种具体实施方式的程序流程图;
图4是本发明可编程逻辑器件远程更新方法另一种具体实施方式的程序流程图;
图5是本发明可编程逻辑器件远程更新方法一种具体实施方式JTAG端口模拟过程的程序流程图;
图6是JTAG状态机的状态跳转程序流程图;
图中:1-计算机,2-处理器,3-FPGA,4-CPLD,5-配置单元。
具体实施方式
为了引用和清楚起见,将下文中使用的技术名词、简写或缩写记载如下:
FPGA:Field-ProgrammableGateArray,现场可编程门阵列的简称;
CPLD:ComplexProgrammableLogicDevice,复杂可编程逻辑器件的简称;
GPIO:GeneralPurposeInputOutput,通用输入/输出的简称;
PROM:Programmableread-onlymemory,可编程只读存储器的简称;
JTAG:JointTestActionGroup,联合测试工作组的简称,又称为边界扫描(boundaryscan),符合IEEESTD1149.1的通信标准,它含有一个TAP控制器,也就是状态机,所有的指令,数据的输入以及数据的输出都在状态机的控制下完成的;
XSVF:XilinxSerialVectorFormatXilinx,串行矢量格式的简称;
SVF:SerialVectorFormat,串行矢量格式的简称;
DSP:DigitalSignalProcessor,数字信号处理器的简称;
ISP:INSystemProgramming,在线系统编程的简称;
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述。显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如附图2至附图5所示,给出了本发明可编程逻辑器件远程更新系统及其方法的具体实施例,下面结合附图和具体实施例对本发明作进一步说明。
如附图2所示,一种可编程逻辑器件远程更新系统的具体实施例,包括:计算机1,以及彼此相连的处理器2、可编程逻辑器件和配置单元5。其中,作为本发明一种典型的具体实施例,计算机1可以采用任意一台个人计算机、工业计算机或嵌入式计算机,或具有可安装特定发送程序安装包的PC机。可编程逻辑器件进一步采用FPGA3或CPLD4,配置单元进一步采用PROM。计算机1向处理器2发送配置文件数据,处理器2根据配置文件数据,通过GPIO端口模拟可编程逻辑器件配置配置单元5的JTAG端口的时序和行为,实现处理器2对配置单元5进行配置的ISP操作,从而实现对CPLD、FPGA配置PROM的编程、擦除、校验、读保护等操作。将FPGA的配置文件数据,即所要完成的工作程序生成一个烧写文件,该烧写文件可以支持文件拷贝,或通过网络进行传送。然后由作为上位机的计算机1的发送例程模块把烧写文件即配置文件数据包传送至处理器2,处理器2将配置文件数据做相应的时序转化和数据处理后,把经过处理的配置文件数据通过模拟FPGA或CPLD的JTAG时序的方式编程到配置单元5中,以此来完成配置单元5的重新配置,从而完成FPGA或CPLD配置程序的更新。
作为本发明一种典型的具体实施例,处理器2进一步采用DSP,并通过DSP的四个GPIO端口(分别为如附图2中所示的GPIO1、GPIO2、GPIO3和GPIO4)分别模拟JTAG端口中的TMS端口、TDI端口、TDO端口和TCK端口,四个端口的功能如下:
TMS—TAP控制器的模式输入信号,在TCK的上升沿,TMS的状态确定TAP控制器即将进入的工作状态,用于状态转换;
TDI—输入引脚,指令和数据通过它在TCK的上升沿送入TAP控制器;
TDO—输出引脚,数据在TCK的下降沿由此输出;
TCK—输入时钟,为TAP控制器的输入和输出提供时序,在TCK的同步作用下通过TDI和TDO引脚串行移入或移出数据及指令。同时,TCK为TAP控制器状态机提供时钟。
如附图2所示,处理器2与可编程逻辑器件、配置单元5之间的连接可以采用菊花链的形式。具体地说就是,可编程逻辑器件和配置单元5的TMS端口、TCK端口接线并联后依次连接至处理器2用于模拟TMS端口、TCK端口的GPIO端口。处理器2用于模拟TDI端口的GPIO端口连接可编程逻辑器件的TDI端口、可编程逻辑器件的TDO端口连接配置单元5的TDI端口,配置单元5的TDO端口连接至处理器2用于模拟TDO端口的GPIO端口。在如附图2所示的具体实施例中,可编程逻辑器件远程更新系统的可编程逻辑器件同时包括FPGA3和CPLD4,此时作为处理器2的DSP可以对FPGA3、CPLD4、以及作为配置单元5的PROM任意进行操作。而在其它的具体实施例中,可编程逻辑器件可以仅包括FPGA3或CPLD4,DSP也可以单独针对PROM进行操作。如:可以去掉图2中位于最右边的CPLD4,此时去掉CPLD4各个端口的连线,而将作为配置单元5的PROM的TDO端口连接至作为处理器的DSP2用于模拟TDO端口的GPIO端口即可。或者具体实施例还可以包括任意多块的FPGA3或任意多块的CPLD4,或其任意的组合,这些具体的组成形式都在本发明请求保护的范围之内。
作为本发明一种典型的具体实施例,计算机1将包括更新命令在内的配置数据传送至处理器2,处理器2对配置数据进行相应的时序转化和数据处理后,将经过处理的配置数据通过模拟JTAG状态机时序的方式下载至配置单元5中,以完成配置单元5中配置数据的更新。计算机1通过串行总线或网络总线(如可以为RS485总线或者网线)向处理器2发送更新命令和配置数据,配置数据进一步为IntelHex格式的XSVF文件。处理器2接收到每一帧都是“指令+数据”的固定格式,处理器2根据指令模拟出该条指令的时序和动作,从而直接操作JTAG口。当需要更新配置文件数据时,处理器2从网络总线上获得更新后的XSVF文件(IntelHex格式),暂存于RAM空间,然后读取XSVF文件命令,逐条解释,并予以执行,即通过GPIO口模拟JTAG的TAP口操作,产生编程指令、数据和控制信号,完成对FPGA或CPLD配置数据的擦除、编程、校验、读写保护设置等项工作。根据JTAG状态机,完成XSVF文件JTAG时序的模拟,实现配置单元5配置文件数据的更新。
计算机1通过计算机应用程序逐条解析FPGA3或CPLD4的烧写XSVF文件,并将解析后的数据逐条传送至处理器2。处理器2根据计算机1传送的数据,并按照JTAG状态机的时序和数据格式生成FPGA3或CPLD4的编程指令、数据和控制信号。
XSVF文件常用的指令格式见下表1。在下表1中,各条指令后的数据格式和长度都有一定规律。对于不同的指令来说,其后所跟数据的格式是不变的,长度则是常数或有固定的计算公式。利用计算机1的软件处理程序将XSVF文件中的指令和指令后的数据逐条解析出来,并下发给处理器2。
表1XSVF文件指令-编码对照表
上述本发明的具体实施例提出了一种通过DSP的GPIO(GeneralPurposeInputOutput,通用输入/输出)口模拟CPLD或FPGA配置PROM(Programmableread-onlymemory,可编程只读存储器)上JTAG口的时序和行为,完成对FPGA或CPLD配置PROM的ISP操作。并以网络为载体实现操作数据的远距离传输,可对网络中的所有设备进行软件维护和升级。
如附图3所示,一种可编程逻辑器件远程更新方法的具体实施例,包括以下步骤:
S100:计算机1向处理器2发送配置数据;
S101:处理器2根据配置数据,通过GPIO端口模拟可编程逻辑器件操作配置单元5的JTAG端口的时序和行为;
S102:处理器2通过GPIO端口以模拟JTAG端口时序和行为的方式向配置单元5输出配置数据,实现对配置单元5进行配置的ISP操作。
如附图4所示,另一种可编程逻辑器件远程更新方法的具体实施例,包括以下步骤:
S100:计算机1逐条解析模拟可编程逻辑器件的烧写XSVF文件,并将解析后的数据通过串行总线或网络总线逐条传送至处理器2;
S101:处理器2获得XSVF文件后,先将XSVF文件暂存至RAM空间,再读取XSVF文件,逐条解析,通过GPIO端口模拟JTAG状态机的TAP口操作,并产生包括编程指令、数据和控制信号在内的配置数据;
S102:处理器2通过GPIO端口以模拟JTAG端口的时序和行为的方式输出配置数据,并通过可编程逻辑器件实现对配置单元5进行配置的ISP操作,完成对可编程逻辑器件配置数据的更新。
处理器2进一步采用DSP,可编程逻辑器件进一步采用FPGA3或CPLD4,配置单元5进一步采用PROM。
如附图5所示,为本发明可编程逻辑器件远程更新方法一种具体实施方式的程序流程图。
在RESET状态下,TMS为高电平时,连续5个TCK时钟周期;在TMS为低电平时,1个TCK时钟周期,进入RUNTEST状态;TMS为高电平时,连续2个TCK时钟周期进入XSIR指令寄存器,1个TCK时钟周期进入XSDR数据寄存器,按照附图5中的相应时序进行数据更新;
进入XSIR指令寄存器后,在Shift-IR状态下,TMS为低电平时,连续2个TCK时钟周期,从计算机1下发的数据帧中读取数据;TMS为低电平时,连续7个TCK时钟周期,并向TDI端口输出数据;TMS为高电平时,1个TCK时钟周期,并向TDI端口输出数据;
进入XSDR数据寄存器后,在Shift-DR状态下,TMS为低电平时,连续2个TCK时钟周期,从计算机1下发的数据帧中读取数据;TMS为低电平时,TCK为低电平,从TDO端口采集数据,TMS为低电平时,TCK为高电平,重复执行如附图5中虚线框内所示的该条程序31次;在TMS为高电平时,1个TCK时钟周期,并从TDI端口采集第32bit数据;
TMS为高电平时,2个TCK时钟周期;TMS为低电平时,1个TCK时钟周期。
具体实施例应用JTAG状态机实现DSP的GPIO端口对JTAG端口的模拟,如附图6所示,下面将JTAG状态机的各个状态和跳转条件简要介绍如下:
(1)Test-Logic-Reset测试逻辑复位状态
处于这种状态下,测试逻辑被禁止以允许芯片正常操作,读IDCODE寄存器将禁止测试逻辑。无论TAP控制器处于何种状态,只要将TMS信号在5个连续的TCK信号的上升沿保持高电平,TAP就将进入Test-Logic-Reset状态,如果TMS信号一直为高电平,那么TAP将保持在Test-Logic-Reset状态,另外TRST信号也可以强迫TAP进入Test-Logic-Reset状态。处于Test-Logic-Reset状态的TAP,如果下一个TCK的上升沿时TMS信号处于低电平,那么TAP将被切换到Run-Test-Idle状态。
(2)Run-Test-Idle运行测试空闲状态
Run-Test-Idle是TAP控制器扫描操作空闲状态,如果TMS信号一直处于低电平,那么TAP将保持在TRun-Test-Idle状态。当TMS信号在TCK上升沿处于高电平,TAP控制器将进入Select-DR-Scan状态。
(3)Select-DR-Scan选择数据寄存器扫描状态
Select-DR-Scan是TAP控制器的一个临时状态,边界扫描寄存器BSR保持它们先前的状态。当TMS信号在下一个TCK上升沿处于低电平,TAP控制器进入Capture-DR状态,一个边界扫描寄存器的扫描操作同时被初始化。如果TMS信号在下一个TCK上升沿处于高电平,TAP控制器将进入Select-IR-Scan状态。
(4)Capture-DR捕获数据寄存器状态
如果TAP控制器处于Capture-DR状态,且当前指令是SAMPLE/PRELOAD指令,那么边界扫描寄存器BSR在TCK信号的上升沿捕获输入管脚的数据。如果此时不是SAMPLE/PRELOAD指令,那么BSR保持它们先前的值,另外BSR的值被放入连接在TDI和TDO管脚之间的移位寄存器中。处于Capture-DR状态时,指令不会被改变。如果TMS信号在下一个TCK上升沿处于高电平,TAP进入Exit1-DR状态。如果TMS信号在下一个TCK上升沿处于低电平,则TAP进入Shift-DR状态。
(5)Shift-DR移位数据寄存器状态
在Shift-DR状态下,在每个TCK的上升沿,TDI-移位寄存器-TDO串行通道向右移一位,TDI的数据移入移位寄存器,移位寄存器最靠近TDO的位移到TDO管脚上。处于Shift-DR状态时,指令不会被改变。如果TMS信号在下一个TCK上升沿处于高电平,TAP进入Exit1-DR状态。如果TMS信号处于低电平,则TAP一直进行移位操作。
(6)Exit1-DR退出数据寄存器状态1
Exit1-DR是TAP控制器的一个临时状态,如果TMS信号在下一个TCK上升沿处于高电平,TAP进入Update-DR状态;如果TMS信号在下一个TCK上升沿处于低电平,则TAP进入Pause-DR状态。处于Exit1-DR状态时,指令不会被改变。
(7)Pause-DR暂停数据寄存器状态
Pause-DR状态允许TAP控制器暂时停止TDI-移位寄存器-TDO串行通道的移位操作。处于Pause-DR状态时,指令不会被改变。如果TMS信号在下一个TCK上升沿处于高电平,TAP进入Exit2-DR状态;如果TMS信号处于低电平,则TAP一直保持暂停状态。
(8)Exit2-DR退出数据寄存器状态2
Exit2-DR也是TAP控制器的临时状态,如果TMS信号在下一个TCK上升沿处于高电平,TAP进入Update-DR状态,结束扫描操作;如果TMS信号在下一个TCK上升沿处于低电平,则TAP重新进入Shift-DR状态。处于Exit2-D状态时,指令不会被改变。
(9)Update-DR更新数据寄存器状态
在正常情况下,边界扫描寄存器BSR的值是被锁存在并行输出管脚中,以免在EXTEST或SAMPLE/PRELOAD命令下执行移位操作时改变BSR的值。当处于Update-DR状态时选择的是BSR寄存器,那么移位寄存器中的值将在TCK的下降沿被锁存到BSR寄存器的并行输出管脚中去。处于Update-DR状态时,指令不会被改变。如果TMS信号在下一个TCK上升沿处于高电平,TAP进入Select-DR-Scan状态;如果TMS信号在下一个TCK上升沿处于低电平,则TAP进入Run-Test-Idle状态。
(10)Select-IR-Scan选择指令寄存器扫描状态
Select-IR-Scan是TAP控制器的一个临时状态。如果TMS信号在下一个TCK上升沿处于低电平,TAP控制器进入Capture-IR状态,一个对指令寄存器的扫描操作同时被初始化。如果TMS信号在下一个TCK上升沿处于高电平,TAP控制器将进入Test-Logic-Reset状态。处于Select-IR-Scan状态时,指令不会被改变。
(11)Capture-IR捕获指令寄存器状态
处于Capture-IR状态时,指令寄存器中的值被固定设置成0b0000001,并将它放入连接在TDI与TDO之间的移位寄存器中。处于Capture-DR状态时,指令不会被改变。如果TMS信号在下一个TCK上升沿处于高电平,TAP进入Exit1-IR状态;如果TMS信号在下一个TCK上升沿处于低电平,则TAP进入Shift-IR状态。
(12)Shift-IR移位指令寄存器状态
在Shift-IR状态下,在每个TCK的上升沿,TDI-移位寄存器-TDO串行通道向右移一位,JTAG指令从TDI管脚上被逐位移入移位寄存器,而移位寄存器中的0b0000001则被逐位从TDO管脚移出。处于Shift-IR状态时,指令不会被改变。如果TMS信号在下一个TCK上升沿处于高电平,TAP进入Exit1-IR状态;如果TMS信号处于低电平,则TAP一直进行移位操作。
(13)Exit1-IR退出指令寄存器状态1
Exit1-IR是TAP控制器的一个临时状态,如果TMS信号在下一个TCK上升沿处于高电平,TAP进入Update-IR状态;如果TMS信号在下一个TCK上升沿处于低电平,则TAP进入Pause-IR状态。处于Exit1-IR状态时,指令不会被改变。
(14)Pause-IR暂停指令寄存器状态
Pause-IR状态允许TAP控制器暂时停止TDI-移位寄存器-TDO串行通道的移位操作。处于Pause-IR状态时,指令不会被改变。如果TMS信号在下一个TCK上升沿处于高电平,TAP进入Exit2-IR状态;如果TMS信号处于低电平,则TAP一直处于暂停状态。
(15)Exit2-IR退出指令寄存器状态2
Exit2-IR也是TAP控制器的临时状态,如果TMS信号在下一个TCK上升沿处于高电平,TAP进入Update-IR状态,结束扫描操作;如果TMS信号在下一个TCK上升沿处于低电平,则TAP重新进入Shift-IR状态。处于Exit2-D状态时,指令不会被改变。
(16)Update-IR更新指令寄存器状态
处于Update-IR状态时,移位寄存器中的值将在TCK的下降沿被锁存到指令寄存器中,一旦锁存成功,新的指令将成为当前的指令。如果TMS信号在下一个TCK上升沿处于高电平,TAP进入Select-DR-Scan状态;如果TMS信号在下一个TCK上升沿处于电平,则TAP进入Run-Test-Idle状态。
另外,在此需要特别说明的是,与JTAG接口兼容的器件并不局限于上述本发明具体实施例中提到的FPGA、CPLD,以及PROM,还可以是微处理器(MPU,MicroProcessingUnit)、微控制器(MCU,MicroControlUnit)、PLD(ProgrammableLogicDevice,可编程逻辑器件)、DSP、ASIC(Application-specificintegratedcircuit,专用集成电路),或其它符合IEEE1149.1规范的芯片。
通过实施本发明具体实施例描述的可编程逻辑器件远程更新系统及其方法,能够达到以下技术效果:
(1)本发明具体实施例解决了现有技术在一些环境比较复杂、保密性要求比较高的情况下,不适合工作人员到现场去烧写程序,采用传统的专用仿真器烧写加载方式不能满足要求的技术问题;
(2)本发明具体实施例解决了现有技术在目前情况下,工作人员多采用专用仿真器在现场对逻辑进行升级的方式,使得工作的可执行性比较困难的技术问题,可以通过网络远程更新配置文件;
(3)本发明具体实施例通过解析FPGA烧写文件XSVF文件,利用DSPGPIO口模拟FPGA或CPLD配置PROM上JTAG口的时序和行为,完成了对FPGA或CPLD配置PROM的ISP操作;
(4)本发明具体实施例以网络为载体实现操作数据的远距离传输,可对网络中的所有设备进行软件维护和升级,避免了拆装产品、利用专用下载线下载等过程所需的大量时间,节省了设计成本、降低了设计复杂度、减轻了设计的工作量。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制。虽然本发明已以较佳实施例揭示如上,然而并非用以限定本发明。任何熟悉本领域的技术人员,在不脱离本发明的精神实质和技术方案的情况下,都可利用上述揭示的方法和技术内容对本发明技术方案做出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同替换、等效变化及修饰,均仍属于本发明技术方案保护的范围内。
Claims (10)
1.一种可编程逻辑器件远程更新系统,其特征在于,包括:计算机(1),以及彼此相连的处理器(2)、可编程逻辑器件和配置单元(5),所述计算机(1)向所述处理器(2)发送配置文件数据,所述处理器(2)根据所述配置文件数据,通过GPIO端口模拟所述可编程逻辑器件配置所述配置单元(5)JTAG端口的时序和行为,实现所述处理器(2)对所述配置单元(5)进行配置的ISP操作。
2.根据权利要求1所述的一种可编程逻辑器件远程更新系统,其特征在于:所述可编程逻辑器件采用FPGA(3)或CPLD(4),所述配置单元采用PROM。
3.根据权利要求2所述的一种可编程逻辑器件远程更新系统,其特征在于:所述处理器(2)采用DSP,通过所述DSP的四个GPIO端口分别模拟所述JTAG端口中的TMS端口、TDI端口、TDO端口和TCK端口。
4.根据权利要求3所述的一种可编程逻辑器件远程更新系统,其特征在于:所述可编程逻辑器件和配置单元(5)的TMS端口、TCK端口接线并联后依次连接至所述处理器(2)用于模拟所述TMS端口、TCK端口的GPIO端口,所述处理器(2)用于模拟TDI端口的GPIO端口连接所述可编程逻辑器件的TDI端口、所述可编程逻辑器件的TDO端口连接所述配置单元(5)的TDI端口,所述配置单元(5)的TDO端口连接至所述处理器(2)用于模拟TDO端口的GPIO端口。
5.根据权利要求2、3、4中任一权利要求所述的一种可编程逻辑器件远程更新系统,其特征在于:所述计算机(1)将包括更新命令在内的配置数据传送至所述处理器(2),所述处理器(2)对配置数据进行相应的时序转化和数据处理后,将经过处理的所述配置数据通过模拟JTAG状态机时序的方式下载至所述配置单元(5)中,以完成所述配置单元(5)中配置数据的更新。
6.根据权利要求5所述的一种可编程逻辑器件远程更新系统,其特征在于:所述计算机(1)通过串行总线或网络总线向所述处理器(2)发送配置数据,所述配置数据为IntelHex格式的XSVF文件。
7.根据权利要求6所述的一种可编程逻辑器件远程更新系统,其特征在于:所述计算机(1)逐条解析所述FPGA(3)或CPLD(4)的烧写XSVF文件,并将解析后的数据逐条传送至所述处理器(2),所述处理器(2)根据所述计算机(1)传送的数据,并按照JTAG状态机的时序和数据格式生成所述FPGA(3)或CPLD(4)的编程指令、数据和控制信号。
8.一种可编程逻辑器件远程更新方法,其特征在于,包括以下步骤:
S100:计算机(1)向处理器(2)发送配置数据;
S101:所述处理器(2)根据所述配置数据,通过GPIO端口模拟可编程逻辑器件操作配置单元(5)JTAG端口的时序和行为;
S102:所述处理器(2)通过GPIO端口以模拟JTAG端口的时序和行为的方式向所述配置单元(5)输出配置数据,实现对所述配置单元(5)进行配置的ISP操作。
9.一种可编程逻辑器件远程更新方法,其特征在于,包括以下步骤:
S100:所述计算机(1)逐条解析所述模拟可编程逻辑器件的烧写XSVF文件,并将解析后的数据通过串行总线或网络总线逐条传送至所述处理器(2);
S101:所述处理器(2)获得所述XSVF文件后,先将所述XSVF文件暂存至RAM空间,再读取所述XSVF文件,逐条解析,通过GPIO端口模拟JTAG状态机的TAP口操作,并产生包括编程指令、数据和控制信号在内的配置数据;
S102:所述处理器(2)通过GPIO端口以模拟JTAG端口的时序和行为的方式输出所述配置数据,并通过所述可编程逻辑器件实现对所述配置单元(5)进行配置的ISP操作,完成对所述可编程逻辑器件配置数据的更新。
10.根据权利要求8或9所述的一种可编程逻辑器件远程更新方法,其特征在于:所述处理器(2)采用DSP,所述可编程逻辑器件采用FPGA(3)或CPLD(4),所述配置单元(5)采用PROM。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410231001.7A CN105224345B (zh) | 2014-05-28 | 2014-05-28 | 一种可编程逻辑器件远程更新系统及其方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410231001.7A CN105224345B (zh) | 2014-05-28 | 2014-05-28 | 一种可编程逻辑器件远程更新系统及其方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105224345A true CN105224345A (zh) | 2016-01-06 |
CN105224345B CN105224345B (zh) | 2019-02-15 |
Family
ID=54993341
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410231001.7A Active CN105224345B (zh) | 2014-05-28 | 2014-05-28 | 一种可编程逻辑器件远程更新系统及其方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105224345B (zh) |
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106291336A (zh) * | 2016-07-15 | 2017-01-04 | 上海华岭集成电路技术股份有限公司 | 一种 fpga 测试配置码流实时下载方法及系统 |
CN106843959A (zh) * | 2017-01-18 | 2017-06-13 | 株洲变流技术国家工程研究中心有限公司 | 一种fpga远程更新装置及方法 |
CN107066276A (zh) * | 2017-04-17 | 2017-08-18 | 中国电子科技集团公司第三十四研究所 | 一种通信设备内的fpga器件远程配置更新的方法 |
CN107870776A (zh) * | 2017-11-03 | 2018-04-03 | 北京锐安科技有限公司 | 一种ipmc在线升级方法及装置 |
CN108037945A (zh) * | 2017-12-13 | 2018-05-15 | 天津津航计算技术研究所 | 基于1553b总线的fpga在线升级装置 |
CN108054904A (zh) * | 2017-12-20 | 2018-05-18 | 深圳市同安德方科技有限公司 | 一种变频器功率单元固件在线更新方法 |
CN108153541A (zh) * | 2017-12-13 | 2018-06-12 | 天津津航计算技术研究所 | 基于1553b总线的fpga在线升级方法 |
CN108267681A (zh) * | 2016-12-30 | 2018-07-10 | 上海复旦微电子集团股份有限公司 | 一种可编程电路的模块测试系统 |
CN108519889A (zh) * | 2018-03-22 | 2018-09-11 | 深圳华中科技大学研究院 | 一种基于jtag标准的fpga程序远程升级系统及方法 |
CN108664264A (zh) * | 2018-08-16 | 2018-10-16 | 成都爱斯顿科技有限公司 | 一种基于cpu通过jtag方式远程更新fpga的装置和方法 |
CN108804363A (zh) * | 2018-06-14 | 2018-11-13 | 华东师范大学 | 一种可编程控制的通用总线接口转换方法 |
CN108932132A (zh) * | 2018-05-23 | 2018-12-04 | 郑州云海信息技术有限公司 | 一种通过bios升级cpld的系统及方法 |
CN109144932A (zh) * | 2018-08-03 | 2019-01-04 | 中国航空工业集团公司雷华电子技术研究所 | 一种基于dsp的快速动态配置fpga的装置及方法 |
CN109491679A (zh) * | 2017-09-08 | 2019-03-19 | 迈普通信技术股份有限公司 | 一种cpld在线升级方法及装置 |
CN109639446A (zh) * | 2017-10-09 | 2019-04-16 | 阿里巴巴集团控股有限公司 | Fpga设备、基于fpga设备的云系统 |
CN109857485A (zh) * | 2019-01-28 | 2019-06-07 | 山东华芯半导体有限公司 | 一种可编程gpio装置及基于该装置的时序实现方法 |
CN112463196A (zh) * | 2020-11-20 | 2021-03-09 | 深圳市信锐网科技术有限公司 | 可编程逻辑器件的程序更新系统及方法 |
CN112732304A (zh) * | 2021-02-03 | 2021-04-30 | 浙江日风电气股份有限公司 | 一种cpld固件更新方法 |
CN113407223A (zh) * | 2021-06-28 | 2021-09-17 | 新华三信息安全技术有限公司 | 一种可编程逻辑器件在线升级方法及系统 |
CN114036097A (zh) * | 2021-10-09 | 2022-02-11 | 中国航空工业集团公司洛阳电光设备研究所 | 一种提升光电产品维护性的国产fpga逻辑在线升级方法 |
US20220413047A1 (en) * | 2021-06-28 | 2022-12-29 | Silicon Motion, Inc. | Method and apparatus and non-transitory computer-readable storage medium for debugging solid-state disk (ssd) device |
CN117631631A (zh) * | 2024-01-24 | 2024-03-01 | 中国电子科技集团公司第三十研究所 | 一种国产化dsp嵌入式系统及其功能载荷重构方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008128431A (ja) * | 2006-11-24 | 2008-06-05 | Nsk Ltd | 溶融樹脂射出装置用ボールねじ装置 |
CN101894029A (zh) * | 2010-06-21 | 2010-11-24 | 中兴通讯股份有限公司 | 一种在线升级复杂可编程逻辑器件的方法及装置 |
CN102436385A (zh) * | 2011-11-15 | 2012-05-02 | 电子科技大学 | 一种可编程逻辑器件配置文件在线更新装置 |
-
2014
- 2014-05-28 CN CN201410231001.7A patent/CN105224345B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008128431A (ja) * | 2006-11-24 | 2008-06-05 | Nsk Ltd | 溶融樹脂射出装置用ボールねじ装置 |
CN101894029A (zh) * | 2010-06-21 | 2010-11-24 | 中兴通讯股份有限公司 | 一种在线升级复杂可编程逻辑器件的方法及装置 |
CN102436385A (zh) * | 2011-11-15 | 2012-05-02 | 电子科技大学 | 一种可编程逻辑器件配置文件在线更新装置 |
Cited By (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106291336B (zh) * | 2016-07-15 | 2019-10-25 | 上海华岭集成电路技术股份有限公司 | 一种fpga测试配置码流实时下载方法及系统 |
CN106291336A (zh) * | 2016-07-15 | 2017-01-04 | 上海华岭集成电路技术股份有限公司 | 一种 fpga 测试配置码流实时下载方法及系统 |
CN108267681B (zh) * | 2016-12-30 | 2020-07-17 | 上海复旦微电子集团股份有限公司 | 一种可编程电路的模块测试系统 |
CN108267681A (zh) * | 2016-12-30 | 2018-07-10 | 上海复旦微电子集团股份有限公司 | 一种可编程电路的模块测试系统 |
CN106843959A (zh) * | 2017-01-18 | 2017-06-13 | 株洲变流技术国家工程研究中心有限公司 | 一种fpga远程更新装置及方法 |
CN107066276A (zh) * | 2017-04-17 | 2017-08-18 | 中国电子科技集团公司第三十四研究所 | 一种通信设备内的fpga器件远程配置更新的方法 |
CN109491679A (zh) * | 2017-09-08 | 2019-03-19 | 迈普通信技术股份有限公司 | 一种cpld在线升级方法及装置 |
CN109491679B (zh) * | 2017-09-08 | 2023-03-24 | 迈普通信技术股份有限公司 | 一种cpld在线升级方法及装置 |
CN109639446A (zh) * | 2017-10-09 | 2019-04-16 | 阿里巴巴集团控股有限公司 | Fpga设备、基于fpga设备的云系统 |
CN109639446B (zh) * | 2017-10-09 | 2022-01-11 | 阿里巴巴集团控股有限公司 | Fpga设备、基于fpga设备的云系统 |
CN107870776B (zh) * | 2017-11-03 | 2021-01-12 | 北京锐安科技有限公司 | 一种ipmc在线升级方法及装置 |
CN107870776A (zh) * | 2017-11-03 | 2018-04-03 | 北京锐安科技有限公司 | 一种ipmc在线升级方法及装置 |
CN108153541A (zh) * | 2017-12-13 | 2018-06-12 | 天津津航计算技术研究所 | 基于1553b总线的fpga在线升级方法 |
CN108037945A (zh) * | 2017-12-13 | 2018-05-15 | 天津津航计算技术研究所 | 基于1553b总线的fpga在线升级装置 |
CN108054904A (zh) * | 2017-12-20 | 2018-05-18 | 深圳市同安德方科技有限公司 | 一种变频器功率单元固件在线更新方法 |
CN108054904B (zh) * | 2017-12-20 | 2020-04-14 | 深圳市同安德方科技有限公司 | 一种变频器功率单元固件在线更新方法 |
CN108519889A (zh) * | 2018-03-22 | 2018-09-11 | 深圳华中科技大学研究院 | 一种基于jtag标准的fpga程序远程升级系统及方法 |
CN108932132A (zh) * | 2018-05-23 | 2018-12-04 | 郑州云海信息技术有限公司 | 一种通过bios升级cpld的系统及方法 |
CN108804363A (zh) * | 2018-06-14 | 2018-11-13 | 华东师范大学 | 一种可编程控制的通用总线接口转换方法 |
CN109144932A (zh) * | 2018-08-03 | 2019-01-04 | 中国航空工业集团公司雷华电子技术研究所 | 一种基于dsp的快速动态配置fpga的装置及方法 |
CN108664264A (zh) * | 2018-08-16 | 2018-10-16 | 成都爱斯顿科技有限公司 | 一种基于cpu通过jtag方式远程更新fpga的装置和方法 |
CN109857485A (zh) * | 2019-01-28 | 2019-06-07 | 山东华芯半导体有限公司 | 一种可编程gpio装置及基于该装置的时序实现方法 |
CN112463196A (zh) * | 2020-11-20 | 2021-03-09 | 深圳市信锐网科技术有限公司 | 可编程逻辑器件的程序更新系统及方法 |
CN112732304A (zh) * | 2021-02-03 | 2021-04-30 | 浙江日风电气股份有限公司 | 一种cpld固件更新方法 |
US20220413047A1 (en) * | 2021-06-28 | 2022-12-29 | Silicon Motion, Inc. | Method and apparatus and non-transitory computer-readable storage medium for debugging solid-state disk (ssd) device |
CN113407223A (zh) * | 2021-06-28 | 2021-09-17 | 新华三信息安全技术有限公司 | 一种可编程逻辑器件在线升级方法及系统 |
CN114036097A (zh) * | 2021-10-09 | 2022-02-11 | 中国航空工业集团公司洛阳电光设备研究所 | 一种提升光电产品维护性的国产fpga逻辑在线升级方法 |
CN114036097B (zh) * | 2021-10-09 | 2024-03-01 | 中国航空工业集团公司洛阳电光设备研究所 | 一种提升光电产品维护性的国产fpga逻辑在线升级方法 |
CN117631631A (zh) * | 2024-01-24 | 2024-03-01 | 中国电子科技集团公司第三十研究所 | 一种国产化dsp嵌入式系统及其功能载荷重构方法 |
CN117631631B (zh) * | 2024-01-24 | 2024-04-02 | 中国电子科技集团公司第三十研究所 | 一种国产化dsp嵌入式系统及其功能载荷重构方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105224345B (zh) | 2019-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105224345A (zh) | 一种可编程逻辑器件远程更新系统及其方法 | |
CN101995546B (zh) | 基于边界扫描的可编程逻辑器件自动测试系统与方法 | |
US8997034B2 (en) | Emulation-based functional qualification | |
CN106649101B (zh) | 一种ice自动化测试系统及测试方法 | |
CN103678745B (zh) | 一种用于fpga的跨平台多层次集成设计系统 | |
CN103000230B (zh) | 一种非易失性存储器ip核的测试和验证开发系统 | |
CN105474178A (zh) | 基于可编程接口的验证和调试 | |
CN102135920A (zh) | 嵌入式星载计算机故障注入系统及其注入方法 | |
CN104515947A (zh) | 可编程逻辑器件在系统编程的快速配置与测试方法 | |
CN103678075B (zh) | 基于自动矢量生成技术的复杂微处理器测试方法 | |
CN104679559A (zh) | 单片机在线编程的方法 | |
CN114064458A (zh) | 接口可扩展的通用性的jtag调试方法及系统 | |
IE20080066A1 (en) | On-chip testing | |
CN112596743B (zh) | 一种基于jtag接口的军用fpga通用重构电路 | |
CN103376340A (zh) | 一种转接板、多平台串行测试系统及方法 | |
CN101083507B (zh) | 遵循ieee1149.1协议的通用测试ip方法 | |
CN104459522A (zh) | 芯片自测方法及系统 | |
CN101782626A (zh) | 一种jtag端口控制器 | |
US9581643B1 (en) | Methods and circuits for testing partial circuit designs | |
CN108693466B (zh) | 一种边界扫描器件、装置及控制方法和扫描方法 | |
Molina-Robles et al. | An affordable post-silicon testing framework applied to a RISC-V based microcontroller | |
Payakapan et al. | A case study: Leverage IEEE 1687 based method to automate modeling, verification, and test access for embedded instruments in a server processor | |
CN102645609B (zh) | Jtag链路测试装置及其测试方法 | |
Tan et al. | Complexity and Performance Evaluation of Two Partial Reconfiguration Interfaces on FPGAs: A Case Study. | |
CN109801664A (zh) | Fpga配置存储器测试方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |