一文看懂JTAG基本知识

您所在的位置:网站首页 tapc接口有正反吗 一文看懂JTAG基本知识

一文看懂JTAG基本知识

2024-07-10 06:34| 来源: 网络整理| 查看: 265

1、JTAG是什么?

JTAG是20世纪80年代开发的IEEE标准(1149.1),用来解决电路板的生产制造检修问题。现在JTAG还可以用来烧程序、调试以及检测端口状态。本文主要介绍JTAG的基本功能,边界扫描。

1.1边界扫描

如图1所示,在一个电路板上有两个芯片元件,一个CPU和FPGA。

https://www.fpga4fun.com/images/JTAG1.gif

图1

每个芯片都会有很多引脚,那么芯片之间的互联就会有很多连线,图2示意图仅仅画了4条连接线。

https://www.fpga4fun.com/images/JTAG2.gif

图2

正常情况下,对于芯片厂商,一次制作成千上万个PCB板子,每个班子上都有许许多多连接线,厂家需要如何保证每根芯片连接线都是正常的呢?这么大的工作量也不可能通过手工来每一根线进行检测。因此JTAG就应运而生了。

https://www.fpga4fun.com/images/JTAG3.gif

图3

JTAG可以控制芯片的每个引脚,图3中,我们可以通过JTAG使得所有的CPU引脚发送数据,而所有的FPGA引脚接收数据,然后根据FPGA中是否收到准确的数据来判断所有的芯片连接是否正常。

实际上JTAG的连接包括4根信号线,分别是TDI、TDO、TMS和TCK。从电脑主机的角度来看,TDI、TMS、TCK为输出,TDO为输入,如果从待测试的芯片角度来看则相反。

https://www.fpga4fun.com/images/JTAG4.gif

图4

JTAG的四根信号线有特定的连接方式,如图5所示,TMS和TCK是并联在所有待测芯片上的。

https://www.fpga4fun.com/images/JTAG5.gif

图5

TDI和TDO信号线则是串联在一起形成一个闭环链条。在JTAG的技术手册中,这种方式也叫JTAG链。

https://www.fpga4fun.com/images/JTAG6.gif

图6

因此,每个JTAG链上的芯片都会有四根线连接,其中三个输入,一个输出。在技术手册中,还会有一个可选的信号线TRST作为第五根信号线。一般而言,JTAG的四个引脚都是专用引脚。

现在所有的JTAG应用越来越普遍,基本上所有多引脚的芯片都会包含JTAG边界扫描功能。此外正如我们开头所说,CPU和FPGA厂商还用JTAG接口进行调试,对于可编程硬件FPGA和CPLD,还可以用JTAG接口继续配置和烧录程序。

2、JTAG如何起作用?

上一章我们知道了JTAG是如何连接芯片,现在学习具体工作原理以及如何通过PC端来控制器运行。

2.1PC控制JTAG

一般我们用JTAG连接线来连接PC和JTAG端口,电脑端口有并行端口(也叫打印机端口db25)、USB端口以及网线端口。对于数据量不大的情况下推荐并行端口,操作简单。对于大数据量推荐USB端口和网口,其速度快但是操作复杂一些。

图7 并行端口DB25

2.2、并行端口

电脑主机的并行端口12根线为输出,5根线为输入。对于JTAG而言,只用到了3个输出和一个输入(从PC角度来看输入输出)。因此,中间需要用到一些缓存器,如赛灵思的parallel-III cable。

从软件代码的角度来看,并行端口由于简单是最理想的JTAG端口。例如,阿尔特拉的ByteBlaster JTAG接口用C语言改变TCK信号代码如下:

#define lpt_addr 0x378

#define TCK 0x01

void toggle_TCK()

{

      outport(lpt_addr, 0);

      outport(lpt_addr, TCK);

      outport(lpt_addr, 0);

}

2.3、JTAG TAP控制器

PC和芯片之间的JTAG连接方式如图6,下面介绍这四根信号线分别代表什么意思。

TCK

TCK是JTAG的时钟信号,另外三个信号TDI、TDO、TMS都是跟该时钟信号同步的。一般其他三根信号都是在TCK时钟的上升沿发生改变或者状态的切换。

TMS

在每个芯片的内部都有JTAG TAP控制器,图6中有两个CPU和FPGA两个芯片,那么就有两个TAP控制器。一般我们在数据手册上看到的状态控制器就是这个,它有16个状态,如图8所示。TMS就是个控制TAP控制器的信号,根据TMS的高低电平变化,TAP控制器进入这16个状态中的一种,又因为同一个PCB板子上TMS是并联所有芯片 ,因此所有芯片都会处于同一状态。

https://www.fpga4fun.com/images/JTAG_TAP.gif

图8

上图中每个状态旁边的0和1代表的是TMS的低、高电平。比如如果TAP状态控制器处于Select DR-Scan状态,且TMS为0,那么当TCK时钟信号切换时,TAP的状态就会变化下面的Capture-DR。

这里再强调一遍,要想JTAG正常工作,所有的链上的TAP控制器必须处于同一状态。PCB板上电后,是如何保证所有芯片的TAP处于同一状态呢?仔细观察图8,不管TAP在哪个状态,如果TMS在5个时钟周期内都保持1,那么TAP都会变成Test-Logic-Reset状态,这便是用来同步TAP状态的方法。

来看下面的代码,如何将TAP控制器切换到Shift-IR状态。

      // first sync everybody to the test-logic-reset state       for(i=0; i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3