餍足嵌入式体系电路特性测试需求的JTAG技能
发布日期:2011-04-19
小序:EEE 1149.1边界扫描测试标准(通常称为JTAG、1149.1或"dot 1")是一种用来举行巨大IC与电路板上的特性测试的产业标准要领,大多数巨大电子体系都以这种或那种方法用到了IEEE1149.1(JTAG)标准。为了更好地明白这种要领,本文将探究在差别年代的体系开辟与计划中是怎样利用JTAG的,通过借助已往有关JTAG接入的经历或投入,推动计划向新一代生长。
大多数巨大电子体系都以这种或那种方法用到了IEEE1149.1(JTAG)标准。要是体系采取的是巨大FPGA或CPLD,那么险些可以肯定这些硬件是通过JTAG端口设置的。要是体系利用仿真东西来调试硬件或软件,那么仿真东西也很大概是通过JTAG端口与微处理惩罚器对话。并且,要是体系中采取了球栅阵列(BGA)封装的IC,那么JTAG也是测试BGA器件与底层印制电路板之间连接的最有效要领。
支持EEE 1149.1边界扫描测试标准的IC与电路板都具备一个支持JTAG测试的4线串行总线(第5条线为可选的复位线)-TDI(测试数据输入)、TDO(测试数据输出)、TMS(测试模式选择)与TCK(测试时钟)。该总线重要支持对焊点、电路板过孔、短路和开路等连接举行布局测试。别的,很多CPLD和FPGA制造商也将JTAG作为其器件在体系编程与配置的标准要领。JTAG不但支持布局(互连)测试,如今还是一种用于在体系级实现配置、编程以及殽杂信号测试的标准要领。
但大多数计划团队都在新计划中对JTAG的应用更偏向于不一步到位,而因此一种更易掌控的方法渐渐转为全面利用JTAG接口。有些团队规矩(discipline)中遍及利用了JTAG接口,有些则只利用了此中很有限的一部分。但每种规矩都根据其自身的必要调解JTAG。在种种规矩的配相助用下,生长出了几代差别的JTAG应用,每一代JTAG应用都有各自的特点,具有某种加强成果。
|
图1:第二代JTAG应用:利用JTAG多支路复用器简化对多个JTAG链的接入。 |
由于存在种种百般的JTAG接入请求,以是开辟团队必须采取一种跨规矩的JTAG接入战略以最大程度地发挥JTAG接入的成果。这种战略对付实现一种标准要领非常须要,这种标准要领可以复用,并且下一代产品可以基于其构建。为了更好地明白这种要领,我们将探究在差别年代的体系开辟与计划中是怎样利用JTAG的,目标是通过借助已往有关JTAG接入的经历或投入,推动计划向新一代生长。
JTAG应用的各个阶段
在JTAG应用的第一阶段,只用到了某些有关电路板的特性和成果,有关该要领的整理和标准化事变却做得很少。
这是一种最大略的要领,险些乃至完全不必要举行任意软件东西投资,通常利用IC厂商提供的免费东西即可。该阶段的JTAG通常不具备大概只具备很有限的诊断成果,也没有可用于天生测试或编程的矢量的软件。这时的JTAG接入只在生产时用于配置CPLD或对闪存编程。稍巨大一些的板卡也可以用它来做测试。
然而,这并不是本钱最低的要领。由于每种规矩都有大概会为其自身的必要用一个单独的JTAG讨论(header),于是一块电路板上就得用多个JTAG讨论,从而增长了本钱,也占用了电路板空间。并且,每种规矩大概都市开辟它们本身的“自制”软件东西和硬件,以实现与JTAG特性的交互,而这些软件东西和硬件对其他规矩(discipline)而言倒是多余的。以是,采取这种要领开辟的产品受其定制开辟的影响,很难转移到新一代的产品中去。要是在生产中采取,这种要领也会增长本钱,由于它必要举行多次插入。
很多开辟团队都被这一代JTAG应用绑住了手脚。终极,当体系巨大性连续增大时,要保持产品的竞争力,就必须采取一种JTAG接入战略。
第二代JTAG应用
在第二代JTAG应用中,差别的开辟团队规矩对在新板卡计划上采取JTAG成果举行办理。该阶段的JTAG应用必要肯定程度的ATPG(主动测试步伐天生)软件东西(这类软件东西具有妥当的诊断成果)投资,用于对编程和测试矢量的开辟和发送举行办理。这类ATPG东西的提供商提供从大略的针对每一任务的矢量天生的支持与咨询办事,也提供生产用的多任务(multi-seat)全套软件支持。
在每块电路板上添加一个战略性IC器件-JTAG复用器件,目标是去除电路板上的多个1149.1讨论并办理多个JTAG通路。这个JTAG复用器件所占用的电路板空间通常比一个JTAG讨论还小,但却简化了元件的断绝,也简化了进步接入服从所需扫描路径的构造。
比方,开辟职员大概会盼望将差别厂商的FPGA断绝在差别的扫描链中,以便简化利用每个厂商提供的东西接入JTAG的进程。别的,我们大概还盼望将微处理惩罚器放在一个单独的扫描链中,从而在仿真东西调试软件或在闪存写步伐时,最大程度进步微处理惩罚器的运行速率。ATPG厂商对这些器件都提供了很好的支持,因此软件支持通常很大略,直接提供交钥匙的方案。
|
图2:第三代J:将JTAG总线的扩展到在整个背板以连接多个板卡。 |
如今我们的第二代计划都只有一个单独的JTAG接入点,在这种根本配置下,整个板卡的全部仿真、配置和1149.1测试都可以在一次插入中,在一个测试站(test station)上用一个基于PC的体系来实现。
在这一阶段出现了一种新的JTAG总线应用-在产品的整个生命周期中都能利用JTAG接入成果。比方,可以将整个电路板级的矢量图(vector image)存档,以便在必要现场办事时,对板卡重新编程或调试。同样的接入成果还可以用于现场FPGA固件升级,或用于诊断一个FRU(现场可更换单位)中的题目。返回厂家举行妨碍阐发的配置也可以利用同一组矢量图(以及厂家或开辟测试站)来对题目举行断绝。
要是说这一代JTAG应用有什么缺点,那便是开辟团队通常还抱着单一板卡的心态。这是一种常有的心态,以为计划团队的责任只范围于其计划的板卡及其接口。然而,要是不克不及向第三代JTAG生长,那么这种JTAG应用就出现了瓶颈,限定了利用JTAG实现多板卡的本领。
第三代JTAG应用
当可以或许对一个背板上的多板卡体系级利用到JTAG的特性时,就实现了下一代JTAG接入。在这种环境下,仍旧可以或许单独实现单板卡级JTAG成果,并且 还可以利用到板卡间的成果。这一代JTAG应用不但促进了单板卡上差别规矩的计划团队相互相助,也促进了整个体系下差别板卡计划团队之间的相助。要是在上一代JTAG应用中采取了一个JTAG多路器,那么这个多路器支持多支路(multi-drop)接入。采取一种寻址方案,可以将串行JTAG总线用于多支路配置,提供对多板卡的支持。而一旦JTAG可以或许接入一块背板上的多个板卡,就能实现体系级的配置或编程(比方,JTAG可以并行接入多块板卡)。
要是驱动器/吸取器对容许举行JTAG可接入的全速BIST(内建自测),也能测试板卡之间的背板互连,大概可以验证板卡之间的高速LVDS串行链接,那么就能对板卡间背板互连的完备性举行测试,大概验证板卡间的高速LVDS串行连接。或这些高速互连都是电容性耦合,并且驱动器/吸取器支持,则可以举行IEEE 1149.6测试。
利用与第二代同样的配置-一个基于PC的JTAG站,就能利用全部这些JTAG成果。这个基于PC的JTAG站用作JTAG主控配置,通过一组单独的线路连接到背板上的JTAG讨论。这个主控配置认真驱动测试矢量,并办理整个背板上的器件接入JTAG成果。
第三代JTAG应用中添加的一项最故意思的新成果,在体系运行时,通过这个边带(sideband)JTAG通道可以访问整个体系。具备了这一成果,这使得很多体系级成果得以实现,比方在线“康健”状态监测、妨碍预测、妨碍检测、妨碍插入(用于妨碍转移测试或冗余度测试)以及诊断。
第四代JTAG应用
当测试矢量的发送和办理产生在体系内部时,对JTAG的应用就到达了最高级别,即第四代。第四代JTAG应用采取了一个板载JTAG主控制器来驱动背板JTAG总线。同时,还利用板载存储器存储测试矢量,并利用一个微处理惩罚器驱动JTAG主控制器。多板卡体系级主控制器可以位于一块单独的板卡上的,也可以在每块板卡上设置一个主控制器以加强控制性能。
到了第四代,全部前面几代JTAG应用的成果都能通过长途方法实现,包括编程、配置、互连测试以及诊断,从而极大低落了现场办事与支持所需的本钱。当必要升级一个现场体系的固件时,直接将新的配置文件下载到JTAG主控制器上,再由JTAG主控制器通过背板JTAG总线将其发给目标器件即可。固然,在生产时只要将主控制器禁用,那么仍可利用基于PC的JTAG接入站,这又进一步加强了机动性,也在全部集成度上提供了最多的接入选择。
JTAG接入可以通过外部或内部启动,也可以由某些体系变乱启动,比方体系上电或电源复位。
本文小结
迄今为止,JTAG应用与集成中存在的最大停滞,便是怎样让人们了解到必要一种基于多个开辟规矩的战略,并使办理者信托这种战略可以或许带来经济效益。一旦跨出了这一步,并且采取了ATPG支持和JTAG复用器件,那么就更容易一步步或一代代地循规蹈矩评估或实现新的JTAG成果。并且,要是开辟团队可以或许基于先前应用JTAG的经历,就能更好地发挥JTAG总线的服从。
增大JTAG布局的巨大性并不肯定会成为体系的包袱,恰好相反,如许才华完全地发挥JTAG作为一个受到遍及支持的,对当代巨大电子体系举行体系级测试、编程、配置和的康健状态监控的产业标准要领的全部代价。
附注:JTAG(Joint Test Action Group)连合测试举措小组)是一种国际标准测试协议(IEEE 1149.1兼容),重要用于芯片内部测试。如今多数的高级器件都支持JTAG协议,如DSP、FPGA器件等。标准的JTAG接口是4线:TMS、 TCK、TDI、TDO,分别为模式选择、时钟、数据输入和数据输出线。