[an error occurred while processing this directive]
Даю Цитату:
(«Телесистемы»: Конференция «Цифровые сигнальные процессоры (DSP) и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено misyachniy 27 октября 2003 г. 16:47
В ответ на: Нельзя ли поподробнее отправлено вовсе не new bee 27 октября 2003 г. 16:27

Отправлено Илья Гаврилов 28 февраля 2002 г. 16:07

Не забывайте, что USB - это не RS-232, приходится делить время на шине между разными устройствами, каковых может быть до 127. Этим занимается входящий в состав операционки драйвер USBD - слой, лежащий непосредственно поверх драйвера хардвера. К USBD стекаются запросы на прием и передачу от драйверов разных устройств. Когда к USBD приходит запрос, он выделяет время на шине для передачи данных. Время на шине USB 1.1 поделено на фреймы по 1 мс. Как правило, если запрос пришел в время фрейма N, время в текущем фрейме для него не выделяется, даже если шина ничем не занята, а выделяется начиная с фрейма N+1.
Пусть для определенности нам нужно принять 4К через bulk in. Если наш драйвер будет давать USBD запрос на прием 64 байт (максимальный размер пакета для bulk), ждать, пока USBD вернет данные, и только после этого давать новый запрос, то как раз и получится один пакет в фрейме. Этого можно избежать двумя способами: ставить в очередь новые запросы, не дожидаясь выполнения предыдущих, либо еще проще - дать запрос на все 4К разом. USBD это позволяет, он сам разобьет его на нужное количество пакетов, и если нет других запросов, будет передавать в каждом фрейме столько, сколько успеет.
Конец цитаты.

Предполагаю что на P4 USB2.0 у него фреймов больше. А на "cтаром" компьютере USB1.1.

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru