JTAG与SWD接口的.ppt_第1页
JTAG与SWD接口的.ppt_第2页
JTAG与SWD接口的.ppt_第3页
JTAG与SWD接口的.ppt_第4页
JTAG与SWD接口的.ppt_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第5章PSoC编程和调试接口功能 何宾2011 12 本章内容 本章主要介绍PSoC3的编程和调试接口功能 其内容主要包括 测试控制器的模块结构和连接器接口 JTAG和SWD接口的工作原理 PSoC3的JTAG和SWD接口的工作原理 8051的片上调试模块 DoC 非易失性存储器的编程 测试控制器 测试控制器模块结构 PSoC3结构包括一个测试控制器 主要用于下面的目的 用于边界扫描测试访问I O引脚 通过PSoC3的片上调试DoC模块来访问芯片的存储器和寄存器 测试控制器 测试控制器模块结构 测试控制器通过边界扫描端口 JointTestActionGroup JTAG 或者串行调试 SerialWireDebug SWD 接口连接到片外设备 测试控制器包含下面的特性 支持到调试主机的JTAG或者SWD接口 SWD接口可以使用GPIO或者USB引脚 支持边界扫描IEEE标准1149 1 2001 TestAccessPortandBoundary ScanArchitecture 支持额外的JTAG指令 寄存器 用于访问芯片的剩余部分 与PSoC3的调试模块接口用于访问芯片的剩余部分用于编程和调试操作 测试控制器 测试控制器模块结构 如下图 PSoC3测试控制器将JTAG或者SWD访问转换成DoC模块内寄存器的访问 图PSoC3测试控制器模块图 测试控制器 连接器接口 1 5针连接器如下图所示 5针连接器配置成单排 每针之间间隔为100mil 图5针连接器 测试控制器 连接器接口 2 10针连接器如下图所示 10针连接器配置成双排 每针之间间隔为50mil 图10针连接器 测试控制器 连接器接口 表不同通信协议的引脚分配 JTAG与SWD接口的工作原理 JTAG工作原理 为了应对IC芯片日益增加的高引脚密度 联合行动测试小组 JointTestActionGroup JTAG 提供了一个用于测试电路板的方法 这个方法就是通过一个独立的测试接口来控制IC的引脚 和读取它们的值 这个解决方案就是后来的IEEE1149 1 2001标准 这个标准基于一个概念 即使用一个布线贯穿所有IC引脚的移位寄存器 这也叫做边界扫描 每个引脚上都有一个边界扫描单元 在PSoC3中 大部分的GPIO和SIO端口引脚都有边界扫描单元 JTAG与SWD接口的工作原理 JTAG工作原理 用于控制边界扫描单元值的接口叫做测试访问端口 TestAccessPort TAP 也就是经常所说的JTAG接口 JTAG接口由 测试数据输入 TDI 测试数据输出 TDO 测试模式选择 TMS 测试时钟信号 TCK 和其它信号构成 下图给出了JTAG连接多个IC芯片的结构 JTAG与SWD接口的工作原理 JTAG工作原理 下图给出了JTAG接口的内部结构 图JTAG内部结构 JTAG与SWD接口的工作原理 JTAG工作原理 如下图 TMS信号控制TAP的状态机 状态机控制哪个寄存器 包括边界扫描通路 在TDI TDO移位通路上 图TAP状态机 JTAG与SWD接口的工作原理 JTAG工作原理 其中 1 ir 是指令寄存器 2 dr 其它寄存器中的一个 包括边界扫描路径 由指令寄存器的内容确定 3 capture 将dr寄存器的内容传输到移位寄存器中 然后移出TDO 4 update 传输移位寄存器的内容 从TDI移入到一个dr JTAG与SWD接口的工作原理 JTAG工作原理 TAP内的寄存器包含 1 Instruction 2 4位宽 存放当前指令 该指令定义了在TDI TDO移位通道上的数据寄存器 引起设备被旁路用于JTAG模式 2 Bypass 1位宽度 TDI和TDO直接连接 3 ID 32位宽 用于读JTAG的制造商 芯片的ID号 4 BoundaryScanPath BSR 宽度等于I O引脚 有边界扫描单元 的数量 用于设置或者读写这些I O引脚的状态 JTAG与SWD接口的工作原理 JTAG工作原理 在IEEE1149中 给出了标准的指令集 1 EXTEST 该指令将使得TDI和TDO连接到边界扫描通路上 BSR 芯片将从普通操作模式改变为测试模式 芯片引脚的状态可以使用capturedr的JTAG状态进行采样 使用updatadr状态新的值可以用于芯片引脚上 JTAG与SWD接口的工作原理 JTAG工作原理 2 SAMPLE 该指令将使得TDI和TDO连接到边界扫描通路上 BSR 但是芯片仍然处于普通操作模式 使用该指令 BSR可以使用capturedr的JTAG状态进行读取 对进入的功能数据进行采样 然后移出芯片 3 PERLOAD 该指令将使得TDI和TDO连接到边界扫描通路上 BSR 但是芯片仍然处于普通操作模式 该指令用于在加载EXTEST指令前 预加载测试数据到BSR JTAG与SWD接口的工作原理 JTAG工作原理 下面给出了可选的指令 1 IDCODE 该指令使得TDI和TDO线连接到IDCODE寄存器 2 INTEST 该指令将使得TDI和TDO连接到边界扫描通路上 BSR 当EXTEST指令允许访问芯片引脚时 INTEST能访问芯片内核逻辑的信号 JTAG与SWD接口的工作原理 SWD工作原理 SWD接口是由ARM公司开发出来的 目的是减少调试接口所使用的引脚数 SWD接口使用两个信号线 双向的数据线 SWDIO 和用于数据线的时钟信号 SWDCK JTAG与SWD接口的工作原理 SWD工作原理 SWD的每个数据传输由2 3个周期组成 1 包请求 PacketRequest 外部主机调试器向目标设备发送一个包请求信号 2 确认响应 AcknowledgeResponse 目标设备向主机发送一个响应信号 3 数据 Data 当包请求跟一个确认响应后 传输数据 目标设备到主机 读请求后为 RDATA 主机到目标设备 写请求后为 WDATA JTAG与SWD接口的工作原理 SWD工作原理 下图给出了一个SWD写时序图 图SWD写 JTAG与SWD接口的工作原理 SWD工作原理 下图给出了一个SWD读时序图 图SWD读 JTAG与SWD接口的工作原理 SWD工作原理 下面对SWD的读 写序列进行介绍 1 开始位 逻辑 1 初始化传输 2 APnDP位确定传输是一个访问端口访问 逻辑 1 还是一个调试端口访问 逻辑 0 3 下一比特为RnW 1 表示从设备读 0 表示设备写 4 ADD为寄存器选择位 用于选择访问端口或者调试端口 JTAG与SWD接口的工作原理 SWD工作原理 5 Parity位是对APnDP RnW和ADDR的奇偶校验位 如果这些位域的逻辑 1 的个数为奇数 则该位为 1 否则为 0 如果奇偶位不正确 忽略头部 header 没有ACK响应 当主机检测到头部被忽略 在进行另外一次传输时 必须等待一个完整的读传输时间 6 停止位为逻辑 0 7 Park 该位不是由主机驱动 SWD接口将信号线拉高 设备 芯片 读取该位为逻辑 1 8 ACK 为设备到主机的响应 表7 2给出了可能的值 JTAG与SWD接口的工作原理 SWD工作原理 9 地址 ACK和读 写数据总是从最低位开始传输 SWD接口在50多个时钟周期复位 此时SWDIO为高 表SWD接口可能的ACK位值 JTAG与SWD接口的工作原理 PSoC3的JTAG和SWD接口的工作原理 1 时钟JTAG接口的TCK时钟和SWD接口的SWDCLK时钟共享芯片的P1 1 引脚 一个可替换的SWDCK时钟能输入到USBD 引脚 P15 7 时钟频率在1MHz和CPU CLK 2或者25MHz 2 PSoC3的JTAG指令PSoC3JTAG接口与IEEE1149 1 2001规范兼容 同时提供了额外的指令 指令寄存器为4比特宽度 下表给出了PSoC3额外的JTAG指令 JTAG与SWD接口的工作原理 PSoC3的JTAG和SWD接口的工作原理 表PSoC3额外的JTAG指令 JTAG与SWD接口的工作原理 PSoC3的JTAG和SWD接口的工作原理 JTAG与SWD接口的工作原理 PSoC3的JTAG和SWD接口的工作原理 3 DP AP访问寄存器PSoC3有一个35位宽的DP AP访问寄存器 该寄存器用于在JTAG SWD接口和调试 访问端口寄存器之间进行数据传输 SWD直接读 写DP AP寄存器 JTAG使用DPACC和APACC指令读 写DP AP寄存器 在JTAGupdatadr状态或者从SWD接口写到寄存器 下表给出了DP AP寄存器的结构 表DP AP寄存器的结构 JTAG与SWD接口的工作原理 PSoC3的JTAG和SWD接口的工作原理 注 1 34 3 位 32个数据位 如果端口寄存器小于32位宽度 只传输最低的N 位宽度 比特 2 2 1 位 2位地址位 用于调试和访问端口寄存器的选择3 0 位 1 读 0 写 JTAG与SWD接口的工作原理 PSoC3的JTAG和SWD接口的工作原理 在JTAGcapturedr状态下或者从SWD接口读数据时 下表给出了读寄存器的格式 表读寄存器的格式 1 34 3 位 32位数据 如果端口寄存器小于32位宽度 只传输最低的N 位宽度 比特 2 2 0 位 ACK确认符 取决于接口 下表给出了JTAG SWD接口的ACK响应 表JTAG SWD接口的ACK响应 JTAG与SWD接口的工作原理 PSoC3的JTAG和SWD接口的工作原理 4 JTAG SWD地址 PSoC3 在PSoC3结构中 JTAG SWD接口所传输的两位地址 用来访问调试端口 访问端口和I O代码寄存器 下表给出了JTAG SWD地址 表JTAG SWD地址 JTAG与SWD接口的工作原理 PSoC3的JTAG和SWD接口的工作原理 5 调试端口和访问端口寄存器 PSoC3 下表给出来的寄存器都是可读 写的 除了DBGPRT CFG寄存器的第7位 表调试端口和访问端口寄存器 JTAG与SWD接口的工作原理 PSoC3的JTAG和SWD接口的工作原理 6 PSoC3寄存器访问实例下面给出使用JTAG或者SWD接口访问8051xdata空间的方法 假设地址的值为0 xADD8E5 1 使用JTAG写地址值到TRNS ADDR寄存器 调试主机必须 将APACC指令移入到指令寄存器 移动0 写 后面跟 01 选择访问端口寄存器 后面跟0 x00ADD8E5 到35位的DP AP寄存器 进入JTAGupdatedr状态 JTAG与SWD接口的工作原理 PSoC3的JTAG和SWD接口的工作原理 2 使用SWD写地址值到TRNS ADDR寄存器 调试主机必须 发送一个请求包 APnDP 1 RnW 0 ADDR 01 得到来自PSoC3的ACK响应 在数据周期 发送0 x00ADD8E5 3 写值0 xDA到地址0 x00ADD8E5 类似前面步骤 写0 x00ADD8E5到TRNS ADDR寄存器 类似前面步骤 写0 x000000DA到DATA RW寄存器 地址为11 而不是01 测试控制器初始化写传输请求到PSoC3 JTAG与SWD接口的工作原理 PSoC3 5的JTAG和SWD接口的工作原理 4 从地址0 x00ADD8E5读数 类似前面步骤 写0 x00ADD8E5到TRNS ADDR寄存器 类似前面步骤 读DATA RW寄存器 地址为11 而不是01 RnW 1 测试控制器初始化读传输请求到PSoC3 从DATA RW读取的数是无效的 等待至少5个TCK SWDCK时钟周期 避免WAIT响应 再读DATA RW寄存器 数据现在是有效的 8051片上调试 片上调试模块及特点 下图给出了8051的片上调试器模块结构图 图8051片上调试模块结构 8051片上调试 片上调试模块及特点 DOC能接管8051CPU 并且使用PHUB接口访问任何CPU可以访问的地址 该模块的特点主要有 通过JTAG SWD访问的TC接口 访问CPU的内部存储器和SFR 程序计数器PC CPU停止 CPU单步 8个程序地址断点 1个存储器访问断点 看门狗触发断点 断点链接 8051片上调试 片上调试模块及特点 跟踪CPU指令执行 跟踪CPU的程序计数器PC ACC和CPU内部存储器或SFR的一个字节 2048个指令跟踪缓冲区 如果只跟踪PC 1024个指令跟踪缓冲区 如果跟踪PC ACC和CPU内部存储器或SFR的一个字节 连续 触发或者窗口模式 当跟踪缓冲区满时 CPU停止或者覆盖以前的值 当不跟踪时 跟踪缓冲区作为普通SRAM 8051片上调试 片上调试模块及特点 SWV具有下面的特点 32个激励端口寄存器 简单 高效封装和串行化协议 两针输出模式 UART或者曼彻斯特编码方式 8051片上调试 串行线察看器 除了DoC外 PSoC还包括一个串行线察看器模块 SerialWireViewer SWV SWV允许目标驻留代码将诊断信息通过单线传送到外部 使用例子包括数据监视 察看OS任务切换 Printf调试和调用图形化性能统计和分析 profiling SWD输出通过TC到SWV引脚 SWV和JTAGTDO信号共享一个引脚 连接引脚到SWV 设置SWD模式 NV锁存位在复位时 决定JTAG SWD接口引脚的状态 8051片上调试 串行线察看器 SWV是由两个CoreSightTM元件组成 ARM开发的 这两个元件为仪器跟踪宏单元 InstrumentationTraceMacrocell ITM 和串行线输出 SerialWireOutput SWO 这些元件有多个数据 控制和状态寄存器 1 曼彻斯特编码在该协议下 SWV输出最多8个字节 前面和后面分别为起始位和停止位 下表给出了曼彻斯特编码数据序列 表曼彻斯特编码数据序列 8051片上调试 串行线察看器 下表给出了曼彻斯特引脚协议编码 表曼彻斯特引脚协议编码 8051片上调试 串行线察看器 下图给出了使用曼彻斯特编码传输数据序列的图 图使用曼彻斯特编码传输数据序列 8051片上调试 串行线察看器 2 UART编码下图给出了UART的编码序列 下表给出了UART的编码 图UART的编码序列 表UART引脚协议编码 8051片上调试 串行线察看器 下表给出了SWV寄存器的列表 表SWV寄存器 PSoC编程和调试接口功能 非易失性存储器编程 PSoC3有三种类型的非易失性存储器 NonvolatileMemory NVL Flash EEPROM 非易失性锁存器 NonvoltileLatch NVL 这些能使用CPU所运行的启动引导代码编程或者通过JTAG SWD接口连接的外部系统 PSoC编程和调试接口功能 非易失性存储器编程 下图给出了Flash的块图结构 图Flash块图 P

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论