Лекция 14. USB- порт
1. Последовательные шины
2. Шина USB
3. Модель и протокол передачиданных
1.Последовательные шины
Последовательные шины позволяют объединять множествоустройств, используя всего 1-2 пары проводов. При этом достигается пропускнаяспособность от 100 Кбит/с для шины ACCESSBus,до 400 Мбит/с для FireWire,480 Мбит/с для USB2.0и 1 Гбит/с для FCAL.
Функциональные возможности этих шин гораздошире, чем у традиционных интерфейсов локальных сетей — USB и FireWireспособны передавать изохронный график аудио- и видеоданных.Последовательные шины по своей организации сильно отличаются от параллельных. Впоследовательных шинах нет отдельных линий для данных, адреса и управления —все протокольные функции приходится выполнять, пользуясь одной (в USB и ACCESS.Bus)или двумя (в FireWire)парами сигнальных проводов или парой оптических волокон (FibreChannel).
Этонакладывает отпечаток на построение шинного протокола, который впоследовательных шинах строится на пересылках пакетов— определенным образом организованныхцепочек бит. Заметим, что в терминологии USBпакеты и кадры имеют несколько иную трактовку, нежели в сетях передачи данных.
В параллельных шинах имеются возможности явнойсинхронизации интерфейсной части ведущих и ведомых устройств; исполнениекаждого шага протокола обмена может быть подтверждено, и при необходимостинекоторые фазы обмена могут продлеваться по «просьбе» не успевающегоустройства. В последовательных шинах такой возможности нет — пакетпересылается целиком, а синхронизация возможна только по принимаемому потокубит. Эти и другие особенности сближают последовательные шины с локальнымисетями передачи данных.
Наибольшую популярность имеют шины USBи FireWire, хотя последняя пока что в РС- совместимых компьютерахиспользуется не повсеместно. Технологии последовательных шин FireWireи USB, имея общие черты, существенно различаются. Обе шиныобеспечивают простое; подключение большого числа ПУ (127 для USB и 63 для FireWire), допуская коммутации ивключение/выключение устройств при работающей системе. По структуре топологияобеих шин достаточно близка, но FireWire допускает большую свободу ипространственную протяженность. Хабы USBвходят в состав многих устройств и для пользователя их присутствие зачастуюнезаметно. Обе шины имеют линии питания устройств, но допустимая мощность для FireWireзначительно выше. Обе шиныподдерживают технологию РnР (автоматическоеконфигурирование при включении/выключении) и снимают проблему дефицитаадресов, каналов DMAи прерываний. Различаются пропускная способностьшин и управление ими.
Шина USBориентирована напериферийные устройства, подключаемые к PC. Изохронные передачи USB позволяют передавать цифровыеаудиосигналы, а USB 2.0 способна нести и видеоданные. Все передачи управляютсяцентрализованно, и PCявляется необходимым управляющим узлом, находящимсяв корне древовидной структуры шины. Адаптер USB пользователи современных ПК получают почти бесплатно, посколькуон входит в состав всех современных чипсетов системных плат. Правда, адаптеры USB 2.0 первое время будут выпускатьсяв виде карт PCI. Непосредственноесоединение нескольких PCшиной USB не предусматривается, хотя выпускаются «активные кабели» длясвязи пары компьютеров и устройства-концентраторы.
Шина FireWireориентирована на устройствабытовой электроники, которые с ее помощью могут быть объединены в единуюдомашнюю сеть. К этой сети может быть подключен компьютер, и даже не один.Принципиальным преимуществом шины является отсутствие необходимости в специальном контроллере шины(компьютере). Любое передающее устройство может получить полосу изохронноготрафика и начинать передачу по сигналу автономного или дистанционногоуправления — приемники «услышат» эту информацию. При наличии контроллерасоответствующее ПО может управлять работой устройств, реализуя, например,цифровую студию нелинейного видеомонтажа или снабжая требуемымимультимедийными данными всех заинтересованных потребителей информации.
2. Шина USB
USB(UniversalSerialBus— универсальнаяпоследовательная шина) является промышленным стандартом расширения архитектуры PC,ориентированным на интеграцию с телефонией и устройствами бытовой электроники.Шина USB совсем молодая—версия 1.0была опубликована в начале 1996 года, и скептики иронично расшифровывали ее название как«неиспользуемая последовательная шина» (UnusedSerialBus).
Однако сейчас устройств с интерфейсом USB ужепредостаточно. Большинство их поддерживает версию 1.1, которая вышла осенью1998 года — в ней были устранены обнаруженные проблемы первой редакции. Весной2000 года опубликована спецификация USB 2.0, в которой предусмотрено40-кратное повышение пропускной способности шины. Первоначально (в версиях 1.0и 1.1) шина обеспечивала две скорости передачи информации:
полную скорость FS(fullspeed)— 12 Мбит/с
низкую скорость LS(LowSpeed)— 1,5-Мбит/с.
В версии 2.0определена еще и высокая скорость US(HighSpeed) —480 Мбит/с, которая позволяет существенно расширить круг устройств, подключаемыхк шине. В одной и той же системе могут присутствовать и одновременно работатьустройства со всеми тремя скоростями. Шина позволяет соединять устройства,удаленные от компьютера на расстояние до 25 м (с использованием промежуточныххабов).
С середины 1996 года выпускаются PCсовстроенным контроллером USB, реализуемым чипсетом системной платы. Подробную иоперативную информацию по USB (на английском языке) можно найти по адресуhttp://www.usb.org. Здесь приводятся данные, достаточные для пониманияпринципов работы и возможностей этой перспективной и недорогой шиныподключения разнообразной периферии.
USBобеспечивает обмен даннымимежду хост-компьютером и множеством периферийных устройств (ПУ). Согласноспецификации USB, устройства (device) могут являться:
- хабами;
— функциями;
— их комбинацией.
Хаб(hub) только обеспечивает дополнительные точки подключения устройств кшине. Устройство-функция (function) USB предоставляет системе дополнительные функциональныевозможности, например подключение к ISDN,цифровой джойстик, акустические колонки с цифровым интерфейсом и т. п. Комбинированноеустройство (compounddevice), реализующее несколько функций, представляется как хаб с подключеннымик нему несколькими устройствами. Устройство USB должно иметь интерфейс USB,обеспечивающий полную поддержку протокола USB,выполнение стандартных операций (конфигурирование и сброс) и предоставлениеинформации, описывающей устройство.
Работой всей системы USB управляет хост-контроллер (hostcontroller), являющийся программно-аппаратной подсистемой хост-компьютера.Шина позволяет подключать, конфигурировать, использовать и отключатьустройства во время работы хоста и самих устройств.
Шина USBявляется хост-центрической: единственным ведущим устройством, которое управляетобменом, является хост-компьютер, а все присоединенные к ней периферийныеустройства — исключительно ведомые. В этим она отличается от шины FireWire, где все устройстваравноправны. Физическая топология шины USB— многоярусная звезда. Ее вершиной является хост-контроллер, объединенный скорневым хабом (roothub), как правило,двухпортовым. Хаб является устройством-разветвителем. Кроме того, он можетявляться источником питания для подключенных к нему устройств. К каждому портухаба может непосредственно подключаться периферийное устройство илипромежуточный хаб.
Шина допускает до 5 уровней каскадирования хабов (несчитая корневого). Поскольку комбинированные устройства внутри себя содержатхаб, их подключение к хабу 6-го яруса уже недопустимо. Каждый промежуточныйхаб имеет несколько нисходящих (downstream)портов для подключения периферийных устройств (или нижележащих хабов) и один восходящий(upstream)порт для подключения к корневому хабу или нисходящему порту вышестоящего хаба.
Логическая топология USB— просто звезда: для хост-контроллера хабы создаютиллюзию непосредственного подключения каждого устройства. В отличие от шинрасширения (ISA/EISA, PCI, PCCard),где программавзаимодействует с устройствами путем обращений по физическим адресам ячеекпамяти, портов ввода-вывода, прерываниям и каналам DMA,взаимодействие приложений сустройствами USB выполняется толькочерез программный интерфейс. Этот интерфейс, обеспечивающий независимостьобращений к устройствам, предоставляется системным ПО контроллера USB.
В отличие от громоздких дорогих шлейфов параллельныхшин АТА и особенно шины SCSIс ее разнообразием разъемови сложностью правил подключения, кабельное хозяйство USB простое и изящное. Кабель USBсодержит одну экранированную витую пару с импедансом 90 Ом для сигнальных цепейи одну неэкранированную для подачи питания (+5 В), допустимая длина сегмента —до -5 м. Для низкой скорости может использоваться невитой неэкранированный кабельдлиной до 3 м (он дешевле). Система кабелей и коннекторов USB не дает возможности ошибиться при подключении устройств (рис.1, а и б). Для распознавания разъема USBна корпусе устройства ставится стандартное символическое обозначение (рис. 1 ирис. 2, а).
Гнезда типа «А» устанавливаются только на нисходящихпортах хабов, вилки типа «А» — на шнурахпериферийных устройств или восходящих портов хабов. Гнезда и вилки типа «В»используются только для шнуров, отсоединяемых от периферийных устройств ивосходящих портов хабов (от «мелких» устройств — мышей, клавиатур и т. п.кабели, как правило, не отсоединяются).
Хабы и устройства обеспечивают возможность«горячего» подключения и отключения. Для этого разъемы обеспечивают болеераннее соединение и позднее отсоединение питающих цепей по отношению ксигнальным и предусмотрен протокол сигнализации подключения и отключенияустройств. Назначение выводов разъемов USB иллюстрирует табл. 1, нумерацияконтактов показана на рис. 2, а и б.
Рис. 1. Коннекторы USB: a —вилка типа «А»; б— вилка типа «В»
а
б в
Рис.2. Гнезда USB: а— типа «А»; б— типа «В»;
в— символическое обозначение
Таблица 1. Назначение выводов разъема USB
Контакт
Цепь
1
Vbus
2
D-
3
D+.
4
GND
В шине используется дифференциальный способ передачисигналов D+ и D — по двум проводам.Скорость, используемая устройством, подключенным к конкретному порту,определяется хабом по уровням сигналов на линиях D+ и D-, смещаемыхнагрузочными резисторами приемопередатчиков: устройства с низкой скоростью«подтягивают» к высокому уровню линию D-, с полной — D+.
Подключение устройства HSопределяется на этапе обмена конфигурационной информацией — физическина первое время устройство HS должно подключаться как FS. Передача по двум проводамв USB не ограничиваетсядифференциальными сигналами. Кроме дифференциального приемника каждоеустройство имеет линейные приемники сигналов D+ и D-, а передатчики этих линийуправляются индивидуально. Это позволяет различать более двух состояний линии,используемых для организации аппаратного интерфейса.
Введение высокой скорости (480 Мбит/с — всего в 2раза медленнее, чем предлагает технология GigabitEthernet) требует тщательногосогласования приемопередатчиков и линии связи. На этой скорости может работатьтолько кабель с экранированной витой парой для сигнальных линий. Для высокойскорости аппаратура USB должнаиметь дополнительные специальные приемопередатчики. В отличие от формирователейпотенциала для режимов FS и LS передатчики HS являются источниками тока, ориентированными на наличие резисторов-терминаторовна обеих сигнальных линиях.
Скорость передачи данных (LS, FSили HS) выбирается разработчиком периферийного устройства всоответствии с потребностями этого устройства. Реализация низких скоростей дляустройства обходится несколько дешевле (приемопередатчики проще, а кабель для LS может быть и неэкранированнойневитой парой). Если в «старой» USBустройства можно было подключать не задумываясь в любой свободный порт любогохаба, то в USB 2.0 появилисьвозможности выбора между оптимальными, неоптимальными и неработоспособнымиконфигурациями, если используются устройства и хабы разных версий.
Хабы USB1.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 расщепляются и между их частями вклиниваются высокоскоростноепередачи. От старых (1.1) устройств и хабов все эти тонкости скрываются, что иобеспечивает обратную совместимость.
Вполне понятно, что устройство USB 2.0 сможет реализовать высокую скорость, только если по пути отнего к хост-контроллеру (тоже 2.0) будут встречаться только хаб» 2.0. Если этоправило нарушить и между ним и контроллером 2.0 окажется старый хаб, то связьможет быть установлена только в режиме FS.Если такая скорость, устройство и клиентское ПО устроит (к примеру, дляпринтера и сканера это выльется только в большее время ожидания пользователя),то подключенное устройство работать будет, нопоявится сообщение о неоптимальной конфигурации соединений. Повозможности ее следует исправить, благо переключения кабелей USB можно выполнять «на ходу».Устройства и ПО, критичные к полосе пропускания шины, в неправильнойконфигурации работать откажутся и категорично потребуют переключений. Если жехост-контроллер старый, то все прелести USB2.0 окажутся недоступными пользователю. В этом случае придется менятьхост-контроллер (менять системную плату или приобретать PCI-картуконтроллера). Контроллер и хабы USB 2.0позволяют повысить суммарную пропускную способность шины и для старыхустройств. Если устройства FS подключать к разным портам хабов USB 2.0 (включая и корневой), то дляних суммарная пропускная способность шины USB возрастет по сравнению с 12Мбит/с во столько раз, сколько используется портов высокоскоростных хабов.
На рис. 3 приведен вариант соединения устройств ихабов, где высокоскоростным устройством USB2.0 является только телекамера, передающая видеопоток без компрессии.Подключение принтера и сканера USB1.1к отдельным портам хаба 2.0, да еще и развязка их с аудиоустройствами позволяет имиспользовать полосу шины по 12 Мбит/с каждому.
Таким образом, из общей полосы 480 Мбит/с на «старые»устройства (USB 1.0) выделяется 3 х12 — 36 Мбит/с. Вообще-то можно говорить и о полосе в 48 Мбит/с, посколькуклавиатура и мышь подключены к отдельному порту хост-контроллера USB 2.0, но эти устройства «освоят»только малую толику из выделенных им 12 Мбит/с. Конечно, можно подключатьклавиатуру и мышь и к порту внешнего хаба, но с точки зрения повышениянадежности системные устройства ввода лучше связывать наиболее коротким (поколичеству кабелей, разъемов и промежуточных устройств) путем. Неудачнойконфигурацией было бы подключение принтера (сканера) к хабу USB 1.1 — во время работы саудиоустройствами (если они высокого качества) скорость печати (сканирования)будет падать. Неработоспособной конфигурацией явилось бы подключение телекамерык порту хаба USB 1.1.
Рис. 3. Примерконфигурации соединений
При планировании соединений следует учитывать способпитания устройств: устройства, питающиеся от шины, как правило, подключают кхабам, питающимся от сети. К хабам, питающимся от шины, подключают лишьмаломощные устройства — так, к клавиатуре USB,содержащей внутри себя хаб, подключают мышь USB и другие устройства-указатели(трекбол, планшет).
2. Модель ипротокол передачи данных
Каждое устройство на шине USB (их может быть до 127) при подключении автоматически получаетсвой уникальный адрес. Логически устройство представляет собой наборнезависимых конечных точек (endpoint), с которыми хост-контроллер(и клиентское ПО) обменивается информацией. Каждая конечная точка имеет свойномер и описывается следующими параметрами:
· требуемая частота доступа к шине и допустимые задержки обслуживания;
· требуемая полоса пропускания канала;
· требования к обработке ошибок;
· максимальные размеры передаваемых и принимаемых пакетов;
· тип передачи;
· направление передачи (для передач массивов и изохронного обмена).
Каждое устройство обязательно имеет конечную точку сномером 0, используемую для инициализации, общего управления и опроса егосостояния. Эта точка всегда оказывается сконфигурированной при включениипитания и подключении устройства к шине. Она поддерживает передачи типа«управление».
Кроме нулевой точки устройства-функции могут иметьдополнительные точки, реализующие полезный обмен данными. Низкоскоростныеустройства могут иметь до двух дополнительных точек, полноскоростные — до 15точек ввода и 15 точек вывода (протокольное ограничение). Дополнительные точки(а именно они и предоставляют полезные для пользователя функции) не могут бытьиспользованы до их конфигурирования (установления согласованного с нимиканала).
Каналом(pipe) в USB называется модель передачи данных между хост-контроллером иконечной точкой устройства. Имеются два типа каналов:
— потоки;
— сообщения.
Поток(stream) доставляет данные отодного конца канала к другому, он всегда однонаправленный. Один и тот же номерконечной точки может использоваться для двух поточных каналов — ввода и вывода.Поток может реализовывать следующие типы обмена:
-передача массивов;
— изохронный;
прерывания.
Сообщения(message)имеют формат, определенный спецификацией USB. Хост посылает запрос к конечнойточке, после которого передается (принимается) пакет сообщения, за которымследует пакет с информацией состояния конечной точки. Последующее сообщениенормально не может быть послано до обработки предыдущего, но при отработкеошибок возможен сброс не обслуженных сообщений. Двусторонний обмен,сообщениями адресуется к одной и той же конечной точке.
С каналами связаны характеристики, соответствующиеконечной точке (полоса пропускания, тип сервиса, размер буфера и т. п.).Каналы организуются при конфигурировании устройств USB. Для каждого включенного устройства существует канал сообщений(ControlPipe0), покоторому передается информация конфигурирования, управления и состояния.
Протокол. Все обмены (транзакции) сустройствами USB состоят из двух-трех пакетов. Каждая транзакцияпланируется и начинается по инициативе контроллера, который посылает пакет-маркер (token packet). Он описывает тип и направлениепередачи, адрес устройства USB и номерконечной точки. В каждой транзакции возможен обмен только между адресуемымустройством (его конечной точкой) и хостом.
Адресуемоемаркером устройство распознает свой адрес и готовится к обмену. Источникданных (определенный маркером) передает пакет данных (или уведомлениеоб отсутствии данных, предназначенных для передачи). После успешного приемапакета приемник данных посылает пакет квитирования (handshake packet). Последовательность пакетов втранзакциях иллюстрирует рис. 4.
Рис.4. Последовательности пакетов
Хост-контроллер организует обмены с устройствамисогласно своему плану распределения ресурсов. Контроллер циклически (с периодом1,0 ± 0,0005 мс) формирует кадры (frames),в которые укладываются всезапланированные транзакции (рис. 4). Каждый кадр начинается с посылки маркера SOP(StartOfFrame),который является синхронизирующим сигналом для всех устройств, включая хабы.
В концекаждого кадра выделяется интервал времениEOF(EndOfFrame), навремя которого хабы запрещают передачу по направлению к контроллеру. В режиме HSпакеты SOFпередаются в начале каждогомикрокадра(период 125 ± 0,0625 мкс). Хост планирует загрузку кадров так, чтобы в нихвсегда находилось место для транзакций управления и прерывания. Свободноевремя кадров может заполняться передачами массивов (bulktransfers).В каждом (микрокадре)может быть выполнено несколько транзакций, их допустимое число зависит отдлины поля данных каждой из них.
Рис.5 Потоккадров USB
Для обнаружения ошибок передачи каждый пакет имеетконтрольные поля CRC-кодов,позволяющие обнаруживать все одиночные и двойные битовые ошибки. Аппаратныесредства обнаруживают ошибки передачи, а контроллер автоматически производиттрехкратную попытку передачи. Если повторы безуспешны, сообщение об ошибкепередается клиентскому ПО.
Все подробности организации транзакций изолируютсяот клиентского ПО контроллером USB иего системным программным обеспечением.
Лекция 14. USB- порт
Рис. 1. Коннекторы USB: a —вилка типа «А»; б— вилка типа «В»
а
б в
Рис.2. Гнезда USB: а— типа «А»; б— типа «В»;
в— символическое обозначение
Таблица 1. Назначение выводов разъема USB
Контакт
Цепь
1
Vbus
2
D-
3
D+.
4
GND
Рис. 3. Примерконфигурации соединений
Рис.4. Последовательностипакетов
Рис.5 Потоккадров USB