Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
171
Добавлен:
30.03.2015
Размер:
9.07 Mб
Скачать

Декодеры prml (Partial-Response, Maximum-Likelihood)

В последнее время в накопителях вместо традиционных усилителей считывания с пиковыми детекторами стала использоваться так называемая технология PRML (Partial-Response, Maximum-Likelihood — частичное определение, максимальное правдоподобие). Это позволяет повысить плотность расположения зон смены знака на диске в среднем на 40% и на столько же увеличить емкость носителя.

Увеличение плотности записи приводит к тому, что пиковые значения напряжения при считывании данных могут накладываться друг на друга. При использовании метода PRML контроллер анализирует поток данных с головки посредством фильтрации, обработки и алгоритма определения (элемент частичного определения), а затем предсказывает последовательность битов, которые этот поток данных наилучшим образом представляет (элемент максимального правдоподобия). Обработка данных осуществляется цифровыми методами. В настоящее время в самых новых накопителях на жестких дисках с успехом используется описанная схема PRML.

Измерение емкости накопителя

В табл. 9.3 перечислены стандартные обозначения единиц измерения емкости накопителей.

Таблица 9.3. Стандартные единицы измерения емкости накопителей

Аббревиатура

Название

Десятичная величина

Двоичная величина

Kb (Кбит)

Килобит

1000

024

KB, К (Кбайт)

Килобайт

1000

024

Mb (Мбит)

Мегабит

1 000 000

048 576

MB, M (Мбайт)

Мегабайт

1 000 000

048 576

Gb (Гбит)

Гигабит

1 000 000 000

073 741 824

GB, G (Гбайт)

Гигабайт

1 000 000 000

073 741 824

ТЬ (Тбит)

Терабит

1 000 000 000 000

099 511627 776

ТВ, Т (Тбайт)

Терабайт

1 000 000 000 000

099 511627 776

К сожалению, не существует общепринятого способа отличать двоичные кратные единицы измерения от десятичных. Другими словами, английское сокращение MB (или M) может обозначать как миллионы байтов, так и мегабайты. Как правило, объемы памяти измеряются в двоичных единицах, но емкость накопителей — ив десятичных и в двоичных, что часто приводит к недоразумениям. Заметьте также, что в английском варианте биты (bits) и байты (Bytes) отличаются регистром первой буквы (она может быть строчной или прописной). Например, при обозначении миллионов битов используется строчная буква "b", в результате чего единица измерения миллион битов в секунду обозначается Mbps, в то время как MBps означаетмиллион байтов в секунду.

Поверхностная плотность записи

Основной критерий оценки накопителей на жестких дисках — поверхностная плотность записи. Она определяется как произведение линейной плотности записи вдоль дорожки, выражаемой в битах на дюйм (Bits Per Inch — BPI), и количества дорожек на дюйм (Tracks Per Inch — TPI) (рис. 9.9). В результате поверхностная плотность записи выражается в Мбит/дюйм или Гбит/дюйм . На основании этого значения можно сделать вывод об эффективности того или иного способа записи данных. В современных накопителях размером 3,5 дюйма величина этого параметра составляет 10-20 Гбит/дюйм , а в экспериментальных моделях достигает 40 Гбит/дюйм . Это позволяет выпускать накопители емкостью более 400 Гбайт.

В накопителях данные записываются в виде дорожек; каждая дорожка, в свою очередь, состоит из секторов. На рис. 9.10 показан магнитный диск 5,25-дюймовой дискеты на 360 Кбайт, состоящий из 40 дорожек на каждой стороне, а каждая дорожка разделена на 9 секторов.

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

Обратите внимание, что девятый сектор длиннее всех остальных. Это сделано для того, чтобы компенсировать отличия в скорости вращения различных накопителей. Большая часть поверхности рассматриваемой дискеты не используется; это связано с длиной внешних и внутренних секторов.

Рис. 9.9. Графическое представление поверхностной плотности записи

Поверхностная плотность записи неуклонно увеличивается. При появлении первого устройства магнитного хранения данных IBM RAMAC в 1956 году рост поверхностной плотности записи достигал 25% в год, а с начала 90-х — 60%. Разработка и внедрение магниторезистивных (1991 год) и гигантских магниторезистивных головок (1997 год) еще больше ускорили увеличение поверхностной плотности записи. За более чем 44 года, прошедших с момента появления первых устройств магнитного хранения данных, поверхностная плотность записи выросла более чем в пять миллионов раз.

