第1页共1页JTAG电路设计规范(V1.0)深圳市金鹏飞科技发展有限公司第2页共2页前言本技术设计规范根据国家标准和原邮电部标准以及国际标准IEEESTD1149.1系列标准编制而成。第3页共3页1、目的目前,使用的芯片中越来越多的CPU、EPLD、FPGA、DSP以及一些专用芯片(如ATM层专用芯片)等提供符合IEEE1149.1的JTAG测试口,但很多设计人员不了解JTAG,对JTAG口的处理较为随意。JTAG电路的设计没有引起设计人员足够的重视,是较易被忽视的一个环节,这种忽视给产品埋下了不稳定的隐患,甚至导致了严重的问题(参见附录:JTAG使用案例),极大地影响了产品的稳定和竞争力的提高。本规范基于统一设计人员对JTAG电路的认识,尽可能统一公司产品中JTAG的电路设计,提高产品的可靠性、稳定性,增强核心设计的竞争力。2、范围本规范适用于产品中所有具有符合IEEEStd1149.1规范设计的JTAG器件的应用设计,可用于指导JTAG的应用设计、开发、中试、生产。3、定义JTAG:JointTestActionGroup,联合测试行动组合;TAP:TestAccessPort,测试存取通道;TCK:TestClocKinput,测试时钟输入;TMS:TestModeSelectinput,测试模式输入,在TCK的上升沿取样,具有内部上拉;TDI:TestDataInput,测试数据输入,在TCK的上升沿取样,具有内部上拉;TDO:TestDataOutput,测试数据输出,三态,TCK下降沿时改变并被驱动输出;TRST:TestReSeTinput,异步复位TAP控制器为Test-Logic-Reset状态,具有内部上拉,低有效,不能用于初始化芯片内系统逻辑。4、JTAG功能介绍符合IEEESTD1149.1的JTAG测试口,是芯片制造商为开发者预留的在线仿真口,同时也是边缘扫描测试技术的一种应用。边缘扫描测试的基本思想是在靠近器件的每一个输入/输出(I/O)管脚处增加一个移位寄存器单元和锁存器单元,在测试期间,这些寄存器单元用于控制输入管脚的状态,并读出输出管脚的状态,利用这种思想进行测试。在正常工作期间,这些附加的移位寄存器单元不影响电路的工作。JTAG内部结构图如图1(黄色的是移位寄存器,天蓝的是锁存寄存器):图1JTAG内部结构图第4页共4页IEEE1149.1标准将边缘扫描测试的硬件单元分成四类:测试存取通道(TAP)、TAP控制器、指令寄存器(IR)、测试数据寄存器(TDR)。其中测试存取通道即是能完成边缘扫描测试的五个专用引出管脚(一般只有四个)即:测试时钟输入线(TCK)、测试方式选择输入线(TMS)、测试数据输入线(TDI)、测试数据输出线(TDO)、测试复位输入线(/TRST),其中/TRST是可选的,利用这五个管脚就能完成互连及功能测试。需要注意的是,我们现在采用的某些芯片,JTAG引脚并没有完全按照IEEEStd1149.1设计,如TI公司的DSP:TMS320C6000的JTAG引脚还多了EMU0和EMU1脚。另外部分边界扫描器件还有边界扫描功能使能端,如PEB20320的65脚(TEST),AMD的ELANSC400的Y11(BNDSCNEN),该管脚为高时,方可使能边界扫描功能,设计时应通过电阻(1K)下拉,并要设计预留测试点。对于此类芯片,在使用时一定要认真阅读手册。JTAG测试口主要有以下几个功能:测试装配在印制板或者其他板面上的集成电路之间的互连性;测试集成电路自身功能;器件正常工作时观测或修改管脚的状态;5、JTAG引脚接法规定因JTAG测试口在集成电路正常工作时不但观测而且可以修改管脚的状态,所以如果我们对JTAG引脚不做任何处理的话,由于系统的干扰,易造成芯片不能正常工作,给产品的稳定可靠带来隐患。故规定如下:5.1、为了提高系统的可测试性,对芯片JTAG五个引脚的处理禁止拉死(直接与电源或地相连);5.2、禁止按照芯片手册中“whennotbeingused”的情况进行设置;5.3、每个引脚必须引出相应的测试点,以便ICT测试;5.4、对可编程器件(如XILINX的XC4000、XILINX5000系列)的JTAG测试口以及其他多功能器件的JTAG测试口,在设计时,原则上只用作测试用,不要复用为一般I/O,否则会给生产测试带来不便,不得已采用的特殊情况下必须保留测试的功能;5.5、对于JTAG五个引脚的接法规定如下:1)TDI:建议上拉。上拉电阻阻值的选择可以参照具体器件手册,如果器件手册没有指明,一般选取4.7K,注意不能小于1K。2)TDO:不用上下拉。TDO悬空,但必须引出测试点,同时设计中应避免将TDO脚作为I/O脚。3)TMS:须上拉。上拉电阻阻值的选择可以参照具体器件手册,如果器件手册没有指明,一般选取4.7K,注意不能小于1K。4)TCK:建议下拉,1K。首先参照器件手册确定采用上拉或下拉。若器件手册未给出电路,须下拉,下拉电阻可选取1K。5)/TRST:须下拉,1K。首先参照器件手册确定采用上拉或下拉。对于器件要求与上电复位引脚相连的情况,应充分考虑其工作的安全性,最好是断开,分别接上/下拉电阻。对于可编程器件,如FPGA,调试时需要通过JTAG口进行编程,由于/TRST的接法已经固定,需根据实际情况进行上拉、下拉的调试临时配置。JTAG测试口的初始态是testlogicreset状态,它要进入其他状态必须满足状态机迁移要求,我们的保护就是要防止它随机进入其他状态。将/TRST下拉,不是强行使TAP测试口进第5页共5页入testlogicreset状态,而是防止他的状态机在上电冲击或运行中从testlogicreset状态迁移出去。终上所述,JTAG测试引脚接法如图2所示:图2JTAG测试引脚接法实际应用中上拉电阻的阻值选择应该结合考虑VCC的值,VCC与阻值成正比为好。6、JTAG菊花链为了可靠地进行全面的测试,建议每种信号都要引出ICT测试的测试点。若条件不允许(测试点对信号质量的影响或布线的密集程度等),对于单板上有两个以上JTAG功能(符合IEEEStd1149.1标准)的芯片,即使是不同厂家,不同种类的芯片,也可以通过芯片间JTAG引脚互联,形成菊花链模式,以减少测试点。如图3所示:图3建议JTAG菊花链接法由于TDO仅在扫描时才有输出,正常情况下为高阻,所以图2考虑只是在器件的TDI端有内部上拉这个前提下得出的。对于器件的TDI端无内部上拉的特殊情况,则需要如图4联接:TDITMSTDOTCLK/TRSTVccVccTDITDOTMSTCK/TRSTTDITDOTMSTCK/TRSTTDITDOTMSTCK/TRSTJU1U2Ui…………······VccVcc····第6页共6页图4器件TDI无内部上拉时的菊花链联接图对于不同工作电压的JTAG器件在构成菊花链时应注意接口电平的兼容性。7、附录案例1:XXX板在上电、拔插,常常出现自检不通过现象,单板8条话路都为故障,此时软件复位不能使单板恢复正常(软复位与硬复位的程序入口是相同的),除非重新上电。其JTAG接口原始电路如附图1所示:附图1原始接口电路优化后电路如附图2所示:附图2优化后接口电路TDITDOTMSTCK/TRSTTDITDOTMSTCK/TRSTTDITDOTMSTCK/TRSTJU1U2Ui…………······VccVcc····Vcc·Vcc·Vcc·第7页共7页结论:优化后问题消失。/TRST引脚信号不能上拉(上拉可使DSP进入仿真状态),只能接地或悬空。案例2:XX上的YY/ZZ板出现大量的运行中死机情况,一框单板运行一天,总会有一两块死机,现象随机出现,有些单板会很快出现死机,有些单板运行几天都不会死机,单板死机后,硬件复位也不能启动,必须重新上电才能重新运行。此问题导致生产停止发货一个月。观察YY/ZZ单板JTAG接口图如附图3:附图3C版本JTAG原图采用是JTAG菊花链模式。后来发现出问题的都是C版本,B版本不出这个问题,对比电路发现B版本的JTAG接口电路不同;B版本的JTAG接口电路如附图4:附图4B版本的JTAG接口电路后来将C版本的JTAG接口/TRST与TCLK接地后,问题解决。TDITMSTDOTCLK/TRSTTDITMSTDOTCLK/TRSTTDITMSTDOTCLK/TRST12345678910HEADERMC68040MC68360MC68360······TDITMSTDOTCLK/TRSTMC68040+5V悬空TDITMSTDOTCLK/TRSTMC68360+5V悬空TDITMSTDOTCLK/TRSTMC68360+5V悬空第8页共8页案例3:PCB投回来后,手工调试2PCS,非常顺利,余下的18PCSPCB板进行小批量生产加工。可是在调试18PCS单板的过程中,发现有5块单板的860竟然不能转起来,存在着共同的现象是:有一片数据驱动芯片16244剧烈迅速发烫,而其他相关的芯片均没有异常。查找相关电路发现与复位有关的是860的JTAG模式的复位脚/TRST与860自身的硬复位脚/HRESET直接相接了,决定还是分开试试,割线、飞线,将/TRST直接接到地上,上电单板正常开工,根本的问题找到了,于是将其他3块如法炮制,问题得到解决了。附图5860JTAG脚错误接法文章结论:在新版的860手册中关于TAP(JTAG)这部分是这样说的,如果TAP(TESTACCESSPORT)低功耗方式都不使用,把/TRST接到地上;如果TAP或者低功耗使用的话,/TRST接到/PORESET上。案例4:某产品XX板和YY板上,均使用了带JTAG口的芯片。XX的主CPU使用的是Motorola的DSP56303,YY的主CPU使用的是Motorola的MPC860。使用过程中CPU均出现了死机的现象。分析原因,认为是DSP56303内核提供一个用于用户在线测试的端口TAP,作为DSP的JTAG,它的引脚有:TCK、TMS、TDI、TDO、TRST、/DE、/RST。当单板在自运转过程中因某种原因使得/DE被置为了某个值,而TRST没有来临,单板就进入了DEBUG模式,此时的CPU已经不能工作了,在单板上的表现就是CPU死机。MPC860的原因是/TRST与/HRESET接到一起。解决方法:将DSP56303的/TRST与/RST接到一起。MPC860的/TRST与/PORESET相连。TDITMSTDOTCLK/TRST+3.3V/HRESET/HRESET+3.3V1K1K1K1K