Войти|Зарегистрироваться|Напомнить
Дистрибьютор ООО "Ай Пи Блок"
 / 
 

Что такое JTAG и как тестировать этим платы?

Данная статья является переводом следующей оригинальной статьи:
What is JTAG and how can I make use of it?

JTAG — это нечто большее, чем просто отладка и программирование микросхем

Если Вы применяли какие-либо инструменты, использующие JTAG, то Вы уже знакомы с этим интерфейсом. Например, процессоры часто используют JTAG для доступа к своим отладочным функциям, также все ПЛИС используют JTAG для программирования.

JTAG - это НЕ ТОЛЬКО отладка процессоров.

JTAG - это НЕ ТОЛЬКО программирование ПЛИС.

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

Эти четыре сигнала, именуемые в совокупности "Test Access Port" или, сокращённо, TAP, являются частью стандарта IEEE Std. 1149.1.

Стандарт IEEE Std. 1149.1. был разработан для тестирования сборок печатных плат (Printed Circuit Board Assemblies — PCBA) без физического прикосновения к токопроводящим элементам платы. При использовании различного рода летающих щупов, многозондовых систем типа bed-of-nails, и, зачастую, даже для собственных испытательных стендов предприятий необходим физический контакт с тестовыми точками платы.

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

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

В поддерживающие JTAG микросхемы добавляется специальный регистр для тестирования через JTAG под названием Boundary Scan Register — BSR. Как и подразумевает название этого регистра, отдельные его части (или, по-другому, ячейки (Cells)) являются "пограничными" (Boundary) для микросхемы, так как располагаются между функциональным ядром и контактами корпуса микросхемы. Boundary Scan Register по сути является сдвиговым регистром, и стандарт подразумевает, что процессы записи/чтения будут выполняться через один "вдвигающий" и один "выдвигающий" бит соответственно, поэтому процессы записи/чтения называют Scan - сканирование. В итоге тестирование через JTAG называют Boundary Scan. В русскоязычной документации встречаются такие обозначения термина Boundary Scan как "Пограничное сканирование", "Граничное сканирование", "Периферийное сканирование".

Как пограничное сканирование, реализуемое стандартом JTAG, используется для тестирования печатных плат?

Ячейки регистра пограничного сканирования (Boundary Scan Register) могут работать в одном из двух режимов: 1) функциональный режим — ячейки не влияют на работу прибора, прибор работает в своём обычном виде; 2) тестирующий режим — ячейки отсоединяют функциональное ядро микросхемы от контактов корпуса. Тестирующий режим используется для управления значениями на контактах корпуса микросхемы (и в соответствующих цепях печатной платы), а также для считывания значений с подключённых цепей печатной платы. Отключ

Отключение функционального ядра микросхемы существенно упрощает разработку тестов, так как использование пограничного сканирования (boundary scan) позволяет не разрабатывать программу для микропроцессора или прошивку для ПЛИС и не включать прибор в "рабочем" режиме.

Предоставляя механизм управления и наблюдения за контактами корпуса микросхемы через четырёх-контактный TAP, JTAG-интерфейс значительно сокращает необходимость физического контакта с платой для тестирования.

Существует два способа тестирования печатной платы при помощи пограничного сканирования (boundary scan). Первый способ — тест соединений (connection test). Он даёт хорошее покрытие, особенно таких неисправностей, как короткие замыкания. Этот способ использует только возможности микросхемы с поддержкой JTAG, при этом тестируются соединения (например, пропайки) и цепи, а в случае применения системы XJTAG, тестируются ещё и комбинационные логические элементы на плате. Второй способ — использование микросхемы с поддержкой JTAG для взаимодействия с микросхемами последовательной логики без поддержки JTAG, такими как DDR RAM или Flash-память.

Что такое тест соединений (connection test) через JTAG?

Тест соединений (connection test) проверяет, соответствует ли изготовленная печатная плата исходному проекту, а также наличие на ней не предусмотренных проектом разрывов цепей или лишних замыканий.

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

