Аппаратные интерфейсы ПК

Интерфейс JTAG


Интерфейс JTAG (Joint Test Action Group) предназначен для тестирования слож­ных логических схем, установленных в целевое устройство. Этот интерфейс опи­сан в стандарте IEEE 1149.1 Boundary Scan Architecture и является последователь­ным синхронным, но в связи со спецификой назначения значительно отличается от вышеописанных интерфейсов, ориентированных на передачу данных. Интерфей­сом JTAG управляет одно устройство-контроллер (чаще всего это ПК с соответству­ющим интерфейсным адаптером), к которому может быть подключено несколько тестируемых устройств. Ниже перечислены сигналы интерфейса JTAG.

¦     ТСК (Test Clock) — сигнал синхронизации последовательных данных; генери­руется контроллером. Частота синхронизации может достигать 16 МГц.

¦     IMS (Test Mode Select) — сигнал выбора тестового режима. Генерируется кон­троллером.

¦     TDI (Test Data Input) — входные данные, принимаемые устройством в последо­вательном двоичном коде (младшим битом вперед).

¦     ТОО (Test Data Output) — выходные данные, передаваемые устройством в по­следовательном двоичном коде.

¦     TRST (Test Logic Reset) — необязательный сигнал сброса логики интерфейсно­го порта, генерируемый контроллером.

Эти сигналы (все однонаправленные), имеющие обычные логические уровни, об­разуют тестовый порт ТАР (Test Access Port), через который тестируемое устрой­ство подключается к тестирующему оборудованию (контроллеру). В задачу тес­тирующего оборудования входит формирование тестовых сигналов по программе тестирования, определенной разработчиком тестируемого устройства, и сравне­ние полученных результатов с эталонами. Один и тот же контроллер и порт могут использоваться для тестирования любого числа устройств, поддерживающих JTAG. Для этого устройства своими портами ТАР соединяются в цепочку (рис. 11.6). Стандартизованный логический формат позволяет контроллеру независимо об­щаться с каждым из устройств цепочки (для этого, конечно, они должны иметь исправные ячейки JTAG).


11.4. Интерфейс JTAG

447



Рис. 11.6. Цепочка устройств с интерфейсом JTAG

Идею тестирования любой цифровой схемы иллюстрирует рис. 11.7, на котором показана условная цифровая система, имеющая входные, выходные (возможно, с третьим состоянием) и двунаправленные сигналы. Ячейки тестирования B/S врезаются между реальными внешними выводами устройства и собственно ло­гическим устройством, то есть располагаются на логической границе (boundary) устройства. ТАР-контроллер способен сканировать ячейки — управлять ими и считывать с них информацию. Отсюда и пошло название Boundary Scan, которое можно перевести как «периферийное сканирование». При включенном тестовом режиме ТАР-контроллер может логически отсоединить сигналы от внешних выво­дов, задавать входные воздействия и считывать результаты — собственно, это все, что необходимо для тестирования последовательностных схем (автоматов с памя­тью). Прелесть JTAG заключается в том, что независимо от сложности устройства оно тестируется с помощью всего лишь четырех сигналов — все сложности прячут­ся в достаточно простые ячейки, «окутывающие» его сигнальные выводы.



Тестовая логика, встраиваемая в устройство, поддерживающее JTAG, состоит из следующих элементов:

¦     тестовый порт ТАР (четыре интерфейсных сигнала);

¦     ТАР-контроллер, управляющий тестовыми регистрами;

¦     регистр инструкций IR (Instruction Register), который принимает последова­

тельный код со входа TDI (код инструкции используется для выбора исполня­

емой тестовой операции или регистра тестовых данных, к которым произво­

дится обращение);

¦     регистры тестовых данных, из которых любое устройство должно иметь три

обязательных регистра: В PR (Bupas Register), DID (Device Identification Register) и BSR (Boundary Scan Register).

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


На их входы ( старшие биты) приходит сигнал TDI, с выходов (младшие биты) снимается сигнал ТОО. По каждому положитель­ному перепаду данные продвигаются на один бит.

Регистр В Р R имеет длину в один бит. Он используется как кратчайший обходной путь для последовательных данных, когда остальные регистры не участвуют в обмене.

448

Глава 11. Вспомогательные последовательные интерфейсы и шины



Рис. 11.7. Включение ячеек сканирования

Регистр BSR представляет собой длинный сдвигающий регистр, каждым битом которого являются пограничные ячейки, установленные на всех входных и выход­ных сигналах процессора. Для двунаправленных сигналов (или их групп), кроме собственно информационных ячеек регистра, соответствующих внешним сигна­лам, имеются и управляющие ячейки, задающие режим работы информационных ячеек. К примеру, у процессоров Р6 длина BSR составляет 159 бит.

Регистр DID длиной 32 бита содержит идентификатор производителя, код устрой­ства и номер версии, по которым ТАР-контроллер может распознать, с каким устройством он имеет дело.

Регистр IR служит для хранения исполняемой тестовой инструкции. Его длина зависит от тестируемого устройства. Для всех устройств обязательными являют­ся инструкции BYPASS, IDCODE, SAMPLE и EXTEST.