В следующие пять лет (при сохранении существующих темпов роста) плотность записи достигнет 100 Гбит/дюйм . Эта плотность записи соответствует точке суперпарамагнитного эффекта (магнитные домены настолько малы, что становятся нестабильными при комнатной температуре). Использование новых технологий, например материалов с высокой коэрцитивностью и записи с вертикальной поляризацией, позволит увеличить плотность записи до 200 Гбит/дюйм и более. Одна из перспективных технологий недалекого будущего — голографические устройства хранения информации, в которых данные записываются с помощью лазера в "трехмерном пространстве" (кристаллические пластина или куб).

На рис. 9.11 показан график увеличения поверхностной плотности записи устройств магнитного хранения данных с момента их первого появления до настоящего времени.

Дальнейшее повышение поверхностной плотности записи связано с созданием новых типов носителей (с использованием некристаллических стекловидных материалов) и конструкций головок, с применением метода псевдоконтактной записи, а также более совершенных методов обработки сигналов. Для достижения более высокого уровня поверхностной плотности необходимо создать такие головки и диски, которые могли бы функционировать при минимальном зазоре между ними. В современных устройствах этот зазор составляет около 10 нм (для сравнения: толщина волоса человека обычно достигает 80 нм).

¶Рис. 9.10. Схема магнитного носителя 5,25-дюймовой дискеты на 360 Кбайт

¶Рис. 9.11. Эволюция поверхностной плотности записи устройств магнитного хранения данных

Технология USB 2.0¶Следующий год, по прогнозам аналитиков, должен стать переломным в пользу нового (относительно) USB 2.0. А ведь многие еще и с первым-то незнакомы. Скорости с которой производители "компьютерных железяк" разрождаются новыми творениями можно только удивляться. ¶Бедняжка пользователь в таком огромном потоке высокотехнологичных устройств часто теряется, и многие технологии остаются за гранью его внимания. Так вот и шина USB, какой бы новой многим она ни казалась, - технология в возрасте. Десятилетний юбилей не за горами. Жизнь ее началась в далеком 1995 году, когда многие компании, стремясь следовать провозглашенному принципу Plug'n'Play стремились создать нечто, позволяющее сделать процедуру добавления новых устройств в систему настолько простой, насколько это вообще возможно, да и к тому же универсальное, пригодное для большого числа разного вида устройств. Эта идея объединила лидеров компьютерной и телекоммуникационной промышленности в лицах Compaq, DEC, IBM, Intel, Microsoft, NEC и Northern Telecom. Мы же простые пользователи, с трепетом ожидали окончания разработок.

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

Что ж. Их мучения не прошли даром. И хотя поначалу внедрение шло с очень большим скрипом, сегодня сотни миллионов компьютеров по всему миру оснащены шиной USB, а периферийных устройств с этим интерфейсов всех не перечесть: от мышек и клавиатур до жестких дисков, приводов для записи CD и DVD и др.

Причиной скрипа при внедрении был замкнутый круг: естественно, что новая шина должна была поддерживаться операционной системой, а Windows 95 этим похвастаться не могла. Microsoft не горела желанием работать не пойми для чего - устройства с USB интерфейсом можно было пересчитать едва ли не на пальцах, а в производители аппаратного обеспечения в свою очередь не хотели делать устройства для не поддерживающейся популярной ОС шины.

Выход обновлений OSR2.1 не сильно изменил ситуацию, так как сделано все было в нем через пень-колоду (кстати, а в NT системах она так и не появилась. до Windows 2000). Основная поддержка была со стороны компаний производителей систем и системных компонентов - для них это было источником прибыли (по данным аналитиков Dataquest объем продаж систем с USB должен был составить в 1997 году 30 млн штук и в 1998 все продаваемые компьютеры должны были быть оснащены этой шиной (возможно так и было, но не у нас:-))), и, потом, товарищи верили, что взойдет она, звезда пленительного счастья.

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

Сегодня USB - это очень популярная универсальная последовательная шина. Предназначена для легкого подключения различного вида устройств это клавиатуры, мыши, джойстики, колонки, модемы, мобильные телефоны, ленточные, дисковые, оптические и магнитооптические накопители, флэш-диски, сканеры и принтеры, дигитайзеры, словом все, что подключается к ПК. Также, с ожиданием большого роста в области интеграции компьютеров и телефонии, шина USB может выступать в качестве интерфейса для подключения устройств цифровой сети с интегрированными услугами (ISDN) и цифровых устройств Private Branch eXchange (PBX).

