第9节 ARM的JTAG接口
推荐给好友
打印
加入收藏
更新于2008-08-07 23:48:57

JTAG概述
JTAG是Joint Test Action Group的缩写,是IEEE 1149.1标准。
使用JTAG的优点:JTAG的建立使得集成电路固定在PCB上,只通过边界扫描便可以被测试。
在ARM7TDMI处理器中,可以通过JTAG直接控制ARM的内部总线、I/O口等信息,从而达到调试的目的。

边界扫描
JTAG 调试中,边界扫描(Boundary-Scan)是一个很重要的概念。
边界扫描基本思想:在靠近芯片的输入输出管脚上增加一个移位寄存器单元。因为这些移位寄存器单元都分布在芯片的边界上(周围),所以被称为边界扫描寄存器(Boundary-Scan Register Cell)。
当芯片处于调试状态时,这些边界扫描寄存器可以将芯片和外围的输入输出隔离。
通过这些边界扫描寄存器单元,可以实现对芯片输入输出信号的观察和控制。在正常运行状态下,这些边界扫描寄存器对芯片来说是透明的。
芯片输入输出管脚上的边界扫描(移位)寄存器单元可以相互连接起来,在芯片的周围形成一个边界扫描链(Boundary-Scan Chain)。一般的芯片都会提供几条独立的边界扫描链,用来实现完整的测试功能。
边界扫描链可以串行的输入和输出,通过相应的时钟信号和控制信号,就可以方便的观察和控制处在调试状态下的芯片。

TAP (TEST ACCESS PORT)在IEEE 1149.1 标准里面,寄存器被分为两大类:数据寄存器(DR-Data Register)和指令寄存器(IR-Instruction Register)。边界扫描链属于数据寄存器中很重要的一种。
边界扫描链:用来实现对芯片的输入输出的观察和控制。
指令寄存器:用来实现对数据寄存器的控制,例如:在芯片提供的所有边界扫描链中,选择一条指定的边界扫描链作为当前的目标扫描链,并作为访问对象。
TAP :一个通用的端口,通过TAP 可以访问芯片提供的所有数据寄存器(DR)和指令寄存器(IR)。
对TAP 的控制通过TAP Controller 来完成。
TAP 包括5 个信号:TCK、TMS、TDI、TDO 和TRST。

JTAG 接口的主要信号
(1)Test Clock Input (TCK)
为TAP 的操作提供一个独立的、基本的时钟信号,TAP 的所有操作都是通过这个时钟信号来驱动的。
(2)Test Mode Selection Input (TMS)
控制TAP 状态机的转换。通过TMS ,可以控制TAP 在不同的状态间相互转换。TMS 信号在TCK 的上升沿有效。
(3)Test Data Input (TDI)
数据输入。所有要输入到特定寄存器的数据都是通过TDI 接口一位一位串行输入的(由TCK 驱动)。
(4)Test Data Output (TDO)
数据输出。所有要从特定的寄存器中输出的数据都是通过TDO 接口一位一位串行输出的(由TCK 驱动)。
(5)Test Reset Input (TRST)
复位(初始化)。
***通过TAP 接口,对DR进行访问的一般过程是:
1)通过IR,选定一个需要访问的数据寄存器;
2)把选定的数据寄存器连接到TDI 和TDO 之间;
3)由TCK 驱动,通过TDI,把需要的数据输入到选定的数据寄存器中;并把选定的数据寄存器中的数据通过TDO读出。

TAP 主要状态
TAP有16 个状态,状态的转换由TMS 控制。
Test-Logic Reset:系统上电后,TAP Controller 自动进入该状态。在该状态下,测试部分的逻辑电路全部被禁用。
Run-Test/Idle:在不同操作间的一个中间状态。这个状态下的动作取决于当前指令寄存器中的指令。
Select-DR-Scan:临时的中间状态。
Capture-DR:在TCK 上升沿,芯片输出管脚上的信号将被“捕获”到与之对应的数据寄存器的各个单元中去。
Shift-DR:由TCK 驱动,每一个时钟周期,被连接在TDI 和TDO 之间的数据寄存器将从TDI 接收一位数据,同时通过TDO 输出一位数据。
Update-DR:由TCK 上升沿驱动,数据寄存器当中的数据将被加载到相应的芯片管脚上去,用以驱动芯片。
Select-IR-Scan:临时的中间状态。
Capture-IR:一个特定的逻辑序列装载到指令寄存器中。
Shift-IR:与Shift-DR类似,对应指令寄存器。
Update-IR:新指令将被用来更新指令寄存器。

TAP 状态机

JTAG链的工作过程
步骤一:JTAG处于挂起状态,JTAG的扫描单元并不影响设备信号的输入输出。
步骤二:在JTAG状态机的Capture-DR状态,把IO口上的数据捕获到JTAG扫描单元的移位寄存器上。
步骤三:在JTAG状态机的Shift-DR状态,TCK的一次跳变,把数据从TDI移位到JTAG移位寄存器的高位上,并从TDO输出移位寄存器的低位(就是O3的数据)。
步骤四:经过6个TCK的时钟可以把整个捕获到的JTAG链的移位寄存器上的数据移出,并且,把新的数据移入JTAG链。
步骤五:在JTAG状态机的Update—DR状态,可以把新的数据锁定到设备的输入或者输出I/O口上,从而完成了一次JTAG的数据更新。

