В
отличие от RS422 и RS 485, которые применяются в промышленности для
систем контроля и передачи информации (малых объемов, NO сотен Mb/s), RS
232 – хорошо известный на сегодня интерфейс. Основное
отличие между RS 232 и RS 422/ 485 заключается в том, что протокол
RS-232 использует небалансный сигнал. Небалансный сигнал передается по
несбалансированной линии, представляющей собой сигнальную землю(ссылка
на уровни напряжения) и одиночный сигнальный провод, уровень напряжения
на котором используется, чтобы передать или получить двоичные 1 или 0.
Данный интерфейс применяется для двухточечной связи на низкой скорости.
Например, порт COM1 в ПК может использоваться для подсоединения мышки, а
порт COM2 - модема. Это один из примеров двухточечной связи: один порт -
одно устройство. Из-за способа подключения сигналов требуется общая
линия заземления. Это означает ограниченную длину кабеля (максимум в
30-60 м). (Основные проблемы : интерференция и сопротивление кабелей).
RS 232 был спроектирован для связи по локальным приборам и поддерживает
одно передающее устройство и одно приемное устройство. В
RS 422 и 485 применен другой принцип: каждый сигнал использует одну
двухжильную витую пару (TP). Это так называемая «балансная передача
данных» или « дифференциальная передача напряжением». Давайте условно
обозначим один ТР кабель «А», а другой - «В». Сигнал будет неактивным
при отрицательном напряжении в «А» и положительном в «В». И наоборот,
сигнал активен при положительном «А» и отрицательном «В». Также имеется
разница между кабелями «А» и «В». Для RS 422 и 485 кабель может
достигать длины до 1200 м (4000 футов) и обычно можно работать в сети со
скоростью передачи данных 2.5 MB/s. В чем разница между RS 422 и RS
485? Принцип подачи электричества одинаков: оба используют
дифференциальную передачу с переменным напряжением 0 и 5V. Однако, RS
также как и RS 232 предназначен для двухточечной связи. А RS 422
предназначен для использования двух отдельных ТР кабелей, информация
может передаваться в обоих направлениях одновременно. RS 422 зачастую
применяется для расширения линии RS 232 или в промышленной среде. RS
485 применяется для многоточечной связи: большее количество устройств
может быть подключено к единичному кабелю, аналогично сети ETHERNET, в
которой используется коаксиальный кабель. В большинстве систем с RS 485
применяют иерархическое построение, где каждый подчиненный узел имеет
свой уникальный адрес и отвечает только на пакеты, адресованные именно
ему. Данные пакеты создаются Ведущим устройством (например, ПК),
который периодически отсылает запросы на все подсоединенные подчиненные
узлы.
RS485 обычно используют для многоточечного соединения C точки зрения программирования (и инструментария программиста) - разницы нет.
На другом "конце провода" от RS232 может вообще стоять все что угодно:
терминал, модем, конвертер в RS485, конвертер в Ethernet, RS32 другого
PC или 25 маленьких китайцев, пялящихся на огоньки com-tester и
записывающие события "помаргивания" тушью на бумаге кисточками из
крысиных волос.
Для программиста все едино - у него есть набор
средств Win32API (я так понимаю, автор спрашивает именно о стандартных
средствах, а не о custom-драйверах и библиотеках, поставляющихся с
некоторыми специфическими платами расширения) он ими и работает. И этот
набор средств - Serial Communications API.
Все прочие различия (не считая особенностей конкретного оборудования), исключительно в протоколе обмена данными с оконечным оборудованием. Но протокол это не программирование. Ему нужно просто следовать.
Если
я знаю, что для того, чтобы обратиться к 12-му в цепочке терминальному
автомату (на линии RS485) я должен послать датаграмму ">12", я ее и
пошлю, открыв соовершенно обычным способом CreateFile( "COM1",...) и
сделав WriteFile(...). Как с обычным serial port....
Естественно, это позволяет производителям городить кто во что горазд (например, питание по 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 - дуплексный протокол.
Конкретно про разные протоколы</H3>
Наиболее используемыми в компьютерной индустрии являются два протокола - RS-232 и RS-485 (ну и RS-422, который очень похож на RS-485). Важное отличие: протокол RS-232 использует небалансный (unbalanced) сигнал, в то время как RS-422/RS-485 используют балансный (balanced) сигнал.
Небалансный сигнал передается по несбалансированной линии, представляющей собой сигнальную землю и одиночный сигнальный провод, уровень напряжения на котором используется, чтобы передать или получить двоичные 1 или 0. Напротив, балансный сигнал передается по сбалансированной линии, которая представлена сигнальной землей и парой проводов, разница напряжений между которыми используется для передачи/приема бинарной информации (все вместе составляет экранированную витую пару).
Не углубляясь в подробности, можно сказать, что сбалансированный сигнал передается быстрее и дальше, чем несбалансированный.
Подробнее про 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 и наоборот.
Конкретнее про RS-485/RS-422
<P>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 таят в себе очень большие возможности. <BR><BR></P>
Автор: Илья Ольховский.
|