Конечные точки устройств USBch31 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Конечные точки устройств USBch31



USB обеспечивает связь хост - контроллера и USB устройств (рис. 9).

Система USB разделяется на три уровня с определенными правилами взаимодействия. Устройство USB содержит интерфейсную часть, часть устройства и функциональную часть. Хост также делится на три части — интерфейсную, системную и ПО устройства. Каждая часть отвечает только за определенный круг задач, логическое и реальное взаимодействие между ними иллюстрирует рисунок.

 

 

Рис. 9. Модель передачи данных

Взаимодействие между хостом и физическим устройством можно разделить на четыре центральных области реализации функций взаимодействия:

§ физическое устройство USB;

Устройство на шине, подключаемое стандартным USB кабелем и выполняющее некоторые необходимые пользователю функции.

§ клиентское программное обеспечение (ПО); Программное обеспечение, которое выполняется на хост - компьютере и соответствует некоторому USB устройству. Это клиентское приложение обычно поставляется с операционной системой или с конкретным USB устройством.

§ системное ПО USB (USB System SW);

Программное обеспечение, которое предоставляет возможность работы с USB в конкретной операционной системе. Системное программное обеспечение USB обычно поставляется с операционной системой и не зависит от какого-либо конкретного USB устройства или клиентского ПО.

§ хост-контроллер USB (USB Host Controller);

Аппаратные и программные средства, которые позволяют USB устройствам взаимодействовать с хостом.

 

Как показано на рис. 9 pic>frame@img/32.hlpвзаимодействие между хостом и функциональным устройством требует взаимодействия между уровнями и областями реализации (другими словами необходимо использование вертикальных и горизонтальных связей, показанных на рисунке). Например, уровень интерфейса шины USB обеспечивает совместимость между хостом и устройством по физическим параметрам (разъёмы кабелей, волновое сопротивление кабелей и т.п.) и передаче сигналов (уровни сигналов, кодирование информации и т.д.).

Конечные точки устройств USB

Каждое устройство USB представляет собой набор независимых конечных точек, с которыми хост-контроллер обменивается информацией. Каждое логическое устройство имеет уникальный адрес, который назначается системой. Каждое устройство обязательно имеет конечную точку с номером, используемую для инициализации, общего управления и опроса его состояния. Эта точка всегда сконфигурирована при включении питания и подключении устройства к шине. Она поддерживает передачи типа “управление”.

Кроме нулевой точки, устройства-функции могут иметь дополнительные точки, реализующие полезный обмен данными. Низкоскоростные устройства могут иметь до двух дополнительных точек, скоростные — до 16 точек ввода и 16 точек вывода (протокольное ограничение). Точки не могут быть использованы до их конфигурирования. Конечные точки описывается следующими параметрами:

§ требуемой частотой доступа к шине и допустимыми задержками обслуживания;

§ требуемой полосой пропускания канала;

§ номером точки;

§ требованиями к обработке ошибок;

§ максимальными размерами передаваемых и принимаемых пакетов;

§ типом обмена;

§ направлением обмена.

Каналы

Каналом в USB называется модель передачи данных между хост - контроллером и конечной точкой (Endpoint) устройства. Каналы предоставляют возможность обмениваться данными между программным обеспечением на хост - контроллере и конечной точкой на устройстве.

Имеются два типа каналов:

§ потоки (Stream): данные потока неструктурированны;

§ сообщения (Message): данные, передаваемые посредством канала, имеют строго определённый формат (структуру).

Каналы организуются при конфигурировании устройств USB. Для каждого включенного устройства существует канал сообщений, связывающий нулевую конечную точку и хост-контроллер, по которому передаётся информация конфигурирования, управления и состояния.

Потоки и сообщения являются взаимно исключающимися понятиями. Канал может быть организован либо типа поток, либо типа сообщения.

Поток доставляет данные в виде пакетов без определённой структуры от одного конца канала к другому. Поток всегда однонаправленный. Один и тот же номер конечной точки может использоваться для двух поточных каналов — ввода и вывода.

Поток может реализовывать следующие типы обмена: сплошной, изохронный и прерывания. Доставка всегда идет в порядке “первым вошел — первым вышел” (FIFO). Данные потока всегда НЕСТРУКТУРИРОВАНЫ.

