一种pci系统故障诊断方法、设备和系统的制作方法

文档序号:6608597阅读:234来源:国知局
专利名称:一种pci系统故障诊断方法、设备和系统的制作方法
技术领域
本发明涉及故障诊断领域,特别涉及一种PCI系统故障诊断方法、设备和系统。
背景技术
PCI(Peripheral component interconnect外设互联)总线因其所具有的高带宽、高传输效率、支持动态配置和支持突发同步传输等突出优点,而获得极强的生命力。一个典型的PCI应用系统常包含中央处理单元(CPU)、PCI总线、PCI设备(PCI Device)和PCI桥(PCI Bridge)等。
在维修包含PCI总线的通信设备、计算机的过程中,PCI总线或PCI设备故障时会产生多种故障现象,如上电无法正常工作、反复重启、死机、显示信息异常等。目前,诊断上述PCI系统故障时,通常采用在线测试(ICT)的测试设备对PCI总线进行检测,具体地,利用该ICT测试设备连接PCI总线中某根信号线的两端,在其中的一端发出激励信号,在另一端捕捉该信号以确定该信号线是否正常。采用上述方式进行故障检测时,如果PCI总线驱动多个PCI设备,则PCI总线拓扑结构复杂,需测量的数据地址线、控制线数量庞大,排查故障十分费时,而且效率低下,无法快速有效地进行故障定位。另外,上述利用ICT测试设备的方法比较适用于对新的PCI系统进行故障检测,对于使用过一段时间的PCI系统,由于系统受过腐蚀,无法保证能够将ICT测试设备连接在希望测量的一段PCI总线上,因此,无法保证上述方法的应用。这类情况下,利用ICT测试设备无法对故障进行定位。
另外一种常用的自动故障诊断方法为对PCI设备的寄存器进行先写后读的操作,PCI系统的CPU通过对比写入和读出的数据判断PCI外设是否出现故障,并打印显示初始化PCI设备的信息来定位PCI总线故障位置。该方法尤其在PCI系统中的PCI设备上电无法正确初始化时应用较多。应用该方法进行故障诊断时,由于PCI总线是地址/数据总线复用形式,对PCI外设寄存器写入和读出的数据出现不一致的时候,无法判定是地址数据总线出现故障还是PCI外设寄存器无法操作,因此只能根据初始化程序运行情况确定故障位置,例如初始化第三片PCI外设时失败,可以判定第三片PCI外设本身或其附近的总线出现故障,但是无法确定故障类型以及精确故障位置(定位至具体线号)。
总之,现有的PCI系统故障诊断方法无法高效地实现PCI系统故障的定位。

