发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种实现CPLD在线编程和离线编程的控制方法和控制电路,用于解决现有技术中无法同时实现CPLD同时支持在线编程和离线编程的问题。
为实现上述目的及其他相关目的,本发明提供一种实现CPLD在线编程和离线编程的控制电路,应用于对配置于单板机上的CPLD进行编程的控制中,所述控制电路包括:单机板的CPU,通过输出四个通用输入输出GPIO信号至CPLD的JTAG接口,实现对CPLD的在线编程;驱动电路,连接于所述单机板的CPU和所述CPLD之间,用于连通或阻断所述单机板的CPU和所述CPLD之间的加载通道以控制所述CPLD处于在线编程模式或离线编程模式;连接器,通过连接加载电缆可将所述CPLD连接至控制所述CPLD离线编程的控制终端;其中,所述加载电缆的第一引脚和第四引脚相连,形成短路。
可选地,所述CPLD的JTAG接口包括:CPLD的JTAG时钟信号接口、CPLD的JTAG数据输入信号接口、CPLD的JTAG数据输出信号接口以及CPLD的JTAG的工作模式选择信号。
可选地,所述驱动电路至少包括:驱动芯片和与所述驱动芯片的OE引脚相连的下拉电阻。
可选地,所述连接器的引脚与所述加载电缆的引脚对应相连;所述连接器的第一引脚连接3.3V电源;所述连接器的第四引脚与所述驱动芯片的OE引脚对应相连。
可选地,在所述加载电缆与所述连接器相连时,所述加载电缆的第四引脚连接至所述连接器的第一引脚提供的3.3V电源,所述驱动芯片的OE引脚拉高,所述驱动芯片的信号输出端呈高阻态,所述单机板的CPU和所述CPLD之间的加载通道阻断。
可选地,在所述加载电缆未与所述连接器相连时,所述驱动芯片的OE引脚通过所述下拉电阻拉低,所述单机板的CPU和所述CPLD之间的加载通道连通。
可选地,所述下拉电阻的一端与所述OE引脚相连,另一端与所述驱动芯片的VCC引脚相连。
可选地,所述下拉电阻和所述驱动芯片的VCC引脚之间还连接有并联连接的两个电容。
可选地,所述下拉电阻的阻值为5kΩ~15kΩ。
为实现上述目的,本发明还提供一种实现CPLD在线编程和离线编程的控制方法,应用于对配置于单板机上的CPLD进行编程的控制中,所述控制方法包括:利用一个通过输出四个通用输入输出GPIO信号至CPLD的JTAG接口的单机板的CPU实现对CPLD的在线编程;在所述单机板的CPU和所述CPLD之间设置一个用于连通或阻断所述单机板的CPU和所述CPLD之间的加载通道以控制所述CPLD处于在线编程模式或离线编程模式的驱动电路;设置一个通过连接加载电缆可将所述CPLD连接至控制所述CPLD离线编程的控制终端的连接器,并将所述加载电缆的第一引脚和第四引脚相连,形成短路。
如上所述,本发明的一种实现CPLD在线编程和离线编程的控制方法和控制电路,具有以下有益效果:
本发明通过对电路结构进行设计和对对专用CPLD加载电缆进行改造,在无需人为或软件额外配置的情况下,同时支持CPLD在线编程和离线编程两种工作模式,并且两种模式自适应工作,在单板调试阶段,CPU尚未调好的时候,PC机可以通过加载电缆对CPLD编程,方便了CPLD的调试,在产品阶段,可以远程控制CPU在线升级CPLD,无需工程师携带电缆到现场升级,减少系统维护成本。本发明简单高效,具有较强的通用性和实用性。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。
本发明的目的在于提供一种实现CPLD在线编程和离线编程的控制方法和控制电路,用于解决现有技术中无法同时实现CPLD同时支持在线编程和离线编程的问题。以下将详细阐述本发明的一种实现CPLD在线编程和离线编程的控制方法和控制电路的原理及实施方式,使本领域技术人员不需要创造性劳动即可理解本发明的一种实现CPLD在线编程和离线编程的控制方法和控制电路。
本实施例提供一种实现CPLD在线编程和离线编程的控制方法和控制电路,所要解决的问题就是CPLD编程的模式不能做到同时支持离线编程模式和在线编程模式,也不能做到两种工作模式的自适应。为解决上述问题,本实施例提供的一种实现CPLD在线编程和离线编程的控制方法和控制电路中,设计两组CPLD编程通道,一组用CPU的通用输入输出GPIO引脚模拟JTAG时序对CPLD编程,另外一组通过一个八个引脚的连接器对CPLD进行编程,这两种编程方式可以做到自动选择,无需额外的软件干预。
具体地,如图1所示,本实施例提供一种实现CPLD在线编程和离线编程的控制方法,应用于对配置于单板机上的CPLD进行编程的控制中,所述控制方法包括以下步骤。
步骤S11,利用一个通过输出四个通用输入输出GPIO信号至CPLD的JTAG接口的单机板的CPU实现对CPLD的在线编程。
步骤S12,在所述单机板的CPU和所述CPLD之间设置一个用于连通或阻断所述单机板的CPU和所述CPLD之间的加载通道以控制所述CPLD处于在线编程模式或离线编程模式的驱动电路。
步骤S13,设置一个通过连接加载电缆可将所述CPLD连接至控制所述CPLD离线编程的控制终端的连接器,并将所述加载电缆的第一引脚和第四引脚相连,形成短路。
为实施本实施例中的一种实现CPLD在线编程和离线编程的控制方法,具体地,如图2所示,本实施例提供一种实现CPLD在线编程和离线编程的控制电路1,应用于对配置于单板机上的CPLD2进行编程的控制中,所述控制电路1包括:单机板的CPU11、驱动电路12、连接器13和加载电缆14。
如图3所示,U1代表单机板的CPU11,U1通过四个通用输入输出GPIO信号经过U2和CPLD2的JTAG接口通信。也就是说,单机板的CPU11通过输出四个通用输入输出GPIO信号至CPLD2的JTAG接口,实现对CPLD2的在线编程。
JTAG(Joint Test Action Group,联合测试工作组)是一种国际标准测试协议(IEEE 1149.1兼容),主要用于芯片内部测试。现在多数的高级器件都支持JTAG协议,标准的JTAG接口是4线:TMS、TCK、TDI、TDO,分别为模式选择、时钟、数据输入和数据输出线。
其中,如图4所示,在本实施例中,所述CPLD2的JTAG接口包括:CPLD的JTAG时钟信号接口、CPLD的JTAG数据输入信号接口、CPLD的JTAG数据输出信号接口以及CPLD的JTAG的工作模式选择信号。
在图4中,U3代表CPLD2,CPLD2外部可以通过JTAG接口对其加载:CPLD_TCK是CPLD2的JTAG时钟信号,CPLD_TDI是CPLD2的JTAG数据输入信号,CPLD_TDO是CPLD2的JTAG数据输出信号,CPLD_TMS是CPLD2的JTAG的工作模式选择信号。
驱动电路12连接于所述单机板的CPU11和所述CPLD2之间,用于连通或阻断所述单机板的CPU11和所述CPLD2之间的加载通道以控制所述CPLD2处于在线编程模式或离线编程模式。当所述单机板的CPU11和所述CPLD2之间的加载通道连通时,所述CPLD2处于在线编程模式,当所述单机板的CPU11和所述CPLD2之间的加载通道阻断时,所述CPLD2处于离线编程模式。
具体地,在本实施例中,如图3所示,所述驱动电路12至少包括:驱动芯片U2和与所述驱动芯片U2的OE引脚相连的下拉电阻R317。
其中OE英文全称为Output Enable,中文意思为输出使能端、输出允许信号。当给OE引脚一个相应的电平值时,即一个高电平或者是低电平,要看芯片的要求,一般是高电平,使其选通,就允许芯片输出数据;否则,不能输出数据。也就是说,芯片引脚中的OE是Output Enable的意思,是表明无效时输出为高阻态。所谓高阻态这指的是电路的一种输出状态,既不是高电平也不是低电平,如果高阻态再输入下一级电路的话,对下级电路无任何影响,和没接一样,如果用万用表测的话有可能是高电平也有可能是低电平,随它后面接的东西定的。电路分析时高阻态可做开路理解。你可以把它看作输出(输入)电阻非常大。它的极限状态可以认为悬空(开路)。也就是说理论上高阻态不是悬空,它是对地或对电源电阻极大的状态。而实际应用上与引脚的悬空几乎是一样的。
具体地,在本实施例中,所述下拉电阻R317的一端与所述OE引脚相连,另一端与所述驱动芯片U2的VCC引脚相连。
更进一步地,所述下拉电阻R317的阻值为5kΩ~15kΩ,在本实施例中,所述下拉电阻R317的阻值为10kΩ,所述驱动芯片U2的VCC引脚提供3.3V电源。
如图3所示,U2代表驱动芯片,A代表输入端引脚,Y代表输出端引脚,当OE引脚拉低时,输出端的四个引脚Y[1..4]的信号等于输入端的四个引脚A[1..4]的信号;当OE引脚拉高时,U2的输出端的四个引脚Y[1..4]为高阻态,本实施例中OE引脚通过上拉电阻R317的10K电阻下拉到地。
此外,在本实施例中,所述下拉电阻R317和所述驱动芯片U2的VCC引脚之间还连接有并联连接的两个电容:电容C64和电容C66。
连接器13通过连接加载电缆14可将所述CPLD2连接至控制所述CPLD2离线编程的控制终端3;其中,如图5所示,所述加载电缆14的第一引脚和第四引脚相连,形成短路,所述控制终端3为PC机。
在本实施例中,所述连接器13为具有八个引脚的连接器。具体地,在本实施例中,所述连接器13的引脚与所述加载电缆14的引脚对应相连;所述连接器13的第一引脚连接3.3V电源;所述连接器13的第四引脚与所述驱动芯片U2的OE引脚对应相连。
具体地,在本实施例中,如图3所示,P2代表接CPLD2专用的加载电缆14的连接器13,CPLD2专用的加载电缆14一端连PC机,一端连P2。PC机安装有专用的加载软件,通过专用的加载电缆14对CPLD2进行加载。
在所述加载电缆14与所述连接器13相连时,所述加载电缆14的第四引脚连接至所述连接器13的第一引脚提供的3.3V电源,所述驱动芯片U2的OE引脚拉高,所述驱动芯片U2的信号输出端呈高阻态,所述单机板的CPU11和所述CPLD2之间的加载通道阻断。
所述加载电缆14未与所述连接器13相连时,所述驱动芯片U2的OE引脚通过所述下拉电阻R317拉低,所述单机板的CPU11和所述CPLD2之间的加载通道连通。
为使本领域技术人员进一步理解本实施例中的实现CPLD2在线编程和离线编程的控制电路1,以下将进一步说明本实施例中实现CPLD2在线编程和离线编程的控制电路1的工作过程。
在所述加载电缆14与所述连接器13相连时,所述加载电缆14的第四引脚连接至所述连接器13的第一引脚提供的3.3V电源,所述驱动芯片U2的OE引脚拉高,所述驱动芯片U2的信号输出端呈高阻态,所述单机板的CPU11和所述CPLD2之间的加载通道阻断。也就是说,加载电缆14的第四引脚在加载电缆14上和第一引脚短路,当加载电缆14插在P2上的时候,第四引脚就和3.3V电源相连接,将U2的OE引脚拉高,U2的输出Y[1..4]为高阻态,即CPU和CPLD2的连接被中断,CPLD2的加载通道就自动切换到加载电缆14的连接器13上了,此时可以实现PC机对CPLD2的离线编程。
所述加载电缆14未与所述连接器13相连时,所述驱动芯片U2的OE引脚通过所述下拉电阻R317拉低,所述单机板的CPU11和所述CPLD2之间的加载通道连通。也就是说,当加载电缆14不插在P2上时,P2的第四引脚即U2的OE引脚被R317下拉到低,U2连通CPU和CPLD2之间的加载通道,此时可以实现CPU对CPLD2的在线编程。
综上所述,本发明通过对电路结构进行设计和对对专用CPLD加载电缆进行改造,在无需人为或软件额外配置的情况下,同时支持CPLD在线编程和离线编程两种工作模式,并且两种模式自适应工作,在单板调试阶段,CPU尚未调好的时候,PC机可以通过加载电缆对CPLD编程,方便了CPLD的调试,在产品阶段,可以远程控制CPU在线升级CPLD,无需工程师携带电缆到现场升级,减少系统维护成本。本发明简单高效,具有较强的通用性和实用性。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。