Лек1 (1084885), страница 4
Текст из файла (страница 4)
Стандарт был разработан Объединённой Группой Разработки Тестового Контроля (Joint Test Action Group -JTAG). Поэтому архитектура, определённая этим стандартом, известна как "JTAG boundary scan", что можно перевести как "JTAG пограничное сканирование" или кратко JTAG. Структура JTAG показана на рис.1.4.
1.12.2. Основные компоненты JTAG
Все сигналы между процессорным ядром (CORE LOGIC) и внешними выводами микроконтроллера перехватываются и фиксируются в так называемом "Регистре Сканирования Границ Boundary Scan Registor (BSR)." Отдельные элементы этого регистра (пути и цепи диагностического сканирования) показаны на рис. 1.4. как ячейки "C0", "C1", "C2", "C3", и "C4".
В нормальном режиме работы процессорное ядро связано напрямую со штырьками и диагностические элементы становятся невидимыми. При тестировании внешних устройств, подключенных к выходным штырькам микроконтроллера, с помощью этих диагностических элементов можно отключить процессорное ядро микроконтроллера от выходных штырьков и управлять самостоятельно выходными штырьками ("Pin1", и "Pin2" на рис.1.4). При этом можно фиксировать и считывать состояние входных штырьков, что может быть весьма полезно в замкнутых системах регулирования.
При тестировании логического ядра микроконтроллера с помощью этих диагностических элементов можно отключить входные штырьки от логического ядра, управлять входными сигналами непосредственно на входе логического ядра самостоятельно, и считывать и фиксировать состояния логического ядра на выходных штырьках.
Рассмотрим назначение отдельных элементов JTAG.
Ячейка C0 - ячейка BSR, которая захватывает состояние входного штырька 0 (pin 0). Ячейка C1 - ячейка BSR, управляющая выходным штырьком 1 (pin 1).
Ячейка C2 – ячейка BSR, которая не связана непосредственно с каким- либо выводом, но она определяет "направление передачи" через двунаправленный вывод 2 (pin 2).
Ячейка C3 - входная ячейка BSR, захватывающая состояние двунаправленного штырька 2, когда он является входным.
Ячейка C4 - выходная ячейка BSR, определяющая состояние двунаправленного штырька 2, когда он является выходным.
Суммируя сказанное, можно выделить три типа ячеек BSR:
Входные ячейки подобные C0 и C3. Они всегда связаны со специфическими штырьками микроконтроллера, через которые в нормальном рабочем режиме поступают входные сигналы. Обычно это сигналы датчиков.
Выходные ячейки подобные C1 и C4. Они всегда связаны со специфическими штырьками, через которые в нормальном рабочем режиме производится вывод из микроконтроллера. Обычно к этим выводам подключаются исполнительные механизмы и индикаторы.
Разрешающие ячейки подобные C2. Они не связаны непосредственно с какими-либо штырьками, но они или управляют направлением передачи через двунаправленные выводы.
Каждая ячейка окружена тремя типами клапанов, обозначенными на рис.1.4 буквами Е, I, N.
Клапаны E0, E3, и E4 разрешают/запрещают передачу между ячейками BSR и штырьками. Клапаны I0, I3, и I4 разрешают/запрещают передачу между ячейками BSR и логическим ядром микроконтроллера.
Клапаны N0, N1, и N3 открываются только, когда микроконтроллер работает в нормальном режиме (то есть когда аппаратные средства, связанные с функционированием JTAG находятся в неактивном состоянии). Они соединяют напрямую выводы корпуса с логическим ядром, как будто Система Сканирования Границ отсутствует.
1.12.3. Регистры JTAG
Согласно стандарта IEEE 1149, JTAG должен иметь четыре обязательных регистра.
Регистр Инструкций (IR). Принимает команды последовательным кодом и передаёт их параллельным кодом на дешифратор. Обычно имеет длину 5 бит и не имеет бита контроля чётности. После сброса в него записывается двоичный код 10000 (младший бит ближайший к выводу TDO). При обращении к Регистру Инструкций загружается новая команда и одновременно считывается старая. На основе кода, предварительно загруженного в Регистр Инструкций, производится выбор регистра данных.
Регистры Данных. Выбор Регистра Данных определяется кодом команды, записанной в регистр Инструкций. Три регистра данных практически присутствуют во всех реализациях JTAG.
Регистр Сканирования Границы (BSR). В нём фиксируются все сигналы, курсирующие между логическим ядром микроконтроллера и внешними выводами. Разрядность BSR определяется числом внешних выводов микроконтроллера. Обычный порядок выполнения операций теста состоит в том, что сначала в регистр Команд вводится команда (инструкция), которая определяет тип выполняемого затем теста, и Регистр Данных, который используется в данном тесте.
Регистр Идентификации ID (IDR) -32-разрядный. Содержит три идентификационный поля: идентификационный код изготовителя, идентификационный код партии и номер версии микроконтроллера.
Регистр Обхода (BR), - это одноразрядный регистр, через который соединяются выводы TDI и TDO с задержкой на один такт, что даёт возможность организовать последовательный доступ к другим микроконтроллерам, оборудованным JTAG и расположенным на той же плате.
Кроме обязательных могут присутствовать дополнительные регистры, иногда вводимые некоторыми изготовителями.
Действия отладочного узла JTAG организует и управляет Test Access Port (TAP), который по существу является управляющим автоматом JTAG.
1.12.4. Сигналы управления JTAG
Согласно стандарту IEEE 1149 интерфейс JTAG использует четыре обязательных специальных сигнала:
1.TCK - входной сигнал синхронизации Test CLocK .Сигнал TCK генерируется оборудованием, управляющим тестированием. Частота синхронизации может лежать в широких пределах от килогерц до нескольких МГц). Она может даже быть переменной.
2.TMS - входной сигнал Test Mode Select- Выбора Способа Тестирования, который управляет сменой состояний конечного автомата ТАР, определяющего алгоритм функционирования JTAG в процессе отладки.
3.TDI - входной сигнал. Вводит побитно данные в регистры JTAG (в Регистр Сканирования Границы (BSR), в Регистра Инструкций (IR) или другие регистры данных).
4.TDO - выходной сигнал, который побитно выводит данные из регистров JTAG на оборудование, управляющего тестом.
Содержание регистров может быть побитно записано и считано через последовательный канал, используя выводы TDI и TDO интерфейса JTAG. Процесс записи в регистр BSR и чтения из BSR происходит одновременно. В то время новая величина побитно задвигается в BSR через вывод TDI, его прежнее значение выдвигается наружу через вывод TDO. Такой же способ обновления данных используется и для других JTAG-регистров. Подключение их к выводам TDI и TDO производится под управлением блока TAP.
Некоторые изготовители иногда вводят один или два дополнительных управляющих сигнала, например, сигнал TRST*.
5.TRST* - входной сигнал начальной установки Test-ReSeT, который инициализирует или отключает интерфейс системы отладки JTAG.
Если на плате установлены несколько микроконтроллеров, имеющих внутрикристальные JTAG, то выводы TRST*, TCK, и TMS каждого микроконтроллера должны соединяться параллельно, а вывод TDO одной микросхемы должен быть соединён с выводом TDI следующей, образуя единую замкнутую последовательную цепь.
При таком соединении плата, содержащая несколько микроконтроллеров с поддержкой JTAG, может рассматриваться как единая микросхема, имеющая те же 5 управляющих сигналов, описанных выше.
В более простом случае для платы, имеющей несколько микроконтроллеров, оборудованных внутрикристальными эмуляторами JTAG, отладка каждого микроконтроллера производится отдельно и независимо подачей всех сигналов управления только на отлаживаемый микроконтроллер.
1.12.5. Команды JTAG
Стандарт IEEE-1149 определяет обязательный набор инструкций, которые должны присутствовать во всех JTAG. Этот обязательный набор включает четыре команды: EXTEST, SAMPLE/PRELOAD (INTEST), IDCODE, BYPASS, обеспечивающие доступа к трём обязательным регистрам данных: BSR, IDR и BR.
Команда EXTEST (ВНЕШНИЙ ТЕСТ), (код 00000) позволяет установить нужные логические уровни в выходных ячейках регистра BSR, благодаря чему обеспечивается проверка устройств, подключённых к выходным контактам микроконтроллера. Непосредственно после команды должна производиться загрузка данных в регистр BSR через вход TDI.
Команда SAMPLE/PRELOAD (INTEST), (код 000100) даёт возможность установки нужных логических уровней во входных ячейках регистра BSR, благодаря чему обеспечивается проверка логического ядра микроконтроллера в статическом режиме. Непосредственно после команды должна производиться загрузка данных в регистр BSR через вход TDI. В некоторых случаях эту команду называют INTEST (ВНУТРЕННИЙ ТЕСТ).
Команда IDCODE (КОД ИДЕНТИФИКАЦИИ), (код 00001 обеспечивает вывод через контакт TDO содержимого регистра IDR. Вход TDI после этой команды не задействован.
Команда BYPASS (код 11111) подключает выводы TDI и TDO к одноразрядному регистру, который обеспечивает задержку на один такт сигнала синхронизации ТСК. Она позволяет эффективно использовать возможности последовательного интерфейса при организации проверки нескольких микросхем, оборудованных JTAG и находящихся на одной плате. После загрузки этой команды в микроконтроллер, находящийся в единой последовательной тест-цепочке, он будет пропускать сквозь себя со сдвигом на один такт всю информацию, поступающую с входа TDI, не реагируя на неё.
Благодаря этой команде удаётся выделить микроконтроллер в единой последовательной тест-цепочке для тестирования в текущий момент и организовать поочерёдное тестирование всех микроконтроллеров, находящихся в едином тест-цепочке.
1.12.6. Функционирование JTAG
На рис.1.5 показана диаграмма состояний ТАР-контроллера и порядок их смены.
Все состояния имеют два выхода. Поэтому сменой состояний управляет один бинарный сигнал. Таким сигналом является TMS.
Исходным состоянием после подачи питания является Test- Logic- Reset. Независимо от исходного состояния ТАР-контроллер перейдёт в исходное состояние при удержании входа TMS в высоком состоянии в течение 5 тактов ТСК.
Рассмотрим работу ТАР-контроллера, считая, что текущим состоянием является Run-Test/Idle. Тогда типичным сценарием использования JTAG является:
1.Формирование на входе TMS последовательности 1,1,0,0 синхронно с нарастающим фронтом ТСК для перевода Регистра Инструкции в состояние сдвига Shift-IR.
2.Удержание на входе TMS низкого уровня в течение 4 тактов ТСК. В течение этого периода 4 младших разряда команды со входа TDI будут записаны в Регистр Инструкций синхронно с сигналом ТСК. Старший разряд команды задвигается в Регистр Инструкций при выходе из данного состояния установкой 1 на входе TMS. В процессе ввода команды через вход TDI на выходе TDO выводится код 0х01, означающий при загрузке первой команды нахождение в состоянии сдвига Shift-IR или код ранее загруженной команды.
3.Формирование на входе TMS последовательности, обеспечивающей переход в состояние Update-IR, в котором код команды защёлкивается на выходе Регистра Инструкций и параллельным кодом передаются в дешифратор команд.
4.Формирование на входе TMS последовательности 1,0.0, обеспечивающей переход в состояние сдвига регистра данных Shift-DR, в котором производится загрузка данных через вход TDI в регистр BSR при исполнении команд EXTEST, SAMP LE/PRELOAD (INTEST), команды IDCODE, BYPASS не требуют ввода данных.
Рис.1.5.Диаграмма состояний JTAG-системы
Состояния Exit1-DR, Pause-DR, Exit2-DR, Exit1-IR, Pause-IR, Exit2-IR служат для создания временных задержек и используются по необходимости.
Стандарт 1149 допускает введение дополнительных регистров и сигналов интерфейса. Для сокращения сроков отладки с помощью JTAG и удобства использования фирмы – производители микроконтроллеров вводят дополнительные регистры и режимы, расширяя систему команд и формат интерфейса.
1.12.7. Средства поддержки JTAG
Для описания механизма граничного сканирования используется специальный язык Boundary Scan Description Language (BSDL), являющийся подмножеством языка описания аппаратуры VHDL(VHSIC Hardware Description Language). Язык BSDL позволяет описывать структурные элементы механизма граничного сканирования на уровне разрядности регистров управления и форматов регистров граничного сканирования.
Файлы BSDL поставляются изготовителями микроконтроллеров или других микросхем, оборудованных JTAG. Они описывают выводы микросхемы, работу обязательных и дополнительных регистров, коды общих и частных команд. Таким образом JTAG-тестирование на уровне отдельной микросхемы может быть осуществлено с использованием BSDL-файла.
При тестировании нескольких микросхем, оборудованных JTAG, возникает проблема выбора микросхемы. Чтобы в нужный момент к нужной микросхеме пришли команды и данные, необходимо учитывать её место в единой последовательной тест-цепочке. В этом случае используется другой язык – Serial Vector Format (SVF), имеющий в своём составе термины: Header (Заголовок), Target (Цель), Trailer (Хвостовик), с помощью которых решается данная проблема.
-
Контрольные вопросы
-
Какие проблемы призваны решать программные средства отладки микропроцессорных систем?
-
Перечислите основные модули интегрированной отладочной среды. Какие функции на них возлагаются?
-
Перечислите основные аппаратные средства, используемые при отладке.
-
Объясните принцип действия и назначение следующих устройств: эмулятор ПЗУ, монитор, интеллектуальный эмулятор ПЗУ, плата развития, плата-конструктор.
-
Объясните принцип действия внутрисхемного эмулятора. Укажите достоинства и недостатки.
-
Нарисуйте структуру внутрикристального эмулятора. Объясните принцип действия. Сравните с внутрисхемным.
-
Перечислите регистры JTAG. Укажите их назначение и разрядность.
-
Перечислите сигналы управления JTAG. Поясните их назначение.
-
Объясните работу JTAG, используя рис. 1.5.