Система USB

ВВЕДЕНИЕ



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 могут сами являться источниками событий, отрабатываемых системой управления энергопотреблением.



USB 2.0



В октябре 1999 года разработчики аппаратных средств, ранее опубликовавшие спецификацию USB 1.1 (Compaq, Hewlett-Packard, Intel, Lucent, Microsoft, NEC и Philips), представили спецификацию USB 2.0, в которой предусмотрено повышение быстродействия шины в 40 (480 Мбит/с) раз по сравнению с предыдущими версиями. USB 2.0 будет полностью совместима с USB 1.1, и будет использовать те же самые кабели и соединители. Ранее объявлялось повышение быстродействия в 10 - 20 раз, но испытания показали, что пропускная способность 480 Мбит/с может быть достигнута без ущерба для совместимости с версией USB 1.1. Ожидается, что эта пропускная способность будет удовлетворять требованиям всех пользователей в ближайшем будущем.

Разработчики считают, что появление этой версии шины окажет мощное влияние на появление периферийных устройств следующего поколения.

Пропускной способности 12 Мбит/с вполне хватает таким периферийным устройства как телефоны, клавиатуры, мыши, цифровые джойстики, приводы гибких дисков, цифровые колонки, и принтеры нижнего уровня. Возможность подключения этой периферии в USB 2.0 сохранится. Более высокая полоса пропускания позволит использовать более современные устройства, такие как, видеокамеры высокого разрешения, сканеры и принтеры следующего поколения, скоростные внешние накопители. Ожидается, что USB 2.0 будут поддерживаться чипсетами ведущих производителей наряду с USB 1.1. Так же как и USB 1.1 USB 2.0 будет позволять подключать периферийные устройства к всем классам персональных компьютеров( настольные системы, мобильные компьютеры и т.д ).

Для применения в системах требующих экономного расхода электроэнергии ( таких как ноутбуки ит.д) в USB 2.0 как и в USB 1.1 предусмотрена мощная система управления питанием, что, как ожидается, откроет для USB 2.0 рынок мобильных компьютеров.

На сегодня для USB 2.0 существует лишь один солидный конкурент, это IEEE 1394, но как отмечается некоторыми обозревателями 1394 это хорошая шина, выброшенная разработчиками на произвол судьбы в то время, как USB 2.0 усиленно поддерживается и проталкивается на рынок такими гигантами как Compaq, Hewlett-Packard, Intel, Microsoft и т.д. Разработчики USB 2.0 считают, что эта шина станет доминирующей в то время как 1394 отводится место лишь в сфере аудио и видео электронных устройств (DVD, цифровое телевидение и т.д). Ожидается, что 1394 и USB 2.0 в ближайшее время будут мирно уживаться в системе

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

Это только одна из тех "страшных" историй, что могут произойти с любым из владельцев компьютеров 2000-го года выпуска (или еще более ранних). Особенно это касается всех компьютеров, которые собраны на базе АТ материнских плат. Потому как для АТХ форм-фактора материнские платы в большинстве случаев уже содержали USB хост-контроллеры, а в компьютеры встраивались USB-порты.







Но время не стоит на месте - и сейчас USB-порты являются неотъемлемым интерфейсом для современного компьютера. Более того - именно USB-порты привносят новые веяния в конструкцию корпусов компьютеров. Эти порты начали располагать на передней панели компьютеров. Раньше этой чести удостаивались разве что аудиовходы/выходы.

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

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

Конечно же, если компьютер довольно новый, то любое устройство с USB-интерфейсом можно подсоединить без выключения питания - Windows, начиная с версии 98, нормально распознает подключение нового устройства USB "на лету", корректно определяет его и позволяет сразу же работать с этим устройством.

Единственный нюанс может заключаться в различии версий самих USB-устройств. Дело в том, что развитие USB не остановилось на разработке универсального компьютерного интерфейса. Сразу же появились новые идеи, которые нашли свое воплощение в следующей версии стандарта USB 2.0. Спецификация на эту версию универсального интерфейса была утверждена вскоре после предыдущей версии 1.1 - поэтому на данный момент большое число производителей компьютеров и компьютерной периферии поддерживают этот стандарт. Windows сама определяет версию USB-устройства, подключенного к порту, и работает с ним соответствующим образом. Windows 98 и ME поддерживают спецификацию USB 1.1, Windows 2000 и XP - USB 2.0.

Ну а что же все-таки делать, если USB-портов не видно ни на передней, ни на задней панели компьютера? Это тоже не причина, чтобы отказываться от устройств, имеющих USB-интерфейсы. USB именно потому и является универсальным интерфейсом, что позволяет отойти от привязки компьютерной периферии к конкретным типам интерфейсов. Многие годы было известно, что для работы принтера необходим параллельный порт (LPT), для подключения модема - последовательный порт (СОМ), и такой же порт нужен для работы мыши.

Но вот сначала мышь переселили на PS/2-разъем, освободим тем самым место для других периферийным устройств. Затем появился USB, а в будущем, конечно же, компьютер будет иметь один или два интерфейса для подключения всех типов устройств. Примером тому могут служить последние iMac - модели компьютеров от Apple, у которых почти все порты являются USB. Кроме того, очень удобно расположение USB-портов на клавиатуре.

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

