Обзоры Обзоры 05.03.2002 в 22:00 comment

На периферии: USB 2.0

author avatar
https://secure.gravatar.com/avatar/2f8d57cddfeb455ba418faa11ee01bb0?s=96&r=g&d=https://itc.ua/wp-content/uploads/2023/06/no-avatar.png *** https://secure.gravatar.com/avatar/2f8d57cddfeb455ba418faa11ee01bb0?s=96&r=g&d=https://itc.ua/wp-content/uploads/2023/06/no-avatar.png *** https://itc.ua/wp-content/themes/ITC_6.0/images/no-avatar.svg

ITC.UA

автор


Спецификации USB 2.0 были опубликованы в апреле 2000 г. Второй версии вскоре уже исполнится два года — колоссальный срок с точки зрения информационной индустрии. Значимость сделанного шага не вызывает сомнений: производительность возросла в 40 раз, а это что-нибудь да значит! Потенциальная область применения USB расширилась, перекрыв даже high-end-рынок шины FireWire. Однако больше не всегда означает лучше, а лучшее не всегда становится самым популярным. Далее мы попытаемся оценить как технические аспекты, так и рыночные перспективы сиквела USB.


Новое поколение

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

Цифровые плейеры, фотоаппараты, сканеры, цветные принтеры высокого разрешения, переносные винчестеры остро нуждались в быстром, удобном (т. е. обеспечивающем возможность горячего подключения), недорогом интерфейсе. Казалось бы, FireWire, выпущенный в свет еще в 1988 г. компанией Apple, полностью удовлетворяет всем предъявляемым требованиям. Недаром производители высококачественной цифровой бытовой техники не размышляли слишком долго над вопросом выбора и с легким сердцем приняли предложение "яблочной" фирмы. Скорость передачи, достигающая 400 Mbps, поддержка до 1023 устройств на одной гирлянде (при условии использования мостов), прямая адресация до 256 TB интегрированной памяти для каждого устройства, приоритетное обслуживание потоков реального времени. Стандарт получил статус официального, и общество IEEE присвоило ему номер 1394. В группу поддержки записались многие столпы индустрии, среди которых IBM, TI, Molex, Adaptec, Western Digital.

Тем не менее невозможно быть хорошим для всех. К тому же Apple постоянно предпринимала попытки урвать себе кусок чужого пирога и угрожала ввести авторские отчисления — по доллару с каждого порта FireWire. Зачинщиками бунта выступили Compaq, Intel, DEC, Microsoft, NEC, Northern Telecom и… IBM. Причина заключается в принципиально ином подходе компьютерных фирм к оценке технологий по сравнению с представителями рынка бытовой техники. Последние зачастую пренебрегают фактором стоимости и сложности в погоне за эксклюзивностью и престижностью. Увы, сегодня IT-рынок не прощает подобных "манер" — здесь массовость и показатель цена/качество стоят во главе угла. При всем своем совершенстве FireWire не только обогнала свое время, но и оказалась непомерно дорогой. Здесь вопрос был не в деньгах, а в их количестве.

Еще одним виртуальным конкурентом, которого, похоже, так и не допустили к соревнованиям, была шина ACCESS.bus. В 1985 г. ее предложила ныне не существующая компания DEC и поддержала ассоциация VESA (сделав основой своего стандарта DDC). В своей наивысшей итерации под номером 2.2 технология обеспечивала скорость передачи данных 100 Kbps. Кабель состоял из двух пар проводов: питание +5 В и данные (информация и тактовые импульсы). Устройства подключались гирляндой по 125 штук на кабель, допускалось горячее подсоединение. Сегодня об ACCESS.bus практически ничего не слышно, хотя когда-то существовала даже группа ABIG (ACCESS.bus Industry Group). Найти ее сайт автору, увы, не удалось.

Онлайн-курс Frontend-разробник від Powercode academy.
Курс на якому ти напишеш свій чистий код на JavaScript, попрацюєш із різними видами верстки, а також адаптаціями проектів під будь-які екрани. .
Зарееструватися

Что получилось у семи нянек

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

На периферии: USB 2.0
Рис. 1

