问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

JTAG的基础知识

创作时间:
作者:
@小白创作中心

JTAG的基础知识

引用
1
来源
1.
https://m.elecfans.com/article/6347310.html

JTAG(Joint Test Action Group)是一种IEEE标准,主要用于板级问题的测试和调试。它最早开发于上世纪80年代,经过不断发展,现在被广泛应用于芯片烧录、调试、端口探查等多个领域。本文将详细介绍JTAG的基础知识,包括其引脚功能、工作原理以及相关应用。

什么是JTAG

JTAG(Joint Test Action Group)是一种IEEE标准,主要用于解决板级问题。它最早开发于上世纪80年代,经过不断发展,现在被广泛应用于芯片烧录、调试、端口探查等多个领域。最原始的使用是边界测试。

边界测试

边界测试是JTAG最原始的应用场景。例如,当两个芯片之间连接了很多线时,如何确保这些线之间的连接是正确的?JTAG可以通过控制所有IC的引脚来实现这一目标,这被称为芯片边界测试。

JTAG引脚

JTAG发展到现在已经有多个引脚,通常包括四个主要引脚:TDI、TDO、TMS、TCK,以及一个复位引脚TRST。对于芯片上的JTAG引脚,它们通常是专用的。

  • TDI(测试数据输入):数据通过TDI输入JTAG口;
  • TDO(测试数据输出):数据通过TDO从JTAG口输出;
  • TMS(测试模式选择):用来设置JTAG口处于某种特定的测试模式;
  • TCK(测试时钟输入):提供测试时钟信号;
  • TRST(测试复位):用于测试复位。

此外,JTAG还有更多高级应用,例如CPU和FPGA制造商允许通过JTAG进行端口调试,FPGA厂商允许通过JTAG配置FPGA,使用JTAG信号通入FPGA核。

JTAG的工作原理

PC可以通过JTAG电缆连接到打印端口、USB或网口来控制JTAG。最简单的是连接打印端口。

TAP控制器

在每个含有JTAG的芯片内部,都有一个JTAG TAP控制器。TAP控制器是一个有16个状态的状态机,而TMS就是这玩意的控制信号。当TMS把各个芯片都连接在一起的时候,所有的芯片的TAP状态跳转是一致的。下面是TAP控制器的示意图:

改变TMS的值,状态就会发生跳转。如果保持5个周期的高电平,就会跳回test-logic-rest,通常用来同步TAP控制器;

通常使用两个最重要的状态是Shift-DR和Shift-IR,两者连接TDI和TDO使用。

  • IR(命令寄存器):你可以写值到这个寄存器中通知JTAG干某件事。每个TAP只有一个IR寄存器而且长度是一定的。
  • DR(数据寄存器):TAP可以有多个DR寄存器,与IR寄存器相似,每个IR值会选择不同的DR寄存器。

JTAG链相关疑问

计算JTAG链中的IC数目

一个重要的应用是IR值是全一值,表示BYPASS命令,在BYPASS模式中,TAP控制器中的DR寄存器总是单bit的,从输入TDI到输出TDO,通常一个周期,啥也不干。可用BYPASS模式计算IC数目。如果每个IC的TDI-TDO链的延迟是一个时钟,我们可以发送一些数据并检测它延迟了多久,那么久可以推算出JTAG链中的IC数目。

得到JTAG链中的器件ID

大多数的JTAG IC都支持IDCODE命令。在IDCODE命令中,DR寄存器会装载一个32bit的代表器件ID的值。不同于BYPASS指令,在IDCODE模式下IR的值没有标准。不过每次TAP控制器跳转到Test-Logic-Reset态,它会进入IDCODE模式,并装载IDCODE到DR。

边界扫描

TAP控制器进入边界扫描模式时,DR链可以遍历每个IO块或者读或拦截每个引脚。在FPGA上使用JTAG,你可以知晓每个引脚的状态当FPGA在运行的时候。可以使用JTAG命令SAMPLE,当然不同IC可能是不同的。

以上就是JTAG的基础知识介绍,希望对大家有所帮助。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号