ARM JTAG 调试原理

原文链接:http://www.micetek.com.cn/technic/jtag.pdf

ARM JTAG 调试原理
OPEN-JTAG 开发小组

1 前言
这篇文章主要介绍 ARM JTAG 调试的基本原理。基本的内容包括了 TAP (TEST ACCESS
PORT) 和 BOUNDARY-SCAN ARCHITECTURE 的介绍,在此基础上,结合 ARM7TDMI 详细
介绍了的 JTAG 调试原理。
这篇文章主要是总结了前段时间的一些心得体会,希望对想了解 ARM JTAG 调试的网友们
有所帮助。我个人对 ARM JTAG 的理解还不是很透彻,在文章中,难免会有偏失和不准确的地
方,希望精通 JTAG 调试原理的大侠们不要拍砖,有什么问题提出来,我一定尽力纠正。同时
也欢迎对 ARM JTAG 调试感兴趣的朋友们一起交流学习。

2 IEEE Standard 1149.1 - Test Access Port and Boundary-Scan Architecture
既然是介绍 JTAG 调试,还是让我们从 IEEE 的 JTAG 调试标准开始吧。JTAG 是 JOINT
TEST ACTION GROUP 的简称。IEEE 1149.1 标准就是由 JTAG 这个组织最初提出的,最终由
IEEE 批准并且标准化的。所以,这个 IEEE 1149.1 这个标准一般也俗称 JTAG 调试标准。
接 下 来的这 一 部分, 主 要简单 的 介绍了 TAP (TEST ACCESS PORT) 和
BOUNDARY-SCAN ARCHITECTURE 的基本构架。虽然不是很全面,但对了解 JTAG 的基本
原理来说,应该是差不离了。如果希望更全面深入的了解 JTAG 的工作原理,可以参考 IEEE
1149.1 标准。

2-1 边界扫描
在 JTAG 调试当中,边界扫描(Boundary-Scan)是一个很重要的概念。边界扫描技术的
基本思想是在靠近芯片的输入输出管脚上增加一个移位寄存器单元。因为这些移位寄存器单
元都分布在芯片的边界上(周围),所以被称为边界扫描寄存器(Boundary-Scan Register Cell)。
当芯片处于调试状态的时候,这些边界扫描寄存器可以将芯片和外围的输入输出隔离开来。
通过这些边界扫描寄存器单元,可以实现对芯片输入输出信号的观察和控制。对于芯片的输
入管脚,可以通过与之相连的边界扫描寄存器单元把信号(数据)加载倒该管脚中去;对于
芯片的输出管脚,也可以通过与之相连的边界扫描寄存器“捕获”(CAPTURE)该管脚上的
输出信号。在正常的运行状态下,这些边界扫描寄存器对芯片来说是透明的,所以正常的运
行不会受到任何影响。这样,边界扫描寄存器提供了一个便捷的方式用以观测和控制所需要
调试的芯片。另外,芯片输入输出管脚上的边界扫描(移位)寄存器单元可以相互连接起来,
在芯片的周围形成一个边界扫描链(Boundary-Scan Chain)。一般的芯片都会提供几条独立的
边界扫描链,用来实现完整的测试功能。边界扫描链可以串行的输入和输出,通过相应的时
钟信号和控制信号,就可以方便的观察和控制处在调试状态下的芯片。
利用边界扫描链可以实现对芯片的输入输出进行观察和控制。下一个问题是:如何来管
理和使用这些边界扫描链?对边界扫描链的控制主要是通过 TAP(Test Access Port)Controller
来完成的。在下一个小节,我们一起来看看 TAP 是如何工作的。

你可能感兴趣的:(总线外设,jtag)