Лекция № "Последовательный порт. Последовательный интерфейс"

Вид материалаЛекция

Содержание


GIVEN = 1 1 1 1 0 x 0 x
Line Control register.
Modem Control Register
Modem Status Register
Line Status Register
Граница FIFO
Подобный материал:
Лекция №

“Последовательный порт. Последовательный интерфейс”.


Последовательный порт предназначен для организации связи по последовательному каналу между микроконтроллером и периферийными устройствами или другими микропроцессорами.

Последовательный порт микроконтроллера семейства MCS-51 является т.н. “дуплексным” портом, т.е. способен осуществлять прием и передачу данных одновременно. Входная часть порта обладает двойной буфуризацией, т.е. способна осуществлять прием нового сообщения пока предыдущее еще не прочитано процессором (однако, только до момента окончания приема нового сообщения), что уменьшает загрузку процессора.

Входным и выходным регистром последовательного порта является регистр SBUF, расположенный в области регистров специальных функций (адрес 99H). Реально это два разных регистра: входной буфер и выходной буфер. Однако, команда осуществляющая запись в SBUF, обращается к выходному буферу, а команда, осуществляющая чтение из SBUF - ко входному.

Для управления режимом работы и состоянием последовательного порта используется управляющий регистр SCON, расположенный в пространстве регистров специальных функций ( адрес 98H). Его структура имеет вид:


D7

D6

D5

D4

D3

D2

D1

D0

SM0/FE

SM1

SM2

REN

TB8

RB8

TI

RI


Биты SM0 и SM1 (Select Mode) определяют режим работы последовательного порта. Для доступа к биту SM0 необходимо, чтобы был установлен бит SMOD0 (D6) в управляющем регистре PCON (адрес 87H). Бит FE (Frame Error) - флаг ошибки кадра. Он устанавливается, если был обнаружен ненормальный STOP-бит в конце сообщения. Если этот бит установлен, то он может быть сброшен только программно. Для доступа к биту FE необходимо, чтобы был сброшен бит SMOD0 (D6) в управляющем регистре PCON (адрес 87H). Бит SM2 если он установлен разрешеет автоматическое распознавание адреса при мильтипроцессорной конфигурации последовательного порта. Бит REN (Receive Enable) в установленном состоянии разрешает прием данных по последовательному каналу связи. Биты TB8 и RB8 соответствуют девятому передаваемому и принимаемому биту соответственно. Биты TI и RI - биты запроса на прерывание передатчика и приемника соответственно.

Формат сообщения (или формат кадра), передаваемого или принимаемого последовательным портом имеет вид:





Последовательный порт может работать в одном из четырех режимов.


SM0

SM1

Режим

Описание

Частота

0

0

0

Синхронный

Fosc/12

0

1

1

8 бит асинхронный

переменная

1

0

2

9 бит асинхронный

Fosc/64 или Fosc/32

1

1

3

9 бит асинхронный

переменная


В режиме 0 данные передаются и принимаются через линию RxD (P3.0). Через линию TxD (P3.1) выдаются синхроимпульсы, стробирующие принимаемые или выводимые данные. Формат посылки - 8 бит, младшими разрядами вперед. Частота приема и передачи - Fosc/12 (Fosc - частота задающего ренератора).

Передача инициируется любой инструкцией, записывающей информацию в SBUF. Передача начинается через один машинный цикл после записи в SBUF. Очередной бит посылки выдвигается на вывод RxD в момент S6P2 каждого последующего машинного цикла. Синхросигнал, выводимый на вывод TxD имеет низкий уровень в фазах S3, S4, S5 и и высокий уровень в фазах S6, S1, S2 каждого машинного цикла. После передачи всех восьми битов выставляется флаг запроса прерывания передатчика TI в момент S1P1 десятого машинного цикла после записи в SBUF.





