Интерфейсы периферийных устройств. Ключев А.О - 198 стр.

UptoLike

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