Ну прежде всего, что значит RS в сокращениях типа RS-232, RS-485, RS-422.. RS - это всего навсего Recommended Standard (рекомендованный стандарт). Ключевое слово тут - "рекомендованный", означающее, что эти стандарты никогда никем не были приняты (в противоположность таким стандартам, как IEEE-1284 или IEEE-1394), они были просто "рекомендованы". Естественно, это позволяет производителям городить кто во что горазд (например, питание по 9-му пину в RS-232 вовсе не оговорено стандартом, однако широко используется) и называется это стандартом. Далее, все RS-протоколы можно приблизительно разделить на полудуплексные (half-duplex) и дуплексные (full-duplex). Правда, деление такое не совсем точно, т.к. тот же RS-485 может быть и полудуплексным (два провода) и дуплексным (четыре провода), они так и называются - 2-wire (2-проводный) RS-485 и 4-wire (4-проводный) RS-485. Есть еще такой вид протоколов как симплексные (simplex), но в виду ряда причин, указанных ниже, в компьютерной технике не применяются. Чем эти виды протоколов различаются:
- симплексные протоколы позволяют передавать данные только в одну сторону, т.е. только с передатчика на приемник, но не обратно. Хороший пример симплексного протокола - FM радио или телевидение, если только не принимать во внимание возможность позвонить на радиостанцию. Применяется в тех случаях, когда надо просто передать информацию какому либо устройству без необходимости подтверждения и обратной связи.
- полудуплексные протоколы снимают главное ограничение симплексных протоколов - односторонняя связь. Они позволяют двум устройствам обмениваться информацией, причем оба устройства могут быть и приемниками и передатчиками, но не одновременно! Т.е. каждое устройство может либо передавать, либо принимать (кстати, классический /рекомендованный/ RS-485 именно полудуплексный).
- дуплексные протоколы наиболее продвинутые протоколы. Применение дуплексного протокола позволяет и прием и передачу информации одновременно, т.е. оба устройства могут быть и приемником и передатчиком одновременно. Например, RS-232 - дуплексный протокол.
Конкретно про разные протоколы
Наиболее используемыми в компьютерной индустрии являются два протокола - RS-232 и RS-485 (ну и RS-422, который очень похож на RS-485). Важное отличие: протокол RS-232 использует небалансный (unbalanced) сигнал, в то время как RS-422/RS-485 используют балансный (balanced) сигнал.
Небалансный сигнал передается по несбалансированной линии, представляющей собой сигнальную землю и одиночный сигнальный провод, уровень напряжения на котором используется, чтобы передать или получить двоичные 1 или 0. Напротив, балансный сигнал передается по сбалансированной линии, которая представлена сигнальной землей и парой проводов, разница напряжений между которыми используется для передачи/приема бинарной информации (все вместе составляет экранированную витую пару).
Не углубляясь в подробности, можно сказать, что сбалансированный сигнал передается быстрее и дальше, чем несбалансированный. Вот сравнительная таблица для рекомендованных протоколов (надо сказать, что нынешние интерпретации протоколов, особенно RS-232, весьма далеки от рекомендованных):
RS-232 | RS-422 | RS-485 | |
---|---|---|---|
Соединения | Одиночный провод | Одиночный провод/много соединений допустимо | Много соединений допустимо |
Количество устройств | 1 передатчик 1 приемник |
5 передатчиков 10 приемников на 1 передатчик |
32 передатчика 32 приемника |
Вид протокола | дуплексный | дуплексный | полудуплексный |
Макс. длинна провода | ~15.25 м. при 19.2Kbps | ~1220 м. при 100Kbps | ~1220 м. при 100Kbps |
Макс. скорость передачи | 19.2Kbps для 15 м. | 10Mbps для 15 м. | 10Mbps для 15 м. |
Сигнал | небалансный | балансный | балансный |
двоичная 1 | -5В мин. -15В макс. |
2В мин. (B>A) 6В макс. (B>A) |
1.5В мин. (B>A) 5В макс. (B>A) |
двоичный 0 | 5В мин. 15В макс. |
2В мин. (A>B) 6В макс. (A>B) |
1.5В мин. (A>B) 5В макс. (A>B) |
Мин. входное напряжение | +/- 3В | 0.2В диф. | 0.2В диф. |
Выходной ток | 500мА | 150мА | 250мА |
Позволю себе заметить, что контроллеры RS-232, применяемые в персональных компьютерах, имеют выходной ток равный 10мА максимум.
Подробнее про RS-232
Все оборудование, соединяемое по RS-232 протоколу, разделяют на DCE (Data Communication Equipment, оборудование Передачи Данных) и DTE (Data Terminal Equipment, Терминальное Оборудование), нельзя соединить два DTE или два DCE. Различие заключается в разъемах и разводке разъемов: DCE устройства имеют разъем DB25F (мама), а DTE - DB25M (папа). Так же на DTE устройствах (например, на компьютерах, компьютеры являются DTE устройствами) иногда испульзуется урезанная версия DB25M - DB9M. С помошью NULL-modem (Нуль-модем) можно превратить DTE в DCE и наоборот. Наглядно посмотреть чем отличаются разъемы DTE от DCE:
DCE (DB25F) | DTE (DB25M) | DTE (DB9M) | |
---|---|---|---|
pin 1 | Защитное заземление | Защитное заземление | CD (Carrier Detect, Несущая) вход |
pin 2 | RD (Receive Data, Прием данных) вход данных) выход |
TD (Transmitted Data, Передача данных) выход |
RD (Receive Data, Прием данных) вход |
pin 3 | TD (Transmitted Data, Передача данных) выход |
RD (Receive Data, Прием данных) вход |
TD (Transmitted Data, Передача данных) выход |
pin 4 | CTS (Clear To Send, Запрос на прием данных) вход |
RTS (Request To Send, Запрос на передачу данных) выход |
DTR (Data Terminal Ready, DTE готов) выход |
pin 5 | RTS (Request To Send, Запрос на передачу данных) выход |
CTS (Clear To Send, Запрос на прием данных) вход |
Земля сигнальная |
pin 6 | DTR (Data Terminal Ready, DTE готов) выход |
DSR (Data Set Ready, DCE готов) вход |
DSR (Data Set Ready, DCE готов) вход |
pin 7 | Земля сигнальная | Земля сигнальная | RTS (Request To Send, Запрос на передачу данных) выход |
pin 8 | CD (Carrier Detect, Несущая) выход | CD (Carrier Detect, Несущая) вход |
CTS (Clear To Send, Запрос на прием данных) вход |
pin 9 | N/A | N/A | RI (Ring Indicator, Индикатор звонка) вход |
pin 20 | DSR (Data Set Ready, DCE готов) вход |
DTR (Data Terminal Ready, DTE готов) |
выход N/A |
pin 22 | RI (Ring Indicator, Индикатор звонка) выход |
RI (Ring Indicator, Индикаторзвонка) |
вход N/A |
Конкретнее про RS-485/RS-422
RS-485/RS-422 используют экранированную витую пару, экран в качестве сигнальной земли. Хотя сигнальная земля обязательна, она не используется для определения логического состояния линии. Устройство, управляющее сбалансированной линией (balanced line driver), может (для RS-485 - обязательно, для RS-422 - нет) так же иметь входной сигнал "Enable" (Разрешен), который используется для управления выходными терминалами устройства. Если сигнал "Enable" выключен, то это значит, что устройство отключено от линии, причем отключенное состояние устройства обычно называется "tristate" (т.е. третье состояние, вдобавок к двоичным 1 и 0).
Стандарт на RS-485 предусматривает только 32 пары передатчик/приемник, но производители расширили возможности RS-485 протокола, так что теперь он поддерживает от 128 до 255 устройств на одной линии, а используя репитеры можно продлевать RS-485/RS-422 практически до бесконечности. При использовании RS-485 можно, и в случае длинного провода и/или большого количества устройств необходимо, использовать терминаторы, которые впрочем, обычно встроены в устройства с RS-485 протоколом, хотя при коротком проводе, может наблюдаться даже ухудшение связи при использовании терминаторов. Так же стандарт на RS-485 предусматривает использование двухжильной экранированной витой пары, так называемый 2-wire RS-485, но возможно использование и четырехпроводной витой пары (4-wire RS-485), тогда по лучается полный дуплекс. В таком случае, необходимо чтобы одно из устройств было сконфигурировано как ведущее (Master), а остальные как ведомые (Slave). Тогда все ведомые устройства общаются только с ведущим устройством, и никогда не передают ничего напрямую друг другу. В таких случаях обычно RS-422 драйвер используется как ведущее устройство, т.к. RS-422 допускает подключения только как master/slave, а RS-485 устройства как ведомые, для общего удешевления системы. Стандарт на RS-422 изначально предусматривает использование четырехжильной экранированной витой пары, но допускает соединения только от одного устройства к другим (до пяти драйверов и до десяти ресиверов на каждый драйвер). В принципе, RS-422 был придуман для замены RS-232 в тех случаях, когда RS-232 не удовлетворяет по скорости и дальности передачи.
RS-422 использует строго разделенные две (или больше) пары проводов: одну пару для приема, одну для передачи (и еще по одной на каждый сигнал контроля/подтверждения (control/handshake)). RS-485, благодаря наличию третьего состояния ("tristate") позволяет обойтись одной парой проводов, что снижает общую стоимость системы при обеспечении связи на большие расстояния. Надо сказать, что сейчас доступно большое количество разнообразных устройств для сопряжения RS-422/RS-485 с RS-232, причем RS-232 часто используется для соединения с компьютером (впрочем, есть и интерфейсные карты RS-422/RS-485 в компьютер), который используется для управления системой. Так же доступны разнообразные устройства (хабы, репитеры, переключатели и пр.) для создания сложных конфигураций RS-422/RS-485 сетей, так что RS-422/RS-485 таят в себе очень большие возможности.