• 195查看
  • 0回复

[芯片硬件] 单片机开发——JTAG

[复制链接]


该用户从未签到

发表于 9-5-2024 21:14:00 | 显示全部楼层 |阅读模式

汽车零部件采购、销售通信录       填写你的培训需求,我们帮你找      招募汽车专业培训老师


单片机开发——JTAG

JTAG是联合测试工作组(Joint Test Action Group)的简称,是在名为标准测试访问端口和边界扫描结构的IEEE的标准1149.1的常用名称。此标准用于验证设计与测试生产出的印刷电路板功能。

1990年JTAG正式由IEEE的1149.1-1990号文档标准化,在1994年,加入了补充文档对边界扫描描述语言(BSDL)进行了说明。从那时开始,这个标准被全球的电子企业广泛采用。边界扫描几乎成为了JTAG的同义词。

在设计印刷电路版时,当前最主要用在测试集成电路的副区块,而且也提供一个在嵌入式系统很有用的调试机制,提供一个在系统中方便的"后门"。当使用一些调试工具像电路内模拟器用JTAG当做信号传输的机制,使得程序员可以经由JTAG去读取集成在CPU上的调试模块。调试模块可以让程序员调试嵌入式系统中的软件。

JTAG工作原理

1
PC控制JTAG:用JTAG电缆连接PC的打印端口或者USB或者网口。最简单的是连接打印端口。

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

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

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

IR:命令寄存器,你可以写值到这个寄存器中通知JTAG干某件事。每个TAP只有一个IR寄存器而且长度是一定的。

DR:TAP可以有多个DR寄存器,与IR寄存器相似,每个IR值会选择不同的DR寄存器。

2
单片机开发——JTAGw3.jpg

单片机开发——JTAGw4.jpg

JTAG的接口是一种特殊的4/5个接脚接口连到芯片上 ,所以在电路版上的很多芯片可以将他们的JTAG接脚通过Daisy Chain的方式连在一起,并且集成电路只需连接到一个“JTAG端口”就可以访问一块印刷电路板上的所有集成电路。这些连接引脚是:


    TDI(测试数据输入)

    TDO(测试数据输出)

    TCK(测试时钟)

    TMS(测试模式选择)

    TRST(测试复位)可选。

因为只有一条数据线,通信协议有必要像其他串行设备接口,如SPI一样为串列传输。时钟由TCK引脚输入。配置是通过TMS引脚采用状态机的形式一次操作一位来实现的。每一位数据在每个TCK时钟脉冲下分别由TDI和TDO引脚传入或传出。可以通过加载不同的命令模式来读取芯片的标识,对输入引脚采样,驱动(或悬空)输出引脚,操控芯片功能,或者旁路(将TDI与TDO连通以在逻辑上短接多个芯片的链路)。TCK的工作频率依芯片的不同而不同,但其通常工作在10-100MHz(每位10-100ns)。

当在集成电路中进行边界扫描时,被处理的信号是在同一块IC的不同功能模块间的,而不是不同IC之间的。

TRST引脚是一个可选的相对待测逻辑低电平有效的复位开关——通常是异步的,但有时也是同步的,依芯片而定。如果该引脚没有定义,则待测逻辑可由同步时钟输入复位指令而复位。

尽管如此,极少消费类产品提供外部的JTAG端口接口,但作为开发样品的残留,这些接口在印刷电路板上十分常见。在研发后,这些接口常常为反向工程提供了非常良好的途径。

单片机开发——JTAGw5.jpg

3
JTAG也是一种国际标准测试协议(IEEE1149.1兼容),主要用于芯片内部测试。现今多数的高级器件都支持JTAG协议,如DSP、FPGA、ARM、部分单片机器件等。标准的JTAG接口是4线:TMS、TCK、TDI、TDO,分别为模式选择、时钟、数据输入和数据输出线。相关JTAG引脚的定义为:TCK为测试时钟输入;TDI为测试数据输入,数据通过TDI引脚输入JTAG接口;TDO为测试数据输出,数据通过TDO引脚从JTAG接口输出;TMS为测试模式选择,TMS用来设置JTAG接口处于某种特定的测试模式;TRST为测试复位,输入引脚,低电平有效。GND

TI还定义了一种叫SBW-JTAG的接口,用来在引脚较少的芯片上通过最少的利用引脚实现JTAG接口,它只有两条线,SBWTCK,SBWTDIO。实际使用时一般通过四条线连接,VCC,SBWTCK,SBWTDIO,GND,这样就可以很方便的实现连接,又不会占用大量引脚。

JTAG最初是用来对芯片进行测试的,基本原理是在器件内部定义一个TAP(Test Access Port测试访问口)通过专用的JTAG测试工具对内部节点进行测试。JTAG测试允许多个器件通过JTAG接口串联在一起,形成一个JTAG链,能实现对各个器件分别测试。现今,JTAG接口还常用于实现ISP(In-System Programmable;在线编程),对FLASH等器件进行编程。

JTAG编程方式是在线编程,传统生产流程中先对芯片进行预编程后再装到板上因此而改变,简化的流程为先固定器件到电路板上,再用JTAG编程,从而大大加快工程进度。JTAG接口可对DSP芯片内部的所有部件进行编程。