Кроме того, тест соединений (connection test) позволяет обнаружить отсутствие нужных подтягивающих резисторов, и "залипания" сигналов. Это также делается путём выставления на контактах определённых значений и сравнения считанных значений с заданной таблицей истинности.

Система XJTAG на основе нетлиста печатной платы и информации, считанной с поддерживающих JTAG микросхем, полностью автоматически генерирует тестовые вектора для проведения теста соединений (connection test) всей платы.

Что же делать с остальными микросхемами на плате, которые не поддерживают JTAG?

Как правило, основные микросхемы на плате, такие как процессоры и ПЛИС, поддерживают JTAG, но существует множество вспомогательных микросхем, которые JTAG не поддерживают. Как пример можно привести такие микросхемы, как ЦАП, АЦП, DDR, SDRAM, SRAM, Flash, Ethernet контроллеры, температурные сенсоры, генераторы частот и многое другое.

Тест соединений (connection test) позволяет проводить тестирование на замыкания цепей между микросхемами с поддержкой JTAG и микросхемами без поддержки, при этом достигается хорошее покрытие. Однако протестировать обрывы в таких цепях уже не получится.

С целью тестирования на наличие обрывов цепей между микросхемами с поддержкой JTAG и микросхемами без таковой, требуется использовать так называемые функциональные тесты. Если функциональные тесты пройдены, то это означает, что обрывов быть не может. Функциональные тесты могут быть как очень простыми, например, включение светодиода и ожидание подтверждения от оператора, что светодиод действительно загорелся, так и посложнее, например, запись данных в память, считывание их же и сравнение считанных данных с ожидаемыми.

Насколько сложно подготовить тест платы через JTAG?

При помощи библиотеки тестов стандартных компонентов без поддержки JTAG, поставляемой с системой XJTAG, возможна подготовка и запуск набора функциональных тестов без необходимости писать скрипты. Библиотека тестов содержит тесты как для простых элементов, таких как резисторы и буферные элементы, так и для сложных микросхем, таких как память DDR3 и так далее.

Так как пограничное сканирование (boundary scan) отключает контакты корпуса микросхемы от функционального кремниевого ядра, единая тестовая модель может быть использована для управления периферийными микросхемами вне зависимости от того, какая микросхема с поддержкой JTAG использована.

Как правило, в печатную плату не требуется вносить никаких изменений, так как большинство плат уже содержат JTAG-контакты для отладки процессоров или программирования ПЛИС.

Как понять, поддерживается ли JTAG конкретной микросхемой?

Для того, чтобы начать работу с пограничным сканированием, соответствующим инструментам нужно знать как именно реализован JTAG в конкретной микросхеме, к которой производится подключение. Эта информация передаётся инструментам работы с JTAG в виде файла в формате BSDL — Boundary Scan Description Language, специально разрабатываемого для каждого конкретного Part-номера компонента.

BSDL — это текстовый файл, распространяемый так называемыми Вендорами (от англоязычного Vendor) — владельцами торговых марок, под которыми продаются микросхемы. В связи с тем, что наличие BSDL-файла является обязательным условием для работы с микросхемой через интерфейс JTAG — наличие BSDL-файла для конкретного Part-номера компонента означает возможность работы с boundary scan, а отсутствие BSDL-файла означает либо невозможность работы, либо необходимость потратить больше усилий на поиск BSDL-файла.

Используется ли тестирование через JTAG в основном на производстве?

Абсолютно нет! Одним из важнейших преимуществ тестирования через пограничное сканирование (boundary scan) является тот факт, что из дополнительного оборудования требуется только JTAG-контроллер. Другие технологии тестирования, такие как летающие щупы (flying probe), рентгеновское сканирование, многозондовое тестирование (bed-of-nails) и так далее требуют наличия дорогостоящего оборудования, которое не всегда доступно там, где проектируется и отлаживается плата.

