Аппаратные интерфейсы ПК

         

Организация шины USB


USB обеспечивает обмен данными между хост-компьютером и множеством пери­ферийных устройств (ПУ). Согласно спецификации USB, устройства (devices) могут являться хабами, функциями или их комбинацией. Устройство-дгйб (hub)

4.1. Шина USB____________      '________________________________________ 89

только обеспечивает дополнительные точки подключения устройств к шине. Устройство-фг/нк^ия (function) USB предоставляет системе дополнительные функ­циональные возможности, например подключение к ISDN, цифровой джойстик, акустические колонки с цифровым интерфейсом и т. п. Комбинированное устрой­ство (compound device), содержащее несколько функций, представляется как хаб с подключенными к нему несколькими устройствами. Устройство USB должно иметь интерфейс USB, обеспечивающий полную поддержку протокола USB, вы­полнение стандартных операций (конфигурирование и сброс) и предоставление информации, описывающей устройство. Работой всей системы USB управляет хост-контроллер (host controller), являющийся программно-аппаратной подсис­темой хост-компьютера. Шина позволяет подключать, конфигурировать, исполь­зовать и отключать устройства во время работы хоста и самих устройств. Шина USB является хост-центрической: единственным ведущим устройством, которое управляет обменом, является хост-компьютер, а все присоединенные к ней периферийные устройства — исключительно ведомые. Физическая топология шины USB — многоярусная звезда. Ее вершиной является хост-контроллер, объе­диненный с корневым хабом (root hub), как правило, двухпортовым. Хаб являет­ся устройством-разветвителем, он может являться и источником питания для подключенных к нему устройств. К каждому порту хаба может непосредственно подключаться периферийное устройство или промежуточный хаб; шина допус­кает до 5 уровней каскадирования хабов (не считая корневого). Поскольку ком­бинированные устройства внутри себя содержат хаб, их подключения к хабу 6-го яруса уже недопустимо. Каждый промежуточный хаб имеет несколько нисходящих (downstream) портов для подключения периферийных устройств (или нижележа­щих хабов) и один восходящий (upstream) порт для подключения к корневому хабу или нисходящему порту вышестоящего хаба.
Логическая топология USB — про­сто звезда: для хост- контроллера хабы создают иллюзию непосредственного под­ключения каждого устройства. В отличие от шин расширения (ISA, PCI, PC Card), где программа взаимодействует с устройствами посредством обращений по фи­зическим адресам ячеек памяти, портов ввода-вывода, прерываниям и каналам DMA, взаимодействие приложений с устройствами USB выполняется только че­рез программный интерфейс. Этот интерфейс, обеспечивающий независимость обращений к устройствам, предоставляется системным ПО контроллера USB.

В отличие от громоздких дорогих шлейфов параллельных шин AT А и особенно шины SCSI с ее разнообразием разъемов и сложностью правил подключения, ка­бельное хозяйство USB простое и изящное. Кабель USB содержит одну экрани­рованную витую пару с импедансом 90 Ом для сигнальных цепей и одну неэкранированную для подачи питания (+5 В), допустимая длина сегмента — до 5 м. Для низкой скорости может использоваться невитой неэкранированный кабель дли­ной до 3 м (он дешевле). Система кабелей и коннекторов USB не дает возможно­сти ошибиться при подключении устройств (рис. 4.1, а и б). Для распознавания разъема USB на корпусе устройства ставится стандартное символическое обозна­чение (рис. 4.1, в). Гнезда типа «А» устанавливаются только на нисходящих пор­тах хабов, вилки типа «А» — на шнурах периферийных устройств или восходя-

90

Глава 4. Последовательные шины USB и FireWire

щих портов хабов. Гнезда и вилки типа «В» используются только для шнуров, отсоединяемых от периферийных устройств и восходящих портов хабов (от «мел­ких» устройств — мышей, клавиатур и т. п. кабели, как правило, не отсоединяются). Кроме стандартных разъемов, показанных на рисунке 4.1, применяются и мини­атюрные варианты (рис. 4.2, в, г, д). Хабы и устройства обеспечивают возможность «горячего» подключения и отключения. Для этого разъемы обеспечивают более раннее соединение и позднее отсоединение питающих цепей по отношению к сигнальным, кроме того, предусмотрен протокол сигнализации подключения и от­ключения устройств.


Назначение выводов разъемов USB приведено в табл. 4.1, ну­мерация контактов показана на рис. 4.2. Все кабели USB «прямые» — в них соеди­няются одноименные цепи разъемов.







