SWD和JTAG调试接口

1.前言

写这个话题得原因是用到STM32F031K时,没有找到JTAG调试接口,问了领导才知道可以用SWD接口去调试,那我不知道肯定得弄清楚是啥呀。

2.SWD接口

2.1 SWD接口是什么?

SWD:Serial Wire Debug串行调试。由ARM公司开发出来的,目的是减少调试接口的引脚数。
SWD与JTAG接口都是在使用仿真器时需要用到的调试接口。
仿真器的作用是替代单片机、ARM对程序的运行进行控制,实现硬件的仿真。

2.2 特点

  • 引脚少
  • 在高速模式下比JTAG可靠。

2.3 使用方法

SWD接口一般只需要3-5个接口,电源、地、SWCLK时钟,SWDIO数据、NRST。其中电源和NRST不是必备的,为了保持稳定工作,最好加上电源,针对不同的仿真器,可加上NRST,NRST是仿真器给MCU的复位信号.

在这里插入图片描述

3. JTAG接口

3.1 简介

JTAG(Joint Test Action Group联合测试行动小组)是一种国际标准测试协议(IEEE 1149.1兼容),主要用于芯片内部测试,芯片制造出来后,往往要测试其引脚的连通信,为了简化和通用测试一个或多个芯片,就有了JTAG。

标准的JTAG接口是4线:TMS、 TCK、TDI、TDO,分别为模式选择、时钟、数据输入和数据输出线。当然还要外加电源和地。
TMS:Test Mode Selection input,用来控制TAP状态机的转换。通过TMS信号,可以控制TAP(test acess point)在不同的状态间相互转换。TMS信号在TCK的上升沿有效。TMS在IEEE 1149.1标准里是强制要求的。

TCK:Test Clock Input ,TCK为TAP的操作提供了一个独立的、基本的时钟信号,TAP的所有操作都是通过这个时钟信号来驱动的。TCK在IEEE 1149.1标准里是强制要求的。

TDI: Test Data Input,TDI是数据输入的接口。所有要输入到特定寄存器的数据都是通过TDI接口一位一位串行输入的(由TCK驱动)。

TDO:Test Data Output ,TDO是数据输出的接口。所有要从特定的寄存器中输出的数据都是通过TDO接口一位一位串行输出的(由TCK驱动)。TDO在IEEE 1149.1标准里是强制要求的。
在这里插入图片描述
TRST:Test Reset Input. TRST可以用来对TAPController进行复位(初始化)。不过也通过TMS也可以对TAP Controll进行复位(初始化)。所以有四线JTAG与五线JTAG之分。
当JTAG连不上MCU时,可以检查是不是没接这个脚导致的。
nRST:可选项,与目标板上的系统复位信号相连,可以直接对目标系统复位。同时可以检测目标系统的复位情况,为了防止误触发应在目标端加上适当的上拉电阻。

3.2 工作原理

基本原理是在器件内部定义一个TAP(Test Access Port;测试访问口)通过专用的JTAG测试工具对进行内部节点进行测试。
一个含有JTAG Debug接口模块的CPU,只要时钟正常,就可以通过JTAG接口访问CPU的内部寄存器和挂在CPU总线上的设备。
一般debug 存储器是 ram而不是flash,因为写flash必须要先擦除,而擦除的地址大小都不一样,所以比较麻烦。
TAP是一个通用的端口,通过TAP可以访问芯片提供的所有数据寄存器(DR)和指令寄存器(IR)。对整个TAP的控制是通过TAP Controller来完成的。
TAP对数据寄存器的访问过程是:

  1. 通过指令寄存器(IR),选定一个需要访问的数据寄存器;
  2. 把选定的数据寄存器连接到TDI和TDO之间;
  3. 由TCK驱动,通过TDI,把需要的数据输入到选定的数据寄存器当中去;同时把选定的数据寄存器中的数据通过TDO读出来。
    TAP状态机:总共有16个状态。
    Test-Logic-Reset测试逻辑复位状态
    Run-Test-Idle运行测试空闲状态
    Select-DR-Scan选择数据寄存器扫描状态
    Capture-DR捕获数据寄存器状态
    Shift-DR移位数据寄存器状态
    Exit1-DR退出数据寄存器状态1
    Pause-DR暂停数据寄存器状态
    Update-DR更新数据寄存器状态
    Select-IR-Scan选择指令寄存器扫描状态
    Capture-IR捕获指令寄存器状态
    Shift-IR移位指令寄存器状态
    Exit1-IR退出指令寄存器状态1
    Pause-IR暂停指令寄存器状态
    Exit2-IR退出指令寄存器状态2
    Update-IR更新指令寄存器状态
    在这里插入图片描述
    边界扫描技术的基本思想是在靠近芯片的输入输出管脚上增加一个移位寄存器单元。这些移位寄存器单元都分布在芯片的边界上(周围),所以被称为边界扫描寄存器。
    在这里插入图片描述
    芯片的引脚和逻辑单元与边界扫描单元连接,正常模式时,边界扫描单元不可见,测试模式下,可测试引脚和逻辑单元的状态。
    用JTAG可以确保芯片间连线的正确性,通过边界扫描技术。
    在这里插入图片描述
    值得注意的是JTAG最好不要带电插拔,因为可能会产生静电和浪涌,损坏JTAG或者芯片。
  • 15
    点赞
  • 201
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JTAG(Joint Test Action Group)和SWD(Serial Wire Debug)是用于调试和测试集成电路的接口。它们提供了对芯片内部状态和数据的可编程访问。 JTAG接口由4条线构成,分别是TCK(时钟线)、TDI(数据输入线)、TDO(数据输出线)和TMS(状态线)。通过这四条线,可以操控和读取芯片内部的引脚和寄存器。JTAG接口主要用于边界扫描测试(Boundary Scan Test),可以激活芯片内所有可编程的引脚,并且能够通过向引脚写入和读取数据进行测试。 SWD接口是一种更简化的调试接口,由两条线构成,分别是SWDIO(数据线)和SWCLK(时钟线)。SWD接口可以实现与JTAG接口相同的调试功能,但使用的线路更少。SWD接口适用于资源有限的嵌入式系统,并且在调试速度方面更快。 在JTAGSWD接口的原理图中,主要包含了相应的电气特性和连接方式。电气特性包括接口线的电压和电流要求,以及连接线路的阻抗匹配等。连接方式涵盖了接口线与芯片引脚的连接顺序、连接方式和电气特性的匹配。 根据原理图,可以明确地了解到如何正确地连接和使用JTAGSWD接口。同时,还可以了解到接口线的连接方式和电气特性是否符合要求,以确保调试和测试的准确性和稳定性。 总之,JTAGSWD接口原理图的解析可以帮助我们理解这些接口的工作原理和使用方式,并且能够确保接口线的连接和电气特性符合要求,以提高调试和测试的效率和准确性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值