Также оба конкурента взяли на вооружение систему кодирования NRZ, только в USB она дополнена выходом на ноль, и этот вариант называется NRZI (рис. 1). Процесс выглядит следующим образом: если на вход поступает 1, то уровень выходного напряжения остается прежним, а если 0 — изменяется. Проблематичной представляется только ситуация, когда данные содержат длинные цепочки единиц. Тогда возникает реальная угроза утраты синхронизации, и чтобы такого не произошло, после шести последовательно идущих единиц автоматически вставляется дополнительный ноль. Отличаются и количество, и назначение проводов в кабелях: USB требуется всего четыре провода, из которых два подают питание к устройствам (5 В), в то время как FireWire, помимо питания и сигнальных проводов, специфицирует еще одну пару под трансляцию стробирующего сигнала. Достаточно оригинальное решение со стробирующими импульсами решает пресловутую проблему "постоянного тока". При проектировании любых систем передачи данных наибольшую сложность представляют непрерывные последовательности нулей и единиц. Поскольку уровень сигнала в такой ситуации остается длительное время стабильным, приемник и передатчик могут легко потерять синхронизацию. Чтобы избежать этого, приходится пускаться на различные ухищрения — применять специальные схемы кодирования и таблицы подстановок, исключающие возможность появления длительных однородных последовательностей. В случае FireWire стробирующий сигнал меняет свой уровень, как только в информационном сигнале появляются два одинаковых символа, следующих один за другим. Получается некое подобие синхроимпульсов.

Наиболее существенные изменения коснулись способа доступа к среде. FireWire применяет метод разделения по времени, и каждому устройству назначается промежуток, в течение которого ему разрешается передавать данные. Хост-узел тактирует циклы 125 мкс, и все они разбиты на 64 канала-ячейки. Первыми право на передачу получают узлы, транслирующие изохронный трафик, и лишь после этого остальные устройства могут попытать счастья.

На периферии: USB 2.0
Рис. 2 a
На периферии: USB 2.0
Рис. 2 б
На периферии: USB 2.0
Рис. 2 в

USB в этом смысле гораздо более централизованная шина — здесь все вращается вокруг хабов. Устройства подключаются только к хабам, которые, в свою очередь, являются "опорным скелетом" 7-уровневой архитектуры (рис. 2).

Ограничения по количеству последовательно подключенных узлов возникли вследствие необходимости обеспечить прохождение сигнала из конца в конец шины в рамках некоего минимального временного интервала. Право на передачу данных выдается исключительно центральным хабом (официально именуемым Host Controller), который поочередно опрашивает узлы.

Онлайн-курс Frontend-разробник від Powercode academy.
Курс на якому ти напишеш свій чистий код на JavaScript, попрацюєш із різними видами верстки, а також адаптаціями проектів під будь-які екрани. .
Зарееструватися

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

Стоит обратить внимание и на достаточно уникальную взаимную совместимость всех версий стандарта. Удивительно, но на одной шине вполне могут сосуществовать устройства, поддерживающие только USB 1.x, и устройства, требующие возможностей USB 2.x (конечно, если хост-контроллер и хабы позволяют это делать). Разгадка в подканалах с разной пропускной способностью: 1,5, 12 и 480 Mbps. Например, оптической мыши вовсе не обязательно иметь интегрированный контроллер, способный работать со скоростью 480 Mbps, поэтому ее можно снабдить низкоскоростным (1,5 Mbps) чипом. С хабом обмен произойдет именно на этой скорости, однако далее, выше по шине, низкоскоростной поток будет транслироваться на максимальной доступной скорости. Таким образом, удается избежать снижения производительности всей гирлянды устройств.

Заверните мне трафик

Информационная архитектура шины построена на базе каналов и пронумерованных оконечных точек (endpoints). Говоря проще, каждый канал ассоциируется со своей оконечной точкой, которую можно по аналогии с TCP/IP назвать "портом". Идентификаторы "портов" определяются еще на момент проектирования устройства. USB поддерживает два вида каналов: сообщений (двунаправленные) и потоковые (однонаправленные). Помимо типа и номера, разработчики могут определить максимальную латентность устанавливаемого канала, требуемую пропускную способность, предельный размер пакета, правило обработки ошибок. Объединенный по каким-либо признакам набор оконечных точек и каналов представляет собой интерфейс. Клиентское программное обеспечение имеет дело именно с интерфейсами и, конечно, не занимается нудным менеджментом канального уровня.

USB ориентирована на передачу четырех основных типов трафика: управляющих сообщений, блоков данных (например, загрузка информации в принтер), сообщений реального времени (события, генерируемые интерфейсными устройствами) и изохронных потоков (видео, аудио). В целом, обмен осуществлялся на основе циклов или кадров длительностью 1 мс для соединений производительностью 1,5 и 12 Mbps и 0,125 мс для соединений 480 Mbps. Общая пропускная способность делится между различными типами каналов согласно приоритетам — сначала потоковые данные реального времени, затем сообщения реального времени, затем блоки данных, и лишь в последнюю очередь доступ к шине получают запросы на передачу сообщений. Для каждого из типов трафика установлены свои ограничения.