Пропускной способности в 480 Мбит/с в версии 2.0 достаточно для удовлетворения потребностей всех этих применений в полной мере. Добавление устройств больше не сопряжено с установкой дополнительных адаптеров, выполнением сложного конфигурирования, ручным инсталлированием дополнительного программного обеспечения: система автоматически определяет, какой ресурс, включая программный драйвер и пропускную способность, нужен каждому периферийному устройству и делает этот ресурс доступным без вмешательства пользователя. Популярная периферия сегодня доступна в вариантах с USB гораздо чаще, чем с другими.

Существовавшей раньше разницы в цене в 10-15-20 долларов (автор помнит как 5 лет назад приобретая сканер переплачивал 20 долларов за USB модель) и заоблачных цен на внешние USB-контроллеры нет, более того, уже давно USB-контроллеры интегрируются в чипсеты материнских плат, и пользователь получает их в свое распоряжение практический задаром. USB вышел в массы и нужно констатировать тот факт, что COM LPT и PS/2 порты медленно умирают. Что ж. Давно пора была избавиться от многочисленных пережитков прошлого. Это та красивая внешняя сторона, которой USB обращена к пользователю. ¶Внутри все несколько сложней. Вообще я уже говорил, что в последнее время стремление производителей к четкой внутренней организации/структуризации мне все время напоминает о модели OSI сетей передачи данных. Кто-то к ним дальше, кто-то ближе но в целом.¶Наверное многие слышали о том что USB шина позволяет подключать до 127 устройств. И в тоже время на задней стенке обычно находится 2 или 4 порта. И у многих наверняка возник вопрос - нас обманули, на нас сэкономили (меньше портов - дешевле система. Хотя… 127 портов разместить на задней панели… Даже представить сложно) или что-то еще. Оказывается дело все в том, что шина USB позволяет многоуровневое каскадирование. ¶Так мы выходим на первую архитектурную особенность шины USB: ее логическая топология - многоуровневая звезда.

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

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

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

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

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

Все классы устройств уже были упомянуты. Теперь можно о каждом поговорить немного подробнее.

Хост. Как уже было сказано ранее, программно-аппаратный комплекс.

В обязанности хоста входит:

  • Слежение за подключением и отключением устройств

  • Организация управляющих потоков между USB-устройством и хостом.

  • Организация потоков данных между USB-устройством и хостом

  • Контроль состояния устроств и ведение статистики активности

  • Снабжение подключенных устройств электропитанием

Аппаратной частью является хост контроллер - посредник между хостом и устройствами на шине.

Программные функции (перечисление устройств и их конфигурирование, управление энергопотреблением, процессами передачи, устройствами на шине и самой шиной) возложены на операционную систему. Первой популярной операционной системой, в которой поддержка USB реализована была в полном объеме стала Windows 98 Second Edition. Некоторые устройства могут быть работоспособными и под более ранними версиями (98 без SE, и изредка 95), но далеко не все и не всегда.

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

Хаб должен следить за подключением и отключением устройств, уведомляя хост об изменениях, управлять питанием портов. В концентраторе стандарта USB 2.0 можно выделить 3 функциональных блока: контроллер, повторитель, транслятор транзакций. Контроллер отвечает за соединения с хостом. Понятие повторитель в USB несколько отличается от принятого в сетях передачи данных. Его обязанность - соединять входной и какой-то нужный из выходных портов. Транслятор транзакций появился лишь в USB 2.0 и нужен, как всегда, из соображений совместимости с предыдущими версиями. Вкратце его суть в том, что бы обеспечивать максимальную скорость соединения с хостом. Подключенное к высокоскоростному (USB 2.0) порту старое медленное (USB 1.1) устройство съедало бы значительную часть времени, а следовательно и полезной пропускной способности шины, ведя обмен с хостом на низкой скорости (почему так происходит мы выясним позже при рассмотрении механизма обмена данными хост-устройство). Как метод борьбы транслятор транзакций буферизирует поступающий с медленного порта кадр, а затем на максимальной скорости передает его хосту, или же буферизирует получаемый на максимальной скорости кадр от хоста, передавая его затем устройству на меньшей, приемлемой для него скорости. Помимо разветвления и трансляции транзакций хаб должен осуществлять конфигурирование портов и слежение за корректным функционированием подключенных к ним устройств. Нужно сказать также, что при использовании старых и новых концентраторов вместе возможно создание неоптимальных с точки зрения производительности конфигураций. Для того что бы избежать создания узких мест в своей цепи, подключайте низкоскоростные устройства к низкоскоростным хабам, которые в свою очередь делайте последними уровнями ветвления и не подключайте их в середину высокоскоростной цепочки.

