Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Быстрй USB JTAG интерфейс
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Страницы: 1, 2
Dainis
Macraigor has introduced a tiny full-speed JTAG (IEEE Standard 1149.1) or BDM (background debug mode) debugger that essentially converts a JTAG header to a USB header.

h**p://linuxdevices.com/news/NS7199991898.html

and also
h**p://www.macraigor.com/usbDemon.htm

The usbDemon™ is a mid-cost interface used in the design, debug, and programming of microprocessor based embedded systems. One side of the usbDemon interfaces to the USB port of a host IBM compatible PC and the other side connects to an OCD (On-Chip Debug) port of the target system. This port may be JTAG, E-JTAG, OnCE, COP, BDM, or any of several other types of connections.


Иследование jtag_usb.dll от Macraigor Systems OCD Commander,
дало результать што Macraigor fast USB JTAG interface использует FT2232 чип .....

Очень заманчиво сделать клон usbDemon™.
IgorKossak
Схема у Демона тупая как Вигглер или с МК?
Если у кого есть, было бы неплохо обнародовать, а там и за клоном дело не станет.
Dainis
Посмотры на фотографии, там только FT2232C, 6MHz кварц, 2 транзыстора ( ???) .....
Подключение для JTAG стандартных сигналов (TDI, TDO, TMS, TCK) ясно, вопрос только об Reset (nTRST, nSRST) ?
Используется ли EEPROM (USB config) ?
SergM
EEPROM, думаю (и практически уверен в этом), можно и не использовать. А весь "интеллект" Macraigor fast USB JTAG interface и ему подобных, упрятан в совте, который "крутится" на персоналке. Ничего сложного в том, чтобы сделать подобное нет.
Dainis
Главное штоб софт Macraigora его признал родным ...
IgorKossak
Цитата(SergM @ Oct 5 2004, 07:27 PM)
EEPROM, думаю (и практически уверен в этом), можно и не использовать.

Есть подозрения, что не всё так просто. В руководстве на USB чип по поводу внешней EEPROM сказано: "The external EEPROM can also be used to customise the USB VID, PID, Serial Number, Product Description Strings and Power Descriptor value of the FT2232C for OEM applications."
Похоже, что не зря она там стоит. Хотя, может быть, в неё записываются настройки.
Во всяком случае, можно проверить на макетке, чтобы быть уверенным, а потом уже и клонировать.
one_man_show
SerialEEPROM можно считать, если владелец платки пожелает приподнять пару ее ног и подсоединить какой-нибудь МК для считывания.
IgorKossak
Цитата(one_man_show @ Oct 21 2004, 06:23 PM)
SerialEEPROM можно считать, если владелей платки пожелает приподнять пару ее ног и подсоединить какой-нибудь МК для считывания.

Её можно считать даже программными средствами через тот же USB.
У производителя по-моему для этого есть программа, и даже в исходниках.
Dainis
http://www.ftdichip.com/FTProject.htm

*** NEW 3rd October 2004 ***
USB to JTAG Bus Interface - Sample Project

Overview

This example project for the FT2232C demonstrates how to use the devices Multi-Protocol synchronous Serial Engine (MPSSE) to make a USB to JTAG bus interface. The executable application and full project code (in Delphi) are provided.

Requirements

This project is designed to run on Windows 2000 or Windows XP and requires FTDI?s FT2232C drivers to be installed

To download the Project documentation and schematics in Adobe Acrobat PDF format, http://www.ftdichip.com/projects/FT2232C-Proj03.pdf

To download the Delphi source code for the application, http://www.ftdichip.com/projects/FT2232C-Proj03_JTAGExam.zip
one_man_show
Замечательный материал. Так может быть это оно самое и есть. Кто-нибудь пробовал это оценить?
SergM
Цитата(one_man_show @ Oct 21 2004, 06:23 PM)
SerialEEPROM можно считать, если владелец платки пожелает приподнять пару ее ног...

