IT-ZTP 发表于 2025-8-5 17:02

G32R501产品经验分享之五-“JTAG与cJTAG的区别与联系及TAP控制器菊花链解析

大家好,最近在研究极海G32R501的产品,书接上回:G32R501电源管理模块硬件设计与软件调试若干建议”,今天来跟大家一起分享”G32R501产品经验分享之五-“JTAG与cJTAG的区别与联系及TAP控制器菊花链解析” 首先回顾一下之前三章内容G32R501产品调试经验之一“系统启动(BOOT)”https://bbs.21ic.com/icview347581811.html?fromuser=ITZTPG32R501产品调试经验分享之二“写寄存器保护与CAP的渊源”https://bbs.21ic.com/icview347592811.html?fromuser=ITZTPG32R501产品经验分享之三-电源管理模块(PMM)技术介绍https://bbs.21ic.com/icview-3476022-1-1.html?fromuser=IT-ZTPG32R501产品经验分享之四“电源管理调试设计若干建议”https://bbs.21ic.com/icview-3476028-1-1.html?fromuser=IT-ZTP
昨天在读到G32R501第五章节 调试与仿真章节,发现两个新概念:JTAG与cJTAG,TAP控制器菊花链。本人对这个两个概念产生浓厚兴趣,通过咨询同事,以及查技术文档,将学到的知识总结下来分享给大家。 一、JTAG与cJTAG的区别与联系 1. 基本概念 JTAG (IEEE 1149.1-1990):- 标准测试访问端口和边界扫描架构- 采用4个专用引脚:TMS(测试模式选择)、TDI(测试数据输入)、TDO(测试数据输出)和TCK(测试时钟) cJTAG (IEEE 1149.7-2009):- 针对简化引脚和增强功能测试访问端口以及边界扫描架构- 仅需2个引脚:TMS和TCK(可多路复用为传统GPIO35/TDI和GPIO37/TDO) 2. 主要区别
特性JTAG (IEEE 1149.1)cJTAG (IEEE 1149.7)
引脚数量4个(TMS, TDI, TDO, TCK)2个(TMS, TCK)
多核支持有限支持支持独立核心测试
扫描链路单一连续扫描链可创建多个独立子链
额外控制信号无有(如CCIF)
兼容性广泛支持需要特定工具支持
时序要求较宽松更严格(需考虑核心切换)
3. 技术细节对比 时序要求:- JTAG:TCK周期时间最小66.66ns,TDI/TMS设置时间13ns,保持时间7ns- cJTAG:TCK周期时间最小100ns,TMS设置时间15ns,保持时间2ns 电气特性:- JTAG信号在10MHz下通常不需要缓冲器或串联电阻,但在35MHz高速仿真时建议每个信号串联22Ω电阻- cJTAG由于引脚复用,对信号完整性要求更高 功能扩展:- cJTAG支持"星型"和"菊花链"拓扑结构,而传统JTAG主要支持菊花链- cJTAG可以动态配置扫描链长度,传统JTAG固定 4. 联系与兼容性 - cJTAG基于JTAG标准扩展,核心功能兼容- 可通过转换电路实现JTAG到cJTAG的接口转换- G32R501同时支持两种接口,可通过引脚复用灵活选择 二、菊花链标准TAP控制器解析 1. 基本概念 TAP控制器:- 测试访问端口(Test Access Port)控制器- 16状态的同步有限状态机,响应TCK上升沿- 通过TMS和TCK协同控制数据流 菊花链(Daisy Chain):- 一种特殊的串行编程方式,多个JTAG设备串联连接- 前一个设备的TDO连接下一个设备的TDI,形成链式结构- 所有设备共享TCK和TMS信号 2. 菊花链工作原理 物理连接:```JTAG接口 → 设备1 → 设备2 → ... → 设备N → JTAG接口```所有设备TCK和TMS并联连接 工作流程:1. 通过TMS控制所有TAP控制器进入Shift-IR状态2. 通过TDI输入指令序列(各设备指令长度之和)3. 控制TMS使TAP进入Shift-DR状态4. 通过TDI输入数据序列,各设备按指令处理数据 关键寄存器:- 指令寄存器(IR):存储当前操作指令- 数据寄存器组:包括边界扫描寄存器、旁路寄存器等- 旁路寄存器(BP):1位寄存器,用于跳过不操作的设备 3. 菊花链配置示例 假设链中有3个设备:- 设备A:IR宽度4位,IDCODE 00111- 设备B:IR宽度4位,IDCODE 00011 - 设备C:IR宽度4位,IDCODE 00111 IR扫描序列:`1111_0110_1111`- 前4个"1":设备A的IR位宽- 中间4位:设备B的指令(0110)- 后4个"1":设备C的IR位宽 DR扫描序列:`000000`- 7个"0"对应链路上所有寄存器的内容 4. 菊花链应用优势 1. 简化连接:多个设备共享调试接口2. 灵活配置:可通过指令选择操作特定设备3. 节省资源:减少PCB布线复杂度4. 扩展性强:理论上可连接任意数量设备(受驱动能力限制) 5. G32R501中的实现 G32R501采用标准的Arm CoreSight模块配置,通过菊花链TAP控制器实现连接:- 支持SWD和JTAG调试接口- 调试系统集成在Cortex-M52内核中- 可实现多核调试的协同工作 三、实际应用建议 1. 接口选择:   - 引脚受限时选择cJTAG(2线)   - 需要兼容传统工具时选择JTAG(4线) 2. 菊花链设计:   - 链上设备数量不宜过多(信号衰减)   - 长距离(>15cm)或高速(>10MHz)时添加缓冲器 3. 信号完整性:   - JTAG信号避免靠近感性元件   - 高速应用时添加22Ω串联电阻 4. 调试技巧:   - 通过IDCODE识别链中设备位置   - 非操作设备配置为Bypass模式提高效率 通过合理利用G32R501提供的调试接口和菊花链功能,可以显著提高多设备系统的开发和调试效率。
页: [1]
查看完整版本: G32R501产品经验分享之五-“JTAG与cJTAG的区别与联系及TAP控制器菊花链解析