USB- порт

Лекция 14. USB- порт

 

1. Последовательные шины

2. Шина USB

3. Модель и протокол передачи данных


1.Последовательные шины

 

Последовательные шины позволяют объединять множество устройств, исполь­зуя всего 1-2 пары проводов. При этом достигается пропускная способность от 100 Кбит/с для шины ACCESS Bus, до 400 Мбит/с для FireWire, 480 Мбит/с для USB 2.0 и 1 Гбит/с для FCAL.

Функциональные возможности этих шин гораздо шире, чем у традиционных интерфейсов локальных сетей — USB и FireWire спо­собны передавать изохронный график аудио- и видеоданных. Последовательные шины по своей организации сильно отличаются от параллельных. В последова­тельных шинах нет отдельных линий для данных, адреса и управления — все протокольные функции приходится выполнять, пользуясь одной (в USB и ACCESS.Bus) или двумя (в FireWire) парами сигнальных проводов или парой оптических волокон (Fibre Channel).

Это накладывает отпечаток на построение шинного протокола, который в последовательных шинах строится на пересыл­ках пакетов определенным образом организованных цепочек бит. Заметим, что в терминологии 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 (Universal Serial Bus — универсальная последовательная шина) является промышленным стандартом расширения архитектуры PC, ориентированным на интеграцию с телефонией и устройствами бытовой электроники. Шина USB со­всем молодая—версия 1.0 была опубликована в начале 1996 года, и скептики иронично расшифровывали ее название как «неиспользуемая последовательная шина» (Unused Serial Bus).

Однако сейчас устройств с интерфейсом USB уже предостаточно. Большинство их поддерживает версию 1.1, которая вышла осе­нью 1998 года — в ней были устранены обнаруженные проблемы первой редак­ции. Весной 2000 года опубликована спецификация USB 2.0, в которой преду­смотрено 40-кратное повышение пропускной способности шины. Первоначаль­но (в версиях 1.0 и 1.1) шина обеспечивала две скорости передачи информации:

полную скорость FS (full speed) — 12 Мбит/с

низкую скорость LS (Low Speed) — 1,5-Мбит/с.

В версии 2.0 определена еще и высокая скорость US (High Speed) — 480 Мбит/с, которая позволяет существенно расширить круг устройств, подклю­чаемых к шине. В одной и той же системе могут присутствовать и одновременно работать устройства со всеми тремя скоростями. Шина позволяет соединять ус­тройства, удаленные от компьютера на расстояние до 25 м (с использованием промежуточных хабов).

С середины 1996 года выпускаются PC со встроенным контроллером USB, реализуемым чипсетом системной платы. Подробную и оперативную информа­цию по USB (на английском языке) можно найти по адресу #"1.files/image001.gif">

Рис. 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 раза медленнее, чем пред­лагает технология 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 расщепляются и между их час­тями вклиниваются высокоскоростное передачи. От старых (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 Мбит/с во столько раз, сколько используется портов высокоскорост­ных хабов.

На рис. 3 приведен вариант соединения устройств и хабов, где высоко­скоростным устройством USB 2.0 является только телекамера, передающая видеопоток без компрессии. Подключение принтера и сканера USB 1.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. Для каждого включенного устройства суще­ствует канал сообщений (Control Pipe 0), по которому передается информация конфигурирования, управления и состояния.

Протокол. Все обмены (транзакции) с устройствами USB состоят из двух-трех пакетов. Каж­дая транзакция планируется и начинается по инициативе контроллера, который посылает пакет-маркер (token packet). Он описывает тип и направление переда­чи, адрес устройства USB и номер конечной точки. В каждой транзакции возмо­жен обмен только между адресуемым устройством (его конечной точкой) и хос­том.

Адресуемое маркером устройство распознает свой адрес и готовится к обме­ну. Источник данных (определенный маркером) передает пакет данных (или уве­домление об отсутствии данных, предназначенных для передачи). После успешно­го приема пакета приемник данных посылает пакет квитирования (handshake packet). Последовательность пакетов в транзакциях иллюстрирует рис. 4.

Рис. 4. Последовательности пакетов

Хост-контроллер организует обмены с устройствами согласно своему плану распределения ресурсов. Контроллер циклически (с периодом 1,0 ± 0,0005 мс) формирует кадры (frames), в которые укладываются все запланированные тран­закции (рис. 4). Каждый кадр начинается с посылки маркера SOP (Start Of Frame), который является синхронизирующим сигналом для всех устройств, включая хабы.

В конце каждого кадра выделяется интервал времени EOF (End Of Frame), на время которого хабы запрещают передачу по направлению к контрол­леру. В режиме HS пакеты SOF передаются в начале каждого микрокадра (период 125 ± 0,0625 мкс). Хост планирует загрузку кадров так, чтобы в них всегда нахо­дилось место для транзакций управления и прерывания. Свободное время кад­ров может заполняться передачами массивов (bulk transfers). В каждом (микро­кадре) может быть выполнено несколько транзакций, их допустимое число зави­сит от длины поля данных каждой из них.


Рис.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


Теги: USB- порт   Лекция  Информационные технологии