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 是如何工作的。

相关推荐

  1. ARM JTAG 调试原理

    2023-12-16 08:28:01       44 阅读
  2. 步进电机调速原理

    2023-12-16 08:28:01       35 阅读
  3. Spring原理-8.通知调用

    2023-12-16 08:28:01       32 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-16 08:28:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-16 08:28:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-16 08:28:01       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-16 08:28:01       20 阅读

热门阅读

  1. 分布式文件存储系统minio了解下

    2023-12-16 08:28:01       41 阅读
  2. C 语言中,结构体「.」与「->」的区别

    2023-12-16 08:28:01       38 阅读
  3. react函数组件中Hooks和ahooks的区别

    2023-12-16 08:28:01       45 阅读
  4. 管道C语言(蓝桥杯题库,暴力解决)

    2023-12-16 08:28:01       42 阅读
  5. android项目实战之数据绑定的数据更新

    2023-12-16 08:28:01       42 阅读
  6. 智能网联汽车场景数据图像标注要求及方法

    2023-12-16 08:28:01       35 阅读
  7. he server selected protocol version TLS10 is not accepted问题

    2023-12-16 08:28:01       38 阅读
  8. Windows 10/11 免费安装HEVC/H.265视频扩展

    2023-12-16 08:28:01       138 阅读
  9. 大语言模型--数据

    2023-12-16 08:28:01       45 阅读
  10. MySQL 是什么?

    2023-12-16 08:28:01       40 阅读
  11. 融云即时通讯的产品优势

    2023-12-16 08:28:01       40 阅读