Прием инициируется при условии REN=1 и RI=0. В момент S6P2 следующего машинного цикла на выводе TxD начинает выдаваться синхросигнал, который меняет свое значение в моменты S3P1 и S6P1 каждого машинного цикла. Вхлдная посылка фиксируется в моменты S5P2 каждого машинного цикла. После приема посылки, в момент S1P1 десятого машинного цикла после начала приема, принятая посылка записывается в SBUF и выставляется флаг запроса прерывания приемника RI.

В режиме 1 данные передаются с вывода TxD, а принимаются на вывод RxD. Посылка состоит из десяти бит: START-бит (0), восемь бит данных (младшими битами вперед) и STOP-бит (1). Скорость передачи определяется частотой переполнения таймера T1 или T2. Выбор того или другого таймера в качестве генератора синхросигнала для приема или передачи определяется установкой битов RCLK и TCLK в управляющем регистре T2CON (адрес 0C8H).

Если бит RCLK или TCLK установлен, то в качестве источника синхросигнала для приема или передачи соответственно выбирается таймер T2, иначе таймер T1.

Передача инициируется любой командой, записывающей информацию в SBUF. Однако собственно передача начнется в фазе S1P1 машинного цикла, следующего за 16-м импульсом переполнения таймера, выбранного в качестве опорного. При этом на вывод TxD выдается нулевой START-бит. Спустя еще 16 импульсов переполнения соответствующего таймера, в этой же фазе на выход выдается первый бит данных и т.д. После передачи последнего бита данных на вывод поступает единичный STOP-бит. После этого выставляется флаг запроса прерывания передатчика TI.

Прием инициируется обнаружением отрицательного перепада уровня сигнала на входе RxD. Для этого данный вход стробируется с частотой переполнения соответствующего таймера. При обнаружении указанного перепада внутренний делитель частоты немедленно обнуляется для выравнивания с границами поступающих битов. После этого каждые 16 периодов переполнения выбранного таймера составляют время приема каждого бита. Значение бита фиксируется в моменты каждого 7-го, 8-го и 9-го периодов переполнения таймера. При этом истинное значение бита вычисляется по правилу “2 из 3-х”. Если первый принятый бит (START-бит) оказывается не 0, то прием прерывается и система снова устанавливается в начальное состояние поиска отрицательного перепада на входе RxD. Такой прем предотвращает прием ложных посылок. Если START-бит принят нормально, то аналогичным образом принимаются следующие 8 бит данных и STOP-бит. Если в регистре SCON установлен бит SM2, то после приема STOP-бита происходит проверка на его правильность. Если STOP-бит равен 1, то посылка принята нормально, она записывается в SBUF, STOP-бит записывается в RB8, выставляется флаг запроса прерывания приемника RI и система возвращается в исходное состояние. Если принятый STOP-бит равен 0, то принятая посылка теряется и система возвращается в исходное состояние. Если бит SM2 в SCON не установлен, то проверка правильности STOP-бита не производится и посылка принимается при любом его значении. Однако, если был принят STOP-бит, равный 0, то устанавливается флаг FE в управляющем регистре SCON. Этот флаг может быть потом порграммно прочитан для обнаружения сбоя в коммуникации. Флаг FE, однажды установленный, может быть сброшен только программно.

Если в качестве опорного таймера выбран таймер T1, то скорость передачи определяетс явыражением

;

где - частота переполнения таймара T1, SMOD1 - бит D7 управляющего регистра PCON (адрес 87H).

Если в качестве опорного таймера выбран таймер T2, то скорость передачи определяется выражением

;

где - частота переполнения таймара T2.

Режим 2 аналогичен режиму 1, за исключением то, что помимо 8 бит данных передается и принимается 9-й программируемый бит. При передаче значение этого бита берется из бита TB8, а при приеме записывается в бит RB8 управляющего регистра SCON. Этот 9-й бит предназначен для организации мультипроцессорных коммуникаций, когда посредством последовательного порта могут общаться друг с другом более двух процессоров. При этом в первой посылке пердается адрес получателя, а в следующей - собственно данные. Для разграничения посылок с адресом и с данными используется программируемый 9-й бит посылки. Для посылок с адресом он равен 1, а для посылок с данными - 0.

