реклама на сайте
подробности

 
 
> Последовательность пакетов на USB, при подключении клавиатуры через хаб
PAB
сообщение Feb 1 2008, 09:42
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 86
Регистрация: 3-05-06
Пользователь №: 16 717



Есть такая ситуация: при подключении USB-клавиатуры через USB2.0 хаб к хост-контроллеру версии 1.1 клавиатура не работает (не проходит даже нумерация устройства); при прямом подключении клавиатуры к хост-контроллеру всё ОК. В книге "Universal Serial Bus System Architecture" прочитал, что при подключении USB2.0 хаба к 1.1 хост-контроллеру, хаб работает в full-speed mode (т.е. как 1.1 хаб): для передачи данных через хаб low-speed устройству (в моём случае это клавиатура) хост-контроллер должен перед каждым отправляемым пакетом выдавать преамбулу. Проверил это на логическом анализаторе - так оно и есть: преамбула -> token пакет -> преамбула -> пакет данных -> ожидание хэндшэйка от устройства. Но token пакет и пакет данных почему то через хаб не проходят (на upstream порте и преамбулы и пакеты есть, на downstream порте их уже нет crying.gif ). Соответственно устройство ничего не отвечает и запрос SetAddress не проходит. В чём может быть причина?????

P.S. флэшка через тот же хаб и с тем же хост-контроллером работает нормально
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
galjoen
сообщение Feb 1 2008, 12:59
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640



Цитата(PAB @ Feb 1 2008, 12:42) *
Проверил это на логическом анализаторе - так оно и есть: преамбула -> token пакет -> преамбула -> пакет данных -> ожидание хэндшэйка от устройства. Но token пакет и пакет данных почему то через хаб не проходят (на upstream порте и преамбулы и пакеты есть, на downstream порте их уже нет crying.gif ).

Вы уверены, что пакеты от хоста идут именно к устройству? М.б. это хост с хабом обменивается? Повесьте на обмен с хабом какой нибудь подглядыватель. Мне лично SnoopyPro нравится. Там всё видно будет.
Даже если клавиатурных запросов не увидите - всё равно понять, что хаб делает можно. В частности он должен говорить, что к нему устройство подцепилось.
Цитата(PAB @ Feb 1 2008, 12:42) *
Соответственно устройство ничего не отвечает и запрос SetAddress не проходит. В чём может быть причина?????

SetAddress это не первый запрос. До него по адресу=0 дескрипторы запрашиваются.
Go to the top of the page
 
+Quote Post
PAB
сообщение Feb 1 2008, 14:11
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 86
Регистрация: 3-05-06
Пользователь №: 16 717



Цитата(galjoen @ Feb 1 2008, 15:59) *
Вы уверены, что пакеты от хоста идут именно к устройству? М.б. это хост с хабом обменивается? Повесьте на обмен с хабом какой нибудь подглядыватель. Мне лично SnoopyPro нравится. Там всё видно будет.
Даже если клавиатурных запросов не увидите - всё равно понять, что хаб делает можно. В частности он должен говорить, что к нему устройство подцепилось.


Я уверен, что пакеты идут к low-speed устройству (поскольку они предваряются преамбулами). В моём случае только одно low-speed устройство - клавиатура. Программный анализатор протокола увы не удастся подцепить поскольку всё это хозяйство проверяется на машине, работающей под линуксом.
По поводу запроса SetAddress: я и не утверждаю, что это первый запрос к устройству; я говорю лишь о том, что ситуация, когда в хаб передаются пакеты с преамбулами и до клавиатуры эти пакеты не доходят, происходит при запросе SetAddress. Возможна ли ситуация, когда этот запрос является первым?
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 24th July 2025 - 09:49
Рейтинг@Mail.ru


Страница сгенерированна за 0.88085 секунд с 7
ELECTRONIX ©2004-2016