Раздел 15
Порт доступа для тестирования (TEST ACCESS PORT - TAP)
Микроконтроллеры семейства MAXQ содержат порт доступа для тестирования (Test Access Port - TAP) и контроллер TAP для связи с хост прибором через четырехпроводный синхронный последовательный интерфейс. TAP может использоваться микроконтроллерами семейства MAXQ для выполнения внутрисистемного программирования и/или внутрисхемной отладки. TAP совместим с JTAG IEEE стандарта 1149 и образован четырьмя интерфейсными сигналами, описанными в приведенной ниже таблице. Для получения более детальной информации о TAP и TAP контроллере рекомендуется обратиться к IEEE STD 1149.1 "IEEE Standard Test Access Port and Boundary-Scan Architecture."
Сигнал на внешнем выводе |
Функция |
TDO (Test Data Output) |
Выход последовательных данных. Этот сигнал используется для последовательной передачи данных внешнему хосту. Данные передаются младшим значащим битом вперед. Данные выставляются по спадающему фронту сигнала TCK и только в течение Shift-IR или Shift-DR состояния TAP, а в остальных случаях они неактивны. |
TDI (Test Data Input) |
Вход последовательных данных. Этот сигнал используется для принятия последовательных данных от внешнего хоста. Данные поступают младшим значащим битом вперед и выбираются по нарастающему фронту сигнала TCK. Когда TAP = 1, то вывод TDI подтянут к линии питания при помощи встроенного слаботочного источника. |
TCK (Test Clock Input) |
Вход синхроимпульсов, формируемых внешним хостом. Когда этот сигнал остановлен в 0, то запоминающие данные элементы логики TAP должны сохранять свои данные. Когда TAP = 1, то вывод TCK подтянут к линии питания при помощи встроенного слаботочного источника. |
TMS (Test Mode Select Input) |
Вход выбора режима. Этот сигнал выбирается по нарастающему фронту сигнала TCK и управляет движением между состояниями TAP. Когда TAP = 1, то вывод TMS подтянут к линии питания при помощи встроенного слаботочного источника. |
Контроллер TAP
Контроллер TAP - синхронный конечный автомат, который реагирует на изменения сигналов TCK и TMS. Основанный на изменении состояния, контроллер формирует необходимые для работы ТАР последовательности синхронизации и управления. Параметры TAP зависят от частоты синхроимпульсов TCK. Частота синхроимпульсов TCK не должна частота превышать 1/8 частоты системных синхроимпульсов. В данном разделе приведено краткое описание конечного автомата и его изменений состояния. Диаграмма состояний в рисунке 50 суммирует переключения, вызванные сигналом TMS, выборка сигнала осуществляется по нарастающему фронту сигнала TCK. НА рисунке значение сигнала TMS представлено смежным с каждым изменением состояния.
Рисунок 50. Диаграмма состояний контроллера TAP
Управление состоянием TAP
TAP обеспечивает независимый последовательный канал для синхронного обмена данными с хост системой. Управление состоянием TAP осуществляется путем манипуляции хостом сигналами TMS и TCK. Сигнал TMS выбирается по нарастающему фронту сигнала TCK и декодирован контроллером TAP, обеспечивая переход между состояниями TAP. Вход TDI и выход TDO обслуживаются только когда TAP находится в состоянии последовательного сдвига (то есть, Shift-IR или Shift-DR).
Состояние Test-Logic-Reset
При сбросе при включении питания контроллер TAP инициализируется в состояние Test-Logic-Reset, а в регистр команд (IR2:0) записывается команда By-Pass, что позволяет не затрагивать нормальный режим работы системы. Не зависимо от состояния, контроллер переходит в состояние Test-Logic-Reset, если на выводе TMS удерживается высокий логический сигнал в течении не менее пяти нарастающих фронтов сигнала TCK. Контроллер остается в состоянии Test-Logic-Reset, если сигнал на выводе TMS остается высоким. Ошибочный низкий сигнал на выводе TMS может заставить контроллер перейти в состояние Run-Test-Idle, но никакая помеха не повлияет на режим работы системы, если сигнал TMS возвращен в исходное состояние и остается в высоком состоянии три нарастающих фронта сигнала TCK, так как это приведет к переходу контроллера в состояние Test-Logic-Reset.
Состояние Run-Test-Idle
Как показано на рисунке 50, состояние Run-Test-Idle - это просто промежуточное состояние для того, чтобы попасть в одну из двух последовательностей состояний, в которых контроллер выполняет значимые действия:
- последовательность состояния контроллера (IR-Scan), или
- последовательность состояния регистра данных (DR-Scan)
Последовательность IR-Scan
Последовательность состояния контроллера позволяет командам (например, 'Debug' и 'System Programming') быть смещенными в регистр команд, начинающийся с состояния Select-IR-Scan. В TAP регистр команд включен между входом TDI и выходом TDO. В последовательности IR-Scan состояние Capture_IR загружает фиксированное двоичное число (001b) в 3- битный регистр сдвига, а состояние Shift-IR сдвигает данные TDI в регистр сдвига и последовательно выводит на TDO, начиная с младшего значащего бита. Как только необходимая команда находится в регистре сдвига, команду можно защелкнуть в параллельный регистр команд (IR2:0) по спадающему фронту сигнала TCK, находясь в состоянии Update-IR. Содержимое последовательного 3- битного сдвигового регистра команд и 3- битного параллельного регистра команд (IR2:0), полученные в результате состояний контроллера TAP приведены в таблице 21.
Таблица 21. Содержимое регистра команд в зависимости от состояния контроллера TAP
Состояние контроллера TAP |
Регистр сдвига команды |
Параллельный (3- битный) регистр команд (IR2:0) |
Test-Logic-Reset |
Не определено |
Команда Set to By-pass (011b) |
Capture-IR |
Загрузка 001b по нарастающему фронту TCK |
Сохраняется последнее состояние |
Shift-IR |
Входные данные через TDI и регистр сдвига поступают на выход TDO по нарастающему фронту сигнала TCK |
Сохраняется последнее состояние |
Exit1-IR, Exit2-IR, Pause-IR |
Сохраняется последнее состояние |
Сохраняется последнее состояние |
Update-IR |
Сохраняется последнее состояние |
Загрузка из регистра сдвига по спадающему фронту сигнала TCK |
Все остальные состояния |
Не определено |
Сохраняется последнее состояние |
Когда параллельный регистр команд (IR2:0) обновляется, то контроллер TAP декодирует команду и выполняет любые необходимые действия, включая активизацию регистра сдвига данных, который используется для специфической команды в течение последовательностей сдвига регистра данных (DR-Scan). Разрядность активизированного регистра сдвига зависит от значения, загруженного в регистр команд (IR2:0). Поддерживаемые коды регистра команд и связанные с ними выборки регистра данных приведены в таблице 22.
Таблица 22. Коды регистра команд (IR2:0)
IR2:0 |
Команда |
Функция |
Выборка последовательного регистра сдвига данных |
000 |
Extest |
Нет операции |
Не изменяется (сохраняется предыдущая выборка) |
001 |
Sample/Preload |
Нет операции |
Не изменяется (сохраняется предыдущая выборка) |
010 |
Debug |
Режим внутрисхемной отладки |
10- битный регистр сдвига |
011 |
By-pass |
Нет операции (по умолчанию) |
1- битный регистр сдвига |
100 |
System Programming |
Осуществление начальной загрузки |
3- битный регистр сдвига |
101 |
By-pass |
Нет операции (по умолчанию) |
1- битный регистр сдвига |
110 |
Зарезервировано |
111 |
By-pass |
Нет операции (по умолчанию) |
1- битный регистр сдвига |
Команды Exteset (IR2:0 = 000b) и Sample/Preload (IR2:0 = 001b) команды передаются в соответствии со стандартом JTAG, однако, микроконтроллеры семейства MAXQ не предназначены для практического использования этих команд. Следовательно, по этим командам не выполняется никаких действий, но они могут быть введены в регистр команд без затрагивания встроенной системной логики или состояния выводов и без изменения выбранного регистра сдвига данных между TDI и TDO.
Команда By-pass (IR2:0 = 011b, 101b, или 111b) также передается в соответствии со стандартом JTAG. Команда By-pass полностью реализована в микроконтроллерах семейства MAXQ, позволяя обеспечить для последовательно поступающих данных минимальный тракт между выводами TDI и TDO. Это достигнуто за счет единственной ячейки обхода регистра сдвига данных. Когда регистр команд обновляется командой By-pass, то в состоянии Shift-DR между выводами TDI и TDO подключается одноэлементный регистр. Регистр команд автоматически заполняется значением по умолчанию при выполнении команды By-pass, когда TAP находится в состоянии Test-Logic-Reset. Команда By-pass не оказывает никакого влияния на работу встроенной системной логики.
Команды Debug (IR2:0 = 010b) и System Programming (IR2:0 = 100b) - специальные команды, которые предназначены исключительно для внутрисхемной отладки и внутрисистемного программирования, соответственно. Если регистр команд обновляется с командой Debug, то в состоянии Shift-DR между выводами TDI и TDO включается 10- битный регистр. Если в регистр команд (IR2:0) введена команда System Programming, то в состоянии Shift-DR между выводами TDI и TDO подключается 3- битный регистр сдвига данных.
Остальные команды регистра команд (IR2:0), за исключением описанных выше, зарезервированы для внутреннего использования. Как видно из рисунка 51, регистр команд используется для выбора разрядности регистра последовательных данных, включенного между выводами TDI и TDO в состоянии Shift-DR.
Рисунок 51. TAP и контроллер TAP
Последовательность DR-Scan
Сразу после настройки регистра команд в необходимое значение начинает выполняться транзакция через буферный регистр данных, связанный с этим режимом. Эти транзакции данных выполняются последовательно способом, аналогичным процессу, используемому для загрузки регистра команд, и группируются в последовательности состояния контроллера TAP, начинающиеся с состояния Select-DR-Scan. В последовательности состояния контроллера TAP состояние Shift-DR позволяет внутренним данным быть смещенным через вывод TDO, а внешним данным быть одновременно смещенным через вывод TDI. Сразу после окончания смещения данные могут быть защелкнуты в параллельный буферный регистр выбранного регистра по спадающему фронту сигнала TCK в состоянии Update-DR. По этому же спадающему фронту TCK в состоянии Update-DR внутренний параллельный буферный регистр загружается в регистр сдвига данных для передачи их внешнему хосту. Этот процесс Shift-DR/Update-DR предназначен для обмена данными между внешним ведущим хостом и микроконтроллером семейства MAXQ. Эти транзакции регистра данных происходят в разделе регистра данных последовательности состояний контроллера ТАР и не оказывают никакого влияния на регистр команд.
Связь через TAP
После сброса при включении питания контроллер TAP находится в состоянии Test-Logic-Reset. В этом начальном состоянии регистр команд содержит команду By-pass, а последовательный тракт между выводами TDI и TDO для состояния Shift-DR состоит из 1- битного обходного регистра. При любом сбросе весь сигнальные выводы TAP (TCK, TMS, TDI и TDO) по умолчанию подтянуты к линии питания при помощи слаботочных встроенных источников. Контроллер TAP остается в состоянии Test-Logic-Reset до тех пор, пока на выводе TMS присутствует высокий логический уровень. Сигналы TCK и TMS могут формироваться хостом и приводить к переходу TAP к другим состояниям. Контроллер TAP остается в данном состоянии всякий раз, когда на TCK удерживается низкий уровень.
Для того чтобы хосту установить определенную линию связи, необходимо загрузить специальную команду в регистр команд IR2:0. Как только в состоянии Update-IR команда защелкивается в параллельный буферный регистр, то она распознается контроллером TAP и канал связи устанавливается. Команды In-Circuit Debug или In-System Programming и данные могут быть загружены хостом в микроконтроллер семейства MAXQ при нахождении в части регистра данных состояния последовательности (то есть, DR-Scan). TAP сохраняет специальную команду, которая была загружена в IR2:0, до тех пор, пока новая команда не будет помещена в регистр или до сброса контроллера TAP в состояние Test-Logic-Reset.
Пример обмена данными по ТАР - IR-Scan и DR-Scan
На рисунках 52 и 53 приведены примеры связи между ведущим JTAG контроллером и портом доступа для тестирования (TAP) микроконтроллера семейства MAXQ. Хост формирует сигналы TCK и TMS, осуществляя управление переходом между необходимыми состояниями TAP, получая доступ к регистру сдвига через выводы TDI и TDO.
Рисунок 52. Пример режима отладки IR-Scan ТАР контроллера
Рисунок 53. Пример режима отладки DR-Scan ТАР контроллера
|