Интерфейс JTAG? — Это очень просто / Хабр
Многие знакомы со словом «JTAG», но знакомство это скорее всего поверхностное. В этой статье я хочу перевести Вас на новый уровень, так сказать «во френдзону». Возможно, для многих я не открою ничего нового, но надеюсь тем, кто давно хотел ознакомиться, будет интересно почитать. Итак, от винта.
Введение
В 1985 сформировалась группа производителей электроники — JTAG (Joint Test Action Group). Для решения проблем тестирования в 1990 был выдвинут промышленный стандарт — спецификация IEEE Std 1149.1-1990 (IEEE Standard Test Access Port and Boundary-Scan Architecture). В этом же году Intel вывел в свет первый процессор с JTAG — 80486. С тех пор стандарт постоянно модифицируется и, в данный момент, последняя версия датируется 2013 годом.
«А какие же это проблемы с тестированием?»,- спросите Вы. Ну как же! Мало удовольствия прыгать с осциллографом по выводам микросхемы, особенно если их много больше двух! Стандарт позволяет значительно упростить жизнь за счет встраивания специальной архитектуры в современные чипы, обеспечивающей доступ к выводам (точнее, к специальным блокам ввода-вывода) с помощью 4-х проводного последовательного интерфейса. Эта архитектура позволяет не только контролировать их состояние, но и управлять ими. Таким образом можно обойтись без громоздких пробников с физическим контактом и насладиться всей прелестью этапа отладки цифровых микросхем или устройств уровня печатной платы.
Стандарт используют как для целей внутрисхемного программирования и отладки программ, так и при работе с корпусированными микросхемами. Он же используется для проверки на качество припайки микросхем к плате, межплатного и внутристоечного монтажа плат и блоков. Также надо сказать ему спасибо за восстановление закирпиченных по неосторожности мобильных устройств.
И как же работает?
Механизм граничного сканирования заключен, всего лишь, в сдвиговом регистре (Boundary Scan), подключенном между выводами микросхемы и ядром, и мультиплексоре который подключает в нужный момент этот регистр. Каждому конкретному выводу соответствуют так называемые «ячейки».
В состав ячейки входит один триггер регистра граничного сканирования и мультиплексора выбора данных. Ячейки могут быть разных типов в зависимости от вывода микросхемы и команд интерфейса, т.е. зависит от производителя той или иной микросхемы. Производители не придерживаются строго стандарта и, поэтому, развелось множество модификаций.
На рисунке представлена одна из разновидностей ячейки. PI, PO — параллельные вход и выход, SI,SO — последовательные.
Сигналы на регистр микросхемы попадают через мультиплексор, который позволяет считывать как состояния выводов ядра микросхемы (инструкция INTEST), так и данные, поступающие извне на сдвиговый регистр (инструкция EXTEST). Разновидности инструкций и их функциональность опять же меняются от желаний производителя, но существуют так называемые обязательные:
- EXTEST — инструкция, позволяющая за счет установки логических значений на рабочих контактах электронных компонентов проверить внешние цепи, имеющие непосредственное отношение к тестируемому компоненту.
- INTEST — инструкция обеспечивает возможность установки логических значений внутри микросхемы, то есть на входах ядра, тем самым проверяя его.
- SAMPLE_PRELOAD — позволяет тестировать ядро электронного элемента в статическом режиме, устанавливая значения логических уровней на границе его выходных буферов.
- BYPASS — инструкция, при которой наш регистр граничного сканирования «схлопывается» в один триггер. При этом данные со входа (TDI) на выход (TDO) передаются с задержкой в один такт частоты синхронизации интерфейса (TCK). Этот режим позволяет эффективно использовать возможности последовательного интерфейса при организации длинных последовательно объединенных цепочек.
- IDCODE — инструкция выдвигает на выход значение встроенного 32-битного регистра с идентификаторами производителя, модели и версии устройства.
Сигнальные линии интерфейса
Как уже говорилось выше, интерфейс JTAG имеет следующие сигнальные линии:
- TDI — Test Data Input — сигнал данных на вход, данные задвигаются по переднему фронту TCK.
- TDO — Test Data Output — выход последовательных данных JTAG, выдвигаются по заднему фронту TCK, должен находиться в третьем состоянии — Z — когда данные не передаются.
- TMS — Test Mode Select — сигнал управления TAP — контроллером.
- TRST — Test Reset — не всегда есть, так как ресета можно добиться удерживая некоторое время TMS = 1, активный уровень сигнала — 0.
- TCK — Test Clock — тактовая частота.
JTAG — синхронный интерфейс, сигналы принимаются по переднему фронту синхроимпульсов младшими битами вперед и только в течении состояний TAP — контроллера Shift-DR \ Shift-IR. Выходные данные выдвигаются по заднему фронту.
TAP — контроллер
Мы добрались до самой сути JTAG, а именно — управляющий работой автомат. С его помощью собственно и живет всё вокруг. Автомат имеет 16 состояний. Управление интерфейсом осуществляется путем воздействия на автомат посредством сигнала TMS. Переходы происходят по переднему фронту сигнала TCK. Чтение и запись данных происходят одновременно. Ниже привожу иллюстрацию работы, взятую из документации микросхем фирмы Altera.
Диаграмма переходов автомата, управляющего режимами TAP
Состояния диаграммы переходов:
- Test-Logic-Reset – исходное состояние;
- Run-Test/Idle – переходное состояние контроллера при выполнении тестов или ожидании следующей
- команды;
- Select-IR, Select-DR – состояние, после которого будет производиться тестирование команд, данных;
- Capture-IR, Capture-DR – состояние приёма команд, данных;
- Shift-IR, Shift-DR – состояние сдвига команд, данных;
- Exit1-IR, Exit2-IR – выход из режима работы с командами;
- Exit1-DR, Exit2-DR – выход из режима работы с данными;
- Pause-IR, Pause-DR – состояние паузы;
- Update-IR, Update-DR – состояние перезаписи данных в выходные регистры.
DR — действия происходят над данными, IR — соответственно над инструкциями.
Исходное состояние, в котором находится автомат после включения, это Test-Logic Reset. Пока сигнал TMS имеет значение «лог.1», состояние автомата остается неизменным. В этом состоянии, по умолчанию, выбрана инструкция IDCODE или BYPASS.
Сигнал сброса TRST не является обязательным, поэтому для сброса автомата в исходное состояние применяют следующую процедуру. Необходимо подать на вход TMS сигнал высокого уровня и удерживать его не менее 5 тактов частоты TCK. Если сигнал TMS будет установлен хостом в низкий уровень, то автомат перейдёт к состоянию Run-Test/Idle (активное состояни, в котором ничего не происходит). Обычно из этого состояния можно перейти в состояние Select-IR, для того чтобы загрузить в контроллер новую инструкцию. Но если на вход сигнала TMS подействует не сигнал, подаваемый от хоста, а помеха низкого уровня, то, как и в предыдущем случае, автомат перейдёт в состояние Run-Test/Idle. Если же кратковременная помеха (длительностью не более одного периода синхрочастоты) прекратится, то автомат через три такта снова вернётся в исходное состояние – Test-Logic Reset.
Диаграмма сигналов при выполнении переходов для загрузки команды
Если используя специализированный САПР написать код работы JTAG на Verilog, то результирующая диаграмма будет выглядеть примерно так:
Сылка на дропбокс, картинка в полный размер
Наконец можно показать полную структурную схему устройства JTAG и Вы вполне должны в ней разобраться:
… И в заключение…
Использование JTAG и технологии граничного сканирования в микросхеме, на плате или в устройстве добавляет стоимость и увеличивает время разработки проекта. Но, всё же эти затраты легко окупаются при проведении тестирования, которое обеспечивается на каждой стадии цикла жизни изделия. То, что было первоначально разработано как производственный испытательный инструмент, используется до начала производства, во время серийного производства и после производства, то есть на этапе эксплуатации конечным пользователем. Кроме непосредственно граничного тестирования, проектировщики используют технологию JTAG для того, чтобы производить самотестирование (BIST) (в тех компонентах, где оно реализовано) и загружать внутренние значения в регистры устройства или программировать микросхемы ПЗУ. Тесты, которые были разработаны и использованы на этапе проектирования, могут быть переданы производству, для того чтобы обеспечить дополнительное снижение стоимости и времени на проверку изделий при выходном контроле.Основные положительные эффекты от применения технологии JTAG в производственной фазе – экономия времени при разработке испытательных тестов, улучшенный «охват» тестируемого изделия при поиске ошибки и диагностировании и улучшенная производительность испытаний при одновременном уменьшении времени испытания.
Применение граничного сканирования при эксплуатации изделия также даёт определённый положительный эффект. Отказы при эксплуатации часто происходят из-за структурных отказов, которые вызываются повышенной температурой, влажностью, вибрацией. Используя граничное сканирование, техники имеют возможность быстро проверить изделие на структурные ошибки вплоть до уровня компонентов без трудоёмкого исследования или возвращения платы изготовителю на завод.
Литература:
Wiki
Boundary-scan in Altera devices
офф. страница рабочей группы стандарта IEEE 1149.1
1149.1-2013 — IEEE Standard for Test Access Port and Boundary-Scan Architecture
Хорошая хабро-статья, в которой затронуто JTAG тестирование
выпуск EEVblog про JTAG от Killy
В статье использовались некоторые данные из журнала «Современная электроника» выпуск №2 2007.
Техническое руководство по JTAG — Учебник XJTAG
В данной статье содержится интересная базовая информация о технических основах XJTAG. Данная информация не является обязательной для освоения при использовании системы XJTAG, так как тесты в системе XJTAG представлены в виде скриптов на высокоуровневом языке, который не требует детальных знаний о принципах работы JTAG.
Введение
Постоянное повышение плотности элементов на кристаллах микросхем всё чаще приводит к необходимости использовать корпуса формата BGA, что снижает эффективность традиционных методов тестирования.
Для преодоления таких проблем, некоторые мировые лидеры в производстве кремниевых микросхем объединили усилия и сформировали Joint Test Action Group. Наработки и рекомендации данной группы были взяты за основу для стандарта Institute of Electrical and Electronic Engineers (IEEE) 1149.1 — Standard Test Access Port and Boundary Scan Architecture (стандартный порт для тестирования и архитектура пограничного сканирования). Стандарт сохранил связь с Joint Test Action Group и, в связи с этим, стандарт известен под названием JTAG.
Пограничное Сканирование (оно же Boundary Scan, оно же «Граничное Сканирование», оно же «Периферийное Сканирование»)
Самой основной функцией Пограничного Сканирования является возможность устанавливать и считывать значения на контактах микросхемы, не имея при этом физического доступа к этим контактам.
Иллюстрация 1 — Блок-схема модуля JTAG в микросхеме
Принцип работы Пограничного Сканирования можно понять из схемы на Иллюстрации 1.
Все цепи, идущие от логического ядра микросхемы к её контактам, проходят через так называемые «сканируемые» ячейки (по сути это разряды сдвигового регистра), которые в совокупности имеют специальное название: Boundary Scan Register — Регистр Пограничного Сканирования. В «стандартном» режиме работы микросхемы эти ячейки никак себя не проявляют. Однако, при переключении микросхемы в режим тестирования (test mode), эти ячейки могут быть использованы для установки и/или считывания значений на контактах микросхемы (или на цепях внутреннего логического ядра). Не все ячейки Пограничного Сканирования одинаковые — в стандарте 1149.1 описано 10 типов ячеек, но разработчики микросхем могут размещать ещё и «нестандартные» типы ячеек в зависимости от конкретного предназначения ячеек.
Интерфейсные сигналы
JTAG-интерфейс, совокупность сигналов которого обобщённо называется Test Access Port — TAP (в разговорной речи как правило используется название без перевода — ТАП), состоит из следующих сигналов, необходимых для работы Пограничного Сканирования:
- TCK (Test Clock) — сигнал синхронизации внутренних конечных автоматов;
- TMS (Test Mode Select) — сигнал, синхронизированный передним фронтом TCK, переключает состояние микросхемы в следующее доступное;
- TDI (Test Data In) — по данному сигналу подаются данные, вдвигаемые в микросхему с целью тестирования или программирования. Данный сигнал синхронизируется передним фронтом сигнала TCK. Для использования сигнала необходимо переключить микросхему в правильное состояние;
- TDO (Test Data Out) — на данный сигнал приходят данные, выдвигаемые из микросхемы с целью тестирования или программирования. Данный сигнал синхронизируется задним фронтом сигнала TCK. Для использования сигнала необходимо переключить микросхему в правильное состояние;
- TRST (Test Reset) — необязательный сигнал, предназначенный для сброса конечного автомата TAP-контроллера в исходное состояние.
Регистры
Существует два типа регистров для Пограничного Сканирования. Каждая JTAG-совместимая микросхема обязательно имеет один регистр команд (instruction register) и два или более регистра данных (data registers).
Регистр команд (Instruction Register) — хранит текущую исполняемую команду. Значение данного регистра используется TAP-контроллером для принятия решения о том, что делать с входящими сигналами. Наиболее часто используемая команда указывает на то, в какой регистр данных должны поступать входящие данные.
Регистры данных (Data Registers) — существует три основных типа регистров данных: регистр BSR (Boundary Scan Register), регистр BYPASS и регистр IDCODES. Прочие регистры могут присутствовать, но стандарт JTAG не требует их наличия.
- BSR — основной регистр для тестирования. Он используется для передачи данных к контактам и от контактов микросхемы.
- BYPASS — однобитный регистр, который передаёт данные от TDI к TDO. Это позволяет с минимальными задержками тестировать и другие микросхемы, подключенные последовательно.
- IDCODES — хранит идентификатор (ID-код) и номер ревизии (revision number) микросхемы. Данная информация позволяет сопоставить для данного компонента определённый BSDL-файл (Boundary Scan Description Language). Этот файл содержит детальную информацию о конкретной конфигурации Пограничного Сканирования данной микросхемы.
Контроллер Test Access Port (TAP)
TAP-контроллер представляет из себя конечный автомат, управляемый сигналом TMS, который управляет поведением системы JTAG. На Иллюстрации 2 представлен конечный автомат TAP-контроллера.
Иллюстрация 2 — Конечный автомат контроллера TAP
У всех состояний есть два выхода, а переходы организованы так, что в любое состояние можно прийти управляя автоматом одним единственным сигналом TMS (синхронизируемым по TCK). Имеются две ярко выраженные последовательности состояний: одна для чтения или записи в регистр данных — DR (Data Register) и одна для работы с регистром команд — IR (Instruction Register). Операции с регистром данных (Data Registers, BSR, IDCODES, BYPASS) выполняются в зависимости от команды в регистре команд (Instruction Register).
Более подробное описание по каждому состоянию можно найти в документации на стандарт IEEE 1149.1.
Команды Пограничного Сканирования
В стандарте IEEE 1149.1 объявлен набор команд, которые обязательно должна уметь обрабатывать микросхема, чтобы она могла называться поддерживающей JTAG. Эти команды приведены далее.
- BYPASS — данная команда приводит к замыканию TDI и TDO на однобитный регистр BYPASS, что позволяет без лишних задержек передавать данные дальше по цепи последовательно подключенных микросхем с поддержкой JTAG.
- EXTEST — данная команда приводит к замыканию TDI и TDO на регистр BSR (Boundary Scan Register). При этом текущие логические значения на контактах микросхемы запоминаются на состоянии «capture dr», а новые значения побитно вдвигаются в регистр BSR на состоянии «shift dr»; вдвинутые новые значения появятся на контактах микросхемы на состоянии «update dr».
- SAMPLE/PRELOAD — данная команда приводит к замыканию TDI и TDO на регистр BSR (Boundary Scan Register). Однако, микросхема при этом остаётся в состоянии штатного функционирования. В процессе выполнения данной команды регистр BSR может быть использован для захвата данных, которыми микросхема обменивается в процессе штатной работы. Данная команда также используется для предварительной загрузки данных для тестирования в регистр BSR перед выполнением команды EXTEST.
Другие часто поддерживаемые микросхемами команды:
- IDCODE — данная команда приводит к замыканию TDI и TDO на регистр IDCODE.
- INTEST — данная команда приводит к замыканию TDI и TDO на регистр BSR (Boundary Scan Register). В отличие от команды EXTEST, которая оперирует внешними контактами микросхемы, команда INTEST оперирует внутренними сигналами микросхемы.
Получение стандарта IEEE 1149.1
Документация по стандарту IEEE 1149.1 доступна непосредственно на сайте IEEE:
http://standards.ieee.org
Ещё статьи
Руководство по улучшению тестопригодности (DFT)
Рекомендации по улучшению покрытия платы тестами (Английский)
Концепция применения JTAG
Посмотрите, на что способен JTAG (Английский)
Что такое JTAG?
и как это применить для тестирования печатных плат?
JTAG-тестирование при помощи XJTAG
Как XJTAG расширяет возможности JTAG (Английский)
Формат файла BSDL — Boundary-Scan Description Language
Ссылки на сайты производителей микросхем (Английский)
Testing non-JTAG devices
Формат файла SVF — Serial Vector Format
Часть 1. Подключение эмулятора » Программаторы Jetlink
ОписаниеВсе эмуляторы (программаторы, отладчики) серии Jetlink имеют стандартный, 20-контактный разъем IDC с шагом выводов 2.54 мм. На данный разъем выведены все необходимые сигналы для подключения отлаживаемого (программируемого) микроконтроллера или целевой платы, содержащей микроконтроллер (микроконтроллеры, плис и т.п.)
Есть два основных интерфейса подключения:
1. JTAG — обычно старые микроконтроллеры с ядром ARM7, ARM9, ARM11
2. SWD — практически все новые микроконтроллеры с ядром Cortex-M0/M1/M4/M7 и т.д.
Некоторые микроконтроллеры имеют оба интерфейса и выбор способа подключения остается за разработчиком. Интерфейс JTAG требует как минимум 7 проводников (TDI, TMS, TCK, TDO, RESET, GND, VCC), в то время как SWD достаточно 4 проводников (SWDIO, SWCLK, GND, VCC). Сигнал SWO используется при трассировке и не является обязательным. Чтобы запрограммировать и отлаживать программу, достаточно вышеперечисленных сигналов.
Описание контактов разъема в режиме JTAG:
1. VTREF — это вход напряжения питания от вашей платы с микроконтроллером. Внутри эмулятора это напряжение используется для питания выходных буферов эмулятора. Диапазон напряжений — 1.2 — 5.5В. Является обязательным к подключению!
2. Не используется. В некоторых моделях эмуляторов на нем может присутствовать напряжение 3.3В. Если ваше отлаживаемое устройство имеет напряжение питания 3.3В и небольшой потребляемый ток (до 100мА) вы можете использовать данное напряжения для питания своего устройства, чтобы избавиться от блока питания.
3. nTRST — сигнал сброса TAP контроллера (JTAG контроллера)
4,6,8,10,12,14,16,18, 20 — Земля
5. TDI — сигнал данных от эмулятора к микроконтроллеру
7. TMS — сигнал выбора режима (данные/инструкции)
9. TCK — сигнал тактирования
11. RTCK — обратный сигнал тактирования. Не во всех микроконтроллерах он присутствует. Используется для измерения задержки сигнала тактирования. Используется при алаптивном тактировании.
13. TDO — выход данных с микроконтроллера.
15. RESET — сигнал сброса микроконтроллера
17. DBGRQ — зарезервированный сигнал, не требует подключения
19. 5V-OUT — на данный контакт эмулятор может выдать напряжение 5В (точнее — напряжение USB порта к которому он подключен). Может быть использован для питания подключаемого устройства (При условии, что его питание 5В).
Описание контактов разъема в режиме SWD:
1. VTREF — это вход напряжения питания от вашей платы с микроконтроллером. Внутри эмулятора это напряжение используется для питания выходных буферов эмулятора. Диапазон напряжений — 1.2 — 5.5В. Является обязательным к подключению!
2. Не используется. В некоторых моделях эмуляторов на нем может присутствовать напряжение 3.3В. Если ваше отлаживаемое устройство имеет напряжение питания 3.3В и небольшой потребляемый ток (до 100мА) вы можете использовать данное напряжения для питания своего устройства, чтобы избавиться от блока питания.
3. Не используется
4,6,8,10,12,14,16,18, 20 — Земля
5. Не используется
6. SWDIO — двунаправленный, вход/выход данных
9. SWCLK — сигнал тактирования
11. Не используется
13. SWO — выход данных для трассировки. Не обязателен
15. RESET — сигнал сброса микроконтроллера
17. Не используется
19. 5V-OUT — на данный контакт эмулятор может выдать напряжение 5В (точнее — напряжение USB порта к которому он подключен). Может быть использован для питания подключаемого устройства (При условии, что его питание 5В).
Описание контактов разъема в режиме SPI:
Данный режим предназначен для программирования микросхем памяти SPI Flash
1. VTREF — это вход напряжения питания от вашей платы с микроконтроллером. Внутри эмулятора это напряжение используется для питания выходных буферов эмулятора. Диапазон напряжений — 1.2 — 5.5В. Является обязательным к подключению!
4,6,8,10,12,14,16,18, 20 — Земля
5. DI — выход данных из эмулятора (Обычно подключается к сигналу MOSI микросхемы памяти)
7. СS — сигнал выборки (Обычно подключается к сигналу CS(nCS) микросхемы памяти)
9. CLK — сигнал тактирования (Обычно подключается к сигналу SCK (CLK) микросхемы памяти)
13. DO — вход данных (Обычно подключается к сигналу MISO микросхемы памяти)
19. 5V-OUT — на данный контакт эмулятор может выдать напряжение 5В (точнее — напряжение USB порта к которому он подключен). Может быть использован для питания подключаемого устройства (При условии, что его питание 5В).
JTAG — это… Что такое JTAG?
JTAG (сокращение от англ. Joint Test Action Group; произносится «джей-тáг») — название рабочей группы по разработке стандарта IEEE 1149. Позднее это сокращение стало прочно ассоциироваться с разработанным этой группой специализированным аппаратным интерфейсом на базе стандарта IEEE 1149.1. Официальное название стандарта Standard Test Access Port and Boundary-Scan Architecture. Интерфейс предназначен для подключения сложных цифровых микросхем или устройств уровня печатной платы к стандартной аппаратуре тестирования и отладки.
На текущий момент интерфейс стал промышленным стандартом. Практически все сколько нибудь сложные цифровые микросхемы оснащаются этим интерфейсом для:
- выходного контроля микросхем при производстве
- тестирования собранных печатных плат
- прошивки микросхем с памятью
- отладочных работ при проектировании аппаратуры и программного обеспечения
Метод тестирования, реализованный в стандарте, получил название Boundary Scan (граничное сканирование). Название отражает первоначальную идею процесса: в микросхеме выделяются функциональные блоки, входы которых можно отсоединить от остальной схемы, подать заданные комбинации сигналов и оценить состояние выходов каждого блока. Весь процесс производится специальными командами по интерфейсу JTAG, при этом никакого физического вмешательства не требуется. Разработан стандартный язык управления данным процессом — Boundary Scan Description Language (BSDL).
Стандарт предусматривает возможность подключения большого количества устройств (микросхем) через один физический порт (разъем).
Порт тестирования (TAP — Test Access Port) представляет собой четыре или пять выделенных выводов микросхемы: ТСК, TMS, TDI, TDO и (опционально) TRST.
Функциональное назначение этих линий:
- TDI (test data input — «вход тестовых данных») — вход последовательных данных периферийного сканирования. Команды и данные вводятся в микросхему с этого вывода по переднему фронту сигнала TCK;
- TDO (test data output — «выход тестовых данных») — выход последовательных данных. Команды и данные выводятся из микросхемы с этого вывода по заднему фронту сигнала TCK;
- TCK (test clock — «тестовое тактирование») — тактирует работу встроенного автомата управления периферийным сканированием. Максимальная частота сканирования периферийных ячеек зависит от используемой аппаратной части и на данный момент ограничена 25…40 МГц[источник не указан 801 день];
- TMS (test mode select — «выбор режима тестирования») — обеспечивает переход схемы в/из режима тестирования и переключение между разными режимами тестирования.
- В некоторых случаях к перечисленным сигналам добавляется сигнал TRST для инициализации порта тестирования, что необязательно, так как инициализация возможна путем подачи определённой последовательности сигналов на вход TMS.
Работа средств обеспечения интерфейса JTAG подчиняется сигналам автомата управления, встроенного в микросхему. Состояния автомата определяются сигналами TDI и TMS порта тестирования. Определённое сочетание сигналов TMS и TCK обеспечивает ввод команды для автомата и её исполнение.
Если на плате установлено несколько устройств, поддерживающих JTAG, они могут быть объединены в общую цепочку. Уникальной особенностью JTAG является возможность программирования не только самого микроконтроллера (или ПЛИС), но и подключённой к его выводам микросхемы флэш-памяти. Причём существует два способа программирования флэш-памяти с использованием JTAG: через загрузчик с последующим обменом данными через память процессора, либо через прямое управление выводами микросхемы.
Ссылки
JTAG
JTAG — название рабочей группы по разработке стандарта IEEE 1149. Позднее это сокращение стало прочно ассоциироваться с разработанным этой группой специализированным аппаратным интерфейсом на базе стандарта IEEE 1149.1. Официальное название стандарта Standard Test Access Port and Boundary-Scan Architecture. Интерфейс предназначен для подключения сложных цифровых микросхем или устройств уровня печатной платы к стандартной аппаратуре тестирования и отладки.
На текущий момент интерфейс стал промышленным стандартом. Практически все сколько-нибудь сложные цифровые микросхемы оснащаются этим интерфейсом для:
отладочных работ при проектировании аппаратуры и программного обеспечения
прошивки микросхем с памятью
тестирования собранных печатных плат
выходного контроля микросхем при производстве
Метод тестирования, реализованный в стандарте, получил название Boundary Scan граничное сканирование. Название отражает первоначальную идею процесса: в микросхеме выделяются функциональные блоки, входы которых можно отсоединить от остальной схемы, подать заданные комбинации сигналов и оценить состояние выходов каждого блока. Весь процесс производится специальными командами по интерфейсу JTAG, при этом никакого физического вмешательства не требуется. Разработан стандартный язык управления данным процессом — Boundary Scan Description Language BSDL.
Стандарт предусматривает возможность подключения большого количества устройств микросхем через один физический порт разъем.
Порт тестирования TAP — Test Access Port представляет собой четыре или пять выделенных выводов микросхемы: ТСК, TMS, TDI, TDO и опционально TRST.
Функциональное назначение этих линий:
В некоторых случаях к перечисленным сигналам добавляется сигнал TRST для инициализации порта тестирования, что необязательно, так как инициализация возможна путём подачи определённой последовательности сигналов на вход TMS.
TDO test data output — «выход тестовых данных» — выход последовательных данных. Команды и данные выводятся из микросхемы с этого вывода по заднему фронту сигнала TCK;
TDI test data input — «вход тестовых данных» — вход последовательных данных периферийного сканирования. Команды и данные вводятся в микросхему с этого вывода по переднему фронту сигнала TCK;
TCK test clock — «тестовое тактирование» — тактирует работу встроенного автомата управления периферийным сканированием. Максимальная частота сканирования периферийных ячеек зависит от используемой аппаратной части и на данный момент ограничена 25…40 МГц ;
TMS test mode select — «выбор режима тестирования» — обеспечивает переход схемы в/из режима тестирования и переключение между разными режимами тестирования.
Работа средств обеспечения интерфейса JTAG подчиняется сигналам автомата управления, встроенного в микросхему. Состояния автомата определяются сигналами TDI и TMS порта тестирования. Определённое сочетание сигналов TMS и TCK обеспечивает ввод команды для автомата и её исполнение.
Если на плате установлено несколько устройств, поддерживающих JTAG, они могут быть объединены в общую цепочку. Уникальной особенностью JTAG является возможность программирования не только самого микроконтроллера или ПЛИС, но и подключённой к его выводам микросхемы флэш-памяти. Причём существует два способа программирования флэш-памяти с использованием JTAG: через загрузчик с последующим обменом данными через память процессора, либо через прямое управление выводами микросхемы.
кластеров. Программирование или конфигурация ПЛИС: используется JTAG — интерфейс. Официальная страница Группы разработки стандарта IEEE 1149.1 JTAG англ.
регистра инструкций для входа в различные JTAG — режимы REGISTER ACCESS description: Описание других JTAG — регистров и соответствующих инструкций. BOUNDARY
следующие разъёмы: S — VIDEO HDMI Слот SD MMC для карт памяти USB OTG RS — 232 JTAG 3, 5 мм in out audio. Объём ПЗУ и ОЗУ одинаков и составляет 256 МБ. Благодаря
JTAG Intarface, предназначенной для быстрой перенастройки телефона разработчиками и последующего тестирования и доработки ПО Siemens SXG75 with JTAG
интерфейса к отладчику gdb AVaRICE JTAG ICE interface — программа для работы с внутрисхемным отладочным интерфейсом JTAG ICE в микропроцессорах Atmel используется
последовательного порта и I2C к устройствам PIC. Иногда также реализуются программаторы JTAG например, на устройствах Arduino. Существуют реализации простейших USB устройств
функциональность устройства ещё не утеряна. Если Trim Area сильно повреждён или удалён, то можно попытаться восстановить шаблон с помощью специального ПО и JTAG
помощью интерфейсов JTAG или debugWIRE: сигналы JTAG TMS, TDI, TDO, и TCK мультиплексированы на порт ввода — вывода. Режим работы — JTAG или порт — задаётся
микроконтроллеров AVR. debugWIRE разрабатывался как более дешёвая альтернатива JTAG специально для процессоров с ограниченными ресурсами. Он поддерживается
название SYS BIOS. Также в состав продукта входят симуляторы и поддержка JTAG — ориентированной отладки. Новая жизнь у среды разработки началась с выпуском
Основная статья: SimulAVR Внутрисхемный отладчик, использующий стандартный JTAG — интерфейс для процессоров AVR. Портал Свободное программное обеспечение
2 SMBus 1 SPI 1 eSPI 2 UART 32 GPIO eMMC SD SDIO CoreSight SW JTAG MIPI PTI Тип — FCBGA 40 40 мм 2.8 3.05 3.3 мм — высота мин ном макс
Bascom — AVR: AVR ISP Programmer STK200 STK300 STK500 USBASP USB ISP mkII JTAG MKII Arduino bootloader с некоторыми китайскими копиями ARDUINO, особенно
последовательного интерфейса большинство микросхем используют вариации протокола JTAG Программирование через интерфейс ISP происходит по пяти линиям связи: MOSI
программаторах, мультиплексорах, многоточечных интерфейсах передачи данных наподобие JTAG I²C или USB, и т. д. Например: если интерфейс SPI настроен как подчинённый
подключения ещё до попытки стереть микросхему. Проверка исправности программатора. JTAG — адаптеры, пригодные одновременно как для программирования, так и для отлаживания
загружать программу для PicoBlaze непосредственно в ПЛИС через интерфейс JTAG PicoBlaze 8 — bit Microcontroller неопр. www.xilinx.com. Дата обращения
David Artz, Paul Kapcio Lockhead Martin RAD750 Radiation Hardened PowerPC Microprocessor BAE Systems RAD750 processor JTAG Emulator from corelis.com
разрабатываемому встроенному устройству и отладочный интерфейс, например, JTAG Программируемый логический контроллер Система на кристалле Однокристальный
центрального процессора либо подключение к центральному процессору через интерфейс JTAG позволяя таким образом знать результат работы каждой инструкции центрального
проводной интерфейс I2C Последовательный асинхронный интерфейс UART Ведущий JTAG — порт 4 параллельных байтовых порта ввода — вывода Мультиплексор выводов 4 программируемых
SATA2 — разъёма и 1 IDE ATA, 10 разъёмов USB 2.0, по одному для интерфейса JTAG и разъёма Compact Flash, 2 разъёма RS — 232 и 1 слот Xorro для подключения
обеспечивает питание платы 200 mA Spare 3x обычный I O из ППВМ GPIO JTAG для программирования микросхем TMS, TDI, TDO, TCK Последовательный порт
прерываний, микросхема выбора чипа, счётчики и таймеры, логика тестирования JTAG Эта серия процессоров имела несколько модификаций: EXSA, EXTA, EXTB, EXTC
время встречаются в гараже Аарона, где изготовляют и продают устройства JTAG Они хотят проводить независимые научные разработки, которые в будущем смогут
16 — разрядной памятью. Суффикс D указывает на возможность использования порта JTAG для отладки системы. Суффикс M указывает на наличие встроенного умножителя
Эмулятор оптических дисководов Двоичная трансляция Внутрисхемный эмулятор: JTAG QEMU Виртуальная машина What is emulation? неопр. недоступная ссылка
специфицирован архитектурно, но реализация, как правило, включает поддержку JTAG Существует отдельная архитектура отладки с обзором ядра которая не требуется
загрузчик находится во флэш — памяти, эта модель может потребовать использования JTAG в случае сбоя работы приёмника. Тем не менее, сбои происходят в редких случаях
BeRTOS ChibiOS RT eCos RTEMS Unison MicroC OS — II Nucleus Contiki Программирование JTAG C2 Программатор Ассемблер Прерывание MPLAB AVR Studio MCStudio
Дата публикации:
05-16-2020
Дата последнего обновления:
05-16-2020JTAG Joint Test Action Group
JTAG (англ. Joint Test Action Group; произносится «джей-таг») — это название рабочей группы по разработке стандарта IEEE 1149. Позднее это сокращение стало ассоциироваться с разработанным этой группой специализированным аппаратным интерфейсом на базе стандарта IEEE 1149.1. Интерфейс предназначен для подключения сложных цифровых микросхем или устройств уровня печатной платы к стандартной аппаратуре тестирования и отладки.
На текущий момент интерфейс стал промышленным стандартом. Практически все сколько-нибудь сложные цифровые микросхемы оснащаются этим интерфейсом для:
- выходного контроля микросхем при производстве
- тестирования собранных печатных плат
- прошивки микросхем с памятью
- отладочных работ при проектировании аппаратуры и программного обеспечения
Стандарт предусматривает возможность подключения большого количества устройств через один физический порт.
Порт тестирования (TAP — Test Access Port) представляет собой четыре или пять выделенных выводов микросхемы: ТСК, TMS, TDI, TDO и (опционально) TRST.
Функциональное назначение этих линий:
- TDI (test data input — «вход тестовых данных») — вход последовательных данных периферийного сканирования. Команды и данные вводятся в микросхему с этого вывода по переднему фронту сигнала TCK;
- TDO (test data output — «выход тестовых данных») — выход последовательных данных. Команды и данные выводятся из микросхемы с этого вывода по заднему фронту сигнала TCK;
- TCK (test clock — «тестовое тактирование») — тактирует работу встроенного автомата управления периферийным сканированием. Максимальная частота сканирования периферийных ячеек зависит от используемой аппаратной части и на данный момент ограничена 25…40 МГц;
- TMS (test mode select — «выбор режима тестирования») — обеспечивает переход схемы в/из режима тестирования и переключение между разными режимами тестирования.
В некоторых случаях к перечисленным сигналам добавляется сигнал TRST для инициализации порта тестирования, что необязательно, так как инициализация возможна путем подачи определённой последовательности сигналов на вход TMS.
Работа средств обеспечения интерфейса JTAG подчиняется сигналам автомата управления, встроенного в микросхему. Состояния автомата определяются сигналами TDI и TMS порта тестирования. Определённое сочетание сигналов TMS и TCK обеспечивает ввод команды для автомата и её исполнение.
Тестирование целостности цепи
Тестирование JTAG может быть как довольно простым, так и очень углубленным. Наиболее базовая форма тестирования — тестирование целостности цепи, т.е. тестирование, того что устройства JTAG, которые участвуют в цепи JTAG, фактически существуют.
Большинство JTAG-совместимых устройств содержит идентификационный код, который может использоваться, чтобы проверить что, устройства существуют и что цепь JTAG правильно связана. Устройства, которые не содержат идентификационные коды, будут всегда возвращать единственный бит с ценностью 0; таким образом цепь JTAG может быть проверена на правильную последовательность как для устройств с идентификационным кодом, так и без него.
JTAG — Википедия (с комментариями)
Материал из Википедии — свободной энциклопедии
JTAG (сокращение от англ. Joint Test Action Group; произносится «джей-тáг») — название рабочей группы по разработке стандарта IEEE 1149. Позднее это сокращение стало прочно ассоциироваться с разработанным этой группой специализированным аппаратным интерфейсом на базе стандарта IEEE 1149.1. Официальное название стандарта Standard Test Access Port and Boundary-Scan Architecture. Интерфейс предназначен для подключения сложных цифровых микросхем или устройств уровня печатной платы к стандартной аппаратуре тестирования и отладки.
На текущий момент интерфейс стал промышленным стандартом. Практически все сколько-нибудь сложные цифровые микросхемы оснащаются этим интерфейсом для:
- выходного контроля микросхем при производстве
- тестирования собранных печатных плат
- прошивки микросхем с памятью
- отладочных работ при проектировании аппаратуры и программного обеспечения
Метод тестирования, реализованный в стандарте, получил название Boundary Scan (граничное сканирование). Название отражает первоначальную идею процесса: в микросхеме выделяются функциональные блоки, входы которых можно отсоединить от остальной схемы, подать заданные комбинации сигналов и оценить состояние выходов каждого блока. Весь процесс производится специальными командами по интерфейсу JTAG, при этом никакого физического вмешательства не требуется. Разработан стандартный язык управления данным процессом — Boundary Scan Description Language (BSDL).
Стандарт предусматривает возможность подключения большого количества устройств (микросхем) через один физический порт (разъем).
Порт тестирования (TAP — Test Access Port) представляет собой четыре или пять выделенных выводов микросхемы: ТСК, TMS, TDI, TDO и (опционально) TRST.
Функциональное назначение этих линий:
- TDI (test data input — «вход тестовых данных») — вход последовательных данных периферийного сканирования. Команды и данные вводятся в микросхему с этого вывода по переднему фронту сигнала TCK;
- TDO (test data output — «выход тестовых данных») — выход последовательных данных. Команды и данные выводятся из микросхемы с этого вывода по заднему фронту сигнала TCK;
- TCK (test clock — «тестовое тактирование») — тактирует работу встроенного автомата управления периферийным сканированием. Максимальная частота сканирования периферийных ячеек зависит от используемой аппаратной части и на данный момент ограничена 25…40 МГцК:Википедия:Статьи без источников (тип: не указан)[источник не указан 4024 дня];
- TMS (test mode select — «выбор режима тестирования») — обеспечивает переход схемы в/из режима тестирования и переключение между разными режимами тестирования.
- В некоторых случаях к перечисленным сигналам добавляется сигнал TRST для инициализации порта тестирования, что необязательно, так как инициализация возможна путём подачи определённой последовательности сигналов на вход TMS.
Работа средств обеспечения интерфейса JTAG подчиняется сигналам автомата управления, встроенного в микросхему. Состояния автомата определяются сигналами TDI и TMS порта тестирования. Определённое сочетание сигналов TMS и TCK обеспечивает ввод команды для автомата и её исполнение.
Если на плате установлено несколько устройств, поддерживающих JTAG, они могут быть объединены в общую цепочку. Уникальной особенностью JTAG является возможность программирования не только самого микроконтроллера (или ПЛИС), но и подключённой к его выводам микросхемы флэш-памяти. Причём существует два способа программирования флэш-памяти с использованием JTAG: через загрузчик с последующим обменом данными через память процессора, либо через прямое управление выводами микросхемы.
Напишите отзыв о статье «JTAG»
Ссылки
- [grouper.ieee.org/groups/1149/1/ Официальная страница Группы разработки стандарта IEEE 1149.1 (JTAG)] (англ.)
- [hri.sourceforge.net/tools/jtag_faq_org.html JTAG FAQ] (англ.)
- [easyelectronics.ru/vnutrisxemnaya-otladka-avr-cherez-jtag-ice.html Практический пример работы с AVR JTAG]
Отрывок, характеризующий JTAG
– Очень, говорят, плохи дела их, – сказала Жюли. – И он так бестолков – сам граф. Разумовские хотели купить его дом и подмосковную, и все это тянется. Он дорожится.– Нет, кажется, на днях состоится продажа, – сказал кто то. – Хотя теперь и безумно покупать что нибудь в Москве.
– Отчего? – сказала Жюли. – Неужели вы думаете, что есть опасность для Москвы?
– Отчего же вы едете?
– Я? Вот странно. Я еду, потому… ну потому, что все едут, и потом я не Иоанна д’Арк и не амазонка.
– Ну, да, да, дайте мне еще тряпочек.
– Ежели он сумеет повести дела, он может заплатить все долги, – продолжал ополченец про Ростова.
– Добрый старик, но очень pauvre sire [плох]. И зачем они живут тут так долго? Они давно хотели ехать в деревню. Натали, кажется, здорова теперь? – хитро улыбаясь, спросила Жюли у Пьера.
– Они ждут меньшого сына, – сказал Пьер. – Он поступил в казаки Оболенского и поехал в Белую Церковь. Там формируется полк. А теперь они перевели его в мой полк и ждут каждый день. Граф давно хотел ехать, но графиня ни за что не согласна выехать из Москвы, пока не приедет сын.
– Я их третьего дня видела у Архаровых. Натали опять похорошела и повеселела. Она пела один романс. Как все легко проходит у некоторых людей!
– Что проходит? – недовольно спросил Пьер. Жюли улыбнулась.
– Вы знаете, граф, что такие рыцари, как вы, бывают только в романах madame Suza.
– Какой рыцарь? Отчего? – краснея, спросил Пьер.
– Ну, полноте, милый граф, c’est la fable de tout Moscou. Je vous admire, ma parole d’honneur. [это вся Москва знает. Право, я вам удивляюсь.]
– Штраф! Штраф! – сказал ополченец.
– Ну, хорошо. Нельзя говорить, как скучно!
– Qu’est ce qui est la fable de tout Moscou? [Что знает вся Москва?] – вставая, сказал сердито Пьер.
– Полноте, граф. Вы знаете!
– Ничего не знаю, – сказал Пьер.
– Я знаю, что вы дружны были с Натали, и потому… Нет, я всегда дружнее с Верой. Cette chere Vera! [Эта милая Вера!]
– Non, madame, [Нет, сударыня.] – продолжал Пьер недовольным тоном. – Я вовсе не взял на себя роль рыцаря Ростовой, и я уже почти месяц не был у них. Но я не понимаю жестокость…
– Qui s’excuse – s’accuse, [Кто извиняется, тот обвиняет себя.] – улыбаясь и махая корпией, говорила Жюли и, чтобы за ней осталось последнее слово, сейчас же переменила разговор. – Каково, я нынче узнала: бедная Мари Волконская приехала вчера в Москву. Вы слышали, она потеряла отца?
– Неужели! Где она? Я бы очень желал увидать ее, – сказал Пьер.
– Я вчера провела с ней вечер. Она нынче или завтра утром едет в подмосковную с племянником.
– Ну что она, как? – сказал Пьер.
– Ничего, грустна. Но знаете, кто ее спас? Это целый роман. Nicolas Ростов. Ее окружили, хотели убить, ранили ее людей. Он бросился и спас ее…
– Еще роман, – сказал ополченец. – Решительно это общее бегство сделано, чтобы все старые невесты шли замуж. Catiche – одна, княжна Болконская – другая.
– Вы знаете, что я в самом деле думаю, что она un petit peu amoureuse du jeune homme. [немножечко влюблена в молодого человека.]
– Штраф! Штраф! Штраф!
– Но как же это по русски сказать?..
Когда Пьер вернулся домой, ему подали две принесенные в этот день афиши Растопчина.
В первой говорилось о том, что слух, будто графом Растопчиным запрещен выезд из Москвы, – несправедлив и что, напротив, граф Растопчин рад, что из Москвы уезжают барыни и купеческие жены. «Меньше страху, меньше новостей, – говорилось в афише, – но я жизнью отвечаю, что злодей в Москве не будет». Эти слова в первый раз ясно ыоказали Пьеру, что французы будут в Москве. Во второй афише говорилось, что главная квартира наша в Вязьме, что граф Витгснштейн победил французов, но что так как многие жители желают вооружиться, то для них есть приготовленное в арсенале оружие: сабли, пистолеты, ружья, которые жители могут получать по дешевой цене. Тон афиш был уже не такой шутливый, как в прежних чигиринских разговорах. Пьер задумался над этими афишами. Очевидно, та страшная грозовая туча, которую он призывал всеми силами своей души и которая вместе с тем возбуждала в нем невольный ужас, – очевидно, туча эта приближалась.
Техническое руководство по JTAG — Учебное пособие по XJTAG
Этот документ предоставляет вам интересную справочную информацию о технологии, лежащей в основе XJTAG. Однако вам не нужно ничего знать об этом, чтобы иметь возможность использовать систему разработки XJTAG, поскольку тесты XJTAG разрабатываются на языке программирования высокого уровня, который не требует каких-либо знаний о детальной работе JTAG.
Введение
Достижения в области кремниевых конструкций, такие как увеличение плотности устройств и, в последнее время, упаковка BGA снизили эффективность традиционных методов тестирования.
Чтобы преодолеть эти проблемы, некоторые из ведущих мировых производителей кремния объединились, чтобы сформировать Joint Test Action Group. Выводы и рекомендации этой группы были использованы в качестве основы для стандарта 1149.1 Института инженеров по электротехнике и электронике (IEEE): Стандартный тестовый порт доступа и архитектура пограничного сканирования. Этот стандарт сохранил свою связь с группой и широко известен под аббревиатурой JTAG.
Сканирование границ
Основным преимуществом использования технологии граничного сканирования является возможность устанавливать и считывать значения на выводах без прямого физического доступа.
Рисунок 1 — Принципиальная схема устройства с поддержкой JTAG
Процесс граничного сканирования легче всего понять со схематической диаграммой, показанной на рисунке 1.
Все сигналы между основной логикой устройства и выводами перехватываются последовательным трактом сканирования, известным как регистр граничного сканирования (BSR), который состоит из ряда «ячеек» граничного сканирования. При нормальной работе эти ячейки граничного сканирования невидимы. Однако в тестовом режиме ячейки можно использовать для установки и / или чтения значений с выводов устройства (или во «внутреннем» режиме из значений базовой логики.Не все ячейки с граничным сканированием одинаковы — в стандарте 1149.1 существует 10 типов ячеек, хотя производители могут определять нестандартные типы ячеек, чтобы соответствовать фактическим аппаратным функциям их устройства, если они хотят.
Интерфейсные сигналы
Интерфейс JTAG, известный под общим названием Test Access Port, или TAP, использует следующие сигналы для поддержки операции пограничного сканирования.
- TCK (Test Clock) — этот сигнал синхронизирует работу внутреннего конечного автомата.
- TMS (Выбор тестового режима) — этот сигнал дискретизируется по нарастающему фронту TCK для определения следующего состояния.
- TDI (Test Data In) — этот сигнал представляет данные, сдвинутые в логику тестирования или программирования устройства. Он выбирается на переднем фронте TCK, когда внутренний конечный автомат находится в правильном состоянии.
- TDO (выход тестовых данных) — этот сигнал представляет данные, сдвинутые из логики тестирования или программирования устройства, и действителен на заднем фронте TCK, когда внутренний конечный автомат находится в правильном состоянии.
- TRST (тестовый сброс) — это дополнительный вывод, который, если он доступен, может сбрасывать конечный автомат контроллера TAP.
Регистры
Есть два типа регистров, связанных с граничным сканированием. Каждое совместимое устройство имеет один регистр команд и два или более регистров данных.
Регистр инструкций — регистр инструкций содержит текущую инструкцию. Его содержимое используется контроллером TAP, чтобы решить, что делать с полученными сигналами.Чаще всего содержимое регистра команд определяет, в какой из регистров данных следует передавать сигналы.
Регистры данных — имеется три первичных регистра данных, регистр пограничного сканирования (BSR), регистр BYPASS и регистр IDCODES. Могут присутствовать и другие регистры данных, но они не требуются как часть стандарта JTAG.
- BSR — это основной регистр данных испытаний. Он используется для перемещения данных на контакты ввода / вывода устройства и обратно.
- BYPASS — это однобитовый регистр, который передает информацию от TDI к TDO. Это позволяет тестировать другие устройства в цепи с минимальными накладными расходами.
- IDCODES — этот регистр содержит идентификационный код и номер версии устройства. Эта информация позволяет связать устройство с файлом языка описания пограничного сканирования (BSDL). Файл содержит подробную информацию о конфигурации пограничного сканирования для устройства.
Контроллер тестового порта доступа (TAP)
Контроллер TAP, конечный автомат, переходы которого контролируются сигналом TMS, управляет поведением системы JTAG.На рисунке 2 ниже показана диаграмма переходов между состояниями.
Рисунок 2 — Конечный автомат TAP
Все состояния имеют два выхода, поэтому всеми переходами можно управлять с помощью одного сигнала TMS, дискретизированного на TCK. Два основных пути позволяют устанавливать или извлекать информацию из регистра данных или регистра команд устройства. Регистр данных, с которым работают (например, BSR, IDCODES, BYPASS), зависит от значения, загруженного в регистр команд.
Подробнее о каждом состоянии см. IEEE 1149.1 Стандартный документ JTAG.
Инструкции пограничного сканирования
Стандарт IEEE 1149.1 определяет набор инструкций, которые должны быть доступны, чтобы устройство считалось совместимым. Эти инструкции:
- BYPASS — эта инструкция вызывает соединение линий TDI и TDO через однобитовый проходной регистр (регистр BYPASS). Эта инструкция позволяет тестировать другие устройства в цепочке JTAG без лишних накладных расходов.
- EXTEST — эта инструкция вызывает подключение TDI и TDO к регистру пограничного сканирования (BSR).Состояния выводов устройства выбираются с помощью состояния JTAG «capture dr», а новые значения смещаются в BSR с помощью состояния «shift dr»; эти значения затем применяются к контактам устройства с помощью состояния «update dr».
- SAMPLE / PRELOAD — эта инструкция вызывает подключение TDI и TDO к BSR. Однако устройство остается в нормальном рабочем режиме. Во время этой инструкции к BSR можно получить доступ с помощью операции сканирования данных, чтобы взять образец функциональных данных, поступающих и выходящих из устройства.Инструкция также используется для предварительной загрузки тестовых данных в BSR перед загрузкой инструкции EXTEST.
Другие общедоступные инструкции включают:
- IDCODE — эта инструкция вызывает подключение TDI и TDO к регистру IDCODE.
- INTEST — эта инструкция подключает линии TDI и TDO к регистру пограничного сканирования (BSR). В то время как инструкция EXTEST позволяет пользователю устанавливать и считывать состояния выводов, инструкция INTEST относится к сигналам базовой логики устройства.
Получение стандарта IEEE 1149.1
Стандартную спецификацию JTAG IEEE 1149.1 можно получить непосредственно в IEEE:
http://standards.ieee.org
Ресурсы
Руководство по проектированию для обеспечения возможности тестирования (DFT)
Предложения по улучшению тестируемости схем
Руководство высокого уровня по JTAG
Узнайте, на что способен JTAG
Что такое JTAG?
И как мне это использовать?
Тестирование JTAG с XJTAG
Как XJTAG расширяет возможности JTAG
Файлы на языке описания пограничного сканирования (BSDL)
Ссылки на сайты производителей
Тестирование устройств без JTAG
Файлы в последовательном векторном формате (SVF)
AN 100: Рекомендации по внутрисистемному программированию
Altera Jam Player (версии с байтовым кодом и ASCII) работает с ПК параллельно порт.Чтобы перенести Jam Player на свой процессор, вам нужно всего лишь изменить файл jamstub.c или файл jbistub.c (для ASCII Jam Player или Jam Byte-Code Player, соответственно).
Все остальные файлы должны оставаться такими же. Если Jam Player портирован неправильно, Нераспознанное устройство Ошибка . Наиболее частые причины этой ошибки являются:
- После переноса Jam Player значение TDO может быть прочитано с обратной полярностью.Этот проблема может возникнуть из-за того, что код ввода-вывода по умолчанию в Jam Player предполагает использование параллельного порта ПК.
- Хотя сигналы TMS и TDI синхронизируются по переднему фронту сигнала TCK, выходы не изменяются до спада сигнала TCK . Эта ситуация вызывает половина такта TCK , чтобы задержать считывание значений. Если переход TDO Ожидается, что на переднем фронте данные будут смещены на один такт.
- Altera рекомендует использовать регистры для синхронизации выходных переходов. В Кроме того, некоторые порты данных процессора используют регистр для синхронизации вывода сигналы. Например, чтение и запись в параллельный порт ПК — это выполняется чтением и записью в регистры. При чтении и записи на цепочки JTAG, вы должны учитывать использование этих регистров. Неправильный учет этих регистров может привести к тому, что значения будут опережать или отставать от ожидаемое значение.
Вы можете использовать тестовый файл .jam, чтобы определить, правильно ли перенесен Jam Player. В следующих примерах показаны части образца JAM-файла, который помогает отладить потенциальные проблемы с портированием.
Образец 1
NOTE JAM_VERSION "1.1"; ПРИМЕЧАНИЕ ДИЗАЙН «IDCODE.jam версия 1.4 28.04.98»; '########################################################################## ########################### '#This Jam File сравнивает IDCODE, прочитанный из цепочки JTAG, с '# ожидаемый IDCODE.Есть 5 параметров, которые можно установить при выполнении '# этот код. '# '#COMP_IDCODE_ [device #] = 1, например -dCOMP_IDCODE_9400 = 1 '# сравнивает IDCODE с IDCODE EPM9400. '# PRE_IR = [IR_LENGTH] - длина регистров инструкций, которые вы хотите '# для обхода после целевого устройства. По умолчанию 0, поэтому, если ваш 'Длина #JTAG равна 1, вводить значение не нужно. '# POST_IR = [IR_LENGTH] - длина инструкции, которую вы регистрируете '# хочу обойти перед целевым устройством.По умолчанию 0, поэтому, если '# ваша длина JTAG равна 1, вам не нужно вводить значение. '# PRE_DR = [DR_LENGTH] - длина регистров данных, которые вы хотите '# для обхода после целевого устройства. По умолчанию 0, поэтому, если ваш 'Длина #JTAG равна 1, вводить значение не нужно. '# POST_DR = [DR_LENGTH] - длина регистров данных, которые вы хотите '# для обхода перед целевым устройством. По умолчанию 0, поэтому, если ваш 'Длина #JTAG равна 1, вводить значение не нужно. '# Пример: этот пример считывает IDCODE из второго устройства в '#chain ниже: '# '#TDI -> EPM7128S -> EPM7064S -> EPM7256S -> EPM7256S -> TDO '# '# В этом примере IDCODE сравнивается с IDCODE EPM7064S.Если JTAG '#chain настроен правильно, IDCODE должны совпадать. '# C: \> jam -dCOMP_IDCODE_7064S = 1 -dPRE_IR = 20 -dPOST_IR = 10 -dPRE_DR = 2 '# -dPOST_DR = 1 -p378 IDCODE.jam '# '# '# Пример: этот пример считывает IDCODE одной цепочки JTAG устройства '# и сравнивает его с IDCODE EPM9480: '# '# C: \> jam -dCOMP_IDCODE_9480 = 1 -p378 IDCODE.jam '########################################################################## ############################
Образец 2
'######################## Инициализация ####################################### ## BOOLEAN read_data [32]; BOOLEAN I_IDCODE [10] = BIN 1001101000; BOOLEAN I_ONES [10] = BIN 1111111111; BOOLEAN ONES_DATA [32] = HEX FFFFFFFF; BOOLEAN ID_9320 [32] = BIN 10111011000000000100110010010000; BOOLEAN ID_9400 [32] = BIN 10111011000000000000001010010000; BOOLEAN ID_9480 [32] = BIN 10111011000000000001001010010000; BOOLEAN ID_9560 [32] = BIN 10111011000000000110101010010000; BOOLEAN ID_7032S [32] = BIN 10111011000001001100000011100000; BOOLEAN ID_7064S [32] = BIN 10111011000000100110000011100000; BOOLEAN ID_7128S [32] = BIN 10111011000000010100100011100000; BOOLEAN ID_7128A [32] = BIN 10111011000000010100100011100000; BOOLEAN ID_7160S [32] = BIN 10111011000000000110100011100000; BOOLEAN ID_7192S [32] = BIN 10111011000001001001100011100000; BOOLEAN ID_7256S [32] = BIN 10111011000001101010010011100000; BOOLEAN ID_7256A [32] = BIN 10111011000001101010010011100000; BOOLEAN COMP_9320_IDCODE = 0; BOOLEAN COMP_9400_IDCODE = 0; BOOLEAN COMP_9480_IDCODE = 0; BOOLEAN COMP_9560_IDCODE = 0; BOOLEAN COMP_7032S_IDCODE = 0; BOOLEAN COMP_7064S_IDCODE = 0; BOOLEAN COMP_7096S_IDCODE = 0; BOOLEAN COMP_7128S_IDCODE = 0; BOOLEAN COMP_7128A_IDCODE = 0; BOOLEAN COMP_7160S_IDCODE = 0; BOOLEAN COMP_7192S_IDCODE = 0; BOOLEAN COMP_7256S_IDCODE = 0; BOOLEAN COMP_7256A_IDCODE = 0; BOOLEAN COMP_7032AE_IDCODE = 0; BOOLEAN COMP_7064AE_IDCODE = 0; BOOLEAN COMP_7128AE_IDCODE = 0; BOOLEAN COMP_7256AE_IDCODE = 0; BOOLEAN COMP_7512AE_IDCODE = 0; INTEGER PRE_IR = 0; ЦЕЛОЕ PRE_DR = 0; INTEGER POST_IR = 0; ЦЕЛОЕ POST_DR = 0; BOOLEAN SET_ID_EXPECTED [32]; BOOLEAN COMPARE_FLAG1 = 0; BOOLEAN COMPARE_FLAG2 = 0; BOOLEAN COMPARE_FLAG = 0; 'Ожидается, что эта информация будет выведена из инструкции ' регистр BOOLEAN ожидаемые_данные [10] = BIN 0101010101; BOOLEAN ir_data [10];
Образец 3
'Эти значения по умолчанию равны 0, поэтому, если у вас есть цепочка JTAG одного устройства, вы делаете 'не нужно устанавливать эти значения.PREIR PRE_IR; POSTIR POST_IR; PREDR PRE_DR; POSTDR POST_DR; INTEGER i; '######################## Определение действия ##################### ## ПОЗВОЛЬНИТЕ COMPARE_FLAG1 = COMP_9320_IDCODE || COMP_9400_IDCODE || COMP_9480_IDCODE || COMP_9560_IDCODE || COMP_7032S_IDCODE || COMP_7064S_IDCODE || COMP_7096S_IDCODE || COMP_7032AE_IDCODE || COMP_7064AE_IDCODE || COMP_7128AE_IDCODE; ПОЗВОЛЯЕМ COMPARE_FLAG2 = COMP_7128S_IDCODE || COMP_7128A_IDCODE || COMP_7160S_IDCODE || COMP_7192S_IDCODE || COMP_7256S_IDCODE || COMP_7256A_IDCODE || COMP_7256AE_IDCODE || COMP_7512AE_IDCODE; ПОЗВОЛЬНИТЕ COMPARE_FLAG = COMPARE_FLAG1 || COMPARE_FLAG2; ЕСЛИ COMPARE_FLAG! = 1 ТО НАЙТИ NO_OP; ДЛЯ i = от 0 до 31; ЕСЛИ COMP_9320_IDCODE == 1, ТО ДАВАЙТЕ SET_ID_EXPECTED [i] = ID_9320 [i]; ЕСЛИ COMP_9400_IDCODE == 1, ТО ДАВАЙТЕ SET_ID_EXPECTED [i] = ID_9400 [i]; ЕСЛИ COMP_9480_IDCODE == 1, ТО ДАВАЙТЕ SET_ID_EXPECTED [i] = ID_9480 [i]; ЕСЛИ COMP_9560_IDCODE == 1, ТО ДАВАЙТЕ SET_ID_EXPECTED [i] = ID_9560 [i]; ЕСЛИ COMP_7032S_IDCODE == 1, ТО ДАВАЙТЕ SET_ID_EXPECTED [i] = ID_7032S [i]; ЕСЛИ COMP_7064S_IDCODE == 1, ТО ДАВАЙТЕ SET_ID_EXPECTED [i] = ID_7064S [i]; ДЛЯ i = от 0 до 31; ЕСЛИ COMP_9320_IDCODE == 1, ТО ДАВАЙТЕ SET_ID_EXPECTED [i] = ID_9320 [i]; ЕСЛИ COMP_9400_IDCODE == 1, ТО ДАВАЙТЕ SET_ID_EXPECTED [i] = ID_9400 [i]; ЕСЛИ COMP_9480_IDCODE == 1, ТО ДАВАЙТЕ SET_ID_EXPECTED [i] = ID_9480 [i]; ЕСЛИ COMP_9560_IDCODE == 1, ТО ДАВАЙТЕ SET_ID_EXPECTED [i] = ID_9560 [i]; ЕСЛИ COMP_7032S_IDCODE == 1, ТО ДАВАЙТЕ SET_ID_EXPECTED [i] = ID_7032S [i]; ЕСЛИ COMP_7064S_IDCODE == 1, ТО ДАВАЙТЕ SET_ID_EXPECTED [i] = ID_7064S [i]; ЕСЛИ COMP_7128S_IDCODE == 1 ТОГДА УСТАНОВИТЕ SET_ID_EXPECTED [i] = ID_7128S [i]; ЕСЛИ COMP_7128A_IDCODE == 1, ТО ДАВАЙТЕ SET_ID_EXPECTED [i] = ID_7128A [i]; ЕСЛИ COMP_7160S_IDCODE == 1, ТО ДАВАЙТЕ SET_ID_EXPECTED [i] = ID_7160S [i]; ЕСЛИ COMP_7192S_IDCODE == 1, ТО ДАВАЙТЕ SET_ID_EXPECTED [i] = ID_7192S [i]; ЕСЛИ COMP_7256S_IDCODE == 1, ТО ДАВАЙТЕ SET_ID_EXPECTED [i] = ID_7256S [i]; ЕСЛИ COMP_7256A_IDCODE == 1, ТО ДАВАЙТЕ SET_ID_EXPECTED [i] = ID_7256A [i]; ЕСЛИ COMP_7032AE_IDCODE == 1, ТО ДАВАЙТЕ SET_ID_EXPECTED [i] = ID_7032AE [i]; ЕСЛИ COMP_7064AE_IDCODE == 1, ТО ДАВАЙТЕ SET_ID_EXPECTED [i] = ID_7064AE [i]; ЕСЛИ COMP_7128AE_IDCODE == 1, ТО ДАВАЙТЕ SET_ID_EXPECTED [i] = ID_7128AE [i]; ЕСЛИ COMP_7256AE_IDCODE == 1, ТО ДАВАЙТЕ SET_ID_EXPECTED [i] = ID_7256AE [i]; ЕСЛИ COMP_7512AE_IDCODE == 1, ТО ДАВАЙТЕ SET_ID_EXPECTED [i] = ID_7512AE [i]; СЛЕДУЮЩИЙ I;
Образец 4
'######################## Фактическая загрузка #################### ### IRSTOP IRPAUSE; СОСТОЯНИЕ СБРОСА; IRSCAN 10, I_IDCODE [0..9], ЗАХВАТ ir_data [0..9]; ГОСУДАРСТВЕННЫЙ ПРОСТОЙ; DRSCAN 32, ONES_DATA [0..31], CAPTURE read_data [0..31]; '######################## Печать ###################### # ПЕЧАТЬ «ОЖИДАЕМЫЙ ИРСКАН: 1010101010»; ПЕЧАТЬ «ФАКТИЧЕСКИЙ IRSCAN:», ir_data [0], ir_data [1], ir_data [2], ir_data [3], ir_data [4], ir_data [5], ir_data [6], ir_data [7], ir_data [8], ir_data [9]; ПЕЧАТЬ ""; ПЕЧАТЬ "ОЖИДАЕМЫЙ IDCODE:", SET_ID_EXPECTED [0], SET_ID_EXPECTED [1], SET_ID_EXPECTED [2], SET_ID_EXPECTED [3], SET_ID_EXPECTED [4], SET_ID_EXPECTED [5], SET_ID_EXPECTED [6], SET_ID_EXPECTED [7], SET_ID_EXPECTED [8], SET_ID_EXPECTED [9], SET_ID_EXPECTED [10], SET_ID_EXPECTED [11], SET_ID_EXPECTED [12], SET_ID_EXPECTED [13], SET_ID_EXPECTED [14], SET_ID_EXPECTED [15], SET_ID_EXPECTED [16], SET_ID_EXPECTED [17], SET_ID_EXPECTED [18], SET_ID_EXPECTED [19], SET_ID_EXPECTED [20], SET_ID_EXPECTED [21], SET_ID_EXPECTED [22], SET_ID_EXPECTED [23], SET_ID_EXPECTED [24], SET_ID_EXPECTED [25], SET_ID_EXPECTED [26], SET_ID_EXPECTED [27], SET_ID_EXPECTED [28], SET_ID_EXPECTED [29], SET_ID_EXPECTED [30], SET_ID_EXPECTED [31]; ПЕЧАТЬ «ФАКТИЧЕСКИЙ IDCODE:», READ_DATA [0], READ_DATA [1], READ_DATA [2], READ_DATA [3], READ_DATA [4], READ_DATA [5], READ_DATA [6], READ_DATA [7], READ_DATA [8], READ_DATA [9], READ_DATA [10], READ_DATA [11], READ_DATA [12], READ_DATA [13], READ_DATA [14], READ_DATA [15], READ_DATA [16], READ_DATA [17], READ_DATA [18], READ_DATA [19], READ_DATA [20], READ_DATA [21], READ_DATA [22], READ_DATA [23], READ_DATA [24], READ_DATA [25], READ_DATA [26], READ_DATA [27], READ_DATA [28], READ_DATA [29], READ_DATA [30], READ_DATA [31]; GOTO END; '######################## Если параметры не заданы ################### ##### NO_OP: PRINT "jam [-d ] [-p] [-s ] IDCODE.варенье"; ПЕЧАТЬ "-d: инициализировать переменную указанным значением"; ПЕЧАТЬ "-p: номер параллельного порта или адрес <для ByteBlaster>"; ПЕЧАТЬ "-s: имя последовательного порта <для BitBlaster>"; РАСПЕЧАТАТЬ " "; ПЕЧАТЬ «Пример: сравнить IDCODE 4-го устройства в цепочке из 5 Altera»; РАСПЕЧАТАТЬ «устройства с IDCODE EPM7192S»; РАСПЕЧАТАТЬ " "; ПЕЧАТЬ "jam -dCOMP_7192S_IDCODE = 1 -dPRE_IR = 10 -dPOST_IR = 30 -dPRE_DR = 1"; ПЕЧАТЬ "dPOST_DR = 3 -p378 IDCODE.jam"; РАСПЕЧАТАТЬ " "; КОНЕЦ: ВЫХОД 0;
% PDF-1.6 % 1184 0 объект > эндобдж xref 1184 135 0000000016 00000 н. 0000003888 00000 н. 0000004097 00000 н. 0000004126 00000 н. 0000004178 00000 п. 0000004215 00000 н. 0000004734 00000 н. 0000004931 00000 н. 0000005142 00000 п. 0000005343 00000 п. 0000005555 00000 н. 0000005767 00000 н. 0000005979 00000 н. 0000006087 00000 н. 0000006195 00000 н. 0000006303 00000 н. 0000006411 00000 н. 0000006519 00000 н. 0000006627 00000 н. 0000006735 00000 н. 0000006843 00000 н. 0000006951 00000 п. 0000007059 00000 н. 0000007167 00000 н. 0000007275 00000 н. 0000007383 00000 н. 0000007491 00000 н. 0000007599 00000 н. 0000007707 00000 н. 0000007815 00000 н. 0000007923 00000 п. 0000008031 00000 н. 0000008139 00000 п. 0000008247 00000 н. 0000008355 00000 н. 0000008463 00000 н. 0000008571 00000 н. 0000008679 00000 н. 0000008787 00000 н. 0000008893 00000 н. 0000008976 00000 н. 0000009056 00000 н. 0000009138 00000 н. 0000009220 00000 н. 0000009302 00000 п. 0000009384 00000 п. 0000009466 00000 н. 0000009548 00000 н. 0000009630 00000 н. 0000009712 00000 н. 0000009794 00000 н. 0000009876 00000 н. 0000009958 00000 н. 0000010040 00000 п. 0000010122 00000 п. 0000010204 00000 п. 0000010286 00000 п. 0000010368 00000 п. 0000010450 00000 п. 0000010532 00000 п. 0000010614 00000 п. 0000010696 00000 п. 0000010778 00000 п. 0000010860 00000 п. 0000010942 00000 п. 0000011023 00000 п. 0000011104 00000 п. 0000011185 00000 п. 0000011266 00000 п. 0000011347 00000 п. 0000011428 00000 п. 0000011509 00000 п. 0000011590 00000 п. 0000011671 00000 п. 0000011752 00000 п. 0000011833 00000 п. 0000011914 00000 п. 0000011995 00000 п. 0000012076 00000 п. 0000012157 00000 п. 0000012238 00000 п. 0000012319 00000 п. 0000012400 00000 п. 0000012481 00000 п. 0000012596 00000 п. 0000013133 00000 п. 0000013769 00000 п. 0000014262 00000 п. 0000014366 00000 п. 0000014928 00000 п. 0000015589 00000 п. 0000015735 00000 п. 0000016207 00000 п. 0000016618 00000 п. 0000017068 00000 п. 0000017528 00000 п. 0000017927 00000 н. 0000018349 00000 п. 0000018441 00000 п. 0000022869 00000 п. 0000027703 00000 п. 0000027790 00000 н. 0000031372 00000 п. 0000031632 00000 п. 0000031851 00000 п. 0000032139 00000 п. 0000032200 00000 н. 0000032348 00000 п. 0000032487 00000 п. 0000032638 00000 п. 0000032770 00000 п. 0000032926 00000 п. 0000033093 00000 п. 0000033213 00000 п. 0000033377 00000 п. 0000033528 00000 п. 33
Test Access Port TAP») Примечания к электронике
— обзор деталей граничного сканирования, интерфейса IEEE1149 или JTAG, разъема и порта.
Boundary Scan JTAG Включает:
Что такое Boundary Scan / JTAG
Язык описания пограничного сканирования, BSDL
Дизайн для теста с граничным сканированием
Спецификация JTAG и стандарт IEEE 1149
JTAG TAP и разъем
IEEE 1149.6 (JTAG, связанный по переменному току)
Компактный JTAG cJTAG IEEE 1149.7
IJTAG, IEEE 1687
Чтобы иметь возможность использовать граничное сканирование в системе JTAG, необходимо иметь возможность правильно взаимодействовать с любой платой, настроенной для использования JTAG.Интерфейс JTAG имеет несколько линий, которые вместе известны как порт тестового доступа, TAP. Этот порт JTAG используется для управления JTAG, а также для обеспечения соединений, с помощью которых последовательные данные могут входить и покидать плату.
На некоторых элементах электронного оборудования может быть специальный разъем или интерфейс JTAG, к которому может быть подключен тестер JTAG. Этот подход особенно полезен для любых полевых испытаний, которые требуются, поскольку к испытуемому объекту можно получить доступ без необходимости полной разборки устройства.
Для большинства устройств нет специального разъема JTAG. Вместо этого соединения с интерфейсом JTAG направляются через главный разъем к сборке. Эти соединения не всегда будут использоваться для основной работы устройства, если только JTAG-тест не требуется как часть встроенного самотестирования, BIST, где JTAG-контроллер расположен вне этой платы или сборки.
Сигналы интерфейса JTAG
Для интерфейса JTAG можно использовать максимум пять линий, хотя одна из них является необязательной и поэтому может не всегда присутствовать.Это может произойти, когда в конструкции не хватает контактов на разъеме, и можно пожертвовать дополнительным разъемом.
Сигналы, которые могут быть использованы, приведены ниже:
- TCK — Тестовые часы: Тестовый тактовый вывод на интерфейсе JTAG — это тактовый сигнал, используемый для обеспечения синхронизации системы граничного сканирования. Test Clock используется для загрузки данных тестового режима с вывода TMS и тестовых данных на вывод TDI по нарастающему фронту. По заднему фронту тестовые часы выводят тестовые данные на вывод TDO.Важно, чтобы линия синхронизации была правильно завершена, чтобы предотвратить отражения, которые могут привести к ложному срабатыванию и неправильной работе интерфейса JTAG.
- TDI — ввод тестовых данных: Контакт TDI на интерфейсе JTAG или разъеме JTAG — это соединение, на которое передается поток данных инструкций тестирования. Он получает последовательные входные данные, которые либо подаются в регистры тестовых данных, либо в регистр команд, в зависимости от состояния контроллера TAP.Линия TDI имеет внутреннее подтягивание, поэтому на входе высокий уровень без входа.
- TDO — Вывод тестовых данных: Этот вывод в интерфейсе JTAG предоставляет данные из регистров граничного сканирования, т.е. тестовые данные смещаются на этот вывод. Он передает последовательные данные, которые поступают либо из регистров тестовых данных, либо из регистра команд, в зависимости от состояния контроллера TAP. Данные, поданные на вывод TDI, появятся на выводе TDO, но могут быть сдвинуты на несколько тактов, в зависимости от длины внутреннего регистра.Вывод TDO имеет высокий импеданс.
- TMS — Выбор тестового режима: Этот вход на интерфейсе JTAG также синхронизируется по нарастающему фронту TCK и определяет состояние контроллера TAP. Он контролирует работу логики тестирования, получая входящие данные. Значение на входе на переднем фронте тактового сигнала управляет перемещением по состояниям контроллера TAP. Линия TMS имеет внутреннее подтягивание, поэтому на входе высокий уровень без входа.
- TRST — сброс теста: Это дополнительный активный вывод сброса теста низкого уровня на интерфейсе JTAG. Он разрешает асинхронную инициализацию контроллера TAP, не влияя на другое устройство или системную логику. Сигнал TRST обычно асинхронный, но не всегда так зависит от конкретного рассматриваемого устройства.
Если соединение TRST недоступно, то логику тестирования можно сбросить с помощью синхронного использования TCK и TMS. Обратите внимание, что сброс логики тестирования не подразумевает сброс других схем: обычно существуют операции JTAG, зависящие от процессора, которые могут сбросить все или часть тестируемого устройства.
Как видно выше, соединения JTAG реализованы на плате с помощью устройств последовательного соединения, находящихся на шине JTAG, то есть одно к другому и так далее в последовательном режиме. Вывод TDO одного устройства подключается к выводу TDI следующего устройства. В некоторых случаях может быть более одного разъема JTAG.
Разъем JTAG
Интерфейс JTAG обычно является неотъемлемой частью любого электронного узла. Хотя некоторые элементы оборудования могут предоставлять определенный порт JTAG для полевых испытаний, это не всегда так.В этих случаях к интерфейсу JTAG можно получить доступ через соединитель основной сборки, для которого есть несколько выделенных контактов, используемых для тестирования JTAG-сканирования границы. Контакты, составляющие интерфейс JTAG, не будут использоваться при нормальных условиях эксплуатации.
В дополнение к стандартным соединениям JTAG, определенным выше, интерфейс JTAG также может быть расширен для обеспечения дополнительных функций для отладки. Многие производители микросхем имеют свои собственные запатентованные дополнительные соединения, которые работают вместе с основными сигналами JTAG, чтобы обеспечить значительную степень дополнительных функций.
Эти дополнительные строки обычно зависят от производителя, хотя новый стандарт, известный как IJTAG, определенный в IEEE 1687, обеспечивает стандартизацию дополнительных линий и функций.
Подробнее о IJTAG IEEE 1687
Типы разъемов
Не существует стандарта для типа разъема, который следует использовать для соединения JTAG. Разные поставщики используют разные типы коннекторов JTAG, часто в форме заголовков. Различные типы также могут использоваться между разработкой и производством, а в некоторых случаях могут быть включены несколько заголовков, чтобы обеспечить поддержку различных инструментов.На некоторых производственных платах могут использоваться контрольные точки или соединения в рамках существующих разъемов.
Есть несколько общих моментов, которые приведены в таблице ниже:
Параметр | Детали |
---|---|
Шаг соединения | Расстояние между контактами 0,1 дюйма (2,54 мм) или, иногда, краевой соединитель. |
Разъем механический | Закрытый заголовок рекомендуется для предотвращения неправильной вставки. |
Помехозащищенность | Хорошая практика — заземлить каждый второй штифт. |
При подключении к интерфейсу JTAG необходимо следить за тем, чтобы выводы и внутренние связи печатной платы были как можно короче, чтобы сохранить целостность сигнала и синхронизацию.
Другие темы тестирования:
Анализатор сети передачи данных
Цифровой мультиметр
Частотомер
Осциллограф
Генераторы сигналов
Анализатор спектра
Измеритель LCR
Дип-метр, ГДО
Логический анализатор
Измеритель мощности RF
Генератор радиочастотных сигналов
Логический зонд
Тестирование и тестеры PAT
Рефлектометр во временной области
Векторный анализатор цепей
PXI
GPIB
Граничное сканирование / JTAG
Получение данных
Вернуться в меню тестирования.. .
% PDF-1.2 % 659 0 объект > эндобдж xref 659 107 0000000016 00000 н. 0000002492 00000 н. 0000002631 00000 н. 0000002687 00000 н. 0000002718 00000 н. 0000004401 00000 п. 0000004575 00000 п. 0000004659 00000 н. 0000004790 00000 н. 0000004926 00000 н. 0000005094 00000 н. 0000005150 00000 н. 0000005258 00000 н. 0000005314 00000 п. 0000005437 00000 н. 0000005541 00000 н. 0000005597 00000 н. 0000005711 00000 н. 0000005767 00000 н. 0000005823 00000 н. 0000005980 00000 н. 0000006036 00000 н. 0000006168 00000 п. 0000006224 00000 н. 0000006316 00000 н. 0000006407 00000 н. 0000006463 00000 н. 0000006583 00000 н. 0000006639 00000 н. 0000006757 00000 н. 0000006813 00000 н. 0000006927 00000 н. 0000006983 00000 н. 0000007039 00000 п. 0000007195 00000 н. 0000007251 00000 н. 0000007426 00000 н. 0000007482 00000 н. 0000007572 00000 н. 0000007697 00000 н. 0000007753 00000 н. 0000007866 00000 н. 0000007922 00000 н. 0000007978 00000 н. 0000008139 00000 п. 0000008195 00000 н. 0000008317 00000 н. 0000008422 00000 н. 0000008478 00000 н. 0000008618 00000 п. 0000008674 00000 н. 0000008730 00000 н. 0000008874 00000 н. 0000008929 00000 н. 0000009038 00000 н. 0000009152 00000 п. 0000009208 00000 н. 0000009322 00000 н. 0000009378 00000 п. 0000009495 00000 н. 0000009551 00000 п. 0000009662 00000 н. 0000009718 00000 н. 0000009840 00000 п. 0000009896 00000 н. 0000010007 00000 п. 0000010063 00000 п. 0000010177 00000 п. 0000010233 00000 п. 0000010367 00000 п. 0000010423 00000 п. 0000010547 00000 п. 0000010602 00000 п. 0000010727 00000 п. 0000010782 00000 п. 0000010837 00000 п. 0000010985 00000 п. 0000011040 00000 п. 0000011147 00000 п. 0000011245 00000 п. 0000011300 00000 п. 0000011416 00000 п. 0000011471 00000 п. 0000011579 00000 п. 0000011634 00000 п. 0000011689 00000 п. 0000011744 00000 п. 0000011860 00000 п. 0000011953 00000 п. 0000012008 00000 н. 0000012063 00000 п. 0000012119 00000 п. 0000012208 00000 п. 0000012298 00000 п. 0000012353 00000 п. 0000012464 00000 п. 0000012518 00000 п. 0000012572 00000 п. 0000012690 00000 п. 0000012898 00000 п. 0000013951 00000 п. 0000015257 00000 п. 0000016314 00000 п. 0000016531 00000 п. 0000017104 00000 п. 0000002774 00000 н. 0000004378 00000 п. трейлер ] >> startxref 0 %% EOF 660 0 объект > эндобдж 661 0 объект > эндобдж 662 0 объект [ 663 0 руб. ] эндобдж 663 0 объект > / Ж 39 0 Р >> эндобдж 764 0 объект > транслировать HVSg ~ w7
2.1.2. Архитектура микросхемы JTAG
2.1.2. Архитектура микросхемы JTAG
IEEE 1149.1 описывает простую архитектуру для микросхем, реализующих
граничное сканирование. В своей минимальной конфигурации он обеспечивает
четыре внешних контакта, часы ( TCK
), данные в ( TDI
), данные на выходе
( TDO
) и управляющий сигнал ( TMS
). В совокупности эти булавки
известный как порт Test Access Port (TAP).
Внутри есть два регистра в дополнение к граничному сканированию. регистр: регистр инструкций и обход регистр.На рисунке 2.6 показано эта минималистичная архитектура.
Рисунок 2.6. Минимальная архитектура JTAG
Биты сдвигаются по положительному фронту TCK
и сдвигаются наружу.
отрицательный край. Сигнал TMS
используется для управления регистром
в который сдвинуты биты (регистр инструкций, обход
регистр или регистр граничного сканирования). Использование TMS
описано подробнее
полностью ниже.
Основной цикл работы — это последовательность
захват регистр, сдвиг
в новом значении от TDI
, одновременно смещая старое
значение на TDO
, затем обновить регистр с
значение сдвинулось.
Контроллер TAP может сдвигать значения либо с помощью инструкции регистр или через один из других регистров (совместно известных как регистров данных ). В минимальном В конфигурации всего два регистра данных: граничное сканирование регистр и регистр обхода . Обход регистр — удобный механизм, когда тестирование граничного сканирования не быть использованным.
Регистр команд должен быть не менее 2 биты длинные.IEEE 1149.1 требует минимум 4 инструкций:
-
БАЙПАС
-
Захват, сдвиг и обновление данных с помощью обходной записи. Этот позволяет чипу продолжать нормальную работу. IEEE 1149.1 требует, чтобы эта инструкция состояла из всех единиц.
-
ОБРАЗЕЦ
-
Захват и сдвиг данных через регистр граничного сканирования, таким образом беря образец данных, поступающих и покидающих чип через его входы и выходы.Однако фаза обновления не передавать данные на входы или выходы.
-
ПРЕДВАРИТЕЛЬНАЯ ЗАГРУЗКА
-
Сдвигайте данные через регистр сканирования границы, таким образом настраивая значение в ячейках сканирования для будущего использования. Для этого инструкция, фаза захвата не получает предыдущее значение в ячейку, и фаза обновления не переносит данные на входы или выходы.
В ранних версиях стандарта эта инструкция была в сочетании с
ОБРАЗЕЦ
. -
EXTEST
-
Микросхема переведена в режим extest перед данные собираются, сдвигаются и обновляются через границу регистр сканирования.
Это используется для проверки связи между несколькими микросхемами. В extest mode микросхема не пытается управлять выходами или принимать входы. Это нормально использовать
ПРЕДВАРИТЕЛЬНАЯ ЗАГРУЗКА
для настройки сканирования границ зарегистрируйтесь доEXTEST
.Ранние версии IEEE 1149.1 требовал, чтобы эта инструкция состоят из всех нулей, хотя в большинстве случаев это не так. последние версии.
Сигналы TCK
и TMS
управляют конечным автоматом в TAP.
контроллер. TMS
дискретизируется по переднему фронту TCK
и используется для
продвигать государство. Конечный автомат показан на рисунке 2.7.
Рисунок 2.7. Конечный автомат TAP
Действия, предпринятые в каждом состоянии, следующие:
- Тест-Логика-Сброс
-
В этом состоянии все тестовые режимы (например, extest-режим) сбросить, что отключит их работу, позволяя чипу следить за его нормальной работой.
При запуске внешняя логика установит высокий уровень
TMS
в течение не менее 5TCK
циклов. Это гарантирует достижение Состояние Test-Logic-Reset и оставаться там. - Run-Test / Idle
-
Это состояние покоя при нормальной работе.
- Выбрать-DR-Scan , Выбрать-ИК-сканирование
-
Это начальные состояния соответственно для доступа к одному регистров данных (регистр пограничного сканирования или обходной регистр в минимальной конфигурации) или регистр инструкций.
- Захват-DR , Захват-ИК
-
Они фиксируют текущее значение одного из регистров данных. или регистр инструкций соответственно в скан клетки.
Это небольшое неправильное обозначение регистра инструкций, поскольку обычно собирают информацию о статусе, а не собственно инструкция с Capture-IR.
- Shift-DR , Shift-ИК
-
Немного переключитесь с
TDI
(на переднем фронтеTCK
) и обратно наTDO
(на заднем фронтеTCK
) из текущего выбранный регистр данных или инструкций соответственно. - Выход1-DR , Выход1-ИК
-
Это состояния выхода для соответствующего сдвига штат. Отсюда конечный автомат может либо войти в паузу. состояние или войдите в состояние обновления.
- Пауза-DR , Пауза-ИК
-
Пауза при переносе данных в данные или инструкцию регистр. Это позволяет, например, поставлять испытательное оборудование.
TDO
для перезагрузки буферов и т. Д. - Выход2-DR , Выход2-ИК
-
Это состояния выхода для соответствующей паузы. штат.Отсюда конечный автомат может возобновиться. сдвиг или войти в состояние обновления.
- Обновление-DR , Обновление-IR
-
Значение, сдвинутое в ячейки сканирования во время предыдущего состояния передаются в микросхему (с входов) или на межблочный (для выходов).
Итак, у нас есть простой конечный автомат, который позволяет использовать данные регистры или регистр инструкций, чтобы пройти через цикл захвата-сдвига-обновления с возможностью паузы во время смещение.
IEEE 1149.1 определяет дополнительный вывод асинхронного сброса, TRST
,
дополнительный регистр идентификации и ряд дополнительных
инструкции, которые могут быть включены. Расширенная архитектура
показано на рисунке 2.8.
Рисунок 2.8. Архитектура JTAG с дополнительным портом сброса и регистром идентификатора
На выводе сброса TRST
активен низкий уровень. При низком уровне немедленно
переводит конечный автомат в состояние Test-Logic-Reset.
Примечание | |
---|---|
Если |
Регистр идентификации устройства является
32-битный регистр данных. Он идентифицирует версию и номер детали для
как производитель, так и пользователь. Его можно прочитать, используя необязательный
ICODE
и USERCODE
инструкции.
Дополнительные инструкции также поддерживают INTEST
(как EXTEST
, но с данными тестирования на кристалле),
RUNBIST
(для комплексного выполнения
Встроенная логика самотестирования ),
ЗАЖИМ
(для фиксации выходов в соответствии с предопределенной логикой
уровней) и HIGHZ
(для установки всех выходов на
отключенное (высокоомное) состояние).
Добавление пользовательских регистров в JTAG
JTAG предоставляет общий механизм доступа к регистрам на чип.Стандарт позволяет расширять архитектуру вместе с пользователем. регистры, доступ к которым осуществляется с помощью собственных инструкций пользователя. На рисунке 2.9 показано, как эти регистры могут быть добавлены.
Рисунок 2.9. Архитектура JTAG с пользовательскими регистрами
Пользователь будет добавлять свои собственные инструкции для доступа к этим дополнительные регистры. Это общий механизм взаимодействия с блоки отладки на современных конструкциях системы на кристалле (SoC).
raspberry pi — Прошивка микросхем TI с помощью OpenOCD
Я пытаюсь прошить чип CC2652 от TI с помощью OpenOCD через Raspberry’s GPIO (или SPI, или как угодно).
Это кажется непростым делом, и у меня также есть панель запуска, которую вы можете представить как двухкомпонентную плату:
- Прошивальщик XDS110 с интерфейсом USB
- CC2652 целевой чип
Он спроектирован довольно хорошо, вы можете использовать эти два компонента вместе или по отдельности:
- Справа (синяя область) находится прошивальщик XDS110
- Слева (зеленая зона) находится целевой чип CC2652
- В середине (желтая область) есть контактный разъем, где вы можете соединить две части, чтобы XDS110 прошивал этот CC2652 (а не внешний)
Вот как это перемычка в случае соединения двух встроенных компонентов (обратите внимание на перемычки, которые немного трудно увидеть): подключенные сигналы: GND, 3V3, RESET, TMS, TCK.
Если я удалю перемычки и подключу эти сигналы (GND, 3V3, RESET, TMS, TCK) к внешнему CC2652, я могу легко прошить его с помощью официального инструмента TI под названием Uniflash (в Windows).
Теперь к настоящему вопросу: как я могу запрограммировать встроенный CC2652 (или любой внешний CC2652) с OpenOCD, используя GPIO Raspberry?
Потому что в raspberrypi-native.cfg
(в интерфейсах):
# Каждая из строк JTAG требует набора номера gpio: tck tms tdi tdo
# Номера контактов заголовка: 23 22 19 21
bcm2835gpio_jtag_nums 11 25 10 9
Значит, вроде тоже нужны TDI и TDO.И хотя я могу подключать их к RXD и TXD, я не хочу.
Я создал файл конфигурации для OpenOCD:
исходный код [найти интерфейс / raspberrypi-native.cfg]
транспорт выбрать jtag
скорость адаптера 1000
источник [найти цель / ti_cc26x2.cfg]
в этом
цели
сбросить остановку
И подключенный PI <-> Launchpad с использованием GND, 3V3, GPIO (9,10,11,25).
Когда я запускаю openocd:
# openocd
Откройте встроенный отладчик 0.10.0 + dev-00114-g41bcbc67d-dirty (2021-01-18-16: 43)
Под лицензией GNU GPL v2
Для отчетов об ошибках прочтите
http: // openocd.org / doc / doxygen / bugs.html
Информация: BCM2835 GPIO JTAG / SWD драйвер bitbang
Информация: тактовая частота 1006 кГц
Ошибка: запрос цепочки сканирования JTAG завершился неудачно: все нули
Ошибка: проверьте интерфейс JTAG, тайминги, целевую мощность и т. Д.
Ошибка: все равно пытаюсь использовать настроенную цепочку сканирования ...
Ошибка: cc26x2.jrc: ошибка ИК-захвата; видел 0x00 не 0x01
Предупреждение: обход событий настройки JTAG из-за ошибок
Информация: запуск сервера gdb для cc26x2.cpu на 3333
Информация: прослушивание порта 3333 для соединений GDB
Ошибка: запрос цепочки сканирования JTAG завершился неудачно: все нули
Ошибка: проверьте интерфейс JTAG, тайминги, целевую мощность и т. Д.Ошибка: все равно пытаюсь использовать настроенную цепочку сканирования .