Конкретные значения различны для разных скоростей соединения, однако поскольку темой данной статьи является вторая версия USB, то и в качестве примера мы приведем только ограничения для соединений производительностью 480 Mbps. Размер пакетов, передаваемых через контрольные соединения, не может превышать 64 В, а максимальная доля утилизируемой пропускной способности — 3%. При трансляции потоковых данных реального времени пакеты могут достигать 3 KB, и по максимуму им отводится до 41% пропускной способности шины. Для передачи сообщений реального времени выделен не меньший потенциальный ресурс: пакеты до 3 KB, до 42% пропускной способности. Каналы для обмена блоками данных относятся к потоковому классу и поэтому являются однонаправленными. На них накладываются более суровые ограничения: пакеты до 512 В, доля пропускной способности — до 8%.

На периферии: USB 2.0
Рис. 3

Упомянув слово "пакет", просто необходимо разъяснить, что в данном случае под ним понимается. Это зависит от структуры пакетов всех допустимых типов (рис. 3). Загадочные наименования полей требуют толкования. PID расшифровывается как Packet ID и состоит из двух частей: 4-битового значения, определяющего тип пакета, и 4-битовой контрольной суммы. ADDR — сокращение от Address, здесь записан 7-битовый адрес устройства. Поле ENDP (Endpoint Field) содержит номер оконечной точки. В Frame Number Field находится счетчик кадров, который обнуляется, когда его значение достигает максимально возможной отметки. Название Data Field говорит само за себя — в этой части пакета располагаются полезные данные объемом до 1024 В. Большинство разновидностей пакетов завершаются полем CRC — циклической контрольной суммой.

Кстати, вы обратили внимание на несоответствие между максимальным размером пакета, приведенным для некоторых видов каналов, и указанным ограничением? На деле для трансляции 3-килобайтовых блоков данных используются так называемые множественные транзакции, а отсылающие их оконечные точки попадают в разряд широкополосных (high-bandwidth).

Теперь вкратце остановимся на типах пакетов. Как видно из иллюстрации, их всего четыре. SOF — самое странное название, но и самое простое назначение. Аббревиатура расшифровывается как Start-of-Frame, пакет высылается хостом в начале каждого кадра. Token Packet — своеобразный аналог маркера в USB, поле PID определяет здесь направление и тип организуемой транзакции. Таким образом, Token представляет собой разрешение на передачу данных, выдаваемое, кстати, исключительно хостом. Чтобы не объяснять элементарного, назначение Data Packet описывать здесь не будем. Удивительно, но наиболее широкий спектр функций у самого маленького пакета — Handshake Packet. Он бывает пяти разновидностей: ACK — подтверждение успешного приема данных, NAK — невозможность принятия информации или отсутствие данных для передачи; STALL — невозможность принятия и передачи данных; NYET — специфический вариант для высокоскоростных соединений (480 Mbps); ERR — применяется для индикации ошибок передачи данных в низкоскоростных подканалах (1,5, 12 Mbps) при использовании высокоскоростного режима (480 Mbps).

Это странное слово — хабы

Важный элемент шины — хабы, фактически они и являются основой ее скелета. Они отвечают за распределение питания и детектирование подключения/отключения устройств. Хаб разделяют на три компонента: контроллер, репитер и транслятор транзакций. Назначение первого достаточно очевидно, репитер выполняет роль коммутатора, переправляющего данные из единого входного порта во множественные выходные порты (к которым подсоединены устройства). Ну а транслятор транзакций является тем фокусником, что приводит разноскоростные восходящие и исходящие потоки к единому знаменателю максимально возможной производительности. В спецификациях хабов заключается также единственное незначительное различие между USB 1.0 и 1.1. Все прочие элементы шины этих стандартов практически идентичны.

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

Вернемся к вопросу питания. В роли минимального пайка выступает единица нагрузки (load unit), равная 100 мА. На каждый порт корневого хаба (подключенного непосредственно к хост-контроллеру) должно приходиться по пять единиц нагрузки. Соответственно, хабы, подключаемые ниже корневого и получающие питание только по шине, и оконечные устройства могут утилизировать не более пяти единиц. И наконец, хабы, обладающие собственным блоком питания, должны обеспечивать поддержку каждым своим портом до пяти единиц нагрузки. Хотя даже эти самостоятельные устройства все же имеют право на потребление одной единицы нагрузки из шины, чтобы поддерживать функционирование восходящего порта при отключенном блоке питания.

Покупай, торопись!

