JTAG — это аббревиатура, которая расшифровывается как «Joint Test Action Group», в переводе это значит специализированный интерфейс для отладки и программирования. Данный микропроцессорный интерфейс служит, как понятно из названия, для отладки и мониторинга работы процессора.
Что касается спутников ресиверов, то JTAG дает возможность перепрошить микросхему flash-памяти, если нет возможность прошить ресивер стандартным способом, через кабель к компьютеру. Сегодня мы разберем прошивку через JTAG-интерфейс на примере спутникового ресивера Globo X90 для его восстановления. Ранее мы уже научились прошивать его через кабель (см. предыдущую часть)
Зачем нужен JTAG
Самый большой плюс в JTAG — это возможность внутрисхемного программирования микросхем памяти ресиверов. С его помощью восстанавливать потерянное или испорченное содержимое флэш-памяти, при этом не выпаивая микросхем и без необходимости использования программаторов. То есть JTAG нужен именно тогда, когда неисправен загрузчик , что делает невозможным заливку ПО штатным способом.
Как научиться пользоваться Z3X Easy-JTAG/Easy-Jtag Plus?
Минусом является тот факт, что интерфейс JTAG, в большинстве своём, на всех ресиверах разный — единый стандарт существует, но каждый производитель его модифицирует по-своему. Globo X90 работает на процессоре ALI 3329С .
Прошивка через JTAG куда сложней обычной процедуры, поэтому к ней прибегают только в самом крайнем случае, когда ресивер совсем не подаёт признаков жизни: не загружается, не горит индикация, прошили другой прошивкой, либо после прошивки у вас только черный экран
JTAG прошивка по шагам
Для того, что бы запрограммировать флэш ресивера с помощью JTAG кроме собственно «пациента», т.е. ресивера, который нам необходимо «оживить», нам нужно иметь следующее:
1. Собрать интерфейс (переходник) от порта ресивера к порту ПК
Собрать адаптер для JTAG не так сложно, как кажется на первый взгляд. Для Globo X90, да и вообще для всех ресиверов, предпочтительным вариантом сборки является вариант на микросхеме 74HC244N (её еще называют даташит). Распиновка JTAG:
Так выглядит собранная схема:
Со стороны ресивера это будет специальный разъём, он иногда даже так и подписан — JTAG
Второй «конец», который уходит в сторону ПК — это обычный LPT-кабель, который можно купить в любом компьютерном магазине. О том, как можно собрать всё это хозяйство:
2 . Найти LPT-порт на ПК
Параллельный порт на компьютере сейчас можно увидеть только в музее, поэтому можно докупить специальный LPT-PCI контроллер , который позволяет подключить ваш JTAG к системному блоку ПК, у которого нет LPT порта (а это будет в 99,9% случаев).
3. Скачать программу для прошивки
Для реанимации ресиверов Globo и всех их клонов, а так же для Евросатов/Евроскаев потребуется специальный программатор. Что касается программного обеспечения, то на данных процессорах используется программа EJTAG_TT_1.0.6.17 (Я.Диск)
4. Установить драйвер, если у вас Windows XP
Если вы используете Windows XP, то необходимо установить драйвер giveio.sys (Я.Диск). Скопируйте файл драйвера GIVEIO.sys в папку C:Windowssystem32drivers если, конечно, система у Вас установлена на диск С: и Вы не меняли пути установки Windows. Запустите файл install.reg.
5. Скачиваем прошивку
Нужна сама прошивка, т.е. то, что мы будем заливать во Flash-память. Здесь есть два варианта
- Только загрузчик (лоадер) — файл с расширением .bin. это та часть содержимого флэш ресивера, которая обеспечивает загрузку в него ПО(софта) через порт. Если мы имеем случай, когда нам для заливки нужен только загрузчик(лоадер) ресивера, то поступаем одним из двух способов – или скачиваем готовый файл с загрузчиком, или делаем его самостоятельно. Для этого в HEX-редакторе отрезаем от файла ПО первые 65536 байт и сохраняем как отдельный файл *.bin. Это и есть загрузчик.
- Полный дамп . Дамп для JTAG, в случае, с ресиверами Globo — это обычный дамп, который используется для прошивки. Единственное, необходимо будет сменить расширение файла с *.abs на *.bin
6. Переводим ресивер в отладочный режим
Для прошивки также потребуется перевод ресивера в режим отладки, он же Debug Mode. Способы его перевода зависят от конкретной модели приставки, конкретно для Globo X90 cсоединить (замкнуть) перемычкой предназначенные для этого контактные площадки на плате, где стоит обозначение JP1 . Так же бывает, что надписи JP1 на ресивере нет, тогда нужно выпаять резистор R32
Обратите внимание на точки подключения. Они должны совпадать с тем, как вы собрали переходник. В некоторых Globo-ресиверах бывает обратная последовательность — не перепутайте. На некоторых ресиверах можно сделать обычную перемычку для перевода в отладочный режим
Можно использовать перемычку с IDE-винчестеров
Так это будет выглядеть:
7. Настраиваем EJTAG и прошиваем
Настройки в нашей JTAG tool выставляем так же как на скриншоте:
Если EJTAG не увидит ресивер, попробуйте поменять тип флеш памяти в последнем столбике. Вообще, здесь можно пробовать менять любые параметры, чтобы ресивер определился
В некоторых мануалах пишут, что предварительно нужно стирать флеш — делать этого не стоит, ни поблочно, ни полностью, перед записью программа сама сотрёт столько памяти, сколько ей надо записать, она умеет это делать. Далее жмём «коннект» . В окне программы должен побежать текст лога.
Если после нажатия кнопки «коннект», у вас выходит ошибка «флэш ID нету в *.ini –файле», то попробуйте поменять настройки в программе, как и советовали выше, нужно попробовать все вариации галочек и точек в настройках. Если и это не приведет к успеху, то тут стоит насторожиться — проверить питание процессора, напряжение с БП — есть вероятность того, что флеш-память уже «умерла», тогда никакой JTAG уже не поможет. Следующим шагом жмём «Записать» и в окне проводника выбираем нужный файл с дампом или загрузчиком (лоадером)
При необходимости, как мы и писали выше, EJTAG сотрёт самостоятельно нужный блок памяти и начнет запись.
Здесь есть небольшой нюанс — достаточно залить около 50-70% прошивки через JTAG (желательно, конечно, полностью), но если у вас оборвалась прошивка на этом этапе, то можно попробовать прошивать стандартно (через порт), т.к. дальше уже идут списки каналов, спутники и так далее, т.е. то, что вы зальете и обычный прошивкой.
8. Убираем перемычку, отключаем Debug Mode
Не забудьте в конце прошивки корректно завершить программу EJAG, отключить от сети ресивер и аккуратно отключить JTAG-интерфейс. Так же снять перемычку для входа в отладочный режим. Далее подключаем ресивер уже через ком-порт и заливаем в него софт обычным способом.
Ручной поиск транспондера у спутника
Если вы заливаете «голую» прошивку, то есть необходимость вбить вручную нужные вам транспондеры. У некоторых ресиверов есть функция ручного ввода транспондеров. Для этого
- Нажмите «Меню» на пульте
- Далее выберите «Установка»
- Следующий пункт «Настройка антенны и поиск каналов»
- Нажмите желтую кнопку на пульте (PVR) и попадаете в режим редактирования транспондеров.
Как вам статья?
Источник: storedigital.ru
Что такое JTAG и как это применить для тестирования печатных плат?
JTAG – это нечто большее, чем просто отладка и перепрограммирование микросхем
Если Вы применяли какие-либо инструменты, использующие JTAG, то Вы уже знакомы с этим интерфейсом. Например, процессоры часто используют JTAG для доступа к своим отладочным функциям, также все ПЛИС используют JTAG для перепрограммирования.
JTAG – это НЕ ТОЛЬКО отладка процессоров.
JTAG – это НЕ ТОЛЬКО программирование ПЛИС/CPLD.
Название JTAG чаще всего ассоциируется с инструментами отладки и перепрограммирования микросхем. Однако, в этих инструментах реализована только часть возможностей JTAG.
Эта часть возможностей, известная под названием Test Access Port или, сокращённо, TAP, является частью стандарта IEEE Std. 1149.1. Этот стандарт был разработан для тестирования сборок печатных плат (Printed Circuit Board Assemblies – PCBA) без необходимости доступа на так называемом «низком» (физическом) уровне, который требуется для анализа «сложных» случаев. Стандарт также не предусматривает разработку и использование специфических функциональных тестов. Изначально TAP был разработан только для взаимодействия с дополнительными регистрами, специально вставляемыми в микросхему с целью реализации данного метода тестирования.
Однако достаточно быстро производители микросхем заметили потенциал использования TAP и для других целей, например, для доступа к регистрам, предназначенным для отладки и перепрограммирования микросхем.
Теперь в микросхемы добавляется специальный регистр для тестирования через JTAG под названием Boundary Scan Register (BSR). Как и подразумевает название этого регистра, отдельные его части (или, по-другому, ячейки (Cells)) являются «пограничными» для микросхемы, так как располагаются между функциональным ядром и контактами корпуса микросхемы. По этой причине тестирование через JTAG часто называют пограничным сканированием (boundary scan).
Как технология пограничного сканирования, реализуемая стандартом JTAG, используется для тестирования печатных плат?
Ячейки регистра пограничного сканирования (Boundary Scan Register) могут работать в одном из двух режимов: 1) функциональный режим – ячейки не влияют на работу прибора, прибор работает в своём обычном виде; 2) тестирующий режим – ячейки отсоединяют функциональное ядро микросхемы от контактов корпуса. Тестирующий режим используется для управления значениями на контактах корпуса микросхемы (и в соответствующих цепях печатной платы), а также для считывания значений с подключённых цепей печатной платы.
Отключение функционального ядра микросхемы существенно упрощает разработку тестов, так как использование пограничного сканирования (boundary scan) позволяет не разрабатывать программу для микропроцессора или прошивку для ПЛИС и не включать прибор в «рабочем» режиме. Механизм управления и наблюдения за контактами корпуса микросхемы через четырёх-контактный TAP, JTAG интерфейс позволяет получить низкоуровневый доступ к контактам микросхемы для физического тестирования печатной платы.
Существует два способа тестирования печатной платы при помощи пограничного сканирования (boundary scan). Первый способ – тест соединений (connection test). Он даёт хорошее покрытие, особенно для поиска таких неисправностей, как замыкания. Этот способ использует только возможности микросхемы с поддержкой JTAG, при этом тестируются соединения (например, пропайки) и цепи, а в случае применения системы XJTAG, тестируются ещё и логические функции платы. Второй способ – использование микросхемы с поддержкой JTAG для взаимодействия с микросхемами без поддержки JTAG, такими как DDR RAM или Flash память.
Что такое тест соединений (connection test) через JTAG?
Тест соединений (connection test) проверяет, соответствует ли изготовленная печатная плата исходному проекту, а также наличие на ней не предусмотренных проектом разрывов цепей или лишних замыканий.
Если согласно проекту какие-то контакты микросхемы должны быть соединены где-то на плате, то можно проверить факт наличия соединения, подавая значения на один из контактов и считывая с других. Если согласно проекту контакты микросхемы НЕ соединены, то можно проверить, нет ли между ними лишнего замыкания, подавая на один из них значения и проверяя, что на остальные это не влияет.
Кроме того, тест соединений (connection test) позволяет обнаружить отсутствие нужных подтягивающих резисторов, и «залипания» сигналов. Это также делается путём выставления на контактах определённых значений и сравнения считанных значений с заданной таблицей истинности.
Система XJTAG на основе нетлиста печатной платы и информации, считанной с поддерживающих JTAG микросхем, полностью автоматически генерирует тестовые вектора для проведения теста соединений (connection test) всей платы.
Что же делать с остальными микросхемами на плате, которые не поддерживают JTAG?
Как правило, основные микросхемы на плате, такие как процессоры и ПЛИС, поддерживают JTAG, но существует множество вспомогательных микросхем, которые JTAG не поддерживают. Как пример можно привести такие микросхемы, как ЦАП, АЦП, DDR, SDRAM, SRAM, Flash, Ethernet контроллеры, температурные сенсоры, генераторы частот и многое другое.
Тест соединений (connection test) позволяет проводить тестирование на замыкания цепей между микросхемами с поддержкой JTAG и микросхемами без поддержки, при этом достигается хорошее покрытие. Однако протестировать обрывы в таких цепях уже не получится.
С целью тестирования на наличие обрывов цепей между микросхемами с поддержкой JTAG и микросхемами без таковой, требуется использовать так называемые функциональные тесты. Если функциональные тесты пройдены, то это означает, что обрывов быть не может. Функциональные тесты могут быть как очень простыми, например, включение светодиода и ожидание подтверждения от оператора, что светодиод действительно загорелся, так и посложнее, например, запись данных в память, считывание их же и сравнение считанных данных с ожидаемыми.
Насколько сложно подготовить JTAG тесты?
При помощи библиотеки тестов для стандартных микросхем без поддержки JTAG, поставляемой с системой XJTAG, возможна подготовка и запуск набора функциональных тестов без необходимости программирования. Библиотека тестов содержит тесты как для простых элементов, таких как резисторы и буферные элементы, так и для сложных микросхем, таких как память DDR3 и так далее.
Т.к. пограничное сканирование (boundary scan) отключает контакты корпуса микросхемы от функционального кремниевого ядра, единая тестовая модель может быть использована для управления периферийными микросхемами вне зависимости от того, какая микросхема с поддержкой JTAG использована.
Как правило, в печатную плату не требуется вносить никаких изменений, так как большинство плат уже содержат JTAG контакты для отладки процессоров или программирования ПЛИС.
Что ещё нужно для использования микросхем с поддержкой JTAG?
Для тестирования печатной платы при помощи пограничного сканирования (boundary scan) требуется для каждой микросхемы с поддержкой JTAG скачать с сайта производителя микросхемы так называемый BSDL-файл – Boundary Scan Description Language. Это текстовый файл, описывающий назначения ножек корпуса микросхемы.
Используется ли JTAG тестирование в основном на производстве?
Не совсем. Одним из важнейших преимуществ тестирования через пограничное сканирование (boundary scan) является тот факт, что из дополнительного оборудования требуется только JTAG контроллер. Другие технологии тестирования, такие как летающие щупы (flying probe), рентгеновское сканирование, многозондовое тестирование (bed-of-nails) и так далее требуют наличия дорогостоящего оборудования, которое не всегда доступно.
Использование пограничного сканирования (boundary scan) при первом тестировании позволяет проводить тестирование более уверенно, так как не требует включения платы в основной режим работы и даже может быть выполнено ещё до окончания разработки «прошивки». Эти же тесты, разработанные при проектировании, могут быть использованы и на производстве.
Почему следует использовать пограничное сканирование через JTAG для тестирования печатных плат?
BGA
С увеличением доли микросхем, реализованных в корпусе BGA (Ball Grid Array), применение традиционных систем тестирования печатных плат, таких как многозондовое тестирование (bed-of-nails) или летающие щупы (flying probe) становится всё более ограниченным, так как «внутренние» контакты физически недоступны.
Пограничное сканирование (boundary scan) на основе JTAG при помощи простого «четырёхконтактного» интерфейса позволяет произвольно управлять контактами корпуса микросхемы с поддержкой JTAG, в том числе считывать значения, не имея к контактам физического доступа.
Стенд
В процессе проектирования и отладки временны́е и денежные затраты на разработку/приобретение испытательных/отладочных стендов могут быть очень существенными, а в некоторых случаях и превышать затраты на само проектирование. Во многих случаях использование пограничного сканирования (boundary scan) позволяет вообще отказаться от применения испытательного стенда, а в остальных случаях подойдет и значительно более простой и дешёвый стенд.
Малые партии
В случае, когда у компании имеется много проектов плат, выпускаемых малыми партиями, задача удешевления тестового оборудования особенно актуальна. Единственно приемлемым вариантом в данном случае является покупка системы «летающие щупы» (flying probe), но если цена при этом делится на все проекты, то временны́е затраты на подготовку теста для каждого проекта остаются неприемлемыми. Использование пограничного сканирования (boundary scan) позволяет ускорить подготовку теста для каждого проекта, при том, что покупка дорогостоящего тестового оборудования теперь не требуется.
Стоимость разработки теста
Так как разные микросхемы (процессоры и ПЛИС) взаимодействуют с периферией разными способами, разработка традиционного функционального теста отдельно для каждой платы является очень затратной. Пограничное сканирование (boundary scan) существенно сокращает стоимость разработки тестов благодаря упрощённому способу управления контактами корпуса микросхемы для взаимодействия с остальными компонентами на плате. А унифицированный интерфейс JTAG позволяет формировать отдельные тесты как библиотечные элементы и использовать их в разных проектах вне зависимости от применяемых микросхем с поддержкой JTAG.
И для тестирования и для программирования
JTAG часто применяется для программирования микросхем (ПЛИС) на плате в процессе производства. А если к программированию дополнительно добавить тестирование платы через так называемое пограничное сканирование (boundary scan), то получится существенно сэкономить время и упростить производство.
Использование на производстве тех же тестов, которые применялись при проектировании
Обычно для тестирования изделий на производстве применяется большое дорогостоящее оборудование. Всё, что требуется для применения пограничного сканирования (boundary scan) через JTAG – это контроллер XJLink, размерами сопоставимый с компьютерной мышью.
Удобная диагностика неисправностей
Пограничное сканирование (boundary scan) через JTAG, в отличие от специально разработанных функциональных тестов, позволяет получать информацию о точном месте возникновения неисправности, что очень помогает при восстановлении платы. А применение системы XJTAG ещё и позволяет визуализировать место неисправности на плате и указать точное место в принципиальной схеме.
Восстановление нерабочих плат, где функциональные тесты бессильны
Пограничное сканирование (boundary scan) через JTAG можно использовать на плате, где не работает ничего, кроме самого JTAG интерфейса. Если плата не включается, то провести традиционные функциональные тесты не получится. Простейшая неисправность в таких элементах на плате, как память или генератор синхросигнала не позволят применить функциональный тест, но легко обнаруживается при помощи JTAG.
Ещё статьи
Концепция применения JTAG
Посмотрите, на что способен JTAG (Английский)
Источник: www.xjtag.com
Получение данных из мобильных устройств с помощью интерфейса отладки JTAG
В данной статье рассмотрен способ получения информации с мобильного устройства с использованием интерфейса отладки JTAG. Данный способ можно использовать в тех случаях, когда обычные методы извлечения информации из смартфона не работают.
Введение
Ранее мы рассказывали про методы снятия дампа памяти с мобильного телефона и его последующего анализа (статья «Снятие дампа памяти с мобильных устройств на Android»). Однако стандартные методы снятия дампа памяти не всегда помогают специалисту получить информацию с мобильного устройства. Это может быть вызвано следующими причинами:
- Устройство заблокировано паролем.
- Отсутствует возможность перевести мобильное устройство в режим для снятия дампа памяти.
- Некорректная работа операционной системы мобильного устройства или загрузчика.
- Повреждены компоненты мобильного устройства, отвечающие за взаимодействие пользователя с ним.
Поэтому одно из возможных решений проблемы — использовать сервисные разъемы на материнской плате мобильного устройства. JTAG — аппаратный интерфейс для прямой связи компьютера с материнской платой с помощью программаторов RIFF Box, Octopus и т. п. Стоит отметить, что некоторые программаторы создают дамп памяти мобильного устройства в собственном формате (отличном от RAW). В нашем случае мы связываем материнскую плату мобильного устройства с компьютером через программатор.
Пример использования программатора RIFF Box на мобильном устройстве SAMSUNG GT-i9100
Рисунок 1. Внешний вид программатора RIFF Box
Для получения дампа памяти мобильного устройства с помощью программатора RIFF Box потребуется:
- Подключить RIFF Box к компьютеру через USB-порт.
- Загрузить с официального сайта (http://www.jtagbox.com/category/jtag-downloads/) и установить RIFF JTAG менеджер.
- Запустить RIFF JTAG менеджер и зарегистрировать RIFF Box.
Рисунок 2. Интерфейс RIFF JTAG менеджера
- Загрузить драйвер и инструкцию для нашего мобильного устройства в RIFF JTAG менеджере.
После этого следуем инструкции, приведенной в RIFF JTAG менеджере:
- Разбираем мобильное устройство.
Рисунок 3. Материнская плата мобильного устройства
- Припаиваем шлейф и соединительные контакты к площадке RIFF JTAG Box.
Рисунок 4. Площадка RIFF JTAG Box
- Далее по схеме, приведенной в инструкции, припаиваем соединительные контакты к мобильному устройству.
Рисунок 5. Материнская плата мобильного устройства с обозначением распиновки
Рисунок 6. Материнская плата мобильного устройства, соединенная с площадкой RIFF JTAG Box
- Выбираем необходимую частоту и скорость чтения памяти мобильного устройства в RIFF JTAG менеджере и нажимаем «Старт». При этом на плату мобильного устройства должно подаваться питание.
Примечание: Чтение памяти мобильного устройства может занять значительное время, в нашем случае чтение 4Гб заняло 26 часов.
- После получения файла-образа в формате .bin анализируем его в программах, таких как: UFS Explorer, R-Studio, UFED Physical Analyzer, BelkaSoft, «Мобильный Криминалист» и т. п.
Стоит отметить, что «Мобильный Криминалист» поддерживает полный разбор образа устройств на Android и Windows Phone, сделанный с помощью JTAG. Загрузив образ через пункт меню «Импорт файла», вы получаете весь набор данных от контактов, SMS, звонков и файлов до паролей, приложений и удаленных данных.
Рисунок 7. Интерфейс программы «Мобильный Криминалист»
Инструкция на английском языке для восстановления мобильного устройства SAMSUNG GT-i9100, приведенная в RIFF JTAG менеджере
Samsung I9105 is based on the Broadcom BCM28145 Processor (Cortex-A9 Dual-Core). JTAG pads are very small; professional experience in soldering is required to connect wires to the JTAG interface.
Note, one simple way to connect over JTAG — connect USB cable to PC and insert battery. In this case phone is automatically powered on.
To resurrect Samsung I9105:
- Solder JTAG cable to Samsung I9105 JTAG pads.
- Connect USB cable to phone and PC.
- Insert battery.
- Make sure Samsung I9105 is selected in the list of models.
- Make sure a fixed TCK frequency is selected.
- Click Resurrect button.
- Wait for software to complete operation successfully.
- Disconnect USB cable, de-solder JTAG wires.
Now phone is in bootable condition, that is, even if it does not start up normally, you can flash it using original Samsung downloader software to restore it to the working state.
To enter download mode:
- Disconnect PC cable.
- Insert battery.
- Hold both ‘Volume Down’ and ‘Home’ keys and press Power-On.
Most common errors:
- The NRST signal is not connected. Pease ALWAYS SOLDER THE NRST SIGNAL whenever it is present on the schematics. In case you have JIG please make sure NRST is routed, if not — solder wire manually.
- Connection is unstable or cannot be established at all. Please make sure JTAG wires are of the SAME LENGTH and total length of each wire not exceeds ~10. 15 cm; make sure a fixed TCK frequency is selected (since device has no RTCK signal).
Выводы
В данной статье кратко описан способ использования интерфейса отладки на примере мобильного устройства. Применение этого метода позволит специалисту получать информацию с мобильного устройства в случае если традиционные методы не сработали.
Однако стоит отметить, что данный способ получения данных не является универсальным, поскольку специалистам зачастую приходится сталкиваться с мобильными устройствами, которые имеют сильные повреждения материнской платы, например, в случае теплового воздействия.
Рисунок 8. Мобильный телефон после сильного теплового воздействия
В связи с этим специалист должен также уметь извлекать информацию напрямую из микросхем c помощью метода Chip-off — на ней мы подробно остановимся позже.
Источник: www.anti-malware.ru