Найти тему
nikcherstas

Интерфейс JTAG: назначение, устройство и принцип работы

Интерфейс JTAG: назначение, устройство и принцип работы

Для чего и что это такое - периферийное сканирование. Совсем давно, микросхемы были не такими большими и не имели так много ног, т.е выводов и припаивались они либо сверху, либо снизу и проблем с доступом к ним не было.

Однако в современном мире у схем количество выводов становится несоизмеримо большим. Встречаются компоненты, у которых может быть 1000 выводов и 2000. Поэтому очень усложнен сейчас доступ к таким компонентам. К примеру если есть какие-нибудь BGA компоненты, которые в принципе припаяны в плату, доступа физически нет. Попытки измерить что-то с помощью осциллографа или тестеров становятся невозможными.

Собственно об этой проблеме задумались уже в 1985, потому что производствам было трудно все это тестировать.

При появлении BGA компонентов появилось очень много проблем с поиском дефектов.

На рисунке видим два компонента. Одно из требований тестопригодности это наличие физического доступа в каждую электрическую цепь на плате. Видим внизу некие контакты, подсоединенные к трассам(цепям), с помощью которых можно провести тесты. Однако, если плата будет однослойной и будет множества BGA компонентов на плате, то будет сложно обеспечить физический доступ ко всем цепям на плате.

В этом случае поможет периферийное сканирование, чтобы решить задачи, о которых я сказал.

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

Само периферийное сканирование было разработано в 1985. А как стандарт было утверждено в 1990. Называется стандарт IEEE 1149.1, который описывает как саму технологию, так и те средства и методы, которые эта технология использует, чтобы реализовать тестирование с использованием периферийного сканирования.

-2

Используя периферийное сканирование на плате добавляется слева небольшой интерфейс в виде некоторого разъема

-3

((Debug and Test Access Block) )

Рассмотрим некую схему. Как видим у этой схемы есть некие выводы. Какие-то регистры внизу и по периферии, TAP контроллер. Все это говорит о том, что плата оснащена периферийным сканированием (JTAG)

Видим некие управляющие сигналы:

  • Контакты ввода тестовых данных (TDI)
  • Контакты вывода тестовых данных (TDO)
  • Тестовый тактовый вывод (TCK)
  • Вывод выбора тестового режима (TMS) для управления конечным автоматом TAP

Контакт сброса тестового режима (TRST), который переводит конечный автомат в состояние сброса, является необязательным, потому что состояние сброса всегда можно получить, удерживая TMS на низком уровне и синхронизируя TCK пять раз.

Основная роль регистров периферийного сканирования заключается именно в получении, либо выставлении полученной информации на внешние выводы микросхемы. Управля TDI TDO с помощью сигналов TMS и TCK есть возможность пропускать данные как через регистры периферийного сканирования, так и соединить TDI с TDO напрямую (но там будет некая задержка в один так. это в спецификации где-то говориться должно). К тому же в режимах настраиваются сами периферийные ячейки. Таким образом решается считывать передавать через ячейку данные, либо считать на нее данные, либо записать.

Теперь подробнее посмотрим на схему.

Точка доступа для тестирования состоит из контроллера TAP, регистра инструкций и нескольких регистров тестовых данных, а также некоторой связующей логики.

Контроллер TAP содержит конечный автомат тестирования и отвечает за работу с сигналами TCK и TMS. Ввод данных используется для загрузки данных в граничные ячейки между физическими выводами и ядром микросхемы, а также для загрузки данных в регистр команд или один из регистров данных. Вывод данных используется для чтения данных из граничных ячеек или для чтения данных из инструкций или регистров данных.

Конечный автомат контроллера TAP управляется сигналом выбора режима, TMS, который синхронизируется TCK. Конечный автомат принимает только два «пути», представляющих два разных режима: режим команд и режим данных. Режим выбирается синхронизацией в битах TMS HIGH или TMS LOW. Затем, находясь в заданном режиме, конечный автомат либо продвигается (TMS HIGH), либо переходит в состояние сброса (TMS LOW).

