Null modem

З Вікіпедыі, свабоднай энцыклапедыі
Нуль-мадэмны перахаднік, які ператварае мадэмны кабель у нуль-мадэмны

Нуль-мадэмнае злучэнне — злучэнне двух камп'ютарных прыладаў праз пратакол RS-232 без мадэму.

Першапачаткова стандарт RS-232 прызначаўся для злучэння тэлетайпа з тэлефонным мадэмам[1] — і ўжо праз мадэмы тэлетайпы размаўлялі адзін з адным. Таму злучэнне праз RS-232 асіметрычнае: мяркуецца, што з аднаго боку мадэм, а з іншага — крыніца/спажывец звестак. У нуль-мадэмным злучэнні лініі перадачы і прыёму злучаны скрыжавана. Нуль-мадэмнае злучэнне не стандартызавана, таму існуюць некалькі разводак.

Разводка[правіць | правіць зыходнік]

Нуль-мадэмны кабель
Разводка для DE-9
Разводка для DB-25

Найболшь складаная з разводак[2][3], з якой будзе працаваць нават ПЗ, якое спраўджвае сігнал carrier detect (наяўнасць-страта нясучай).

Прызначэнне гнязда Гняздо
DB-25
Гняздо
DE-9
Напра-
мак
Гняздо
DE-9
Гняздо
DB-25
Прызначэнне
Корпус FG 1 - - 1 FG
Перадача TxD 2 3 2 3 RxD
Прыём RxD 3 2 3 2 TxD
Запыт перадачы RTS 4 7 8 5 CTS
Гатовы прымаць CTS 5 8 7 4 RTS
Сігнальная зямля SG 7 5 5 7 SG
Гатоўнасць мадэма DSR 6 6 4 20 DTR
Наяўнасць нясучага сігнала DCD 8 1
Гатоўнасць тэрмінала DTR 20 4 1 8 DCD
6 6 DSR

Без кантроля злучэння[правіць | правіць зыходнік]

Найпростая разнавіднасць паслядоўнага кабеля — поўная адсутнасць кантролю злучэння. TxD на адным канцы злучаецца з RxD на другім, «зямля» з «зямлёй» — усяго тры провады. Працуе з ПЗ, якое не спраўджвае працу мадэма (напрыклад, з большасцю гульняў) і з прыладамі, якім не патрэбны лініі кіравання мадэмам.

Замыканне кіруючых сігналаў на сябе[правіць | правіць зыходнік]

Калі ПЗ патрэбны менавіта мадэм і яно спраўджвае, ці ёсць сувязь, можна яго падмануць, замкнуўшы кіруючыя лініі на сваім порце (RTS+CTS; DTR+DSR+DCD). Праграма будзе лічыць, што злучэнне і апаратанае кіраванне струменем даных ёсць.

Гэты кабель толькі вырашае праблемы сумяшчальнасці, якасцю сувязі ён нічым не лепш папярэжняга: пры любой памылцы злучэння сувязь парвецца без бачнай прычыны.

Частковае кіраванне струменем[правіць | правіць зыходнік]

У гэтым кабелі лінія RTS замкнутая на свой жа CTS і злучана з чужой DCD, а DTR — з чужой DSR. З адпаведным ПЗ такі кабель дазваляе сувязь на высокіх частотах — да 115 кілабод. Але з-за нестандартнай разводкі патрабуе адмысловае ПЗ.

Поўнае кіраванне струменем[правіць | правіць зыходнік]

Гэты кабель таксама дазваляе высокія хуткасці; менавіта гэта разводка ўказана ў табліцы і на малюнку.

Для кіравання прыладамі Cisco існавала разводка Yost, з COM-порту на 8P8C.[4] Яна цікава тым, што ў нуль-мадэмным кабелі (з 8P8C на 8P8C) кантакты обжымаюцца ў адваротным парадку: 1…8 на адным канцы з 8…1 на іншым.[5] Кабелі завадской вытворчасці часта робяць не з вітой пары, а з плоскага шлейфу і гэтым адрозніваюцца ад сеткавых патч-кордаў.

Небяспека[правіць | правіць зыходнік]

Нуль-мадэмнае злучэнне не змяшчае гальванічнай развязкі, як напрыклад Fast Ethernet. Злучэнне камп'ютараў, паміж масамі якіх маецца рознасць патэнцыялаў, можа спаліць COM-порты ці ўсю мацярынскую плату (актуальна для часоў папулярнасці ў СССР у 80-я — 90-я, калі разеткі з зазямляючым кантактам былі рэдкасцю).

Ужыванне[правіць | правіць зыходнік]

Вытокавае ўжыванне нуль-мадэмнага кабеля — злучэнне двух тэрміналаў (тэлетайпаў) наўпрост без мадэма. Калі прыладам для злучэння патрэбны мадэм, а яны знаходзяцца побач, выкарыстоўваўся нуль-мадэмны кабель.

У 1980-я і 1990-я гады нуль-мадэмны кабель шырока ўжываўся як танная альтэрнатыва лакальнай сетцы: сеткавыя адаптары былі дарагія, COM-порты былі ў любога камп'ютара, а набыццё ці выраб нуль-мадэмнага кабеля абыходзіўся танна. У апошняй версіі MS-DOS у камплекце была праграма INTERLNK; Norton Commander мог не толькі перадаваць файлы, але і «кланаваць» сябе на іншы камп'ютар праз нуль-мадэм. Многія з DOS-гульняў таго часу (Grand Prix 2, Doom, WarCraft II, Duke Nukem 3D…) падтрымлівалі сувязь і праз COM-порты. Хуткасць — да 8 кілабайт/с — была малой нават для таго часу, але для гульняў гэта было няважна: яны першапачаткова праектаваліся пад 9600- альбо 14400-бодныя мадэмы.[6] «Кантроллер аддаленага доступу» Windows дазваляў злучэнне праз нуль-мадэм любым з даступных сеціўных пратаколаў, таму Windows-гульням досыць было падтрымліваць IPX альбо TCP/IP. З патанненнем Ethernet знікла патрэба ва ўжыванні нуль-мадэмнай сувязі для арганізацыі лакальных сетак.

Зараз нуль-мадэмная сувязь выкарыстоўваецца для адладкі ядраў АС — з-за прастаты драйверу. Гэта здольныя рабіць KGDB для Linux, ddb для BSD і WinDbg для Windows. Да таго ж сучасныя АС збудаваны так, што графічная абалонка манапольна захоплівае экран і клавіятуру — таму, калі АС «выляціць» з аварыйным экранам, адладчык не зможа іх запатрабаваць, але застанецца магчымасць перадаць аварыйныя звесткі праз кабель.

Безманіторныя прылады (камутатары, маршрутызатары, стоечныя серверы, рознага кшталту убудавальныя кантролеры) могуць адміністравацца у тым ліку і праз RS-232. У некаторых прыладах для злучэння з камп'ютарным COM-портам патрабуецца пераўтваральнік напружанняў — выдаюцца звычайныя для электронікі ТТЛ-узроўні.[7]

У Unix ёсць віртуальныя нуль-мадэмныя злучэнні (псеўдатэрмінал, pty), якія дазваляюць злучаць кансолі на розных камп'ютарах праз любы даступны канал сувязі. У DOSBox таксама ёсць эмуляцыя нуль-мадэмнага злучэння — для «паслядоўнай» гульні праз сеціва. Варта заўважыць, што гульня праз Интернет не заўсёды магчымая — часта сеткавыя падсістэмы старых гульняў разлічвалі на малы пінг.

Зноскі

Гл. таксама[правіць | правіць зыходнік]