XJTAG:可测试性设计指南(一)
来源: | 作者:风标电子工程师 | 发布时间: 2025-01-13 | 6 次浏览 | 🔊 点击朗读正文 ❚❚ | 分享到:

下列准则为使用 XJTAG 提高电路的可测性提供建议。这些准则不应该被视为硬性规则,在可测性方面的潜在优势应与它们可能产生的其他影响一起综合考虑(例如,功能、设备成本和电路板面积)。


本文档的读者应该至少熟悉标准 IEEE1149.1 和 1149.6。1149.x 一词在本文档中指的是 IEEE1149.x(JTAG)边界扫描标准,JTAG 器件是指实现 JTAG 边界扫描,并完全符合这些标准的器件,而非 JTAG 器件是那些不能实现 JTAG 边界扫描的器件。


指定和使用 JTAG 器件


XJTAG 虽然能够测试 JTAG 器件和非 JTAG 器件之间的连接,但为获得更大的覆盖范围,应尽可能使用 JTAG 器件。电路中的 JTAG 器件数量越多,可以充分测试的节点也就越多。

电容耦合的高速单端或差分信号,无法使用 1149.1 进行测试,但可以用 1149.6 标准测试。为了使用该功能,要确保以这种方式进行测试的网络中,耦合电容每一侧的引脚都具备 1149.6 功能。


检查 JTAG 器件的 BSDL 文件


符合 1149.x 标准要求的器件,必须有一个边界扫描描述语言(BSDL)文件。该文件描述了器件具体怎样实现 1149.x 。请确保已获取该文件(通常可直接从器件制造商的网站获取),并且已通过充分验证(BSDL 语法检查是 XJTAG 的一个组成部分)。


确保 1149.x 链的正确设计和布局

JTAG 设备可以有单个的连接器,以提供 TAP 信号的访问;它们也可以被连接成一个 “菊花链” 格式,即从一个器件的 TDO 信号连接到下一个器件的 TDI 信号。


所有设备的 TCK、TMS 和(可选)nTRST 信号必须以 “菊花链” 格式并联连接。需要注意的是,nTRST 信号不能直接连接到地,因为这将完全禁用 JTAG,不仅针对单个器件,还会影响整个扫描链。


如果可能,TAP 信号要远离其他活跃信号,以降低噪声并提高信号的完整性。串行 JTAG 接口通常运行的时钟频率为 10MHz 到 30MHz,布局不佳可能会导致难以确定的错误,甚至可能需要重新制板。


将 TAP 信号与电源或接地线分离,有助于诊断非正常运行的 JTAG 链上的问题。因为一个 TAP 信号短路到一个恒定信号,比两个 TAP 引脚短接在一起更容易诊断。


为所有 TAP 信号使用正确的终止

TCK 应与一个 68Ω 的电阻和一个 100pF 的电容串联接地,尽可能接近信号进入测试链中最后器件的位置。TDI 和 TMS 应该通过 10kΩ 上拉电阻接电源。TDO 应该通过一个 10kΩ 上拉电阻接电源,并在测试链最末器件附近串联一个 22Ω 电阻。此外,建议为 nTRST 添加一个 10kΩ 下拉电阻,以避免浮动输入。


多个 JTAG 链

在开发或编程过程中,可能有一些器件需要直接连接到其自己的接口用于调试。添加选项把这些接口链接成一条测试链,对制造测试有益,同时还能在生产过程中降低 BOM(物料清单)及处理成本。XJTAG XJLink2 的控制器最多可以连接四个 JTAG 接口板。


接口设计

在指定 JTAG 接口上信号位置时,考虑可能的串扰 / 干扰问题很重要。将活跃信号与接地交错排列,可将这些影响降至最低。如果接口上可用的引脚数量使得这样做不切实际,那么优先在 TCK 旁边安排接地。如果这也无法实现,那么可以使用一个在 JTAG 扫描中不太可能改变的信号,如复位(nTRST) 。

特别要注意避免在任何 TCK 信号附近放置 TDO。因为 TDO 转换发生在 TCK 的下降沿,来自 TDO 的串扰可能在 TCK 上导致毛刺,进而破坏数据。


在 JTAG 接口和被测板之间建立强大的接地连接也非常重要。如果 JTAG 接口上有任何备用引脚,添加额外的接地信号将是有益的。XJLink2 有固定接地引脚 10 和 20,连接这些引脚会提高信号的完整性。


理想情况下,每一个新设计都应使用相同的接口类型和信号布局,以便电缆可以被重用。将 TAP 信号连接到其他接口的备用引脚,即便未安装接口或无法访问扫描链,也能实现访问。


JTAG 模式选择