Сообщения имеют формат, определенный спецификацией USB. Хост посылает запрос к конечной точке, после которого передаётся (принимается) пакет сообщения, за которым следует пакет с информацией состояния конечной точки. Последующее сообщение нормально не может быть послано до обработки предыдущего, но при обработке ошибок возможен сброс обслуженных сообщений. Двухсторонний обмен сообщениями адресуется к одной и той же конечной точке. Для доставки сообщений используется только обмен типа “управление”. С каналами связаны характеристики, соответствующие конечной точке (полоса пропускания, тип сервиса, размер буфера и т.п.)

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

USB поддерживает как однонаправленные, так и двунаправленные режимы связи. Архитектура USB допускает четыре базовых типа передачи данных:

§ Управляющие посылки (Control Transfers);

Используются для конфигурирования во время подключения и в процессе работы, для управления устройствами. Протокол обеспечивает гарантированную доставку данных. Длина поля данных управляющей посылки не превышает 64 байт на полной скорости и 8 байт на низкой.

§ Сплошные передачи (Bulk Data Transfers);

Передача сравнительно больших пакетов без жестких требований ко времени доставки. Передачи занимают всю свободную полосу пропускания шины. Пакеты имеют поле данных размером 8, 16, 32 или 64 байт. Приоритет этих передач самый низкий, они могут приостанавливаться при большой загрузке шины. Допускаются только на полной скорости передачи.

§ Прерывания (Interrupt);

Короткие (до 64 байт на полной скорости, до 8 байт на низкой) передачи типа вводимых символов или координат. Прерывания имеют спонтанный характер и должны обслуживаться не медленнее, чем того требует устройство. Предел времени обслуживания устанавливается в диапазоне 1-255 мс для полной скорости и 10-255 мс — для низкой.

§ Изохронные передачи (Isochronous Tranters);

Непрерывные передачи в реальном времени, занимающие предварительно согласованную часть пропускной способности шины и имеющие заданную задержку доставки.

 

В случае обнаружения ошибки изохронные данные передаются без повтора — недействительные пакеты игнорируются. Пример — цифровая передача голоса. Пропускная способность определяется требованиями к качеству передачи, а задержка доставки может быть критичной, например, при реализации телеконференций.

Архитектура USB предусматривает внутреннюю буферизацию всех устройств, причем чем большей полосы пропускания требует устройство, тем больше должен быть его буфер. USB должна обеспечивать обмен с такой скоростью, чтобы задержка данных в устройстве, вызванная буферизацией, не превышала нескольких миллисекунд.

Изохронные передачи классифицируются по способу синхронизации конечных точек — источников или получателей данных — с системой: различают асинхронный, синхронный и адаптивный классы устройств.

Протоколch41

Пакеты.ch4

Все обмены данными (транзакции) по USB состоят из трех пакетов. Каждая транзакция планируется и начинается по инициативе контроллера, который посылает пакет-маркер. Он описывает тип и направление передачи, адрес устройства USB и номер конечной точки.

В каждой транзакции возможен обмен только между адресуемым устройством (его конечной точкой) и хостом. Адресуемое маркером устройство распознает свой адрес и готовится к обмену. Источник данных (определенный маркером) передает пакет данных (или уведомление об отсутствии данных, предназначенных для передачи). После успешного приема пакета приемник данных посылает пакет подтверждения.

Планирование транзакций обеспечивает управление поточными каналами. На аппаратном уровне использование отказа от транзакции при недопустимой интенсивности передачи предохраняет буферы от переполнения сверху и снизу. Маркеры отвергнутых транзакций повторно передаются в свободное для шины время.

Управление потоками позволяет гибко планировать обслуживание одновременных разнородных потоков данных.

Устойчивость к ошибкам обеспечивают следующие свойства USB:

§ Высокое качество сигналов, достигаемое благодаря дифференциальным приемникам/передатчикам и экранированным кабелям.

§ Защита полей управления и данных специальными кодами.

§ Обнаружение подключения и отключения устройств и конфигурирование ресурсов на системном уровне.

§ Самовосстановление протокола с тайм-аутом при потере пакетов.

§ Управление потоком для обеспечения изохронности и управления аппаратными буферами.

§ Независимость последствий от неудачных обменов от других функций.

Байты передаются по шине последовательно, начиная с младшего бита.

Типы транзакций

Формат транзакции зависит от типа конечной точки, с которой идет обмен. Существует всего четыре типа транзакций:

 

· сплошные передачи;

· управляющие посылки;

· прерывания;

· изохронные передачи.

Сплошные передачи