На сайте USB.org опубликован список существующих и готовящихся к продаже продуктов, работающих с шиной USB 2.0, и он, прямо скажем, невелик. Впрочем, надо учитывать официальный характер документа — наверняка множество более мелких (особенно азиатских) компаний приготовило немало сюрпризов. Пока же основная тенденция — прагматизм и еще раз прагматизм. Изделием номер один для USB 2.0, несомненно, является накопитель-на-чем-то-там: просто рябит в глазах от обилия приводов CD-RW, DVD, магнитооптических накопителей и, конечно, портативных винчестеров. На ниве перезаписывающих приводов для компакт-дисков отметились ACOM, Dura Micro, Plextor, QPS, Sony, Yamaha и другие производители. Жесткие диски имеются в ассортименте у SIIG, QPS, MELCO, LaCie, I-O Data Systems и не только у них, а магнитооптические приводы как всегда продвигает Fujitsu, а также MELCO, I-O Data Systems и т. д. Немного выбиваются из общего строя Epson и Microtek со своими сканерами и Opteon с видеокамерами высокого разрешения.

И напоследок вспомним о главном — о поддержке USB 2.0 в операционных системах. Ведь без этого немаловажного элемента любое экзотическое оборудование будет пользователю не в радость. С формальной точки зрения законченной встроенной поддержки второй версии шины нет как в Linux, так и в Windows. Но на практике производители, как правило, снабжают свои устройства всем необходимым ПО.

Что за горизонтом?

USB не стоит на месте. Развитие, одно время носившее поступательный характер (выше, сильнее, быстрее), постепенно перешло в горизонтальную плоскость: сервис, качество и удобство. Одной из таких инициатив стала USB-On-the-Go. Основная идея нововведения заключается в делегировании части функций хоста оконечному устройству. Делается это для того, чтобы пользователь мог соединить две "клиентские" системы, минуя ПК. Наиболее очевидные примеры такого подключения — распечатка фотографий с цифровой камеры на цветной принтер и копирование файлов с портативного жесткого диска на цифровой аудиоплейер. Чтобы "сказка стала былью", требуется снабдить каждое мобильное устройство упрощенным хостом-контроллером, который выступит арбитром установленного соединения (нельзя забывать, что USB — шина централизованная).

Но и конкуренты не дремлют. Самая серьезная угроза, как и прежде, исходит из лагеря сторонников FireWire. Если на сайте USB.org отношение к давнему недругу довольно лояльное ("both USB 2.0 and 1394 are expected to co-exist on many consumer systems in the future"), то в лагере соперников готовится самая настоящая война. Например, в 2000 г. был сформирован тайваньский (очередной!) консорциум по продвижению FireWire. В него вошли Procomp Informatics, VIA Technologies, Texas Instruments Taiwan, Microsoft Taiwan, Joinsoon Electronics MFG и многие другие компании. Тогда они обещали скорое появление 1,2 Gbps версии шины и прочили ей великое будущее в посткомпьютерную эпоху, которая так и не настала.

Среди реальных преимуществ FireWire — эффективный механизм распределения пропускной способности и возможность прямого соединения двух устройств на шине без участия какого-либо центрального узла. Таким образом, это является изначально встроенной возможностью, которую USB получит только в случае широкого распространения технологии USB-On-the-Go. Более того, если поток данных направляется от одного узла к другому, то в отличие от IEEE1394 производительность шины USB упадет вдвое, поскольку информация будет передаваться дважды! Высказываются и сомнения относительно надежности кабелей. Сейчас выпускается огромное количество дешевых и, следовательно, низкокачественных изделий. Для скорости 480 Mbps они не годятся. Что касается стоимости, то необходимо учитывать, что на сегодняшний день контроллер FireWire обходится производителю всего в $6, а USB-хаб стоит сотню и более. Говорите — некорректное сравнение? А теперь скажите, сколько устройств можно подключить к ПК без использования хаба?

Борьба между USB и IEEE1394 становится все острее и, похоже, близка к критической точке. Силы приблизительно равны: на стороне FireWire техническое совершенство и отлаженность производства, на стороне USB — могучий альянс лидеров рынка ПК. Успех последней целиком возложен на плечи второй версии стандарта, и в момент написания этого материала свой экзамен она держит перед лицом инженеров Тестовой лаборатории нашего еженедельника. Смотрите следующие страницы и сделайте для себя вывод.

Продолжается конкурс авторов ИТС. Напиши статью о развитии игр, гейминг и игровые девайсы и выигрывай профессиональный игровой руль Logitech G923 Racing Wheel, или одну из низкопрофильных игровых клавиатур Logitech G815 LIGHTSYNC RGB Mechanical Gaming Keyboard!


Loading comments...

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: