Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lektsii_Alaluev_Gotovye.doc
Скачиваний:
157
Добавлен:
10.05.2015
Размер:
3.54 Mб
Скачать

6. Интерфейсы, применяемые в микропроцессорных системах и микроконтроллерах.

6.1 RS232

(Проектирование устройств сопряжения для персональных ЭВМ)

В 1969 г. Группой ведущих промышленных корпораций США был введен стандарт на соединение оборудования. Ассоциация электронной промышленности США (EIA) опубликовала вариант С своего рекомендуемого стандарта (Recommended Standart - RS) номер 232. Этот стандарт был озаглавлен "Интерфейс между оконечным оборудованием обработки данных и оконечным оборудованием линии с использованием последовательного обмена данными в двоичной форме" и известен просто как стандарт RS-232C. МККТТ (CCITT - англ. International Consultative Committee for Telegraphy and Telephony — подразделение Международного Телекоммуникационного Союза (ITU) ООН.) ввел свой собственный вариант этого стандарта в виде стандартов V.24 и V.28.

Министерство обороны США выпустило практически идентичный стандарт Mil-Std-188C. В СССР подобный стандарт описан в ГОСТ 18145-81.

Самой последней (июль 1991 г.) модификацией стандарта RS-232 является стандарт EIA/TIA-232E. В модификации Е нет никаких технических изменений, которые могли бы привести к проблемам совместимости с оборудованием, согласованным с предыдущими вариантами этого стандарта. В настоящее время последовательный интерфейс широко используется в персональных ЭВМ.

RS232C предназначен для подключения к компьютеру стандартных внешних устройств (принтер, сканер, модем, мышь и т.д.), а так же для связи компьютеров между собой. Данные по интерфейсу RS232C передаются в последовательном коде побайтно. Каждый байт обрамляется стартовым и стоповыми байтами. Данные могут предаваться как в одну, так и в другую сторону. Для связи по интерфейсу можно использовать 10-проводной кабель. Но наиболее часто используются трех и четырех проводные схемы.

Рассмотрим назначение сигналов интерфейса RS232.

Таблица___

Цепь

Номер контакта

Вход/выход

Назначение

FG

-

-

Защитное заземление

-TxD

3

Выход

Данные передаваемые микро ЭВМ внешнему устройству (знак «-» говорит, что вход инверсный)

-RxD

2

Вход

Данные принимаемые компьютером

RTS

7

Выход

Сигнал запроса передачи. Активен во время передачи

CTS

8

Вход

Сигнал сброса или очистки для передачи. Активен во время передачи. Говорит о готовности приемника

DSR

6

Вход

Готовность данных. Используется для задания режима модема

SG

5

-

Сигнальное заземление или нулевой провод

DCD

1

Вход

Обнаружение несущих данных (детектирование принимаемого сигнала)

DTR

4

Выход

Готовность выходных данных (несущая данных)

RI

9

Вход

Индикатор вызова. Говорит о приеме модемом сигнала вызова по телефонной сети

Рассмотрим формат передаваемых данных по интерфейсу RS232.

Рисунок__ Формат передачи по интерфейсу RS-232 (1.отсутствие передачи;

2. стартовый бит; 3. передаваемые данные, может быть 5,6,7,8 бит; 4. контроль четности; 5. 1,1,5,2 стоповых бита)

Данные сопровождаются стартовым битом, битом четности и одним или двумя стоповыми битами. Получив стартовый бит, приемник выбирает из линии биты данных через определенные интервалы времени. Очень важно чтобы тактовые частоты приемника и передатчика были одинаковы (допустимое отклонение 10%). Скорость передачи по RS232 выбирается из ряда:

110; 150; 300; 600; 1200; 2400; 4800; 9600; 19200; 38400; 57600; 115200 бит/с.

Все сигналы RS232 передаются специально выбранными уровнями, обеспечивающими высокую помехоустойчивость связи. Данные передаются в инверсном коде, т.е. высокий уровень соответствует логическому нулю, а низкий уровень соответствует логической единице. Эти уровни отличаются для передатчика и приемника.

Рисунок__ Логические уровни для передатчика(слева) и приемника (справа)