Сплошные передачи характеризуются безошибочной передачей данных между хостом и устройством, за счёт обнаружения ошибок и повторных передач. Сплошные транзакции имеют три фазы: маркерную, фазу данных и фазу подтверждения (рис pic>frame@img/49.hlp. 11) В некоторых ситуациях фаза данных может быть заменена фазой подтверждения, что приведет к двухфазной структуре транзакции без передачи данных.

Рис. 11. Сплошные транзакции имеют три фазы

Когда хост-контроллер готов к приёму информации, он посылает маркерный пакет IN. В ответ конечная точка функции передаёт либо пакет данных, либо (если передача данных невозможна) пакет подтверждения NAK или STALL. Пакет NAK указывает на то, что функция временно не способна передавать данные, STALL информирует хост о том, что работа конечной точки приостановлена и требуется вмешательство системного ПО USB. Если хост получил данные без ошибки, то он отправляет пакет подтверждения ACK. Если же хост обнаружил ошибку в принятых данных, то он не отправляет функции никакого подтверждения.

В момент готовности хост - контроллера передавать информацию, им посылается маркер OUT, за которым следует пакет данных. Если функция приняла данные без ошибки, то она генерирует один из следующих пакетов подтверждений:

 

§ ACK сообщает о том, что пакет данных принят без ошибок и хост может отправлять следующий пакет.

§ NAK информирует хост о том, что данные получены без ошибки, хост - контроллеру необходимо повторить передачу данных, т.к. функция была не в состоянии принять данные (например, переполнение буфера).

§ Если конечная точка находится в состоянии останова, то пакет STALL указывает на то, что нет необходимости повторной передачи данных хостом, поскольку функция находится в состоянии ошибки.

Если же данные приняты с ошибкой, то никакого подтверждения не посылается.

Управляющие посылки

Управляющие посылки содержат минимум две стадии: инициализацию (SETUP) и стадию определения состояния (Status). Управляющие посылки могут также содержать и стадию данных, выполняющуюся между стадиями SETUP и Status. Во время стадии инициализации в транзакции типа SETUP пакет данных используется для передачи информации управляющей точке функции. На рис. 12 pic>frame@img/410.hlpпредставлен формат транзакции SETUP.

Рис. 12. Формат транзакции SETUP

Функция, получившая пакет SETUP, должна подтвердить правильность принятого пакета данных путем выдачи пакета подтверждения ACK. В случае ошибки в данных функция не генерирует пакет подтверждения.

Если присутствует стадия данных, то она состоит из одной или более транзакций типа IN или OUT. Все транзакции стадии данных должны быть одного направления (либо IN, либо OUT). Количество байтов, передаваемых во время стадии данных и направление транзакций определяется на стадии инициализации.

Стадия состояния является последней в управляющей посылке. Стадию состояния характеризует направление передачи данных, противоположное предыдущей стадии. Если, например, стадия данных состояла из транзакций типа OUT, то стадия состояния включает в себя только транзакции IN.

Стадия состояния информирует хост-контроллер о результате выполнения предшествующих стадий установки и данных.

Всего возможно три варианта стадии состояния:

§ Последовательность команд выполнилась успешно.

§ Последовательность команд не выполнена.

§ Функция всё ещё находится в состоянии выполнения команд.

 

Прерывания

Прерывания могут состоять из получения или отправки данных функциейpic>frame@img/491.hlp. В ответ на получение маркерного пакета IN функция должна вернуть пакет данных, подтверждение NAK либо STALL. Если функция не имеет информации для передачи хосту (нет ожидающих отправку прерываний), она возвращает подтверждение NAK во время фазы данных. Функция возвращает подтверждение STALL, если находится в состоянии останова. В случае существования ожидающего передачу прерывания, функция отправляет информацию прерывания в виде пакета данных. Если хост получил данные без ошибки, то он отправляет пакет подтверждения ACK. Если же хост обнаружил ошибку в принятых данных, то он не отправляет функции никакого подтверждения.

 

Изохронные передачи

Изохронные транзакции состоят из маркерной фазы и фазы данных. Хост-контроллер генерирует маркер IN или OUT, за которым следует фаза данных, в которой конечная точка (для IN) или хост (для OUT) передаёт данные. Изохронные передачи не содержат фазу подтверждения.

 

***

На этом мы заканчиваем рассмотрение интерфейсов, как таковых, переходим к рассмотрению периферийных устройств, где будем касаться интерфейсов, по мере необходимости, для каждого из классов ПУ.

 



Поделиться:


Последнее изменение этой страницы: 2016-12-14; просмотров: 795; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.136.26.20 (0.031 с.)