利用调试卡导出外围设备互连总线数据的装置及方法

文档序号:6372573阅读:171来源:国知局
专利名称:利用调试卡导出外围设备互连总线数据的装置及方法
技术领域
本发明涉及计算机系统中一种导出PCI总线数据的装置及方法,特别是一种利用调试卡导出PCI总线数据的装置及方法。
背景技术
PCI总线(Peripheral Component Interconnection外围设备互连总线)是由英特尔(Intel)公司在1993年所发表,为了适应微处理器性能的提高及输入/输出模块(I/O)更高吞吐率的要求,替换已经不能满足日益增长的数据传输需求的ISA总线结构(Industry Standard Architecture工业标准结构总线)而设计的一种新型高速总线结构标准,在目前的计算机系统中得到了广泛的应用。
现今个人计算机(PC机)主机板主要有三种体系结构基于ISA总线的传统体系结构、Intel Hub体系结构及基于LPC(Low Pin Count低引脚计数总线)总线的体系结构。目前的计算机系统中多采用LPC结构代替ISA结构。但是,由于LPC总线没有设计控制信号,导致了无法跟踪PCI总线上的数据流,为解决这个问题,英特尔公司(Intel)及其它CPU厂商提出了一套解决方案在CPU中增加调试(Debug)功能的引脚,可单步跟踪CPU指令。但使用这种方案需要一台微处理器仿真器(CPU Emulator),其成本较高。
此时,就需要一种低成本的装置及方法将PCI总线的数据导出以解决上述问题。

发明内容
有鉴于此,本发明所要解决的技术问题是提供一种导出PCI总线数据的装置及方法,可以将PCI总线数据传输到需要的执行位置,便于对数据进行进一步分析处理。
为了实现上述目的,本发明提出了一种利用调试卡导出PCI总线数据的方法,首先通过调试卡的PCI接口读取PCI总线的数据;然后将该数据储存到调试卡内的缓冲器中;接下来,通过该调试卡的数据控制芯片控制读取该缓冲器中的数据;再将该数据储存到该芯片的缓冲器中;最后通过该调试卡的主机接口导出该芯片缓冲器中的数据。
本发明还提出了一种调试卡装置,该装置包括PCI接口,储存模块及数据控制芯片及主机接口组成的调试卡。其中,PCI接口用来提供各种连接接口;储存模块用于储存PCI总线数据;主机接口用于提供与主机连接的接口;数据控制芯片用于控制PCI总线数据的读取和传输,由读取控制模块、传输控制模块、数据储存模块及寄存器组成;读取控制模块用于根据控制信号对数据读取进行控制;数据储存模块用于储存从调试卡中获取的PCI总线数据,寄存器用于储存读取控制指令。
与现有的方法相比,本发明提供的方法不需要使用成本较高的中央处理单元仿真器来跟踪CPU的调试(Debug)引脚,只需要利用成本低廉的调试卡即可以将所需的PCI总线的数据导出,可以对该数据进行进一步分析处理,从而降低成本,具有很强的实用性。
有关本发明的详细内容及方法,现配合附图和具体实施方式
说明如下。