发明内容
有鉴于此,本发明提供一种PCI系统故障诊断方法,能够高效地对PCI总线故障进行定位。
本发明还提供一种PCI系统故障诊断设备和系统,能够高效地对PCI总线故障进行定位。
为实现上述目的,本发明采用如下的技术方案一种PCI系统故障诊断方法,包括待测PCI系统执行预先设定的PCI总线故障诊断操作;采集待测PCI系统操作过程中PCI总线上的数据,根据采集的数据确定PCI总线的故障位置。
较佳地,所述PCI总线故障诊断操作包括控制接口线诊断操作、地址数据AD线诊断操作和命令字节使能CBE线诊断操作中的一种或任意组合。
较佳地,所述控制接口线诊断操作为进行任意的写操作;采集控制接口线诊断操作过程中PCI总线上的数据为采集所述写操作过程中数据期内的数据;根据控制接口线诊断操作的采集数据确定PCI总线的故障位置为若能够识别出操作类型,则确定PCI总线的控制接口线正常,否则,确定PCI总线的控制接口线故障。
较佳地,所述AD线诊断操作为依次写指定数据的写操作;采集AD线诊断操作过程中PCI总线上的数据为采集所述写操作过程中数据期内AD线上的数据;根据AD线诊断操作的采集数据确定PCI总线的故障位置为比较所述写操作的预期数据与写操作过程中数据期内的采集数据,根据该比较结果确定AD线是否出现故障以及故障位置。
较佳地,所述CBE线诊断操作为依次以指定配置字进行的写操作;采集CBE线诊断操作过程中PCI总线上的数据为采集所述写操作过程中数据期内CBE线上的数据;根据CBE线诊断操作的采集数据确定PCI总线的故障类型和位置为比较所述写操作的预期数据与写操作过程中数据期内的采集数据,根据该比较结果确定CBE线是否出现故障以及故障位置。
较佳地,该方法进一步包括在确定PCI总线诊断无故障时,待测PCI系统的CPU执行预先设定的PCI设备侧故障诊断操作,采集PCI设备侧诊断操作过程中PCI总线上的数据,根据采集数据确定PCI设备侧的故障位置。
较佳地,所述PCI设备侧故障诊断操作为PCI设备扫描操作、控制接口支路诊断操作、AD线支路诊断操作和CBE线支路诊断操作中的一种或任意组合。
较佳地,所述PCI设备扫描操作为读取各个PCI设备的厂商标识Vendor ID、设备标识Device ID、类型码Class code和版本标识Revision ID;采集PCI设备扫描操作过程中PCI总线上的数据为采集所述读操作过程中数据期内AD线上的数据;根据任意PCI设备扫描操作的采集数据确定PCI设备的故障类型和位置为比较该PCI设备扫描操作的预期数据与读操作过程中数据期内的采集数据,当二者不一致时,确定该PCI设备不在位。
较佳地,所述控制接口诊断操作为向各个PCI设备的指定可读写寄存器写入数据,再从该寄存器中读出数据;采集控制接口诊断操作过程中PCI总线上的数据为采集所述读操作过程中数据期内的数据;根据控制接口诊断操作的采集数据确定PCI总线的故障位置为若在读操作的数据期内采集到数据,则确定控制接口线的支路正常,否则,确定控制接口线的支路出现故障。
较佳地,所述AD线支路诊断操作为向各个PCI设备的指定可读写寄存器写入指定数据,再从该寄存器中读出数据;所述采集AD线支路诊断操作过程中PCI总线上的数据为分别采集所述读操作和写操作过程中数据期内AD线上的数据;根据AD线支路诊断操作的采集数据确定PCI设备的故障位置为对任意PCI设备,比较写操作和读操作过程中数据期内的采集数据,根据该比较结果确定该PCI设备及其所连AD线是否出现故障以及故障位置。
较佳地,所述CBE线支路诊断操作为向各个PCI设备的指定可读写寄存器以指定配置字写入数据,再从该寄存器中读出数据;所述CBE线支路诊断操作过程中PCI总线上的数据为采集所述写操作过程中数据期内CBE及AD线上的数据和读操作过程中数据期内AD线上的数据;所述CBE线支路诊断操作的采集数据确定PCI设备的故障位置为对任意PCI设备,根据写操作过程中数据期内AD线和CBE线上的采集数据确定待测系统的CPU希望写入所述指定寄存器的数据,比较该希望写入的数据与读操作过程中数据期内AD线上的数据,确定该PCI设备及其所连CBE线是否出现故障以及故障位置。
较佳地,在确定所述故障位置时,进一步包括确定所述故障的类型。
较佳地,当所述待测PCI系统中包括多级PCI总线时,按照PCI总线从上到下的级连顺序,针对每一级PCI总线分别进行所述的执行、采集和确定的步骤。
一种PCI系统故障诊断设备,包括PCI接口模块、数据采集模块和处理模块;所述PCI接口模块,分别与所述数据采集模块和待测系统的PCI总线相连;所述数据采集模块,用于采集诊断操作过程中PCI总线上的数据,并提供给所述处理模块;所述处理模块,用于对所述数据采集模块中的采集数据进行分析处理,确定PCI系统的故障位置。
较佳地,所述设备进一步包括故障信息提供模块,用于提供采集数据和故障诊断结果;所述处理模块,进一步用于将采集数据和故障诊断结果发送给所述故障信息提供模块。
较佳地,所述设备进一步包括与所述处理模块相连的接口模块,用于接收所述处理模块发送的数据,并将该数据发送到计算机系统中进行综合处理及显示;所述处理模块,进一步用于将所述采集数据和故障诊断结果发送给所述接口模块。
较佳地,所述处理模块,进一步用于根据所述分析处理,确定PCI系统的故障类型。
一种PCI系统故障诊断系统,该系统包括待测PCI系统,所述待测PCI系统包括PCI总线、PCI设备和中央处理单元CPU,该诊断系统进一步包括与待测PCI系统的PCI总线相连的PCI系统故障诊断设备、与待测PCI系统的CPU相连的存储模块;所述存储模块,用于存储预先设定的PCI总线故障诊断操作内容;所述待测PCI系统的CPU,用于调用并执行所述存储模块中存储的PCI总线故障诊断操作,向PCI总线发送数据;
所述PCI系统故障诊断设备,用于采集PCI总线故障诊断操作过程中PCI总线上的数据,确定PCI总线的故障位置。
较佳地,所述存储模块,进一步用于存储预先设定的PCI设备侧故障诊断操作内容;所述待测PCI系统的CPU,进一步用于调用并执行所述存储模块中存储的PCI设备侧故障诊断操作;所述PCI系统故障诊断设备,进一步用于采集PCI设备侧故障诊断操作过程中PCI总线上的数据,确定PCI设备侧的故障位置。
较佳地,所述存储模块为独立的设备,或者位于所述待测PCI系统内部。
由上述技术方案可见,本发明中,由待测PCI系统和PCI系统故障诊断设备共同构成诊断系统,在该诊断系统中,PCI系统故障诊断设备与待测PCI系统的PCI总线相连,以便PCI系统故障诊断设备采集PCI总线上的数据。在进行故障诊断过程中,待测系统的CPU根据预先设定执行PCI总线故障诊断操作,PCI系统故障诊断设备采集上述操作过程中PCI总线上的数据,根据预设操作与实际采集数据间的对比判断PCI总线是否出现故障以及该故障的故障类型和具体位置。可以看出,本发明利用PCI系统故障诊断设备采集PCI总线上的数据,并与预先设定的故障诊断操作结合,能够得到PCI总线上的目标数据和实际传输数据,并通过对二者的综合分析,对PCI总线故障进行准确定位。
更进一步地,在确定PCI总线诊断无故障后,待测系统的CPU还可以进一步执行预先设定的PCI设备侧诊断操作,PCI系统故障诊断设备采集该操作中PCI总线上的数据,根据该采集数据判断PCI设备和PCI干线支路是否出现故障以及显示该故障的故障类型和具体位置。这样,即可以将PCI总线诊断和PCI设备侧诊断进行分离,并通过首先进行PCI总线诊断确保总线干路无故障后,再进行PCI设备侧诊断,从而保证关于PCI设备侧故障的准确定位。
总之,利用本发明的方案能够高效地实现对PCI总线故障进行快速准确定位,并可以进一步显示故障类型以及精确故障位置,定位简单、准确、直观。


