Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial Internet of Things >> Integrado

Entendendo JTAG e Depuração de Núcleo Arm: ADI e SWD Explicados

Este artigo desmistifica como JTAG é integrado em dispositivos de núcleo ARM, focando na Interface de Depuração Arm (ADI) e no protocolo Serial Wire Debug (SWD).

Posts anteriores nesta série exploraram o padrão IEEE 1149.1, o controlador Test Access Port (TAP) e a máquina de estados TAP. Também revisamos pinouts JTAG comuns, conectores e a gama de probes de depuração disponíveis no mercado.

Aqui pivotamos para o ecossistema ARM, detalhando como os onipresentes processadores de núcleo ARM implementam JTAG através da ADI e sua variante de dois fios SWD.

O que é ARM?

ARM denota uma arquitetura de processador e um vasto portfólio de propriedade intelectual que define interfaces de microprocessador e microcontrolador. Enquanto PCs de consumo tipicamente usam x86, sistemas embarcados quase exclusivamente dependem de núcleos ARM.

Propriedade intelectual de núcleo é licenciada para fabricantes de silício — como STMicroelectronics, NXP e outros — que então adicionam recursos periféricos (I²C, SPI, ADC/DAC, USB, etc.). Arquiteturas ARM são versionadas (ARMv2, ARMv6, ARMv7, ARMv8, etc.), e os núcleos são marcados como ARMx (ex.: ARM7) ou, mais recentemente, como séries Cortex-A/R/M para casos de uso de aplicação, tempo real e microcontrolador. Versionamento de arquitetura segue o sufixo Cortex, resultando em nomes como ARMv7-A ou ARMv6-M.

Depuração em ARM é governada pela arquitetura CoreSight, que abrange a Interface de Depuração Arm (ADI), Embedded Trace Macrocell (ETM), Portas Serial de Traço de Alta Velocidade (HSSTP) e traço de fluxo de programa. A ADI fornece a base para depuração, oferecendo tanto uma interface JTAG quanto a alternativa Serial Wire Debug (SWD).

Visão Geral da Interface de Depuração Arm (ADI)

A especificação ADI define tanto as interfaces de hardware quanto lógicas entre um depurador host e um ou mais dispositivos ARM. A maioria dos processadores contemporâneos suporta ADIv5 (Arm IHI0031E), enquanto ADIv6 (Arm IHI0074C) está sendo adotada gradualmente. Focamos em ADIv5 aqui.

ADI introduz a Debug Access Port (DAP), composta por uma Debug Port (DP) e uma ou mais Access Ports (APs). A DP gerencia a conexão física (JTAG ou SWD) e contém registradores embutidos; APs fornecem acesso a recursos do sistema como registradores de depuração, portas de traço, tabelas ROM ou memória do sistema.

ADI suporta dois tipos de DP: JTAG-DP e SWD-DP. APs vêm em três sabores: MEM-AP (acesso mapeado em memória), JTAG-AP (varredura de toda unidade de depuração), e APs específicos de fornecedor. MEM-APs são os mais comuns.

No contexto de JTAG, ADIv5 fornece um conjunto de códigos de instrução (ex.: EXTEST, SAMPLE, PRELOAD, INTEST, CLAMP, HIGHZ, ABORT, DPACC, APACC, IDCODE, BYPASS) e registradores de dados (ABORT, DPACC, APACC, IDCODE, BYPASS). Notavelmente, DPACC e APACC permitem que o depurador emita comandos para registradores DP e AP, respectivamente.

Registradores DP típicos incluem:

Registradores MEM-AP incluem:

A Figura 1 ilustra a fiação e mapa de registradores da ADI (nem todos registradores são mostrados para brevidade).

Entendendo JTAG e Depuração de Núcleo Arm: ADI e SWD Explicados

Figura 1. Diagrama da Arm Debug Interface, resumindo conexões. Nem todos registradores DP/AP são representados.

Serial Wire Debug (SWD)

SWD é a alternativa de dois fios da ARM ao JTAG, projetada para dispositivos com contagem de pinos limitada. Muitos microcontroladores Cortex-M empregam SWD em vez de JTAG completo para conservar pinos.

SWD substitui o par JTAG TDI/TDO por um único pino SWDIO bidirecional, elimina o pino TMS e retém o clock (renomeado SWCLK). Como SWD omite a máquina de estados TAP, comandos são enviados serialmente sobre SWDIO e então o mesmo pino é usado para transferência de dados.

Comunicação prossegue em três fases: requisição de pacote, reconhecimento e transferência de dados. Um bit de paridade é usado throughout. A sequência começa com bit de Start (HIGH), seguido por bit AP/DP, bit RnW, bits de endereço, paridade, bit Stop (LOW) e bit Park. Após a requisição, o alvo responde com ACK de 3 bits. Para escritas, o host transmite 32 bits de dados (bit menos significativo primeiro) com bit de paridade; para leituras, o alvo direciona 32 bits de dados de volta ao host.

A Figura 2 apresenta o diagrama de timing para operações de leitura e escrita.

Entendendo JTAG e Depuração de Núcleo Arm: ADI e SWD Explicados

Figura 2. Diagramas de timing para operações de leitura e escrita Serial Wire Debug. Clique para ampliar.

Duas versões SWD existem: SWDv1 (ponto-a-ponto) e SWDv2 (single-host, multi-target). Versão 2 é largamente compatível com versões anteriores com diferenças menores em edge-cases.

Outras Variantes JTAG de Pinos Reduzidos

Além do SWD, o padrão IEEE 1149.7 define uma interface JTAG de dois fios. Padrões IEEE 1149.x adicionais (1149.4 para teste de sinal misto, 1149.6 para redes digitais avançadas) fornecem capacidades estendidas como boundary-scan analógico e linhas AC-acopladas diferenciais.

Padrões atualizados podem ser encontrados no site da IEEE Standards Association.

Conclusão

Rastreamos as origens do JTAG, examinamos sua implementação física e exploramos como processadores de núcleo ARM adaptam JTAG via protocolos ADI e SWD. Armados com este conhecimento, engenheiros podem depurar e programar dispositivos embarcados com confiança, selecionando a interface apropriada para suas restrições de hardware.

Integrado

  1. Arm Introduz Suporte a Instruções Customizadas para Núcleos Cortex-M, Expandindo Flexibilidade
  2. Soluções Confiáveis de Power-On para Dispositivos Médicos a Bateria
  3. Mouser Estoca IMUs ADIS1647x da Analog Devices: Navegação de Precisão para IoT, UAVs, e AR/VR
  4. ams e Face++ Unem Forças para Acelerar Sensoriamento Óptico 3D e Reconhecimento Facial
  5. Marvell Aprofunda Aliança Estratégica com Arm para Impulsionar Processadores Servidor ThunderX Next-Gen
  6. Acompanhando Avanços em Tecnologia de Dispositivos Médicos
  7. Infineon Revela Controlador de Motor IMC300 com Arm Cortex-M0 Integrado para Flexibilidade Aprimorada
  8. ADI Lança ADM2867E: Transceptor RS-485 Isolado Integrado com Conversor DC/DC para Aplicações de Economia de Espaço
  9. Arm Aprimora Conectividade e Gestão de Dispositivos IoT com Aquisição da Stream Technologies
  10. Dispositivos de Segurança do Guindaste de Proa (Windlass): Características Protetivas Essenciais