JTAG и Граничное Сканирование 1. 2. 3. 4. 5. 6. 7. Что такое JTAG Порт тестового доступа: TAP (Test Access Port) Автомат управления TAP (TAP-controller) JTAG цепочка Что такое Граничное Сканирование (Boundary Scan Testing Архитектура поддержки Граничного Сканирования Возможности Граничного Сканирования 1. Что такое JTAG Когда речь идет о JTAG, прежде всего, подразумевается стандарт: IEEE 1149.12001 Test Access Port and Boundary-Scan Architecture (Стандарт IEEE 1149.1-2001 Порт тестового доступа и Архитектура Граничного сканирования ). С ростом степени интеграции БИС, плотности монтажа и появлением многослойных печатных плат, методы диагностики, основанные на подключении к контрольным точкам платы и выводам микросхем, становятся все более сложными в использовании и неэффективными. Основные недостатки альтернативных способов диагностики были связаны, прежде всего, с отсутствием соответствующих общепринятых стандартов—и, как следствие, широкой поддержки проектировщиков и производителей. В начале 1985 года объединенными усилиями нескольких европейских компаний была создана группа для разработки решения проблем тестирования интегральных схем, цифровых устройств и систем. Эта группа получила имя: Joint European Test Action Group (JETAG). Позднее, в 1988 году к ней присоединились представители североамериканских компаний, и название было изменено на Joint Test Action Group (JTAG). Результатом работы этой группы явился принятый в 1990 году стандарт IEEE Std.1149.1 и его усовершенствованная версия: стандарт IEEE Std.1149.1a (1993 год). В основу стандарта положена идея внедрение в компоненты цифрового устройства средств, обеспечивающих унифицированный подход к решению следующих задач: Тестирование связей между интегральными схемами, после того, как они были смонтированы на печатной плате или другой основе; Наблюдение за работой компонент без вмешательства в их нормальную работу, или непосредственное управление одним или более компонентом; Обеспечение стандартизованного доступа к произвольным средствам самотестирования, встраиваемым в БИС; При этом в общем виде сам процесс тестирования выглядит следующим образом: Тестируемая плата с расположенными на ней БИС подключается, через последовательный канал передачи данных (JTAG интерфейс), к некоторому ведущему устройству. Ведущее устройство, используя возможности предоставляемые JTAG, решает задачи связанные с диагностикой тестируемого устройства, локализации неисправностей, загрузкой конфигураций PLD и т.п. Как правило, ведущим устройством является персональный компьютер, оснащенный соответствующим программным обеспечением. Подключение к ведомому устройству осуществляется через параллельный или последовательный порт, или через плату расширения. Впрочем, если задачи решаемые через JTAG достаточно просты, как загрузка начальной конфигурации в PLD, или тестирование общей работоспособности устройства после включения питания, то роль ведущего устройства может играть простейший микропрограммный автомат постоенный на базе ПЗУ и счетчика. Рис 1. Тестирование устройства по JTAG. Таким образом, стандарт JTAG определяет: Интерфейс, через который осуществляется обмен тестовыми инструкциями и данными между ведущим устройством и встроенными средствами тестирования (TAP — Test Access Port) ; Минимальный набор средств тестирования, встраиваемых в БИС (средства поддержки метода Граничного Сканирования); 2. Порт тестового доступа: TAP (Test Access Port). Когда мы говорим о передаче информации через JTAG, то мы подразумеваем обмен между ведущим устройством и встроенными в БИС средствами тестирования. Для этой цели был разработан TAP (Test Access Port)—Порт Тестового Доступа. Аппаратная поддержка поддержки JTAG реализуется достаточно простыми схемами. TAP требует 4-х внешних контактов: TDI (Test Data Input)—контакт для получения последовательных данных. На этот контакт последовательно, бит-за-битом податься данные, которые затем интерпретируются схемой управления; TDO (Test Data Output)—контакт вывода последовательных данных. С этого контакта ведущее устройство последовательно считывает данные из БИС (например результат тестовых операций); TCK (Test Clock Input)—контакт сигнала синхронизации обмена; TMS (Test Mode Select)—этот контакт управляет состоянием внутреннего автомата TAP. В частности с помощью этого контакта определяется что грузиться: команда или данные, а также определяться начало и конец загрузки; Следующий контакт не является обязательным для реализации: TRST (Test ReSeT)—сброс в начальное состояние контроллера внутреннего автомата TAP Ниже схематически показана ИС со встроенной схемой поддержки JTAG. Рис. 2. ИС со встроенной схемой поддержки JTAG В процессе обмена информацией через TAP, ведущее устройство воспринимает такую БИС как сдвиговый регистр. При этом TDI—вход сдвигового регистра; TDO—выход сдвигового регистра; TCK—сигнал сдвига; В зависимости от состояния автомата TAP в канал может быть включен либо регистр данных либо регистр команды. Регистр команды в JTAG контроллере всегда один. Регистров данных в JTAG контроллере может быть сколько угодно. Какой именно регистр данных будет выбран для подключения, как правило, определяется загруженной командой. Стандарт JTAG требует наличия в контроллере одноразрядного регистра данных, называемого BYPASS. Его назначение будет пояснено ниже. Рассмотрим более встраиваемую в БИС: подробно схему управления JTAG интерфейсом, Рис. 3. Сехема управления JTAG иннтерфейсом В состав схемы входят: Три сдвиговых регистра (регистр команд (IR), регистр пропуска (Bypass) и регистр данных (DR); Выходной мультиплексор (MUX); Контроллер управления (TAP Controller). Основным регистром является регистр данных, он служит источником и приемником данных при выполнении в JTAG цепочках любых команд. С точки зрения устройства управления, регистр данных является одним из трех сдвигающих регистров, включаемых между контактом для подачи входной информации (контакт TDI) и контактом для получения выходной информации (контакт TDO). 3. Автомат управления TAP (TAP-controller) Можно выделить два важных режима или состояния TAP: Состояние загрузки команд; Состояние загрузки данных; Режим работы определяется текущим состоянием встроенного в TAP конечного автомата. Его граф приведен ниже: Рис. 5. Граф состояний управляющего автомата TAP. Граф включает в себя 16 состояний. Переход от состояния к состоянию осуществляется по каждому переднему фронту TCK. Ветвь перехода зависит от текущего состояния сигнала TMS. Начальным состоянием автомата является Test Logic Reset. После включения питания, ведущее устройство "не знает", в каком состоянии окажется автомат TAP тестируемого устройства. Необходим способ гарантированного перевода TAP в начальное состояние. Таких способов два: Установить на TMS высокий уровень и подать 5 или более импульсов TCK . В этом услучае автомат окажеться в состоянии Test Logic Reset; Если реализован контакт TRST то автомат можно сбросить импульсом на этом выводе; Загрузки команды в регистра команды происходит в состоянии Shift-IR. Загрузка данных состоянии Shift-DR. происходит в заданный регистр данных происходит в Какой именно регистр данных будет выбран для обмена, определяется текущим содержимым регистра команды. Ниже приведен более подробное описание каждого состояния: Test-Logic-Reset—сброс логики тестирования. В этом состоянии тестирующая логика отключается, регистр команды инициализируеться кодом команды BYPASS или кодом команды вывода идентификационного кода интегральной схемы (IDCODE); Run Test\Idle—состояние ожидания или выполнения внутренних тестов. Это состояние используеться как промежуточное между операциями. Например, если загрузкой некоторой команды и данных, была инициализирована продолжительная тестовая процедура, то на время ее выполнения TAP следует перевести в это состояние; Select-DR-Scan—промежуточное состояние автомата, позволяет попасть в ветвь автомата, связанную с загрузкой данных; Select-IR-Scan—промежуточное состояние автомата, позволяет попасть в ветвь автомата, связанную с загрузкой команды; Capture-DR—это состояние подготовки данных к обмену. Данные, которые должны быть переданы ведущему устройству, загружаются в соответствующий регистр данных контроллера JTAG; Shift-DR—в этом состоянии регистр данных включаеться между выводами TDI и TDO. Данные, подготовленные для ведущего утройства (результат текущей команды загрущенной в командный регистр) последовательно выдвигаються наружу, замещаясь данными, которые передаються ведущим устройством; Exit1-DR, Exit2-DR, Exit1-IR, Exit2-IR—промежуточные состояния, не оказывают никакого влияния на состояние тестовой логики, предназначены для быстрого перехода в начальное состояние; Pause-DR, Pause-IR —эти состояния, позволяют приостанавливать продвижение информации на произвольное количество тактов синхронизации (например, для выполнения каких либо действий в БИС с внешним тактированием); Update-DR—это состояние, в котором вдвинутые данные "защелкиваються", в момент выхода из этого состояния тестовая логика приступает к соотвествующей операции с использованием загруженных данных; Capture-IR—фактически промежуточное состояние, не оказывает никакого влияния на состояние тестовой логики; Shift-IR—в этом состоянии регистр команды включаеться между выводами TDI и TDO. Текущее содержмое регистра последовательно выдвигаеться наружу, замещаясь командой, которые передаваемой ведущим устройством; Update-IR—cостояние фиксации и активизации вдвинутой команды; 4. JTAG-цепочка. Если на плате смонтировано несколько ИС, поддерживающих JTAG, то они объединяються в так называемую JTAG цепочку: Рис 4. Схема JTAG-цепочки. Стандарт не вводит никаких ограничений на количество устройств в цепочке. В процессе обмена вся цепочка представляет собой один сдвиговый регистр, каждой ИС будет соответствовать определенное количество разрядов в этом регистре. Ведущее устройство должно "знать" количество разрядов для каждой БИС. 5. Что такое Граничное Сканирование (Boundary Scan Testing) Стандарт JTAG определяет минимально-необходимый набор средств, который должен быть включен в состав БИС для того чтобы ее можно было вовлечь в процесс тестирования методом Граничного Сканирования. Главная идея метода— получение ведущим устройством доступа к внешним выводам БИС через JTAG, включая: Возможность наблюдения за выводами, без вмешательства в нормальную работу тестируемого устройства, Прямое управление выводами БИС. 6. Архитектура поддержки Граничного Сканирования Рассмотрим подробнее требованиями JTAG. структуру БИС, построенными в соответствии с Рис. 5. Архитектура БИС поддерживающая метод граничного сканирования. Основу архитектурной поддержки метода состоявляют ячейки граничного сканирования (BSC—Boundary Scan Cell). Последовательность из этих ячеек разделяет внутреннюю логику БИС и ее внешние выводы. С точки зрения обмена эта последоваетельность представляет собой один регистр данных, который включаться в канал JTAG. Такой регистр называеться Регистром Граничного Сканирования (Boundary Scan Register). простой вариант схемы отдельной ячейки: Ниже приведен наиболее Рис. 6. Схема сканирующей ячейки Можно выделить несколько режимов в работе ячейкиЖ Режим сдвига, когда в триггера Т1 по сигналу "захват" сохраняеться состояние аналогичного триггера предыдущей ячейки. В этом режиме ведущее устройство последовательно выдвигает текущее состояние ячеек и вдвигает новое; Режим наблюдения ("Sample") В этом режиме по импульсу текущее состояние вывода фиксируется в триггере, и может быть потом считано ведущим устройством. При этом, в процессе обмена данные получаемая от ведущего устройства фиксируются в триггере. При необходимости, в режиме тестирования (EXTEST) эти данные могут быть выведены на внешний вывод; Режим тестирования ( EXTEST—Executing Test ). В этом режиме на выход подается логическое значение, которое находиться в триггере Т2; В приведенной схеме на каждый вывод БИС приходиться один бит регистра граничного сканирования (его роль играет триггер Т1). Однако очень часто встречаються схемы, в которых на каждый вывод приходиться 3 бита: бит для вывода значения в тестовом режиме, бит, сохраняющий фактический логический уровень, находящийся на выводе, и бит управляющий переводом вывода в высоко-импедансное состояние. 7. Возможности Граничного Сканирования Таким образом ведущее устройство может получить доступ к любому выводу любой БИС, включенной в JTAG-цепочку. Рис. 7. Плата с поддержкой JTAG. Выставляя на одних выводах логические уровни и проверяя состояния других ведущее устройство может делать заключение о наличии или отсутствии связей между выводами различных БИС; Перехватывая управление выводами можно формировать на выводах областей не охвеченных цепочкой тестовые комбинации и проверять корректность реакций. Например, управляя выводами центрального процессора произвести тестирование работоспособности ОЗУ; Делать "снимки" состояний контактов интегральных схем цифрового устройства, и на основе их анализа делать заключение о правильности его работы;