图1为本发明提供的PCI系统故障诊断系统的总体结构图。
图2为本发明提供的PCI系统故障诊断设备的总体结构图。
图3为本发明提供的PCI系统故障诊断设备较佳实施例的具体结构图。
图4为本发明提供的PCI系统故障诊断方法的总体流程图。
图5为本发明提供的PCI系统故障诊断方法的较佳实施例的具体流程图。
具体实施例方式
为使本发明的目的、技术手段和优点更加清楚明白,以下结合附图,并举实施例,对本发明作进一步详细说明。
本发明的基本思想是当PCI系统出现故障时,令PCI系统中的CPU执行故障诊断程序,在PCI总线上采集数据,以对PCI总线故障进行诊断和定位。
图1为本发明提供的PCI系统故障诊断系统的总体结构图。如图1所示,该系统包括待测的PCI系统、存储模块和PCI系统故障诊断设备。其中,待测的PCI系统包括CPU、PCI总线,PCI系统故障诊断设备与PCI系统中的PCI总线相连,存储模块与PCI系统中的CPU相连。
在上述PCI系统故障诊断系统中,存储模块,用于存储预先设定的PCI总线故障诊断操作内容。待测PCI系统的CPU,用于调用并执行存储模块中存储的PCI总线故障诊断操作,向PCI总线发送数据。PCI系统故障诊断设备用于采集诊断操作过程中PCI总线上的数据,确定PCI系统的故障位置。
上述为本发明中PCI系统故障诊断系统的总体结构以及其实现的基本功能。更进一步地,为达到更好的故障诊断效果,图1中待测PCI系统中包括至少一个待测的PCI设备,存储模块可以进一步存储预先设定的PCI设备侧故障诊断操作;待测PCI系统中的CPU,还可以进一步调用并执行存储模块中存储的PCI设备侧故障诊断操作;PCI系统故障诊断设备相应地,可以进一步采集PCI设备侧故障诊断操作过程中PCI总线上的数据,用以确定PCI设备侧的故障位置。这样,通过该图1中的PCI系统故障诊断系统即可以实现PCI总线和设备侧的故障诊断,从而使诊断更加全面。在实际应用中,存储模块可以是一个单独的存储设备,也可以是位于待测PCI系统中的模块,例如可以是待测PCI系统中的BOOTROM。
本发明还提供了PCI系统故障诊断设备,可以应用于图1所示的PCI系统故障诊断系统中,图2即为该设备的总体结构图。如图2所示,该设备包括PCI接口模块、数据采集模块和处理模块。其中,PCI接口模块分别与数据采集模块和待测PCI系统中的PCI总线相连;数据采集模块,用于采集诊断操作过程中PCI总线上的数据,并提供给处理模块;处理模块,用于对数据采集模块中的采集数据进行分析处理,确定PCI系统的故障位置。
图3为本发明提供的PCI系统故障诊断设备的较佳实施例的具体结构图。如图3所示,该设备包括PCI接口(PCI PORT)、FPGA、双口RAM(Dual-Port RAM)、Flash、实时时钟(Real Time Clock)、CPU、LCD和RS-232。其中,PCI接口为图2中的PCI接口模块的具体实现,FPGA和双口RAM为图2中的数据采集模块的具体实现,CPU为图1中处理模块的具体实现。另外,图3中的PCI系统故障诊断设备还包括了存储CPU中运行程序的Flash和提供故障诊断结果的LCD,以及用于提供时间戳的实时时钟和用于上报诊断结果的RS-232,可以提供采集数据的准确时间和实现故障诊断结果的上报,从而丰富了故障诊断设备的功能。
具体地,在该设备中,PCI接口与PCI总线连接,FPGA用于采集与PCI接口相连的PCI总线上的数据,并将采集数据存储到双口RAM中;双口RAM用于将FPGA采集的数据提供给CPU进行处理;Flash用于存储PCI系统故障诊断设备的固件程序;实时时钟用于为操作提供时间戳;CPU用于对双口RAM提供的采集数据进行分析,确定待测PCI系统的故障类型和位置,并将采集数据和故障诊断结果提供给LCD和RS-232;LCD用于显示采集数据和故障诊断结果;RS-232用于将CPU的故障诊断结果上报到其它计算机中,以利用计算机的综合处理能力方便地对故障进行进一步地分析。当然,在具体实施中,用于提供故障诊断结果的模块还可以为其它形式,例如提供语音提示的模块和打印故障结果的模块等。
上述即为本发明提供的PCI系统故障诊断设备的具体实施方式
,可以将该PCI系统故障诊断设备应用于图1所示的PCI系统故障诊断系统中,从而实现对待测PCI系统的故障诊断。
另外,本发明又提供一种PCI系统故障诊断方法,该方法可以利用图1所示的PCI系统故障诊断系统和图2所示的PCI系统故障诊断设备来实施。图4即为该方法的总体流程图。如图4所示,该方法包括步骤401,待测系统执行预先设定的PCI总线故障诊断操作。
本步骤中,待测系统根据待测的PCI信号线,执行预先设定的读/写操作,以测试该信号线是否正常。
步骤402,采集步骤401的操作过程中PCI总线上的数据,根据该采集数据,确定并显示PCI总线的故障位置。
至此,本发明最基本的PCI系统故障诊断方法流程结束。由上述可见,本发明中对PCI系统的故障诊断需要待测系统中的CPU执行相应的诊断操作,并结合PCI故障诊断设备对采集数据的合理分析来完成。其中,优选地,CPU执行的诊断操作可以通过在启动程序中写入相关的故障诊断程序,则待测系统的CPU即可以按照故障诊断程序的设定执行相应的诊断操作。
经过上述步骤能够诊断PCI总线上的绝大部分故障,但是对于在PCI总线的支路部分出现的开路故障却无法诊断,为更全面地诊断线路和设备故障,优选地,本发明在上述步骤402后,还可以进一步包括图4中虚线框内的步骤步骤403,判断PCI总线诊断是否出现故障,若是,则排除故障后执行步骤404,否则直接执行步骤404。
由于PCI总线干路故障必然导致对支路和设备的读写出现错误,因此对于PCI总线的支路和PCI设备的故障诊断,优选在PCI总线诊断无故障后进行。
步骤404,待测系统执行预先设定的PCI设备侧故障诊断操作,PCI故障诊断设备采集该操作过程中PCI总线上的数据,根据该采集数据确定PCI设备侧的故障位置。
本步骤中,待测系统根据要进行故障诊断的PCI设备侧管脚及相应的信号线,执行预先设定的读/写操作,以测试该管脚及相应的信号线是否正常。
至此,本发明优选的PCI系统故障诊断的总体流程结束。上述为对本发明PCI系统故障诊断方法的总体概述,由上述流程可以看出,故障诊断优选地分两个阶段进行,分别为PCI总线诊断和PCI设备侧诊断。其中,在具体实施上述流程时,PCI总线诊断阶段能够对PCI总线的干路故障进行诊断,确定故障类型和故障线号;并在发现故障后,暂时中止故障诊断,根据确定的故障类型和线号排除故障后继续PCI设备侧诊断。在PCI设备侧诊断阶段,能够对PCI设备和PCI总线的支路故障进行诊断,确定故障类型和故障线号,并进行显示。
图5为本发明提供的PCI系统故障诊断方法的较佳实施例的具体流程图。在该实施例中,为达到最佳的故障诊断效果,对上述优选的包括两个故障诊断阶段的PCI系统故障诊断方法进行详细描述。事实上,对于基本的只包括PCI总线诊断阶段的具体实施,与优选方式中总线诊断阶段的实施相同。另外,本发明实施例尤其适用于无法正确初始化的PCI系统进行故障诊断,因此优选地在初始化前进行上述故障诊断过程,使各个PCI设备均处于原始状态,不会受PCI设备自身执行业务和初始化配置的影响,反映该设备和总线的固有特性,更易于判断故障发生的位置和类型。
在执行具体的方法流程前,将PCI系统故障诊断设备连接到待测PCI系统中待测PCI总线的末端。为使覆盖范围达到最大,将PCI系统故障诊断设备置于待测PCI总线末端槽位。待测PCI系统可能是盒式交换机和机架式设备等。在实际操作中,对于PCI总线架构固定的盒式交换机以及没有PCI总线接口的机架式设备,PCI系统故障诊断设备需连接在待测PCI总线末端;对于机架式设备,PCI系统故障诊断设备应置于背板连接器末端槽位。然后,待测PCI总线建立连接,进入PCI故障诊断流程。
如图5所示,该方法流程包括如下步骤步骤501,待测系统的CPU执行PCI总线的控制接口诊断操作,PCI系统故障诊断设备采集总线数据,判断控制接口是否正常,并显示诊断结果。
本步骤中,PCI总线的控制接口线包括STOP#、FRAME#、IRDY#、DEVSEL#和TRDY#。对该控制接口线的操作可以为CPU发起的任意写操作。
根据PCI系统故障诊断设备在PCI总线上采集的数据判断,若能识别出操作类型为“配置写”,则确定控制接口正常,否则确定并显示控制接口故障。
设备维护人员根据显示的故障信息即确定STOP#、FRAME#、IRDY#、DEVSEL#和TRDY#中的一个或几个出现故障,再具体测量这些控制接口信号,并进行故障排除。
步骤502,待测系统的CPU执行地址数据(AD)线诊断操作,PCI系统故障诊断设备采集操作过程中的总线数据,通过对该数据进行分析判断AD线是否出现故障以及故障类型和位置。
本步骤中,对PCI_AD[31:0]线进行诊断。具体进行的诊断操作可以为按照预先设定,分别以“走步1”和“走步0”的方式对一固定地址进行写操作。PCI系统故障诊断设备采集上述操作过程中的数据,将数据期中采集到的数据与分析软件中记录的预期数据进行比较,通过对该结果进行分析确定故障类型和线号。其中,走步1算法的初始测试矢量为0,0,0,...,1,然后让1顺序移位,所以称为走步1算法。走步0算法的初始测试矢量为1,1,1,...,0,然后让0顺序移位,所以称为走步0算法。
在本实施例中,由于PCI系统故障诊断设备与其它计算机可以通过RS-232相连,因此,将PCI系统故障诊断设备采集的PCI数据通过RS-232发送到其它计算机中。如果线路无故障,接收到的PCI数据具体如表1显示。