ARM7TDMI的JTAG调试结构
一个调试系统一般包括三个部分:
(1)调试主机
(2)协议转换器
(3)调试目标

 

ARM7TDMI 处理器的结构框图
ARM7TDMI 处理器主要包括三大部分:
ARM CPU Main Processor Logic:包括对调试的硬件支持。
Embedded ICE-RT Logic:包括一组寄存器和比较器,用来产生调试异常、设置断点和观察点。
TAP Controller:通过JTAG 接口来控制和操作扫描链。

 JTAG扫描链
ARM7TDMI的JTAG宏单元(Macrocell)主要包括3条JTAG扫描链(Scan Chain) 和一个JTAG的控制TAP状态机。
Scan Chain 0:可以访问ARM7TDMI 内核的外围电路,包括数据总线。该扫描链长度为113 位,具体包括:数据
总线的0-31 位,内核控制信号,地址总线的31-0 位,EmbeddedICE-RT 的控制信号。
Scan Chain 1:扫描链1是扫描链0 的子集,长度为33 位,具体包括:数据总线的0-31 位、BREAKPT信号。扫描
链1 比扫描链0 的长度短了很多,通过扫描链1 可以更快的插入指令或者是数据到ARM7TDMI 的内部。
Scan Chain 2:扫描链2 长度为38 位,该扫描链是专门用来访问EmbeddedICE-RT 内部的寄存器。通过访问EmbeddedICE-RT 的内部寄存器,可以让ARM7TDMI 进入调试状态、设置断点、设置观察点。

ARM7TDMI中通过JTAG对外设的访问
JTAG可以对ARM的内核进行控制,从而实现对外围设备的读写。
通常,在ARM7TDMI处理器中,JTAG对ARM外围设备的访问是通过对JTAG扫描链1的控制实现的。
ARM7TDMI中JTAG扫描链1有33个移位寄存器。其中前32位和ARM总线上的数据相连,第33位是ARM内核的—个控制信号。
当第33位是0时,表示ARM内核在执行下一条指令的时候,是在Debug模式下运行;
当第33位是1时,表示ARM内核在执行下一条指令的时候,是在System模式下运行。

复习题
1.S3C44B0X具有多少通用I/O口?它们具有哪些功能?
2.简述矩阵式键盘线扫描检测法的工作原理。
3.简述电阻型触摸屏检测坐标值的原理。
4.S3C44B0X内部LCD控制器支持RGB像素点字节的数据格式是什么?
5.S3C44B0X的UART接口具有哪些功能特性?
6.假设要将S3C44B0X的UART1设置为:波特率9600b/s,7位数据位,2个停止位,1位奇偶校验位,并采用流控制工作,该如何设置?给出完成该设置功能的代码段。
7.CAN总线通信最少需要几根线?
8.S3C44B0X的A/D转换器的类型是什么?共具有几路?与ADC相关的寄存器有哪些?它们的作用分别是什么?
9.A/D转换器分为哪儿类?各有什么优缺点?
10.什么是JTAG?它有哪些特点?

课堂作业(二)
1简述指令SWI、STM、MOV、MVN的含义
SWI:用于产生软件中断,以使用户程序调用操作系统的系统例程。
STM:将各个寄存器的值存入一片连续的内存单元中
MOV:数据传送指令
MVN:数据取反传送指令
2.假设R0的内容为0x8000,寄存器R1,R2内容分别为0x10和0x20,存储器内容为空。执行下述指令以后,说明存储器及寄存器的内容如何变化?
STMIB R0! ,{R1,R2}
LDMIA R0!,{R1,R2} 


课堂作业(二)
3如何定义一个宏,宏和子程序的区别是什么?
使用宏定义伪指令: MACRO和MEND
宏指令可以重复使用,与子程序有些类似,子程序可以节省存储空间,提供模块化的程序设计。但是使
用子程序结构时需要保存/恢复现场,从而增加了系统的开销。
4ADR和ADRL伪指令都是将基于PC的地址值或基于寄存器的地址值读取到寄存器中,二者的区别是什么?LDR伪指令 的作用是什么?其主要用途是什么?
ADR 小范围地址读取
ADRL 中等范围地址读取,类似于ADR, 但比ADR读取更大范围的地址。
LDR 大范围地址读取,加载32位的立即数或一个地址值到目标寄存器Rd。

课堂作业(二)
5C语言调用汇编程序时,使用哪些寄存器用来传递参数?
如果函数有4个参数,则将分别用r0 、r1、r2和r3来传递,如果参数多于4个,则多余的参数将被压入堆栈。
6请回答下述缩写的中英文含义:
MIPS IrDA UART JTAG PLL
MIPS:Million Instructions Per Second的缩写,每秒处理的百万级的机器语言指令数。
IrDA: Infrared Data Association红外数据协会
UART: Universal Asynchronous Receiver/Transmitter )通用异步收发器
JTAG: Joint Test Action Group缩写,是IEEE的标准规范
PLL: Phase-Locked Loop(锁相环)的缩写

<<上一节 下一节>>

相关链接


 
关于我们 | 诚邀加盟 | 客户服务 | 相关法律 | 网站地图 | 友情链接 | 服务信箱:service@eefocus.com
© 2006 与非门科技信息咨询(北京)有限公司 All Rights Reserved.