Выполнил студент группы 09-ОЗИ2
Гавриличев Н.С.

ИНТЕРФЕЙС USB, ПРОТОКОЛ, ТЕХНИЧЕСКАЯ РЕАЛИЗАЦИЯ

Введение

“USB (англ. Universal Serial Bus — «универсальная последовательная шина», произносится «ю-эс-би») — последовательный интерфейс передачи данных для среднескоростных и низкоскоростных периферийных устройств в вычислительной технике. Символом USB являются четыре геометрические фигуры: большой круг, малый круг, треугольник и квадрат, расположенные на концах древовидной блок-схемы.” (1.)
Универсальная последовательная шина (USB) стала чрезвычайно популярной за счет предоставления ряда удобств конечным пользователям, например, функция "Plug and Play", которая позволяет идентифицировать подключенное устройство без необходимости рестарта компьютера. Однако для разработчиков интегрировать USB-интерфейс в свои проекты оказалось более сложным по сравнению, например, с интерфейсом RS232. Кроме этого, на стороне ПК также должен быть предусмотрен специальный драйвер устройства. Как следствие, интерфейс RS232 остается очень популярным среди производителей конечных систем. Данный интерфейс хорошо изучен и в достаточной мере поддерживается операционной системой. Однако, как правило, в современных ПК физический порт RS232 не устанавливается и замещается на порты USB.

История

“Первые спецификации для USB 1.0 были представлены в 1994—1995 гг. Разработка USB поддерживалась фирмами Intel, Microsoft, Philips, US Robotics. USB стал «общим знаменателем» под тремя не связанными друг с другом стремлениями разных компаний:

  • Расширение функциональности компьютера. На тот момент для подключения внешних периферийных устройств к персональному компьютеру использовалось несколько «традиционных» (англ. legacy) интерфейсов (PS/2,последовательный порт, параллельный порт, порт для подключения джойстика, SCSI), и с появлением новых внешних устройств разрабатывали и новый разъём. Предполагалось, что USB заменит их все и заодно подхлестнёт разработку нетрадиционных устройств.
  • Подключить к компьютеру мобильный телефон. В то время поднимались на ноги компьютерные сети, телефоны переходили на цифровую передачу голоса, и ни один из имеющихся интерфейсов не годился для передачи с телефона на компьютер как речи, так и данных.
  • Простота для пользователя. Старые интерфейсы (например, COM- и LPT-порты) были крайне просты для разработчика, но не давали настоящего «plug and play». Требовались новые механизмы взаимодействия компьютера с низко- и среднескоростными внешними устройствами — возможно, более сложные для конструкторов, но надёжные, дружественные и пригодные к «горячему» подключению.

Поддержка USB вышла в виде патча к Windows 95b, в дальнейшем она вошла в стандартную поставку Windows 98. Устройств было мало, и шину называли «Useless serial bus» — «бесполезная последовательная шина». Впрочем, производители быстро осознали пользу USB, и уже к 2000 году большинство принтеров и сканеров работали с новым интерфейсом.
Hewlett-Packard, Intel, Lucent (ныне Alcatel-Lucent), Microsoft, NEC и Philips совместно выступили с инициативой по разработке более скоростной версии USB. Спецификация USB 2.0 была опубликована в апреле 2000 года, и в конце 2001 года эта версия была стандартизирована USB Implementers Forum. USB 2.0 является обратно совместимой со всеми предыдущими версиями USB.
В середине 2000-х годов BIOS’ы компьютеров начали массово поддерживать USB. Это позволило загружаться с флэш-дисков; пропала надобность в PS/2-клавиатуре, например, для переустановки ОС. На современныхматеринских платах устанавливают до 12 USB-контроллеров, по два порта на каждом. В большинстве современных ноутбуков COM- и LPT-портов нет, всё чаще появляются настольные компьютеры без этих портов.”(1.)

Основные сведения