表1在表1中,Num列表示操作序号;Operate列表示操作类型;Address列表示操作地址;Con列表示配置字;State列表示当前操作状态;Data列表示操作数据。因为PCI总线上的AD线数目为32,则这两种算法需要的测试矢量个数为64。
由于线路故障,PCI总线上采集的数据有可能出现表2的情况。

表2PCI系统故障诊断设备的CPU中运行的固件程序将FPGA在数据期内采集的数据(即表2中Data列中的数据)与预期结果(表1中Data列中的数据)对比,当二者不一致时,确定出现故障,并且两个数据中不同的比特位即对应于出现故障的信号线。进一步地,根据多次采集结果的统计状况,可以确定故障类型。具体地,如图2所示,发现000b、000c、002b、002c操作不正确,并且AD10和AD11对应的比特出现与预期结果不一致的状况,则确定AD10和AD11出现故障。进一步地,通过多次采集结果的统计发现,AD10和AD11的高低电平始终相同,则认为PCI总线AD10、AD11出现桥接短路故障,并且在LCD上进行显示,也可以通过RS-232发送到其它计算机,在PCI诊断结果显示界面中如表3所示显示故障类型和故障线号。

表3在表3中,Fault Type列表示故障类型;BUS Num列表示诊断总线号;Position列表示故障位置;Bit列表示故障线号。
又如PCI总线操作数据显示界面中显示采集的PCI总线数据如表4所示。

表4在本实施例中,仅将数据期内采集的PCI_AD[31:0]数据与预期数据进行比较,也就是只将Data列对应的数据作比较,不考虑地址期内的数据。经过将表4中Data列的数据与表1中Data列的数据进行对比发现,AD11对应的比特与预期结果不同,则确定AD11出现故障。进一步地,通过多次采集结果的统计发现,AD11始终为低电平,则确定PCI总线的始端匹配电阻及干路部分AD11出现固定开路故障,并且在PCI诊断结果显示界面中显示

表5上述利用走步1和走步0的方式进行数据对比确定故障类型的规则与现有技术相同。并且,本领域技术人员能够理解,走步1算法对固定逻辑0故障(Stuck-at fault)和桥接短路故障(Short fault)的故障覆盖率是100%,走步0算法对固定逻辑1故障(Stuck-at fault)和桥接短路故障(Short fault)的故障覆盖率也是100%,而固定开路故障常表现为固定逻辑1故障或固定逻辑0故障,所以同时应用走步1算法和走步0算法能对地址线的固定逻辑故障、固定开路故障和桥接短路故障进行完备测试。以PCI_AD[3:0]为例,完备故障诊断判据如下

表6如上所述,对PCI_AD[31:0]进行诊断,对采集数据进行分析后显示故障类型和位置。维修人员即可以根据该故障诊断结果进行故障排除,其中,对于桥接短路故障,既可能由PCI总线干路及始端匹配电阻短路造成,也可能由PCI总线支路及终端匹配电阻短路造成,因此,对于桥接短路故障,要对AD的全线路进行测试排查;同理,固定逻辑故障,也可能由PCI总线干路或支路造成,要对全线路测试排查;对于固定开路故障,在PCI总线诊断阶段诊断到的固定开路故障,则必然是由PCI总线干路及始端匹配电阻虚焊等造成,因此只需要对AD的干路部分进行测试排查。换个角度来看,PCI总线诊断过程中,能够诊断出线路中任意位置的桥接短路和固定逻辑故障,包括确定故障类型和确定线号,此外,还能够诊断出线路中干路部分出现的开路故障。
依照上述方式即可以实现AD线的故障诊断。
步骤503,待测系统的CPU执行命令字节使能(CBE)线诊断操作,PCI系统故障诊断设备采集操作过程中的总线数据,通过对该数据进行分析判断CBE线是否出现故障以及故障类型和位置。
本步骤中,对CBE线进行诊断的操作与诊断AD线的方式相同。具体地,按照预先设定,在向一固定地址执行写操作时,以“走步1”和“走步0”的变化写操作的配置字。例如,若无故障,在PCI总线操作数据显示界面将如表7显示。