При мультипроцессорном обмене данными каждому порту приемника назначается свой индивидуальный адрес. Ведущий контроллер может обратиться либо к выбранной группе ведомых устройств по специальному адресу (Given Address), либо сразу ко всем по широковещательному адресу (Broadcast Address). Эти адреса определяются для каждого ведомого контроллера исходя из содержимогодвух регистров - SADDR и SADEN. Индивидуальный адрес контроллера указывается в регистре SADDR (адрес 0A9H). Содержимое регистра SADEN (адрес 0B9H) является маской для определения незначимых разрядов в адресе порта. Они соответствуют нулевым битам регистра SADEN. Порядок определения результирующего набора адресов порта можно пояснить на примере:


Slave 1: SADDR = 1 1 1 1 0 0 0 1

SADEN = 1 1 1 1 1 0 1 0

GIVEN = 1 1 1 1 0 x 0 x


Slave2: SADDR = 1 1 1 1 0 0 1 1

SADEN = 1 1 1 1 1 0 0 1

GIVEN = 1 1 1 1 0 x x 1

Здесь символом x обозначены разряды адреса, которые не учитываются при анализе.

Широковещательный адрес образуется операцией логического ИЛИ над содержимым регистров SADDR и SADEN, где нули так же обозначают незначащие биты.

Если бит SM2 в регистре SCON установлен, то при приеме сообщения флаг запроса прерывания приемника будет установлен только если 9-й бит посылки равен 1 (т.е. это адрес) и принятая посылка соответствует специальному или широковещательному адресу устройства. Это способствует разгрузке процессора. Он откликается лишь на прием своего адреса, после чего сбрасывает бит SM2 в SCON и принимает данные. Этот механизм работает и врежиме 1, но роль 9-го бита в этом случае играет STOP-бит.

Флаг FE в режиме 2, так же, ка и в режиме 1 устанавливается при приеме неправильного STOP-бита и свидетельствует об ошибках комуникации. Он может быть снят только программно.

Скорость передачи в режиме 2 может иметь одно из двух фиксированных значений в зависимости от бита SMOD1 в регистре PCON и определяется выражением

.


Режим 3 идентичен режиму 2 за исключением того, что скорость передачи в этом режиме может быть различной и определяется аналогично режиму 1.


Для унификации методов связи различных устройст по последовательному каналу разработаны последовательных интерфейсов. Одним из наиболее широко используемых стандартов в этой области является стандарт RS-232C. Его отече6ственным аналогом является интерфейс С2. Стандарт предусматривает двухточечную и многоточечную когмуникацию в полудуплексном и дуплексном режимах на растояния до 17 м. При скорости до 20 Кбод. При передаче используются уровни сигналов -12В и +12В. Кроме передаваемых и принимаемых данных стандарт пердписывает следующий набор управляющих сигналов:

- RTS - Запрос передатчика. Генерируется передатчиком, когда он должен передать данные по линии. Должен сохранять активное состояние до конца передачи.

- CTS - Сброс передатчика. Используется приемником для информирования передатчика относительно того, готов ли приемник к приему передаваемых данных. Должен сохранять активное состояние до конца передачи. Если сигнал CTS переходит в неактивное состояние в середине передачи, то передатчик прекращает передачу и выдает сообщение об ошибке.

- DSR - Готовность модема. Когда модем включен, этот вывод находится в активном состоянии. В случае модемов с фиксированной коммутацией, которые способны работать в режиме передачи либо речи, либо данных этот вывод устанавливается в активное состояние при передаче данных и в пасивное - при передачи речи.

- DCD - Флаг обнаружения несущей. Этот сигнал используется модемом для информирования передатчика о том, что каналом можно пользоваться , и обычно активизируется в тех случаях, когда уже выдан сигнал “Запрос передатчика” RTS.

- DTR - Готовность терминала. В активном состоянии указывает на то, что терминал находится в режиме взаимодействия с системой и, следовательно, связь возможна. Если он находится в пасивном состоянии, то терминал находится в автономном режиме и связь невозможна.

