快速编程/调试设备的制作方法

文档序号:6757831阅读:163来源:国知局
专利名称:快速编程/调试设备的制作方法
技术领域
本发明涉及用于对芯片进行编程和/或调试的设备,更具体地说,涉及一种快速编程/调试设备,特别适于对闪存(Flash Memory,以下简称Flash)进行编程。
背景技术
摩托罗拉公司(Motorola)的PowerPC系列CPU都提供了BDM(backgrounddebug mode,背景调试模式)接口。通过BDM接口,可利用BDM编程/调试设备对CPU进行调试以及将程序烧写到Flash中,本专利中所说的烧写Flash,就是通过相应的编程/调试设备对Flash进行编程。Flash是一种存储单元,在一般的CPU单板中通常都有Flash,用于存储程序等。单板上电时,CPU会自动执行Flash中的程序或者将Flash中的程序加载到内存中执行,因此,应预先通过编程/调试设备将这些程序烧写到Flash中。常见的BDM编程/调试设备有两种,一种为专用调试设备(例如BDI2000),另一种为BDM简易调试头。
专用调试设备的原理如图1所示,其中包括ram/flash存储单元、CPU、BDM逻辑电路接口、以太网接口和RS232接口等。工作时,计算机主机通过RS232接口对该专用调试设备进行配置,例如设置IP地址、服务器IP地址、下发配置文件等,然后,计算机主机通过以太网登陆到该专用调试设备上,运行该专用调试设备提供的相关命令后,该专用调试设备便将文件从服务器上下载到内存中,最后通过BDM逻辑电路接口烧写到CPU单板的Flash中。该设备功能强大,烧写Flash的速度很快,但是需占用一个CPU来完成操作,且收发操作只能串行进行,即不能同时实现收发功能,价格昂贵,操作很复杂,不容易被工人掌握,不适合批量生产时使用。
BDM简易调试头的原理如图2所示,其中仅采用几个门电路来实现计算机主机与PowerPC系列CPU板之间的信号隔离,实际上相当于一根简易下载电缆。该简易调试头的一端通过并口电缆与计算机主机相连,另一端与PowerPC系列CPU板相连。BDM简易调试头的使用非常简单,成本很低,但是其烧写Flash的速度很慢,而且烧写速度对计算机硬件配置及其操作系统依赖性很大,不同计算机采用同样的简易调试头时,其烧写速度会大不相同,烧写128k的文件需要少则四分钟,多则几十分钟,因此也不利于大批量生产时使用。

发明内容
针对现有技术的上述缺陷,本发明要解决现有的编程/调试设备不能同时兼顾速度、成本、以及操作容易度的问题,以提供一种操作简单、编程/调试速度快、同时其成本又较低的快速编程/调试设备。
为解决上述技术问题,本发明提供一种快速编程/调试设备,包括用于与计算机连接的并口及用于与被编程/调试器件连接的编程/调试接口,其中还包括与所述并口连接的发送先进先出模块和接收先进先出模块,与所述编程/调试接口连接的移位发送器、移位接收器和用于产生收发同步信号的发送时钟发生逻辑,以及,用于与外部时钟源连接的时钟信号输入口;其中,所述发送先进先出模块的输出端与所述移位发送器的输入端连接,所述移位发送器的输出端与所述编程/调试接口中的串行数据输入线连接以发出数据;所述接收先进先出模块的输入端与所述移位接收器的输出端连接,所述移位接收器的输入端与所述编程/调试接口中的串行数据输出线连接以接收数据。
本发明中,所述时钟信号输入口分别与所述移位发送器和发送时钟发生逻辑连接以输入发送时钟信号;所述移位发送器与所述发送时钟发生逻辑连接以输入同步信号;所述发送时钟发生逻辑与所述编程/调试接口中的串行时钟信号线连接、以根据所述发送时钟信号和同步信号输出相应的串行时钟信号。
本发明中,最好还包括与所述并口连接、用于设定所述移位发送器每次发送的数据长度的命令寄存器,所述命令寄存器的输出端与所述移位发送器连接。
本发明中,最好还包括一个分频器,所述时钟信号输入口经过所述分频器之后才与所述移位发送器和发送时钟发生逻辑连接。
本发明的所述并口中包括用于输入/输出数据的数据线;复位输入信号线;与所述发送先进先出模块连接、用于反映所述发送先进先出模块中是否有空的发送准备信号线;与所述接收先进先出模块连接、用于反映所述接收先进先出模块中是否有数据的接收准备信号线;同时与所述发送先进先出模块和接收先进先出模块连接的片选输入信号线;以及同时与所述发送先进先出模块和接收先进先出模块连接的读写信号线。
由上述方案可知,由于采用了发送和接收先进先出模块来减少计算机访问并口的次数,并采用了移位发送器和移位接收器来独立地进行数据收发,不需要计算机主机的干预,同时还由外部时钟信号来控制数据的收发,收发数据可并行进行,即可以同时实现收发功能,这几个方面的改进使得整个编程/调试设备的烧写速度大大增加,从而提供了一种操作简单、编程/调试速度快、同时其成本又较低的快速编程/调试设备,可以调试CPU单板,例如读写内存、寄存器、设置断点等等,尤其适合用于对Flash进行编程