“Кабель USB состоит из 4 медных проводников - 2 проводника питания и 2 проводника данных в витой паре, и заземленной оплётки (экрана). Кабели USB ориентированы, то есть имеют физически разные наконечники «к устройству» и «к хосту». Возможна реализация USB устройства без кабеля, со встроенным в корпус наконечником «к хосту». Возможно и неразъёмное встраивание кабеля в устройство, как в мышь (стандарт запрещает это для устройств full и high speed, но производители его нарушают). Существуют (хотя и запрещены стандартом) и пассивные USB удлинители, имеющие разъёмы «от хоста» и «к хосту». Шина строго ориентирована, имеет понятие «главное устройство» (хост, он же USB контроллер, обычно встроен в микросхему южного моста на материнской плате) и «периферийные устройства». Шина имеет древовидную топологию, поскольку периферийным устройством может быть разветвитель (hub), в свою очередь имеющий несколько нисходящих разъемов «от хоста». Разветвитель - это сложное электронное устройство, пассивных разветвителей не бывает. Соединение 2 компьютеров - или 2 периферийных устройств - пассивным USB кабелем невозможно. Существуют активные USB кабели для соединения 2 компьютеров, но они включают в себя сложную электронику, эмулирующую Ethernet адаптер, и требуют установки драйверов с обеих сторон. Устройства могут быть запитаны от шины, но могут и требовать внешний источник питания. Поддерживается и дежурный режим для устройств и разветвителей по команде с шины со снятием основного питания при сохранении дежурного питания и включением по команде с шины. USB поддерживает «горячее» подключение и отключение устройств. Это достигнуто увеличенной длиной заземляющего контакта разъёма по отношению к сигнальным. При подключении разъёма USB первыми замыкаются заземляющие контакты, потенциалы корпусов двух устройств становятся равны и дальнейшее соединение сигнальных проводников не приводит к перенапряжениям, даже если устройства питаются от разных фаз силовой трёхфазной сети. На логическом уровне устройство USB поддерживает транзакции приема и передачи данных. Каждый пакет каждой транзакции содержит в себе номер оконечной точки (endpoint) на устройстве. При подключении устройства драйверы в ядре ОС читают с устройства список оконечных точек и создают управляющие структуры данных для общения с каждой оконечной точкой устройства. Совокупность оконечной точки и структур данных в ядре ОС называется каналом (pipe). Оконечные точки, а значит, и каналы, относятся к одному из 4 классов - поточный (bulk), управляющий (control), изохронный (isoch) и прерывание (interrupt). Низкоскоростные устройства, такие, как мышь, не могут иметь изохронные и поточные каналы. Управляющий канал предназначен для обмена с устройством короткими пакетами «вопрос-ответ». Любое устройство имеет управляющий канал 0, который позволяет программному обеспечению ОС прочитать краткую информацию об устройстве, в том числе коды производителя и модели, используемые для выбора драйвера, и список других оконечных точек. Канал прерывания позволяет доставлять короткие пакеты и в том, и в другом направлении, без получения на них ответа/подтверждения, но с гарантией времени доставки - пакет будет доставлен не позже, чем через N миллисекунд. Например, используется в устройствах ввода (клавиатуры/мыши/джойстики). Изохронный канал позволяет доставлять пакеты без гарантии доставки и без ответов/подтверждений, но с гарантированной скоростью доставки в N пакетов на один период шины (1 КГц у low и full speed, 8 КГц у high speed). Используется для передачи аудио- и видеоинформации.
Поточный канал дает гарантию доставки каждого пакета, поддерживает автоматическую приостановку передачи данных по нежеланию устройства (переполнение или опустошение буфера), но не дает гарантий скорости и задержки доставки. Используется, например, в принтерах и сканерах. Время шины делится на периоды, в начале периода контроллер передает всей шине пакет «начало периода». Далее в течение периода передаются пакеты прерываний, потом изохронные в требуемом количестве, в оставшееся время в периоде передаются управляющие пакеты и в последнюю очередь поточные. Активной стороной шины всегда является контроллер, передача пакета данных от устройства к контроллеру реализована как короткий вопрос контроллера и длинный, содержащий данные, ответ устройства. Расписание движения пакетов для каждого периода шины создается совместным усилием аппаратуры контроллера и ПО драйвера, для этого многие контроллеры используют крайне сложный DMA со сложной DMA-программой, формируемой драйвером. Размер пакета для оконечной точки есть вшитая в таблицу оконечных точек устройства константа, изменению не подлежит. Он выбирается разработчиком устройства из числа тех, что поддерживаются стандартом USB.” (2.)

Спецификации

“Предварительные версии

  • USB 0.7: спецификация выпущена в ноябре 1994 года.
  • USB 0.8: спецификация выпущена в декабре 1994 года.
  • USB 0.9: спецификация выпущена в апреле 1995 года.
  • USB 0.99: спецификация выпущена в августе 1995 года.
  • USB 1.0 Release Candidate: спецификация выпущена в ноябре 1995 года.

USB 1.0

Спецификация выпущена 15 января 1996 года.
Технические характеристики:
два режима передачи данных:

  • режим с высокой пропускной способностью (Full-Speed) — 12 Мбит/с
  • режим с низкой пропускной способностью (Low-Speed) — 1,5 Мбит/с
  • максимальная длина кабеля для режима с высокой пропускной способностью — 5 м
  • максимальная длина кабеля для режима с низкой пропускной способностью — 3 м
  • максимальное количество подключённых устройств (включая размножители) — 127

возможно подключение устройств, работающих в режимах с различной пропускной способностью к одному контроллеру USB

  • напряжение питания для периферийных устройств — 5 В
  • максимальный ток, потребляемый периферийным устройством — 500 мА

USB 1.1

Спецификация выпущена в сентябре 1998 года. Исправлены проблемы и ошибки, обнаруженные в версии 1.0. Первая версия, получившая массовое распространение.

USB 2.0

Спецификация выпущена в апреле 2000 года.
USB 2.0 отличается от USB 1.1 введением режима Hi-speed.
Для устройств USB 2.0 регламентировано три режима работы:

  • Low-speed, 10—1500 Кбит/c (используется для интерактивных устройств: клавиатуры, мыши, джойстики)
  • Full-speed, 0,5—12 Мбит/с (аудио-, видеоустройства)
  • Hi-speed, 25—480 Мбит/с (видеоустройства, устройства хранения информации)

Последующие модификации

Последующие модификации к спецификации USB публикуются в рамках Извещений об инженерных изменениях (англ. Engineering Change Notices — ECN). Самые важные из модификаций ECN представлены в наборе спецификаций USB 2.0 (англ. USB 2.0 specification package), доступном на сайте USB Implementers Forum.

  • Mini-B Connector ECN: извещение выпущено в октябре 2000 года.
  • Errata, начиная с декабря 2000: извещение выпущено в декабре 2000 года.
  • Pull-up/Pull-down Resistors ECN: извещение выпущено в мае 2002 года.
  • Errata, начиная с мая 2002: извещение выпущено в мае 2002 года.
  • Interface Associations ECN: извещение выпущено в мае 2003 года.
  • Были добавлены новые стандарты, позволяющие ассоциировать множество интерфейсов с одной функцией устройства.
  • Rounded Chamfer ECN: извещение выпущено в октябре 2003 года.
  • Unicode ECN: извещение выпущено в феврале 2005 года.
  • Данное ECN специфицирует, что строки закодированы с использованием UTF-16LE.
  • Inter-Chip USB Supplement: извещение выпущено в марте 2006 года.
  • On-The-Go Supplement 1.3: извещение выпущено в декабре 2006 года.
  • USB On-The-Go делает возможным связь двух USB-устройств друг с другом без отдельного USB-хоста. На практике одно из устройств играет роль хоста для другого.

USB OTG


USB OTG (аббр. от On-The-Go) — дальнейшее расширение спецификации USB 2.0, предназначенное для лёгкого соединения периферийных USB-устройств друг с другом без необходимости подключения к ПК. Например, цифровой фотоаппарат можно подключать к фотопринтеру напрямую, если они оба поддерживают стандарт USB OTG. К моделям КПК и коммуникаторов, поддерживающих USB OTG, можно подключать некоторые USB-устройства. Обычно это флэш-накопители, цифровые фотоаппараты, клавиатуры, мыши и другие устройства, не требующие дополнительных драйверов. Этот стандарт возник из-за резко возросшей в последнее время необходимости надёжного соединения различных устройств без использования ПК.
Хотя соединение USB OTG выглядит как одноранговое, на самом деле только создаётся такое ощущение — в действительности устройства сами определяют, какое из них будет мастер-устройством, а какое — подчинённым. Одноранговый интерфейс USB существовать не может.

USB Wireless

USB wireless — технология USB (официальная спецификация доступна с мая 2005 года), позволяющая организовать беспроводную связь с высокой скоростью передачи информации (до 480 Мбит/с на расстоянии 3 метра и до 110 Мбит/с на расстоянии 10 метров).
23 июля 2007 года USB Implementers Forum (USB-IF) объявила о сертификации шести первых потребительских продуктов с поддержкой Wireless USB.” (1)

USB 3.0

“Новый интерфейс USB 3.0 получил название SuperSpeed USB(СуперСкоростной или СверхСкоростной USB). Обеспечивая ощутимый прирост скорости, USB 3.0 сохраняет полную совместимость с уже существующим оборудованием стандарта USB 2.0.
USB 3.0 поддерживает скорость передачи до 5 Гбит/с.
Пропускная способность почти в два раза превышает современный стандарт Serial ATA. USB Implementers Forum считает, что пропускная способность останется принципиально важной, и скорости USB 3.0 будет достаточной для всех потребительских устройств на протяжении ближайших пяти лет.” (3.)