表7在表7中以写入00000000H为例说明,实际上,可以写入任意数据,只要保证配置字以走步1和走步0方式变化即可。
通过将上述的CBE线采集数据(即表6中Con列的配置字)与预期数据(即表1中Con列数据)进行比较,对固定开路故障(Stuck-open fault)、桥接短路故障(Short fault)和固定逻辑故障(Stuck-at fault)的故障覆盖率是100%,并且在PCI诊断结果显示界面中显示故障线号、故障类型。具体确定故障类型和线号的规则与前述AD线中的情况相同,这里就不再赘述。
以上诊断可以覆盖BUS0始端匹配电阻和干路。待确定PCI总线测试无故障后,再进行后续的PCI设备侧故障诊断操作,这样能够保证干路部分无故障,以便于定位设备侧故障。具体操作执行以下步骤步骤504,对待测总线上的PCI设备进行扫描。
本步骤中,读取PCI设备的Vendor ID、Device ID、Class code和RevisionID,PCI系统故障诊断设备中的CPU将FPGA采集的数据与预期结果进行对比,可以识别出PCI设备是否在位。例如,在PCI总线操作数据显示界面中显示采集到的PCI数据如表8所示。


表8其中偏移量为00H的寄存器为Vendor ID和Device ID寄存器;偏移量为08H的寄存器为Class code和Revision ID寄存器。
但是对于芯片局部失效(故障率很低),此项诊断无法覆盖。例如可以读出PCI设备的Vendor ID等,但是芯片的自身功能失效,此时测试无法诊断出芯片故障。
本步骤对PCI设备进行一个大致的诊断,探测能否正确读取PCI设备的ID。由于设备侧的诊断是在PCI总线诊断无故障时进行的,因此若无法正确读取PCI设备的ID,则可以断定是PCI设备或PCI总线支路出现故障。接下来,对PCI设备侧进行完备性故障诊断。
步骤505,待测系统的CPU执行PCI设备侧的控制接口信号线的支路诊断操作,PCI系统故障诊断设备采集操作过程中的总线数据,通过对该数据进行分析判断各个PCI总线支路及PCI设备的AD线是否出现故障以及故障类型和位置。
本步骤中,进行的控制接口信号线的支路诊断操作可以为向各个PCI设备的指定读写(R/W)寄存器进行先写后读的操作,判断是否能够在读操作的数据期采集到数据,若是,则表明控制接口信号线的支路部分无故障。
步骤506,待测系统的CPU执行PCI设备侧的AD线支路诊断操作,PCI系统故障诊断设备采集操作过程中的总线数据,通过对该数据进行分析判断各个PCI总线支路及PCI设备的AD线是否出现故障以及故障类型和位置。
本步骤中,进行的AD线支路诊断操作可以为向各个PCI设备的指定R/W寄存器进行先写后读的操作,然后比较读写过程中数据期内采集到的数据,通过分析该比较结果,判断AD线的支路部分及各个PCI设备的AD管脚是否故障以及故障类型和故障位置。
在写操作过程中,数据期中PCI总线上的数据是由PCI系统的CPU发送的,也就是最初要写入的数据,当PCI总线的支路AD线出现开路故障时,PCI系统故障诊断设备在数据期采集的数据不会受到影响。但是写入指定寄存器的数据会受到影响,又因为读操作过程的数据期中PCI总线上的数据是由PCI设备发送到总线上的,因此PCI系统故障诊断设备在读操作的数据期采集的数据为PCI设备指定寄存器中的数据。由于PCI总线诊断已经无故障,当对比二者出现差异时,则说明CPU希望写入的数据与实际写入的数据不一致,另外支路的桥接短路和固定逻辑故障在PCI总线诊断过程中均能够被发现并排除,因此此时诊断出的故障均为开路故障。
在写入数据的选择上,优选地,以“走步1”和“走步0”的方式设置写入的数据。以选取偏移量为18h的R/W寄存器进行写、读操作为例,在PCI总线操作数据显示界面中显示如表9所示数据。


