|
Захват обмена по USB |
|
|
|
Sep 5 2014, 12:27
|
Гуру
     
Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295

|
Цитата(WitFed @ Sep 5 2014, 15:18)  Когда треснуть мне Что я вам скажу ? Хоть осциллограф-то хороший, двухканальный, возьмите, и посмотрите, что там реально происходит на шине при втыкании вашего устройства. Так и происходит ? Т.е., никто, никому и ничего не передает ? Странно и более чем сомнительно.  Вообще, я вам по секрету признаюсь, что просто ненавижу использовать для отладки программистские инструменты там, где нужно пользоваться паяльником и осциллографом ...
|
|
|
|
|
Sep 8 2014, 09:22
|
Местный
  
Группа: Свой
Сообщений: 271
Регистрация: 6-12-11
Из: Taganrog
Пользователь №: 68 701

|
А у меня совершенно другая ориентация, у нас от отдела в радиусе 100 м нет никого "железного" и дружелюбного, осциллом пользоваться не умеют, тем более -- выдать и научить программиста кнопкам, переходник ловительный спаять... Про "ничего не происходит" я могу только догадываться -- когда я пускаю свою прогу, она интит себя как девайс, вешается на прервание от OTG-1, не видит на нём ничего. Как следом втыкаю кабель в хост -- начинается масса разных прерываний, они обрабатываются по смыслу родным драйвером Линукса, который я хочу заюзать в простом линейном/древесном приложении. Там бывают непустое приёмное ФИФО, пустое передаточное, резет на шине, ещё что-то... Как Вин7 меня решает "бросить", прерывания все заканчиваются, т.е. очень логично предположить, что канал "ко мне" очень даже неплохой, только я отвечаю криво. Драйвер у Линды вызывает функцию гаджета для обработки события запроса дескриптора девайса, там я подсовываю 18 байт из исходника флэшки для контроллера STM32, который вроде должен быть живой и давно висит на сайте, хотя и не гуглится в принципе (http://www.keil.com/download/docs/362.asp). В ФИФО ответное пытался писать и по 8, и сразу 20 байт (там в запросе стоит 100 байт на приёмный буфер), но разница не особо, хотя поведение Винды меняется -- видит она что-то явно. Пробовал сегодня agg-ПО -- слабое, "танцы" не ловит, мой девайс не показывает после всех "танцев" плохим, на хабе тоже пусто. ...Похоже, вы, kovigor, на всём постсоветском пространстве единственный доступный и реальный спец по USB ? Я послал в саппорт aggsoft.ru просьбу о доработке софта и возможной покупке, только когда будет ловиться всё абсолютно, мож отнесутся с сердечностью, всё ж наши люди... А пока сношу всё и жду у разбитого корыта, вдруг Золотая Рыбка подкинет какую мыслю... Оптимизм пока в крови, всё хочется свой USB написать на 2 порядка проще, для простого народа  Хорошо бы было "аппаратный" сниффер на софт-основе -- как я советовал в первом посте, чисто хаб с отводом нисходящего и восходящего трафика "налево", без избыточной аппаратной поддержки, или так оно в девайсах за 1.5К и есть ? Если пара устройств засекреченные, то хост может и не потерпеть посредников, но текущий случай тривиален. ...Вообще, можно ставить какой-то новый софт для USB, когда ещё не было перегрузки после удаления чего-то другого снифферного ? Они ж там драйвера из непонятных наблюдательных слоёв как-то хитро вырезают, а другой конкурент врезаться в потроха одновременно должен...
|
|
|
|
|
Sep 8 2014, 12:51
|
Гуру
     
Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295

|
Цитата(WitFed @ Sep 8 2014, 12:22)  ...Похоже, вы, kovigor, на всём постсоветском пространстве единственный доступный и реальный спец по USB ?
А пока сношу всё и жду у разбитого корыта, вдруг Золотая Рыбка подкинет какую мыслю...
Хорошо бы было "аппаратный" сниффер на софт-основе -- как я советовал в первом посте, чисто хаб с отводом нисходящего и восходящего трафика "налево", без избыточной аппаратной поддержки, или так оно в девайсах за 1.5К и есть ?
Если пара устройств засекреченные, то хост может и не потерпеть посредников, но текущий случай тривиален. 1. Далеко не единственный, хоть и вполне реальный  2. Вы просто не с того конца и не с тем инструментарием к проблеме подошли. Как вы и сами знаете, далеко не всякую болезнь может вылечить терапевт. Иногда необходима и помощь хирурга. Это как раз и есть тот случай. Я, конечно, не рыбка, и не золотая, но повторю свой совет - ищите человека, который поможет вам посмотреть осциллографом (или анализатором или даже сниффером), что в действительности происходит на шине при включении вашего устройства. Чисто программными инструментами искать причину проблемы можно до бесконечности. Про себя лично могу сказать, что без сниффера отлаживать свои устройства не смог бы, ибо он показывает то, чего не прочтешь ни в одной спецификации. 3. Без аппаратной поддержки задача, ИМХО, неразрешима. Подозреваю, что в снифферах за 1500 у.е. стоит заказной уникальный быстродействующий чип, который и захватывает обмен на шине. В моем случае с задачей справилась обычная FPGA, т.к. мне хватало FS (обмен на HS таким путем захватить не получится - слишком быстро). 4. У меня никаких посредников и не было. Сниффер подключался параллельно прямо к линиям шины и в режиме "магнитофона" записывал все, что на шине происходило ...
|
|
|
|
|
Sep 10 2014, 12:12
|
Местный
  
Группа: Свой
Сообщений: 271
Регистрация: 6-12-11
Из: Taganrog
Пользователь №: 68 701

|
Это всё хорошо, только неохота ввязываться в лишнюю сансару (в самом USB она зашита прочно, за видимой простотой -- мутные горы гемора, порождёнными желаниями авторов "всё организовать и возглавить", а по факту -- переусложнением, предусмотрением всех подушек безопасности, соответственно, заорганизацией и... в конце концов рождением OTG в пику Главной Идее  -- нечто за 1500 может оказаться недостаточно удобной, способной на что-то штукой, и т.д. к 3К, 10К.. Мож есть у кого в Таганроге такие девайсы на вынос на пару дней ? Я считаю твёрдо, что вполне можно подсмотреть, что же Винда там получает от хост-контроллера (это очень логично) на драйверных уровнях, и при совсем уж непонятках только лезть в физические дебри канальных уровней. Бой быков приостанавливаем ?  Тяжело пробиться, конечно, через стены корытных интересов и расставленные паутины для ловли лузеров типа меня. Оно понятно, что на коленке всё легче, но хочется из мира выудить хоть какую-то добропорядочность из-под гнетущих эгоистических интересов  Подсказали идею в Линуксе тем же самым заняться, там логи на всё (http://symmetrica.net/usb/usb1.htm) типа более родные, говорят, что wireshark 1.2 и выше умеет сниффить USB в Линде, но мой 1.8 почему-то на Винде это не демонстрирует, хотя как-то перенастраивается... Наши сниф-производители пишут "мы работаем с тем, что Win определила", так что пока не судьба. В http://microsin.ru/content/view/758/44/ ещё пара намёков на совсем другие программы: SnoopyPro-0.22 и USBTrace, покой нам только снится...  Я сам придумал недавно, что можно дождаться, пока Винда отбракует мой девайс, а потом выбрать его и послать пакет Get_Descriptor, только нужна программа, в которой девайс виден и умеющая слать пакеты, чтобы смогла словить обмены, но пока они все ортогональны в этих отношениях.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|