在某些器件上,TAP 引脚可以被配置为 1149.x 边界扫描以外的功能。因此,要确保设计不会阻止器件被用于 JTAG 测试。通常这些引脚的功能配置是通过在复位时采样该器件的其他引脚来实现的。根据不同的设计要求,此配置可以通过以下几种方法实现:


· 如果边界扫描是 TAP 引脚的唯一功能,配置引脚可以连接到所需的电平。

· 如果边界扫描是这些引脚的主要功能,但可能还需要其他功能,则可以选择合适的电阻,通过对电路板进行小的改动来配置引脚的高低电平变化。

· 如果需要能够简单地切换功能,配置信号可以被引出到外接接口。使用上拉或下拉电阻来定义默认状态,然后可以由控制器(如 XJLink2)重写该状态。


各种德州仪器的处理器上的 EMU0 和 EMU1 引脚,就是这样的配置引脚的常见例子。其他还包括 Freescale 处理器的 Mode 引脚和 AT91 系列处理器的 JTAGSEL 信号。这些引脚所需的值在器件数据表 / 参考手册中定义,它们也可能显示在器件 BSDL 文件的 COMPLIANCE_PATTERNS 部分。


考虑时钟同步器件

许多同步器件可以通过边界扫描测试,但这依赖于时钟源。例如,SDRAM 只能在时钟由 1149.x 兼容器件控制时进行测试。如果一个自由运行的时钟直接连接到 SDRAM,那么将无法使边界扫描测试向量与该时钟实时同步。


如果有一个可配置的 JTAG 器件,如 CPLD 或 FPGA,那么将时钟源通过该器件连接到 SDRAM 或时钟缓冲器,可最大限度地提高测试覆盖范围。如图所示:



同样重要的是,要确保任何时钟缓冲器没有最小工作频率。一些时钟缓冲器具有一个特殊的控制输入,以允许低频信号,这样的信号必须从 JTAG 启用引脚进行访问。


其他设备,如以太网 PHY 和交换机,需要特定频率的时钟输入才能工作。在这些情况下,要确保系统时钟不是由 1149.x 的使能引脚提供的。晶体或振荡器应该连接到不兼容器件,可以直接连接,也可以通过一个时钟缓冲器连接。


当无法使用边界扫描与非兼容器件在该速度下互动时,提供合适的时钟往往能实现一定程度的测试,否则测试可能无法进行。


考虑看门狗操作

应提供链接或 1149.x 可控的逻辑,以确保在测试过程中可以禁用看门狗操作。在测试过程中,如果看门狗未收到定期输入而产生复位事件,会导致意想不到的测试结果,甚至阻止测试完成。


测试未配置的 FPGA 和 CPLD

可编程器件如 FPGA 和 CPLD 具有较高比例的 I/O 信号,理论上有很高的测试覆盖率。然而,当这些设备被配置后,许多信号在不需要的应用程序中 “关闭”,无法充分提供作为输入或输出的 I/O 功能。利用边界扫描也无法重新启用此功能,因此测试覆盖率会降低。XJTAG 网站上有一篇应用笔记,描述了测试含有这些类型设备的测试板的最佳策略。


确保 TAP 信号之间低偏移

保证 TAP 信号之间的低偏移对正确操作非常重要。特别是 TCK 和 TMS 线路长度和缓冲延迟,应尽可能保持相等。


提供访问以帮助定位扫描链错误

允许在一个器件的 TDO 信号和下一个器件的 TDI 信号之间进行物理访问,将易于识别造成扫描链非正常运作的器件。这可以通过加入串联终端电阻或一个测试点来实现。


TAP 信号缓冲和电压等级分离

如果可能的话,对初级 TAP 信号进行缓冲,以减少噪音和阻抗不匹配,并提高扇出能力。一般来说,如果线路长度相对较短,那么可以扇出 4 - 6 个器件;而较长的线路应该只扇出 1 或 2 个器件。要确保 TCK、TDI、TMS 和 nTRST 在板输入缓冲,TDO 在板输出缓冲,并且缓冲器必须是非反相的。


如果存在工作在不同电压的边界扫描器件,最好将这些器件分离,使其在相同的电压电平下操作测试链。或者对设备进行分组,把相同电压的器件放在一起组成菊花链,例如 3.3V 的器件,然后通过电压转换器连接到下一个电压的设备,例如将 3.3V 信号相应调整至 1.8V 。



如果无法在电压域之间缓冲 TAP 信号,则设计应允许降低电压的 JTAG 链,例如,从 3.3V 信号到 2.5V(例如使用电阻分压器),因为这比升高电压容易得多。需要注意的是,任何缓冲的信号都要按照前面所描述的进行终端处理。TCK 输入到缓冲区需要在靠近缓冲器处加终端,而任何缓冲器的输出需要在靠近最后一个器件处加并行端接。任何缓冲的 TDO 信号应该在靠近驱动器处串联终端。