下面将结合附图及实施例对本发明作进一步说明,附图中图1是现有技术中的专用BDM调试设备的原理框图;图2是现有技术中的BDM简易调试头的原理框图;图3是本发明一个优选实施例中采用CPLD实现的快速编程/调试设备的原理框图;图4是图3所示实施例的工作波形示意图。
具体实施例方式
本发明一个优选实施例中,提供的是一个基于CPLD(复杂可编程逻辑器件)的Flash快速编程/调试设备,其原理如图3所示。从图中可以看出
1)在CPLD内部设置有一个4字节的发送先进先出模块(以下简称FIFO)和一个4字节的接收FIFO,它们用于减少计算机主机访问并口的次数,以提高Flash烧写速度;2)在CPLD内部设置有一个移位发送器和一个移位接收器,它们可独立收发数据,而不需要计算机主机干预,从而可提高Flash的烧写速度,同时减少对计算机硬件配置和操作系统的依赖性;3)由外部晶体振荡器提供的时钟信号clock来驱动CPLD收发数据,通过改变晶体振荡器提供的时钟信号频率,或通过选用不同倍数的分频器来改变发送时钟信号TXCLK的频率,可进一步提高Flash烧写速度;4)利用并口控制线产生片选和读写信号,并口工作于EPP(增强并口)模式,以进一步提高Flash烧写速度。
采用了上述方案后,与BDM简易调试头相比,本设备的Flash烧写速度能提高4-10倍,而且Flash烧写速度对计算机硬件配置和操作系统的依赖性也大大降低。在Windows操作系统下,其烧写128k的文件可在1分钟以内完成;在Linux操作系统下,其Flash烧写速度与专用调试设备BDI2000相当,能在20秒以内完成128k文件的烧写。
如图3所示,其中,编程/调试设备的左端通过并口电缆与计算机主机相连,右端则通过BDM接口与PowerPC系列CPU板相连。当烧写或调试Flash时,计算机主机将通过并口不停的读写数据。
其中,当写数据时,首先通过命令寄存器设定字长(1-8位),根据BDM协议,每次发送给CPU的数据长度可能是32位、也可能是3位、7位、1位等,设定字长的目的就是确定每次发送给CPU的数据长度;每次发送数据时,FIFO中的一个字节数据被搬到移位发送器中的移位寄存器然后发送出去。如果字长为8位,则这个字节数据全部发送出去;如果字长为5位,则只发送该字节的高5位即可。
然后,将数据按字节发送到CPLD的发送FIFO中;其前提是要求发送FIFO中有空间,当发送FIFO中有空间时,发送准备信号(TXRDY#)为低电平,否则为高电平。当读取数据时,CPLD将接收FIFO中的数据送给计算机主机,其中,接收准备信号(RXRDY#)为低电平时,表示接收FIFO中有数据。
当移位发送器检测到发送FIFO中有数据时,会自动将数据搬到移位寄存器(该寄存器在移位发送器中)中,然后在发送时钟信号(TXCLK)的上升沿到来时,将移位发送器中的数据按位发送到串行数据输入信号线(DSDI)上。
图3中的发送时钟发生逻辑根据移位发送器传来的同步信号输出一个串行时钟信号(DSCK)。PowerPC系列CPU在DSCK上升沿到来时会自动从DSDI上获取数据,同时将CPU板的数据通过串行数据输出信号线(DSDO)发送出来。DSCK的相位落后于TXCLK,这样做是为了在DSCK上升沿到来时DSDI上的数据信号已经稳定。
移位接收器在DSCK的上升沿从DSDO信号线上获取PowerPC系列CPU发送过来的数据,然后放入移位寄存器(该寄存器在移位接收器中)中,接收完毕后将数据送到接收FIFO中。
当发送FIFO为空且移位发送器空闲时,忙碌信号(BUSY#)为高,否则为低。通过检测BUSY#信号可知CPLD是否空闲,通过检测RXRDY#可检测接收FIFO中数据是否已经准备好,通过检测TXRDY#可知发送FIFO中是否还有空间。
在图3所示的实施例中,WR#为读写信号,CS1#为片选信号。当WR#为高电平且CS1#为低电平时,计算机主机可从CPLD读数据;当CS1#为低电平且WR#为低电平时,计算机主机可向CPLD写数据。
图3所示实施例的工作波形如图4所示,其中,当复位信号(RESET#)为低电平时,CPLD复位,DSDI置低同时DSCK置高,以便让PowrPC CPU进入调试模式。假设字长为8位,计算机主机往CPLD发送数据0xAA,此时片选信号(CS1#)置低,读写信号(WR#)置低,CPLD会将请求信号(nWait#)置高,表示CPLD已经接收到数据。CPLD在WR#/CS1#的上升沿将数据送到发送FIFO,然后搬入移位发送器中。移位发送器在TXCLK的上升沿将数据按bit从DSDI信号线上发送出去,同时控制发送时钟逻辑给出同步发送时钟(DSCK)。PowerPC系列CPU在DSCK的上升沿从DSDI上获得数据0xAA,同时在DSCK的下降沿发出数据(比如发送0x46)。CPLD在DSCK的上升沿自动从DSDO上获取数据,当CPLD从DSDI上发送完8位数据(比如0xAA)时,CPLD也同时从DSDO上获取了8位来自PowerPC系列CPU的数据(比如0x46)。这时,计算机主机可从CPLD读取数据,此时CS1#置低,WR#置高,当nWait#为高电平时,表示CPLD已经将数据发送到数据总线上,计算机主机可读到数据0x46。
具体实施时,可采用不同深度的发送FIFO和接收FIFO,例如采用3字节的发送FIFO和接收FIFO,或采用5字节的发送FIFO和接收FIFO。当然,也可以采用1字节的寄存器,此时可将其视为一个特殊的先进先出模块。另外。还可以或采用不同倍数的分频器,以向移位发送器提供不同的时钟信号。
权利要求
1.一种快速编程/调试设备,包括用于与计算机连接的并口及用于与被编程/调试器件连接的编程/调试接口,其特征在于,还包括与所述并口连接的发送先进先出模块和接收先进先出模块,与所述编程/调试接口连接的移位发送器、移位接收器和用于产生收发同步信号的发送时钟发生逻辑,以及,用于与外部时钟源连接的时钟信号输入口;其中,所述发送先进先出模块的输出端与所述移位发送器的输入端连接,所述移位发送器的输出端与所述编程/调试接口中的串行数据输入线连接以发出数据;所述接收先进先出模块的输入端与所述移位接收器的输出端连接,所述移位接收器的输入端与所述编程/调试接口中的串行数据输出线连接以接收数据。
2.根据权利要求1所述的快速编程/调试设备,其特征在于,所述时钟信号输入口分别与所述移位发送器和发送时钟发生逻辑连接以输入发送时钟信号;所述移位发送器与所述发送时钟发生逻辑连接以输入同步信号;所述发送时钟发生逻辑与所述编程/调试接口中的串行时钟信号线连接、以根据所述发送时钟信号和同步信号输出相应的串行时钟信号。
3.根据权利要求2所述的快速编程/调试设备,其特征在于,还包括与所述并口连接、用于设定所述移位发送器每次发送的数据长度的命令寄存器,所述命令寄存器的输出端与所述移位发送器连接。
4.根据权利要求3所述的快速编程/调试设备,其特征在于,还包括一个分频器,所述时钟信号输入口经过所述分频器之后才与所述移位发送器和发送时钟发生逻辑连接。
5.根据权利要求1-3中任一项所述的快速编程/调试设备,其特征在于,所述并口中还包括用于输入/输出数据的数据线;复位输入信号线;与所述发送先进先出模块连接、用于反映所述发送先进先出模块中是否有空的发送准备信号线;与所述接收先进先出模块连接、用于反映所述接收先进先出模块中是否有数据的接收准备信号线;同时与所述发送先进先出模块和接收先进先出模块连接的片选输入信号线;以及,同时与所述发送先进先出模块和接收先进先出模块连接的读写信号线。
6.根据权利要求1-3中任一项所述的快速编程/调试设备,其特征在于,所述发送先进先出模块和接收先进先出模块都是4字节先进先出模块。
全文摘要
本发明涉及用于对芯片进行编程/调试的设备,为解决现有同类设备不能同时兼顾速度、成本、以及操作容易度的问题,本发明提供一种快速编程/调试设备,包括并口和编程/调试接口,还包括与并口连接的发送FIFO和接收FIFO,与编程/调试接口连接的移位发送器、移位接收器和发送时钟发生逻辑,以及用于与外部时钟源连接的时钟信号输入口;其中,发送FIFO的输出端与移位发送器的输入端连接,移位发送器的输出端与编程/调试接口中的串行数据输入线连接;接收FIFO的输入端与移位接收器的输出端连接,移位接收器的输入端与编程/调试接口中的串行数据输出线连接。本发明的快速编程/调试设备操作简单、调试速度快且成本低,尤其适合用于对Flash进行编程。
文档编号G11C16/06GK1881205SQ200510078460
公开日2006年12月20日 申请日期2005年6月17日 优先权日2005年6月17日
发明者严慧勇, 李熹, 刘万强 申请人:艾默生网络能源系统有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1