Рис. 4.1. Коннекторы USB: a — вилка типа «А», б—вилка типа «В», в — символическое обозначение



а                                        б                              в                               г                          д

Рис. 4.2. Гнезда USB: а — типа «А», б — типа «В» стандартное, в,г,д — миниатюрные типа «В»

Таблица 4.1. Назначение выводов разъема USB



В шине используется дифференциальный способ передачи сигналов D+ и D- по двум проводам. Скорость устройства, подключенного к конкретному порту, опре­деляется хабом по уровням сигналов на линиях D+ и D-, смещаемых нагрузочны­ми резисторами приемопередатчиков: устройства с низкой скоростью «подтяги­вают» к высокому уровню линию D-, с полной — D+. Подключение устройства HS

4.1. Шина USB _______________________________________________________ 91

определяется на этапе обмена конфигурационной информацией — физически на первое время устройство HS должно подключаться как FS. Передача по двум про­водам в USB не ограничивается дифференциальными сигналами. Кроме дифферен­циального приемника, каждое устройство имеет линейные приемники сигналов D+ и D-, а передатчики этих линий управляются индивидуально. Это позволяет различать более двух состояний линии, используемых для организации аппарат­ного интерфейса.

Введение высокой скорости (480 Мбит/с — всего в 2 раза медленнее, чем Gigabit Ethernet) требует тщательного согласования приемопередатчиков и линии связи. На этой скорости может работать только кабель с экранированной витой парой для сигнальных линий. Для высокой скорости аппаратура USB должна иметь допол­нительные специальные приемопередатчики. В отличие от формирователей потен­циала для режимов FS и LS, передатчики HS являются источниками тока, ориен­тированными на наличие резисторов-терминаторов на обеих сигнальных линиях.



Скорость передачи данных (LS, FS или HS) выбирается разработчиком перифе­рийного устройства в соответствии с потребностями этого устройства. Реализа­ция низких скоростей для устройства обходится несколько дешевле (приемо­передатчики проще, а кабель для LS может быть и неэкранированной невитой парой). Если в «старой» USB устройства можно было, не задумываясь, подклю­чать в любой свободный порт любого хаба, то в USB 2.0 при наличии устройств и хабов разных версий появились возможности выбора между оптимальными, не­оптимальными и неработоспособными конфигурациями.

Хабы USB 1.1 обязаны поддерживать скорости FS и LS, скорость подключенного к хабу устройства определяется автоматически по разности потенциалов сигналь­ных линий. Хабы USB 1.1 при передаче пакетов являются просто повторителями, обеспечивающими прозрачную связь периферийного устройства с контроллером. Передачи на низкой скорости довольно расточительно расходуют потенциальную пропускную способность шины: за то время, на которое они занимают шину, высоко­скоростное устройство может передать данных в 8 раз больше. Но ради упрощения и удешевления всей системы на эти жертвы пошли, а за распределением полосы между разными устройствами следит планировщик транзакций хост-контроллера.

В спецификации 2.0 скорость 480 Мбит/с должна уживаться с прежними, но при таком соотношении скоростей обмены на FS и LS «съедят» возможную полосу пропускания шины без всякого «удовольствия» (для пользователя). Чтобы этого не происходило, хабы USB 2.0 приобретают черты коммутаторов пакетов. Если к порту такого хаба подключено высокоскоростное устройство (или аналогичный хаб), то хаб работает в режиме повторителя, и транзакция с устройством на HS занимает весь канал до хост-контроллера на все время своего выполнения. Если же к порту хаба USB 2.0 подключается устройство или хаб 1.1, то по части канала до контроллера пакет проходит на скорости HS, запоминается в буфере хаба, а к старому устройству или хабу идет уже на его «родной» скорости FS или LS.


При этом функции контроллера и хаба 2.0 (включая и корневой) усложняются, по­скольку транзакции на FS и LS расщепляются и между их частями вклиниваются

92___________________________ Глава 4. Последовательные шины USB и FireWire

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

Хаб является ключевым элементом системы PnP в архитектуре USB. Хаб выпол­няет множество функций:

¦     обеспечивает физическое подключение устройств, формируя и воспринимая

сигналы в соответствии со спецификацией шины на каждом из своих портов;



¦     управляет подачей питающего напряжения на нисходящие порты, причем пре­

дусматривается установка ограничения на ток, потребляемый каждым портом;

¦     отслеживает состояние подключенных к нему устройств, уведомляя хост об

изменениях;

¦     обнаруживает ошибки на шине, выполняет процедуры восстановления и изо­

лирует неисправные сегменты шины;

¦     обеспечивает связь сегментов шины, работающих на разных скоростях.

Хаб следит за сигналами, генерируемыми устройствами. Неисправное устройство может не вовремя «замолчать» (потерять активность) или, наоборот, что-то «бор­мотать» (babble). Эти ситуации отслеживает ближайший к устройству хаб и за­прещает восходящие передачи от такого устройства не позже, чем по границе (мик-ро)кадра. Благодаря бдительности хабов эти ситуации не позволят неисправному устройству заблокировать всю шину.

Каждый из нисходящих (downstream) портов может быть разрешен или запрещен, а также сконфигурирован на высокую, полную или ограниченную скорость об­мена. Хабы могут иметь световые индикаторы состояния нисходящих портов, управляемые автоматически (логикой хаба) или программно (хост-контроллером). Индикатор может представлять собой пару светодиодов — зеленый и желтый

4.1. Шина USB_______________________________________________________ 93

(янтарный) или один светодиод с изменяющимся цветом. Состояние порта пред­ставляется следующим образом:

¦     не светится — порт не используется;

¦     зеленый — нормальная работа;

¦     желтый — ошибка;

¦     зеленый мигающий — программа требует внимания пользователя (Software attention);

¦     желтый мигающий — аппаратура требует внимания пользователя (Hardware attention).

Восходящий (upstream) порт хаба конфигурируется и внешне представляется как полноскоростной или высокоскоростной (только для USB 2.0).


При подключении порт хаба USB 2.0 обеспечивает терминацию по схеме FS, в режим HS он перево­дится только по команде контроллера.

На рис. 4.3 приведен вариант соединения устройств и хабов, где высокоскорост­ным устройством USB 2.0 является только телекамера, передающая видеопоток без компрессии. Подключение принтера и сканера USB 1.1 к отдельным портам хаба 2.0, да еще и развязка их с аудиоустройствами, позволяет им использовать полосу шины по 12 Мбит/с каждому. Таким образом, из общей полосы 480 Мбит/с на «старые» устройства (USB 1.0) выделяется 3x12=36 Мбит/с. Вообще-то мож­но говорить и о полосе в 48 Мбит/с, поскольку клавиатура и мышь подключены к отдельному порту хост-контроллера USB 2.0, но эти устройства «освоят» только малую толику из выделенных им 12 Мбит/с. Конечно, можно подключать клави­атуру и мышь к порту внешнего хаба, но с точки зрения повышения надежности системные устройства ввода лучше подключать наиболее коротким (по количе­ству кабелей, разъемов и промежуточных устройств) способом. Неудачной кон­фигурацией было бы подключение принтера (сканера) к хабу USB 1.1 — во время работы с аудиоустройствами (если они высокого качества) скорость печати (ска­нирования) будет падать. Неработоспособной конфигурацией явилось бы под­ключение телекамеры к порту хаба USB 1.1.

При планировании соединений следует учитывать способ питания устройств: устрой­ства, питающиеся от шины, как правило, подключают к хабам, питающимся от сети. К хабам, питающимся от шины, подключают лишь маломощные устройства — так, к клавиатуре USB, содержащей внутри себя хаб, подключают мышь USB и дру­гие устройства-указатели (трекбол, планшет).

Управление энергопотреблением является весьма развитой функцией USB. Для устройств, питающихся от шины, мощность ограничена. Любое устройство при подключении не должно потреблять от шины ток, превышающий 100 мА. Рабо­чий ток (не более 500 мА) заявляется в конфигурации. Если хаб не может обеспе­чить устройству заявленный ток, оно не конфигурируется и, следовательно, не может быть использовано.

Устройство USB должно поддерживать режим приостановки (suspended mode), в котором его потребляемый ток не превышает 500 мкА. Устройство должно автоматически приостанавливаться при прекращении активности шины.

94

Глава 4. Последовательные шины USB и FireWire



Рис. 4.3. Пример конфигурации соединений

Возможность удаленного пробуждения (remote wakeup) позволяет приостановлен­ному устройству подать сигнал хост-компьютеру, который тоже может находить­ся в приостановленном состоянии. Возможность удаленного пробуждения описы­вается в конфигурации устройства. При конфигурировании эта функция может быть запрещена.


Содержание раздела