Эх, соединимся?

или коннект по-домашнему

Вы когда-нибудь играли “по сети”? И как, понравилось? Игра с ботами не идет ни в какое сравнение… В отличие от ботов, люди могут придумать и исполнить такие финты, что поневоле тянет снять шляпу. Только вот в большинстве случаев играть приходится по модему, вызывая недовольство домочадцев – телефон-то занят целыми часами. Локальные сети пока есть не везде, вот и приходится порой занимать телефон, хотя соперник по играм живет в соседней квартире (через стену) или в доме напротив. Или даже в одной квартире рядом (или в соседних комнатах) стоят компьютеры – “новый” и “старый”. Неужели, кроме локалок, нет других вариантов? Да и условия у всех разные – не каждый решится заняться протягиванием коаксиального кабеля в подьезде, зная, что его могут элементарно срезать несознательные граждане. Варианты для решения этой проблемы есть, причем самые разные. Начнем, как всегда, с самых простых.

Рассмотрим вначале особенности “последовательных” портов.

Стандарт для “последовательных портов” RS-232C использует несимметричные передатчики и приемники – сигнал передается относительно общего провода (“схемной земли”). Интерфейс RS-232C НЕ ОБЕСПЕЧИВАЕТ ГАЛЬВАНИЧЕСКОЙ РАЗВЯЗКИ соединяемых устройств. Логической единице соответствует уровень напряжения на входе приемника в диапазоне –12…-3 В. Для линий управляющих сигналов это состояние ON (“включено”), для линий последовательных данных оно называется MARK. Логическому нулю соответствует напряжение в диапазоне +3…+12 В. Для линий управляющих сигналов это состояние OFF (“выключено”), для линий последовательных данных называется SPACE. Между уровнями –3…+3 В имеется зона нечувствительности, и состояние линии будет считаться измененным только после пересечения соответствующего порога. Уровни сигнала на выходах передатчиков должны быть в диапазонах -12…-5 В и +5…+12 В для представления единицы и нуля сответственно. Разность потенциалов между “схемными землями” должна быть менее 2 В, при более высокой разности потенциалов возможно неверное восприятие сигналов.

Для работы необходимо наличие защитного заземления, если оба устройства питаются от сети. Подключение и отключение интерфейсных кабелей устройств с автономным питанием должно производиться при ОТКЛЮЧЕННОМ питании. Если подключение производится при поданном напряжении, разность потенциалов между корпусами устройств может оказаться приложенной к выходным или входным цепям интерфейса и вывести из строя микросхемы. Интерфейсные микросхемы редко выходят из строя из-за замыкания сигнальных цепей, потому что ток короткого замыкания передатчиков обычно ограничен на уровне 20 мА.

Краткая теория закончилась, приступаем к пратике.

Вы знаете, что такое “нуль-модем”? Это всего лишь кабель для соединения компьютеров через порты. Самый простой вариант – спаять такой кабель для СОМ-порта. Максимальная длина данного кабеля может достигать 15 метров, но при очень длинном кабеле скорость передачи уменьшается – начинает сказываться качество соединительных проводов.

Самый “малобюджетный” вариант данного соединителя должен иметь всего 3 провода. В этом случае все работает так: если устройство, принимающее данные, не может их более принимать, оно по обратному каналу посылает байт-символ XOFF (13h). Противоположное устройство, приняв этот символ, останавливает передачу. Когда приемное устройство снова готово к приему данных, оно посылает байт-символ XON (11h), после приема которого противоположное устройство возобновляет передачу данных. Такой способ обмена носит мудреное название “Программный протокол управления потоком XON/XOFF”. Его достоинство – минимум проводов, потому что отсутствуют управляющие сигналы. Недостатки – требование наличия буфера для принимаемых данных и увеличенное время реакции (из-за ожидания прохождения сигнала XON). Поэтому общая производительность в данном случае – не самая высокая.

