Шина USB

С каналами связаны характеристики, соответствующие конечной точке (полоса пропускания, тип сервиса, размер буфера и т. п.). Каналы организуются при кон­фигурировании устройств USB. Для каждого включенного устройства существу­ет канал сообщений (Control Pipe 0), по которому передается информация кон­фигурирования, управления и состояния.

Протокол

Все обмены (транзакции) с устройствами USB состоят из двух-трех пакетов. Каж­дая транзакция планируется и начинается по инициативе контроллера, который посылает пакет-маркер (token packet). Он описывает тип и направление переда­чи, адрес устройства USB и номер конечной точки. В каждой транзакции возмо­жен обмен только между адресуемым устройством (его конечной точкой) и хос­том. Адресуемое маркером устройство распознает свой адрес и готовится к обменуИсточник данных (определенный маркером) передает пакет данных (или уведом­ление об отсутствии данных, предназначенных для передачи). После успешного» приема пакета приемник данных посылает пакет квитирования (handshake packet )? Последовательность пакетов в транзакциях иллюстрирует рис. 4.4. Хост-контроллер организует обмены с устройствами согласно своему плану рас­пределения ресурсов. Контроллер циклически (с периодом 1,0±0,0005 мс) форми-рует кадры (frames), в которые укладываются все запланированные транзакции.  Каждый кадр начинается с посылки маркера SOF (Start Of Frame), который является синхронизирующим сигналом для всех устройств, включая хабы. В конце каждого кадра выделяется интервал времени EOF (End Of Frame), на вре­мя которого хабы запрещают передачу по направлению к контроллеру. В режиме HS пакеты SOF передаются в начале каждого микрокадра (период 125±0,0625 мкс). Хост планирует загрузку кадров так, чтобы в них всегда находилось место для транзакций управления и прерываний. Свободное время кадров может заполнять­ся передачами массивов (bulk transfers). В каждом (микро)кадре может быть вы­полнено несколько транзакций, их допустимое число зависит от длины поля дан­ных каждой из них. Для обнаружения ошибок передачи каждый пакет имеет контрольные поля CRC-кодов, позволяющие обнаруживать все одиночные и двойные битовые ошибки. Аппаратные средства обнаруживают ошибки передачи, а контроллер автоматиче­ски производит трехкратную попытку передачи. Если повторы безуспешны, со­общение об ошибке передается клиентскому ПО.

Все подробности организации транзакций от клиентского ПО изолируются кон­троллером USB и его системным программным обеспечением.

Типы передач данных

Архитектура USB допускает четыре базовых типа передачи данных.

  • Управляющие посылки (control transfers) используются для конфигурирования устройств во время их подключения и для управления устройствами в процес­се работы. Протокол обеспечивает гарантированную доставку данных.
  • Передачи массивов данных (bulk data transfers) — это передачи без каких-либо обязательств по задержке доставки и скорости передачи. Передачи массивов могут занимать всю полосу пропускания шины, свободную от передач других

типов. Приоритет этих передач самый низкий, они могут приостанавливаться при большой загрузке шины. Доставка гарантированная — при случайной ошибке выполняется повтор. Передачи массивов уместны для обмена данны­ми с принтерами, сканерами, устройствами хранения и т. п.

  • Прерывания (interrupt) — короткие передачи, которые имеют спонтанный ха­рактер и должны обслуживаться не медленнее, чем того требует устройство. Предел времени обслуживания устанавливается в диапазоне 10-255 мс для низкой, 1-255 мс для полной скорости, на высокой скорости можно заказать и 125 мкс. При случайных ошибках обмена выполняется повтор. Прерывания используются, например, при вводе символов с клавиатуры или для передачи сообщения о перемещении мыши.
  • Изохронные передачи (isochronous transfers) — непрерывные передачи в реаль­ном времени, занимающие предварительно согласованную часть пропускной способности шины с гарантированным временем задержки доставки. Позволя­ют на полной скорости организовать канал с полосой 1,023 Мбайт/с (или два по 0,5 Мбайт/с), заняв 70 % доступной полосы (остаток можно заполнить и менее емкими каналами). На высокой скорости конечная точка может полу­чить канал до 24 Мбайт/с (192 Мбит/с). В случае обнаружения ошибки изо­хронные данные не повторяются — недействительные пакеты игнорируются. Изохронные передачи нужны для потоковых устройств: видеокамер, цифро­вых аудиоустройств (колонки USB, микрофон), устройств воспроизведения и записи аудио- и видеоданных (CD и DVD). Видеопоток (без компрессии) шина USB способна передавать только на высокой скорости.

Полоса пропускания шины делится между всеми установленными каналами. Выделенная полоса закрепляется за каналом, и, если установление нового канала требует такой полосы, которая не вписывается в уже существующее распределе­ ние, запрос на выделение канала отвергается.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *