高级JTAG指南

引言

JTAG是一项已经成熟的技术(和工业标准)而它的潜能如今才开始被完全发掘。连接测试和在线烧写(ISP)是两个经常与JTAG联系起来的应用,但是它还有更多的应用价值。

尽管我们不在这里强调XJTAG产品,但是它们是为了利用JTAG全部能量而设计的,并且能够实现这篇文章中描述的所有功能。

背景

JTAG是为了应对传统针床方法测试电路的困难而构想的。现在封装技术例如BGA和芯片尺寸封装限制了,甚至在有些情况下阻止了针脚*的物理访问。

简易的JTAG设备
图1:简易的JTAG设备

JTAG通过在外部连接和设备内部逻辑之间放置单元格来克服这个问题,参见图1。当单元格被设置成移位寄存器时,JTAG可以被用来设定和检索针脚的数值(和与之相连的网的值)而无须直接物理访问。

还有一个可以在设备正常运作时采集在核心逻辑与引脚间传递的数据的数值的选项。

JTAG接口在每个设备上额外增加了四个引脚:用来向设备输入数据的TDI,用来输出设备数据的TDO,用来控制如何处理数据和时钟信号的TMS,用来同步一切的TCK。

如果一个设备要兼容JTAG,它的厂商就必须提供一个描述JTAG方面在这个设备里如何运作的BSDL(边界扫描描述语言)文件。

如果一个电路包含一个以上的JTAG兼容设备,这些设备就可以被连接在一起形成一个JTAG链。I在一个JTAG链中,第一个设备的数据输出是第二个设备的数据输入 ;链中所有设备拥有共同的控制和时钟信号。图2展现了一个含有三个设备的简易JTAG链的图示。

简易JTAG链
图2:简易JTAG链

*针脚既用来描述设备的铅连接也可以描述BGA的焊锡球连接。

球栅阵列(BGA)

BGA设备
图3:BGA设备

如图3所示,BGA封装不同于早期封装技术,因为它所有的外部连接都是通过设备底面与电路板之间的焊球来构成的而不是通过设备旁侧伸出的引脚。

含有BGA封装设备的电路测试一直是普及JTAG测试的推动力之一。因为设备与电路板的连接既不能被物理访问,也不能被肉眼检查,唯一替代JTAG而监控制造完整性的方法是X光检测。这项昂贵、费时的流程需要把每个板卡都做X光透视,然后通过审视图像来检查每个焊球是否被正确放置,与板卡接触,而没有扩散进而造成短路。X光虽可以提供有用的信息,但它仍然依赖于人工或者自动的目视检查,所以不能被完全信任来定位所有的错误。

在这一背景下,JTAG边界扫描不只是针床测试的有用替代品;它是能消除昂贵并且可能无结果的X射线技术的需求的重要省钱工具。

链的完备性测试

JTAG测试既可以很基本也可以很高级。最基本的测试是链完备性测试,即测试JTAG链中应该有的JTAG设备真实存在。

大部分JTAG兼容设备含有ID码,因此可以被用来测试设备是否放置恰、JTAG链是否被正确连接。不含有ID码的设备总是返回一个数值为零的单一位;所以可以检测JTAG链来验证含有码和没有ID码的器件的正确序列。

连接测试

连接测试实例
图4:连接测试实例

连接或者互联测试检查电路中启用了JTAG的部件周围的连接。这些被称为网的连接可以有四类故障;短路,开路,固定和提拉电阻故障。图4展示出了这些故障的实例。

JTAG链测试只在JTAG兼容设备间的网上进行完全检测故障,即信号从源头设置,然后从终端读取来检测开路故障。(只有一个启用JTAG的连接的网依然可以进行短路故障测试。)专业边界扫描检测工具可以自动生成非常广泛的测试模式来实现连接测试,经常需要极少的人工干预。

在生产校验过程中,连接测试是一个无价的工具。每一个生产出来的电路都可以被检查是否含有设备连接器焊接短路之类因制造错误而产生的生产故障。当涉及BGA设备时,很少有机会去目测检查或者去物理探测连接处,这时JTAG连接的价值就显而易见。

非JTAG设备测试

电路中非JTAG兼容的部分也可以被测试。无论哪里有非JTAG兼容设备共享JTAG兼容设备所连接的网,非JTAG兼容设备的输入都可以由JTAG控制。同样,非JTAG兼容设备的输出可以通过JTAG设备读回。因此,设计者对非JTAG兼容部分预期操作的理解将会允许他通过JTAG来构建和执行运行设备功能的测试。

这种测试形式既可以应用于单一非JTAG器件上也可以用于任何电路中可以当作功能单元看的非JTAG器件的集合上。这种方法的一个重要例子是储存测试。一系列产生的测试信号被用来操纵控制信号、储存设备的地址和数据总线从而可以往储存里写信息;第二系列产生的测试号则被用来把这个信息读回。

在线烧写

很多现代搭载JTAG可编程的设备例如FPGA和CPLD不仅有助于边界扫描测试,而且当装在PCB上时还允许通过附加的功能来编程。

其它设备例如闪存储存器则可以通过与JTAG链中相连的设备来间接编程。

使用JTAG在线编写设备的能力避免了购买昂贵的编程器和插口的需要。还有一点好处就是可以容易地更新设备里存留的储存image。

可测试性设计

在电路的整个生产周期中JTAG都是一个宝贵的工具。JTAG可以帮助设计者、生产测试工程师和现场测试工程师。

效果取决于JTAG测试套件所能达到的覆盖率。尽管潜能的一部分是电路中所固有的,但设计者在可测试性设计中的考虑也可使它最大化。

全套的可测试性设计指引可以从XJTAG网站上获得。不管怎样,作为起点首先确保所有JTAG兼容设备正确连接,以及一个恰当的测试访问端口(TAP)都被设计进入电路中。

资源

JTAG Technical Overview, TAP signals, Boundary Scan Instructions

JTAG技术指南

入门级JTAG实现


什么是JTAG?

什么是JTAG?

那么,我怎么样才能利用它呢?


可测试性设计(DFT)指引

可测试性设计(DFT)指引

提高电路测试性能的建议


circuit design, development, manufacturing, service

使用XJTAG进行JTAG测试

了解XJTAG如何扩展JTAG的潜力


Boundary-Scan Description Language

边界扫描描述语言(BSDL)文件

制造商网址的链接


Memory testing

非JTAG器件的测试


JTAG, SVF

串行矢量格式(SVF)文件

Want to be the first to know of new eBooks and JTAG Resources?

Find out how XJTAG can help you test your PCB faster
From Prototype To Manufacture