Наиболее часто для подключения произвольного внешнего устройства к компьютеру через RS232C используется трех или четырех-проводная линия связи (известная как нольмодем).

Рисунок __. Четырехпроводная линия связи

Обмен по RS232 осуществляется с помощью обращения по специально выделенным для этого портам:

COM1 по адресам 3F8-3FF использует прерывание №4

COM2 по адресам 2F8-2FF использует прерывание №3

COM3 по адресам 3E8-3EF использует прерывание №10

COM4 по адресам 3E8-3EF использует прерывание №

Обращение по этим адресам вызывает изменение работы контроллера RS232. Можно задавать частоту передачи, число передаваемых бит, контроль передачи на четность. Рассмотрим формат управляющих слов интерфейса.

Порт 3F8.

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

Код

Скорость бит/с

0400

110

0300

150

0180

300

00С0

600

0060

1200

0030

2400

0018

4800

000С

9600

0006

19200

0003

38400

0002

97600

0001

115200

Порт 3F9.

При значении управляющего бита, равном единице, этот порт используется для записи старшего байта кода делителя частоты. При нулевом значении управляющего бита этот порт используется для управления прерываниями. При этом он имеет следующий формат:

№ бита

назначение

0

  1. разрешается прерывания по окончании приема данных

0- запрещение прерывания

1

  1. разрешение прерывания по окончании передачи данных

0- запрещение прерывания

2

  1. разрешение прерывания при обнаружении сбоя на линии

0- запрещение прерывания

3

  1. разрешение прерывания по изменению входных управляющих сигналов RS232C

0- запрещение прерывания

4,5,6,7

Не используются

Порт 3FА.

Этот регистр идентификации прерывания. Используется только для чтения. Его содержимое указывает на причину прерывания. Формат регистра следующий:

№ бита

назначение

0

1- нет прерываний, требующих обслуживания

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

1,2

00- переполнение приемника, ошибка четности или формата

данных при приеме, сброс - по чтению из 3FD;

01- данные переданы, сброс – по записи в 3F8;

10- данные приняты и доступны для чтения, сброс – по чтению из 3F8;

11- изменение состояния входных управляющих сигналов RS232C, сброс – по чтению из 3FE

3…7

Не используется

Порт 3FВ.

Если управляющий регистр, доступный по чтению и записи. Его формат следующий:

№ бита

назначение

0, 1

Количество бит передаваемых данных: 00-5 бит, 10- 6 бит, 01- 7 бит, 11- 8 бит

2

Количество стоповых битов: 0-1 бит, 1- 2 бита

3, 4

Контроль четности: 0Х- контроль четности не используется, 10- контроль на нечетность, 11- контроль на четность

5

Задание контрольного бита: 1- контрольный бит всегда равен 0(если выбран контроль на четность) или всегда равен 1( если выбран контроль на нечетность)

6

1- постоянная передача нуля

0- нормальная передача символов

7

Управляющий бит для выбора назначения портов 3F8 и 3F9

Порт 3FС.

Данный порт используется для управления модемом. Управляет состоянием управляющих линий интерфейса RS232С. Применяется довольно редко. Его формат следующий:

№ бита

назначение

0

Состояние линии DTR

1

Состояние линии RTS

2

Состояние выходного сигнала УАПП OUT1

3

Состояние выходного сигнала УАПП OUT2

4

Режим работы УАПП: 0- рабочий, 1- диагностический

5, 6, 7

Не используется

Порт 3FD.

Этот регистр состояния линии. Его формат следующий:

№ бита

назначение

0

1- данные получены и готовы для чтения, флаг сбрасывается при чтении данных

1

1- ошибка переполнения при приеме ( принят новый байт раньше, чем прочитан предыдущий, предыдущий байт теряется)

2

1- ошибка четности при приеме

3

1- ошибка синхронизации ( не принята стоповая посылка)

4

1- обнаружен запрос на прерывание передачи (постоянная передача нуля)

5

1- буферный регистр передачи пуст можно записывать следующий передаваемый байт

6

1- регистр сдвига передатчика пуст, передача закончена

7

1- тайм-аут

Порт 3FЕ.

Этот регистр состояния модема. Используется редко. Его формат следующий:

№ бита

Назначение

0

Линия CTS изменила состояние после предыдущего чтения из регистра состояния модема

