1001 совет по обустройству компьютера
Шрифт:
Стандарт 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 – идеальный способ для передачи данных с небольшими скоростями по минимальному количеству проводов [6] . Когда-то его всерьез намеревались развивать, отчего и стандартизировали разъем с 25 контактами (DB25) – «на вырост». В этом разъеме имеются дополнительные линии, смысл которых в том, что они могут применяться для организации различных синхронных протоколов обмена (протоколов с handshakes, «рукопожатием»). Все старые ПК имели по два COM-порта: и с 9-ю, и с 25-ю контактами. Быстро выяснилось, что 25 контактов – чистое излишество, вполне достаточно и 9-ти, и DB25 как-то незаметно исчез из обихода. Остался только DB9, да и в нем имеющиеся дополнительные линии мало какое устройство использует. Так как RS-232 – медленный способ передачи, то никаких особых требований к соединителям он не предъявляет, и нередко можно встретить устройства и с нестандартным разъемом – например, в некоторых старых цифровых фотокамерах под последовательный порт были приспособлены стереоаудиоразъемы. С 1991 года развитие RS-232 затормозилось – ему на смену пришли намного более сложные, зато удобные для пользователя и скоростные USB и FireWare.
6
Есть, впрочем, и еще более экономичные способы – интерфейс I2C предполагает всего два провода для двустороннего обмена, причем для некоторых устройств не требуется даже отдельная линия питания. Для подключения к компьютерам такой способ не используется, зато для связи разных чипов между собой – очень часто. – Авт.
Отметим еще, что обычный телефонный модем с точки зрения системы – тоже СОМ-порт, только поверх простейшего физического протокола 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-порта, он устанавливается произвольным образом после установки драйвера. Причем для переходников 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 г.).