Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial Internet of Things >> Встроенный

Понимание JTAG и отладки ядер Arm: ADI и SWD объяснены

Статья разъясняет, как JTAG интегрирован в устройства с ядрами Arm, фокусируясь на Arm Debug Interface (ADI) и протоколе Serial Wire Debug (SWD).

Предыдущие посты в этой серии исследовали стандарт IEEE 1149.1, контроллер Test Access Port (TAP) и машину состояний TAP. Мы также рассмотрели распространенные распиновки JTAG, разъемы и ассортимент доступных на рынке отладочных зондов.

Здесь мы переключаемся на экосистему ARM, детализируя, как повсеместные процессоры ARM реализуют JTAG через ADI и его двухпроводной вариант SWD.

Что такое ARM?

ARM обозначает архитектуру процессора и обширный портфель интеллектуальной собственности, определяющий интерфейсы микропроцессоров и микроконтроллеров. В то время как потребительские ПК обычно используют x86, встроенные системы почти исключительно полагаются на ядра ARM.

Интеллектуальная собственность ядра лицензируется кремниевым производителям — таким как STMicroelectronics, NXP и другие — которые затем добавляют периферийные функции (I²C, SPI, ADC/DAC, USB и т.д.). Архитектуры ARM версионируются (ARMv2, ARMv6, ARMv7, ARMv8 и т.д.), а ядра брендируются как ARMx (например, ARM7) или, недавно, как серии Cortex‑A/R/M для прикладных, реального времени и микроконтроллерных случаев использования. Версионирование архитектуры следует за суффиксом Cortex, давая имена вроде ARMv7‑A или ARMv6‑M.

Отладка в ARM регулируется архитектурой CoreSight, которая включает Arm Debug Interface (ADI), Embedded Trace Macrocell (ETM), High-Speed Serial Trace Ports (HSSTP) и трассировку потока программы. ADI обеспечивает фундамент для отладки, предлагая как JTAG интерфейс, так и альтернативу Serial Wire Debug (SWD).

Обзор Arm Debug Interface (ADI)

Спецификация ADI определяет как аппаратные, так и логические интерфейсы между хост-отладчиком и одним или несколькими ARM-устройствами. Большинство современных процессоров поддерживают ADIv5 (Arm IHI0031E), в то время как ADIv6 (Arm IHI0074C) постепенно внедряется. Мы фокусируемся на ADIv5.

ADI вводит Debug Access Port (DAP), состоящий из Debug Port (DP) и одного или нескольких Access Ports (AP). DP управляет физическим соединением (JTAG или SWD) и содержит встроенные регистры; APs предоставляют доступ к системным ресурсам — отладочным регистрам, трассировочным портам, таблицам ROM или системной памяти.

ADI поддерживает два типа DP: JTAG-DP и SWD-DP. APs бывают трех видов: MEM-AP (доступ к памяти), JTAG-AP (сканирование всей отладочной единицы) и вендор-специфичные APs. MEM-AP наиболее распространены.

В контексте JTAG, ADIv5 поставляет набор инструкционных кодов (например, EXTEST, SAMPLE, PRELOAD, INTEST, CLAMP, HIGHZ, ABORT, DPACC, APACC, IDCODE, BYPASS) и регистров данных (ABORT, DPACC, APACC, IDCODE, BYPASS). Особенно DPACC и APACC позволяют отладчику выдавать команды регистрам DP и AP соответственно.

Типичные регистры DP включают:

Регистры MEM-AP включают:

Понимание JTAG и отладки ядер Arm: ADI и SWD объяснены
Рисунок 1. Диаграмма Arm Debug Interface, резюмирующая соединения. Не все DP/AP регистры изображены для краткости.

Serial Wire Debug (SWD)

SWD — двухпроводная альтернатива JTAG от ARM, предназначенная для устройств с ограниченным числом пинов. Многие микроконтроллеры Cortex‑M используют SWD вместо полного JTAG для экономии пинов.

SWD заменяет пару JTAG TDI/TDO на один двунаправленный пин SWDIO, устраняет пин TMS и сохраняет тактирование (переименованное в SWCLK). Поскольку SWD опускает машину состояний TAP, команды отправляются последовательно по SWDIO, а затем тот же пин используется для передачи данных.

Обмен происходит в трех фазах: запрос пакета, подтверждение и передача данных. Бит четности используется на протяжении всего процесса. Последовательность начинается со стартового бита (HIGH), затем бит AP/DP, бит RnW, биты адреса, четность, стоп-бит (LOW) и парк-бит. После запроса цель отвечает 3-битным ACK. Для записи хост передает 32 бита данных (младший бит первый) с битом четности; для чтения цель驱动 32 бита данных обратно хосту.

Понимание JTAG и отладки ядер Arm: ADI и SWD объяснены
Рисунок 2. Тайминговые диаграммы для операций чтения и записи Serial Wire Debug. Нажмите для увеличения.

Существует две версии SWD: SWDv1 (точка-точка) и SWDv2 (один хост, много целей). Версия 2 в основном обратно совместима с незначительными пограничными различиями.

Другие варианты JTAG с уменьшенным числом пинов

Помимо SWD, стандарт IEEE 1149.7 определяет двухпроводной JTAG интерфейс. Дополнительные стандарты IEEE 1149.x (1149.4 для смешанно-сигнального теста, 1149.6 для передовых цифровых сетей) предоставляют расширенные возможности, такие как аналоговый boundary-scan и дифференциальные AC-связанные линии.

Обновленные стандарты можно найти на сайте IEEE Standards Association.

Заключение

Мы проследили происхождение JTAG, изучили его физическую реализацию и исследовали, как процессоры ARM адаптируют JTAG через протоколы ADI и SWD. Вооруженные этими знаниями, инженеры могут уверенно отлаживать и программировать встраиваемые устройства, выбирая подходящий интерфейс для своих аппаратных ограничений.

Встроенный

  1. Arm добавляет поддержку кастомных инструкций для Cortex-M: расширение гибкости
  2. Надёжные решения power-on для батарейных медицинских устройств
  3. Mouser поставляет IMU ADIS1647x от Analog Devices: точная навигация для IoT, БПЛА и AR/VR
  4. ams и Face++ партнерствуют для ускорения внедрения 3D оптического сенсирования и распознавания лиц
  5. Marvell углубляет стратегический альянс с Arm для следующего поколения ThunderX серверных процессоров
  6. Отслеживание достижений в технологии медицинских устройств
  7. Infineon представляет IMC300 контроллер двигателя с интегрированным Arm Cortex-M0 для повышенной гибкости
  8. ADI ADM2867E: интегрированный изолированный RS‑485 трансивер с DC/DC для компактных применений
  9. Arm усиливает IoT-коннективность и управление устройствами через покупку Stream Technologies
  10. Устройства безопасности якорной машины (виндласса): основные защитные функции