Типы передачи данных
Спецификация USB определяет 4 типа потоков данных:
1. bulk transfer - предназначен для пакетной передачи данных с
размером пакетов 8, 16, 32, 64 для USB 1.1 и 512 для USB 2.0.
Используется алгоритм перепосылки (в случае возникновения ошибок),
а управление потоком осуществляется с использованием handshake
пакетов, поэтому данный тип является достоверным. Поддерживаются
оба направления - IN и OUT.
2. control transfer - предназначен для конфигурирования и управления
устройством. Также, как и в bulk, используются алгоритмы
подтверждения и перепосылки, поэтому этот тип обеспечивает
гарантированный обмен данными. Направления - IN (status) и
OUT(setup, control).
3. interrupt transfer - похож на bulk. Размер пакета - от 1 до 64
байт для USB 1.1 и до 1024 байт для USB 2.0. Этот тип гарантирует,
что устройство будет опрашиваться (то есть хост будет отсылать ему
token "IN") хостом с заданным интервалом. Направление - IN.
4. isochronous transfer - предназначен для передачи данных без
управления потоком (без подтверждений). Область применения -
аудио-потоки, видео-потоки. Размер пакета - до 1023 байт для USB
1.1 и до 1024 байт для USB 2.0. Предусмотрен контроль ошибок (на
приемной стороне) по CRC16. Направления - IN и OUT. ---
Основную работу делает чипсет, проц разгружен. Скорости впечатляющие.
Писать дрова под него одно удовольствие, а вот для COM-портов — тихая ненависть.
Плюс plug'n'play, уникальная идентификация устройств и их множественность — вааще зачёт :-)
OffTopic: IEEE 1394 тоже силён. Совершеннее USB. Всякая MiniDV камера по нему тащит гигабайты данных. Причём даже дров не надо, видео и аудио потоки там стандартизированы, ось поддерживая их, соотв. поддерживает все устройства, которые это могут. В USB такого пока нет, некоторые камеры тащат видео по USB, но требуется ставить драйвер.
Взято отсюда
|