К компьютерным портам (аппаратным
интерфейсам) причисляют как специализированные интерфейсы (например,
сетевые, а также служащие для подключения таких устройств, как мониторы,
аудиосистемы или беспроводные мыши и клавиатуры), так и интерфейсы
общего назначения, к которым потенциально можно подключить любое
устройство. К проводным интерфейсам общего назначения относятся порты
COM, LPT, PS/2, GAME-порт, FireWare и USB.
Сетевые интерфейсы, в том числе
беспроводные (Wi-Fi), мы рассмотрим в последующих главах. Из
беспроводных интерфейсов общего назначения наиболее универсальным
является Bluetooth – как и Wi-Fi, он чаще используется для связи между
компьютерами (или между компьютерами и мобильными устройствами), и мы
его рассмотрим в этой главе отдельно. Известен еще интерфейс SCSI
(«сказёвый», как его любят обзывать компьютероманы), но на нем я не буду
останавливаться – можно считать, что он похоронен окончательно и
бесповоротно и остался лишь как основа некоторых современных
интерфейсов. Разъем шины PCI-Express тоже может быть использован в
качестве внешнего порта, но пока еще таких устройств немного. Всякую
экзотику, вроде специального разъема для подключения MIDI-устройств, мы
тоже рассматривать не будем, как и специфичные для ноутбуков интерфейсы
PCMCIA или ExpressCard, – ограничимся стандартными портами, причем
рассмотрим их приблизительно в той последовательности, в которой они
появлялись на свет.
Чтобы наглядно представить размещение и
внешний вид упомянутых далее интерфейсов на задней панели современного
настольного компьютера, можно обратиться к рис. 1.2 в главе 1 «Начинка компьютера. Особенности мобильных компьютеров».
COM
СОМ-порт (от слова
«коммуникационный»), или serial («последовательный») порт – отчасти
ошибочно еще называют портом RS-232. Правильно сказать так: COM-порт
передает данные, основываясь на стандарте последовательного интерфейса
RS-232, который, кроме собственно протокола передачи и
электрических параметров, стандартизирует разъем DB-25. Позднее,
специально для ПК, выпустили стандарт RS-574, установивший всем знакомый
разъем DB-9, теперь ставший фактическим стандартом для всей отрасли.
Есть и еще один термин, который имеет непосредственное отношение к этой
теме: UART (Universal Asynchronous Receiver-Transmitter, универсальный
асинхронный приемопередатчик). UART есть составная часть СОМ-порта, его
основа, то устройство, которое собственно передает и принимает данные и к
которому адресуются пользовательские программы. Кроме UART, в СОМ-порт
входит преобразователь электрических уровней UART/RS-232. Вообще-то на
микросхемах UART можно построить линии передачи по различным протоколам:
RS-422 (скоростному), RS-485 (повышенной надежности), даже USB.
Рассматриваемый RS-232 – самый простой из них.
Стандарт RS-232 – один из самых древних
протоколов передачи данных между устройствами, он был утвержден еще в
1969 году, и к компьютерам (тем более ПК) тогда еще не имел никакого
отношения. Это очень простой в реализации, дешевый, неприхотливый и
достаточно надежный способ соединения двух устройств. Существует
несколько стандартов RS-232, различающихся добавленной буквой: RS-232C,
RS-232D, RS-232E и пр. Вдаваться в различия между ними нет никакого
смысла – они являются лишь последовательным усовершенствованием и
детализацией технических особенностей одного и того же устройства.
Заметим лишь для справки, что все современные порты поддерживают
спецификации RS-232С или RS-232E.
Давайте немного подробнее остановимся на
том, как работает RS-232 – это хорошо иллюстрируют не совсем очевидные
принципы передачи целого набора битов всего по одному проводу. Идея
заключается в посылке последовательных импульсов, каждый из которых
может означать 0 или 1. Если в определенные (заранее известные) моменты
времени считывать состояние линии, то можно восстановить то, что было
послано. Однако эта очевидная мысль наталкивается на определенные
трудности.
Для приемника и передатчика, связанных
между собой тремя проводами («земля» и два сигнальных провода: «туда» и
«обратно»), приходится задавать скорость передачи и приема, которая
должна быть одинакова для устройств на обеих концах линии. Эти скорости
стандартизированы и выбираются из ряда от 110 до 115200 битов в секунду.
Проблема состоит в том, что приемник и передатчик – это физически
совершенно разные системы, и скорости эти для них не могут быть строго
одинаковыми (из-за разброса параметров тактовых генераторов), и даже
если их каким-то образом синхронизировать в начале, то они в любом
случае быстро «разъедутся». Поэтому в RS-232 придумали передачу каждого
байта сопровождать начальным (стартовым) битом, который служит для
синхронизации. После него идут от пяти до восьми информационных битов
(девять – если используется проверка на четность), а затем стоповые
биты, которых может быть один, два и более, – предполагается, что за
время прохождения всей этой посылки приемник и передатчик по частоте
«разойтись» не успеют.
Рисунок 3.1 иллюстрирует работу
приемопередатчика RS-232. Стартовый бит передается положительным уровнем
напряжения (в данном случае это считается логическим нулем), а стоповый
– отрицательным уровнем (логической единицей). Обнаружив изменение
уровней с отрицательного на положительный, приемник считает это
стартовым битом и с заданными, согласно оговоренной заранее скорости
передачи, промежутками времени отсчитывает от него все остальные. Рис. 3.1. Передача байта по стандарту RS-232 Одно из
самых удобных с технической точки зрения качеств RS-232 – то, что
стандарт предусматривает весьма широкий разброс напряжений сигнала –
официально в пределах от ±5 до ±15 В (для RS-232C), а на самом деле он
может быть еще расширен, потому что приемник принимает сигналы ±3 до ±25
В. Длина линии связи не должна превышать 15 м (RS-232C), но на практике
это могут быть много большие величины. Если скорость передачи не
выбирать слишком высокой, то такая линия может надежно работать на
десятки и сотни метров (автору этих строк удавалось без дополнительных
ухищрений наладить обмен с компьютером на скорости 4800 бод по кабелю,
правда, довольно толстому, длиной около полукилометра). Никаких
специальных витых пар не предполагается – линия может состоять из
обычных проводов.
Из всего этого вытекает, что RS-232 –
идеальный способ для передачи данных с небольшими скоростями по
минимальному количеству проводов. Когда-то его всерьез намеревались развивать, отчего и
стандартизировали разъем с 25 контактами (DB25) – «на вырост». В этом
разъеме имеются дополнительные линии, смысл которых в том, что они могут
применяться для организации различных синхронных протоколов обмена
(протоколов с handshakes, «рукопожатием»). Все старые ПК имели по два
COM-порта: и с 9-ю, и с 25-ю контактами. Быстро выяснилось, что 25
контактов – чистое излишество, вполне достаточно и 9-ти, и DB25 как-то
незаметно исчез из обихода. Остался только DB9, да и в нем имеющиеся
дополнительные линии мало какое устройство использует. Так как RS-232 –
медленный способ передачи, то никаких особых требований к соединителям
он не предъявляет, и нередко можно встретить устройства и с
нестандартным разъемом – например, в некоторых старых цифровых
фотокамерах под последовательный порт были приспособлены
стереоаудиоразъемы. С 1991 года развитие RS-232 затормозилось – ему на
смену пришли намного более сложные, зато удобные для пользователя и
скоростные USB и FireWare.
Отметим еще, что обычный телефонный модем с
точки зрения системы – тоже СОМ-порт, только поверх простейшего
физического протокола RS-232 для него введены некоторые
специализированные команды управления, а в остальном он ничем от
СОМ-порта не отличается (даже если втыкается в USB). «Комом» является и
инфракрасный (IR) порт, беспроводной интерфейс Bluetooth тоже образует
виртуальные СОМ-порты, через которые ведется обмен.
С точки зрения современных технологий у
COM-порта только два недостатка, зато очень серьезных. Во-первых, он
медленный – со скоростью 115 кбит/с не только какое-нибудь видео, даже
цифровой звук не всегда передашь с надлежащим качеством. Правда,
современные порты поддерживают скорости и повыше (например, 256 кбит/с),
но это не выход из положения. Во-вторых, он подразумевает только
соединение «точка-точка» – если у вас один СОМ-порт, то вы к нему можете
подключить только одно устройство. Тем не менее, хоронить протокол
RS-232 не следует – это по-прежнему самый дешевый и простой способ связи
внешних устройств с компьютером, отчего он и по сей день используется
во многих специальных аксессуарах – вроде навигаторов, модемов или
медицинских приборов.
Кабели для подключения RS-232 делятся на
удлинительные (вилка-гнездо, рис. 3.2) и соединительные (гнездо-гнездо,
рис. 3.3), последние часто называют нуль-модемными. В
соединительных кабелях, обеспечивающих обмен между двумя устройствами,
приемные-передающие линии (2-й и 3-й контакты 9-контактного разъема)
соединены перекрестно. В правильном нуль-модемном кабеле контакт 4 (DTR,
Data Terminal Ready, готовность компьютера) на противоположной стороне
также соединяется с 1 и 6 контактами (DCD и DSR – готовность модема). В
удлинительных кабелях все эти контакты соединены один к одному. Рис. 3.2. Удлинительный кабель RS-232 Рис. 3.3. Соединительный (нуль-модемный) кабель RS-232
Если вы
столкнулись с COM-интерфейсом на каком-то приборе, а в компьютере он
отсутствует, – не отчаивайтесь. Есть несколько способов его
организовать. Самые распространенные – приобрести переходник USB-COM в
виде внешнего кабеля или вставную PCI-плату с набором портов. Последний
способ предпочтительнее первого – кабели USB-COM бывают довольно
капризными, и некоторые программы для работы через COM-порт с этими
кабелями работают с ошибками или отказываются работать вовсе. «Железный»
COM-порт, установленный, как постоянное оборудование компьютера,
значительно надежнее и, кстати, даже предпочтительнее стационарного
порта, установленного на материнской плате, – в случае чего выходит из
строя дополнительная плата, а материнская остается в неприкосновенности.
Для ноутбуков такое решение, конечно, не
подходит – в них можно пользоваться только переходниками, например,
USB-COM. Более надежными будут переходники PCMCIA-COM, хотя они могут
быть существенно дороже USB-кабелей. Есть и переходники ExpressCard-COM
для тех ноутбуков, в которых нет PCMCIA.
Как определить номер виртуального COM-порта?И
вставные платы, и кабели, и различные переходники для ноутбуков, имеют,
как правило, одну неприятную особенность – они не позволяют задать
определенный номер COM-порта, он устанавливается произвольным образом
после установки драйвера. Причем для переходников USB-COM часто номер
порта еще и меняется в зависимости от того, в какой именно порт USB в
этот раз воткнули кабель. Такую же особенность имеют и многие модемы (в
том числе GSM-модемы для выхода в Интернет по сотовой связи или сотовые
телефоны, используемые в качестве модема). А для соединения через COM в
программах связи обычно приходится указывать его номер. Как быть?
Определить, какой именно номер присвоен в
данном случае виртуальному COM-порту, можно через меню Панель управления
| Система | Оборудование | Диспетчер устройств | Порты COM и LPT (в
новых версиях Windows Диспетчер устройств может быть доступен прямо из
панели управления). В указанном разделе может быть много разных
COM-портов (особенно, если у вас в системе имеется Bluetooth), но нужный
легко определяется наличием в названии «USB-to-serial» или другой
подобной записи. Для модемов (а также сотовых телефонов, подключенных в
качестве модема) соответствующий номер COM-порта можно узнать, если
найти их в разделе Модемы Диспетчера устройств и обратиться к вкладке
Модем в окне Свойства выбранного модема.
LPT (IEEE 1284)
Мало кто из знатоков вам прямо сразу
ответит, как расшифровывается аббревиатура LPT. На самом деле это
сокращение от Line Print Terminal (терминал линии печати). Есть и другие
версии: Line PrinTer – т. е. «построчный принтер», а некоторые
утверждают, что L означает Letter – «буква», т. е. получается «буквенный
принтер» (как будто во времена появления этого порта существовали
какие-нибудь принтеры, отличные от «буквенных»).
Порт LPT был спроектирован специально для
компьютеров и появился в их составе позже, чем COM. В самом первом IBM
PC (1981) вообще никаких привычных интерфейсов не было, а в более
усовершенствованной модели IBM PC XT (1984) LPT присутствовал лишь в
некоторых конфигурациях. Многие первые модели принтеров подключались
через СОМ, но это оказалось медленно и неудобно. LPT сразу проектировали
так, чтобы обеспечить передачу данных с большими скоростями. Как
следует из названия, он предназначался для конкретной задачи –
подсоединения принтера, но область его использования оказалась заметно
шире.
С LPT тесно связан интерфейс Centronics,
название которого относится как к набору сигналов и протоколу
взаимодействия, так и к 36-контактному разъему, устанавливаемому на
принтерах (рис. 3.4). Со стороны компьютера Centronics никогда не
используется, вместо него устанавливается разъем-гнездо DB-25-female
(«мама» – в отличие от COM-порта, где используется штыревая часть, вилка
DB-25-male, «папа»). Все эти разъемы, как и сигналы, были окончательно
стандартизированы в международном стандарте IEEE 1284 (1994 г.). Рис. 3.4. Разъем Centronics на кабеле для подсоединения принтера
В
отличие от порта COM, не утратившего своего значения до настоящего
времени и не потеряющего его, очевидно, еще долго, LPT уже почти утратил
свои позиции – практически все ориентированные на него устройства,
включая принтеры, ныне делаются под USB. LPT ничем не проще и не дешевле
более скоростного USB, а кабели под него куда более громоздкие. А
наличие в современных микроконтроллерах встроенного UART позволило без
излишних усилий перевести на последовательный порт и все нестандартные
устройства, не требующие высокой скорости передачи, – вроде научного и
медицинского оборудования.
Но если вам все-таки попадется
LPT-устройство, то выход может быть таким же, как в случае COM, – либо
переходник к одному из существующих интерфейсов, либо вставная
PCI-плата. Причем последний вариант, как и для последовательного порта,
предпочтительнее остальных – LPT еще более капризен, чем COM, при его
виртуализации через другие интерфейсы, и кабель USB-LPT для подключения
принтеров может не заработать при подключении, например, сканера.
PS/2
Этот интерфейс отличается от остальных
тем, что имеет сугубо специфическое назначение – для подключения мышей и
клавиатур. Мне неизвестны какие-либо другие устройства, которые его
используют. Причем и для мыши, и для клавиатуры используются одинаковые
6-контактные разъемы типа MiniDIN, помеченные (после принятия стандарта
PC99) цветами: для мыши – бирюзовым, для клавиатуры – сиреневым. С
физической точки зрения PS/2 является последовательным портом с
отдельной линией синхронизации и еще отличается тем, что имеет вывод +5 В
для питания подключенного устройства.
Разъемы PS/2 – почти единственное, что осталось от некогда нашумевшей архитектуры IBM PS/2. Первоначально ПК не поддерживали никаких мышей – зачем
они в текстовом интерфейсе? Для подключения приходилось использовать
специальные адаптеры, устанавливаемые в свободные слоты на плате. Затем
распространились последовательные мыши, которые подключались в COM-порт.
Отметим не всем очевидную нестандартность этого решения – как мы уже
упоминали, разъем COM-порта не имеет специального вывода питания.
Поэтому все последовательные мыши питались от одной из сигнальных
(дополнительных) линий, которая устанавливалась драйвером в нужное
состояние. Мыши разных производителей использовали разные линии для
питания и разную полярность напряжения, поэтому драйверы могли быть
несовместимыми.
Удивительно, но такое «незаконное»
подключение продержалось в качестве стандарта де-факто полтора
десятилетия – разрабатывая стандарт АТХ в 1997 году, компания Intel
ввела разъемы из давно забытой к тому времени IBM-овской линейки PS/2 в
качестве интерфейса для подключения клавиатуры и мыши. Это было наиболее
удобным решением, и даже многие современные платы поддерживают такие
порты. Преимуществом их стало то, что мышь поддерживается на уровне BIOS
(клавиатура, как основное устройство, поддерживалась изначально).
Поэтому подключаемые к PS/2 (и, кстати, даже к USB) мыши в современных
ПК вполне могут работать и в DOS, без всяких драйверов.
Начиная со стандарта РС98, впрочем,
рекомендовалось подключать мышь к порту USB. В РС99 это рекомендовалось
уже настоятельно, а COM-порты посоветовали убрать вовсе. В РС2002 вообще
была дана однозначная команда – для периферии только USB. Но эта
инициатива Intel/Microsoft тогда в значительной мере провалилась и в
какой-то мере начинает осуществляться только в настоящее время.
Что же касается PS/2, то мыши и клавиатуры
никогда из ПК не вынимаются, и с точки зрения пользователя не всегда
ясно, зачем занимать универсальный порт USB, для которого можно
придумать и более полезное применение. Мне, например, четырех имеющихся
разъемов USB на задней панели не хватает и без того – приходится
применять разветвитель, а если бы я еще туда мыши с клавиатурой
подключал, мне бы этих разъемов не хватило и на более нужные надобности.
Вводя одинаковые разъемы для мыши и
клавиатуры, в Intel предполагали, что можно будет их подключать в любой
из разъемов на выбор, с автоматическим определением, что именно
подключено. В реальности так работают только компьютеры, где разъем PS/2
специально окрашен в серый цвет (обычно такой единственный разъем
встречается на ноутбуках, и к нему можно подключать мышь или клавиатуру,
на выбор). В случае наличия двух разъемов, окрашенных в разные цвета,
корректную работу обеспечит только правильное подключение, для чего
ответные части разъемов на кабеле мыши и клавиатуры (и иногда корпуса
переходников с USB-интерфейса, хотя они и взаимозаменяемы) также
окрашены в соответствующий цвет.
С точки зрения пользователя разъемы PS/2
имеют только один недостаток – их очень легко выдернуть случайно, но на
десктопе это не имеет такого большого значения. Что касается
переходников, то если вам попался USB-экземпляр, а на компьютере есть
порты PS/2, то проблем никаких – в эту сторону PS/2 с USB совместимы
полностью, и переходник стоит копейки, потому что не содержит никаких
активных элементов. Часто производители просто вкладывают переходник в
коробку, а вы уж сами решаете, куда подключать приобретенное. А вот в
обратную сторону – для подключения PS/2-мыши к USB – проблемы могут
быть, и в любом случае адаптер стоит дорого, а специальные драйверы (для
конфигурирования дополнительных кнопок, например) могут и не
заработать, так что проще оказывается купить новую мышь.
GAME-порт
Назначение игрового контроллера и его
интерфейса понятно без пояснений. Он (в стандартной конфигурации)
практически не изменился со времен IBM PC AT, разве что стал
встраиваться в материнские платы, а не располагаться на отдельной карте
(обычно его размещали на платах совместно со «звуковухой» или с
контроллером жестких дисков). Он использует такой же, как LPT, тип
разъема DB («мама»), только с 15 контактами, так что перепутать
невозможно. Стандартный GAME-порт поддерживает два джойстика с двумя
кнопками каждый. Встречаются и сдвоенные порты.
GAME-порт имеет выводы питания +5 В (как и
PS/2, и USB), причем даже несколько, т. е. к нему можно подключить
устройства, собственного питания не имеющие. Но еще интереснее, что у
него выводы для подключения координатных преобразователей джойстика (в
количестве 4-х штук) представляют собой самые настоящие аналого-цифровые
преобразователи, довольно, правда, примитивные. «Официальные»
устройства, использующие это свойство игрового порта (кроме, конечно,
самих игровых аксессуаров), мне не попадались, но для радиолюбителей
здесь есть, где развернуться. Впрочем, звуковая карта в этом отношении
много интереснее.
Последние годы GAME-порт практически
потерял свое значение, и все современные игровые «прибамбасы», вроде
джойстиков или рулей, подключаются к USB.
FireWare (IEEE 1394)
«Феа-веа» (примерно так меня учили это
произносить, хотя я все равно предпочитаю «фаря-варя»), известный
также, как стандарт IEEE1394, – замечательная придумка компании Apple,
которую сама же компания, находившаяся тогда (в 1995 году) в глубоком
«дауне», чуть не погубила. Во-первых, абсолютно неправильным рыночным
позиционированием – расчет был на элитарных пользователей, подключающих к
своим аристократическим «Макинтошам» всяческую передовую видеотехнику
или суперскоростные (по тем временам) жесткие диски. Во-вторых, исходя
из этого, компания поначалу запросила ни много ни мало, как по доллару
лицензионных отчислений за каждый установленный в устройствах сторонних
производителей такой порт. Индустрия пожала плечами и отвернулась – уже
через год появился тогда еще очень несовершенный, но зато бесплатный USB
1.0.
Тем не менее, по крайней мере в
«Макинтошах», этот интерфейс прижился. Потом появился и в РС (уже под
названием IEEE 1394 – FireWare есть зарегистрированная марка Apple), а
компания Sony разработала совместимый интерфейс под названием iLink,
который отличается возможностью соединения не только бытовых устройств с
компьютером, но и напрямую между собой. Другие компании продвигали этот
же интерфейс под своими торговыми марками: mLAN (Yamaha), Lynx (Texas
Instruments), SB1394 (Creative Technology), пока в мае 2002 года
компания Apple и организация 1394 Trade Association не приняли
соглашение, позволяющее производителям и дилерам, входящим в ассоциацию,
получать бесплатные лицензии торговой марки FireWire с условием
предварительного прохождения ряда специальных тестов.
До некоторого времени IEEE1394 был вне
конкуренции для перекачки в ПК цифрового видео – ничто другое из
стандартных интерфейсов просто не справлялось (приходилось использовать
дорогущие специальные платы видеозахвата), и с тех пор его традиционно
используют для этой цели. Встраивается этот интерфейс и во многие
цифровые фотокамеры, существуют подключаемые через него внешние диски
или оптические приводы. Очень часто FireWare применяют для подключения
всякой спецтехники, вроде барабанных сканеров. Но если вы такую технику
не используете, и у вас в ПК нет встроенного порта FireWare, то в
остальном он прекрасно заменим на USB 2.0.
И все же жаль, что так вышло – с
технической точки зрения последовательный интерфейс FireWare стремится к
почти недостижимой степени совершенства. Хотя теоретически максимально
возможная скорость передачи для основной модификации стандарта (1394а) –
400 Мбит в секунду – стандартом USB 2.0 даже перекрыта, но зато у
FireWare есть ряд поистине бесценных свойств. Во-первых, у него вывод
питания достаточно мощный (1,5 А, от 8 до 40 В) для того, чтобы вообще
избавить очень многие внешние устройства, вроде сканеров, от
необходимости иметь собственное питание. Во-вторых, он гораздо менее капризен к
подключению/отключению в «горячем» режиме. Теоретически, например,
жесткий диск с таким интерфейсом можно выдернуть из порта прямо во время
передачи данных, и с ним ничего не случится. Есть и другие особенности,
о которых стоит поговорить подробней.
Для FireWare существует две разновидности
соединительных кабелей: с 4-мя и с 6-ю жилами и, соответственно, два
типа розеток. Поскольку на плате контроллера могут быть розетки как на
шесть проводов, так и на четыре, то и типов переходных шнуров существует
3 вида (6–6/6-4/4-4). На один канал теоретически можно подключать до 63
устройств, причем к единому шлейфу, без каких-то хабов-концентраторов,
как в USB. Мало того, если каждое такое устройство является узлом (т. е.
в терминах USB – концентратором), то к нему можно подключить еще до 16
устройств. Если этого недостаточно, то, в соответствии со стандартом
IEEE 1394.1, можно дополнительно подключить до 1023 шинных перемычек,
которые могут соединять более 64 000 узлов! Такое множество техники
«чайник» не в состоянии подключить без ошибок, и на этот случай при
неправильном подключении устройств, которое приводит к образованию
логической петли, интерфейс выполняет автоматическую коррекцию. Кроме
того, в отличие от USB, шина 1394 может поддерживать устройства,
работающие на разных скоростях передачи данных. Все это рассчитано на
проектирование домашних мультимедиасетей, хотя на практике такие сети
встречаются довольно редко.
Добавим, что стандарт 1394b поддерживает
скорость 800 Мбит/с, а модификации его на основе оптоволокна
поддерживают скорость 1600 Мбит/с и даже 3200 Мбит/с на расстоянии до
50-100 метров. Порты стандарта 1394c имеют интересную особенность – они
используют витую пару и могут работать параллельно с Gigabit Ethernet,
т. е. появляется возможность иметь две друг от друга не зависящие сети
на одном кабеле.
С другой стороны, FireWare хотя и может
использоваться для подключения тех же мышей и клавиатур, но это ему
как-то… не к лицу, и таких простых устройств с этим интерфейсом не
существует. USB куда демократичней и более универсальный.
USB
Первая версия последовательного
интерфейса USB появилась 15 января 1996 года. Инициаторами проекта был
альянс семи крупных компаний производителей: Intel, Compaq, DEC, IBM,
Microsoft, NEC и Northern Telecom. Основная цель этой деятельности –
создать универсальный интерфейс для подключения внешних устройств,
который «от рождения» поддерживал бы режим Plug&Play и «горячее»
соединение/отключение. USB сначала не стремился к каким-то рекордным
показателям, а проектировался для несколько других задач, чем
FireWare, – как замена разнобоя внешних интерфейсов COM, LPT, PS/2 и
других.
В отличие от ISA-шного LPT, USB базируется
на много более скоростной шине PCI, отсюда все его отличия от
«старичков». Основная идея USB – «горячее» подключение с автоматическим
распознаванием устройства. На десктопах с постоянным подключением
USB-мышь или клавиатуру, как я говорил, использовать не всегда удобно,
но само существование таких устройств очень полезно, потому что
позволяет подключать их куда угодно – даже к монитору, оснащенному
USB-концентратором. В результате, например, стало необязательно снабжать
всеми возможными интерфейсами ноутбуки и прочие мобильные компьютеры.
Теоретически одного USB достаточно на все
про все, ведь к одной линии можно подключать до 127 устройств (при
условии, что хватит питания, которое здесь ограничено 5 вольтами при 0,5
А). Размножение USB-устройств производится с помощью
разветвителей-хабов (их часто называют концентраторами), которые
могут иметь свое питание. Некоторые устройства, например, внешние
жесткие диски, требуют подключения к двум портам сразу, причем второй
порт используется исключительно как источник дополнительного питания
(что не очень, конечно, красивое решение). Собственно, в любом ПК есть
обычно только один USB (корневой концентратор), а 4 или 6 портов на
задней панели, плюс 2–4 порта на передней образуются из него тем же
способом, что и в отдельных концентраторах. Отсюда иногда наблюдающаяся
неравноценность портов – например, один из портов на передней панели у
меня категорически отказывается воспринимать флэш-накопители, хотя в
остальном работает нормально. Самое ценное достоинство шины USB – она
использует только одно прерывание, даже если подключить все возможные
127 устройств, а прерывания в PC – это всегда дефицитный ресурс.
В USB применяется кодирование данных NRZI
(Non Return to Zero Invent). В этом методе кодирования изменение уровня
напряжения соответствует 0, а его отсутствие – 1. Последовательность
нулей означает переход с одного уровня на другой каждый квант времени;
последовательность единиц означает длительный промежуток времени, при
котором изменения данных не происходит. При таком способе отменяется
необходимость в дополнительных синхроимпульсах (по отдельной
«проволоке», как в PS/2, или в виде стартовых-стоповых битов, как в
СОМ), которые занимали бы время и снижали пропускную способность шины.
Теоретически повсеместно устанавливаемые
сейчас порты по стандарту USB 2.0 поддерживают скорость до 480 Мбит в
секунду (60 Мбайт/с), хотя на практике с такими скоростями справляются
лишь немногие устройства. Причем стандарт USB 2.0 предусматривает два
режима работы: HR (высокоскоростной) и FS (низкоскоростной, по сути –
USB 1.1 со скоростью до 12 Мбит/с). В самом деле, зачем мышам 480
Мбит/с?
Максимальная длина кабеля между двумя
работающими на предельной скорости устройствами (или устройством и
концентратором) – 5 метров, но может быть и до 10, в зависимости от
качества его изготовления. Чтобы увеличить дальность, приходится ставить
промежуточные хабы или просто усилители сигнала. Последние бывают двух
типов: пассивные (с питанием от предыдущего концентратора) и активные (с
собственным источником питания, иногда более мощным, чем
предусматриваемый стандартом 0,5-амперный).
Стандартом предусматривается несколько
типов разъемов USB (рис. 3.5): А, В, mini-А и mini-B, miniAB
(универсальный), в 2007 году появились и Micro-USB A, B и AB. Разъем
типа А (плоский) устанавливается со стороны ведущего устройства, а типа В
(квадратный) – ведомого, соответственно, большинство соединительных
кабелей и имеют эту конфигурацию: А-В. Рис. 3.5. Разъемы USB на кабеле, слева направо: microUSB AB, miniUSB AB, тип B, тип A (гнездо удлинителя USB), тип A (вилка)
С
mini-USB все не так однозначно. Разъемы Mini-A употребляются редко (все
миниатюрные устройства, как правило, являются ведомыми), потому для них
даже не предусмотрено отдельной конфигурации, все mini-гнезда одинаковы
(с оговорками, о которых далее) и различаются лишь цветом пластмассы
(mini-A – белый, mini-B – черный, mini A/B – серый). Но так утверждает
стандарт, на практике же по части mini-USB-разъемов существует
неприятный разброд среди производителей. Теоретически стандартом
предусматривается 5-контактный разъем mini-USB (5-й контакт, точнее, 4-й
по порядку, никуда не подключается). Но я встречал как минимум три
разновидности mini-USB – 5-контактный, и более узкие 4-контактные двух
разновидностей. Сейчас эта пестрота, впрочем, сходит на нет – все новые
устройства снабжаются стандартными разъемами, они одинаковы и для
мобильников, и для цифровых камер, и для КПК, потому взаимозаменяемы по
соединительным кабелям. Все USB-разъемы спроектированы так, чтобы шины
питания входили в контакт первыми – тем самым обеспечивается
беспроблемное «горячее» подключение.
В 2008 году появилась окончательная
спецификация USB 3.0, предусматривающая скорости передачи до 4,8 Гбит/с и
повышение максимального тока по линии питания до 0,9 А, но в практику
она пока внедряется медленно. Разъемы USB 3.0 типа A совместимы с USB
2.0, но легко отличаются от них наличием дополнительного ряда контактов в
глубине разъема. А вот разъемы типа B и micro-USB могут быть
несовместимыми как минимум в одну сторону – например, кабель micro-USB
3.0 вставить в USB 2.0-устройство не получится (рис. 3.6). Рис. 3.6. Кабель с разъемом micro-USB 3.0
Секреты мобильного USBВо
многих дешевых моделях мобильных телефонов и по сей день нет настоящего
USB-порта – вместо него используется обычный последовательный порт,
замаскированный под разъем mini-USB (или иной, часто собственной
фирменной конфигурации). Через такой порт вы иногда можете даже
подзаряжать телефон от компьютера вместо зарядного блока, но Windows не
сможет обнаружить подключенное устройство – в последовательном порту нет
для этого средств. Для общения с компьютером такого мобильника придется
приобретать специальный переходной кабель, ценой обычно около 20
долларов, аналогичный тем, что используются в переходниках USB-COM, и
устанавливать драйвер под используемую в кабеле микросхему сопряжения.
Потому я советую обращать внимание на эту особенность при покупке
мобильного телефона, который вы планируете использовать, например, в
качестве модема – требование специального кабеля с драйвером приводит к
значительным неудобствам в эксплуатации, и часто бывает проще в таких
случаях использовать беспроводные средства связи вроде Bluetooth.
|