Рис. 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.

Отметим еще, что обычный телефонный модем с точки зрения системы – тоже СОМ-порт, только поверх простейшего физического протокола 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 – готовность модема). В удлинительных кабелях все эти контакты соединены один к одному.