|
Bulk-Only в MassStorage USB, 64b/1ms, как заставить работать быстрее? прошу помощи... |
|
|
|
Feb 6 2006, 10:19
|
Местный
  
Группа: Свой
Сообщений: 242
Регистрация: 25-08-04
Пользователь №: 537

|
Господа, прошу направить на путь истинный... Возможно для кого-то эта тема уже избита, но все же... ткните носом в документацию, примеры, Ваш личный опыт...
Есть пример USB-MEM для LPC214x эмулирующий диск 16кБ в RAM, видоизменил SCSI для работы с реальной MMC/SD - все ок. Но за один фрейм передается 64 байта, что и следует ожидать. А это всего лишь 30кБ/сек, представляете сколько будет читаться MMC карточка объемом 512Мб.
Вопросы: 1. Как передавать несколько пакетов за один фрейм в BulkOnly режиме чтобы увеличить скорость хотя бы до 1Mb/сек? 2. Встречал ли кто в сети исходники для реализации Control/Bulk/Interrupt (кажется uC/MSD реализует CBI, но х.з. где он, на фтп нет, в будках нет)?
|
|
|
|
|
 |
Ответов
|
Feb 27 2006, 12:46
|

Частый гость
 
Группа: Свой
Сообщений: 91
Регистрация: 1-06-05
Пользователь №: 5 621

|
Цитата(nikkov @ Feb 7 2006, 04:12)  См. здесь http://electronix.ru/forum/index.php?showtopic=11785Я тоже пробовал, пока шина свободна, скорость передачи в режиме BULK приближается к максимальной скорости USB шины. Для Interrupt и Isochron-го режимов макс. скорость равна размеру буфера конечной точки*1000 байт/сек. Если я не ошибаюсь, пакет от конечной точки в FullSpeed BULK режиме по определению не может быть больше 64 байт (в спецификации USB 2.0). Т.е согласно этой формулы физический предел для BULK в FullSpeed (12 Мбит/сек) режиме должен быть 64 кБ/Сек. На практике, за один фрейм может отсылаться множество пакетов.
Сообщение отредактировал KolyanV - Feb 27 2006, 13:09
|
|
|
|
|
Mar 3 2006, 02:48
|
Местный
  
Группа: Свой
Сообщений: 217
Регистрация: 1-02-05
Пользователь №: 2 332

|
Цитата(KolyanV @ Feb 27 2006, 18:46)  Если я не ошибаюсь, пакет от конечной точки в FullSpeed BULK режиме по определению не может быть больше 64 байт (в спецификации USB 2.0). Т.е согласно этой формулы физический предел для BULK в FullSpeed (12 Мбит/сек) режиме должен быть 64 кБ/Сек. На практике, за один фрейм может отсылаться множество пакетов. См. внимательнее, формула справедлива для "Для Interrupt и Isochron-го режимов макс. скорость равна размеру буфера конечной точки*1000 байт/сек", для BULK все зависит от наличия данных для передачи и свободности шины
|
|
|
|
|
Apr 6 2006, 13:29
|
Местный
  
Группа: Свой
Сообщений: 242
Регистрация: 25-08-04
Пользователь №: 537

|
Цитата(nikkov @ Mar 3 2006, 06:48)  Cм. внимательнее, формула справедлива для "Для Interrupt и Isochron-го режимов макс. скорость равна размеру буфера конечной точки*1000 байт/сек", для BULK все зависит от наличия данных для передачи и свободности шины Все верно, но как сделать чтобы LPC21xx формировал прерывание по приему пакета, а не по окончанию фрейма? Из Кейловского примера получается так, что при передаче данных скажем из PC в EndPoint (сконфигурированного как Bulk-Only 64B) процессора, прерывание формируется с периодом 1 мс, хотя уверен что шина свободна на 90%.
|
|
|
|
Сообщений в этой теме
Alex2172 Bulk-Only в MassStorage USB, 64b/1ms Feb 6 2006, 10:19 Alex2172 Цитата(nikkov @ Feb 7 2006, 05:12) См. зд... Feb 7 2006, 07:39  nikkov Цитата(Alex2172 @ Feb 7 2006, 13:39) Спас... Feb 8 2006, 02:52    Alex2172 Цитата(Alex2172 @ Apr 6 2006, 17:29) Цита... May 22 2006, 12:30 khach Keil обновил аппноту по массторадж. Утверждают, чт... Feb 7 2006, 10:27 Charley Цитата(Alex2172 @ Feb 6 2006, 15:19) ...
... Feb 27 2006, 09:22
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|