表9根据上述写入数据的方式确定故障类型和故障位置的方法与步骤502中的相同,这里就不再赘述。
步骤507,待测系统的CPU执行PCI设备侧的CBE线支路诊断操作,PCI系统故障诊断设备采集操作过程中的总线数据,通过对该数据进行分析判断各个PCI总线支路及PCI设备的CBE线是否出现故障以及故障类型和位置。
本步骤中,在进行CBE线的故障诊断时,需要对该PCI总线上连接的多个PCI设备逐个进行操作,并分析数据,从而获得各个PCI设备及其所连支路的故障状况。其中,对各个PCI设备进行的操作以及对数据的分析相同,这里以其中一个PCI设备为例,说明该故障诊断过程。
待测系统中的CPU执行的预先设定的操作可以为向PCI设备的指定R/W寄存器以指定配置字写入数据,再从该寄存器中读取数据。其中,数据期内CBE线上的数据为配置字,即指定数据线上的数据被使能的字节号。
PCI系统故障诊断设备在对PCI设备的写操作过程中,采集数据期内CBE和AD线上的数据,在读操作过程中,采集数据期内AD线上的数据。其中,在PCI总线无故障的前提下,根据写操作过程中数据期内采集的CBE线上的数据和AD线上的数据,能够确定CPU希望写入PCI设备1指定寄存器中的数据;在读操作过程中,数据期内采集的AD线上的数据为实际写入PCI设备指定寄存器的数据,将该实际写入的数据与确定的希望写入的数据进行比较,则可以确定CBE线是否故障以及故障类型和故障位置。
在配置字的选择上,优选地,以“走步1”和“走步0”的方式改变配置字,根据此种方式确定故障类型和故障位置是本领域技术人员能够实现的,这里就不再赘述。
在上述步骤505~507的操作中,对于包括终端匹配电阻的PCI系统,其故障覆盖率并不是100%,其原因是PCI的数据和地址线复用,当向指定寄存器写数据时,可能由于地址线的故障使得PCI设备接收到的寄存器地址与CPU希望写入的寄存器地址不同,这时,若PCI设备识别的寄存器为只读寄存器时,从该寄存器中读出的数据并不是预期写入的数据,此时判断的结果是错误的,则故障无法定位。
通过上述诊断即完成了对某条PCI总线及其相连PCI设备的故障诊断。
维修人员根据该诊断结果,就能够有针对性地对故障进行排除,大大减轻了维修人员的工作量。
在某些PCI系统中,可能存在通过PCI桥连接的多级PCI总线,这时,对每一级的PCI总线均采用上述步骤501~507的过程进行故障诊断。在具有多级PCI总线的PCI系统中,上级PCI总线的故障可能会影响其下级的数据传输,也就是说,即使下级PCI总线及其相连的设备无故障,上级PCI总线的故障也会造成下级PCI线路上的数据传输出现错误。因此,在对具有多级PCI总线的PCI系统进行故障诊断时,较佳地,首先进行上级PCI总线的诊断,在确保该PCI总线无故障后,逐级向下进行各级PCI总线的故障诊断。
由上述对本发明具体实施方式
的描述可以看出,本发明利用待测系统的CPU和连接于PCI总线上的PCI系统故障诊断设备相结合,能够对PCI系统故障进行快速准确定位,并能够显示故障类型和精确故障位置,实现简单。
本发明的技术方案最初是针对于PCI系统不能正确进行初始化时如何准确定位故障类型和位置而设计的。由于此类故障通常是由控制接口信号、AD线和CBE线或相应设备管脚的故障造成,因此在上述本发明的具体实施方式
中,对这些信号线的故障诊断进行了详细描述。若能保证上述信号无故障,则该PCI系统一般不会发生初始化错误的问题。对于其它信号线的故障诊断,可以依据现有的方式在PCI系统正常初始化后进行。当然,本发明的技术方案对于能够正确初始化的PCI系统的故障诊断同样适用。
以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种PCI系统故障诊断方法,其特征在于,该方法包括待测PCI系统执行预先设定的PCI总线故障诊断操作;采集待测PCI系统操作过程中PCI总线上的数据,根据采集的数据确定PCI总线的故障位置。
2.根据权利要求1所述的方法,其特征在于,所述PCI总线故障诊断操作包括控制接口线诊断操作、地址数据AD线诊断操作和命令字节使能CBE线诊断操作中的一种或任意组合。
3.根据权利要求2所述的方法,其特征在于,所述控制接口线诊断操作为进行任意的写操作;采集控制接口线诊断操作过程中PCI总线上的数据为采集所述写操作过程中数据期内的数据;根据控制接口线诊断操作的采集数据确定PCI总线的故障位置为若能够识别出操作类型,则确定PCI总线的控制接口线正常,否则,确定PCI总线的控制接口线故障。
4.根据权利要求2所述的方法,其特征在于,所述AD线诊断操作为依次写指定数据的写操作;采集AD线诊断操作过程中PCI总线上的数据为采集所述写操作过程中数据期内AD线上的数据;根据AD线诊断操作的采集数据确定PCI总线的故障位置为比较所述写操作的预期数据与写操作过程中数据期内的采集数据,根据该比较结果确定AD线是否出现故障以及故障位置。
5.根据权利要求2所述的方法,其特征在于,所述CBE线诊断操作为依次以指定配置字进行的写操作;采集CBE线诊断操作过程中PCI总线上的数据为采集所述写操作过程中数据期内CBE线上的数据;根据CBE线诊断操作的采集数据确定PCI总线的故障类型和位置为比较所述写操作的预期数据与写操作过程中数据期内的采集数据,根据该比较结果确定CBE线是否出现故障以及故障位置。
6.根据权利要求1到5中任一所述的方法,其特征在于,该方法进一步包括在确定PCI总线诊断无故障时,待测PCI系统执行预先设定的PCI设备侧故障诊断操作,采集PCI设备侧诊断操作过程中PCI总线上的数据,根据采集数据确定PCI设备侧的故障位置。
7.根据权利要求6所述的方法,其特征在于,所述PCI设备侧故障诊断操作为PCI设备扫描操作、控制接口支路诊断操作、AD线支路诊断操作和CBE线支路诊断操作中的一种或任意组合。
8.根据权利要求7所述的方法,其特征在于,所述PCI设备扫描操作为读取各个PCI设备的厂商标识Vendor ID、设备标识Device ID、类型码Class code和版本标识Revision ID;采集PCI设备扫描操作过程中PCI总线上的数据为采集所述读操作过程中数据期内AD线上的数据;根据任意PCI设备扫描操作的采集数据确定PCI设备的故障类型和位置为比较该PCI设备扫描操作的预期数据与读操作过程中数据期内的采集数据,当二者不一致时,确定该PCI设备不在位。
9.根据权利要求7所述的方法,其特征在于,所述控制接口诊断操作为向各个PCI设备的指定可读写寄存器写入数据,再从该寄存器中读出数据;采集控制接口诊断操作过程中PCI总线上的数据为采集所述读操作过程中数据期内的数据;根据控制接口诊断操作的采集数据确定PCI总线的故障位置为若在读操作的数据期内采集到数据,则确定控制接口线的支路正常,否则,确定控制接口线的支路出现故障。
10.根据权利要求7所述的方法,其特征在于,所述AD线支路诊断操作为向各个PCI设备的指定可读写寄存器写入指定数据,再从该寄存器中读出数据;所述采集AD线支路诊断操作过程中PCI总线上的数据为分别采集所述读操作和写操作过程中数据期内AD线上的数据;根据AD线支路诊断操作的采集数据确定PCI设备的故障位置为对任意PCI设备,比较写操作和读操作过程中数据期内的采集数据,根据该比较结果确定该PCI设备及其所连AD线是否出现故障以及故障位置。
11.根据权利要求7所述的方法,其特征在于,所述CBE线支路诊断操作为向各个PCI设备的指定可读写寄存器以指定配置字写入数据,再从该寄存器中读出数据;所述CBE线支路诊断操作过程中PCI总线上的数据为采集所述写操作过程中数据期内CBE及AD线上的数据和读操作过程中数据期内AD线上的数据;所述CBE线支路诊断操作的采集数据确定PCI设备的故障位置为对任意PCI设备,根据写操作过程中数据期内AD线和CBE线上的采集数据确定待测系统的CPU希望写入所述指定寄存器的数据,比较该希望写入的数据与读操作过程中数据期内AD线上的数据,确定该PCI设备及其所连CBE线是否出现故障以及故障位置。
12.根据权利要求1、4、5、10或11所述的方法,其特征在于,在确定所述故障位置时,进一步包括确定所述故障的类型。
13.根据权利要求6所述的方法,其特征在于,当所述待测PCI系统中包括多级PCI总线时,按照PCI总线从上到下的级连顺序,针对每一级PCI总线分别进行所述的执行、采集和确定的步骤。
14.一种PCI系统故障诊断设备,其特征在于,该设备包括PCI接口模块、数据采集模块和处理模块;所述PCI接口模块,分别与所述数据采集模块和待测系统的PCI总线相连;所述数据采集模块,用于采集诊断操作过程中PCI总线上的数据,并提供给所述处理模块;所述处理模块,用于对所述数据采集模块中的采集数据进行分析处理,确定PCI系统的故障位置。
15.根据权利要求14所述的设备,其特征在于,所述设备进一步包括故障信息提供模块,用于提供采集数据和故障诊断结果;所述处理模块,进一步用于将采集数据和故障诊断结果发送给所述故障信息提供模块。
16.根据权利要求14或15所述的设备,其特征在于,所述设备进一步包括与所述处理模块相连的接口模块,用于接收所述处理模块发送的数据,并将该数据发送到计算机系统中进行综合处理及显示;所述处理模块,进一步用于将所述采集数据和故障诊断结果发送给所述接口模块。
17根据权利要求14或15所述的设备,其特征在于,所述处理模块,进一步用于根据所述分析处理,确定PCI系统的故障类型。
18.一种PCI系统故障诊断系统,该系统包括待测PCI系统,所述待测PCI系统包括PCI总线、PCI设备和中央处理单元CPU,其特征在于,该诊断系统进一步包括与待测PCI系统的PCI总线相连的PCI系统故障诊断设备、与待测PCI系统的CPU相连的存储模块;所述存储模块,用于存储预先设定的PCI总线故障诊断操作内容;所述待测PCI系统的CPU,用于调用并执行所述存储模块中存储的PCI总线故障诊断操作,向PCI总线发送数据;所述PCI系统故障诊断设备,用于采集PCI总线故障诊断操作过程中PCI总线上的数据,确定PCI总线的故障位置。
19.根据权利要求18所述的系统,其特征在于,所述存储模块,进一步用于存储预先设定的PCI设备侧故障诊断操作内容;所述待测PCI系统的CPU,进一步用于调用并执行所述存储模块中存储的PCI设备侧故障诊断操作;所述PCI系统故障诊断设备,进一步用于采集PCI设备侧故障诊断操作过程中PCI总线上的数据,确定PCI设备侧的故障位置。
20.根据权利要求18或19所述的系统,其特征在于,所述存储模块为独立的设备,或者位于所述待测PCI系统内部。
全文摘要
本发明公开了一种PCI系统故障诊断方法,包括待测系统执行预先设定的PCI总线故障诊断操作;采集操作过程中PCI总线上的数据,确定PCI总线的故障位置。本发明还公开了一种PCI系统故障诊断设备和系统。应用本发明,能够高效地对PCI总线故障进行定位。
文档编号G06F11/267GK101034365SQ20071009696
公开日2007年9月12日 申请日期2007年4月23日 优先权日2007年4月23日
发明者崔江虹, 李秀中, 苏勇, 鲁玉春 申请人:杭州华为三康技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1