1、JTAG基本原理简介 目录nJTAG概述概述nJTAG组成结构组成结构nJTAG扫描链工作原理扫描链工作原理n结语结语n参考文献参考文献JTAG概述JTAG是什么?uJTAG是Joint Test Action Group(联合测试行动组)的缩写,联合测试行动组是IEEE的一个下属组织u该组织研究标准测试访问接口和边界扫描结构(Standard Test Access Port and Boundary-Scan Architecture)JTAG概述uJTAG的前身是JETAG(Joint European Test Action Group欧洲联合测试行动小组) 。l1986年,一些欧洲以
2、外公司加入,JETAG成员已不仅局限在欧洲,故该组织由JETAG更改为JTAG。l1990年,IEEE正式承认JTAG标准,命名为IEEE1149.1-1990。u现在,人们通常用JTAG来表示IEEE1149.1-1990规范,或者满足IEEE1149规范的接口或者测试方法。目录nJTAG概述概述nJTAG组成结构组成结构nJTAG扫描链工作原理扫描链工作原理n结语结语n参考文献参考文献JTAG组成结构图一图一 边界扫描示意边界扫描示意JTAG组成结构TAP(Test Access Port)uTAP是一个通用的端口,通过TAP可以访问芯片提供的所有数据寄存器(DR)和指令寄存器(IR)。u
3、当芯片内部存在多条BSC时,需要有相应的机制来控制访问。u对整个TAP的控制是通过TAP Controller来完成的。JTAG组成结构JTAG信号uTMS:测试模式选择(Test Mode Select)l通过TMS信号控制JTAG状态机的状态。uTCK:JTAG的时钟信号uTDI:数据输入信号uTDO:数据输出信号unTRST:JTAG复位信号,复位JTAG的状态机和内部的宏单元(Macrocell)。JTAG组成结构JTAG组成结构TAP状态机uTAP状态机共有16种状态。u图中每个椭圆形代表一种状态。标有状态名称及标识代码。u箭头代表各状态所有可能的转换流程。u状态前的转换是在TCK的
4、驱动下,由TMS控制。JTAG组成结构15=Test LogicReset12=Run-Test orIdle7= Select-DRScan6=Capture-DR2=Shift-DR1=Exit1-DR3=Pause-DR0=Exit2-DR5=Update-DR4= Select-IRScan14=Capture-IR10=Shift-IR9=Exit1-IR11=Pause-IR8=Exit2-IR13=Update-IRtms=1tms=0tms=0tms=1tms=0tms=1tms=1tms=0tms=0tms=0tms=1tms=1tms=0tms=1tms=1tms=0tms
5、=1tms=0tms=1tms=0tms=0tms=1tms=0tms=1tms=0tms=1tms=0tms=1tms=0tms=1tms=0tms=1JTAG扫描链工作原理指令寄存器访问流程u系统上电,TAP Controller进入Test-Logic Reset状态。uRun-Test/Idle-Select-DR-Scan-Select-IR-Scan-Capture-IR-Shift-IR-Exit1-IR -Update-IR,最后回到Run-Test/Idle状态。u在Capture-IR状态,特定的逻辑序列被加载到指令寄存器中;然后进入到Shift-IR状态。JTAG扫描链工
6、作原理数据寄存器访问流程u当前可以访问的数据寄存器由指令寄存器中的当前指令决定。u以Run-Test/Idle为起点,依次进入Select-DR-Scan-Capture-DR-Shift-DR-Exit1-DR-Update-DR,最后回到Run-Test/Idle状态。JTAG组成结构uTAP控制器内部有多个寄存器lJTAG控制指令寄存器l测试数据寄存器l旁路寄存器(BYPASS)l器件识别码(IDCODE)寄存器l扫描路径选择寄存器JTAG组成结构扫描链3JTAG状态机TDITCKTMSTDO指令寄存器 4bitID寄存器 32bit扫描路径选择寄存器 4bit旁路寄存器 1bit选择器
7、扫描链3选择器选择器扫描链控制信号目录nJTAG概述概述nJTAG组成结构组成结构nJTAG扫描链工作原理扫描链工作原理n结语结语n参考文献参考文献JTAG组成结构nJTAG标准定义了一个串行的移位寄存器u每一个被测试逻辑电路引出信号线同它的引脚之间配置一个扫描单元n每一个独立的单元称为BSR(Boundary-Scan Register)边界扫描寄存器n所有的BSR通过JTAG测试激活JTAG扫描链工作原理From logic or pinFrom last cellShift/loadTo next cellTo logic or pin11G1ClockUpdateMode1DC11D
8、C111G1纵向纵向横向横向横向横向横向横向纵向纵向每一个扫描单元的内部每一个扫描单元的内部由两个由两个D D触发器和两个触发器和两个多路选择器组成多路选择器组成JTAG扫描链工作原理I1I2I3O1O2O3111 X 11 X 10 X 00 X 00 X 0DUT(测试器件)XTDI1 0 1 0 1 0TDOX X X X X X横向直行横向直行横向直行横向直行如同扫描链如同扫描链不存在不存在u在正常状态下即挂起,在正常状态下即挂起,BSR对芯片是透明对芯片是透明的,不影响芯片的正常运行。的,不影响芯片的正常运行。JTAG扫描链工作原理u当芯片处于调试状态时,BSR将芯片与外围隔离。通过
9、BSR可实现对芯片管脚的观察与控制。u对于输入管脚,可通过对BSR的操作,将信号(数据)加载至管脚。u对于输出管脚,可通过BSR将管脚上的输出信号“捕获”(Capture)。JTAG扫描链工作原理I1I2I3TCKO1O2O3TDI0 X 00 X 00 X 00 X 00 X 00 X 0 待测装置IIIOOO移位寄存器输出数据输入数据扫描前的输入数据扫描后的输出数据1 0 1 0 1 0TDOX X X X X XPinPinPinPinPinPin横横向向纵向纵向JTAG扫描链工作原理uBSR可以相互连接起来,在芯片周围形成一个边界扫描链。(Boundary-Scan Chain)u一般
10、芯片会提供多条独立的BSC,用于实现完整的测试功能。uBSC可以串行的输入输出,再配合时钟及控制信号,可观察与控制调试状态下的芯片。uJTAG扫描链一共有四种操作:挂起、捕获、移位和更新。JTAG扫描链工作原理TAP访问DR例解u假设TAP Controller处在Run-Test/Idle状态,IR中写入了一条新指令,该指令选定了长度为6的边界扫描链。u当前选择的边界扫描链由6个边界扫描移位寄存器单元组成,并且被连接在TDI和TDO之间。捕获JTAG状态当前引脚信号当前引脚信号存入扫描链存入扫描链移位数据I1I2I3O1O2O3111 1 11 1 10 1 00 0 00 0 0DUT1T
11、DI0 1 0 1 0 XTDOX X X X X 0纵纵向向直直行行移位结束I1I2I3O1O2O3111 1 11 0 10 1 00 0 00 1 0DUT0TDIXTDO0 0 0 1 1 1XXXXX纵纵向向直直行行数据更新JTAG扫描链取代系扫描链取代系统向处理器输入信号,统向处理器输入信号,并且替代处理器向系并且替代处理器向系统输出信号。统输出信号。目录nJTAG概述概述nJTAG组成结构组成结构nJTAG扫描链工作原理扫描链工作原理n结语结语n参考文献参考文献结语uJTAG技术在SOC中的重要应用包括嵌入式仿真器和调试模块的设计。这种设计可以提高内部信号的可控性和可观性,缩短产
12、品开发周期,提高查错效率。u当然, JTAG也有其局限性,其串行传输固然减少了资源,但同时也导致了速度的降低。所以, JTAG加速结构和新的硬件实现方式也不断涌现。参考文献参考文献1 周立功. ARM 嵌入式系统实验教程(2)M . 北京:北京航空航天大学出版社,2005.2 JTAG调试原理 EB/ OL . http:/www.embedworld. com/project/ openjtag.3 胡学良, 张春, 王志华. JTAG技术的发展和应用综述. 北京:清华大学电子工程系线路与系统教研室.4 刘文超,潘永才.基于JTAG的ARM7TDMI处理器调试原理及实现. 湖北 武汉: 湖北大学.谢谢