1

Линия DSR изменила состояние

2

Линия RI изменила состояние

3

Линия DCD изменила состояние

4

Состояние линии CTS

5

Состояние линии DSR

6

Состояние линии RI

7

Состояние линии DCD

Для передачи данных необходимо записать их по адресу 3F8 (предварительно надо убедиться, что буферный регистр передатчика пуст). Принятые данные читаются из адреса 3F8 (предварительно надо убедиться, что данные приняты). Для обеспечения обмена необходимо инициализировать COM-порт; для этого необходимо:

  • записать по адресу 3F8 управляющий байт с единицей в 7 бите

  • записать код делителя частоты по адресам 3F8 и 3F9

  • записать по адресу 3FB управляющий байт с нулем в 7 бите и с требуемыми значениями остальных битов

  • записать управляющий байт по адресу 3F9

  • записать управляющий байт по адресу 3FC.

6.2 RS485, RS422

http://mayak-bit.narod.ru/rs485.html

RS-485 для чайников

(c) 2003 Евгений Александрович Бень

Стандарт RS-485 был совместно разработан двумя ассоциациями производителей: Ассоциацией электронной промышленности (EIA - Electronics Industries Association) и Ассоциацией промышленности средств связи (TIA - Telecommunications Industry Associastion). EIA некогда маркировала все свои стандарты префиксом "RS" (Рекомендованный стандарт). Многие инженеры продолжают использовать это обозначение, однако EIA/TIA официально заменил "RS" на "EIA/TIA" с целью облегчить идентификацию происхождения своих стандартов. На сегодняшний день, различные расширения стандарта RS-485 охватывают широкое разнообразие приложений.

Сеть, построенная на интерфейсе RS-485, представляет собой приемопередатчики, соединенные при помощи витой пары - двух скрученных проводов. В основе интерфейса RS-485 лежит принцип дифференциальной (балансной) передачи данных. Суть его заключается в передаче одного сигнала по двум проводам. Причем по одному проводу (условно A) идет оригинальный сигнал, а по другому (условно B) - его инверсная копия. Другими словами, если на одном проводе "1", то на другом "0" и наоборот. Таким образом, между двумя проводами витой пары всегда есть разность потенциалов: при "1" она положительна, при "0" - отрицательна.

Рисунок ___ Организация передачи по интерфейсам RS422 и RS485.

Именно этой разностью потенциалов и передается сигнал. Такой способ передачи обеспечивает высокую устойчивость к синфазной помехе. Синфазной называют помеху, действующую на оба провода линии одинаково. К примеру, электромагнитная волна, проходя через участок линии связи, наводит в обоих проводах потенциал. Если сигнал передается потенциалом в одном проводе относительно общего, как в RS-232, то наводка на этот провод может исказить сигнал относительно хорошо поглощающего наводки общего ("земли"). Кроме того, на сопротивлении длинного общего провода будет падать разность потенциалов земель - дополнительный источник искажений. А при дифференциальной передаче искажения не происходит. В самом деле, если два провода пролегают близко друг к другу, да еще перевиты, то наводка на оба провода одинакова. Потенциал в обоих одинаково нагруженных проводах изменяется одинаково, при этом информативная разность потенциалов остается без изменений.

Аппаратная реализация интерфейса - микросхемы приемопередатчиков с дифференциальными входами/выходами (к линии) и цифровыми портами (к портам UART контроллера). Существуют два варианта такого интерфейса: RS-422 и RS-485.

RS-422 - полнодуплексный интерфейс. Прием и передача идут по двум отдельным парам проводов. На каждой паре проводов может быть только по одному передатчику.

RS-485 - полудуплексный интерфейс. Прием и передача идут по одной паре проводов с разделением по времени. В сети может быть много передатчиков, так как они могут отключаются в режиме приема.

Рисунок __ Микросхемы интерфейсов RS485 и RS 232

D (driver) - передатчик;

R (receiver) - приёмник;

DI (driver input) - цифровой вход передатчика;

RO (receiver output) - цифровой выход приемника;

DE (driver enable) - разрешение работы передатчика;

RE (receiver enable) - разрешение работы приемника;

A - прямой дифференциальный вход/выход;

