分享

用下行链路实现远程边界扫描测试

 joysymbol 2007-03-24
作者:Marc van Houcke和Anthony Sparks,JTAG Technologies  发表时间:2007-02-01
 
将内部 IEEE 1149 架构与集成在产品中的通信端口链接起来,供外界使用。

  一段时间以来,工程师们按照 IEEE 1149.1 标准(亦称为“边界扫描”)在印制电路板上和完整的系统中建立测试架构。不幸的是,一旦产品离开生产线,工程师就无法实际使用五针的 IEEE 1149 连接器,或者针床测试仪上的五个测试点。因此,虽然设备可能仍然具备 IEEE 1149 测试能力,但工程师却无法使用它们。

  为绕开这个问题,可以将内部 IEEE 1149 结构连接到产品的通信端口上,供外界使用。这样,工程师们就无需实际接触到测试(或边界扫描)信号,通过 USB 端口、以太网端口、无线遥测信道,或其它媒介,与具有 IEEE 1149 能力的设备传递测试信息,例如卫星系统或远程嵌入系统。(工程师通常将顺从于 IEEE 1149 的这种技术叫做“边界扫描”或“JTAG”。JTAG 意为开发 IEEE 标准的联合测试行动小组。)

图1,远程IEEE 1149.1测试包括在测试控制器与待测设备之间放置上行链路模块和下行链路模块以及一个异步通信路径,如以太网络。


  这种技术需要的设计修改最少,只在要测试的系统即 DUT(待测设备)上增加一个下行链路模块。但是,对测试功能的重新远程接入会增加少量成本。其实现亦需要在接近边界

扫描控制器处有一个上行链路模块,这通常会采用一台 PC(图 1)。远程通信技术还可以并行测试多个远端系统(图 2),配一个 4合1 边界扫描 TAP(测试接入端口)。


  这些通信模块在某个协议(如传输控制协议/互联网协议 TCP/IP)和标准五线 IEEE 1149 信号之间转换,否则要将测试仪电气连接到目标系统。五线的边界扫描控制器直接连接到上行链路模块。而下行链路模块为目标系统的边界扫描设备提供五线连接。实际上,模块与通信链接对控制器和目标系统来说运行都是透明的。

远程通信技术还可以并行测试多个远端系统配一个 4合1 边界扫描 TAP(测试接入端口)


  保持测试软件

  目标系统的通信链接与硬件改动都要求不改变测试软件。增加的工具程序可用于建立通信,以及校准由于电缆长度或网络延迟所造成的任何收发延迟。这种方法用于 10 Gbps 以太网等通信介质可以在长距离上实现很高的测试速度。

  以太网 TCP/IP 这样的通信协议要优于直接边界扫描连接,尽管这似乎有点奇怪。首先,TCP/IP 含有误差检测,而 IEEE 1149.1 标准并未定义这种功能。因此,一旦发生通信错误,接收方可以请求重发。

  其次,用于 TCP/IP 通信的加密/解密软件有助于保护嵌入设计中或内含在边界扫描信息中的知识产权。同样,加密可以保护通过边界扫描通道向配置 FPGA 所传输的“位流”。

  如用硬件实现下行链路功能(也许采用一片廉价的 PLD,即可编程逻辑器件),则无需在目标系统中使用单独的 IEEE 1149.1 顺从性测试控制器。并且,由于通信介质对控制器和 DUT 是透明的,因此工程师可以连续使用相同的边界扫描测试向量。

  图 3 是一种典型的网络拓扑,它是一个制造设施中的通信与测试设备。这种远程测试配置提供了上行和下行链路模块的协议转换器。下行链路模块可以作为目标系统的一个组成部分,也可以外接到目标系统。

图 3 是一种典型的网络拓扑,它是一个制造设施中的通信与测试设备


  边界扫描操作发生在一个同步过程中(图4a)。测试控制器与 DUT 在 TCK(测试时钟)信号的上升沿上对所有输入采样。这些输入包括 DUT 的 TDI(测试数据输入)和 TMS(测试模式选择),以及测试控制器的 TDO(测试数据输出)。

