一. 概述
随着印制电路板制造工艺向小,微,薄发展,现代封装技术(如 BGA 和芯片级封装)限制对引脚的物理访问,导致无法使用探针等方式来直接测量芯片管脚。对此产生一种新的测试技术,联合测试行为小组(Joint Test Action Group,简称 JTAG )定义这种测试方法为边界扫描测试。现在用户使用 JTAG多数用于下载调试,实际上边界扫描功能才是 JTAG 设计初衷,在此本文将介绍 JTAG 边界扫描功能基本原理。
二. 边界扫描功能作用
1. 在芯片被焊接到 PCB 板上之后,测试焊接是否良好。
2. 定位芯片故障,测试内部芯片管脚连接可靠性。
3. 部分具有 JTAG 接口的芯片会内置一些预先定义好的功能模式,通过边界扫描通道使芯片处于某个特定功能模式。
三. JTAG 边界扫描测试原理
边界扫描技术基本思想是在靠近芯片输入输出管脚上增加一个移位寄存器单元。因为这些移位寄存器单元都分布在芯片边界上,所以被称为边界扫描寄存器(Boundary-Scan Register Cell)。
1. 在正常运行状态下,这些边界扫描寄存器对芯片来说是透明的,所以正常运行不会受到任何影响。
2. 当芯片处于调试状态的时候,这些边界扫描寄存器可以将芯片和外围输入输出隔离开来。
图 1 边界扫描原理图
如上图所示为边界扫描原理图。通过各个边界扫描单元,在芯片内部形成一条串行链,测试数据和测试指令都通过边界扫描链进行输入输出,完成整个边界扫描测试过程。一般芯片都会提供几条独立边界扫描链,用来实现完整测试功能。管理和使用这些边界扫描链则主要是通过 TAP(Test Access Port)Controller 来完成。接下来将介绍 TAP(Test Access Port)Controller 。TAP 包括 4/5 个信号接口 TCK、TMS、TDI、TDO 和 TRST,接口信号及其作用如下:
1. TDI:数据输入接口
2. TDO:数据输出接口
3. TCK:为 TAP 操作提供了一个独立的、基本的时钟信号,TAP 所有操作都通过这个时钟信号来驱动。
4. TMS:用来控制 TAP 状态机转换。通过 TMS 信号,可以控制 TAP 在不同的状态间相互转换。TMS 信号在 TCK 上升沿有效。
5. TRST (可选项):供异步初始化,低电平有效
通过这些信号接口将可进行 TAP Controller 状态转换,在 TCK 驱动下,从当前状态到下一个状态转换由 TMS 信号决定,如下图所示 TAP 状态机总共有 16 个状态,六边形表示一个状态,六边形中标有该状态名称和标识代码。
图 2 TAP Controller
假设 TAP Controller 当前状态为 Select-DR-Scan,在 TCK 驱动下,如果 TMS = 0,TAP Controller 进入 Capture-DR 状态;如果 TMS = 1,TAP Controller 进入 Select-IR-Scan 状态。在每个状态 JTAG 都将会进行一些操作,接下来将进行举例方便更好理解。
图 3 边界扫描链
如图所示是测试芯片及其被当前指令选定的长度为 6 的边界扫描链。由图可以看出,当前选择边界扫描链由 6 个边界扫描移位寄存器单元组成,并且被连接在 TDI 和 TDO 之间。TCK 时钟信号与每个边界扫描移位寄存器单元相连。每个时钟周期可以驱动边界扫描链数据由 TDI 到 TDO 方向移动一位。经过6个时钟周期,就可以完全更新边界扫描链里的数据,而且获得边界扫描链里原来 6 位数据。
1. 首先处于初始化状态,测试将数据序列 101010 输入芯片,并获得芯片相应管脚状态。
2. TAP 状态机从 Run-Test/Idle 状态经过 Select-DR-Scan 进入到 Capture-DR 状态,经过一个周期 TCK 时钟驱动,芯片管脚上信号状态全部被捕获到相应边界扫描移位寄存器单元中。
3. 在数据捕获完成以后进入到 Shift-DR 状态,每经过一个 TCK 时钟驱动,边界扫描链从 TDO 输出一位数据
4. 经过 6 个 TCK 时钟周期来把新数据序列 (101010)通过 TDI 输入到边界扫描链当中去;同时,将捕获序列 (111000)通过 TDO 输出。
5. TAP Controller 从 Shift-DR 状态,经过 Exit1-DR 状态,进入 到 Update-DR 状态,经过一个周期 TCK 时钟驱动,边界扫描链中新数据序列将被加载到测试芯片相应管脚上去。
6. 测试芯片状态被更新,最后从 Update-DR 状态回到 Run-Test/Idle 状态,完成对选定边界扫描链的访问。
通过以上步骤即可实现边界扫描,获取并设置当前边界扫描移位寄存器状态。
四. 总结
本文主要介绍关于 JTAG 边界扫描功能基本原理,关于 JTAG 边界扫描下篇将会介绍在具体软硬件平台边界扫描功能实现步骤。