Инструкция BYPASS (все биты кода — единичные) предназначена для подключения однобитного обходного регистра, обеспечивая скорейшее прохождение данных через устройство; при этом оно никак не реагирует на проходящий поток. Вход TDI обычно «подтягивают» резистором к высокому уровню, при этом разрыв цепочки JTAG приведет к подключению обходных регистров во всех устройствах после точки обрыва. Это исключает возможные непредсказуемые действия устройств в случае обрыва.

11.4. Интерфейс JTAG________________________________________________ 449

Инструкция идентификации IDCODE (младшие биты кода — 10) подключает к интерфейсу регистр DID, позволяя считать его содержимое (поступающие вход­ные данные не могут изменить его значение).



Инструкция SAMPLE/PRELOAD (младшие биты кода — 01) имеет два назначения. Когда ТАР-контроллер находится в состоянии Capture-DR (см. ниже), эта ин­струкция позволяет выполнить моментальный «снимок» состояния всех внешних сигналов без воздействия на работу устройства. Значение сигналов фиксируется по положительному перепаду ТСК. В состоянии Update-DR по этой инструкции данные загружаются в выходные ячейки тестового порта (но еще не на выходы устройства), откуда впоследствии они будут выводиться (подаваться на выводы процессора) по инструкции EXTEST. Данные загружаются по спаду сигнала ТСК.

Инструкция EXTEST (младшие биты кода — 00) предназначена для проверки внеш­них цепей (по отношению к тестируемому устройству). При этом на выходные выводы подаются сигналы, предварительно записанные в регистр BSR, а состо­яние входных сигналов фиксируется в этих регистрах. Двунаправленные сигналы предварительно конфигурируются соответствующими им управляющими бита­ми ячеек BSR.

Стандарт 1149.1 предусматривает и инструкцию тестирования внутренней логи­ки устройства INTE5T, но ее поддерживают не все устройства.

Контроллер тестового порта (TAP-controller) представляет собой синхронный конечный автомат, изменяющий состояние по фронту сигнала ТСК и по включе­нию питания. Сменой состояний управляет сигнал TMS (Test Mode State), воспри­нимаемый по положительному перепаду ТСК. Граф состояний и переходов управ­ляющего автомата представлен на рис. 11.8. Около стрелок переходов указаны значения сигнала TMS во время фронта ТСК.

В исходное состояние Test-Logic-Reset контроллер автоматически переходит по включении питания и из любого другого состояния может быть переведен высоким уровнем TMS, удерживаемым не менее пяти тактов ТСК. Для перевода в состояние Test-Logic-Reset иногда используют и дополнительный сигнал TRST. В этом состо­янии тестовая логика запрещена, и устройство работает в нормальном режиме.

Состояние Run-Test/Idle является промежуточным между выполнением тестовых операций.


В этом состоянии регистры не изменяют своего значения.

В состоянии Capture-DR во время выполнения инструкций EXTEST и SAMPLE/ PRELOAD сканирующий регистр фиксирует только данные на входных линиях.

В состоянии Shift-DR данные с TDI продвигаются через подключенный сдвиговый регистр на выход ТОО.

В состоянии Pause-DR контроллер временно запрещает продвижение данных че­рез сдвиговый регистр.

В состоянии Update-DR по спаду ТСК сигналы из сдвигового регистра фиксиру­ются на' выходах тестовых ячеек.

В состоянии Capture-IR контроллер загружает в сдвиговый регистр инструкций код «безобидной» инструкции SAMPLE.

450                         Глава 11. Вспомогательные последовательные интерфейсы и шины



Рис. 11.8. Граф состояний и переходов контроллера ТАР

В состоянии Shift-IR в цепь между TDI и ТОО включается сдвиговый регистр ин­струкций, но еще исполняется предыдущая инструкция.

В состоянии Pause-IR контроллер временно запрещает продвижение данных че­рез сдвиговый регистр инструкций.

В состоянии Update-IR по спаду ТСК фиксируется новая исполняемая инструкция, и в цепь TDI-TDO включается соответствующий ей регистр.

Кроме этих основных состояний контроллера, определяющих действия тестового оборудования, имеются и временные промежуточные состояния, необходимые для реализации переходов автомата. К ним относятся Select-DR-Scan, Exti1-DR, Exit2-DR, Select-DR-Scan, Exit1-IR и Exit2-IR.

Для интерфейса JTAG существует специальный язык описания устройств BSDL (Boundary Scan Description Language). Состав и порядок следования информаци-

11.5. Программно-управляемая реализация последовательных интерфейсов   451

онных и управляющих ячеек в сдвиговом регистре данных специфичен для каж­дого устройства (для чего и существует идентификационный регистр) и сообща­ется его разработчиками.

Интерфейс JTAG используется не только для тестирования, но и для программи­рования различных устройств, в том числе и энергонезависимой памяти микро­контроллеров.Контакты для сигналов JTAG имеются на шине PCI, однако в их использовании единообразия не наблюдается (либо остаются неподключенными, либо соединяются для организации цепочки). Интерфейс JTAG имеется в совре­менных процессорах; здесь он позволяет не только тестировать сам процессор (это не представляет особого прикладного интереса), но и организовать зондовый режим отладки (probe mode, см. [6, 7]). Зондовый режим является мощным средством отладки системного программного обеспечения; обычный процессор, связанный с тестовым контроллером интерфейсом JTAG, превращается во внутрисхемный эмулятор — мечту разработчика системного ПО.


Содержание раздела