НГТУ - Интерфейсы АСОиУ

 







 
 Главная
 Теория
 Практика
 Ссылки
 Гостевая
 Обратная связь

 

 

 

 


 

 




USB: Модель передачи данных

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

 Конечные точки описываются следующими параметрами:

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

Требуемая полоса пропускания канала.

Номер точки.

Требования к обработке ошибок.

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

Тип обмена.

Направление обмена ( для сплошного и изохронного обмена).

Каждое устройство обязательно имеет конечную точку с номером 0, используемую для инициализации и общего управления логическим устройством, а так же опроса его состояния. Эта точка всегда сконфигурирована при включении питания и подключении устройства к шине и поддерживает передачи типа "управление". Кроме нулевой точки, устройства-функции могут иметь дополнительные точки реализующие полезные обмены данными. Низкоскоростные устройства могут иметь до двух дополнительных точек, полноскоростные - до 16 точек ввода и до 16 точек вывода. Все эти точки не могут быть использованы до их конфигурирования. Канал (pipe) - модель передачи данных между хост-контроллером и конечной точкой устройства. Имеются два типа каналов - потоки и сообщения. Каналы организуются при конфигурировании устройств USB. Один канал сообщений (Control Pipe 0), по которому передается информация конфигурирования, управления и состояния, обязательно существует для каждого включенного устройства. Поток доставляет данные от одного конца канала к другому, он всегда однонаправленный. Один и тот же номер конечной точки может использоваться для двух поточных каналов - ввода и вывода. Поток может использовать следующие типы обмена - сплошной, прерывания и изохронный. Доставка всегда идет в порядке "первый вошел - первый вышел". Данные потока не структурированы. Сообщения имеют формат, определенный спецификацией USB. Обмен сообщениями отличается от потоков: хост отсылает запрос к конечной точке, после которого передается или принимается поток сообщения, за которым следует пакет с информацией о состоянии конечной точки. При обработке ошибок возможен сброс необработанных сообщений. Двусторонний обмен сообщениями адресуется к одной и той же конечной точке. Для доставки сообщений используется только обмен типа "управление".

 USB поддерживает несколько режимов связи, как однонаправленных, так и двунаправленных. Передача данных производится между ПО хоста и конкретной конечной точкой устройства. Устройство может иметь несколько конечных точек, связь с каждой из них устанавливается независимо от других. В архитектуре USB существуют четыре типа передаваемых данных:

1. Управляющие посылки (Control transfers)- используются для конфигурирования во время подключения и в процессе работы для управления устройствами. Протокол обеспечивает гарантированную доставку данных. Длина поля данных управляющей посылки не превышает 64 байт для полной скорости и 8 байт для низкой.

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

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

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

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

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

Транзакции по USB состоят из трех пакетов. Каждая транзакция планируется и начинается по инициативе контроллера, который посылает пакет-маркер. Этот пакет описывает тип и направление передачи, адрес устройства ми номер конечной точки. В каждой транзакции возможен обмен между конечной точкой адресуемого устройства и хостом. Адресуемое маркером устройство USB распознает свой адрес и подготавливается к обмену. Источник данных передает пакет данных (или уведомление об отсутствии данных, предназначенных для передачи). После успешного приема пакета приемник посылает пакет подтверждения (или "рукопожатия" ) подтверждающий прием информации. Планирование транзакций обеспечивает управление поточными каналами. На аппаратном уровне использование отказа от транзакции (NACK) при недопустимой интенсивности транзакций на шине предохраняет буферы от переполнения или от перепустошения. Маркеры отвергнутых транзакций передаются вновь в свободное для шины время. Управление потоками позволяет гибко планировать обслуживание одновременных разнородных потоков данных.

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

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

2. Защита полей управления и данных CRC-кодами.

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

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

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

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

Для обнаружения ошибок передачи каждый пакет использует контрольные поля CRC-кодов, позволяющие обнаруживать одиночные и двойные битовые ошибки. Аппаратные средства обнаруживают ошибки передачи, а контроллер производит трехкратную попытку передачи. Если эти попытки безуспешны, то сообщение об ошибке передается клиентскому ПО для программной обработки.

 

Назад

Содержание

Вперед