B - инверсный дифференциальный вход/выход;

Y - прямой дифференциальный выход (RS-422);

Z - инверсный дифференциальный выход (RS-422).

Рассмотрим подключение приемопередатчика RS-485. Цифровой выход приемника (RO) подключается к порту приемника UART (RX). Цифровой вход передатчика (DI) к порту передатчика UART (TX). Поскольку на дифференциальной стороне приемник и передатчик соединены, то во время приема нужно отключать передатчик, а во время передачи - приемник. Для этого служат управляющие входы - разрешение приемника (RE) и разрешения передатчика (DE). Так как вход RE инверсный, то его можно соединить с DE и переключать приемник и передатчик одним сигналом с любого порта контроллера. При уровне "0" - работа на прием, при "1" - на передачу.

Рисунок __ Подключение приемопередатчика RS485 к микроконтроллеру с UART

Приемник, получая на дифференциальных входах (AB) разность потенциалов (UAB) переводит их в цифровой сигнал на выходе RO. Чувствительность приемника может быть разной, но гарантированный пороговый диапазон распознавания сигнала производители микросхем приемопередатчиков пишут в документации. Обычно эти пороги составляют ± 200 мВ. То есть, когда UAB > +200 мВ - приемник определяет "1", когда UAB < -200 мВ - приемник определяет "0". Если разность потенциалов в линии настолько мала, что не выходит за пороговые значения - правильное распознавание сигнала не гарантируется. Кроме того, в линии могут быть и не синфазные помехи, которые исказят столь слабый сигнал.

Все устройства подключаются к одной витой паре одинаково: прямые выходы (A) к одному проводу, инверсные (B) - к другому.

Входное сопротивление приемника со стороны линии (RAB) обычно составляет 12 КОм. Так как мощность передатчика не беспредельна, это создает ограничение на количество приемников, подключенных к линии. Согласно спецификации RS-485 c учетом согласующих резисторов передатчик может вести до 32 приемников. Однако есть ряд микросхем с повышенным входным сопротивлением, что позволяет подключить к линии значительно больше 32 устройств.

Стандарты RS-485 и RS-422 имеют много общего, и поэтому их часто путают. Таблица 1 сравнивает их. RS-485, определяющий двунаправленную полудуплексную передачу данных, является единственным стандартом EIA/TIA, допускающим множественные приемники и драйверы в шинных конфигурациях. EIA/TIA-422, с другой стороны, определяет единственный однонаправленный драйвер с множественными приемниками. Элементы RS-485 обратно совместимы и взаимозаменяемы со своими двойниками из RS-422, однако драйверы RS-422 не должны использоваться в системах на основе RS-485, поскольку они не могут отказаться от управления шиной.

Таблица 1. Стандарты RS-485 и RS-422

RS-422

RS-485

Режим работы

Дифференциальный

Дифференциальный

Допустимое число Tx и Rx

1 Tx, 10 Rx

32 Tx, 32 Rx

Максимальная длина кабеля

1200 м

1200 м

Максимальная скорость передачи данных

10 Мбит/с

10 Мбит/с

Минимальный выходной диапазон драйвера

± 2 В

± 1.5 В

Максимальный выходной диапазон драйвера

± 5 В

± 5 В

Максимальный ток короткого замыкания драйвера

150 мА

250 мА

Сопротивление нагрузки Tx

100 Ом

54 Ом

Чувствительность по входу Rx

± 200 мВ

± 200 мВ

Максимальное входное сопротивление Rx

4 кОм

12 кОм

Диапазон напряжений входного сигнала Rx

± 7 В

от -7 В до +12 В

Уровень логической единицы Rx

> 200 мВ

> 200 мВ

Уровень логического нуля Rx

< 200 мВ

< 200 мВ

Согласование и конфигурация линии связи

