TCK
и по включению питания. Сменой состояний управляет сигнал TMS
(Test Mode State), воспринимаемый по положительному перепаду TCK
. Граф состояний и переходов управляющего автомата представлен на рис. 11.8. Около стрелок переходов указаны значения сигнала TMS
во время фронта TCK
.Рис. 11.8
. Граф состояний и переходов контроллера TAPВ исходное состояние
TMS
, удерживаемым не менее пяти тактов TCK
. Для перевода в состояние TRST
. В этом состоянии тестовая логика запрещена, и устройство работает в нормальном режиме.Состояние
В состоянии
EXTEST
и SAMPLE/PRELOAD
сканирующий регистр фиксирует только данные на входных линиях.В состоянии
TDI
продвигаются через подключенный сдвиговый регистр на выход TDO
.В состоянии
В состоянии
TCK
сигналы из сдвигового регистра фиксируются на выходах тестовых ячеек.В состоянии
SAMPLE
.В состоянии
TDI
и TDO
включается сдвиговый регистр инструкций, но еще исполняется предыдущая инструкция.В состоянии
В состоянии
TCK
фиксируется новая исполняемая инструкция, и в цепь TDI
-TDO
включается соответствующий ей регистр.Кроме этих основных состояний контроллера, определяющих действия тестового оборудования, имеются и временные промежуточные состояния, необходимые для реализации переходов автомата. К ним относятся
Для интерфейса JTAG существует специальный язык описания устройств
Интерфейс JTAG используется не только для тестирования, но и для программирования различных устройств, в том числе и энергонезависимой памяти микроконтроллеров. Контакты для сигналов JTAG имеются на шине PCI, однако в их использовании единообразия не наблюдается (либо остаются неподключенными, либо соединяются для организации цепочки). Интерфейс JTAG имеется в современных процессорах; здесь он позволяет не только тестировать сам процессор (это не представляет особого прикладного интереса), но и организовать зондовый режим отладки (probe mode, см. [6, 7]). Зондовый режим является мощным средством отладки системного программного обеспечения; обычный процессор, связанный с тестовым контроллером интерфейсом JTAG, превращается во внутрисхемный эмулятор — мечту разработчика системного ПО.
11.5. Программно-управляемая реализация последовательных интерфейсов
Рассмотренные выше интерфейсы — I²C, SMBus, SMI, SPI и JTAG — имеют общее свойство: они управляются и синхронизируются контроллером и не требуют фиксированной частоты синхронизации. Это позволяет для многих применений программно реализовать их на любом компьютере или микроконтроллере. На рис. 11.9 приведена схема простейшего адаптера интерфейсов I²C, SMBus или SMI для LPT-порта. Здесь сигнал SCL
MDC
в SMI) формируется непосредственно от выходной линии Strobe
; для его переключения достаточно последовательно записывать в бит 0 регистра CR
(порт с адресом LPT_BASE
+2) нули (высокий уровень сигнала) и единицы (низкий). Двунаправленный сигнал SDA
(MDIO
в SMI) реализуется чуть сложнее: для передачи нуля в бит 1 регистра CR
(LPT_BASE
+2) записывается единица, для передачи единицы — нуль. На время чтения в этот бит должен быть записан нуль (чтобы на выходе был высокий уровень), данные (инверсные) считываются из бита 7 регистра SR
(LPT_BASE
+1). В адаптере должен использоваться диод с малым прямым падением напряжения. Лучше всего для этого подходят германиевые меза-диоды Д310 или Д311; кремниевые диоды, даже с барьерами Шоттки, здесь работают хуже (возможен слишком высокий формируемый уровень нуля).Рис. 11.9
. Адаптер трехпроводных интерфейсов для LPT-порта