JTAG 链路与 IDCODE 基础
了解多个 TAP 如何组成扫描链,以及 IDCODE 能提供哪些器件识别信息。
一块电路板可以把多个支持 JTAG 的器件串接在同一条扫描链上。控制器的 TDI 连接到链首器件,器件的 TDO 再连接到下一个器件的 TDI,链尾器件的 TDO 返回控制器。TCK 和 TMS 通常由链上器件共享。链路顺序和连接关系决定了扫描数据如何经过各器件。
什么是 IDCODE
IDCODE 是一种用于识别器件的标准化扫描数据寄存器及相关指令约定。支持该功能的器件可通过 TAP 返回识别码,供工具辅助判断链上器件。IDCODE 通常为 32 位,其中包含版本、器件标识和制造商识别等编码字段;字段具体解释应遵循标准和器件资料。并非所有器件或所有工作模式都保证提供可读 IDCODE。
IDCODE 不是序列号,也不能单独证明器件的完整订货型号、封装、板卡连线或功能状态。工具可能依据识别码匹配器件描述文件,但仍需要工程师核对实际器件、封装与板级设计。
扫描链识别的边界
识别流程依赖链路电气连接和正确的 TAP 操作。如果扫描链中某个器件未供电、TDO 连接中断、信号方向错误或复位状态不合适,返回值可能异常,甚至整条链都无法识别。对识别结果也应结合链上预期器件数量和顺序判断,不能把任意数值直接当作有效器件信息。
在开始识别前,先确认接口信号及方向,可参考 JTAG TAP 接口信号文章;连接器的地线和电压参考也会影响结果,见 JTAG 连接器与测试访问端口基础。若链路访问失败,可按照 JTAG 调试与故障定位 的层次逐步检查。
IDCODE 之后
器件识别只是建立扫描链配置的起点。后续测试可能会使用旁路寄存器、边界扫描寄存器或器件专用数据寄存器,具体由加载的指令决定。想了解边界扫描如何用于板级互连检查,可阅读 Boundary Scan 基础;若测试向量保存为 SVF,可继续看 SVF 文件与边界扫描编程基础。
延伸阅读
链路识别失败时,可按 JTAG 链路识别故障排查 从物理连接和拓扑逐步检查;若还在原理图阶段,参阅 PCB 链路规划 提前确认访问路径。