- RI - Индикатор вызова. Активизируется модемом, когда последний обнаружил поступивший по телефонной линии вызов.

Для всех указанных сигналов, включая принимаемые и передаваемые данные, уровень напряжения на линии в пределах от +5В до +15В соответствует логическому 0. Уровень, лежащий в пределах от -5В до -15В соответствует логической 1.

В случае реализации полного интерфейса RS-232C на базе микроконтроллера MCS-51 функции всех управляющих сигналов могул быть реализованы лишь программно с использованием отдельных линий портов ввода-вывода. Однако существуют микросхемы, специально предназначенные для реализации полного протокола обмена RS-232C. Примером является микросхема NS16550 фирмы National Semiconductor.




Микросхема способна осуществлять обмен по последовательному каналу связи в дуплексном режиме в соответствии состандартом RS-232C. Формат посылки может быть программно задан:

- 5, 6, 7 или 8 бит данных;

- бит контроля по четности или нечетноси (может не генерироваться);

- 1, 1.5 или 2 STOP-бита.

Скорость передачи данных может так же программироваться в пределах от 50 Бод до 1.5 Мбод. Микросхема конструктивно и функционально совместима со своими предшественниками 8250 и NS16450. Микросхема может работать в двух режимах: режиме совместимом с NS16450 (16450 Mode) и режиме FIFO (FIFO Mode). В последнем режиме внутренняя память FIFO позволяет сохронять до 16 принятых посылок (с 3 флагами ошибок на каждую) и 16 посылок, подлежащих передаче. В ьэтом режиме снижается загрузка процессора при многобайтных пересылках. Микросхема имеет 4-х уровневую приоритетную систему прерываний. Управление работой и состоянием микросхемы сос стороны процессора осуществляется путем записи/чтения набора внутренних регистров микросхемы. Адресные входы A0-A2 определяют доступ к конкретному регистру.


DLAB

A2

A1

A0

Регистр

0

0

0

0

Receiver Buffer (чткение), Transmitter Buffer (запись)

0

0

0

1

Interrupt Enable Register

x

0

1

0

Interrupt Identification register (чтение)

x

0

1

0

FIFO Control Register (запись)

x

0

1

1

Line Control Register

x

1

0

0

Modem Control Register

x

1

0

1

Line Status Register

x

1

1

0

Modem Status Register

x

1

1

1

Scratch Register

1

0

0

0

Divisor Register (LSB)

1

0

0

1

Divisor Register (MSB)


DLAB - старший бит в Line Control Register.

Формат посылки определяется содержимым Line Control register.


D0

D1

D2

D3

D4

Длина посылки

Кол-во Stop битов

Parity

Тип Parity

00 - 5 бит

10 - 6 бит

01 - 7 бит

11 - 8 бит

0 - 1

1- 1.5 если длина 5 бит, иначе 2

0- нет

1 - есть

0 - четность

1 - нечетность




D5

D6

D7

Stick Parity

Break

DLAB

0 - нет

1 - есть

0 - нет

1 - есть

0 - доступ к Receiver Buffer и Transmitter Buffer

1 - доступ к Divisor Register (MSB и LSB)


Бит D5 (Sticky Parity), если он равен 1, позволяет передавать фиксированное значение бита Parity: 0 - если D3=1 и D4=1; 1 - если D3=1 и D4=0. Бит D6 (Break), если он равен 1 устанавливает выход передатчика в нулевое состояние.

Скорость передачи определяется значением, записанным в 16-разрядный Divisor Register исходя из соотношения



где - частота задающего генератора.

Приемная часть микросхемы имеет свой вход синхронизации RCLK. На него может подаваться внешний синхросигнал, либо синхросигнал передатчика при подключении к нему выхода BAUDOUT (при этом скорость приема равна скорости передачи).

Содержимое Modem Control Register определяет состояние выходов управления модемом.


D0

D1

D2

D3

D4

D5

D6

D7

DTR

RTS

OUT1

OUT2

LOOPBACK










0 - 1

1 - 0

0 - 1

1 - 0

0 - 1

1 - 0

0 - 1

1 - 0

