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

 
 
> Время отклика USB-устройства....
qqqqqq
сообщение Oct 16 2007, 10:26
Сообщение #1


Участник
*

Группа: Свой
Сообщений: 65
Регистрация: 17-01-06
Пользователь №: 13 277



Померял время между отправкой одного bulk-пакета и приёмом другого. Получил в среднем 40мс.
Что-то не этого я ожидал от HS USB.
Длина пакетов была 10 байт. Драйвер CYUSB, микросхема CY7C68001, на выходе которой стоит CPLD, разворачивающая приходящий пакет, инвертируя его, в синхронном режиме на скорости 48МГц 8бит.

Как бы сократить это время раз этак в 40тысяч?...
Похоже, где-то я действую неправильно...
В интернете ничего на данную тему найти не смог, кроме упоминаний, что "USB response time is unacceptably slow". Неужели этого и добивались разработчики данной шины?
Даже не верится...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
AndreyS
сообщение Oct 29 2007, 19:53
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 235
Регистрация: 28-01-05
Из: Санкт-Петербург
Пользователь №: 2 276



Добрый день.


После прочтения топика, хочется вставить свою лепту в истории smile.gif

Юзаем исключительно EzUSB. Все реализованно на потоках и с использованем внутренних семафоров.
Про запуск сначала вычитки до записи - сущая правда (иначе виснит, про ABORT PIPE помнится на третьй аборт в синий вылетает винда из-за драйвера. Так что лучший аборт для оного устройства - это все же вернуть данные в запрошенный пайп).

Юзать рекомендую только по потокам (иначе подвесите всю систему как два пальца).

Сейчас тестим всю систему на двухядерных машинах и быть может (повторю быть может) именно из-за второго ядра (вернее болльше одного) происходят глюки (иногда драйвер виснит, как будто в пайпе нет данных и соответственно виснит вся винда). До этого открутились несколько лет на одноядерных и с нашей DLL и прошивкой все работало нормально (параллельно я уже по этому поводу тут спрашивал). Кто-нибудь на двухядерных крутил дивайс???

По поводу EzUSB, натолкнулись на то что дебаговая версия жрет кучу процессорного времени (а оно на вес золота). По сему работаем исключительно с free.

Вообще драйвером я доволен, а чего им быть не довольным - он ПРОСТОЙ. Все в ваших руках. У нас достаточно глубокая обратная связь в системе, по этому о латентности ничего сказать немогу. Единственное что интересно кто как решает проблему передачи?? Мне пришлось завести в железке таймер по которому в тото же пайп кидается спец пакет. Дабы не завесить поток на вычитку. Ну нехотел я заводить второй канал для проверки наличия данных да еще на интеррапт. Да и буфер у нас для сих вещей маловат. А входной поток большой (ну не дикий, но большой для такого буфера и всяких там паралельных задачь).

А какой буфер используют господа?? Ну так чтобы данные не потерялись и при условии то данные на вход Cypress остановить нельзя.

Вот пожалуй и все. smile.gif

Удачи.


--------------------
Удачи.
Go to the top of the page
 
+Quote Post
Седой
сообщение Oct 30 2007, 10:10
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 244
Регистрация: 21-02-05
Из: Урал
Пользователь №: 2 806



Цитата
По поводу EzUSB, натолкнулись на то что дебаговая версия жрет кучу процессорного времени (а оно на вес золота). По сему работаем исключительно с free.

Это для всех драйверов так.
EzUsb - отличный пример драйвера c исходниками , тем более есть исходники для DriverStudio.
Использовали при разработке своих.

Цитата
Сейчас тестим всю систему на двухядерных машинах и быть может (повторю быть может) именно из-за второго ядра (вернее болльше одного) происходят глюки (иногда драйвер виснит, как будто в пайпе нет данных и соответственно виснит вся винда). До этого открутились несколько лет на одноядерных и с нашей DLL и прошивкой все работало нормально (параллельно я уже по этому поводу тут спрашивал).

Проблема еще та. Дело в том, что Microsoft довольно смутно ( даже мутно) документирует свой планировщик потоков. Для однопроцессорной системы некоторые вещи проходили - забыл поставить SpinLock на возможно разделяемых данных и черт с ним, на многопроцессорной системе это уже не прокатывает. Много ли было раньше у разработчиков драйверов доступных для для теста многопроцессорных машин?

Цитата
Единственное что интересно кто как решает проблему передачи?? Мне пришлось завести в железке таймер по которому в тото же пайп кидается спец пакет. Дабы не завесить поток на вычитку. Ну нехотел я заводить второй канал для проверки наличия данных да еще на интеррапт. Да и буфер у нас для сих вещей маловат. А входной поток большой (ну не дикий, но большой для такого буфера и всяких там паралельных задачь).


Посмотрите в исходнике того же EzUsb (лучше из DriverStudio, в нем нагляднее) на реализацию поллинга Interrupt Ep. Сделайте похожее для считываения во внутренний буфер драйвера для Bulk. Буфер сделайте побольше. А из приложения через DeviceIoControl считывание данных из него (см. исходник serial.sys в том же DDK или DriverStudio). И не будете связываться с потоками. У вас получится постоянно готовый для приема из устройства канал передачи данных. Если есть данные - устройство пишет их в него, нет - пишет пакет нулевой длины.

Сообщение отредактировал Седой - Oct 30 2007, 10:11
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- qqqqqq   Время отклика USB-устройства....   Oct 16 2007, 10:26
- - VDG   Цитата(qqqqqq @ Oct 16 2007, 14:26) Неуже...   Oct 16 2007, 12:51
- - Oldring   Цитата(qqqqqq @ Oct 16 2007, 14:26) Помер...   Oct 16 2007, 13:10
|- - qqqqqq   Цитата(Oldring @ Oct 16 2007, 19:10) По м...   Oct 16 2007, 14:08
|- - Oldring   Цитата(qqqqqq @ Oct 16 2007, 18:08) Менят...   Oct 16 2007, 14:14
||- - qqqqqq   Цитата(Oldring @ Oct 16 2007, 20:14) inte...   Oct 16 2007, 14:32
|- - blackfin   Цитата(qqqqqq @ Oct 16 2007, 18:08) Специ...   Oct 20 2007, 15:13
- - qqqqqq   Возникло у меня тут предположение одно.... Если п...   Oct 17 2007, 15:22
- - oran-be   Чего то как то совсем непонятно.... У шины время к...   Oct 20 2007, 11:09
|- - Oldring   Цитата(oran-be @ Oct 20 2007, 15:09)...   Oct 20 2007, 17:34
||- - Седой   Цитата(Oldring @ Oct 20 2007, 23:34) Вопр...   Oct 21 2007, 10:59
||- - Oldring   Цитата(Седой @ Oct 21 2007, 14:59) Давайт...   Oct 22 2007, 06:25
||- - Седой   Цитата(Oldring @ Oct 22 2007, 12:25) И ка...   Oct 23 2007, 12:50
||- - Oldring   Цитата(Седой @ Oct 23 2007, 16:50) Я уже ...   Oct 23 2007, 13:32
||- - Седой   Цитата(Oldring @ Oct 23 2007, 19:32) До с...   Oct 23 2007, 13:48
||- - Oldring   Цитата(Седой @ Oct 23 2007, 17:48) Если в...   Oct 23 2007, 14:20
||- - Седой   Цитата(Oldring @ Oct 23 2007, 20:20) помо...   Oct 23 2007, 15:10
|- - qqqqqq   Цитата(oran-be @ Oct 20 2007, 17:09)...   Oct 23 2007, 16:00
|- - Седой   Цитата(qqqqqq @ Oct 23 2007, 22:00) Получ...   Oct 24 2007, 05:23
|- - qqqqqq   Цитата(Седой @ Oct 24 2007, 11:23) Все пр...   Oct 24 2007, 07:03
|- - Седой   Цитата(qqqqqq @ Oct 24 2007, 13:03) Непон...   Oct 24 2007, 08:33
|- - qqqqqq   Цитата(Седой @ Oct 24 2007, 14:33) PS. Ка...   Oct 24 2007, 09:01
|- - qqqqqq   Цитата(qqqqqq @ Oct 24 2007, 15:01) Попро...   Oct 26 2007, 09:45
|- - Седой   Цитата(qqqqqq @ Oct 26 2007, 15:45) Остал...   Oct 26 2007, 09:56
|- - qqqqqq   Цитата(Седой @ Oct 26 2007, 15:56) Для Ez...   Oct 26 2007, 14:10
|- - Седой   Цитата(qqqqqq @ Oct 26 2007, 20:10) Прове...   Oct 26 2007, 15:43
|- - qqqqqq   Цитата(Седой @ Oct 26 2007, 21:43) Судя п...   Oct 26 2007, 17:44
|- - aaarrr   Цитата(qqqqqq @ Oct 26 2007, 21:44) Я нав...   Oct 26 2007, 17:51
|- - Седой   Цитата(aaarrr @ Oct 26 2007, 23:51) Да, в...   Oct 27 2007, 04:31
- - Седой   ЦитатаВообще при таких скоростях самая большая про...   Oct 20 2007, 14:19
- - qqqqqq   Цитата(AndreyS @ Oct 30 2007, 00:53) Юзае...   Oct 31 2007, 20:51
- - Седой   Цитата(qqqqqq @ Nov 1 2007, 01:51) И ещё ...   Nov 1 2007, 15:11
- - AndreyS   ЦитатаПытаюсь пока обходиться одним абортом - дабы...   Nov 1 2007, 20:09
|- - Седой   Цитата(AndreyS @ Nov 2 2007, 01:09) А как...   Nov 2 2007, 06:59
|- - Oldring   Цитата(AndreyS @ Nov 1 2007, 23:09) PS. А...   Nov 2 2007, 11:46
|- - AndreyS   Цитата(Oldring @ Nov 2 2007, 15:46) ...   Nov 4 2007, 19:14
|- - Oldring   Цитата(AndreyS @ Nov 4 2007, 22:14) Катас...   Nov 4 2007, 20:26
|- - Седой   Цитата(AndreyS @ Nov 5 2007, 00:14) Спаси...   Nov 5 2007, 10:06
- - qqqqqq   Цитата(Седой @ Nov 1 2007, 20:11) IO-мана...   Nov 4 2007, 19:41


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

 


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


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