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

JTAG协议基础知识详解

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

JTAG协议基础知识详解

引用
CSDN
1.
https://blog.csdn.net/a2145565/article/details/139562703

1.什么是JTAG

JTAG(Joint Test Action Group)是一种IEEE标准,开发于上个世纪80年代,主要用于解决板级问题。今天,JTAG被广泛应用于芯片的烧录、调试(debug)、端口探查等场景。最原始的使用场景是边界测试,例如在两个芯片之间连接大量线缆时,通过JTAG可以控制所有IC的引脚,确保连接的正确性,这被称为芯片边界测试。

2.JTAG引脚

JTAG发展到现在通常包含四个主要引脚:TDI(测试数据输入)、TDO(测试数据输出)、TMS(测试模式选择)和TCK(测试时钟输入),此外还有一个可选的复位脚TRST。这些引脚在芯片上是专用的。

  • TDI:数据通过TDI输入JTAG口;
  • TDO:数据通过TDO从JTAG口输出;
  • TMS:用于设置JTAG口处于某种特定的测试模式;
  • TCK:测试时钟输入;
  • TRST:测试复位;

CPU和FPGA制造商允许通过JTAG进行端口调试;FPGA厂商还允许通过JTAG配置FPGA,使用JTAG信号通入FPGA核。

3.JTAG怎么工作

通过JTAG电缆可以将PC与JTAG接口连接,支持打印端口、USB或网口等多种连接方式。最简单的是连接打印端口。

在每个含有JTAG的芯片内部,都有一个JTAG TAP(Test Access Port)控制器。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寄存器,通常是写入寄存器中的数据。

4.JTAG链相关疑问

计算JTAG链中的IC数目

一个重要应用是使用全一值的IR值表示BYPASS命令。在BYPASS模式中,TAP控制器中的DR寄存器总是单bit的,从TDI到TDO,通常一个周期,不做任何处理。可以通过BYPASS模式计算JTAG链中的IC数目。如果每个IC的TDI-TDO链的延迟是一个时钟周期,可以发送一些数据并检测延迟时间,从而推算出JTAG链中的IC数目。

获取JTAG链中的器件ID

大多数JTAG IC都支持IDCODE命令。在IDCODE命令中,DR寄存器会装载一个32位的代表器件ID的值。虽然每次TAP控制器跳转到Test-Logic-Reset状态时会进入IDCODE模式并装载IDCODE到DR,但IDCODE模式下的IR值并没有统一标准。

5.边界扫描

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

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