|
Интерфейс
USB
описание и основы устройств сопряжения
|
|
|
Интерфейс
USB (Universal Serial Bus) - Универсальный Последовательный Интерфейс
-
предназначен для подключения периферийных устройств к персональному
компьютеру. Позволяет производить обмен информацией с периферийными
устройствами на трех скоростях (спецификация USB 2.0):
Низкая скорость (Low Speed - LS) -
1,5 Мбит/с;
Полная скорость (Full Speed - FS) - 12 Мбит/с;
Высокая скорость (High Speed - HS) - 480 Мбит/с.
|
|
|
Для
подключения периферийных устройств используется 4-жильный кабель:
питание +5 В, сигнальные провода D+ и D-, общий провод.
Интерфейс
USB соединяет между собой хост (host) и устройства. Хост находится
внутри персонального компьютера и управляет работой всего интерфейса.
Для того, чтобы к одному порту USB можно было подключать более одного
устройства, применяются хабы (hub - устройство, обеспечивающее подключение
к интерфейсу других устройств). Корневой хаб (root hub) находится
внутри компьютера и подключен непосредственно к хосту. В интерфейсе
USB используется специальный термин "функция" - это логически
законченное устройств, выполняющее какую-либо специфическую функцию.
Топология интерфейса USB представляет собой набор из 7 уровней (tier):
на первом уровне находится хост и корневой хаб, а на последнем -
только функции. Устройство, в состав которого входит хаб и одна
или несколько функций, называется составным (compaund device).
Порт
хаба или функции, подключаемый к хабу более высокого уровня, называется
восходящим портом (upstream port), а порт хаба, подключаемый к хабу
более низкого уровня или к функции называется нисходящим портом
(downstream port).
Все передачи данных по интерфейсу иницируются хостом. Данные передаются
в виде пакетов. В интерфейсе USB испольуется несколько разновидностей
пакетов: |
|
|
-
пакет-признак (token paket) описывает тип
и направление передачи данных, адрес устройства и порядковый
номер конечной точки (КТ - адресуемая часть USB-устройства);
пакет-признаки бывают нескольких типов: IN, OUT, SOF, SETUP;
- пакет с данными (data packet) содержит
передаваемые данные;
- пакет согласования (handshake packet) предназначен
для сообщения о результатах пересылки данных;
Пакеты
согасования бывают нескольких типов: ACK, NAK, STALL.
Таким
образом каждая транзакция состоит из трех фаз: фаза передачи
пакета-признака, фаза передачи данных и фаза согласования. |
USB
интерфейс |
|
|
|
|
В
интерфейсе USB используются несколько типов пересылок информации.
- Управляющая пересылка (control transfer) используется
для конфигурации устройства, а также для других специфических для
конкретного устройства целей.
- Потоковая пересылка (bulk transfer) используется
для передачи относительно большого объема информации.
- Пересылка с прерыванием (iterrupt transfer) испольуется
для передачи относительно небольшого объема информации, для которого
важна своевременная его пересылка. Имеет ограниченную длительность
и повышенный приоритет относительно других типов пересылок.
- Изохронная пересылка (isochronous transfer) также
называется потоковой пересылкой реального времени. Информация, передаваемая
в такой пересылке, требует реального масштаба времени при ее создании,
пересылке и приеме. |
|
|
Потоковые
пересылки характеризуются гарантированной безошибочной передачей
данных между хостом и функцией посредством обнаружения ошибок при
передаче и повторного запроса информации.
Когда хост становится готовым принимать данные от функции, он в фазе
передачи пакета-признака посылает функции IN-пакет. В ответ на это
функция в фазе передачи данных передает хосту пакет с данными или,
если она не может сделать этого, передает NAK- или STALL-пакет. NAK-пакет
сообщает о временной неготовности функции передавать данные, а STALL-пакет
сообщает о необходимости вмешательства хоста. Если хост успешно получил
данные, то он в фазе согласования посылает функции ACK-пакет. В противном
случае транзакция завершается.
Когда хост становится готовым передавать данные, он посылает функции
OUT-пакет, сопровождаемый пакетом с данными. Если функция успешно
получила данные, он отсылает хосту ACK-пакет, в противном случае отсылается
NAK- или STALL-пакет.
Управляющие пересылки содержат не менее двух стадий: Setup-стадия
и статусная стадия. Между ними может также располагаться стадия передачи
данных. Setup-стадия используется для выполнения SETUP-транзакции,
в процессе которой пересылается информация в управляющую КТ функции.
SETUP-транзакция содержит SETUP-пакет, пакет с данным и пакет согласования.
Если пакет с данными получен функцией успешно, то она отсылает хосту
ACK-пакет. В противном случае транзакция завершается.
В стадии передачи данных управляющие пересылки содержат одну или несколько
IN- или OUT-транзакций, принцип передачи которых такой же, как и в
потоковых пересылках. Все транзакции в стадии передачи данных должны
производиться в одном направлении.
В статусной стадии производится последняя транзакция, которая использует
те же принципы, что и в потоковых пересылках. Направление этой транзакции
противоположно тому, которое использовалось в стадии передачи данных.
Статусная стадия служит для сообщения о результате выполнения SETUP-стадии
и стадии передачи данных. Статусная информация всегда передается от
функции к хосту. При управляющей записи (Control Write Transfer) статусная
информация передается в фазе передачи данных статусной стадии транзакции.
При управляющем чтении (Control Read Transfer) статусная информация
возвращается в фазе согласовании статусной стадии транзакции, после
того как хост отправит пакет данных нулевой длины в предыдущей фазе
передачи данных.
Пересылки с прерыванием могут содержать IN- или OUT-пересылки.
При получении IN-пакета функция может вернуть пакет с данными, NAK-пакет
или STALL-пакет. Если у функции нет информации, для которой требуется
прерывание, то в фазе передачи данных функция возвращает NAK-пакет.
Если работа КТ с прерыванием приостановлена, то функция возвращает
STALL-пакет. При необходимости прерывания функция возвращает необходимую
информацию в фазе передачи данных. Если хост успешно получил данные,
то он посылает ACK-пакет. В противном случае согласующий пакет хостом
не посылается.
Изохронные транзакции содержат фазу передачи признака
и фазу передачи данных, но не имеют фазы согласования. Хост отсылает
IN- или OUT-признак, после чего в фазе передачи данных КТ (для IN-признака)
или хост (для OUT-признака) пересылает данные. Изохронные транзакции
не поддерживают фазу согласования и повторные посылки данных в случае
возникновения ошибок. |
|
|
|
|
|
Читайте
также статью
Интерфейс USB
|
|
|
Подробную
информацию о USB читайте в статье Александра Русева
Устройство USB и FireWire
|
|
|