Если вам удалось найти немного больше проводов, можете спаять “продвинутый” вариант такого кабеля

В этом случае используется сигнал CTS, который позволяет остановить передачу данных, если приемник не готов к их приему. Передатчик “выпускает” очередной байт данных только при включенном состоянии линии CTS. Байт данных, которые уже начали передаваться, этим сигналом задержать невозможно (для гарантии целостности посылки). При непосредственном соединении двух компьютеров этот протокол, незатейливо называющийся “Аппаратный протокол управления потоком RTS/CTS” (Hardware Flow Control), требует перекрестного соединения линий RTS-CTS. Такой вариант обеспечивает самую быструю (для СОМ-порта, естественно) реакцию передатчика на состояние приемника.

Микросхемы приемопередатчиков обычно позволяют реализовать такой обмен без потери данных, не прибегая к программной реализации.

А немного побыстрее можно? Можно!

Следующий вариант связи – через LPT-порт.

Первоначально порт параллельного интерфейса был введен в РС для подключения принтера – отсюда и его название. Параметры его определяются стандартом IEEE 1284. Данный стандарт определяет два уровня интерфейсной совместимости. Первый уровень (Level I) определен для устойств, которым не нужны высокие скорости обмена, но нужны возможности смены направления передачи данных. Второй уровень (Level II) определен для устройств, работающих в расширенных режимах, с высоким скоростями и длинными кабелями.

Требования к передатчикам:

-Уровни сигналов без нагрузки должны быть в пределах –0,5…+5,5 В.

-Уровни сигналов при токе нагрузки 14 мА должны быть не ниже +2,4 В для высокого уровня и не выше +0,4 В для низкого уровня.

-Выходной импеданс на разъеме должен быть 50(+-5) Ом. Согласование импеданса передатчика и кабеля уменьшает уровень импульсных помех.

-Скорость нарастания (спада) импульсов должна находиться в пределах 0,05-0,4 В/нс.

Требования к приемникам:

-Допустимые пиковые значения сигналов –2,0…+7,0 (не вызывают разрушений и ошибок в работе).

-Пороги срабатывания не должны быть выше 2,0 В для высокого уровня и не ниже 0,8 В для низкого.

-Приемник должен иметь так называемый “гистерезис” в пределах 0,2-1,2 В (он есть только у специальных микросхем - триггеров Шмитта, у обычных микросхем его нет).

-Входной ток микросхемы (втекающий и вытекающий) не должен превышать 20 мкА, входные линии соединяются с шиной питания +5 В резистором 1,2 кОм.

-Входная емкость не должна превышать 50 пФ.

Из приведенных данных видно, что требования здесь гораздо серьезнее, чем для СОМ-портов. А какими же должны быть кабели, чтобы соответствовать таким серьезным требованиям? Интерфейсные кабели, традиционно используемые для подключения принтеров, обычно содержат от 18 до 25 проводящих жил, в зависимости от количества проводников GND. Эти проводники могут быть перевитыми между собой, а могут и не быть. К экранированию кабеля раньше жестких требований не предъявлялось. Эти “веревки” вряд ли будут достойно работать на скорости передачи 2 Мбайт/с и длине более двух метров. А вот стандарт IEEE 1284 регламентирует и свойства кабелей:

-Все сигнальные линии должны быть перевитыми с отдельными обратными (“общими”) проводами.

-Каждая пара должна иметь импеданс 62(+-6) Ом в диапазоне частот 4-16 Мгц.

-Уровень перекрестных помех между парами не должен превышать 10%.

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

Кабели, удовлетворяющие этим условиям, маркируются такой надписью:

“IEEE 1284-1994 Compliant, и могут они иметь длину аж до 10 метров.

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

А как связать через эти порты пару компьютеров? Опять придется искать провода, разъемы и паяльник… И какие же провода лучше? И как все это сделать правильно?