Функциональное устройство. С точки зрения USB, устройство - это набор конечных точек с которыми возможен обмен данными. Число и функции точек зависят от устройства и выполняемых им функций, и определяются при производстве. В обязательном порядке присутствует точка с номером 0 - для контроля состояния устройства и управления им. До осуществления конфигурирования устройства через точку 0 остальные каналы не доступны. Каждая конечная точка устройства описывается следующими параметрами:

  • Частотой обращения к шине и требованиями к задержкам

  • Необходимой полосой пропускания

  • Номером конечной точки

  • Требованиями к обработке ошибок

  • Максимальным размером кадра который может быть принят или послан.

  • Типом поддерживаемой передачи данных

  • Направлением осуществления передачи между конечной точной и хостом.

Для низкоскоростных (low-speed) устройств возможно существование до двух дополнительных точек; для full-speed устройств их число ограничивается лишь возможностями протокола и может достигать 15-ти для ввода и 15-ти для вывода.

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

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

  • Потоковые каналы. Являются однонаправленными. В отличие от четко определенных сообщений не имеют определенного закрепленного в стандарте формата, что означает возможность передачи данных любого вида. Эти передачи могут контролироваться не только хостом, но и устройством. Используется для передач данных типа прерывание, групповая пересылка, изохронная (смотрим ниже). В спецификации в зависимости от типа передаваемых данных, предъявляемых требований к скорости обработки, задержки доставки и т.п. определены следующие типы передач.

  • Управляющие передачи. Используются для конфигурирования устройств во время подключения и выполнения других специфических функций над устройством, включая организацию новых каналов.

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

  • Групповая пересылка. Используется для гарантированной передачи данных больших объемов без предьявленных требований к скоростям и задержкам. Занимает под себя всю свободную пропускную способность шины. В любой момент доступная полоса может быть урезана при необходимости осуществления передач других видов с более высоким приоритетом, или добавлена, при освобождении другими устройствами. Обычно такие передачи используется между принтерами, сканерами, накопителями и др.

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

Обмен данными может осуществляться в трех скоростных режимах:

  • Low Speed. Низкоскоростной режим. Скорость передачи составляет 1.5 Мбит/с.

  • Full Speed. Полноскоростной режим. Скорость передачи 12 Мбит/с.

  • High Speed. Высокоскоростной режим. Появился лишь в спецификации 2.0. Скорость передачи 480 Мбит/с.

Информация по шине передается пакетами. Всего их определено 4 вида:

  • Маркерные пакеты.

    • In - информируют USB устройство, что хост хочет читать данные из устройства

    • Out - информирует USB устройство, что хост хочет передавать данные в устройство

    • Setup - используются для обозначения начала управляющего типа передачи данных

    • SOF - пакеты начала кадра (Start of Frame Packets)

  • Пакеты данных.

    • Существуют два типа пакетов данных - DATA0, DATA1 , каждый из которых способен содержать до 1024 байтов данных. У высокоскоростных устройств для пакетов данных определены два других PID-a: DATA2 и MDATA.

  • Пакеты подтверждения.

    • ACK - подтверждение того, что пакет был успешно принят

    • NAK - информирует, что устройство в данный момент не может принимать либо отправлять данные. А в Interrupt транзакциях сообщает хосту, что устройство не имеет новых данных для передачи.

    • STALL - указывает, что устройство неспособно передавать или получать данные и требуется вмешательство хоста.

  • Специальные.

    • PRE - предшествует низкоскоростной передаче данных.

Устройства на шине USB делятся на ведущие и ведомые. Фактически, ведущих устройств на шине может быть только одно, и таковым является хост. Все передачи данных инициируются хостом в соответствии определенной временной программой. Функциональные устройства сами не могут инициировать передачу, а лишь отвечают на запросы хоста. Обмен данными возможен только между хостом и устройством, и не возможен на прямую между устройствами подключенными к шине (это означает, что в принципе в первую очередь USB - это шина вывода. Позже мы поймем почему). Транзакции на USB шине состоят из двух-трех актов: посылки пакета маркера, определяющего, что будет следовать дальше (тип транзакции, адрес устройства и его конечную точку), пакета данных (опционально), и пакета статуса транзакции (для подтверждения нормального выполнения операции или сообщения об ошибке).

Мы не станем опускаться в рассмотрении до уровня кадров и микрокадров, так как это совсем не помешает понять нам общие принципы работа шина.

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

Два для передачи сигнала и два для подачи напряжения. Для подключения устройств предназначены соединители двух типов: типа "A" и типа "B". Как мне кажется создание двух различных видов коннекторов было необходимо для того, что бы избежать излишней путаницы при подключении устройств и защититься от дурака, лишив его возможности подключить что-либо не так. Кроме того, они характеризуются различным усилием необходимым для вставки и силой удержания в разьеме.

Коннекторы типа "А" используются для подключения к компьютеру, обеспечивают жесткое и надежное крепление и не предназначены для частого подключения/отсоединения. ¶Соединители же типа "B", наоборот, нужны в тех местах, где существует необходимость частого подключения/отключения, и применяются они со стороны периферии.

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

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

Итак, к шине подключено новое устройство. Наверняка вы задавались вопросом, каким образом происходит обнаружение. Ответ прост: обнаружение устройства, а также и его скоростной режим определяется по скачку напряжения, который имеет место быть при включении на шине данных. Этот скачок создается подключением резистора к напряжению 3.3 В. Для низкоскоростных устройств этот резистор подключается к шине D-, для полно- и высокоскоростных - к шине D+. Обычно тот резистор делается программно управляемым для того, что бы после обнаружения устройства его можно было отключить и сбалансировать линию. Итак, новое устройство подключено и обнаружено.

Конфигурирование осуществляется через конечную точку с номером 0 (для любопытных можно сказать, что обмен информацией в этот момент происходит в полноскоростном режиме!). Загружаются необходимые драйверы. Устройство готово к работе.

Обмен данными. Случай первый: передача от хоста к устройству. В принципе, никакой сложности нет. Как только такая необходимость возникла, хост может инициировать передачу. Для этого он посылает устройству пакет out (в знак того, что данные будет передавать он), затем посылает сами данные, а затем принимает пакет ACK, подтверждающий, что данные устройством получены без ошибок (если это не изохронный тип передачи, для которого подтверждение не передается).

Обмен данными. Случай второй: от устройства к хосту. У устройства возникла необходимость передать данные. НО! Оно не может никаким образом дать знать об этом хосту. Таких средств в USB просто не предусмотрено. Для того, что бы выполнить такую передачу, хост должен обратиться у устройству с вопросом, не имеет ли оно желание чего-либо ему сказать (послав пакет in). В ответ на что устройство вышлет ему имеющиеся данные и дождется получения подтверждения (снова же, если ведется не изохронная передача). Соответственно, если хост не обратиться с таким вопросом, то данные никогда не будут переданы.

Обмен управляющей информацией. В принципе имеет ту же логику, но используется передача типа управление и канал сообщений и специальные пакеты.

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

На этом краткий курс в глубь USB можно считать завершенным. Остается добавить только что, во-первых, ввиду огромной популярности интерфейса у всевозможной периферии к стандарту было выпушено дополнение USB 2.0 On-The-Go, которое призвано дать возможность устройствам обмениваться информацией между собой без участия компьютера, но так как пока ничего в действии я не видел, особенно по этому поводу не распространялся. Во-вторых, автор этого обзора не гений, и ничего нового в своей статье он не изобрел, а лишь обработал материал доступный на бескрайних просторах интернета, в виде спецификации USB на http://www.usb.org/, обзорных статей сайта USB Masters и FAQ по USB у iXBT Hardware.

Использование портов USB для связи между компьютерами

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

Самыми популярными интерфейсами ввода-вывода являются последовательные (COM) и параллельные (LPT) порты.