Для EEPROM, работающих в паре с чипами от FTDI, можно не утруждать себя "подъемом" её ног. Содержимое памяти прекрасно читается, пишется и стирается самим FTDI-шным чипом, с помощью свободно распространяемого FTDI программатора. Когда я возился с IC от FTDI эта программка называлась "MProg v2.0" (Multi Device EEPROM Programmer).

PS.: Прошу прощения, IgorKossak уже говорил об этом. Просто не досмотрел топик до конца.
gcc-user
Цитата
Посмотры на фотографии, там только FT2232C, 6MHz кварц, 2 транзыстора ( ???) .....
Подключение для JTAG стандартных сигналов (TDI, TDO, TMS, TCK) ясно, вопрос только об Reset (nTRST, nSRST) ?
Используется ли EEPROM (USB config) ?


А где бы посмотреть эти фотографии?
Dainis
Цитата(gcc-user @ Nov 10 2004, 10:05 PM)
Цитата
Посмотры на фотографии, там только FT2232C, 6MHz кварц, 2 транзыстора ( ???) .....
Подключение для JTAG стандартных сигналов (TDI, TDO, TMS, TCK) ясно, вопрос только об Reset (nTRST, nSRST) ?
Используется ли EEPROM (USB config) ?


А где бы посмотреть эти фотографии?

http://linuxdevices.com/news/NS7199991898.html
undi
И все же, стоит там EEPROM или нет? На фото ее вроде не видно. Попробую найти время, да собрать штукенцию...
Dainis
Цитата(undi @ Nov 12 2004, 10:29 AM)
И все же, стоит там EEPROM или нет? На фото ее вроде не видно. Попробую найти время, да собрать штукенцию...

EEPROM стоит там на низней стороне PCB, это видно по проводникам и по тому што изменени VID & PID в INF фаиле.
%USB\VID_08AC&PID_1025&MI_00.DeviceDesc%=usbDemon.Dev, USB\VID_08AC&PID_1025&MI_00
%USB\VID_08AC&PID_1025&MI_01.DeviceDesc%=usbDemon.Dev, USB\VID_08AC&PID_1025&MI_01
IgorKossak
Цитата(Dainis @ Nov 12 2004, 06:03 PM)
Цитата(undi @ Nov 12 2004, 10:29 AM)
И все же, стоит там EEPROM или нет? На фото ее вроде не видно. Попробую найти время, да собрать штукенцию...

EEPROM стоит там на низней стороне PCB, это видно по проводникам и по тому што изменени VID & PID в INF фаиле.
%USB\VID_08AC&PID_1025&MI_00.DeviceDesc%=usbDemon.Dev, USB\VID_08AC&PID_1025&MI_00
%USB\VID_08AC&PID_1025&MI_01.DeviceDesc%=usbDemon.Dev, USB\VID_08AC&PID_1025&MI_01

Ну так прописАть в EEPROM эти VID и PID и дело с концом! cheers.gif
Make_Pic
Дык может тот, кто счастливый обладатель этого USB-JTAG адаптера забабахает схему и считает прошивку на благо общесва?
Dainis
Цитата(IgorKossak @ Nov 12 2004, 08:17 PM)
Цитата(Dainis @ Nov 12 2004, 06:03 PM)

EEPROM стоит там на низней стороне PCB, это видно по проводникам и по тому што изменени VID & PID  в INF фаиле.
%USB\VID_08AC&PID_1025&MI_00.DeviceDesc%=usbDemon.Dev, USB\VID_08AC&PID_1025&MI_00
%USB\VID_08AC&PID_1025&MI_01.DeviceDesc%=usbDemon.Dev, USB\VID_08AC&PID_1025&MI_01

Ну так прописАть в EEPROM эти VID и PID и дело с концом! cheers.gif