在硬件结构上,JTAG 接口包括两部分:JTAG 端口和控制器。与JTAG 接口兼容的器件可以是微处理器(MPU)、微控制器(MCU)、PLD、CPL、FPGA、DSP、ASIC 或其它符合IEEE1149.1 规范的芯片。IEEE1149.1 标准中规定对应于数字集成电路芯片的每个引脚都设有一个移位寄存单元,称为边界扫描单元BSC。它将JTAG 电路与内核逻辑电路联系起来,同时隔离内核逻辑电路和芯片引脚。由集成电路的所有边界扫描单元构成边界扫描寄存器BSR。边界扫描寄存器电路仅在进行JTAG 测试时有效,在集成电路正常工作时无效,不影响集成电路的功能。

JTAG是一种所谓的边界扫描技术。

边界扫描测试是在20世纪80年代中期作为解决PCB物理访问问题的JTAG接口发展起来的,这样的问题是新的封装技术导致电路板装配日益拥挤所产生的。边界扫描在芯片级层次上嵌入测试电路,以形成全面的电路板级测试协议。利用边界扫描--自1990年以来的行业标准IEEE 1149.1--您甚至能够对最复杂的装配进行测试、调试和在系统设备编程,并且诊断出硬件问题。

边界扫描的优点:

通过提供对扫描链的IO的访问,可以消除或极大地减少对电路板上物理测试点的需要,这就会显著节约成本,因为电路板布局更简单、测试夹具更廉价、电路中的测试系统耗时更少、标准接口的使用增加、上市时间更快。除了可以进行电路板测试之外,边界扫描允许在PCB贴片之后,在电路板上对几乎所有类型的CPLD和闪存进行编程,无论尺寸或封装类型如何。在系统编程可通过降低设备处理、简化库存管理和在电路板生产线上集成编程步骤来节约成本并提高产量。

边界扫描原理:

IEEE 1149.1 标准规定了一个四线串行接口(第五条线是可选的),该接口称作测试访问端口(TAP),用于访问复杂的集成电路(IC),例如微处理器、DSP、ASIC和CPLD。除了TAP之外,混合IC也包含移位寄存器和状态机,以执行边界扫描功能。在TDI(测试数据输入)引线上输入到芯片中的数据存储在指令寄存器中或一个数据寄存器中。串行数据从TDO(测试数据输出)引线上离开芯片。边界扫描逻辑由TCK(测试时钟)上的信号计时,而且TMS(测试模式选择)信号驱动TAP控制器的状态。TRST(测试重置)是可选项。根据相关数据手册中的说明,TRST、TDI、TMS引脚上需要接一个10KΩ的上拉电阻,而TCK需要接一个10KΩ的下拉电阻。

在PCB上可串行互连多个可兼容扫描功能的IC,形成一个或多个扫描链,每一个链都由其自己的TAP。每一个扫描链提供电气访问,从串行TAP接口到作为链的一部分的每一个IC上的每一个引线。在正常的操作过程中,IC执行其预定功能,就好像边界扫描电路不存在。但是,当为了进行测试或在系统编程而激活设备的扫描逻辑时,数据可以传送到IC中,并且使用串行接口从IC中读取出来。这样数据可以用来激活设备核心,将信号从设备引线发送到PCB上,读出PCB的输入引线并读出设备输出。

在嵌入式系统设计中,一些高档的微处理器都带有JTAG接口,方便多目标系统进行测试,同时还可以实现flash编程。

引脚关系
因为只有一条数据线,通信协议有必要像其他串行设备接口,如SPI一样为串行传输。时钟由TCK引脚输入。配置是通过TMS引脚采用状态机的形式一次操作一位来实现的。每一位数据在每个TCK时钟脉冲下分别由TDI和TDO引脚传入或传出。可以通过加载不同的命令模式来读取芯片的标识,对输入引脚采样,驱动(或悬空)输出引脚,操控芯片功能,或者旁路(将TDI与TDO连通以在逻辑上短接多个芯片的链路)。TCK的工作频率依芯片的不同而不同,但其通常工作在10-100MHz(每位10-100ns)。
当在集成电路中进行边界扫描时,被处理的信号是在同一块IC的不同功能模块间的,而不是不同IC之间的。
TRST引脚是一个可选的相对待测逻辑低电平有效的复位开关——通常是异步的,但有时也是同步的,依芯片而定。如果该引脚没有定义,则待测逻辑可由同步时钟输入复位指令而复位。
尽管如此,极少消费类产品提供外部的JTAG端口接口,但作为开发样品的残留,这些接口在印刷电路板上十分常见。在研发后,这些接口常常为反向工程提供了非常良好的途径。

JTAG已经有脚了,通常四个脚:TDI,TDO,TMS,TCK,当然还有个复位脚TRST。对于芯片上的JTAG的脚实际上是专用的。

TDI:测试数据输入,数据通过TDI输入JTAG口;

TDO:测试数据输出,数据通过TDO从JTAG口输出;

TMS:测试模式选择,用来设置JTAG口处于某种特定的测试模式;

TCK:测试时钟输入;

TRST:测试复位;


快速发帖

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|Archiver|汽车工程师之家 ( 渝ICP备18012993号-1 )

GMT+8, 27-12-2024 11:32 , Processed in 0.419088 second(s), 30 queries .

Powered by Discuz! X3.5

© 2001-2013 Comsenz Inc.