Фреймы и типы передач USB |
Добавил(а) microsin | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Передачи данных USB происходят как серия событий, которые называются транзакциями. Транзакции связаны с управляемыми хостом интервалами времени, которые называются фреймами. Длина и частота транзакций зависит от типа передач (см. далее "Типы передач USB"), используемых на конечной точке. Примечание: это перевод материалов источника [1]. Все непонятные термины и сокращения, касающиеся шины USB, см. в статье [2]. [Фреймы USB] Тип передачи, которую можно отправить во фрейме, и длина фрейма определяется заданной скоростью USB (см. далее "Скорости USB и соответствующие стандарты"). Спецификации фрейма распределяются по типам поддерживаемых устройством USB скоростей. Различают низкую скорость (Low Speed), полную скорость (Full Speed) и высокую скорость (High Speed). Ниже в таблицах показаны основные параметры каждого варианта скорости. Под "размером фрейма" подразумевается фиксированный интервал времени, с которым фреймы следуют друг за другом. Таблица 1. Low Speed (размер фрейма 1 мс).
Таблица 2. Full Speed (размер фрейма 1 мс).
Таблица 3. High Speed (размер фрейма 125 мкс).
[Типы передач USB] Типы передач USB обозначают режимы обмена данными между хостом USB и конечными точками устройства USB. Тип передачи определяет частоту и длину транзакций, используемых при обмене с конечной точкой. Типы передач могут также проверяться контрольной суммой (cyclical redundancy checksum, CRC), передаваемой с каждым пакетом. Тип передачи устанавливается устройством, и информация о типе передачи считывается хостом в процессе энумерации устройства USB. Чтобы упростить разработку ПО для хоста USB и допустить взаимозаменяемость между продукцией устройств USB разных производителей, организация USB Developers Forum утвердила спецификации для классов устройств USB (Device Class). Классы устройств предоставляют номера конечных точек, типы передач и группирование конечных точек для устройств USB. Бывают 4 типа передач: Interrupt, Bulk, Isochronous, Control. Передача типа Control особая, она всегда осуществляет обмен с конечной точкой номер 0 (control endpoint, управляющая конечная точка), которую еще называют конечной точкой по умолчанию (default endpoint). В устройстве USB обязательно должна быть такая конечная точка (конечных точек IN или OUT как частный случай в устройстве может и не быть). Передачи Interrupt, Bulk, Isochronous осуществляются на конечных точках IN (передача от устройства USB к хосту) и OUT (передача от хоста к устройству USB). [Что учитывают при выборе типов передач] Когда разработчик подбирает под конкретную задачу класс устройства USB и типы передач для него, он учитывает требования, накладываемые на канал связи с устройством USB. Latency (задержки). Как быстро хосту нужно обработать обмен с конечной точкой? Чтобы обеспечить прогнозируемое время отклика, транзакции обмена должны быть запланированы с фиксированными интервалами времени. Например, если конечная точка должна обрабатываться после прохождения 10 фреймов, время отклика составит 10 мс при использовании Full-Speed USB. Чтобы гарантировать определенную задержку в обмене, конечная точка обрабатывается строго в предписанном интервале времени, независимо от того, какая есть активность на канале связи с устройством. Выделение времени на каждый фрейм для обслуживания не активных устройств ограничивает общее количество устройств, которые могут быть обработаны из-за конечного свободного времени во фрейме. Контроль ошибок. Должна ли полезная нагрузка транзакции обеспечивать надежную доставку с защитой контрольной суммой? Большинство реализаций USB используют аппаратный генератор CRC, который добавляет CRC к сообщению. Чтобы позволить разработать экономичные кремниевые решения, разработчики USB ограничены размером пакета транзакций, требующих CRC. Снижение размера пакета может снизить фактическую скорость обмена данными с устройством. Ширина канала (пропускная способность). Количество пакетов в единицу времени и длина каждого пакета влияют на полосу пропускания канала (bandwidth). Увеличение размера транзакции увеличит полосу, однако большие пакеты не предусматривают проверку CRC. Кроме того, резервирование частей кадра для длинных широкополосных передач ограничивает потенциальное количество устройств, которое может быть обработано хостом. Увеличение количества транзакций с разрешенной CRC, отправленных в кадре, увеличит пропускную способность, однако этот метод ставит ту же самую дилемму количества обрабатываемых устройств, которую вводят длинные фреймы. Управление и конфигурация. Часть фрейма должна быть доступна для хоста, чтобы обеспечить энумерацию новых (только что подключенных к шине) устройств, и чтобы можно ыбло посылать команды управления для устройств, прошедших в настоящий момент энумерацию. [Типы передач, используемые USB] Как результат учета перечисленных выше параметров канала связи с устройством, организация USB Developers Forum утвердила следующие типы передач для USB: Interrupt Transfer. Короткие пакеты с CRC, отправка которых запланирована в фиксированные интервалы времени. Хотя на рисунке ниже показаны передачи, запускаемые в каждом кадре, interrupt-передачи могут быть запланированы на передачу через определенное количество фреймов, например в каждом десятом фрейме. Interrupt-передачи будут происходить всегда, вне зависимости от того, есть ли какие-либо данные для передачи, или нет. В таблице кратко перечислены достоинства, недостатки и основные области использования interrupt-передач.
Isochronous Transfer. Это длинные пакеты без CRC. Изохронные передачи планируются с фиксированными интервалами времени. Полоса фрейма освобождается хостом, если не нужна коммуникация с конечной точкой. В таблице кратко перечислены достоинства, недостатки и основные области использования изохронных передач.
Bulk Transfer. Короткие пакеты с CRC. Передачи Bulk не планируются с определенными интервалами, они могут происходить, когда во фрейме есть для этого доступная полоса (см. рисунок ниже). Несколько Bulk-передач могут пройти в одном фрейме, если в нем есть для них свободное место. В таблице кратко перечислены достоинства, недостатки и основные области использования bulk-передач.
[Скорости USB и соответствующие стандарты] Устройства и хосты USB классифицируются по поддерживаемой скорости, не просто по номеру спецификации. Объявление совместимости продукции USB с определенным номером стандарта хотя и является точным, однако может не предоставлять полную информацию, необходимую для обмена с устройством. Участники USB Implementers Forum утвердили несколько пронумерованных спецификаций для USB. Большинство спецификаций было добавлено для поддержки новых скоростей. Спецификации USB также устанавливают, что должны поддерживаться скорости предыдущей версии стандарта. Например, USB 2.0 представила скорость High Speed USB, однако также она предоставляет как часть своей спецификации скорости Low Speed и Full Speed USB, впервые определенные в USB 1.0. Если продукт обозначает себя как "USB 2.0 device", этим он не сообщает, какие реально скорости в нем реализованы. Таблица 4. Спецификации USB и их классы скоростей
Таблица 5. Передаваемая мощность питания и спецификации новых соединителей.
[Ссылки] 1. What is USB? site:microchipdeveloper.com. |