Но вернемся к отсутствующим USB-портам. Во-первых, существуют PCI-контроллеры, которые устанавливаются в PCI-слоты на материнской плате и позволяют сразу же (после недолгой настройки) использовать USB-порты.

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

По миру ходят слухи, что встречаются и ISA-USB-контроллеры. Но, ввиду того что ISA-слоты, наверное, исчезли с материнских плат раньше, чем появилась первая спецификация USB, это звучит как-то маловероятно.

Устанавливаем PCI-USB-контроллер

"Не бери важкого в руки i дурного в голову" - учит нас мудрая украинская пословица. В этом смысле использование PCI-USB-контроллера - это наиболее простой и быстрый способ запастись парочкой-другой USB-портов. Windows ME, 2000 и XP в своем багаже имеют большинство необходимых драйверов для поддержания наиболее распространенных контроллеров USB, поэтому установка данного устройства в любой из Windows проста до неприличия. Любителям Windows 98, возможно, придется все-таки напрячься и установить драйвера дополнительно. Но в большинстве случаев это не потребуется.

Что представляет собой PCI-USB-контроллер? Это PCI-плата расширения до 4-5 USB-портов, в которую встроен хост-контроллер USB. Стоимость PCI-USB-контроллера составляет около 15 у. е.

Плату достаточно установить в любой свободный PCI-слот (при выключенном компьютере) - и загрузить Windows. Дальнейший ход событий может варьироваться в зависимости от операционной системы, но общая схема следующая. Мастер нового оборудования должен определить присутствие нового устройства. А точнее, двух: если PCI-USB-контроллер поддерживает спецификацию USB 2.0, тогда он для совместимости, возможно, будет иметь также контроллер USB для обратной поддержки спецификации USB 1.1 - в таком случае хост-контролеров будет определено два. Далее Windows может установить драйверы для хост-контроллеров автоматически или попросит указать их местоположение. В комплекте с PCI-USB-контроллером обязательно должен поставляться компакт-диск с драйверами, который можно "подсунуть" Windows для корректной установки устройства в системе.



 



Проверить, установлен ли PCI-USB-контроллер в системе, очень просто. Нужно зайти в Диспетчер устройств - там в разделе Универсальная последовательная шина (Universal Serial Bus controllers) должно появиться, как минимум, два объекта: Хост-контроллер (Host Controller) и Корневой разветвитель (Root Hub).

Стоит отметить, что хост-контроллеров может быть (и, скорее всего, так оно и будет) несколько. Типичный пример - популярный чипсет Intel i810, в схему которого включены универсальный хост-контроллер и корневой разветвитель, но не USB-порт - поскольку производители материнских плат на тот момент еще не снабжали свои изделия USB.

Без PCI-USB-контроллера в системе будет установлено два устройства: Intel 82801AA USB универсальный хост-контроллер и USB корневой разветвитель. После установки USB2.0-совместимого PCI-USB-контроллера в систему добавились NEC PCI to USB Enhanced host controller, два NEC PCI to USB Open host controller USB 2.0 Root Hub Device и два дополнительных корневых разветвителя.

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

Устанавливаем USB-хвост

Как уже упоминалось, USB-шлейф - это несколько портов USB, имеющих для соединения с материнской платой 10 контактов.

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

Первым внешним признаком наличия USB-контролера служит определение Windows хост-контроллера USB. В Диспетчере устройств в разделе Контроллеры универсальной последовательной шины USB должны находиться два устройства: "универсальный хост-контроллер" и "корневой USB-концентратор". Если оба эти устройства установлены и функционируют нормально - значит, можно подключать USB-хвост.

Конечно же, Windows может не определить хост-контроллер USB и не отображать ничего в Диспетчере устройств. Тогда можно воспользоваться специальной утилитой с официального сайта USB http://www.usb.org/faq/ans3/usbready.exe для определения поддержки USB. Программа имеет англоязычный интерфейс, так что, если воспользоваться ею не удастся, следует обратиться к руководству по материнской плате.







При подключении контактов USB-шлейфа к материнской плате без руководства пользователя не обойтись. Именно там должны быть расписаны типы контактов и их расположение в группе. На раннем этапе становления стандартов USB разработчики чипсетов проектировали и располагали универсальную последовательную шину на свое усмотрение. В результате на ранних реализациях разъем для USB-хвоста мог иметь как 8, так и 10 контактов. Располагаясь в два ряда, они могли иметь разную очередность - в результате чего желательно подключать каждый контакт отдельно, во избежание короткого замыкания. Следует обязательно помнить, что USB имеет по одному контакту питания и заземления - и, перепутав их, можно повредить подключаемое устройство (в лучшем случае) или даже повредить материнскую плату - в худшем. Поэтому не стоит забывать о технике безопасности - все манипуляции следует производить при отключенном питании компьютера и отсоединенном кабеле питания. Если не заземлены ни вы, ни материнская плата, то касаться ее категорически не рекомендуется.

Вместе с USB-хвостом должно также поставляться описание назначения контактов, в соответствии с которым и следует производить подключение контактов.

Таким образом, при подключении USB-хвоста контакты необходимо было подключать в обратном порядке.

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

После подключения USB-шлейфа Windows никак не реагирует на выполненные действия, так как, по сути, никакого нового устройства не добавлено - добавлена лишь его интерфейсная часть. Как уже упоминалось, сам USB хост-контроллер должен уже присутствовать на плате.

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