Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial Internet of Things >> Incrustado

Comprensión de JTAG y Depuración de Núcleos Arm: ADI y SWD Explicados

Este artículo desmitifica cómo JTAG se integra en dispositivos con núcleos Arm, centrándose en la Interfaz de Depuración Arm (ADI) y el protocolo Serial Wire Debug (SWD).

Publicaciones anteriores en esta serie exploraron el estándar IEEE 1149.1, el controlador del Puerto de Acceso de Prueba (TAP) y la máquina de estados TAP. También revisamos pinouts comunes de JTAG, conectores y la gama de sondas de depuración disponibles en el mercado.

Aquí nos centramos en el ecosistema Arm, detallando cómo los omnipresentes procesadores de núcleo Arm implementan JTAG a través de ADI y su variante de dos hilos SWD.

Qué es Arm

Arm denota una arquitectura de procesador y un vasto portafolio de propiedad intelectual que define interfaces de microprocesador y microcontrolador. Mientras las PC de consumo típicamente usan x86, los sistemas embebidos dependen casi exclusivamente de núcleos Arm.

La propiedad intelectual del núcleo se licencia a fabricantes de silicio —como STMicroelectronics, NXP y otros— que luego añaden características periféricas (I²C, SPI, ADC/DAC, USB, etc.). Las arquitecturas Arm se versionan (ARMv2, ARMv6, ARMv7, ARMv8, etc.), y los núcleos se marcan como ARMx (p. ej., ARM7) o, más recientemente, como series Cortex‑A/R/M para casos de uso de aplicación, tiempo real y microcontrolador. El versionado de arquitectura sigue el sufijo Cortex, produciendo nombres como ARMv7‑A o ARMv6‑M.

La depuración en Arm se rige por la arquitectura CoreSight, que abarca la Interfaz de Depuración Arm (ADI), Macrocélula de Traza Embebida (ETM), Puertos de Traza Serie de Alta Velocidad (HSSTP) y traza de flujo de programa. La ADI proporciona la base para la depuración, ofreciendo tanto una interfaz JTAG como la alternativa Serial Wire Debug (SWD).

Visión General de la Interfaz de Depuración Arm (ADI)

La especificación ADI define tanto las interfaces de hardware como lógicas entre un depurador host y uno o más dispositivos Arm. La mayoría de procesadores contemporáneos soportan ADIv5 (Arm IHI0031E), mientras ADIv6 (Arm IHI0074C) se adopta gradualmente. Nos centramos en ADIv5 aquí.

ADI introduce el Puerto de Acceso de Depuración (DAP), compuesto por un Puerto de Depuración (DP) y uno o más Puertos de Acceso (APs). El DP gestiona la conexión física (JTAG o SWD) y contiene registros integrados; los APs proporcionan acceso a recursos del sistema como registros de depuración, puertos de traza, tablas ROM o memoria del sistema.

ADI soporta dos tipos de DP: JTAG‑DP y SWD‑DP. Los APs vienen en tres sabores: MEM‑AP (acceso mapeado en memoria), JTAG‑AP (escaneo de toda la unidad de depuración) y APs específicos del proveedor. Los MEM‑APs son los más comunes.

En el contexto de JTAG, ADIv5 suministra un conjunto de códigos de instrucción (p. ej., EXTEST, SAMPLE, PRELOAD, INTEST, CLAMP, HIGHZ, ABORT, DPACC, APACC, IDCODE, BYPASS) y registros de datos (ABORT, DPACC, APACC, IDCODE, BYPASS). Notablemente, DPACC y APACC permiten al depurador emitir comandos a los registros DP y AP, respectivamente.

Registros DP típicos incluyen:

Registros MEM‑AP incluyen:

La Figura 1 ilustra el cableado ADI y mapa de registros (no todos los registros se muestran por brevedad).

Comprensión de JTAG y Depuración de Núcleos Arm: ADI y SWD Explicados

Figura 1. Diagrama de Interfaz de Depuración Arm, resumiendo conexiones. No se muestran todos los registros DP/AP.

Serial Wire Debug (SWD)

SWD es la alternativa de dos hilos de Arm a JTAG, diseñada para dispositivos con conteo de pines limitado. Muchos microcontroladores Cortex‑M emplean SWD en lugar de JTAG completo para conservar pines.

SWD reemplaza el par TDI/TDO de JTAG con un único pin bidireccional SWDIO, elimina el pin TMS y retiene el reloj (re‑etiquetado SWCLK). Como SWD omite la máquina de estados TAP, los comandos se envían serialmente sobre SWDIO y luego el mismo pin se usa para transferencia de datos.

La comunicación procede en tres fases: petición de paquete, reconocimiento y transferencia de datos. Un bit de paridad se usa en todo momento. La secuencia comienza con un bit de Inicio (ALTO), seguido por bit AP/DP, bit RnW, bits de dirección, paridad, bit de Parada (BAJO) y bit de Estacionamiento. Tras la petición, el objetivo responde con un ACK de 3 bits. Para escrituras, el host transmite 32 bits de datos (bit menos significativo primero) con bit de paridad; para lecturas, el objetivo impulsa 32 bits de datos de vuelta al host.

La Figura 2 presenta el diagrama de temporización para operaciones de lectura y escritura.

Comprensión de JTAG y Depuración de Núcleos Arm: ADI y SWD Explicados

Figura 2. Diagramas de temporización para operaciones de lectura y escritura Serial Wire Debug. Haga clic para ampliar.

Existen dos versiones de SWD: SWDv1 (punto‑a‑punto) y SWDv2 (un host, multi‑objetivo). La versión 2 es ampliamente compatible hacia atrás con diferencias menores en casos frontera.

Otras Variantes JTAG de Pines Reducidos

Más allá de SWD, el estándar IEEE 1149.7 define una interfaz JTAG de dos hilos. Estándares adicionales IEEE 1149.x (1149.4 para prueba de señal mixta, 1149.6 para redes digitales avanzadas) proporcionan capacidades extendidas como escaneo de frontera analógico y líneas diferenciales acopladas en AC.

Estándares actualizados pueden encontrarse en el sitio web de la Asociación de Estándares IEEE.

Conclusión

Hemos rastreado los orígenes de JTAG, examinado su implementación física y explorado cómo los procesadores de núcleo Arm adaptan JTAG vía los protocolos ADI y SWD. Armados con este conocimiento, los ingenieros pueden depurar y programar dispositivos embebidos con confianza, seleccionando la interfaz apropiada para sus restricciones de hardware.

Incrustado

  1. Inductores explicados: Tipos, funciones y aplicaciones
  2. Dispositivos de seguridad del molinete (windlass): características protectoras esenciales
  3. Arm introduce soporte de instrucciones personalizadas para núcleos Cortex-M, ampliando flexibilidad
  4. Soluciones fiables de encendido para dispositivos médicos operados por batería
  5. Mouser distribuye los IMU ADIS1647x de Analog Devices: navegación de precisión para IoT, UAVs y AR/VR
  6. ams y Face++ se alían para acelerar sensado óptico 3D y despliegue rápido de reconocimiento facial
  7. Marvell profundiza alianza estratégica con Arm para impulsar procesadores ThunderX next‑gen
  8. Avances en tecnología de dispositivos médicos: sensores, conectividad y seguridad
  9. Infineon presenta controlador de motor IMC300 con Arm Cortex-M0 integrado para mayor flexibilidad
  10. ADI lanza ADM2867E: Transceptor RS‑485 aislado integrado con convertidor DC/DC para aplicaciones de ahorro de espacio
  11. Arm mejora conectividad y gestión de dispositivos IoT mediante la adquisición de Stream Technologies