构建系统级JTAG链调试电路第一部分:JTAG技术介绍JTAG技术俗称边界扫描技术,是近代发展起来的高级测试技术。JTAG主要有以下几个方面应用:1).互连测试。判断互连线路是否存在开路、短路或固定逻辑故障。2).可编程器件的程序加载。如FLASH、CPLD、FPGA等器件的加载。3).可编程器件的在线调试。如FPGA,DSP等器件在线debug。4).电路采样。器件正常工作时,对管脚状态进行采样观察。JTAG测试一般使用标准的TAP(TestAccessPort)连接器,如下图所示。A).1号脚为TCK。JTAG测试参考时钟,由JTAG主控制器提供给被测试器件,该信号需要下拉处理,下拉电阻不能小于330ohm,一般选择1Kohm。之所以TCK要下拉处理,是因为JTAG测试规范规定:在TCK为低电平时,被测试器件的TAP状态机不得发生变化。所以,默认状态下,TCK必须为低电平,使TAP状态机保持稳定。最小驱动电流为2mA。B).2号脚为GND。使用时直接连单板的GND即可。C).3号脚为TDO。JTAG测试数据输出管脚,JTAG主控制器从此管脚输出测试数据给被测试器件,JTAG主控制器的TDO接被测试器件的TDI。TDO在TCK的下降沿输出。JTAG测试规范没有规定如何处理TDO管脚,一般情况下悬空即可,也可以通过4.7Kohm电阻上拉到VCC,已增加驱动TDO的驱动能力。D).4号脚为VCC。连接电源,一般为3.3V/2.5V/1.8V等,具体看芯片说明。在这里特别说明下,在实际使用中,很容易将2号脚的GND与此VCC接反,导致JTAG不可用,所以,大家在设计审查时一定要特别关注这个地方。以免因低级错误导致设计改板。E).5号脚为TMS。TMS是TestModeSelect的缩写,作用是进行测试模式选择,由JTAG主控制器输出给被测试器件。被测试器件在TCK的上升沿才TMS信号进行采样,根据采样结果来判断是正常模式还是JTAG测试模式(TMS=“0”为正常模式,TMS=“1”为JTAG模式)。该管脚需要上拉处理,上拉电阻不小于470ohm,一般选取4.7Kohm。之所以要上拉处理,是因为JTAG测试规范规定:当TMS为高电平状态持续5个TCK时钟周期时,TAP状态机必须回归到复位状态上,不管当前处于何种状态。为了让TAP在非测试时间里保持在复位的待命状态,所以将TMS上拉,使其默认状态为高电平。最小驱动电流为1mA。TMS的频率一般在10MHz以下。F).6号脚为NC。NotConnect的意思,该管脚为定义,使用时悬空即可。G).7号脚为/TRST。TAP状态机复位信号。由JTAG主控制器输出到被测试器件。该信号需要下拉处理,下拉电阻不小于330ohm,一般选取1kohm。为了保证器件的正常功能,上电时需要使TAP状态机复位,这样就不会因为TAP状态机的状态不定而影响芯片的正常功能。通过电阻下拉到GND后,所有被测试芯片的TAP状态机一直处于复位状态。/TRST为可选信号(因为TMS上拉已经可以保证TAP状态机处于复位状态),一般CPLD/FPGA等逻辑器件的JTAG接口没有提供此信号。H).8号脚为/DW。DirectWrite的意思,由JTAG主控制器输出到被测试器件。该信号一般在对JTAG写入速度要求很高的情况下使用,该信号有效时,JTAG写入时可以跳过很多中间状态,直接写入数据。该信号一般很少使用。I).9号脚为TDI。TestDataInput,JTAG主控制器的TDI接被测试器件的TDO。JTAG主控制器会在TCK的上升沿对TDI信号进行采样。该信号需要上拉处理,上拉电阻要求不小于1Kohm,一般选取4.7Kohm。之所以要上拉处理,是因为JTAG测试规范中规定:当从TDI接收到的数据为全“1”指令时,TAP状态机会跳转到bypass状态。为了在出错时让TAP处于旁路状态,所以将TDI上拉,使其默认状态为高电平。J).10号脚为GND。使用时接单板地即可。JTAG测试时,TCK、TMS、TDI和TDO四个信号为必须,只要有这四个信号,即可完成JTAG测试工作,/TRST为可选信号。分析上图可知,与测试有关的信号全部在奇数脚(1、3、5、7、9),偶数脚(2、4、6、8、10)均为VCC、GND、NC、/DW等辅助或无用引脚。目前,一些规模较大的IC器件基本上都提供JTAG接口,所以,一块单板上会有很多JTAG测试口,如何将这些测试口连接起来呢?目前有三种连接方式:串行方式、并行方式和独立方式。纵观当前主流JTAG设计,以串行方式的菊花链结构最为流行。菊花链结构示意图如下所示。第二部分:需要解决的问题我们的8250项目中要用到很多的数字板,每板上有几个FPGA,我们需要实现通过底板一个JTAG接口对所有FPGA统一编程管理和调试管理,这样就会加快整机调试速度,尤其方便整机组装后的FPGA程序更新和chipscope调试。预期实现图如下:第三部分:可以实现的方案3-1:桥接芯片实现法对于一个简单的单板,一条JTAG链就可以满足测试要求,但是,对于ATCA架构的系统来说,就需要系统级的JTAG架构来将系统上的所有单板连接起来进行系统管理,这就需要用JTAG控制器和JTAG桥片来连接。如下图所示。目前,有很多IC厂商都有JTAG主控制器和桥片产品,如NationalSemiconductor的SCANSTA101、SCANSTA111(每片价格30-50)、SCANSTA112(每片价格100-150),TI的SN74LVT8986(每片价格50-60)、SN54ABT8996,MAXIM的DS26900等。根据询价情况,预计实现成本在800-1200。优点:有成功案例参考缺点:成本高,电路复杂。3-2:总线并联法底板JTAG总线LVT245LVT245LVT245Board1JTAGBoard2JTAGBoard32JTAG对外JTAG接口总线并联法的原理主要是将各PCB板内各个FPGA用串行菊花链方式,各板之间通过245分别连接到底板的JTAG总线上。优点:成本低(160左右),电路简单。缺点:无案例参考,JTAG信号经过245控制后是否能正确传到不同的板?供电与共地问题的解决?以上疑问需要做个验证试验。验证试验结果:JTAG口信号TMS,TCK,TDI,TDO可以准确无误地通过245芯片,供电与地问题得到解决。下载程序成功,chipscope调试成功。验证试验成功。结论:该方案可行。