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或者芯片。
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