К последовательным чаще подключаются устройства, которые должны не только передавать информацию в компьютер, но и принимать ее — например, мышь, модем, сканер. Всеми устройствами, которым необходима двунаправленная связь с компьютером, используется стандартный последовательный порт RS232C (Reference Standart number 232 revision C), который позволяет передавать данные между несовместимыми устройствами. Классическое соединение двух компьютеров выполняется нуль-модемным кабелем и обеспечивает скорость передачи данных не более 115,2 Кбит/с. Кабель для такого соединения несложно изготовить самостоятельно. Параллельные порты обычно используются для подключения принтеров и работают в однонаправленном режиме, хотя могут передавать информацию в обоих направлениях. Отличие двунаправленного порта от однонаправленного не только в толщине кабеля, но и в самом интерфейсе. Возможность переключения параллельного порта в двунаправленный режим можно проверить в настройках CMOS. Расширенный параллельный порт (ECP) обеспечивает скорость передачи данных не более 2,5 Мбит/с и является самым дешевым и доступным решением.

Портативные компьютеры и другие устройства иногда оснащаются инфракрасным IrDA-портом ввода-вывода. Современные мобильные устройства поддерживают скорость передачи данных до 4 Мбит/с, но даже у старых моделей с IrDA-портом скорость передачи достигала 1 Мбит/с. В настоящее время для настольных и портативных компьютеров разработано два высокоскоростных устройства с последовательной шиной, получивших название USB (Universal Serial Bus — универсальная последовательная шина) и IEEE 1394, называемая также i.Link или FireWare.

Практически любой современный компьютер имеет разъемы подключения USB. В разработке этого стандарта принимали участие семь компаний: Digital Equipment, IBM, Intel, Compaq, NEC, Microsoft и Northern Telecom. На физическом уровне кабель представляет собой две скрученные пары проводников: по одной передаются данные в двух направлениях, вторая является линией питания (+5 В), обеспечивающей ток до 500 мА, благодаря чему USB позволяет применять периферийные устройства без блока питания. Скорость передачи данных составляет 12 Мбит/с — это даже выше 10 Мбит/с LAN. Но величина затухания сигнала в USB гораздо выше, поэтому расстояние между подключенными устройствами ограничивается несколькими метрами. USB-порты лишены несовместимости, которая иногда встречается у СOM- или LPT-портов. Все подключенные через USB устройства конфигурируются автоматически (PnP) и допускают горячее Hot Swap включение/выключение.

К одному компьютеру теоретически можно подсоединить до 127 устройств через цепочку концентраторов по топологии "звезда". На практике это число ниже — не более 16-17 — ограничительными факторами выступают сила тока и пропускная способность шины. Передача данных по шине может осуществляться как в асинхронном, так и в синхронном режиме.

Скоростные характеристики различных портов ввода-вывода: скорость передачи данных (Мбит/сек) USB — 12; IrDA — 4; LPT (ECP) — 2,5; COM — 0,115

Организовать связь между двумя компьютерами можно посредством стандартного комплекта ПО, встроенного в Windows. Это Direct Cable Connection (DCC) — прямое кабельное соединение по параллельному или последовательному порту. Но оно не всегда будет успешным из-за неполной аппаратной совместимости СOM- или LPT-портов в соединяемых машинах.

Для соединения двух компьютеров по USB нельзя использовать простой кабель USB A-A. Потребуется специальный кабель USB Smart Link, который оснащен оптронной развязкой и специальной микросхемой-контроллером, выполняющей функцию моста (bridge).

Установка и конфигурация драйвера осуществляется автоматически, после установки драйверов устройство сразу готово к работе, потребуется только установить программу — что-то вроде менеджера файлов. В комплекте с кабелем и драйвером обычно поставляется программа USB Link. Она позволяет передавать файлы от одного компьютера к другому, имеет простой интерфейс, который разделен на два окна: свой компьютер и удаленный. В правом нижнем углу программы есть два индикатора, зеленый цвет которых свидетельствует об установлении полнодуплексной связи. При запуске она автоматически производит поиск устройства USB Smart Link и пытается обнаружить удаленный компьютер и запущенную на нем аналогичную программу. После этого происходит полная синхронизация файловых систем на всех дисках обоих компьютеров. Программа работает в режиме Hot Swap, при отключении и подключении второго компьютера срабатывает автоматически. К сожалению, поставляемый драйвер стабильно работает и без проблем устанавливается только под операционной системой Windows 98 SE, но зато в этой "тарелке" обеспечивается высокая скорость передачи данных, а также простота настройки и подключения.

Еще одно решение для соединения между собой двух компьютеров предоставляет PC-Link USB Bridge Cable Link-100. Это USB-кабель с разъемами типа А с обеих сторон и утолщением, в котором смонтирована плата на чипсете компании Prolific. Вместе с драйвером устанавливается программа PC-Linq — разновидность Link Commander. Работа и внешний вид программы аналогичны USB Link, но у нее есть преимущества в поддержке операционных систем Windows XP и Windows 2000.

