Типы передачи данных
Система USB поддерживает как однонаправленные, так и двунаправленные режимы связи. Передача данных производится между программным обеспечением центральной части системы USB и конечной точкой устройства. Периферийное устройство может иметь несколько конечных точек, связь с каждой из них (канал) устанавливается независимо.
Архитектура интерфейса USB допускает четыре базовых типа передачи данных.
Управляющие посылки (Control Transfers). Используются для конфигурирования во время подключения и в процессе работы для управления периферийными устройствами. Протокол обеспечивает гарантированную доставку данных. Длина поля данных управляющей посылки не превышает 64 байт на полной скорости и 8 байт на низкой.
Сплошные передачи (Bulk Data Transfers). Это передачи сравнительно больших пакетов без жестких требований ко времени доставки. Передачи занимают всю свободную полосу пропускания интерфейса. Пакеты имеют поле данных размером 8, 16, 32 или 64 байт. Приоритет этих передач самый низкий, они могут приостанавливаться при большой загрузке интерфейса. Допускаются только на полной скорости передачи.
Прерывания (Interrupt). Этокороткие (до 64 байт на полной скорости, до 8 байт на низкой скорости) передачи типа вводимых символов или координат. Прерывания имеют спонтанный характер и должны обслуживаться не медленнее, чем того
требует устройство. Предел времени обслуживания устанавливается в диапазоне 1-255 мс для полной скорости и 10-255 мс - для низкой.
Изохронные передачи (Isochronous Transfers). Это непрерывные передачи в реальном времени, занимающие предварительно согласованную часть пропускной способности шины и имеющие заданную задержку доставки. В случае обнаружения ошибки изохронные данные передаются без повтора - недействительные пакеты игнорируются. Пример - цифровая передача голоса. Пропускная способность определяется требованиями к качеству передачи, а задержка доставки может быть критичной, например, при реализации телеконференций.
Полоса пропускания интерфейса USB делится между всеми установленными каналами. Выделенная полоса закрепляется за каналом, и если установление нового канала требует такой полосы, которая не вписывается в уже существующее распределение, запрос на выделение канала отвергается.
Архитектура интерфейса USВ предусматривает внутреннюю буферизацию во всех устройствах, причем чем большей полосы пропускания требует периферийное устройство, тем больше должен быть его буфер. Система USB должна обеспечивать обмен с такой скоростью, чтобы задержка данных в устройстве, вызванная буферизацией, не превышала нескольких миллисекунд.
Изохронные передачи классифицируются по способу синхронизации конечных точек - источников или получателей данных - с системой: различают асинхронный, синхронный и адаптивный классы устройств, каждому из которых соответствует свой тип канала USB.