当前位置:文档之家› JTAG与SWD接口的工作原理

JTAG与SWD接口的工作原理

第5章 PSoC编程和调试接口功能
何宾 2011.12
本章内容
本章主要介绍PSoC3的编程和调试接口功能,其 内容主要包括:
测试控制器的模块结构和连接器接口; JTAG和SWD接口的工作原理; PSoC3的JTAG和SWD接口的工作原理; 8051的片上调试模块(DoC); 非易失性存储器的编程。
位代码 0101
1010 1011 1000
1100
指令
PSoC3功能
CLASMP
DPACC APACC
将TDI和TDO连接到BYPASS寄存器,设置引脚到边界扫描 寄存器的当前内容
连接TDI和TDO到DP/AP寄存器,用于访问调试端口寄存器 连接TDI和TDO到DP/AP寄存器,用于访问访问端口寄存器
PSoC3 JTAG接口与IEEE1149.1-2001规范兼容,同 时提供了额外的指令。指令寄存器为4比特宽度。下表给 出了PSoC3额外的JTAG指令。
JTAG与SWD接口的工作原理 --PSoC3的JTAG和SWD接口的工作原理
位代码 1111 1110 0010
0000 0100
表 PSoC3额外的JTAG指令
2.10针连接器 如下图所示,10针连接器配置成双排,每针之间间隔
为50mil。
图 10针连接器
测试控制器
--连接器接口
表 不同通信协议的引脚分配
协议
信号
5针
10针
ISSP
SCLK
4
SDAT
5
XRES
3
JTAG
TMS
2
TCK
4
TDO
6
TDI
8
XRES
10
SWD/SWV
SDIO
5
2
SCK
4
4
SWV
JTAG与SWD接口的工作原理 --SWD工作原理
ACK Code 100 010 001
表 SWD接口可能的ACK位值
意义 认头部,后面跟着数据; WAIT-以前的传输仍然正在被处理,主机应该重试; FAULT-在调试端口控制/状态寄存器设置的一个默认标志。
9)地址,ACK和读/写数据总是从最低位开始传输。 SWD接口在50多个时钟周期复位,此时SWDIO为高。
JTAG与SWD接口的工作原理 --PSoC3的JTAG和SWD接口的工作原理
1.时钟 JTAG接口的TCK时钟和SWD接口的SWDCLK时钟共
享芯片的P1[1]引脚(一个可替换的SWDCK时钟能输入到 USB D-引脚,P15[7])。时钟频率在1MHz和CPU_CLK/2 或者25MHz。 2.PSoC3的JTAG指令
测试控制器 --测试控制器模块结构
PSoC3结构包括一个测试控制器,主要用于下面 的目的:
用于边界扫描测试访问I/O引脚; 通过PSoC3的片上调试DoC模块来访问芯片的存储器和寄存
器。
测试控制器 --测试控制器模块结构
测试控制器通过边界扫描端口(Joint Test Action Group,JTAG)或者串行调试(Serial Wire Debug, SWD)接口连接到片外设备。测试控制器包含下面的特 性:
用于控制边界扫描单元值的接口叫做测试访问端口 (Test Access Port,TAP),也就是经常所说的JTAG接 口。
JTAG接口由:
测试数据输入(TDI); 测试数据输出(TDO); 测试模式选择(TMS); 测试时钟信号(TCK)和其它信号构成。
下图给出了JTAG连接多个IC芯片的结构。
指令
BYPASS IDCODE SAMPLE/ PRELOAD EXTEST INTEST
PSoC3功能 参考IEEE1149.1-2001 参考IEEE1149.1-2001 参考IEEE1149.1-2001
参考IEEE1149.1-2001 与EXTEST一样
JTAG与SWD接口的工作原理 --PSoC3的JTAG和SWD接口的工作原理
在JTAG capture dr状态下或者从SWD接口读数据
时,下表给出了读寄存器的格式。