Интерфейс 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 используются несколько типов пересылок информации.

  • Управляющая пересылка (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.” ( 4.)

Энергопотребление USB-устройств

“Многим USB-устройствам для работы достаточно питания, получаемого по интерфейсу USB, поэтому им не требуется разъем для подключения к электросети.
В зависимости от уровня энергопотребления, USB-устройства делятся на две группы:
Low-power: потребляют менее чем 100 мА.
High-power: допустимый верхний предел для устройств класса high-power – 500 мА. Их рекомендуется подключать напрямую к компьютеру или к активному хабу. При подключении к пассивному хабу устройства high-power работать не смогут, о чем вы будете предупреждены сообщением операционной системы Windows.
USB-ускорение
Различные стандарты USB имеют колоссальную разницу в пропускной способности. Скоростной потенциал жестких дисков можно будет использовать в полной мере только с USB 3.0.”(1.)

Протокол

“Все обмены (транзакции) по USB состоят из трех пакетов. Каждая транзакция планируется и начинается по инициати- ве контроллера, который посылает пакет-маркер {Token Packet). Он описывает тип и направление передачи, адрес устройства USB и номер конечной точки. В каждой транзакции возможен обмен только между адресуемым устройством (его конечной точкой) и хостом. Адресуемое маркером устройство распознает свой адрес и готовится к обмену. Источник данных (определенный маркером) передает пакет данных (или уведомление об отсутствии данных, предназначенных для передачи). После успешного приема пакета приемник данных посылает пакет подтверждения (Handshake Packet).
Планирование транзакций обеспечивает управление поточ- ными каналами. На аппаратном уровне использование отказа от транзакции (NAck) при недопустимой интенсивнос- ти передачи предохраняет буферы от переполнения сверху и снизу. Маркеры отвергнутых транзакций повторно пере- даются в свободное для шины время. Управление потоками позволяет гибко планировать обслуживание одновременных разнородных потоков данных.
Устойчивость к ошибкам обеспечивают следующие свойства USB:

  • Высокое качество сигналов, достигаемое благодаря диф- ференциальным приемникам/передатчикам и экраниро- ванным кабелям.
  • Защита полей управления и данных CRC-кодами.
  • Обнаружение подключения и отключения устройств и конфигурирование ресурсов на системном уровне.
  • Самовосстановление протокола с тайм-аутом при потере пакетов.
  • Управление потоком для обеспечения изохронности и управления аппаратными буферами.
  • Независимость функций от неудачных обменов с други- ми функциями.

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

Заключение

Хотелось бы отметить, что наряду с быстро развивающейся технологией USB активно развиваются аналоговые технологии, ни чуть не уступающие выше упомянутой. Сравним к примеру пропускную способность шины USB и шины FireWire: пиковая пропускная способность USB 2.0 составляет 480 Мбит/с (60 Мбайт/с), на практике обеспечить пропускную способность, близкую к пиковой, не удаётся (~33,5 Мбайт/сек на практике). Это объясняется достаточно большими задержками шины USB между запросом на передачу данных и собственно началом передачи. А, шина FireWire, хотя и обладает меньшей пиковой пропускной способностью 400 Мбит/с, что на 80 Мбит/с (10 Мбайт/с) меньше, чем у USB 2.0, в реальности позволяет обеспечить бо́льшую пропускную способность для обмена данными с жёсткими дисками и другими устройствами хранения информации. В связи с этим разнообразные мобильные накопители уже давно «упираются» в недостаточную практическую пропускную способность USB 2.0.
Все же несмотря на все недостатки данной технологии, она широко используется в различных крупных мировых компаниях выпускающих теле, видео, аудио оборудование, компьютерную технику и т.д.

Список источников

  1. Википедия, URL: http://ru.wikipedia.org/wiki/USB#.D0.9F.D1.80.D0.B8.D0.BC.D0.B5.D1.87.D0.B0.D0.BD.D0.B8.D1.8F (дата обращения 17.05.2011)
  2. rs232.net.ru, URL: http://rs232.net.ru/doc/computer/USB.php(дата обращения 17.05.2011)
  3. www.usb-30.ru, URL: http://www.usb-30.ru/(дата обращения 18.05.2011)
  4. kazus.ru, URL: http://kazus.ru/articles/415.html (дата обращения 17.05.2011)
  5. cxem.net, URL: http://cxem.net/comp/comp56.php (дата обращения 18.05.2011)






Яндекс.Метрика