图1是本发明利用调试卡导出PCI总线数据的方法的总体流程图;图2是本发明所提出的通过该调试卡的数据控制芯片控制读取该缓冲器中的数据的流程图;图3是本发明所提出的初始化该数据控制芯片的流程图;图4是本发明所提出的当该芯片为空闲状态时对该芯片进行设置的流程图;图5是本发明所提出的通过调试卡的主机接口导出数据控制芯片读取的数据的流程图;图6是本发明利用调试卡导出PCI总线数据的系统架构图;及图7是本发明利用调试卡导出PCI总线数据的系统另外一种较佳实例的框架图。
其中,附图标记说明如下
步骤110通过调试卡的PCI接口读取PCI总线的数据步骤120将该数据储存到调试卡内的缓冲器中步骤130通过该调试卡的数据控制芯片控制读取该缓冲器中的数据步骤140将该数据储存到该芯片的缓冲器中步骤150通过该调试卡的主机接口导出该芯片缓冲器中的数据步骤210初始化该数据控制芯片步骤220当该芯片为空闲状态时,对该芯片进行设置步骤230当该芯片为非空闲状态时,根据该芯片设置读取调试卡内的PCI总线数据步骤310该控制器与调试卡进行同步设置步骤320设置该芯片的工作模式步骤330选择该芯片的寄存器地址,并写入读取控制的代码步骤340设置该芯片的数据读取宽度步骤350清除该数据控制芯片及调试卡的缓冲器中储存的原始数据步骤410设置该芯片读取数据的方式步骤420确定该调试卡内数据的读取情况,并进行计数步骤430设置每次读取的数据量步骤440结束空闲状态步骤510将该芯片缓冲器中的数据传输到主机步骤520在主机内对该数据进行分析610调试卡611PCI接口612储存模块613主机接口620数据控制芯片621读取控制模块622传输控制模块623数据储存模块624寄存器720主机
721 主机接口722 数据读取模块723 驱动模块724 数据储存模块具体实施方式
如图1所示,该图是本发明的利用调试卡导出PCI总线数据的方法的总体流程图,说明如下首先通过调试卡的PCI接口读取PCI总线的数据(步骤110);然后将该数据储存到调试卡内的缓冲器中(步骤120);接下来,通过该调试卡的数据控制芯片控制读取该缓冲器中的数据(步骤130) 再将该数据储存到该芯片的缓冲器中(步骤140);最后通过该调试卡的主机接口导出该芯片缓冲器中的数据(步骤150)。
调试卡获取PCI总线数据的过程是通过内部固化程序来执行的,该固化程序位于调试卡内的寄存器中,通过控制寄存器,进而控制读取PCI总线数据的过程。该固化程序可以直接储存于在调试卡内,或者也可以是储存于调试卡相连接的外部设备中,如计算机主机中,在执行数据导出操作时再下载到调试卡内部。在本发明的一个实施例中,该固化程序是储存在调试卡上的USB8051控制芯片上的。
其中,在通过调试卡读取PCI总线数据时候,需要通过主机板上的信号过滤芯片分析PCI总线的引脚信号首先要由请求控制信号(REQ#)向总线仲裁器发出要求,总线仲裁器会以应答控制信号(GNT#)响应该要求,当收到应答信号(GNT#)后才取得总线(Bus)的使用权;然后在地址阶段中通过地址传输发起者(Initiator)确认目标装置(target)以及交换状态,本发明中目标装置(target)就是调试卡中内的缓冲(FIFO),目标装置可以确认它是否被寻址以及交易的状态。发起者只能提供起始地址给目标装置(在地址阶段中),完成地址阶段后的交换期间,地址/数据总线变成数据总线,并且用来在每一个数据阶段里传输数据。
交换的数据阶段是指某一段时间,在该段时间里,发起者与目标装置之间有一个数据对象被传输,在某一个数据阶段里,被传输的数据字节数是由发起者在该数据阶段里所设定的指令/字节来决定的,每一个数据阶段持续的时间至少在一个PCI时钟周期,发起者(Initiator)与目标装置都必须表示它们准备完成该数据阶段,或者用一个PCI时钟周期的等待状态来延长数据阶段,为此,PCI总线定义了“发起者准备好信号(Initiator IRDY#)”与“目标装置准备好信号(TRDY#)”所使用的准备好(ready)信号线。发起者(Initiator)不会传送传输次数给目标装置。相反,在每一个数据阶段里,它都会表示是否是最后一个数据项。在寻址阶段的开始,帧信号(FRAME#)会被驱动到低电平,并且持续驱动,直到发起者(Initiator IRDY#)完成最后一个数据阶段为止。当目标装置(Target)在数据阶段中取样到“发起者准备好信号IRDY#”被驱动到低电平,并且“帧信号FRAME#”被反驱动到高电平时,它就知道这是最后一个数据阶段。数据阶段必须直到目标装置(Target)把TRDY#信号驱动到低电平,才宣告完成。
此时,就可以将上述数据储存到调试卡的缓冲器(FIFO)中了。
下面,进一步说明本发明的流程。
如图2所示,该图是本发明所提出的通过该调试卡的数据控制芯片控制读取该缓冲器中的数据的流程图,说明如下初始化该数据控制芯片(步骤210);当该芯片为空闲状态时,对该芯片进行设置(步骤220);当该芯片为非空闲状态时,根据该芯片设置读取调试卡内的PCI总线数据(步骤230),最后进入步骤140。
当同时满足数据尚未全部读取完,数据控制芯片此时未从调试卡中读取数据以及控制器的缓冲存储器未写满这三个条件时,就可以进入空闲状态,执行相关的数据读取设置工作。
其中,根据该芯片设置读取调试卡内的PCI总线数据所执行的操作就是根据该控制芯片内寄存器中的控制代码,读取调试卡内储存的PCI总线数据。此时将根据该芯片为空闲状态时所设置的数据传输方式以及数据读取宽度来读取数据。读取完成后将储存到该芯片内的缓冲器中。
如图3所示,该图是本发明所提出的初始化该数据控制芯片的流程图,说明如下该控制芯片与调试卡进行同步设置(步骤310);设置该芯片的工作模式(步骤320);选择该芯片的寄存器地址,并写入读取控制的代码(步骤330);设置该芯片的数据读取宽度(步骤340);清除该数据控制芯片及调试卡的缓冲器中储存的原始数据(步骤350)。
在利用芯片读取数据之前,需要对芯片进行初始化设置,其中,同步设置包括设置芯片的时钟频率为48赫兹,将该时钟频率输出给调试卡及停止其它正在执行的程序等三个步骤;设置工作模式包括设置RDY信号为内部模式,设置CTL信号为CMOS模式。其中,RDY信号是调试卡发送给数据控制芯片的信号,RDY代表当前数据准备好,RDY1代表数据已写满缓冲器,不再读取新数据。
本发明中步骤330中所选择的寄存器地址为WaveForm3作为寄存器地址,并写入读取控制值;在本实施例中,设置的数据读取宽度为16位(bit)。
清除该数据控制芯片缓冲器中储存的原始数据是为了储存从调试卡内读取的数据;而清除该调试卡的缓冲器中储存的原始资料是为了储存所获取的PCI总线数据。
初始化过程结束后,由于没有读取数据,所以自动进入空闲状态。在空闲状态下检测某些寄存器中的值,若满足条件,设置某些寄存器的值。
如图4所示,该图是本发明所提出的当该芯片为空闲状态时对该芯片进行设置的流程图,说明如下设置该芯片读取数据的方式(步骤410);确定该调试卡内数据的读取情况,并进行计数(步骤420);设置每次读取的数据量(步骤430);结束空闲状态(步骤440)。
由于调试卡中所产生的数据一笔是40位(bit),而数据控制芯片的数据线宽度是16位(bit),因此需要分三次读取调试卡中的一笔数据。设置芯片读取数据的方式实际上就是指数据控制芯片发送给调试卡(Debug Card)的信号CTL0、CTL1及CTL2;CTL0读取0-15位的数据,CTL1读取16-31位的数据,CTL2读取32-39位的数据,最后在调试卡发送给数据控制芯片的信号FD0-FD15时,将该数据传输到芯片的缓冲器中进行储存。
确定该调试卡内数据的读取情况,并进行计数是指对该调试卡内的缓冲器的储存状况进行判断,判断其是否已经存满;这是建立在对读取数据的大小进行累加计算的基础上的,每进行一次数据读取,就在原有的数据量上进行累加。本实施方式中的控制器有四个缓冲区,其中的一个用来存放从调试卡读取的数据。
设置读取的数据量是指下一次非空闲状态时读取多少笔数据。
结束空闲状态后将进入非空闲状态,预备进行数据读取。
如图5所示,该图是本发明所提出的通过调试卡的主机接口导出数据控制芯片读取到的数据的流程图,说明如下将该芯片缓冲器中的数据传输到主机(步骤510);在主机内对该数据进行分析(步骤520)。
为了对PCI总线的数据进行进一步的分析处理,需要将该芯片缓冲器中的数据传输到计算机主机中,这个过程也是通过寄存器中的读取控制代码来完成的,它通过对寄存器进行操作来完成这一过程。然后根据需求通过相应的软件分析该数据,从而达到所需目的。
如图6所示,该图是本发明利用调试卡导出PCI总线数据的系统架构图,如图所示,包括PCI接口611,储存模块612,数据控制芯片620及主机接口613组成的调试卡610。数据控制芯片620由读取控制模块621、传输控制模块622、数据储存模块623及寄存器624组成。
其中,PCI接口611用来提供各种连接接口;储存模块612用于储存PCI总线数据;主机接口613用于提供与主机连接的接口;数据控制芯片620用于控制PCI总线数据的读取和传输;读取控制模块621用于根据控制信号对数据读取进行控制;传输控制模块622用于根据控制信号对数据传输进行控制;数据储存模块623用于储存从调试卡中获取的PCI总线数据;寄存器624用于储存读取控制指令。
该主机接口可以是通用串行总线(USB)接口。
本发明所使用的装置实施例中,该数据控制芯片为EZ-USB FX2芯片,该储存模块为调试卡中的缓冲器,该数据储存模块为数据控制芯片中的缓冲器,调试卡与FX2芯片有21个引脚连接。
如图7所示,该图是本发明利用调试卡导出PCI总线数据的系统另外一种较佳实例的框架图,如图所示,包括由PCI接口611、储存模块612及数据控制芯片620及主机接口613组成的调试卡610;及由主机接口721、数据读取模块722、驱动模块723及数据储存模块724组成的主机720;数据控制芯片620由读取控制模块621、传输控制模块622、数据储存模块623、寄存器624组成。
其中,主机720用于接收数据控制芯片内储存的数据,并对其进行分析处理;主机接口721用于提供与调试卡连接的接口;数据读取模块722用于控制读取调试卡中数据控制芯片内的PCI总线数据;驱动模块723用于提供了存放执行读取控制的固化程序;数据储存模块724用于储存导出的PCI总线数据。
下面用一种较佳的实例来说明本发明的流程。
外部主机中储存了读取控制固化程序,数据控制芯片通过通用串行总线(USB)接口,将该固化程序下载到调试卡内的数据控制芯片,本实施例中,该数据控制芯片为USB8051,通过执行该固化程序,调试卡向总线仲裁器发出获取PCI总线数据的申请,仲裁器响应申请并将PCI总线数据传输到调试卡内的缓冲器中。
然后对调试卡内的数据控制芯片进行初始化,同步调试卡与数据控制芯片,设置工作模式,选择寄存器地址并写入读取控制代码,设置数据读取宽度及并清除该数据控制芯片及调试卡的缓冲器中储存的原始数据。
随后,数据控制芯片进入空闲状态,设置数据读取方式,确定该调试卡内数据的读取情况并进行计数;设置每次读取的数据量,最后结束空闲状态,准备进入非空闲状态,完成数据读取工作。
进入非空闲状态后,就根据芯片在初始化状态及空闲状态下的设置情况,开始读取调试卡中的数据,并在芯片内的缓冲器中进行储存,直到缓冲器写满为止;写满后,芯片变为空闲状态,等待进行下一次数据读取过程。
最后,读取控制固化程序将芯片内的数据通过通用串行总线(USB)接口传输到主机的数据储存模块中进行储存。
至此,一笔数据的读取过程就全部完成了,这个过程将不断重复进行,直到所需的PCI总线数据读取完毕,这样,就可以在主机上对数据进行进一步的分析处理,达到所需目的。
以上所述,仅为本发明的较佳实施例而已,并非用来限定本发明的实施范围;所有依本发明说明书和附图所作的均等变化与修饰,均包含在本发明的专利范围内。
权利要求
1.一种利用调试卡导出PCI总线数据的方法,其特征在于,该方法至少包括以下步骤通过调试卡的PCI接口读取PCI总线的数据;将该数据储存到调试卡内的缓冲器中;通过该调试卡的数据控制芯片控制读取该缓冲器中的数据;将该数据储存到该芯片的缓冲器中;及通过该调试卡的主机接口导出该芯片缓冲器中的数据。
2.如权利要求1所述的利用调试卡导出PCI总线数据的方法,其特征在于,通过调试卡的主机接口导出数据控制芯片读取到的数据的步骤后还包括如下步骤将该芯片缓冲器中的数据传输到主机;及在主机内对该数据进行分析。
3.如权利要求1所述的利用调试卡导出PCI总线数据的方法,其特征在于,通过该调试卡的数据控制芯片控制读取该缓冲器中的数据的步骤中还包括如下步骤初始化该数据控制芯片;当该芯片为空闲状态时,对该芯片进行设置;及当该芯片为非空闲状态时,根据该芯片设置读取调试卡内的PCI总线数据。
4.如权利要求3所述的利用调试卡导出PCI总线数据的方法,其特征在于,初始化该数据控制芯片的步骤更包括如下步骤该数据控制芯片与调试卡进行同步设置;设置该数据控制芯片的工作模式;选择该数据控制芯片的寄存器地址,并写入读取控制的代码;设置该数据控制芯片的数据读取宽度;及清除该数据控制芯片及调试卡的缓冲器中储存的原始数据。
5.如权利要求3所述的利用调试卡导出PCI总线数据的方法,其特征在于,当该芯片为空闲状态时,对该芯片进行设置的步骤还包括如下步骤设置该芯片读取数据的方式;确定该调试卡内数据的读取情况,并进行计数;设置每次读取的数据量;及结束空闲状态。
6.如权利要求5所述的利用调试卡导出PCI总线数据的方法,其特征在于,结束空闲状态的步骤后还包括准备进行下一次数据读取的步骤。
7.如权利要求3所述的利用调试卡导出PCI总线数据的方法,其特征在于,当该控制器为非空闲状态时,根据该芯片设置读取调试卡内的PCI总线数据是根据该控制芯片内寄存器中的控制代码,读取调试卡内储存的PCI总线数据。
8.一种调试卡装置,其特征在于,该装置包含一PCI接口,用于提供与PCI总线之间的连接接口;一储存模块,用于储存PCI总线数据;及一数据控制芯片,用于控制PCI总线数据的读取和传输,其中还包含一读取控制模块,用于根据控制信号对数据读取进行控制;一传输控制模块,用于根据控制信号对数据传输进行控制;一数据储存模块,用于储存从调试卡中获取的PCI总线数据;一寄存器,用于储存读取控制指令;及一主机接口,用于提供与主机连接的接口。
9.如权利要求8所述的调试卡装置,其特征在于,该装置通过主机接口与一主机连接,该主机包含一主机接口,用于提供与调试卡连接的接口;及一数据读取模块,用于控制读取调试卡中数据控制芯片内的PCI总线数据;一驱动模块,用于提供存放执行读取控制的固化程序;及一数据储存模块,用于储存导出的PCI总线数据。
10.如权利要求8所述的调试卡装置,其特征在于,该储存模块为调试卡中的缓冲器。
11.如权利要求8所述的调试卡装置,其特征在于,该数据储存模块为数据控制芯片中的缓冲器。
12.如权利要求8所述的调试卡装置,其特征在于,该主机接口为一通用串行总线接口。
13.如权利要求9所述的调试卡装置,其特征在于,该主机接口为一通用串行总线接口。
全文摘要
一种利用调试卡导出PCI总线数据的装置及方法,通过调试卡将数据导出以便进行进一步处理。其包括由PCI接口,储存模块,数据控制芯片及主机接口组成的调试卡,首先通过调试卡的PCI接口读取PCI总线数据,然后将数据储存到调试卡内的缓冲器中,接下来,通过调试卡的数据控制芯片控制读取缓冲器中的数据并储存到芯片的缓冲器中,最后通过调试卡的主机接口导出该芯片中的数据。
文档编号G06F13/14GK1567244SQ0314871
公开日2005年1月19日 申请日期2003年6月24日 优先权日2003年6月24日
发明者刘文涵, 林宏义, 宋建福, 吴斌, 李翼嵩, 王震 申请人:英业达股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1