0 - нет обратной связи

1 - есть обратная связь

0

0

0


Если бит D4 (Loopback) равен 1, то выходы последовательного порта внутренне закорачиваются с его входами, их внешние выводы переводятся в неактивное состояние. Этот режим используется для тестирования микросхемы. OUT1, OUT2 - выходные линии общего назначения.

Содержимое Modem Status Register соответствует состоянию входных линий управления модема.


D0

D1

D2

D3

DCTS

DDSR

TERI

DDCD

CTS

0 - не изменился

1 - изменился


DSR

0 - не изменился

1 - изменился

RI

0 - изменился с 0 на 1

1 - не изменился

DCD

0 - не изменился

1 - изменился




D4

D5

D6

D7

CTS

DSR

RI

DCD

0 - CTS=1

1 - CTS=0

0 - DSR=1

1 - DSR=0

0 - RI=1

1 - RI=0

0 - DCD=1

1 - DCD=0


Биты D0-D3 становятся равными 1 если соответствующий вход микросхемы изменил свое состояние после последнего чтения этого регистра. При этом генерируется запрос на прерывание Modem Status Interrupt.

Содержимое Line Status Register определяет статус входной и выходной части микросхемы.


D0

D1

D2

D3

D4

D5

D6

D7

DR

OE

PE

FE

BI

THRE

TEMP

LSR7


Бит DR (Data Ready) становится равен 1 когда посылка полностью принята и записана во входной буфер или FIFO. Он возвращается в состояние 0 после чтения всех данных из входного буфера или из FIFO.

Бит OE (Overrun Error) становится равен 1 если новая посылка была полностью получена и записана во входной буфер до того как предыдущая была считана процессором. Если микросхема работаето в режиме FIFO, то этот флаг устанавливается когда FIFO полностью загружен и новая посылка полностью получена. При этом новая посылка не загружается в FIFO. Флаг OE сбрасывается после чтения содержимого Line Status register.

Бит PE (Parity Error) становится равен 1 если в принятой посылке обнаружена ошибка четности. В режиме FIFO этот флаг соответствует посылке, находящейся в данный момент на вершине FIFO. Флаг PE сбрасывается после чтения содержимого Line Status register.

Бит FE (Framing Error) становится равен 1 если в принятой посылке обнаружен неправильный STOP-бит. В режиме FIFO этот флаг соответствует посылке, находящейся в данный момент на вершине FIFO. Флаг FE сбрасывается после чтения содержимого Line Status register.

Бит BI (Break Indicator) становится равным 1 если вход последовательного порта находится в нулевом состоянии в течение времени, большего, чем время приема посылки. При этом во входной буфер или FIFO записывается одна нулевая посылка. Прием возобновляется после возвращения входа в единичное состояние и приема START-бита. В режиме FIFO этот флаг соответствует посылке, находящейся в данный момент на вершине FIFO. Флаг BI сбрасывается после чтения содержимого Line Status register.

Если один из битов D0-D4 установлен, то это вызывает запрос на прерывание Line Status Interrupt.

Бит THRE (Transmitter Holding Register Empty) становится равным 1 после того, как началась передача выходной посылки по последовательному каналу. В режиме FIFO этот бит устанавливается когда началась передача последней посылки, находящейся в FIFO. Флаг THRE сбрасывается в 0 одновременно с записью новой выходной посылки. Установка этого бита вызывает запрос на прерывание Transmitter Holding Register Empty Interrupt.

Бит TEMP (Tramnsmitter Empty) становится равным 1 после окончания передачи выходной посылки по последовательному каналу. В режиме FIFO этот бит устанавливается когда закончилась передача последней посылки, находящейся в FIFO. Флаг TEMP сбрасывается в 0 одновременно с записью новой выходной посылки.

Бит LSR7 равен 1 если хотя бы в одной входной посылке, находящейся в FIFO установлен PE, FE или BI.

Содержимое FIFO Control Register определяет режим работы внутреннего FIFO микросхемы.


D0

D1

D2

D3

0 - FIFO выключено

