Skip to main content

JTAG

Микроконтроллер содержит модуль JTAG, который поддерживает обязательные и ряд дополнительных пользовательских инструкции.

Инструкции

ИнструкцияКод инструкцииРазрядность регистра данных
EXTEST000b
TEST_MODE001b
SAMPLE/PRELOAD010b
JTAG_RAM_ACCESS011b24
JTAG_ROM_ACCESS100b24
IF_ACCESS101b18
DEBUGGER110b5
BYPASS111b1

Структурная схема

Структурная схема модуля JTAG с подключенными к нему блоками

На представленном выше рисунке изображены следующие блоки:

  • TAP – управляющий рабочий автомат JTAG;
  • TDR_IF_ACCESS – блок управления тестовым пользовательским регистром данных инструкции «IF_ACCESS»;
  • TDR_JTAG_MASTER – блок управления тестовым пользовательским регистром данных инструкций «JTAG_RAM_ACCESS» и «JTAG_ROM_ACCESS»;
  • TDR_DEBUGGER – блок управления тестовым пользовательским регистром данных инструкции «DEBUGGER»;
  • CPU_8051 – процессорное ядро;
  • SWITCH_CPU/JTAG – блок, дающий доступ к системной шине CPU или JTAG;
  • DEBUGGER – отладчик.

Инструкции

TEST_MODE, EXTEST, BYPASS, SAMPLE/PRELOAD

Инструкции «EXTEST» и «SAMPLE/PRELOAD» декодируются TAP-контроллером, но не имеют регистровых цепочек.

Инструкция «TEST_MODE» имеет трехбитовый код 001b и не предполагает использование пользователем.

Инструкция «BYPASS» имеет трехбитовый код 111b и функционирует в соответствии со стандартом IEEE Std 1149.1-2001.

JTAG_RAM_ACCESS

Инструкция «JTAG_RAM_ACCESS» представляет собой дополнительную пользовательскую инструкцию c кодом 011b, в результате выбора которой CPU 8051 будет отключен от системной шины, а в место него будет подключен тестовый пользовательский регистр данных разрядностью 24 бит:

Бит2322212019181716
НазначениеRWCE_RAMADDR
Начальное значение0
Бит15141312111098
НазначениеADDR
Начальное значение0
Бит76543210
НазначениеDATA
Начальное значение0

RW – операция чтения или записи:

  • 1 – прочитать данные;
  • 0 – записать данные.

CE_RAM – обращение в область памяти RAM:

  • 1 – обращение в RAM-память или к ведомым устройствам системы;
  • 0 – область RAM не задействуется.

ADDR – адрес обращения.

DATA – данные для записи. Младший бит данных находится в бите 0.

При чтении пользовательского тестового регистра данных, считанные с системной шины данные будут переданы со следующим за командой чтения пакетом данных в формате, представленном ниже:

Бит2322212019181716
НазначениеРезерв
Начальное значениех
Бит15141312111098
НазначениеРезерв
Начальное значениех
Бит76543210
НазначениеDATA
Начальное значение0

При этом во время чтения должна отправляться команда с CE_RAM равным «0». Передача прочитанных данных осуществляется в соответствии со стандартом IEEE Std 1149.1-2001.

Примечание

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

JTAG_ROM_ACCESS

Инструкция «JTAG_ROM_ACCESS» представляет собой дополнительную пользовательскую инструкцию c кодом 100b, в результате выбора которой CPU 8051 будет отключен от системной шины, а в место него будет подключен тестовый пользовательский регистр данных разрядностью 24 бит:

Бит2322212019181716
НазначениеRWCE_ROMADDR
Начальное значение0
Бит15141312111098
НазначениеADDR
Начальное значение0
Бит76543210
НазначениеDATA
Начальное значение0

RW – операция чтения или записи;

  • 1 – прочитать данные;
  • 0 – записать данные.

CE_ROM – обращение в область памяти ROM:

  • 1 – обращение в ROM-память;
  • 0 – область ROM не задействуется.

ADDR – адрес обращения.

DATA – данные для записи. Младший бит данных находится в бите 0.

При чтении пользовательского тестового регистра данных, считанные с системной шины данные будут переданы со следующим за командой чтения пакетом данных в формате, представленном ниже:

Бит-24
Назначение-Резерв
Начальное значение-х
Бит2322212019181716
НазначениеРезерв
Начальное значение0
Бит15141312111098
НазначениеРезерв
Начальное значение0
Бит76543210
НазначениеDATA
Начальное значение0

При этом во время чтения должна отправляться команда с CE_ROM равным «0». Передача прочитанных данных осуществляется в соответствии со стандартом IEEE Std 1149.1-2001.

Примечание

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

IF_ACCESS

Инструкция «IF_ACCESS» («Интерфейс доступа») представляет собой дополнительную пользовательскую инструкцию c кодом 101b и пользовательским тестовым регистром данных разрядностью 19 бит.

Примечание

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

DEBUGGER

Инструкция «DEBUGGER» («Отладчик») представляет собой дополнительную пользовательскую инструкцию c кодом 110b и пользовательским тестовым регистром данных разрядностью 5 бит.

Примечание

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