Я тоже хочу сделать макет, но нехватает времени sad.gif
Пока неясно, как подклучены RESET (/RESET, /TRST ) сигналы, похоже што там стоит 1G ,буферные елементы типа 74LVC1G125 (74LVC1G126) ....
Make_Pic
Цитата(Dainis @ Nov 13 2004, 12:27 AM)
Я тоже хочу сделать макет, но нехватает времени sad.gif
Пока неясно, как подклучены RESET (/RESET, /TRST ) сигналы, похоже што там стоит 1G ,буферные елементы типа 74LVC1G125 (74LVC1G126) ....

Сделай pls крупные фотки цифровым фотиком, а если есть набросок схемки то еще лучше - забрось мне на мыло - я разберусь и опубликую здесь результат.
undi
А мож скинуться по соточке-двухсоточке в каком нибудь формате, да приобрести один девайс для проведения лоботомии?
Dainis
Цитата(Make_Pic @ Nov 13 2004, 09:15 AM)
Сделай pls крупные фотки цифровым фотиком, а если есть набросок схемки то еще лучше - забрось мне на мыло - я разберусь и опубликую здесь результат.

Нету у меня его, если бы бил ......
Думаю, што придотся пробовать методом "научного тыка" .....
IgorKossak
Цитата(Dainis @ Nov 13 2004, 12:27 AM)
...
Пока неясно, как подклучены RESET (/RESET, /TRST ) сигналы, похоже што там стоит 1G ,буферные елементы типа 74LVC1G125 (74LVC1G126) ....

Может кто нибудь сможет это определить расковыряв драйвер, в частности команды, посылаемые в USB?
ig_z
При usbDemon нужно учесть, что в еепром зашивается серийный номер. А на его основе генерится лицензионный код. Типа слепили "защиту" smile.gif
Так что помимо схемы и прошивки еепром нужно иметь и этот код, или отучать драйвер usbDemon
Dainis
Цитата(ig_z @ Nov 16 2004, 01:19 PM)
При usbDemon нужно учесть, что в еепром зашивается серийный номер. А на его основе генерится лицензионный код. Типа слепили "защиту" smile.gif
Так что помимо схемы и прошивки еепром нужно иметь и этот код, или отучать драйвер usbDemon

Серийный номер для чего ? Для защити самового usbDemon ???
Откуда такая информация ?
ig_z
Цитата
Серийный номер для чего ? Для защити самового usbDemon ???
Откуда такая информация ?


Информация предположительная, навеяна созерцанием "usbDemon Finder".
Если я еще правильно соображаю, то этот "usbDemon Finder"
1. вычитывает серийный номер usbDemon.
2. принимает License Code
3. Прописывает что-то (типа некоего кода), куда - то (вероятнее всего в реестр).
4. Драйвер usbDemon либо работает на нас smile.gif, либо на макрегора (выпрашивая 700 уе)

Сам usbDemon похоже защитить не смогли, еепром вычитывается утилитой. Поэтому, судя по всему, привязывают драйвер к железу.
Единственное, что хочется пожелать себе, чтобы при генерации License Code не привязывались к железу, иначе нужно будет ломать драйвер или изобретать License генератор.
Dainis
Цитата(ig_z @ Nov 18 2004, 01:08 PM)
Информация предположительная, навеяна созерцанием "usbDemon Finder".
Если я еще правильно соображаю, то этот "usbDemon Finder"
1. вычитывает серийный номер usbDemon.
2. принимает License Code
3. Прописывает что-то (типа некоего кода), куда - то (вероятнее всего в реестр).
4. Драйвер usbDemon либо работает на нас smile.gif, либо на макрегора (выпрашивая 700 уе)

Сам usbDemon похоже защитить не смогли, еепром вычитывается утилитой. Поэтому, судя по всему, привязывают драйвер к железу.
Единственное, что хочется пожелать себе, чтобы при генерации License Code не привязывались к железу, иначе нужно будет ломать драйвер или изобретать License генератор.

Да, usbDemon_Finder я не запускал .....
Непорадовала эта новость sad.gif
Dainis
Наверно нужно найти EEPROM dump от рабочего usbDemon.
Самоделка распазноется usbDemon.sys, но не находится usbDemon_Finder и Flash programmer ...