Скорость обмена данными между компьютерами значительно превышает скорость соединения через последовательный и даже параллельный порт и сопоставима со скоростью работы локальной сети на 10 Мбит/с. Успешно решаются задачи регулярной перекачки как малого, так и значительного объема файлов, например, между портативным и настольным компьютером.

Разумеется, такой набор полезных функций может показаться недостаточным. А как же поддержка работы компьютерных игр, совместные сетевые ресурсы и доступ всех пользователей к одному каналу Интернет? Все это становится возможным с помощью другого устройства — модели Link-200. Она позволит организовать на основе USB-связи одноранговую сеть, к которой можно подключить до 16 компьютеров. Link-200 использует контроллер и драйверы от фирмы AnchorChips. Устройство представляет собой небольшую полупрозрачную коробочку с интегрированным в нее кабелем USB A. На другой стороне коробочка снабжена USB-разъемом типа B. В комплекте поставляется кабель A-B и дискета с драйверами.

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

Как обычно для USB-устройств, установка очень простая. Программа автоустановки установит необходимые драйверы и программное обеспечение EZ-Link manager. Если на вашем компьютере до этого не была установлена сеть, то вам придется ввести имя компьютера, под которым он будет виден в сети. После установки драйверов необходимо перезагрузить компьютер и только после этого подключить Link 200 к свободному порту. В настройках драйвера Link 200 в разделе Advanced можно изменить уникальный номер компьютера, под которым он виден в USB-сети на основе Link 200.

EZ-Link manager будет запускаться при каждой загрузке компьютера. Если компьютер не подключен к сети, иконка будет серой, а после подключения кабеля Link 200 к USB-портам двух компьютеров он автоматом определит наличие связи, активирует сетевое соединение, и иконка сменит цвет на синий. Работа с сетью на основе адаптеров Link 200 полностью идентична работе с обычной сетью: можно подключать сетевые диски и прочие сетевые ресурсы, запускать сетевые игры через протокол TCP/IP или IPX.

Таким образом, Link 200 дает возможность создать полнофункциональную сеть при минимальных затратах. Установка и настройка драйверов осуществляется очень просто. При сравнительно небольшой цене за комплект для соединения двух машин Link 200 создает серьезную конкуренцию обычным сетевым картам. К сожалению, данное решение пока работает только под Windows 98/95, но производители обещают выпустить драйверы и под Windows 2000.

Еще одно устройство, USBNet, позволяет соединить два компьютера, построив сеть без установки сетевых карт. Минимальные требования к компьютерам — Windows 98 и наличие USB. При использовании USBNet компьютеры в сети получают возможность совместного использования файлов, программ и периферийного оборудования: дисководов гибких и жестких дисков, CD-ROM, принтеров, сканеров, модемов. USBNet — это идеальное решение для небольших офисов, сетевых игр и небольших домашних сетей. Количество пользователей в такой сети может достигать 17. Скорость передачи данных до 5 Мб/сек. Устанавливается специалный протокол соединения USB, имеется поддержка TCP/IP и других сетевых протоколов. Устройство устанавливается как адаптер локальной сети.

USB Smart link позволяет соединять для работы не только PC и PC, но и PC/Mac, Mac/Mac. При подключении через USBLink достаточно установить драйвер устройства на оба компьютера и программу USB Bridge cable. С помощью этой программы можно переносить файлы и папки с одного компьютера на другой примерно так, как это происходит в любом из файловых менеджеров. Но копирование файлов можно производить только в одну сторону — одновременно не получится. Кстати, USBNet лишен этого недостатка. Драйвер устройства, все необходимые сетевые протоколы и службы доступа устанавливаются автоматически. Специфические протоколы, именуемые чаще всего USB-USB Bridge net, необходимо установить только на внешний компьютер, у которого есть подключение к локальной сети, причем установка произойдет автоматом — вам нужно лишь согласиться с запросом: да или нет. Недостаток USBNet — низкая скорость прокачки: при заявленных 5 Мбит/с чаще всего получается 3 Мбит/с. Но это компенсируется возможностью доступа не только к файлам, но и к приложениям второго компьютера, а также использование по сети принтера, сканера и других периферийных устройств. Различия в операционных системах и процессорах соединяемых компьютеров на их работу не влияют.