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

 
 
> как передать максимум данных по USB ?, с наибольшей скоростью!!!
NikP
сообщение Dec 15 2012, 17:57
Сообщение #1


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

Группа: Участник
Сообщений: 168
Регистрация: 25-08-05
Пользователь №: 7 944



В описании работы USB в режиме Bulk сказано, что макс. размер пакета 64 байта для этого режима. Мне надо передать 4 К данных. Так как данные передаются фреймами 1 мс, то получается, что на передачу 64 байтов уходит 2 мс (фрейм 1 мс - запрос от хоста, фрейм 1 мс - пакет данных), т.е. на 4096 байтов -128 мс. Другими словами, максимальная реальная скорость передачи данных - 32 К / сек. И это всё, что можно выжать из заявленных 12 Мбит/с для full speed? Явно что-то я не учёл, где ошибка, как на практике передавать данные с максимальной скоростью?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
NikP
сообщение Dec 20 2012, 16:42
Сообщение #2


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

Группа: Участник
Сообщений: 168
Регистрация: 25-08-05
Пользователь №: 7 944



=АК= Спасибо за науку: установили размер пакета 64 байта, сделали запрос 16К , убрали несколько косяков и передача пошла на хорошей скорости.
Go to the top of the page
 
+Quote Post
Ten04
сообщение Feb 20 2013, 10:59
Сообщение #3





Группа: Новичок
Сообщений: 3
Регистрация: 28-01-13
Пользователь №: 75 377



Цитата(NikP @ Dec 20 2012, 20:42) *
=АК= Спасибо за науку: установили размер пакета 64 байта, сделали запрос 16К , убрали несколько косяков и передача пошла на хорошей скорости.


У меня была та-же проблема - не получалось оправлять/принимать больше одного пакета за фрейм. На девайсе (STM32F3Discovery) бесконечным циклом устанавливаю кол-во на отправку 64байта (SetEPTxCount((EP1_IN & 0x7F), 64) и валидность данных (SetEPTxValid(ENDP1)). Данные в буфере пока не обновляю для избежания задержки. По идее задержка на отправку должна быть минимальная и пакеты непрерывно отправляться, но в клиенте на PC за секунду принималось только 1000 пакета по 64байта, то есть шёл один пакет на фрейм. На PC в качестве драйвера использую DriverWizard WinDriver 10.10. Ситуация исправилась тем, что на PC стал принимать пакеты не по 64байта, а оптом значительно большее количество (к примеру 8192байта). Так что сделал вывод, что то самое тормозное место обрывающее транзакцию, это вызов процедуры принятия данных на ПК, и лучше за один вызов принять как можно больше данных. Фактически вызов функции - транзакция. У меня сейчас получается принять за фрейм не более 15 пакетов по 64байта - скорость 960000байт в сек.
Go to the top of the page
 
+Quote Post
Ten04
сообщение Feb 21 2013, 07:33
Сообщение #4





Группа: Новичок
Сообщений: 3
Регистрация: 28-01-13
Пользователь №: 75 377



Не могу сделать режим двойной буферизации. Отправляется первый пакет и затыкается. До обработчика прерывания завершения отправки (EP1_IN_Callback) не доходит. Может есть пример у кого? Просматривая исходники библиотеки USB, складывается впечатление, что она слабо приспособлена для режима двойной буферизации.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- NikP   как передать максимум данных по USB ?   Dec 15 2012, 17:57
- - aaarrr   Цитата(NikP @ Dec 15 2012, 21:57) Явно чт...   Dec 15 2012, 18:18
- - Xenia   Цитата(NikP @ Dec 15 2012, 21:57) В описа...   Dec 15 2012, 18:26
|- - NikP   Ну эксперименты с размером пакета мы начали после ...   Dec 19 2012, 11:46
|- - =AK=   Цитата(NikP @ Dec 19 2012, 22:16) Ну эксп...   Dec 19 2012, 12:08
- - Pat   Цитата(NikP @ Dec 15 2012, 19:57) Так как...   Dec 15 2012, 22:29
- - =AK=   Цитата(NikP @ Dec 16 2012, 04:27) В описа...   Dec 15 2012, 23:36
- - NikP   Я делаю устройство на SiLabs C8051F320 (для опреде...   Dec 16 2012, 17:08
|- - =AK=   Цитата(NikP @ Dec 17 2012, 03:38) там ест...   Dec 16 2012, 21:24
- - Alex11   И еще надо учитывать, как работает верхняя програм...   Dec 17 2012, 14:33
- - NikP   Спасибо за советы! Дело сдвинулось после конфи...   Dec 18 2012, 17:02
|- - =AK=   Цитата(NikP @ Dec 19 2012, 03:32) комп па...   Dec 18 2012, 23:06
|- - геннадий75   Цитата(=AK= @ Dec 19 2012, 07:06) Наверня...   Dec 19 2012, 02:59
|- - =AK=   Цитата(геннадий75 @ Dec 19 2012, 13:29) А...   Dec 19 2012, 05:32
- - NikP   Мы пробовали передавать пакеты по 128 и 256 байт. ...   Dec 19 2012, 03:58
- - NikP   Все варианты сделаны честно: при переходе на друго...   Dec 19 2012, 09:36
|- - =AK=   Цитата(NikP @ Dec 19 2012, 20:06) Все вар...   Dec 19 2012, 10:09


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

 


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


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