边界扫描操作发生在一个同步过程中


  同样,控制器与 DUT 会在 TCK 信号的下降沿更新所有输出。这些输出包括 DUT 的 TDO,以及测试仪的 TDO和 TDI。TCK 的下降沿亦会使 DUT 移出其 TDO 信号。在 TCK 的下一个上升沿时,边界扫描控制器采样 TDO 信号以获得测试结果,每次一位。

  远程边界扫描操作需要在每个 TCK 周期内从控制器向目标系统只传送 TMS 和 TDI 位。下行链路模块在收到 TDI 和 TMS 信息时产生一个本地时钟。因此,上行链路并不向目标系统传送时钟信息。下行链路模块中的本地时钟只在测试期间使用,而在 DUT 正常运行时并不使用。

  本方案假定使用了误差检测与纠错。当收到一个有效信息包时,下行链路电路重新生成 TDI、TMS 和 TCK 信号,并将它们加到目标系统的边界扫描链上。作为回应,下行链路将有效 TDO 信号传送给上行链路,后者在测试控制器上对通信包进行译码,并对接收到的 TDO 信号同步,用于与预期 TDO 数据作比较。

  传播延迟的说明

  远程进行的边界扫描操作与直接五线连接方式在时序上有差别。在说明远程测试的时序以前,首先看一下直接连接时的传播延迟效应。

  边界扫描控制器的同步操作限制了连接控制器与目标DUT之间的电缆长度。允许的电缆长度与TCK信号的频率直接相关(图4b)。注意在 TCKTESTER (t1)和TCKTARGET (t2)信号之间存在着由于电缆中传播延迟所造成的延迟。在TCKTARGET(t2)上升沿,目标系统采样TMS和TDI线。在 TCKTARGET(t4)下降沿,目标系统更新自己的TDO输出,并将其放到电缆上。由于电缆中的延迟,新TDO信号在t5时到达控制器。测试控制器在 TCKTESTER(t6)上升沿采样新的TDO信息。这样,从目标系统的最后边界扫描输出到测试控制器的TDO 信号的传输时间,相当于TCK周期的一半。

  假定TCK频率为10MHz,或 100ns周期。此时,TDO数据必须在 50 ns 时间内从链路中的最后 DUT 传送至测试控制器。如果假定电缆的传播延迟为5 ns/m,则使用的电缆长度决不能超过10m。

  现在,假定有一个远程目标系统,并且无法控制延迟。如果网络连接造成100ms延迟,则必须使用只有5Hz (1/100 ms×1/2=5 Hz) 的TCK最高频率,这样会造成极长时间的测试。因此,如果一个系统要使用长电缆,或者经历网络延迟,则必须在不会显著减少测试时间情况下,找到一种克服延迟的方法。

 

  使TDO数据同步的虚拟单元

  为使 TCK 频率运行在一个合适速率上(依赖于通信信道的带

宽),并且考虑通信延迟,可以在目标系统 TDO 链的末端增加虚拟单元。这些单元并不存在,而只是通过调整测试软件,将这些不存在的单元包含在扫描链中。这样,测试软件会将收到的目标系统 TDO 数据延迟一个时间,使 TDO 数据移过这些附加的单元(图 5)。工具软件会测量传播延迟和通信链接的速度,以确定要在目标系统扫描链中增加的单元数量。


  考虑这样一个系统,其中从下行链路模块中收到 TDO 数据位的延迟为 1秒 ~ 2秒,而测试仪的 TCK 输出产生一个 4 MHz 时钟信号。此时,上行链路模块必须提供一个缓冲存储器,以保存收到的所有 TDO 信息,直到测试仪准备接收为止。缓冲区可能需要 4MB ~ 8MB存储容量,可以使用 DDR 存储器件。

图5,在边界扫描链的描述中增加虚拟单元,使测试控制器“延迟”TDO 信号的处理,延迟量相当于通信链路的传播延迟。这些单元在硬件中并不存在。图6,用一个FIFO存储器补偿实际的延迟。虚拟单元计数器减去一个在TCK周期中测得的延迟值。当计数器归零时,TDO数据移入测试控制器。


  在上行链路模块中,用 FIFO 内存缓冲 TDO 数据,并对测出的延迟作补偿(图 6)。一旦上行链路模块开始向下行链路模块发送有关的 TDI 信息,它就会根据以 TCK 周期表述的通信延迟值,装入虚拟单元计数器。

  与此同时,上行链路模块将从下行链路模块接收到的 TDO 位暂时储存在 FIFO 存储器中。每个 TCK 周期都会使虚拟单元计数器递减,直至为零。此时,控制器开始以 TCK 速率将累积的 TDO 位连续移出。通过这种 TDO 链中增加虚拟单元与 FIFO 的组合,TDO 位就能与测试控制器的 TDO 输入正确同步。

  我们的目标是以单个数据包有效地为多个测试应用传输测试数据。在上行链路译码过程中,可以将每个 TCK 周期的测试信息保存为一个 16 位块。这个 16 位块包含边界扫描信息(即 TDI、TMS 和可选信号),最多用于四个边界扫描链。为有效使用通信信道的带宽,下行链路模块逐一将每个链的四个 TDO 位都编码为一个 16 位块。

  为了确保下行链路模块只传送相关的 TDO 数据,该模块带有一个状态机,由它决定目标 TAP 何时处于移位状态。同样,上行链路模块也有一个状态机,实现与目标系统发生的事件同步。

  用这种方式,上行链路可以识别有效的 TDO 数据,并且只将有效位发送给测试控制器作比较。因此,上行链路模块可以用一种内含“虚拟元件”方法,对可能由于多个 TCK 周期造成的来回传输延迟作出补偿(图 5 及图 6)。

  测量延迟

  一个软件工具在上行链路模块和下行链路模块间建立起通信信道,它进行一个回环测试,以测量信道内的延迟。在延迟计算基础上,该工具为测试软件将“看到”的边界扫描链配置适当数量的虚拟单元。软件可以在计算中增加一些裕度,以确保一旦虚拟单元计数器归零时,FIFO 存储器能给出有效的 TDO 数据。在一个已知延迟的点对点信道中,软件工具可以方便地建立上行链路至下行链路的连接,并配置一个预设数量的虚拟单元。

  这种完成远程边界扫描测试的方法有局限性,因为需要将测试位的模式划分成独立的数据包,每个数据包的大小与所选的协议有关。这些数据包可能包含大比例的附加信息,从而降低传输的位效率。

  另外,该过程需要一个下行链路控制器,用于从每个数据包中提取 TDI 和 TMS 信息,并通过目标系统分送这些信号。下行链路亦必须在传送给测试控制器的上行链路以前,暂时储存得到的 TDO 数据。

参考文献
Reis, I and M Simonen, JTAG-testausj?rjestely, Finnish patent FI 110724 B, March 14, 2003.
Reis, I and M Simonen, JTAG Testing Arrangement, US pa
tent US 6807644 B2, Oct 19, 2004.
Reis, I and M Simonen, JTAG Testing Arrangement, European patent EP 1189070 B1, May 4, 2005.
Reis, I and M Simonen, JTAG-testilaitteisto ja-testausj?rjestelm?, Finnish utility model FI 5706, Feb 26, 2003.
Reis, I and M Simonen, JTAG Testing Arrangement, PCT (Patent Cooperation Treaty) patent application WO2004/046741 A1, June 3, 2004. 

 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多