При больших расстояниях между устройствами, связанными по витой паре и высоких скоростях передачи начинают проявляться так называемые эффекты длинных линий. Причина этому - конечность скорости распространения электромагнитных волн в проводниках. Скорость эта существенно меньше скорости света в вакууме и составляет немногим больше 200 мм/нс. Электрический сигнал имеет также свойство отражаться от открытых концов линии передачи и ее ответвлений. Грубая аналогия - желоб, наполненный водой. Волна, созданная в одном конце, идет по желобу и, отразившись от стенки в конце, идет обратно, отражается опять и так далее, пока не затухнет. Для коротких линий и малых скоростей передачи этот процесс происходит так быстро, что остается незамеченным. Однако, время реакции приемников - десятки/сотни нс. В таком масштабе времени несколько десятков метров электрический сигнал проходит отнюдь не мгновенно. И если расстояние достаточно большое, фронт сигнала, отразившийся в конце линии и вернувшийся обратно, может исказить текущий или следующий сигнал. В таких случаях нужно каким-то образом подавлять эффект отражения.

Наука Электротехника предлагает решение этой проблемы. У любой линии связи есть такой параметр, как волновое сопротивление Zв. Оно зависит от характеристик используемого кабеля, но не от длины. Для обычно применяемых в линиях связи витых пар Zв=120 Ом. Оказывается, что если на удаленном конце линии, между проводниками витой пары включить резистор с номиналом равным волновому сопротивлению линии, то электромагнитная волна дошедшая до "тупика" поглощается на таком резисторе. Отсюда его названия - согласующий резистор или "терминатор".

Большой минус согласования на резисторах - повышенное потребление тока от передатчика, ведь в линию включается низкоомная нагрузка. Поэтому рекомендуется включать передатчик только на время отправки посылки. Есть способы уменьшить потребление тока, включая последовательно с согласующим резистором конденсатор для развязки по постоянному току. Однако, такой способ имеет свои недостатки. Для коротких линий (несколько десятков метров) и низких скоростей (меньше 38400 бод) согласование можно вообще не делать. Подробнее можно почитать в статье "Обрежьте жирок с RS-485".

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

Линия связи должна представлять собой один кабель витой пары. К этому кабелю присоединяются все приемники и передатчики. Расстояние от линии до микросхем интерфейса RS-485 должно быть как можно короче, так как длинные ответвления вносят рассогласование и вызывают отражения.

В оба наиболее удаленных конца кабеля (Zв=120 Ом) включают согласующие резисторы Rt по 120 Ом (0.25 Вт). Если в системе только один передатчик и он находится в конце линии, то достаточно одного согласующего резистора на противоположном конце линии. Более подробно о правильных и неправильных конфигурациях сети можно прочитать в статье "Правильная разводка сетей RS-485".

Рисунок__ Организация линии связи с использованием RS422 и RS485.

Защитное смещение

Как уже упоминалось, приемники большинства микросхем RS-485 имеют пороговый диапазон распознавания сигнала на входах A-B - ±200мВ. Если |Uab| меньше порогового (около 0), то на выходе приемника RO могут быть произвольные логические уровни из-за несинфазной помехи. Такое может случиться либо при отсоединении приемника от линии, либо при отсутствии в линии активных передатчиков, когда никто не задает уровень. Чтобы в этих ситуациях избежать выдачи ошибочных сигналов на приемник UART, необходимо на входах A-B гарантировать разность потенциалов Uab > +200мВ. Это смещение при отсутствии входных сигналов обеспечивает на выходе приемника логическую "1", поддерживая, таким образом, уровень стопового бита.

Добиться этого просто - прямой вход (А) следует подтянуть к питанию, а инверсный (B) - к "земле". Получается делитель:

Рисунок__ Введение защитного смещения

Rвх - входное сопротивление приемника (обычно 12 кОм);

Rc - согласующие резисторы (120 Ом);

Rзс - резисторы защитного смещения.

Величины сопротивлений для резисторов защитного смещения (Rзс) нетрудно рассчитать по делителю. Необходимо обеспечить Uab > 200мВ. Напряжение питания - 5В. Сопротивление среднего плеча - 120Ом//120Ом//12КОм на каждый приемник - примерно 57 Ом (для 10 приемников). Таким образом, выходит примерно по 650 Ом на каждый из двух Rзс. Для смещения с запасом - сопротивление Rзс должно быть меньше 650 Ом. Традиционно ставят 560 Ом.

Для интерфейса как правило используют 9 контактный разъем Назначение контактов приведено на рисунке__

Рисунок __ Внешний вид 9 контактного разъема для подключения устройств RS485

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]