快来趴一趴JTAG那些事(上)

快来趴一趴JTAG那些事(上)_第1张图片

你以为你不知道,其实它一直就在你身边,JTAG是嵌入式开发中在熟悉不过的一个名词了,但是你真的很了解他吗,来一块趴一趴JTAG的那些事,今天先来看一些基础知识

JTAG 简介

JTAG是英文“Joint Test Action Group(联合测试行为组织)”的词头字母的简写,该组织成立于1985 年,是由几家主要的电子制造商发起制订的PCB 和IC 测试标准。JTAG 建议于1990 年被IEEE 批准为IEEE1149.1-1990 测试访问端口和边界扫描结构标准。该标准规定了进行边界扫描所需要的硬件和软件。自从1990 年批准后,IEEE 分别于1993 年和1995 年对该标准作了补充,形成了现在使用的IEEE1149.1a-1993 和IEEE1149.1b-1994。JTAG 主要应用于:电路的边界扫描测试和可编程芯片的在线系统编程。JTAG是一种国际标准测试协议(IEEE 1149.1兼容),主要用于芯片内部测试。现在多数的高级器件都支持JTAG协议,如MCU, ARM, DSP、FPGA器件等。标准的JTAG接口是4线:TMS、TCK、TDI、TDO,分别为模式选择、时钟、数据输入和数据输出线。JTAG最初是用来对芯片进行测试的,JTAG的基本原理是在器件内部定义一个TAP(Test Access Port;测试访问口)通过专用的JTAG测试工具对内部节点进行测试。JTAG测试允许多个器件通过JTAG接口串联在一起,形成一个JTAG链,能实现对各个器件分别测试。如今,JTAG接口还常用于实现ISP(In-System Programmer,在系统编程),对FLASH等器件进行编程。通常所说的JTAG大致分两类,一类用于测试芯片的电气特性,检测芯片是否有问题;一类用于

Debug,一般支持JTAG的CPU内都包含了这两个模块。

系统框图

从下图可以看出JTAG(IEEE 1149.1)模块的系统框图

快来趴一趴JTAG那些事(上)_第2张图片

大体分为三个部分,Test Access Port Controller,Test mode select (TMS),Test clock (TCK), Test data in(TDI), Test data out(TDO)以及一些寄存器。我们以飞思卡尔kv4x系列MCU的片上JTAG接口为例来说明。飞思卡尔kv4x系列MCU的JTAG模块支持多种IEEE 1149.1-2001定义的测试模式。当JTAG模块使能的时候,可以通过装载相应的指令到指令寄存器来选择一种测试模式,所支持的测试指令包括:

EXTEST, HIGHZ, CLAMP, SAMPLE, 和SAMPLE/RELOAD. 当EXTEST, SAMPLE, 或者SAMPLE/RELAOD指令激活,为了在TDI和TDO之间进行串行访问,边界扫描寄存器被使能; 当BYPASS, HIGHZ, CLAMP, 指令激活,为了在TDI和TDO之间进行串行访问,单个位旁路寄存器移位阶段被使能。每一种测试模式的功能详细描述请参考官方文档,这里不在赘述。

外部信号描述

TCK test clock input, 是一个输入引脚,通过TAP常常用来同步测试逻辑和控制寄存器的访问。

TDI test data input, 是一个用来接收串行测试指令和数据的输入引脚,通常在TCK的上升沿采样TDI

TDO test data output, 是一个用来串行发送测试指令和数据的输出引脚,TDO具有三态特性,只有在TAP控制器的状态机处于shift-IR和shift-DR状态才会被激活。

TMS test mode select, 是一个常常用来按顺序排好IEEE 1149.1-2001测试控制状态机的输入引脚,同样在TCK的上升沿采样TMS。

明天我们继续趴一趴JTAG的所有指令,约吗?O(∩_∩)O~

快来趴一趴JTAG那些事(上)_第3张图片

嵌入式

程序猿

微信号:InterruptISR

嵌入式程序猿致力于打造程序猿工程师交流分享的精品移动平台,欢迎各位猿友加入和分享。微信搜索嵌入式程序猿添加关注,或者长按下方二维码,选择识别图中二维码添加关注。

快来趴一趴JTAG那些事(上)_第4张图片

你可能感兴趣的:(快来趴一趴JTAG那些事(上))