p.s.
Тоже нужен keygen or fix for Macraigor "Targetaccess" ююююю
alexf
Цитата(IgorKossak @ Nov 15 2004, 01:13)
Цитата(Dainis @ Nov 13 2004, 12:27 AM)
...
Пока неясно, как подклучены RESET (/RESET, /TRST ) сигналы, похоже што там стоит 1G ,буферные елементы типа 74LVC1G125 (74LVC1G126) ....

Может кто нибудь сможет это определить расковыряв драйвер, в частности команды, посылаемые в USB?
*




У меня есть прога SniffUSB - она показывает все пакеты на и от USB устройства. Она есть где то на сети. Могу закинуть на FTP если будет доступ.
v_shamaev
Есть предложение - строить мост с двух сторон. Если этот usbDemon для общения с отладчиком использует тот же протокол, что и в своем OCDemon - т.е. GDB RSP, то не составит большого труда реализовать этот протокол - тем более, что большая часть
работы уже сделана - было несколько попыток сдклать это с вигглером, но из-за тормознутости последнего - ни одна не доведена до конца (я имею ввиду под Linux),
если не считать виндовую реализацию самим макрегором - но эту в счет можно не брать, т.к.
опубликованный ранний открытый вариант не полон и не работает, а тот что работает - исходники не доступны. Есть попытка повторить, и оно почти уже работает - я пробовал собирать, дышит, но зависает и тормозит - это pppcb - http://www.s.netic.de/tmohr/pppcb-0.10.0.tar.gz.

Если кто-нибудь разбирался с JTAG-ом на FT2232C - не мог мы он меня ткнуть носом в то место в джокументации, где описывается реализация этого самого JTAG-а
emerg_reanimator
Цитата
Если кто-нибудь разбирался с JTAG-ом на FT2232C - не мог мы он меня ткнуть носом в то место в джокументации, где описывается реализация этого самого JTAG-а


Выбор режима делает драйвер. Функция FT_SetBitMode () описана в документе
AN2232C-02 BIT MODE FUNCTIONS FOR THE FT2232C.

Я не пользуюсь этой МКС, но идея имет USB адаптер мне нравиться.

Соответствующая документация есть на сайте.
v_shamaev
Сел вчера плотно за это дело - поставил (точнее реанимировал kylix), загрузил исходники
из примера - обнаружилось не слишком приятное открытие java script:emoticon(':smile3046:')- оказывается, JTAG-ом как таковым никто не занимается в этой микросхеме, а имеем паралельный порт, подключенный
через USB к компьютеру, и JTAG получается чисто программным путем из нескольких выводов этого порта - как и wiggler. Кстати, в указанных исходниках функции нижнего уровня так и именуются - wiggler_do_tms и wiggler_move_state java script:emoticon(':excl:')

Одно греет - у макрегора получилась на этом девайсе скорость существенно выше,
чем у wiggler-а, так что смысл у затеи есть - да так оно и проще, можно для начала
переделать утилитки по заливу флеша, они сносно через обычный вигглер работают, а
там будет понятно.
Make_Pic
Цитата(v_shamaev @ Jan 17 2005, 19:26)
Сел вчера плотно за это дело - поставил (точнее реанимировал kylix), загрузил исходники
...чем у wiggler-а, так что смысл у затеи есть - да так оно и проще, можно для начала
...
переделать утилитки по заливу флеша, они сносно через обычный вигглер работают, а
там будет понятно.
*


Ну и как - есть хорошие новости?
IgorKossak
Цитата(Make_Pic @ Jan 28 2005, 18:51)
Ну и как - есть хорошие новости?
*

Шъёрт побьери!!! Уже третья страница angry.gif , а воз и ныне там!
Вот разозлюсь и напрягу шефа на покупку фирменного дивайса, а потом сдеру всё тупо и выложу публично, чтобы специалистам стыдно стало. twak.gif
v_shamaev
Ну где воз - это смотря откуда мерять. Докладаю подробно.
1. "Чип и Дип" Воронежский с FT2232C меня развел - почти две недели назад позвонил им,
спросил - есть
- "Нету, но на заказ привезем."
Позвонить, или вы позвоните?
- "Нет, приезжайте в следующую пятницу, привезем"