Разновидности инструкций и их функциональность опять же меняются от желаний производителя, но существуют так называемые обязательные:

  • EXTEST — инструкция, позволяющая за счет установки логических значений на рабочих контактах электронных компонентов проверить внешние цепи, имеющие непосредственное отношение к тестируемому компоненту.
  • INTEST — инструкция обеспечивает возможность установки логических значений внутри микросхемы, то есть на входах ядра, тем самым проверяя его.
  • SAMPLE_PRELOAD — позволяет тестировать ядро электронного элемента в статическом режиме, устанавливая значения логических уровней на границе его выходных буферов.
  • BYPASS — инструкция, при которой наш регистр граничного сканирования «схлопывается» в один триггер. При этом данные со входа (TDI) на выход (TDO) передаются с задержкой в один такт частоты синхронизации интерфейса (TCK). Этот режим позволяет эффективно использовать возможности последовательного интерфейса при организации длинных последовательно объединенных цепочек.
  • IDCODE — инструкция выдвигает на выход значение встроенного 32-битного регистра с идентификаторами производителя, модели и версии устройства.

Мы добрались до самой сути JTAG, а именно — управляющий работой автомат. С его помощью собственно и живет всё вокруг. Автомат имеет 16 состояний. Управление интерфейсом осуществляется путем воздействия на автомат посредством сигнала TMS. Переходы происходят по переднему фронту сигнала TCK. Чтение и запись данных происходят одновременно. Ниже приведена иллюстрацию работы, взятая из документации микросхем фирмы Altera.

-4

(регистр данных и регистр команд)

  • Test-Logic-Reset – исходное состояние;
  • Run-Test/Idle – переходное состояние контроллера при выполнении тестов или ожидании следующей
  • команды;
  • Select-IR, Select-DR – состояние, после которого будет производиться тестирование команд, данных;
  • Capture-IR, Capture-DR – состояние приёма команд, данных;
  • Shift-IR, Shift-DR – состояние сдвига команд, данных;
  • Exit1-IR, Exit2-IR – выход из режима работы с командами;
  • Exit1-DR, Exit2-DR – выход из режима работы с данными;
  • Pause-IR, Pause-DR – состояние паузы;
  • Update-IR, Update-DR – состояние перезаписи данных в выходные регистры.

DR — действия происходят над данными, IR — соответственно над инструкциями.

Исходное состояние, в котором находится автомат после включения, это Test-Logic Reset. Пока сигнал TMS имеет значение «лог.1», состояние автомата остается неизменным. В этом состоянии, по умолчанию, выбрана инструкция IDCODE или BYPASS.

Сигнал сброса TRST не является обязательным, поэтому для сброса автомата в исходное состояние применяют следующую процедуру. Необходимо подать на вход TMS сигнал высокого уровня и удерживать его не менее 5 тактов частоты TCK. Если сигнал TMS будет установлен хостом в низкий уровень, то автомат перейдёт к состоянию Run-Test/Idle (активное состояни, в котором ничего не происходит). Обычно из этого состояния можно перейти в состояние Select-IR, для того чтобы загрузить в контроллер новую инструкцию. Но если на вход сигнала TMS подействует не сигнал, подаваемый от хоста, а помеха низкого уровня, то, как и в предыдущем случае, автомат перейдёт в состояние Run-Test/Idle. Если же кратковременная помеха (длительностью не более одного периода синхрочастоты) прекратится, то автомат через три такта снова вернётся в исходное состояние – Test-Logic Reset.

Чтобы загрузить в контроллер новую команду, надо из состояния Run-Test/Idle перевести автомат в состояние Select-IR, Capture-IR, Shift-IR. Затем необходимо «продвинуть» в цепочку данных новую команду, а потом перевести автомат через состояния Exit1-IR, Update-IR и снова в Run-Test/Idle. Логика работы с данными такая же. Нужно учитывать, что сигнал высокого уровня при переходе из состояний Shift-IR\DR подается вместе с последним битом информации.

ЗАКЛЮЧЕНИЕ

Использование JTAG и технологии граничного сканирования в микросхеме, на плате или в устройстве добавляет стоимость и увеличивает время разработки проекта. Но, всё же эти затраты легко окупаются при проведении тестирования, которое обеспечивается на каждой стадии цикла жизни изделия. То, что было первоначально разработано как производственный испытательный инструмент, используется до начала производства, во время серийного производства и после производства, то есть на этапе эксплуатации конечным пользователем.