1 - FIFO включено

1 - очистка входного FIFO

1 - очистка выходного FIFO

0 - однобайтный ПДП

1 - многобайтный ПДП




D4

D5

D6

D7







Граница FIFO


0


0

00 - 1 байт

10 - 4 байта

01 - 8 байт

11 - 14 байт


Запись 1 в D0 включает входное и выходное FIFO микросхемы (режим FIFO). Запись 0 в D0 - отключает и очищает их.

Запись 1 в D1 очищает входное FIFO микросхемы.

Запись 1 в D2 очищает выходное FIFO микросхемы.

Выводы микросхемы RxRDY и TxRDY являются выходами запроса прямого доступа к памяти. Выход RxRDY активизируется когда принята но не считана хотя бы одна входная посылка. Он дезактивируется когда все входные посылки будут считаны. Выход TxRDY активизируется когда все все записанные выходные посылки переданы. В обычном режиме он дезактивируется после записи очередной выходной посылки. В режиме FIFO он дезактивируется когда все выходное FIFO будет заполнено. В режиме FIFO цикл ПДП может быть однобайтным (D3=0) или многобайтным (D3=1). В однобайтном режиме за один цикл ПДП считывается (записывается) обна посылка. В многобайтном режиме считываются (записываются) сразу несколько посылок. В обычном режиме цикл ПДП может быть только однобайтным (D3=0).

Значение бит D6, D7 определяет фиксированную границу заполнения входного буфера FIFO. При поступлении входной посылки (в обычном режиме) либо при заполнении входного буфера FIFO (в режиме FIFO) выше фиксированной границы выставляется запрос на прерывание Received Data Available Interrupt.

Микросхема может генерировать пять типов запросов на прерывание:

- Receiver Line Status Interrupt (RLSI). Выставляется если в посылке, находящейся в приемном буфере или на вершине FIFO обнаружена хотя бы одна из ошибок Overrun Error, Parity Error, Framing Error, Break Error. Снимается после чтения содержимого Line Status Regiuster.

- Received Data Available Interrupt (RDAI). Выставляется при поступлении входной посылки (в обычном режиме), или при при заполнении бходного буфера FIFO выше фиксированной границы (в режиме FIFO). Снимается после чтения входной посылки (в обычном режиме), либо после опустошения входного буфера FIFO ниже фиксированной границы (в режиме FIFO).

- Transmitter Holding Register Empty Interrupt (THREI). Выставляется после того, как началась передача последней записанной выходной посылки. Снимается после записи выходной посылки в выходной буфер или FIFO.

- Modem Status Interrupt (MSI). Выставляется если один из входов CTS, DSR, RI (0-1), DCD изменил свое состояние после последнего чтения Modem Status Register. Снимается после чтения Modem Status Register.

- Character Timeout Interrupt (CTI). Выставляется если во входном буфере FIFO есть хотя бы одна принятая посылка, которая была принята и не была считана процессором за время, достаточное для приема 4 посылок. Снимается после чтения входной посылки.

Каждый из описанных источников прерываний может быть программно разрешен или запрещен, в соответствии с содержимым регистра Interrupt Enable Register.


D0

D1

D2

D3

D4

D5

D6

D7

RDAI, CTI

THREI

RLSI

MSI













0 - OFF

1 - ON

0 - OFF

1 - ON

0 - OFF

1 - ON

0 - OFF

1 - ON

0

0

0

0


Все источники запросов на прерывание используют один и тот же выход запроса прерывания INTR. Процессор идентифицирует конкретный источник прерывания при чтении регистра Interrupt Identification Register.


D0

D1

D2

D3

D4

D5

D6

D7

0 - есть прерывание

1 - нет прерывания

000 - MSI

100 - THREI

011 - CTI

010 - RDAI

110 - RLSI

0

0

X

X


Бит D0 определяет, есть ли запрос на прерывание в данный момент. Биты D1-D3 идентифицируют конкретный источник прерывания.