Приезжаю в пятницу - как раз неделю назад - "Нету и не бывает, не проходят такие"
В общем, пришлось в ЭФО Питерском заказать, там они кстати и дешевле вдвое против того, что с меня Дип с Чипом запросили. Но пришлют только недели через две - и то
обходными путями, через курьера быстро, но накладно.

2. Пока железячные дела - решил с софтом поразбиратся: под Kylix-ом пример собрался,
и даже запускается - только подключат пока нечего. Да и не решает он проблемы -
только реализация низкоуровневых функций JTAG-а, а мне под Linux-ом необходим
драйвер - конвертор, что бы с одной стороны GDB, а с другой - ARM.

Поразбирался с pppcb 0.10 - я раньше с версией 0.7 возился, подкрутил его под вигглера,
собрал - работает, но страшно медленно, и похоже, не все функции реализует - во всяком случае, отладчик у меня ругается когда пытаюсь многонитевую отладку запустить -
говорит, не может получить информации. Поэтому паралелльно еще занялся jelie-ей - это
вполне то что надо, но для PXA. Так вот, там есть три варианта подключения JTAG-а - через вигглер (или через Alter-овский вариант), и два USB-ишных - ezUSB и an2135, исходники прошивок тоже присутствуют. Поинтересовался еще китайцем - но там исходники отсутсвуют, линуксовый вариант баньяна немедленно в кору выпадает, и схем/ прошивок для USB не нашел.
IgorKossak
Цитата(v_shamaev @ Jan 28 2005, 20:17)
..  и два USB-ишных - ezUSB и an2135, исходники прошивок тоже присутствуют...
*

Это уже интересно. Наведите поточнее, пожалуйста (ссылочки, если можно или я что-то пропустил).
v_shamaev
Большого интереса оги не представляют - основная обработка идет в самлй jelie, а через
USB - только подключение самого JTAG-а - есть набор команд низкого уровня, идут по USB, их и отрабатывет контроллер.
Dainis
Плохие новости ......

Bad news about usbDemon clonning......

usbDemon for hardware protection using DS2432 chip
1kb Protected 1-Wire EEPROM with SHA-1 Engine

http://www.maxim-ic.com/quick_view2.cfm/qv_pk/2914
http://pdfserv.maxim-ic.com/en/ds/DS2432.pdf

White Paper 3: Why are 1-Wire SHA-1 Devices Secure?
http://www.maxim-ic.com/appnotes.cfm/appnote_number/1098


Other hardware not problem to build.
One way to for protectection removing, is patching jtag_usb.dll file .....
george_rootman
Цитата(Dainis @ Feb 2 2005, 03:00)
Плохие новости ......

Bad news about usbDemon clonning......

usbDemon for hardware protection using DS2432 chip
1kb Protected 1-Wire EEPROM with SHA-1 Engine

К каким ногам FT2232C подцеплен DS2432
Dainis
Цитата(george_rootman @ Feb 2 2005, 14:52)
К каким ногам FT2232C подцеплен DS2432
*



Data in ( FT2232C) BDBUS1 pin. 39 and rezistor to +5V
Data out via SN74LVC2G07 ( as buffer with open colector) BDBUS0 pin. 40

От DS2432 читается сериал нумбер.
one_man_show
Значит серийник можно считать с фирменного девайса и размножить. Осталось узнать, у кого есть фирменный.
Dainis
Цитата(one_man_show @ Feb 5 2005, 15:29)
Значит серийник можно считать с фирменного девайса и размножить. Осталось узнать, у кого есть фирменный.
*


Есть подозрение, щто не будет так просто:
1kb Protected 1-Wire EEPROM with SHA-1 Engine

