什么是JTAG及其使用方法
扫描二维码
随时随地手机看文章
感谢原著作者对人类文化的传播做出的努力!以下内容直译为主,意译为辅,同时笔者可能会加入个人观点以方便理解。如有翻译不当的地方希望各位同仁积极指出,如有必要的话请做出引证,以助于笔者翻译水平的提高,同时也有利于其它读者的学习,进步。天朗气清,惠风和畅,祝各位生活愉快!
原文链接:点击打开链接
JTAG不仅仅用于调试和下载程序
你可能熟悉JTAG是因为你使用过带有JTAG接口的工具。
处理器经常使用JTAG来实现调试/仿真功能,而且所有的FPGA和CPLD都利用JTAG来实现下载程序功能。
JTAG不仅仅是一种用于处理器调试/仿真的技术
JTAG不仅仅是一种为FPGA/CPLD下载程序的技术
通常与JTAG有关的调试和编程工具仅仅利用了潜在技术的一个方面即四线JTAG通讯协议。这四种信号,作为测试访问端口(TAP)而广为人知。它是IEEE 1149.1. 标准的一部分。开发该标准的目的在于提供一种印刷电路板组件(PCBA)测试的技术。这种技术不需要针床测试的物理访问,也不像功能测试那样需要定制开发量。设计TAP来与新的寄存器进行交互,这些新的寄存器被添加到器件中,以便实现这种测试方法。但是很快半导体制造商就意识到了使用TAP来访问寄存器,可以提供其它功能如调试和编程。专门用于JTAG测试而加入到器件中的寄存器主要是边界扫描寄存器(BSR)。正如它的名字所示,这个寄存器的单独的位或单元位于器件的边界,处于功能核心与引脚或焊球之间,通过引脚连接到板上——JTAG测试经常被称作边界扫描。
JTAG / 边界扫描是如何用于测试一个板的
边界扫描单元 (如上所示)可以运行在两种模式下。在功能模式下它们对器件的运行没有影响,进行测试时板子可以正常运行。在测试模式下,它们将器件的功能核心与引脚断开。通过把边界扫描单元加入到测试模式中,就可以控制从一个使能器件传入到网络的值,同时也可以监视网络的值。将使能器件的功能与引脚控制断开,使得边界扫描测试开发比传统功能测试更加容易,因为使用引脚时不需要器件配置或者引导。通过四引脚TAP,可以提供一种机制来控制和监视器件中的所有使能信号,JTAG可以显著减少测试电路板需要的物理访问。我们主要以两种方式来使用边界扫描功能测试电路板。第一种方式是连接测试(如下所述) 。它提供了很好的测试覆盖范围, 特别是对于短路故障。连接测试完全基于电路板上的JTAG器件能力,连接,网络,以及(在XJTAG情况下)电路板上的逻辑功能。第二种方式扩展了使用范围,因为它可以令电路板上的JTAG使能器件与非JTAG外设如DDR RAM 和 flash进行通讯。
什么是JTAG连接测试?
正如设计中所描述的那样,JTAG连接测试会检查电路板上JTAG使能器件周围的连通性。连接到测试中的两个JTAG使能引脚所在区域将会确保一个引脚可以被另一个控制。如果使能引脚没有被连接,则可以通过驱动一个引脚并检查到那些值不能被其它引脚读取,从而测出短路故障。缺少拉电阻以及固定型故障也可以通过连接测试来发现,而前提是故障涉及到的逻辑器件的行为可以用真值表来描述。XJTAG会根据电路板上网表以及使能器件的JTAG信息自动生成向量,这些向量可以运行一次连接测试。
没有JTAG使能的器件该怎么办?
虽然主要的器件如处理器,FPGA通常具有JTAG能力,但是在每一个设计中仍有许多器件没有JTAG能力。 DDR, SDRAM, SRAM, flash, MDIO 控制以太网物理层, SPI 和 I2C 温度传感器, 实时RTC, ADC和 DAC就是这些器件中的一些例子。连接测试可以很好地对非JTAG器件与JTAG使能器件的网络连接进行短路故障检测,但是他不能检查JTAG器件或者非JTAG器件的开路故障。为了添加开路故障检测的功能,在使能器件上,边界扫描必须要能够与外设进行通讯。如果通讯能被证实,就不会出现开路故障。这种类型的测试是非常简单的,例如点亮一个LED并请求一个操作符来确认它被激活,或者更复杂一点如写数据到RAM存储器阵列并读取回来。
创建一个JTAG测试系统需要耗费很多工作吗?
使用XJTAG公司提供的标准非JTAG器件库,你可以进行一系列的测试,不需要开发代码来运行你的电路板。库文件包含所有类型的非JTAG器件模型,从简单的电阻和缓冲器到复杂的存储器如DDR3。因为边界扫描断开了JTAG器件上的引脚控制与功能,所以可以使用相同的模型来控制一个外设而不用考虑JTAG器件。大多数板子都包含了JTAG接口来用于编程或调试,所以不需要额外设计。
从哪里可以得到我的器件的JTAG信息?
为了运行任何基于测试的边界扫描,必须要了解一些关于电路板上使能器件的JTAG应用信息。这些信息来自于那些器件的BSDL(边界扫描描述语言)文件。为了与IEEE1149.1标准兼容,半导体厂商必须为其器件提供BADL文件。
JTAG测试仅仅用于产品吗?
完全不是。边界扫描测试的一个重要优点是只需要一个JTAG控制器。其它的产品测试技术如飞针测试,自动光学/ X射线检查或者针床测试都需要专业的测试设备,这些设备在工程师的工作台上无法获得。在电路板开发中使用边界扫描可以去除不确定性–硬件工程师可以在系统测试前甚至在固件完成之前就可以测试样机板的制作缺陷。在产品生命周期的早期阶段开发的测试系统很容易重复使用,也可以延伸到产品中。
为什么我应该使用JTAG/边界扫描来测试我的电路板?
3个简单的字母–BGA
越来越多的器件以BGA(球栅阵列)封装的形式供应。电路板上的每一个BGA器件在测试上都有严格的限制,我们可以使用传统的针床或飞针机来完成。
JTAG/边界扫描使用了简单的四引脚接口,允许使能器件上的信号被控制和监视而不需要任何直接的物理访问另外3个字母–NRE
制作测试装置的一次性工程费用(NRE)可能会非常高。在许多情况下使用JTAG/边界扫描后就不会再需要这种装置。在其它情况下,这种装置可以被极大地简化,从而显著减少费用。
更短的测试时间
对于小批量生产的电路板,很难评估测试装置开发的费用是否合适。在这种情况下,可以选择飞针测试。但是这种技术的测试周期比较长,而JTAG/边界扫描测试的测试时间很短,并且不需要测试装置。
更低的测试开发费用
因为不同的处理器/FPGA与外设的交互方式不同,传统的功能测试需要为每一个电路板定制开发。JTAG/边界扫描可以显著减少这种开发费用,因为它提供了一个简化的接口来控制这些与外设进行交互的IO引脚。这种标准接口在所有JTAG使能器件中都是相同的。这也意味着当构建测试系统时,可以使用及重复使用一系列通用的模型。
测试和编程仅需一个工具
在产品生产研发中我们经常使用JTAG来进行下载程序这一步骤。同时我们也可以使用JTAG来进行边界扫描测试,它可以减少生产过程中的步骤和操作数量。
在工程师的工作台上为原型机提供产品级测试
传统的测试技术需要体积大且价格昂贵的设备。JTAG/边界扫描测试只需要一个JTAG控制器,例如XJTAG公司的XJLink2控制器,其大小与电脑鼠标相似。
卓越的故障诊断JTAG/边界扫描与功能测试不同,它可以提供高精度的故障信息以帮助工程师进行快速修复。XJTAG不仅可以观测到电路板布局上的实际物理方位上的故障,也可以观测到电路区域的逻辑设计错误,这种错误存在于原理图中。
功能测试不起作用时能使‘死’板重获新生
JTAG/边界扫描测试可以运行在任何带有JTAG接口的电路板上。如果电路板不引导的话,传统的功能测试就不能正常运行。重要的外设如RAM或者时钟上的简单故障可以使用JTAG发现,但是功能测试却不能提供任何诊断信息。
关于XJTAG
XJTAG公司是一个全球领先的IEEE 1149.x 标准兼容的边界扫描软件和硬件系统供应商。XJTAG致力于创新产品的开发与高质量的技术支持。公司总部位于英国剑桥,在全球与超过50家专业供应商及技术伙伴合作紧密。XJTAG为客户提供多种多样的边界扫描测试解决方案。方案覆盖多种产业,包括航空航天,汽车业,安防,医疗,制造业,网络通讯等。