一种双总线并行测试实现方法
技术领域
本发明属于电子***测试和故障诊断领域,特别涉及***、电路板多层次测试,可通过MTM(模块测试维护,Module Test and Maintenance)总线与边界扫描测试总线实现对***内电路板的分层测试。
背景技术
MTM总线是被制作在机箱(或子***)总线底板(backplane)上的一种主从式串行总线,用于在子***进行测试、诊断或维护时,MTM总线控制器板(主设备)与其他功能电路板(从设备)之间进行数据通信。这一总线为提高产品可测试性和可维护性设计提供了方便,可用于商用计算机、无线电通信设备、航空电子设备、武器***电子设备以及其他电子设备中。
随着微电子技术进入超大规模集成电路时代,电路的高度复杂性及多层印制板、表面贴装(SMT)、圆片规模集成(WSI)和多芯片模块(MCM)技术在电路***中的运用,使得电路节点的物理可访问性正逐步削减以至于消失,电路和***的可测试性急剧下降,测试费用在电路和***总费用中所占的比例在不断上升。针对电路的器件布局日益复杂、元器件复杂的封装、密集的管脚;线路板小型化、线越来越细等这些问题就会给电路的线路检测、线路板故障的检查以及排除带来很大的麻烦,用传统的ICT(线路检测设备)已经很难,而边界扫描技术则是解决这些问题的最优方法。
MTM总线侧重于***级应用,但具体到电路板并没有明确的测试方法,而边界扫描测试总线则侧重于电路板级应用,因此,将MTM总线与边界扫描测试总线有机结合,可实现***与电路板级的分层测试,有效提高整个***的测试和维护能力。
发明内容
有鉴于此,本发明主要的目的是在现有测试技术的基础上,提供一种双总线并行测试方法,以实现***与线路板级的分层测试能力。
为解决上述技术问题,本发明具体方法如下:
一种双总线并行测试实现方法,该方法包括:
步骤1:建立用于边界扫描测试的MTM主从结构;
①MTM主从结构包括一个MTM主控制器和多个MTM从控制器;MTM主控制器和MTM从控制器均接入MTM总线;MTM从控制器具有边界扫描测试总线,并通过边界扫描测试总线连接各自的至少一个被测对象;
②为每个MTM从控制器分配地址;
③确定MTM主控制器用于通知MTM从控制器当前需要执行边界扫描测试读写操作的数据读写命令;
④确定MTM主、从控制器在进行边界扫描测试通信时所使用的访问端口;
步骤2:分析边界扫描测试流程,确定测试步骤;分析每个测试步骤的边界扫描TAP状态转换过程,为每个状态转换分配一个操作码;
步骤3:边界扫描测试开始后,MTM主控制器按照MTM协议开始向被测对象所连接的MTM从控制器发送消息,每条消息承载一个TAP状态转换的操作码,几条消息组合起来对应一个测试步骤;消息中包括MTM从控制器地址、MTM从控制器与当前被测对象连接的接口编号即扫描链选择字段、数据读写命令、访问端口、操作码;对于测试步骤对应的最后一条消息,该消息中还包括边界扫描测试信息;
步骤4:MTM从控制器接收消息并进行解包,按照操作码转换TAP状态,同时将边界扫描测试信息按照边界扫描协议进行转换,产生JTAG信号,对被测对象进行边界扫描测试;
而且,MTM主控制器将每条消息分成多个数据包发送;MTM从控制器接收一条消息时,逐一接收消息中的数据包,每接收完一个数据包均立刻解析,并执行相应动作;
步骤5:MTM从控制器将边界扫描测试的数据结果返回给MTM主控制器。
如果所述测试步骤包括发送边界扫描测试指令和发送边界扫描测试数据;则所述步骤3和步骤4具体为:
(1)分析发送边界扫描测试指令时TAP初始与终止稳定状态为:首先由Test-Logic-Reset状态进入PAUSE-IR状态,设置对应的操作码为A;进入PAUSE-IR后,经过SHIFT-IR状态再返回PAUSE-IR,设置操作码为B;
(2)根据边界扫描测试的内容选择相应的边界扫描测试指令;
(3)在发送边界扫描测试指令时,先后发送第一条消息和第二条消息;第一条消息包括如下数据包:头包、访问端口包、扫描链选择字段包以及内容为A的操作码包;其中,所述头包是将所述读写操作命令和所述MTM从控制器地址按照MTM总线协议打包而得到的;第二条消息包括如下数据包:头包、访问端口包、扫描链选择字段包、内容为B的操作码包、边界扫描指令长度包、以及边界扫描测试指令包;
(4)MTM从控制器接收消息,解析出操作码和边界扫描测试指令并按照边界扫描测试总线协议产生JTAG信号;并且在接收消息过程中,每接收完一个数据包均立刻解析并执行相应动作;
(5)分析发送边界扫描测试数据时TAP初始与终止稳定状态为:首先由PAUSE-IR状态进入PAUSE-DR状态,设置对应的操作码为C;进入PAUSE-DR后,经过SHIFT-DR状态再返回PAUSE-DR,设置操作码为D;
(6)根据边界扫描测试的内容选择边界扫描测试数据;
(7)在发送边界扫描测试数据时,先后发送第三条消息和第四条消息;第一条消息包括如下数据包:头包、访问端口包、扫描链选择字段包以及内容为C的操作码包;第二条消息包括如下数据包:头包、访问端口包、扫描链选择字段包、内容为D的操作码包、边界扫描数据长度包、以及至少一包的边界扫描测试数据包;
(8)MTM从控制器接收消息,解析出操作码和边界扫描测试数据并按照边界扫描测试总线协议产生JTAG信号,对被测对象进行边界扫描测试;并且在接收消息过程中,每接收完一个数据包均立刻解析并执行相应动作;
其中,MTM总线层数据以数据包为单位串行发送,边界扫描测试总线层数据按位串行发送。
有益效果:
本发明将MTM总线与边界扫描测试总线有机结合,可实现***与电路板级的分层测试,有效提高整个***的测试和维护能力。而且,MTM总线层数据与边界扫描测试总线层数据是并行操作的,能够边接收数据边测试,从而提高测试效率。
附图说明
图1为本发明所述一种双总线并行测试方法的应用结构示意图;
图2为本发明实施例中的测试示例图。
具体实施方式
下面结合附图与具体实施方式对本发明作进一步详细说明。
本发明提供了一种双总线并行测试方法,包括如下步骤:
步骤1:建立用于边界扫描测试的MTM主从结构。
①如图1所示,MTM主从结构包括一个MTM主控制器和多个MTM从控制器,MTM主控制器和MTM从控制器均接入MTM总线,边界扫描测试总线可以为IEEE1149.1或IEEE1149.4或IEEE1149.6协议规定的总线。MTM从控制器具有边界扫描测试总线,并通过边界扫描测试总线连接各自的被测对象。对于8位的MTM从控制器来说,其可以有256个接口连接被测对象。
MTM总线层数据以消息包为单位串行发送,边界扫描测试总线层数据按位串行发送。MTM总线层数据以MCLK作为时钟进行操作,边界扫描测试总线层数据以TCK作为时钟进行操作。MTM总线层数据与边界扫描测试总线层数据是并行操作的。
本发明一实施例参考图2,图2中包含一个MTM主控制器、一个MTM从控制器、一个测试板,测试板包括一个FPGA芯片,那么MTM从控制器通过JTAG口连接FPGA芯片。边界扫描测试内容为读取FPGA芯片的IDCODE。
②为每个MTM从控制器分配地址为“00000001”。
③确定MTM主控制器用于通知MTM从控制器当前需要执行边界扫描测试读写操作的数据读写命令,当MTM从控制器接到该数据读写命令时,获知是在进行边界扫描测试,并需要执行读写操作。本实施例中,选取数据读写指令为“0100010”。
④确定MTM主、从控制器在进行边界扫描测试通信时所使用的访问端口。本实施例中,从0x0010~0x001F中选取一个作为所述访问端口。例如选择数据读写命令对应的边界扫描数据访问端口为0x0017,从而实现对边界扫描测试总线的访问。
步骤2:分析边界扫描测试流程,确定测试步骤;分析每个测试步骤的TAP(测试存取访问端口Test Access Port)状态转换过程,为每个状态转换分配一个操作码。
边界扫描测试流程的测试步骤通常包括:测试复位、发送边界扫描测试指令、发送边界扫描测试数据、等待、刷新数据等等。这其中,发送边界扫描测试指令和发送边界扫描测试数据是基本的测试步骤。
在测试步骤为发送边界扫描测试指令时,
首先由Test-Logic-Reset状态进入PAUSE-IR状态,对应的操作码为0x0003;
进入PAUSE-IR后,经过SHIFT-IR状态再返回PAUSE-IR,操作码为0x0005;
在测试步骤为发送边界扫描测试数据时,
首先由PAUSE-IR状态进入PAUSE-DR状态,对应的操作码为0x0002;
进入PAUSE-DR后,经过SHIFT-DR状态再返回PAUSE-DR,操作码同为0x0005;虽然操作码相同,但是转换前状态不同,因此可以区分。
步骤3~4:开始边界扫描测试。
MTM主控制器按照MTM协议开始向被测对象所连接的MTM从控制器发送消息,每条消息承载一个TAP状态转换的操作码,几条消息组合起来对应一个测试步骤;消息中包括MTM从控制器地址、扫描链选择字段(即MTM从控制器与当前被测对象连接的接口编号,一个从控制器可以多个被测对象,接口编号由用户在可选的范围内自定义即可)、数据读写命令、访问端口、操作码;对于测试步骤对应的最后一条消息,该消息中还包括边界扫描测试信息。MTM主控制器将一条消息分成多个数据包发送;
MTM从控制器接收消息并进行解包,按照操作码转换TAP状态,同时将边界扫描测试信息按照边界扫描协议进行转换,产生JTAG信号,对被测对象进行边界扫描测试。MTM从控制器接收一条消息时,逐一接收消息中的数据包,每接收完一个数据包均立刻解析,并执行相应动作。
具体来说,本边界扫描测试过程包括如下子步骤:
(1)MTM主控制器的读写操作命令为“0100010”,结合MTM从控制器地址,按照MTM总线协议打包为头包数据0x0144。
(2)获取访问端口0017。
(3)测试板只有一个FPGA,构成一条扫描链,扫描链选择为0x0000。
(4)根据发送边界扫描测试指令时TAP初始与终止稳定状态,首先需由Test-Logic-Reset状态进入PAUSE-IR状态,因此确定操作码为0x0003。从而发送如下第一条消息。
第一条消息:
(5)进入PAUSE-IR后,需要经过SHIFT-IR,返回PAUSE-IR状态,因此确定操作码为0x0005。
(6)对FPGA执行的边界扫描测试为读取IDCODE,将边界扫描测试指令按照MTM总线协议打包为0x2400,测试指令包长度为0x0001。从而发送如下第二条消息。
第二条消息:
(7)MTM从控制器接收消息,解析出操作码和边界扫描测试指令并按照边界扫描测试总线协议产生JTAG信号;并且在接收消息过程中,每接收完一个数据包均立刻解析并执行相应动作。
(8)发送边界扫描测试数据时,首先需由PAUSE-IR状态进入PAUSE-DR状态,因此确定操作码为0x0002。从而发送如下第三条消息。
第三条消息:
(9)进入PAUSE-DR后,需要经过SHIFT-DR,返回PAUSE-DR状态,因此确定操作码为0x0005。
(10)读取IDCODE数据的长度为32bits,因此包长度为0x0002,数据位0x0000,0x0000。因此发送第四条消息。
第四条消息:
(11)MTM从控制器将接收消息,解析出操作码和边界扫描测试数据并按照边界扫描测试总线协议产生JTAG信号,对被测对象进行边界扫描测试;并且在接收消息过程中,每接收完一个数据包均立刻解析并执行相应动作。
步骤5、MTM从控制器将IDCODE测试结果返回给MTM主控制器,由MTM主控制器发送回计算机进行后续分析处理。
至此,本流程结束。
这里要说明的是,MTM从控制器接收一条消息时,逐一接收消息中的数据包,每接到一个数据包均立刻解析,并执行所要求的测试动作;而并非等到完全接收完整的一条消息后,再进行解析和测试,也就是说MTM总线层数据与边界扫描测试总线层数据是并行操作的,边接收边测试,从而提高测试速度。
综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。