JTAG基本原理简介 目录 JTAG概述 JTAG组成结构 JTAG扫描链工作原理 结语 参考文献 JTAG概述 JTAG是什么? JTAG是Joint Test Action Group(联合测试行动 组)的缩写,联合测试行动组是IEEE的一个下属 组织 该组织研究标准测试访问接口和边界扫描结构 (Standard Test Access Port and Boundary-Scan Architecture) JTAG概述 JTAG的前身是JETAG(Joint European Test Action Group欧洲联合测试行动小组) 。 1986年,一些欧洲以外公司加入,JETAG成员已不仅 局限在欧洲,故该组织由JETAG更改为JTAG。 1990年,IEEE正式承认JTAG标准,命名为 IEEE1149.1-1990。 现在,人们通常用JTAG来表示IEEE1149.11990规范,或者满足IEEE1149规范的接口或者 测试方法。 目录 JTAG概述 JTAG组成结构 JTAG扫描链工作原理 结语 参考文献 JTAG组成结构 图一 边界扫描示意 JTAG组成结构 TAP(Test Access Port) TAP是一个通用的端口,通过TAP可以访问 芯片提供的所有数据寄存器(DR)和指令 寄存器(IR)。 当芯片内部存在多条BSC时,需要有相应的 机制来控制访问。 对整个TAP的控制是通过TAP Controller来 完成的。 JTAG组成结构 JTAG信号 TMS:测试模式选择(Test Mode Select) 通过TMS信号控制JTAG状态机的状态。 TCK:JTAG的时钟信号 TDI:数据输入信号 TDO:数据输出信号 nTRST:JTAG复位信号,复位JTAG的状态机和内 部的宏单元(Macrocell)。 JTAG组成结构 JTAG组成结构 TAP状态机 TAP状态机共有16种状态。 图中每个椭圆形代表一种状态。标有状态 名称及标识代码。 箭头代表各状态所有可能的转换流程。 状态前的转换是在TCK的驱动下,由TMS控 制。 JTAG组成结构 1 5 = T e st L o g ic R eset tms=1 tms=0 1 2 = R u n -T e s t o r Id le tms=0 tms=1 7 = S e le c t-D R S can 4 = S e le c t-IR S can tms=0 tms=1 tms=1 tms=0 tms=1 6 = C a p tu re -D R tms=0 tms=1 1 4 = C a p tu re -IR tms=0 tms=0 2 = S h ift-D R 1 0 = S h ift-IR tms=1 tms=1 tms=1 1 = E x it1 -D R tms=0 9 = E x it1 -IR tms=1 tms=0 tms=0 3 = P a u s e -D R tms=1 1 1 = P a u s e -IR tms=0 tms=0 0 = E x it2 -D R tms=1 8 = E x it2 -IR tms=0 tms=1 tms=1 5 = U p d a te -D R tms=1 tms=0 1 3 = U p d a te -IR tms=1 tms=0 tms=0 JTAG扫描链工作原理 指令寄存器访问流程 系统上电,TAP Controller进入Test-Logic Reset状态。 Run-Test/Idle->Select-DR-Scan->SelectIR-Scan->Capture-IR->Shift-IR->Exit1-IR ->Update-IR,最后回到Run-Test/Idle状态。 在Capture-IR状态,特定的逻辑序列被加载 到指令寄存器中;然后进入到Shift-IR状态。 JTAG扫描链工作原理 数据寄存器访问流程 当前可以访问的数据寄存器由指令寄存器 中的当前指令决定。 以Run-Test/Idle为起点,依次进入SelectDR-Scan->Capture-DR->Shift-DR->Exit1DR->Update-DR,最后回到Run-Test/Idle 状态。 JTAG组成结构 TAP控制器内部有多个寄存器 JTAG控制指令寄存器 测试数据寄存器 旁路寄存器(BYPASS) 器件识别码(IDCODE)寄存器 扫描路径选择寄存器 JTAG组成结构 扫 描 链 3 选择器 扫 描 链 3 扫描链控制信号 扫描路径选择寄存器 4bit 选择器 ID寄存器 32bit 旁路寄存器 1bit TDI TMS TCK TDO 指令寄存器 4bit JTAG 状态机 选择器 目录 JTAG概述 JTAG组成结构 JTAG扫描链工作原理 结语 参考文献 JTAG组成结构 JTAG标准定义了一个串行的移位寄存器 每一个被测试逻辑电路引出信号线同它的引脚 之间配置一个扫描单元 每一个独立的单元称为BSR(Boundary-Scan Register)边界扫描寄存器 所有的BSR通过JTAG测试激活 JTAG扫描链工作原理 Shift/load From last cell G1 1 1 To next cell 1D C1 纵向 纵向 1D C1 G1 From logic or pin 1 1 横向 每一个扫描单元的内部 由两个D触发器和两个 多路选择器组成 To logic or pin 横向 Clock Update 横向 Mode JTAG扫描链工作原理 在正常状态下即挂起,BSR对芯片是透明 的,不影响芯片的正常运行。 I1 1 X 1 DUT (测试器件) 横向直行 0 X 0 O1 横向直行 I2 1 X 1 0 X 0 O2 I3 1 X 1 0 X 0 O3 如同扫描链 不存在 TDI 1 0 1 0 1 0 TDO X X X X X X JTAG扫描链工作原理 当芯片处于调试状态时,BSR将芯片与外围 隔离。通过BSR可实现对芯片管脚的观察与 控制。 对于输入管脚,可通过对BSR的操作,将信 号(数据)加载至管脚。 对于输出管脚,可通过BSR将管脚上的输出 信号“捕获”(Capture)。 JTAG扫描链工作原理 移位寄存器 Pin 0 X 0 I1 I O 0 X 0 O1 Pin 横 向 纵向 Pin I2 0 X 0 I Pin I3 0 X 0 I 待测装置 O 0 X 0 O2 Pin O 0 X 0 O3 Pin 输出数据 输入数据 TCK TDI 1 0 1 0 1 0 扫描前的输入数据 TDO X X X X X X 扫描后的输出数据 JTAG扫描链工作原理 BSR可以相互连接起来,在芯片周围形成一 个边界扫描链。(Boundary-Scan Chain) 一般芯片会提供多条独立的BSC,用于实现 完整的测试功能。 BSC可以串行的输入输出,再配合时钟及控 制信号,可观察与控制调试状态下的芯片。 JTAG扫描链一共有四种操作:挂起、捕获、 移位和更新。 JTAG扫描链工作原理 TAP访问DR例解 假设TAP Controller处在Run-Test/Idle状态, IR中写入了一条新指令,该指令选定了长 度为6的边界扫描链。 当前选择的边界扫描链由6个边界扫描移位 寄存器单元组成,并且被连接在TDI和TDO 之间。 捕获JTAG状态 当前引脚信号 存入扫描链 移位数据 I1 1 1 1 DUT 0 1 0 O1 纵 向 I2 1 1 1 0 0 0 O2 直 行 I3 1 1 1 0 0 0 TDI 0 1 0 1 0 X TDO X X X X X 0 O3 移位结束 I1 1 0 1 DUT 0 1 0 O1 纵 I2 1 1 1 0 0 0 O2 向 直 行 I3 1 0 1 0 1 0 TDI X X X X X X TDO 0 0 0 1 1 1 O3 数据更新 JTAG扫描链取代系 统向处理器输入信号, 并且替代处理器向系 统输出信号。 目录 JTAG概述 JTAG组成结构 JTAG扫描链工作原理 结语 参考文献 结语 JTAG技术在SOC中的重要应用包括嵌入 式仿真器和调试模块的设计。这种设计 可以提高内部信号的可控性和可观性, 缩短产品开发周期,提高查错效率。 当然, JTAG也有其局限性,其串行传输 固然减少了资源,但同时也导致了速度 的降低。所以, JTAG加速结构和新的 硬件实现方式也不断涌现。 参考文献 [1] 周立功. ARM 嵌入式系统实验教程(2)[M] . 北京 :北京航空航天大学出版社,2005. [2] JTAG调试原理[ EB/ OL ] . http://www.embedworld. com/project/ openjtag. [3] 胡学良, 张春, 王志华. JTAG技术的发展和应用 综述. 北京:清华大学电子工程系线路与系统教研 室. [4] 刘文超,潘永才.基于JTAG的ARM7TDMI处理器调 试原理及实现. 湖北 武汉: 湖北大学. 谢谢