USB (Universal Serial Bus - универсальная последовательная шина) является промышленным стандартом расширения архитектуры РС, ориентированным на интеграцию с телефонией и устройствами бытовой электроники. Спецификация USB 1.0 была опубликована в январе 1996.
Архитектура USB определялась следующими критериями:
° Легко реализуемое расширение периферии РС
° Дешевое решение, поддерживающее скорость передачи до 12 Мбит/с.
° Полна поддержка в реальном времени передачи аудио и сжатых видео данных.
° Гибкость протокола для смешанной передачи изоморфных данных и асинхронных сообщений
° Интеграция в технологию выпускаемых устройств.
° Доступность в РС всех конфигураций и размеров.
° Открытие новых классов устройств, расширяющих РС.
С точки зрения пользователя привлекательны такие черты USB:
° Простота кабельной системы подключений.
° Изоляция подробностей электрических подключений от пользователя.
° Самоидентифицирующаяся периферия, автоматическая связь устройств с драйверами и конфигурирование.
° Возможность динамического подключения и реконфигурирования периферии.
СТРУКТУРА И ВЗАИМОДЕЙСТВИЕ СИСТЕМЫ USB
USB обеспечивает обмен данными между хост-компьютером и множеством одновременно доступных периферийных устройств. Распределение пропускной способности шины между подключенными устройствами планируется хостом и реализуется им с помощью посылки маркеров. Шина позволяет подключать, конфигурировать, использовать и отключать устройства во время работы хоста и самих устройств - динамическое ("горячее") подключение и отключение.
° Устройства (Device) USB могут являться хабами, "функциями" или их комбинацией.
° Хаб (Hub) обеспечивает дополнительные точки подключения устройств к шине.
° "Функции" (Function) USB предоставляют системе дополнительные возможности - например подключение к ISDN, цифровой джойстик. акустические колонки с цифровым интерфейсом и т.д.
Устройство USB должно иметь интерфейс USB, обеспечивающий поддержку протокола USB, выполнение стандартных операций(конфигурирование и сброс) и стандартное представление информации, описывающей устройство. Многие устройства, подключаемые к USB, имеют в своем составе и "функции" и хабы.
Работой всей системы USB управляет хост-контроллер. являющийся программно-аппаратной подсистемой хост-компьютера.
Физическое соединение устройств осуществляется по топологии многоярусной звезды. Центром каждой звезды является хаб, каждый кабельный сегмент соединяет две точки - хаб с другим хабом или хаб с функцией. В системе USB имеется только один хост-контроллер, расположенный в вершине пирамиды устройств и хабов USB. Хост-контроллер интегрируется с корневым хабом( root hub), обеспечивающим одну или несколько точек подключения - портов. Контроллер USB, входящий в состав чипсетов многих современных системных плат обычно имеет двухпортовый хаб.
Логически устройство подключенной к любому хабу и сконфигурированное может рассматриваться как подключенное напрямую к хост-контроллеру.
"Функции" представляют собой устройства USB, способный принимать или передавать данные или управляющую информацию по шине. Физически в одном корпусе может быть несколько "функций" со встроенным хабом обеспечивающим их подключение к одному порту
Каждая "функция" предоставляет конфигурационную информацию, описывающую его возможности и требования к ресурсам. Перед использованием функция должна быть сконфигурирована хостом - ей должна быть выделена полоса в канале выбраны специфические опции конфигурации.
Хаб - ключевой элемент системы Plug-and-Play в архитектуре USB. Хаб является кабельным концентратором, точки подключения называются портами хаба. Каждый хаб преобразует одну точку подключения в их множество. Архитектура подразумевает возможность соединения нескольких хабов.
У каждого хаба имеется один восходящий порт( upstream port), предназначенный для подключению к хосту и ли к хабу верхнего уровня. Остальные порты являются являются нисходящими(downstream) и предназначены для подключения функций и хабов нижнего уровня. Хаб может распознать подключение или отключение устройств к этим портам и управлять подачей питания на их сегменты. Каждый из этих портов индивидуально может быть разрешен или запрещен и сконфигурирован на полную или ограниченную скорость обмена. Хаб обеспечивает изоляцию сегментов с низкой скоростью от высокоскоростных.
Хабы могут иметь возможность управления подачей питания на нисходящие порты, предусмотрена управляемая установка ограничения на ток, потребляемый каждым портом.
Система USB разделяется на три уровня с определенными правилами взаимодействия. Устройство USB делится на интерфейсную часть, часть устройства и функциональную часть. Хост тоже делится на три части - интерфейсную, системную и ПО устройства. Каждая часть отвечает только за определенный круг задач, взаимодействие между ними показано на рисунке 1.1.
Рис 1.1. - Взаимодействие компонентов USB
1. Физическое устройство USB - устройство на шине, выполняющее функции, интересующие пользователя.
2. Client SW - программное обеспечение, соответствующее конкретному устройству , исполняемое на хост-компьютере. Может являться составной частью ОС или специальным продуктом.
3. USB System SW - системная поддержка USB операционной системой, независимая от конкретных устройств и клиентского ПО.
USB Host Controller - аппаратные и программные средства, обеспечивающие подключение устройств USB к хост-компьютеру.
ФИЗИЧЕСКИЙ ИНТЕРФЕЙС
Информационные сигналы и питающее напряжение 5В передаются по четырехпроводному кабелю. Для сигнала используется дифференциальный способ передачи по двум проводам D+ и D-. Уровни сигналов передатчиков в статическом режиме должны быть ниже 0.3 В( низкий уровень) или выше 2.8 В (высокий уровень). Приемники должны выдерживать входное напряжение в пределах -0.5...+3.8 В. Передатчики должны иметь возможность перехода в высокоимпедансное состояние для обеспечения двунаправленной полудуплексной передачи данных по одной паре проводов.Передача по двум проводам не ограничивается лишь дифференциальными сигналами. Кроме дифференциального приемника, каждое устройство имеет и линейные приемники сигналов D+ и D- , а передатчики этих линий управляются индивидуально. Это позволяет различать множество состояний линии, используемых для организации аппаратного интерфейса. Состояния Diff0 и Diff1 определяются по разности потенциалов на линиях D+ и D- более 200 мВ при условии, что на одной из них потенциал выше порога срабатывания VSE. Состояние, при котором на обоих входах D+ и D- присутствует низкий уровень называется линейным нулем (SE0 - single-ended zero). Интерфейс определяет следующие состояния:
° Data J State и Data K State - состояния передаваемого бита ( определяются через состояния Diff0 и Diff1).
° Idle State - пауза на шине.
° Resume State - сигнал "пробуждения" для вывода устройства из спящего режима.
° Start of Packet (SOP) - начало пакета( переход из "Idle" в "K").
° End of Packet (EOP) - конецпакета.
° Disconnect - устройство отключено от порта.
° Connect - устройство подключено к порту.
° Reset - сброс устройства.
Состояния определяются сочетаниями дифференциальных и линейных сигналов, для полной и низкой скоростей состояния Diff0 и Diff1 имеют противоположное назначение. В декодировании состояние Disconnect, Connect и Reset принимается во внимание и время нахождения линий (более 2.5 мс) в определенных состояниях.
Шина имеет два режима передачи. Полная скорость передачи сигналов USB составляет 12 Мбит/с, низкая - 1.5 Мбит/с. Для полной скорости используется экранированная витая пара с импедансом 90 Ом и длиной сегмента до 5 м, для низкой - невитой и неэкранированный кабель при длине сегмента до 3 м. Одна и та же система может использовать оба режима, переключение для устройств осуществляется прозрачно. Низкая скорость предназначена для работы с небольшим количеством устройств, не требующих высокой пропускной способности канала.
Скорость, используемая устройством, подключенным к конкретному порту определяется хабом по уровням сигналов на линиях D+ и D-, смещаемых нагрузочными резисторами R2 приемопередатчиков( рис 2.1, 2.2 ). Сигналы кодируются по методу NRZI ( Non Retur n To Zero Invert ) - при переходе сигнала из 0 в 1 сигнал NRZI не изменяется, а при переходе из 1 в 0 - изменяется на противоположный. Каждому пакету предшествует поле SYNC, позволяющее приемнику настроиться на частоту передатчика.Кроме сигнальной пары кабель имеет линии VBus и GND для передачи питающего напряжения 5В к устройствам.
Рис 2.1 - Подключение полноскоростного устройства
Рис 2.2 - Подключение низкоскоростного устройства
Таблица 2.1. - Назначение выводов разъема USB
Контакт | Цепь |
1 | VCC |
2 | -Data |
3 | +Data |
4 | Ground |
Разъемы для подключения к хабам и для подключения к устройствам различаются механически, что исключает возможность неверного соединения. Для облегчения распознания разъема USB на корпусе устройства ставится обозначение, приведенное на рисунке 2.3.
Рис 2.3. - Обозначение разъема USB
Питание устройства USB возможно как от кабеля так и от собственного блока питания.Хост обеспечивает питанием непосредственно подключенные к нему устройства. Каждый хаб обеспечивает питание устройств, подключенным к его нисходящим портам. USB имеет развитую систему управления энергопотреблением. Хост компьютер может иметь собственную систему управления энергопотреблением, к которой логически подключается одноименная система USB. Программное обеспечение USB взаимодействуя с этой системой поддерживает такие события как приостанов (SUSPEND) или восстановление (RESUME). Кроме того, устройства USB могут сами являться источниками событий, отрабатываемых системой управления энергопотреблением.