White Paper 3: Why are 1-Wire SHA-1 Devices Secure?
http://www.maxim-ic.com/appnotes.cfm/appnote_number/1098
IgorKossak
Цитата(one_man_show @ Feb 5 2005, 15:29)
Значит серийник можно считать с фирменного девайса и размножить. Осталось узнать, у кого есть фирменный.
*

Не знаю как здесь, но в подобных случаях кодовая посылка (коих вариантов великое множество) от компьютера поступае в дивайс и слушается отклик. Подслушивание одного из вариантов ничего не даст.
Взламывание алгоритма также ничего не даст, т. к. ключ (находящийся внутри EEPROM) не известен.
IgorKossak
Не вижу другого способа обойти проблему кроме как найти в драйвере место, где осуществляются секретные общения компьютера с дивайсом и обойти их.
То, что ребята защитились, не вызывает сомнений. Иначе зачем продавать за $750 дивайс, себестоимость которого $10, а красная цена $50?
afe
Цитата(undi @ Nov 12 2004, 09:29)
И все же, стоит там EEPROM или нет? На фото ее вроде не видно. Попробую найти время, да собрать штукенцию...
*


Похоже стоит, на фото внизу U1 ...
Dainis
Scan from original usbDemon.
Velund
Цитата(Dainis @ Feb 6 2005, 00:45)
Цитата(one_man_show @ Feb 5 2005, 15:29)
Значит серийник можно считать с фирменного девайса и размножить. Осталось узнать, у кого есть фирменный.
*


Есть подозрение, щто не будет так просто:
1kb Protected 1-Wire EEPROM with SHA-1 Engine

White Paper 3: Why are 1-Wire SHA-1 Devices Secure?
http://www.maxim-ic.com/appnotes.cfm/appnote_number/1098
*




Бегло просмотрев этот документ, я понял что основная защита - от желающих по простому скопировать этот 1-Wire девайс. А вот от копания с другой стороны они предлагают защищаться используя secure microcontroller в считке. ;-)

Если есть пара challenge-responce от кристалла, значит должна быть вторая реализация SHA, которая собственно должна породить ту же пару для сверки. 8-) Если это в драйвере - то от защищенности самого кристалла нет никакого проку. ;-) Второй алгоритм должен иметь тот же ключ, иначе никакой сверки не получится. Ключ может быть производной от серийного номера, кстати, иначе пришлось бы в драйвере базу валидных ключей держать.

Вариант 2 - Макгрегор купил коробку этих 1-wire и забил в драйвер диапазон их серийников. А с ключом они крутят как хотят, чуть ли не произвольно его генерируя от серийника, лишь бы убедиться что это именно тот чип и именно из той коробки. ;-)

Может я чего то конечно недосмотрел... Тогда поправьте меня... ;-)
vm1
А Вы что не видете: на U1 написано 93LCx6 майкрочип?
Velund
Цитата(vm1 @ May 20 2005, 19:50)
А Вы что не видете: на U1 написано 93LCx6 майкрочип?
*


Это написано на U4. 8-) И по моему 93LC46B.

U1 - так это вообще FTDI. А о чем судя по всему речь, это U2, 6-ногий чип в характерном корпусе, направо от EEPROM после мелкой 6-ножки в SOT-23 (или как там этот корпус по модному зовется) - видимо U3 к ней относится.
iit
Народ, сколько вы уже шары катаете по поводу этого быстрого УСБ ЖТАГА? По-моему, если взять использованные всеми человеко-часы, то уже можно было свой ЖТАГ замастырить.
Make_Pic
Цитата(iit @ May 24 2005, 05:38)
Народ, сколько вы уже шары катаете по поводу этого быстрого УСБ ЖТАГА? По-моему, если взять использованные всеми человеко-часы, то уже можно было свой ЖТАГ замастырить.
*


Это уж точно!!! Напоминает Топик на электроде по цифровому осциллографу, начали обсуждать 4 года назад, а воз и ныне там, до сих пор обсуждают.

Просто у кого есть USB JTAG - или нет времени или нет желания или нет знаний!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.