在ECU软件开发过程,通过调试器进行软件debug或测试经常会接触到JTAG接口,即通过JTAG协议使用 JLink 、ST-LINK和Lauterbach等仿真器/调试器在线调试软件程序。大家天天都在用,但是并不一定熟悉它,了解它,因此本文打算对此稍作介绍。
1 JTAG协议简介
JTAG成立于20世纪 8 年代中期,旨在开发一种验证设计和测试制造后的印刷电路板的方法。在JTAG开发之前,电子电路的测试和调试是一个耗时且昂贵的过程,工程师必须手动探测和测试电路板上的每个引脚,这不仅速度慢,而且容易出错。JTAG的创建是为了提供用于测试和调试电子电路的标准化接口,它使用一组特殊的测试访问端口 (TAP),使工程师能够与电路交互并执行各种测试和调试任务。
JTAG)的成立:1985 年,德州仪器、IBM、英特尔和惠普等电子行业领先公司的代表成立了联合测试行动小组。该小组的主要目标是创建一种标准化方法来测试和调试电子系统,因为使用传统方法测试这些系统变得越来越复杂和困难。 早期开发和贡献:JTAG协议早期开发的主要贡献者包括德州仪器公司的Ken Parker,他提出了使用单一标准化接口访问 IC 或 PCB 的多个引脚进行测试的概念。IBM 公司的 David Brownell 为 JTAG 状态机的设计做出了重大贡献,该状态机在控制测试操作和转换方面起着至关重要的作用。 JTAG 标准 介绍:1987年,联合测试行动小组正式发布了JTAG标准,即IEEE 1149.1。该标准名为“标准测试访问端口和边界扫描架构”,为在电子设备中实现JTAG协议提供了全面的框架,JTAG标准定义了必要的信号及其功能、状态机操作和边界扫描测试技术。 快速采用和行业影响:JTAG协议凭借其众多优势迅速获得电子行业的认可,通过提供标准化的测试方法,JTAG大大简化了复杂系统的测试流程。它允许工程师执行非侵入式测试和调试,即使在难以或无法物理访问单个引脚的情况下也是如此。因此,JTAG 成为各种电子产品设计、制造和测试流程中不可或缺的一部分。 演进和扩展:随着技术的不断进步,JTAG标准也不断发展,以满足行业不断变化的需求。引入了其他标准和扩展来增强JTAG的功能。比如IEEE 1149.4解决了模拟测试功能,而IEEE 1149.6则专注于高速数字系统中的测试挑战。 融入行业标准:JTAG 已融入各种其他行业标准,以进一步扩大其应用范围和优势。值得注意的是,它已成为IEEE 1500的一部分,该标准专注于测试集成电路内的知识产权 (IP) 核心。
2 JTAG 协议的架构
测试时钟 (TCK):同步测试设备和 DUT 之间的数据传输的时钟信号。
测试模式选择 (TMS):决定 TAP 状态机状态转换的控制信号。
测试数据输入 (TDI):用于将测试数据输入 DUT 的双向数据信号。
测试数据输出 (TDO):用于从 DUT 输出测试数据的双向数据信号。
测试复位(TRST)(可选):用于复位 TAP 的可选信号。
测试逻辑复位 (TLR):上电或测试复位后的初始状态,其中 TAP保持稳定状态。
运行测试/空闲 (RTI): TAP处于空闲状态,等待指令或测试数据。
选择-DR-扫描 (SDR):TAP准备将数据移入或移出DUT的数据寄存器的状态。
捕获-DR(CDR):捕获要移入DR的输入数据的状态。
移位-DR(SDR):数据移入或移出DR的状态。
Exit1-DR(EDR1):TAP离开Shift-DR状态,准备进行下一步操作的状态。
Exit2-DR(EDR2):最后一位移位完成后,TAP退出Shift-DR状态的状态。
EXTEST:EXTEST指令用于进行互连测试。激活后,它会将强制边界扫描寄存器连接到 TDI和TDO之间,从而有效地将设备置于“外部”测试模式。在此模式下,边界扫描输出单元将测试数据驱动到设备引脚上,而输入单元则从这些引脚捕获数据。此指令对于边界扫描测试至关重要。 SAMPLE/PRELOAD:SAMPLE/PRELOAD指令与EXTEST有相似之处,但允许边界扫描设备保持任务/功能模式,同时仍将边界扫描寄存器链接到TDI和TDO。使用 SAMPLE/PRELOAD指令时,可以通过数据扫描访问边界扫描寄存器,同时设备仍可运行。此功能有利于将数据预加载到边界扫描寄存器中,而不会中断设备的功能行为,为随后执行EXTEST指令做好准备。 BYPASS:BYPASS 指令通过单比特寄存器在TDI和TDO之间建立直接连接,绕过设备的较长边界扫描寄存器,因此得名。BYPASS通过排除当前操作不需要的设备,在缩短边界扫描链方面具有极大的优势。接收 BYPASS指令的设备保持其任务/功能模式,同时允许无缝串行数据流向链中的后续设备。
4 JTAG 协议 TAP 控制器
5 JTAG 接口连接器及其引脚排列
20针JTAG连接器。 16 针 OCDS JTAG 连接器。 14 针 JTAG 连接器。 10 针 JTAG 连接器(ARM JTAG 连接器)。 定制 JTAG 连接器。 表面贴装 JTAG 连接器。 飞线 JTAG 连接器。
以20针JTAG连接器为例,20针JTAG连接器是使用最广泛的,顾名思义,它具有20个引脚,排列成两排,每排10个。这种连接器类型通常用于传统的JTAG应用,可以在许多开发板和评估平台上找到,它为JTAG通信提供了标准接口,并且与大多数JTAG编程器和调试器兼容,引脚定义如下:
6 JTAG协议的工作原理
将JTAG硬件接口连接到目标设备的JTAG接口。 使用 TCK、TMS、TDI 和 TDO 引脚在 PC 和 JTAG 接口之间建立通信。 将TAP置于所需状态,比如选择-DR-扫描 (SDR),以访问和操作设备的内部寄存器。 在PC上安装适当的调试软件,通过JTAG接口连接目标设备。 调试软件允许您读取和写入数据到内部寄存器,设置断点,停止处理器,以及执行其他调试操作。
6 小结
汽车研发交流群,有兴趣的朋友请添加群主:prOmiseyes,备注:公司+职务入群。仅限汽车从业人员。