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

 
 
> ОС и USB, Проблема с задержками USB
MerQcio
сообщение Apr 14 2011, 18:36
Сообщение #1





Группа: Validating
Сообщений: 5
Регистрация: 20-11-10
Пользователь №: 61 038



Доброго времени суток! Буду очень признателен, если кто-то из сведущих поможет разобраться в вопросе: в чём может быть причина очень долгой отправки пакета от девайса к хосту? Т.е. - имеется девайс, которому с ПК через USB шлётся 2 байта, и после некоторых преобразований (довольно быстрых - 5-10 мкс), девайс записывает 2 байта в буфер своей IN-точки. ПК непрерывно ждёт ответа. Так вот этот буфер опустошается через 4-12 мс(!). Причём очень периодично: пакеты уходят со следующими паузами: 4мс-4мс-12мс-4мс-4мс-12мс... (смотрю осцилом). Если немного подождать, то бывают моменты, когда пакеты идут непрерывно, но тоже только через 4мс (такие моменты быстро пропадают и снова 4-4-12)... На всякий случай проверил ( wacko.gif ) - опросы хоста идут как и положено - через 1 мс. Других USB-устройств не подключено.
Вот такая беда. Операционка - МСВС, юзается LibUSB, используются потоки - всё, что могу сказать про сторону ПК (моя часть - девайс laughing.gif ). Может ли ненагруженная ОС приводить к таким задержкам? Или дело в кривизне рук программиста? Или ещё в чём?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
MerQcio
сообщение Apr 16 2011, 07:13
Сообщение #2





Группа: Validating
Сообщений: 5
Регистрация: 20-11-10
Пользователь №: 61 038



Цитата(sergeeff @ Apr 15 2011, 16:15) *
Если перейти на bulk, накопить приличную порцию на передачу и скинуть за раз, то можно ее совсем с другой скоростью передать, но задержка в начале отправки составит все те же 1-хх ms.

sergeeff, извините, я, видимо, ввёл вас в заблуждение неправильно (не до конца) сформулированным ТЗ rolleyes.gif
Моя железка - посередине между тестируемым устройством и ПК и обеспечивает их обмен. С устройством общаюсь по определённому протоколу с квитированием,т.е. после того, как оно мне что-то прислало, я должен быстро (~200мкс) отправить ему ответ. А ответ этот получаю от ПК. Поэтому накапливать запросы устройства я не могу.
И вообще, понял, что USB мне совсем не подходит,если времена ответа такие маленькие (о чём раньше думал?.. wacko.gif ).
kovigor: периодичность опроса конечно же 1мс, а то наверное вообще по полчаса ждал бы))
PS И всё-таки: время от помещения данных в буфер точки устройства до его(буфера) очищения при interrupt-передачах (а также любых других при свободной шине) в моём понимании от 1мс до 2мс. Я прав? Откуда же эти 4-12мс?.. Только если действительно пакеты "бьются"... Но это ж как надо биться))). Кабель и плата от Миландра, вроде бы качество должно присутствовать)
Ещё раз спасибо за ответы

Сообщение отредактировал MerQcio - Apr 16 2011, 07:18
Go to the top of the page
 
+Quote Post
kovigor
сообщение Apr 16 2011, 07:36
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295



Цитата(MerQcio @ Apr 16 2011, 10:13) *
Ещё раз спасибо за ответы


Если в буфере конечной точки лежат данные, то с приходом запроса они уходят в машину тут же. Т.е., варианта три. Либо у вас данные не попадают в буфер, когда нужно, либо нарушена последовательность пакетов ((нулевой->первый->нулевой, и т.д.). Ну или пакеты бьются. Очень советую одолжить у кого-то аппаратный сниффер или собрать его самому и посмотреть, что же реально делается на шине.
Go to the top of the page
 
+Quote Post



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

 


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


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