При длине кабеля более 2 метров желательно, чтобы провода, идущие к 1 и 11 контактам разъемов были перевиты с отдельными “общими” проводами. Но для скоростных режимов такая “веревка” может оказаться непригодной, причем сбои могут происходить нерегулярно – при определенной последовательности передаваемых кодов. Неплохие свойства у ленточных кабелей, у которых сигнальные провода чередуются с “земляными”. Но такой вариант не очень практичен – у них нет защитного наружного слоя, да и выглядит такой кабель не очень…

Идеальный вариант – кабель, который соответствует стандарту IEEE 1284, в нем все провода перевиты и заключены в экран. Кабели такого типа гарантированно работают на скоростях до2 Мбайт/с и их длина может достигать 10 метров.

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

Распайка приводится в таблице.

Связать два РС по такому кабелю можно стандартными программами типа MS-DOS Interlink или Norton Commander.

Высокоскоростную связь двух компьютеров можно организовать и в режиме ЕСР. А вот распайка кабеля для этого режима:

(Контакты со 2-го по 9-й соединяются соответственно, “один в один”!)

Этот же кабель может использоваться и для связи в режиме Byte Mode (при наличии двунаправленных портов). Связь компьютеров при помощи такого кабеля поддерживается уже WINDOWS95.

А теперь перейдем к практическому применению вышеописанных соединений. Вот типичный пример “вопроса из народа” и ответа из Интернета:(большое спасибо “потрошителю” WINDOWS Сергею Трошину!)

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

-Это довольно просто. Берем кабель для соединения двух компьютеров через параллельные порты, на обоих устанавливается Dial-Up adapter. Управлять всем этим будет WinRoute home 3.04 (или 4.0, 4.1…) . Соединение параллельным кабелем уже встроено в Windows95/98. Его использует Parallel sharing. Все, что нужно на первом этапе, это установить адаптер dial-up на каждом компьютере. Проверьте, что оба компьютера с W95/98 имеют апгрейд DUN1.3 (dial-up networking upgrade) - этот апгрейд есть на сайте Microsoft, достаточно зайти на их “поисковик” и поискать точно “DUN 1.3” - результатом будет множество необходимых ссылок. Win95 OSR2 или Win98 уже имеют все, что нужно, а Windows NT не поддерживает соединения через параллельный порт (а через последовательный – вполне). К тому же убедитесь в том, что DCC (Direct Cable Connection) инсталлировано на обоих компьютерах. Проверьте, что network neighbours каждого компьютера содержат dial-up-adapter (у хостовой машины должно быть инсталлировано два dial-up-адаптера). Инсталлируйте WinRoute Homeна хостовом компьютере. Убедитесь, что на втором компьютере протокол TCP/IP инсталлирован и привязан следующим образом: TCP/IP->Dial up adapter. В настройках вам понадобится лишь поле DNS - внесите туда DNS-сервер провайдера или адрес хост-машины. На хост-машине установите TCP/IP адаптера (т.е. модема) как обычно - все установки, как требует провайдер. Установки dial-up-адаптера, который связан с DCC, можно не трогать. Запустить WinRoute на хост-машине, запустить DCC. Не устанавливайте в браузерах опцию "Соединение через proxy". Скорость соединения с хост-машиной через DCC - до 4 Mbps. (Интересно, по какому кабелю?..)

Возможно и использование такого соединения в играх “на пару”, перечень игр, поддерживающих прямое соединение, желающие могут поискать сами.

Вот основные методы соединения, пригодные даже для древнего железа. Многие могут спросить: - а зачем? Ведь СОМ, например – это отстой… А какая скорость у обычного IrDA? Скорее всего, его максимум - все те же 115,2 кбит/с…Ведь в большинстве случаев используются такие же микросхемы, и часто на использование инфракрасной связи конфигурируется порт СОМ2…

А можно ли организовать “малобюджетную” связь между компьютерами на расстояниях до 100 метров (но без сетей?) Можно! Но об этом – как-нибудь в другой раз.

Качественной вам связи!