表 读寄存器的格式
ReadResult[31:0]
ACK[2:0]
1)[34:3]位:32位数据,如果端口寄存器小于32位宽 度,只传输最低的N(位宽度)比特。
2)[2:0]位:ACK确认符-取决于接口,下表给出了 JTAG/SWD接口的ACK响应。
表 JTAG/SWD接口的ACK响应
ACK
JTAG
SWD
OK
010
001
WAIT
001
010
JTAG与SWD接口的工作原理 --PSoC3的JTAG和SWD接口的工作原理
4.JTAG/SWD地址(PSoC3) 在PSoC3结构中,JTAG/SWD接口所传输的两位地
这个解决方案就是后来的IEEE1149.1-2001标准, 这个标准基于一个概念,即使用一个布线贯穿所有IC引 脚的移位寄存器(这也叫做边界扫描)。每个引脚上都 有一个边界扫描单元。在PSoC3中,大部分的GPIO和 SIO端口引脚都有边界扫描单元。
JTAG与SWD接口的工作原理 --JTAG工作原理
支持到调试主机的JTAG或者SWD接口; SWD接口可以使用GPIO或者USB引脚; 支持边界扫描IEEE标准1149.1-2001“Test Access Port and
Boundary-Scan Architecture”; 支持额外的JTAG指令/寄存器,用于访问芯片的剩余部分; 与PSoC3的调试模块接口用于访问芯片的剩余部分用于编程和
TAP内的寄存器包含:
1)Instruction:2-4位宽,存放当前指令,该指令定义了在 TDI-TDO移位通道上的数据寄存器,引起设备被旁路用于 JTAG模式;
2)Bypass:1位宽度,TDI和TDO直接连接; 3)ID:32位宽,用于读JTAG的制造商/芯片的ID号; 4)Boundary Scan Path(BSR):宽度等于I/O引脚(有边
还是一个调试端口访问(逻辑‘0’)。 3)下一比特为RnW,‘1’表示从设备读;‘0’表示设备写; 4)ADD为寄存器选择位,用于选择访问端口或者调试端
口;
JTAG与SWD接口的工作原理 --SWD工作原理
5)Parity位是对APnDP,RnW和ADDR的奇偶校验位。如果 这些位域的逻辑‘1’的个数为奇数,则该位为‘1’;否则为 ‘0’。
其中:
1)ir:是指令寄存器; 2)dr:其它寄存器中的一个(包括边界扫描路径),由指
令寄存器的内容确定; 3)capture:将dr寄存器的内容传输到移位寄存器中,然后
移出TDO; 4)update:传输移位寄存器的内容,从TDI移入到一个dr;
JTAG与SWD接口的工作原理 --JTAG工作原理
ABORT SLEEP
只存在PSoC5,退出当前的AP访问指令。连接TDI和TDO到 DP/AP寄存器,
通知PSoC3/5电源管理器,如果必要的话,切断测试控制器 TC的电源。如果不设置该指令,则不能进入SLEEP。
JTAG与SWD接口的工作原理 --PSoC3的JTAG和SWD接口的工作原理
3.DP/AP访问寄存器 PSoC3有一个35位宽的DP/AP访问寄存器,该寄
如果奇偶位不正确,忽略头部(header),没有ACK响应; 当主机检测到头部被忽略,在进行另外一次传输时,必须等待一个完
整的读传输时间。
6)停止位为逻辑‘0’; 7)Park:该位不是由主机驱动,SWD接口将信号线拉高,
设备(芯片)读取该位为逻辑‘1’; 8)ACK:为设备到主机的响应。表7.2给出了可能的值。
6
XRES
3
10
I2C
SCK
4
SDA
5
JTAG与SWD接口的工作原理 --JTAG工作原理
为了应对IC芯片日益增加的高引脚密度,联合行 动测试小组(Joint Test Action Group,JTAG)提供了一 个用于测试电路板的方法,这个方法就是通过一个独立 的测试接口来控制IC的引脚(和读取它们的值)。
界扫描单元)的数量,用于设置或者读写这些I/O引脚的状 态;
JTAG与SWD接口的工作原理 --JTAG工作原理
在IEEE1149中,给出了标准的指令集: 1)EXTEST:该指令将使得TDI和TDO连接到边界扫
描通路上(BSR),芯片将从普通操作模式改变为测试模 式。芯片引脚的状态可以使用capture dr的JTAG状态进行 采样,使用updata dr状态新的值可以用于芯片引脚上。
1)包请求(Packet Request):外部主机调试器向目标设 备发送一个包请求信号;
2)确认响应(Acknowledge Response):目标设备向主机 发送一个响应信号;
3)数据(Data):当包请求跟一个确认响应后,传输数据:
目标设备到主机-读请求后为-RDATA; 主机到目标设备-写请求后为-WDATA;
调试操作;
测试控制器 --测试控制器模块结构
如下图,PSoC3测试控制器将JTAG或者SWD访问转 换成DoC模块内寄存器的访问。
图 PSoC3测试控制器模块图
测试控制器 --连接器接口
1.5针连接器 如下图所示,5针连接器配置成单排,每针之间间隔
为100mil。
图 5针连接器
测试控制器 --连接器接口
存器用于在JTAG/SWD接口和调试/访问端口寄存器之 间进行数据传输。SWD直接读/写DP/AP寄存器;JTAG 使用DPACC和APACC指令读/写 DP/AP寄存器。
在JTAG updata dr 状态或者从SWD接口写到寄存 器,下表给出了DP/AP寄存器的结构。
相关主题