RS-протоколы

Просто рассуждения о протоколах


Ну прежде всего, что значит 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-232RS-422RS-485
СоединенияОдиночный проводОдиночный провод/много соединений допустимоМного соединений допустимо
Количество устройств1 передатчик
1 приемник
5 передатчиков
10 приемников на 1 передатчик
32 передатчика
32 приемника
Вид протоколадуплексныйдуплексныйполудуплексный
Макс. длина провода~15,25 м при 19,2 Kbps~1220 м при 100 Kbps~1220 м при 100 Kbps
Макс. скорость передачи19,2 Kbps для 15 м10 Mbps для 15 м10 Mbps для 15 м
Сигналнебалансныйбалансныйбалансный
двоичная 1-5 В мин.
-15 В макс.
2 В мин. (B>A)
6 В макс. (B>A)
1,5 В мин. (B>A)
5 В макс. (B>A)
двоичный 05 В мин.
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 2RD (Receive Data,
Прием данных)
вход
данных) выход
TD (Transmitted Data,
Передача данных)
выход
RD (Receive Data,
Прием данных)
вход
pin 3TD (Transmitted Data,
Передача данных)
выход
RD (Receive Data,
Прием данных) вход
TD (Transmitted Data,
Передача данных)
выход
pin 4CTS (Clear To Send,
Запрос на прием
данных) вход
RTS (Request To
Send, Запрос на
передачу данных)
выход
DTR (Data
Terminal Ready,
DTE готов)
выход
pin 5RTS (Request To Send,
Запрос на передачу
данных) выход
CTS (Clear To Send,
Запрос на прием
данных) вход
Земля сигнальная
pin 6DTR (Data Terminal
Ready, DTE готов)
выход
DSR (Data Set Ready,
DCE готов) вход
DSR (Data Set Ready,
DCE готов) вход
pin 7Земля сигнальнаяЗемля сигнальнаяRTS (Request To Send,
Запрос на передачу
данных) выход
pin 8CD (Carrier Detect, Несущая) выходCD (Carrier Detect,
Несущая) вход
CTS (Clear To Send,
Запрос на прием
данных) вход
pin 9N/AN/ARI (Ring Indicator,
Индикатор звонка)
вход
pin 20DSR (Data Set Ready,
DCE готов) вход
DTR (Data Terminal
Ready, DTE готов)
выход N/A
pin 22RI (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 таят в себе очень большие возможности.

 

 




Дополнительно

RS (Recommmendend Standard) protocols

RS-протоколы

Просто рассуждения о протоколах

Ну прежде всего, что значит 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-232RS-422RS-485
СоединенияОдиночный проводОдиночный провод/много соединений допустимоМного соединений допустимо
Количество устройств1 передатчик
1 приемник
5 передатчиков
10 приемников на 1 передатчик
32 передатчика
32 приемника
Вид протоколадуплексныйдуплексныйполудуплексный
Макс. длина провода~15,25 м при 19,2 Kbps~1220 м при 100 Kbps~1220 м при 100 Kbps
Макс. скорость передачи19,2 Kbps для 15 м10 Mbps для 15 м10 Mbps для 15 м
Сигналнебалансныйбалансныйбалансный
двоичная 1-5 В мин.
-15 В макс.
2 В мин. (B>A)
6 В макс. (B>A)
1,5 В мин. (B>A)
5 В макс. (B>A)
двоичный 05 В мин.
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 2RD (Receive Data,
Прием данных)
вход
данных) выход
TD (Transmitted Data,
Передача данных)
выход
RD (Receive Data,
Прием данных)
вход
pin 3TD (Transmitted Data,
Передача данных)
выход
RD (Receive Data,
Прием данных) вход
TD (Transmitted Data,
Передача данных)
выход
pin 4CTS (Clear To Send,
Запрос на прием
данных) вход
RTS (Request To
Send, Запрос на
передачу данных)
выход
DTR (Data
Terminal Ready,
DTE готов)
выход
pin 5RTS (Request To Send,
Запрос на передачу
данных) выход
CTS (Clear To Send,
Запрос на прием
данных) вход
Земля сигнальная
pin 6DTR (Data Terminal
Ready, DTE готов)
выход
DSR (Data Set Ready,
DCE готов) вход
DSR (Data Set Ready,
DCE готов) вход
pin 7Земля сигнальнаяЗемля сигнальнаяRTS (Request To Send,
Запрос на передачу
данных) выход
pin 8CD (Carrier Detect, Несущая) выходCD (Carrier Detect,
Несущая) вход
CTS (Clear To Send,
Запрос на прием
данных) вход
pin 9N/AN/ARI (Ring Indicator,
Индикатор звонка)
вход
pin 20DSR (Data Set Ready,
DCE готов) вход
DTR (Data Terminal
Ready, DTE готов)
выход N/A
pin 22RI (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 таят в себе очень большие возможности.