Использование пограничного сканирования (boundary scan) для отладки первого опытного образца позволяет действовать более уверенно, так как не требует включения платы в основном рабочем режиме и тестирование даже может запускаться ещё до окончания разработки "прошивки" ПЛИС или программы процессора. Эти же тесты, разработанные для отладки опытного образца, могут быть использованы и на производстве как в неизменном виде, так и в виде базы для более сложных тестов.

Почему следует использовать пограничное сканирование через JTAG для тестирования печатных плат?

BGA

С увеличением доли микросхем, реализованных в корпусе BGA (Ball Grid Array), применение традиционных систем тестирования печатных плат, таких как многозондовое тестирование (bed-of-nails) или летающие щупы (flying probe) становится всё более ограниченным, так как "внутренние" контакты физически недоступны.

Пограничное сканирование (boundary scan) на основе JTAG при помощи простого "четырёхконтактного" интерфейса позволяет произвольно управлять контактами корпуса микросхемы с поддержкой JTAG, в том числе считывать значения, не имея к контактам физического доступа.

Стенд

В процессе проектирования и отладки временны́е и денежные затраты на разработку/приобретение испытательных/отладочных стендов могут быть очень существенными, а в некоторых случаях и превышать затраты на само проектирование. Во многих случаях использование пограничного сканирования (boundary scan) позволяет вообще отказаться от применения испытательного стенда, а в остальных случаях подойдет и значительно более простой и дешёвый стенд.

Малые партии

В случае, когда у компании имеется много проектов плат, выпускаемых малыми партиями, задача удешевления тестового оборудования особенно актуальна. Единственно приемлемым вариантом в данном случае является покупка системы "летающие щупы" (flying probe), но если цена при этом делится на все проекты, то временны́е затраты на подготовку теста для каждого проекта остаются неприемлемыми. Использование пограничного сканирования (boundary scan) позволяет ускорить подготовку теста для каждого проекта, при том, что покупка дорогостоящего тестового оборудования теперь не требуется.

Стоимость разработки теста

Так как разные микросхемы (процессоры и ПЛИС) взаимодействуют с периферией разными способами, разработка традиционного функционального теста отдельно для каждой платы является очень затратной. Пограничное сканирование (boundary scan) существенно сокращает стоимость разработки тестов благодаря упрощённому способу управления контактами корпуса микросхемы для взаимодействия с остальными компонентами на плате. А унифицированный интерфейс JTAG позволяет формировать отдельные тесты как библиотечные элементы и использовать их в разных проектах вне зависимости от применяемых микросхем с поддержкой JTAG.

И для тестирования и для программирования

JTAG часто применяется для программирования микросхем (ПЛИС) на плате в процессе производства. А если к программированию дополнительно добавить тестирование платы через так называемое пограничное сканирование (boundary scan), то получится существенно сэкономить время и упростить производство.

Использование на производстве тех же тестов, которые применялись при проектировании

Обычно для тестирования изделий на производстве применяется большое дорогостоящее оборудование. Всё, что требуется для применения пограничного сканирования (boundary scan) через JTAG - это контроллер XJLink, размерами сопоставимый с компьютерной мышью.

Удобная диагностика дефектов

Пограничное сканирование (boundary scan) через JTAG, в отличие от специально разработанных функциональных тестов, позволяет получать информацию о точном месте возникновения неисправности, что очень помогает при восстановлении платы. А применение системы XJTAG ещё и позволяет визуализировать место неисправности на плате и указать точное место в принципиальной схеме.

Восстановление нерабочих плат, где функциональные тесты бессильны

Пограничное сканирование (boundary scan) через JTAG можно использовать на плате, где не работает ничего, кроме самого JTAG интерфейса. Если плата не включается, то провести традиционные функциональные тесты не получится. Простейшая неисправность в таких элементах на плате, как память или генератор синхросигнала не позволяет применить функциональный тест, но легко обнаруживается при помощи JTAG.

Состав системы XJTAG