Все запрсы прерывания поделены на 4 уровня приоритетов: RLSI - первый (высший), RDAI, CTI - второй, THREI - третий, MSI - четвертый (наименьший). При возникновении одновременно разных запросов прерывания Interrupt Identification Register идентифицирует прерывания в порядке приоритета.


Синхронизация микросхемы осуществляется либо подачей внешнего синхросигнала на вход XIN (при этом вывод XOUT является выходом синхросигнала), либо подключением кварцевого резонатора между выводами XIN и XOUT.





Для преобразования уровней сигналов из TTL-совместимых (0, 5В) в RS232-совместимые (-12В, +12В) используются специальные микросхемы приемников и передатчиков RS232. Примером таких микросхем могут служить передатчи MC1488 (КР559ИП19) и приемник MC1489 (КР559ИП20) фирмы Motorola.





Вывод 2 у 1489 предназначен для управления уровнем срабатывания входной логики.

Схематично сопряжение приемной и передающей частей линии можно изобразить следующим образом. Резистрор R, сопротивление которого равно характеристическому импедансу длинной линии, добавлен для подавления отражений.





В качестве среды передачи обычно используют коаксиальный кабель ( он имеет чисто резистивный характеристический импеданс от 50 до 100 Ом) или витую пару (с характеристическим импедансом до 200 Ом).

Недостатком таких микросхем как 1488 является то, что они требуют напряжения питания, соответствующего передаваемым уровням сигнала. Однако, существуют микросхемы, способные при напряжении питания 5В формировать на выходе уровни сигнала, соответствующие стандарту RS232. Примерами таких микросхем могут служить MAX202, MAX232 фирмы Maxim, ADM232 фирмы Analog Devices и другие. Для обеспечения требуемых уровней сигналов необходимо лишь подключение нескольких внешних конденсаторов. На рисунке представлена конфигурация адаптера RS232 с минимальным количеством соединений между узлами.





В условиях повышенных помех либо при большой длине кабеля надежность интерфейса RS232 может оказаться недостаточной для для хорошего качества коммуникаций. В этих случаях используется симметричный дифференциальный интерфейс RS422.





Симметричный дифференциальный формирователь, такой как MAX490 фирмы Maxim имеет два выхода. Один из выходов представляет собой буферизованный эквивалент входа формирователя, тогда как другой является его дополнением. Витая пара соединяет два этих вывода с двумя входами приемника (дифференциальный вход). Поскольку оба передаваемых сигнала в одинаковой степени подвергаются воздействию помех (синфазные помехи), то последние устраняются благодаря использованию дифференциального входа в приемнике. Этот интерфейс может эффективно функционировать в присутствии синфазных помех с амплитудой до 3В. При этом уровни передаваемых сигналов - 0В и 5В. Допускается длина линии до 1300 м. При скорости передачи до 10 Мбод.

Несимметричный дифференциальный интерфейс RS423 отличается от симметричного тем, что один из выводов передатчика соединен с обшей шиной и является общим для нескольких каналов связи. Это позволяет сократить общее число линий связи при большом количестве каналов передачи данных. Примером микросхем, используемых для организации такого интерфейса могут служить ADM5170 (передатчик) и ADM5180 (приемник) фирмы Analog Devices.




Этот интерфейс допускает длину линии перелачи до 1300 м. И скорость передачи данных до 100 Кбод.

Интерфейсы RS422 и RS423 являются дуплексными и обладают повышенной надежностью по сравнению с интерфейсом RS232. Однако они требуют увеличенного числа линий связи для своей реализации.

Интерфейс RS485 является полудуплексным аналогом интерфейса RS422. В нем одни и те же линии связи используются для приема и передачи сообщений. Таким образом число линий связи в RS485 такое же как и в RS232. Примером микросхем, реализующих интерфейс RS485 могут служить MAX485 фирмы Maxim, ADM485 фирмы Analog Devices. Выводы DE и при активных уровнях сигнала на них разрешают микросхеме работать на передачу или прием соответственно.




Интерфейсы RS232, RS422, RS423, RS485 позволяют создавать многопользовательские топологии каналов связи. Пример сети RS485 имеет вид.