Слово «JTAG» знакомо многим, но это знакомство, скорее всего, поверхностное.
В этой статье я хочу вывести вас на новый уровень, так сказать, «во френдзону».
Возможно, для многих я не открою ничего нового, но надеюсь, что тем, кто давно хотел это прочитать, будет интересно прочитать.
Итак, от винта.
Введение
В 1985 году была образована группа производителей электроники — JTAG (Joint Test Action Group).Для решения проблем тестирования в 1990 году был выдвинут отраслевой стандарт — спецификация IEEE Std 1149.1-1990 (стандартный порт доступа к тестированию IEEE и архитектура пограничного сканирования).
В этом же году Intel выпустила первый процессор с JTAG — 80486. С тех пор стандарт постоянно модифицируется и на данный момент последняя версия датируется 2013 годом.
«Что это за проблемы с тестированиемЭ» ты спрашиваешь.
Да, конечно! Не так уж и весело прыгать с осциллографом по выводам микросхемы, особенно если их больше двух! Стандарт значительно облегчает жизнь за счет интеграции в современные чипы специальной архитектуры, обеспечивающей доступ к выводам (точнее, к специальным блокам ввода-вывода) с помощью 4-проводного последовательного интерфейса.
Такая архитектура позволяет не только следить за их состоянием, но и управлять ими.
Таким образом, вы сможете избежать громоздких пробников при физическом контакте и насладиться красотой отладки цифровых микросхем или устройств уровня печатной платы.
Стандарт используется как для целей внутрисхемного программирования и отладки программ, так и при работе с корпусными микросхемами.
Также его применяют для проверки качества пайки микросхем на плате, межплатного и внутристоечного монтажа плат и блоков.
Также нужно сказать ему спасибо за восстановление мобильных устройств, поврежденных по неосторожности.
И как это работает?
Механизм граничного сканирования содержится только в сдвиговом регистре (Boundary Scan), подключенном между выводами микросхемы и ядром, и мультиплексоре, подключающем этот регистр в нужный момент. Каждому конкретному выходу соответствуют так называемые «ячейки».
Ячейка включает в себя один триггер регистра граничного сканирования и мультиплексор выбора данных.
Ячейки могут быть разных типов в зависимости от вывода микросхемы и команд интерфейса, т.е.
зависит от производителя конкретной микросхемы.
Производители не строго придерживаются стандарта, поэтому существует множество модификаций.
На рисунке показан один тип клеток.
PI, PO – параллельный ввод и вывод, SI, SO – последовательный.
Сигналы в регистр микросхемы поступают через мультиплексор, который позволяет считывать как состояния выводов ядра микросхемы (инструкция INTEST), так и данные, поступающие извне в сдвиговый регистр (инструкция EXTEST).
Виды инструкций и их функционал опять же варьируются в зависимости от пожеланий производителя, но есть так называемые обязательные:
- EXTEST — инструкция, позволяющая путем установки логических значений на рабочих контактах электронных компонентов проверять внешние цепи, имеющие непосредственное отношение к тестируемому компоненту.
- INTEST – инструкция предоставляет возможность устанавливать логические значения внутри микросхемы, то есть на входах ядра, тем самым проверяя ее.
- SAMPLE_PRELOAD — позволяет тестировать ядро электронного элемента в статическом режиме, устанавливая значения логических уровней на границе его выходных буферов.
- BYPASS — это инструкция, которая сжимает наш регистр граничного сканирования в один триггер.
При этом данные со входа (TDI) на выход (TDO) передаются с задержкой в один такт тактовой частоты интерфейса (TCK).
Этот режим позволяет эффективно использовать возможности последовательного интерфейса при организации длинных последовательно соединенных цепочек.
- IDCODE – инструкция выводит значение встроенного 32-битного регистра с идентификаторами производителя, модели и версии устройства.
Сигнальные линии интерфейса
Как уже говорилось выше, интерфейс JTAG имеет следующие сигнальные линии:- TDI — ввод тестовых данных — сигнал данных на вход, данные подаются по нарастающему фронту TCK.
- TDO — Вывод тестовых данных — вывод последовательных данных JTAG, опережающий задний фронт TCK, должен находиться в третьем состоянии — Z — когда данные не передаются.
- TMS – Выбор тестового режима – TAP – сигнал управления контроллером.
- TRST — Test Reset — доступен не всегда, так как сброса можно добиться, удерживая некоторое время TMS=1, активный уровень сигнала равен 0.
- TCK — Test Clock — тактовая частота.
ТАП – контроллер
Мы добрались до самой сути JTAG, а именно машины, управляющей работой.С его помощью действительно живет все вокруг.
Машина имеет 16 состояний.
Интерфейс управляется путем воздействия на машину через сигнал TMS. Переходы происходят по нарастающему фронту сигнала TCK. Чтение и запись данных происходит одновременно.
Ниже представлена иллюстрация работы, взятая из документации микросхем Altera.
Схема перехода автомата, управляющего режимами ТАП
Диаграмма перехода гласит:
- Тест-Логика-Сброс – исходное состояние;
- Run-Test/Idle – переходное состояние контроллера при запуске тестов или ожидании следующего
- команды;
- Select-IR, Select-DR – состояние, после которого будет проводиться тестирование команд и данных;
- Capture-IR, Capture-DR – состояние приема команд и данных;
- Shift-IR, Shift-DR – состояние смещения команд, данных;
- Выход1-ИК, Выход2-ИР – выход из командного режима;
- Exit1-DR, Exit2-DR – выход из режима обработки данных;
- Пауза-ИР, Пауза-ДР – состояние паузы;
- Update-IR, Update-DR – состояние перезаписи данных в выходные регистры.
Исходное состояние, в котором находится машина после включения, — это сброс тестовой логики.
Пока сигнал TMS имеет значение «лог.
1», состояние машины остается неизменным.
В этом состоянии по умолчанию выбирается инструкция IDCODE или BYPASS. Сигнал сброса TRST не является обязательным, поэтому для возврата машины в исходное состояние используется следующая процедура.
Необходимо подать на вход ТМС сигнал высокого уровня и удерживать его не менее 5 циклов частоты ТСК.
Если хост устанавливает низкий уровень сигнала 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 подается вместе с последним битом информации.
Схема сигналов при выполнении переходов для загрузки команды
Если вы используете специализированную CAD-систему для написания JTAG-кода в Verilog, результирующая диаграмма будет выглядеть примерно так:
Ссылка на Dropbox, полноразмерное изображение
Наконец, мы можем показать вам полную блок-схему устройства JTAG, и вы сможете полностью ее понять:
… В заключение.
Использование JTAG и технологии периферийного сканирования на чипе, плате или устройстве увеличивает стоимость и время разработки.
Но, тем не менее, эти затраты легко окупаются в ходе тестирования, которое проводится на каждом этапе жизненного цикла продукта.
То, что изначально было разработано как инструмент для производственных испытаний, используется перед производством, во время серийного производства и после производства, то есть на этапе использования конечным пользователем.
Помимо прямого граничного тестирования, разработчики используют технологию JTAG для выполнения самотестирования (BIST) (в тех компонентах, где оно реализовано) и загрузки внутренних значений в регистры устройств или микросхемы ПЗУ программирования.
Тесты, разработанные и использованные на этапе проектирования, можно перенести в производство, чтобы обеспечить дальнейшее сокращение затрат и времени на проверку продукции во время окончательной проверки.
Основными положительными эффектами от использования технологии JTAG на этапе производства являются экономия времени при разработке тестовых тестов, улучшение «охвата» тестового продукта при поиске ошибок и диагностике, а также повышение производительности тестирования при сокращении времени тестирования.
Использование краевого сканирования при эксплуатации изделия также дает определенный положительный эффект. Неисправности в процессе эксплуатации часто возникают из-за конструктивных нарушений, причиной которых являются повышенная температура, влажность, вибрация.
Используя сканирование границ, технические специалисты могут быстро проверить продукт на наличие структурных ошибок вплоть до уровня компонентов, не тратя много времени на проверку или возврат платы на завод производителя.
Литература: Вики Граничное сканирование в устройствах Altera выключенный.
Страница рабочей группы IEEE 1149.1 1149.1-2013 - Стандарт IEEE для портов тестового доступа и архитектуры граничного сканирования Хорошая статья на хабро, затрагивающая JTAG-тестирование.
Проблема EEVblog о JTAG от Килли В статье использованы некоторые данные журнала «Современная электроника» №2 2007 года.
Теги: #интерфейсы #jtag #boundary-scan #тестирование интерфейсов
-
Поиск Корзины Для Кредитных Карт Стал Проще
19 Oct, 24 -
20 Событий 2011 Года
19 Oct, 24 -
Плагин Netbeans Для Работы С Git
19 Oct, 24