Автор работы: Пользователь скрыл имя, 27 Марта 2011 в 16:49, реферат
USB (англ. Universal Serial Bus — «универсальная последовательная шина», произносится «ю-эс-би» или «у-эс-бэ») — последовательный интерфейс передачи данных для среднескоростных и низкоскоростных периферийных устройств в вычислительной технике. Символом USB являются четыре геометрические фигуры: большой круг, малый круг, треугольник, квадрат.
Общая информация 3
История USB 3
Версии спецификации 4
Стандарт USB 7
Структура 7
Системное конфигурирование 17
Устройства USB - функции и хабы 18
Хост-контроллер 20
5. Список использованной литературы 21
6. Дополнение 22
Каналом
{Pipe) в USB называется модель передачи данных
между хост-контроллером и конечной точкой
(Endpoint) устройства. Имеются два типа каналов:
потоки (Stream) и сообщения (Message). Поток доставляет
данные от одного конца канала к другому,
он всегда однонаправленный. Один и тот
же номер конечной точки может использоваться
для двух поточных каналов - ввода и вывода.
Поток может реализовывать следующие
типы обмена: сплошной, изохронный и прерывания.
Доставка всегда идет в порядке "первым
вошел - первым вышел" (FIFO); с точки зрения
USB, данные потока неструктурированы. Сообщения
имеют формат, определенный спецификацией
USB. Хост посылает запрос к конечной точке,
после которого передается (принимается)
пакет сообщения, за которым следует пакет
с информацией состояния конечной точки.
Последующее сообщение нормально не может
быть послано до обработки предыдущего,
но при отработке ошибок возможен сброс
необслуженных сообщений. Двухсторонний
обмен сообщениями адресуется к одной
и той же конечной точке. Для доставки
сообщений используется только обмен
типа "управление".
С каналами
связаны характеристики, соответствующие
конечной точке (полоса пропускания, тип
сервиса, размер буфера и т. п.). Каналы
организуются при конфигурировании
устройств USB. Для каждого включенного
устройства существует канал сообщений
(Control Pipe 0), по которому передается информация
конфигурирования, управления и состояния.
Типы
передачи данных
USB
поддерживает как
Архитектура USB
допускает четыре базовых типа передачи
данных:
Полоса
пропускания шины делится между
всеми установленными каналами. Выделенная
полоса закрепляется за каналом, и если
установление нового канала требует такой
полосы, которая не вписывается в уже существующее
распределение, запрос на выделение канала
отвергается.
Архитектура
USВ предусматривает внутреннюю буферизацию
всех устройств, причем чем большей полосы
пропускания требует устройство, тем больше
должен быть его буфер. USB должна обеспечивать
обмен с такой скоростью, чтобы задержка
данных в устройстве, вызванная буферизацией,
не превышала нескольких миллисекунд.
Изохронные
передачи классифицируются по способу
синхронизации конечных точек - источников
или получателей данных - с системой: различают
асинхронный, синхронный и адаптивный
классы устройств, каждому из которых
соответствует свой тип канала USB.
Протокол
Все
обмены (транзакции) по USB состоят из трех
пакетов. Каждая транзакция планируется
и начинается по инициативе контроллера,
который посылает пакет-маркер {Token Packet).
Он описывает тип и направление передачи,
адрес устройства USB и номер конечной точки.
В каждой транзакции возможен обмен только
между адресуемым устройством (его конечной
точкой) и хостом. Адресуемое маркером
устройство распознает свой адрес и готовится
к обмену. Источник данных (определенный
маркером) передает пакет данных (или уведомление
об отсутствии данных, предназначенных
для передачи). После успешного приема
пакета приемник данных посылает пакет
подтверждения (Handshake Packet).
Планирование
транзакций обеспечивает управление поточными
каналами. На аппаратном уровне использование
отказа от транзакции (NAck) при недопустимой
интенсивности передачи предохраняет
буферы от переполнения сверху и снизу.
Маркеры отвергнутых транзакций повторно
передаются в свободное для шины время.
Управление потоками позволяет гибко
планировать обслуживание одновременных
разнородных потоков данных.
Устойчивость
к ошибкам обеспечивают следующие
свойства USB:
Для обнаружения
ошибок передачи каждый пакет имеет
контрольные поля CRC-кодов, позволяющие
обнаруживать все одиночные и
двойные битовые ошибки. Аппаратные
средства обнаруживают ошибки передачи,
а контроллер автоматически производит
трехкратную попытку передачи. Если повторы
безуспешны, сообщение об ошибке передается
клиентскому ПО.
Форматы
пакетов
Байты передаются по шине последовательно, начиная с младшего бита. Все посылки организованы в пакеты. Каждый пакет начинается с поля синхронизации Sync, которое представляется последовательностью состояний KJKJKJKK (кодированную по NRZI), следующую после состояния Idle. Последние два бита (КК) являются маркером начала пакета SOP, используемым для идентификации первого бита идентификатора пакета PID. Идентификатор пакета является 4-бит-ным полем PID[3:0], идентифицирующим тип пакета (табл. 7.2), за которым в качестве контрольных следуют те же 4 бита, но инвертированные.
В
пакетах-маркерах IN, SETUP и OUT следующими
являются адресные поля: 7-битный адрес
функции и 4-битный адрес конечной точки.
Они позволяют адресовать до 127 функций
USB (нулевой адрес используется для конфигурирования)
и по 16 конечных точек в каждой функции.
В
пакете SOF имеется 11-битное поле номера
кадра (Frame Number Field), последовательно (циклически)
увеличиваемое для очередного кадра.
Поле
данных может иметь размер от 0 до
1023 целых байт. Размер поля зависит
от типа передачи и согласуется при
установлении канала.
Поле
СКС-кола присутствует во всех маркерах
и пакетах данных, оно защищает все поля
пакета, исключая PID. CRC для маркеров (5 бит)
и данных (11 бит) подсчитываются по разным
формулам.
Каждая
транзакция инициируется хост-контроллером
посылкой маркера и завершается
пакетом квитирования. Последовательность
пакетов в транзакциях иллюстрирует рис.
7.7.
Хост-контроллер
организует обмены с устройствами согласно
своему плану распределения ресурсов.
Контроллер цикли- чески (с периодом
1 мс) формирует кадры (Frames), в которые
укладываются все запланированные транзакции.
Каждый кадр начинается с посылки маркера
SOF (Start Of Frame), который является синхронизирующим
сигналом для всех устройств, включая
хабы. В конце каждого кадра выделяется
интервал времени EOF (End Of Frame), на время
которого хабы запрещают передачу по направлению
к контроллеру. Каждый кадр имеет свой
номер. Хост-контроллер оперирует 32-битным
счетчиком, но в маркере SOF передает только
младшие 11 бит. Номер кадра увеличивается
(циклически) во время EOF. Хост планирует
загрузку кадров так, чтобы в них всегда
находилось место для транзакций управления
и прерывания. Свободное время кадров
может заполняться сплошными передачами
(Bulk Transfers).
Рис.
7.8. Поток кадров USB
Для
изохронной передачи важна синхронизация
устройств и контроллера. Есть три варианта:
Подстройка
частоты кадров контроллера возможна,
естественно, под частоту внутренней синхронизации
только одного устройства. Подстройка
осуществляется через механизм обратной
связи, который позволяет изменять период
кадра в пределах ±1 битового интервала.
Системное
конфигурирование
USB
поддерживает динамическое
Все
устройства подключаются через порты
хабов. Хабы определяют подключение и
отключение устройств к своим портам и
сообщают состояние портов при запросе
от контроллера. Хост разрешает работу
порта и адресуется к устройству через
канал управления, используя нулевой адрес
- USB Default Address. При начальном подключении
или после сброса все устройства адресуются
именно так.
Хост
определяет, является новое подключенное
устройство хабом или функцией, и
назначает ему уникальный адрес
USB. Хост создает канал управления
(Control Pipe) с этим устрой- ством, используя
назначенный адрес и нулевой номер точки
назначения.
Если
новое устройство является хабом, хост
определяет подключенные к нему устройства,
назначает им адреса и устанавливает
каналы. Если новое устройство является
функцией, уведомление о подключении
передается диспетчером USB заинтересованному
ПО.
Когда
устройство отключается, хаб автоматически
запрещает соответствующий порт
и сообщает об отключении кон- троллеру,
который удаляет сведения о данном
устройстве из всех структур данных. Если
отключается хаб, процесс удаления
выполняется для всех подключенных к нему
устройств. Если отключается функция,
уведомление посылается заинтересованному
ПО.
Нумерация
устройств, подключенных к шине (Bus Enumeration),
осуществляется динамически по мере
их подключения (или включения их питания)
без какого-либо вме- шательства пользователя
или клиентского ПО. Процедура нумерации
выполняется следующим образом:
1. Хаб, к которому
подключилось устройство, информирует
хост о смене состояния своего порта ответом
на опрос состояния. С этого момента устройство
переходит в состояние Attached (подключено),
а порт, к которому оно подключилось, в
состояние Disabled.
2. Хост уточняет
состояние порта.
3. Узнав порт,
к которому подключилось новое
устройство, хост дает команду
сброса и разрешения порта.
4. Хаб формирует
сигнал Reset для данного порта (10
мс) и переводит его в состояние
Enabled. Подключенное устройство может
потреблять от шины ток
5. Пока устройство
не получит уникальный адрес,
оно доступно по дежурному
каналу, по которому хост-контроллер определяет
максимально допустимый размер поля данных
пакета.
6. Хост сообщает
устройству его уникальный
7. Хост считывает
конфигурацию устройства, включая заявленный
потребляемый ток от шины. Считывание
может затянуться на несколько кадров.