Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
22
Добавлен:
16.04.2013
Размер:
3.66 Mб
Скачать

Реферат по дисциплине Интерфейсы,

Тема: интерфейс RS232-C.

Автор: Чащегоров А.

Группа: МП-42.

Содержание:

  1. История создания интерфейса RS232.

  1. Сигналы интерфейса RS232-C и их раскладка на стандартных разъемах.

  1. Логика и электроника передачи данных в интерфейсе RS232-C.

4. Варианты связи по интерфейсу.

  1. Ограничения и рекомендации для реализации обмена по данному

интерфейсу.

  1. Перспективы развития стандарта RS232.

Асинхронный последовательный интерфейс RS232 по своей сути является логическим продолжением обыкновенного телеграфного интерфейса, разработанного фирмой BELL еще в начале 20-го века. Всего две линии телеграфа (сигнал и сигнальная земля) имели возможность донести информацию из точки “А” в точку “В”, но никак не наоборот: потому как существовала вероятность, что точки “A” и “B” захотят передать информацию одновременно. Логичным решением данной проблемы явилось введение еще одной линии, теперь “A” и “B” смогли вести передачу каждый по своему каналу. Но даже при наличии 3-х линий связи проблемы не были исчерпаны. В случае, когда человек принимал информацию от удаленной точки, он мог “интуитивно” выделить полезную информацию на фоне бесполезного шума. Но более быстродействующему механизму необходимо было “донести” четкий свод правил по приему и передаче информации, предусмотрев все нештатные ситуации (такие как: нет принимающего устройства на другом конце линии, устройство не готово к приему… и. т. п.). Эти накопившиеся проблемы и был призван решить RS232 стандарт.

Стандарт, более известный нам как RS232, изначально имел другое название – EIA-232, так как был разработан EIA (Electronics Industries Association). Разработанный в 1962 году EIA-232 был призван стандартизировать способ связи двух устройств. Этот интерфейс стал одной из первых разработок в данном направлении. Заложенный в данном протоколе потенциал нашел применение во множестве электронных устройств, широкое распространение EIA-232 изменило его имя на более привычное нам – RS232 (RECOMMENDED STANDART 232). Многие из существовавших проблем связи устройств того времени были решены данным стандартом. Но его введение наложило и некоторые ограничения на связь им обеспеченную. Познакомимся с RS232 более подробно:

Стандарт RS232-C (Current - текущий) может быть представлен в двух вариантах, на 9 и 25 выводном разъеме. Наиболее часто применяется именно 9 выводной разъем, который включает в себя выводы линий сигналов, применяемых наиболее часто при реализации связи по стандарту RS232-C. Далее приведена таблица с названиями сигналов RS232-С и их раскладкой на вышеупомянутых разъемах.

Табл1.

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

25 pin

Номер

контакта

9 pin

Обозначение сигнала

Описание сигнала

1

PGND

Защитная (силовая) земля

2

3

TD

Передаваемые данные

3

2

RD

Принимаемые данные

4

7

RTS

Запрос передачи

5

8

CLS

Сброс для передачи

6

6

DSR

Готовность модема

7

5

SGND

Сигнальная земля

8

1

CD

Обнаружение несущей

9

(Зарезервирован для теста модема)

10

(Зарезервирован для теста модема)

11

Не назначен

12

RLSD

Детектор сигнала приемной линии

13

SCTS

Вторичный сброс передачи

14

STD

Вторичные передаваемые данные

15

ТТ

Синхронизация передатчика

16

SRD

Вторичные принимаемые данные

17

RT

Синхронизация приемника

18

SUN

Вторичный неназначенный

19

SRTS

Вторичный запрос передачи

20

4

DTR

Готовность терминала

21

SOD

Детектор качества сигнала

22

9

RI

Индикатор звонка

23

DRS

Селектор скорости данных

24

XТТ

Синхронизация передатчика

25

-

Не назначен

На рисунках 1 и 2 приведен внешний вид стандартных разъемов RS232 (вид сверху), сигналы на данных разъемах требуется разводить в соответствии с Табл1. с целью обеспечения совместимости по интерфейсу.

Рис1. Рис2.

Далее рассмотрим за что же отвечает каждый из сигналов интерфейса, заранее приняв следующее соглашение: термины “установлен” и “выставлен” следует понимать как восстановление в высокий уровень напряжения (уровни сигналов смотри ниже.), термин “сброшен” понимается как установка сигнала в низкий по напряжению уровень.

PGND (защитная (силовая) земля ) – потенциал 0(в) соединена с землей устройства, земля по питанию, может использоваться для получения питания внешнего устройства непосредственно от RS232 порта. При этом следует учитывать, что ток питания от разъема ограничен значением порядка 1-10[мА], при условии, что питание берется от нескольких выводов, выставленных в высокое положение, и земли. Но значение тока с одного вывода у различных устройств различно, ДАННОЕ ЗНАЧЕНИЕ НЕ СТАНДАРТИЗОВАНО, поэтому требуется предельно аккуратно подойти к решению подобного вопроса.

TD (передаваемые данные) – из этого вывода будут исходить все информационные посылки от данного устройства. Для проверки функционирования приемной/передающей части нашего устройства полезно использовать прием, называемый – “ЭХО”. Суть данного метода заключается в следующем:

  • Конфигурируем устройство таким образом, чтобы вся информация, принятая им, немедленно передавалась на TD.

  • присоединяем устройство к RS232 порту компьютера.

  • запускаем программу TERMINAL.

  • настраиваем программу на нужный нам RS232 порт.

  • настраиваем ее на скорость работы нашего устройства.

  • устанавливаем полудуплексный режим работы TERMINAL-а.

  • начинаем передавать данные нашему устройству.

  • фиксируем данные отображаемые на экране.

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

RD(принимаемые данные) – в этот вывод будут поступать все информационные посылки для данного устройства. Принимаемая информация чувствительна к помехам, этот момент следует предусмотреть при проектировании устройства, одним из методов борьбы с помехами является использование стандартного модуля UART (смотри ниже). Хорошим техническим решением будет разводка данного сигнала на вывод прерывания контроллера (объяснения смотри ниже).

RTS(запрос передачи) – тестированием данного сигнала данное устройство проверяет готово ли устройство на другом конце линии к приему данных (не готово если сигнал сброшен). Данный сигнал также как и RD стоит завести на вывод прерывания контроллера. Программа данного прерывания должна описывать поведение устройства при неспособности абонента вести обмен, например: ожидание в течении некоторого интервала времени и впадение в спячку SLEEP – режим малого энергопотребления; или накопление не отосланной информации в буфере, с целью последующей посылки.

CLS(сброс для передачи) – сбросом сигнала данное устройство информирует устройство на другом конце линии, что оно не готово вести прием (передача возможна лишь при отсутствии данного сигнала). Моменты возникновения сигнала не регламентируются стандартом и могут варьироваться разработчиком (за исключением режима синхронного обмена, смотри ниже ). Следует помнить, что сигнал CLS должен быть выставлен немедленно при неспособности вести прием. Во избежании ситуации, когда передающее устройство уже передало несколько посылок информации, принимающее устройство их проигнорировало, занимаясь другой задачей, но не сбросив CLS. Произведя запоздалый сброс CLS, мы безвозвратно потеряли несколько информационных пакетов.

DSR(готовность модема) – выставлением этого сигнала данное устройство сообщает устройству на другом конце линии, что оно сформировало информационный пакет и готово его передать. Применение данного сигнала может быть полезно при реализации арбитража обмена между устройствами, например: устройство приемник обсчитывает некоторую задачу, отвлекаясь в определенные промежутки времени на проверку сигнала DSR. В этом случае, данные от источника будут читаться только если они действительно есть, и принимающему не придется долго ожидать посылки. Если же завести данный сигнал на вывод прерывания контроллера приемного устройства, то получим механизм немедленного оперативного приема только что сформированной информации. Также данный сигнал может выбирать скорость передачи данных (смотри ниже).

SGND(сигнальная земля) – “виртуальная” земля по сигналу, общая у двух связанных устройств. Как уже было изложено вход приемник RD “неравнодушен” к помехам в линии. При этом если мы учтем, что каждое связанное по RS232 устройство имеет собственную землю питания, и собственные помехи по питанию, то в случае организации связи “земля устройств – сигнальный провод” вероятность получить весь букет помех на входе RD более чем реальна. Именно для избежания этих проблем и вводиться “изолированная” от питания виртуальная сигнальная земля.

CD(обнаружение несущей) – выставлением сигнала данное устройство информирует устройство на другом конце линии, что оно подсоединено к кабелю. Сигнал CD для RS232 следует выставить в начальных установках контроллера и более не трогать, так как в случае отключения прибора от связующего кабеля или его выключения из питания сигнал на приемном конце линии пропадет сам собой. Тогда как подключение в линию включенного устройства выставляет данный сигнал так же “автоматически”.

RLSD(детектор сигнала приемной линии) – опросом сигнала данное устройство определяет присутствует ли другое устройство на обратном конце линии (присутствует если сигнал выставлен). Как и в случае с сигналом CLS данный сигнал стоит отслеживать постоянно во избежании посылки в пустоту, а следовательно потери, информационных пакетов.

ТТ(синхронизация передатчика) – данное устройство формирует меандр синхронизации для устройства на обратном конце линии. Этот сигнал необходим для реализации синхронного режима обмена по RS232. Предназначенный для устройства апонента сигнал TT нужен для перевода его рабочей приемной/ /передающей частоты к частоте ТТ и синхронизации с ней. Под рабочей частотой

следует понимать частоту передачи одного бита информации (возможны варианты, сигнал не регламентирован).

RT(синхронизация приемника) – меандр для данного устройства, поступающий к нему от устройства на противоположном конце линии, с целью синхронизации. Аналогичная ТТ функция, но для данного устройства. Стоит отметить, что в масштабе данного интерфейса хватает и одного из двух сигналов синхронизации, но ввиду наличия двух сигналов можно (например) с их помощью менять скорость передачи информации по инициативе любого из устройств.

DTR(готовность терминала) – выставлением сигнала устройство на противоположном конце линии информирует данное, что оно сформировало информационный пакет и готово его передать. Варианты использования сигнала смотри выше (сигнал DSR).

Как видно из таблицы основные сигналы дублированы, их описания аналогичны вышеизложенным, они могут использоваться как для организации двухканальной связи двух устройств, связь на прием и на передачу сразу по двум линиям (RD+SRD/TD+STD соответственно). Так и для организации связи с двумя устройствами (например: циклический синхронный опрос). Разработчиками же интерфейса данные повторяющиеся линии задуманы с целью повышения надежности передачи данных.

SOD(детектор качества сигнала) - сигнал используется для начального обнаружения устройства на другом конце линии, когда линия еще полна помех, сигнал поступает из выхода DTR устройства аппонента. В случае если сигнал не достигает высокого уровня, то он считается нулевым.

RI(индикатор звонка) – выходной сигнал предназначен для индикации набора номера модемом.

DRS() – входной сигнал предназначен для выбора одной из двух определенных ранее скоростей работы. Данный сигнал может использоваться совместно в сигналом DTR или не использоваться вовсе. Момент появления сигнала или его сброса не регламентирован, во избежании ошибок следует предусмотреть критические ситуации.

XTT(синхронизация передатчика) – выходной сигнал, представляющий собой меандр, предназначен для модема, своими перепадами уровня он показывает центр временного интервала выставленных данных. Сигнал поступает в линию если DTE в высоком логическом уровне. Данный сигнал не используется совместно с TT и RT.

Теперь перейдем непосредственно к вопросу логики передачи данных в RS232-C, начнем с передачи одного единственного байта, задействовав лишь передающую и сигнально-земляную линии (смотри рисунок 3).

Рис3.

Будем считать, что напряжение прикладывается от сигнальной земли до передающей линии. Как видно из Рис3, временная диаграмма 1 передача данных осуществляется следующим образом. Сначала линия находится в свободном состоянии (по ней ничего не передается) и логический уровень линии HIGHT (высокий). Далее происходит падение уровня – именно это и является сигналом для начала приема данных (одной посылки длинною в байт). Отметим, что если произойдет случайное падение уровня (например, из-за помехи), и данная линия заведена на вывод контроллера отконфигурированный под прием сигнала о прерывании, то будет получена неверная информация. Для борьбы с подобными ситуациями и существуют 3 системные бита.

Бит START предназначен для сигнализации начала пакета данных (в нашем случае байт), если данный бит принят как высокое логическое состояние, то считается, что на линии возникла помеха. При такой ситуации прием необходимо экстренно прекратить. Сразу после этого начинается новый мониторинг начала приема информации.

Вторым системным битом является Paritet, данный бит контролирует четность посылки, например:

  • Мы передаем байт, имеющий значение FE в шестнадцатеричной системе исчисления, 11111110 в двоичной соответственно – 7 единиц, 1 ноль.

  • Восстанавливаем Paritet в 0, это означает, что нулей во всей посылке четное количество. И если возникнет один лишний (вызванный помехой) то данная посылка будет считаться неверной.

Очевидно, что можно проверять четность и другими способами: четное количество единиц, нечетное количество нулей, нечетное количество единиц в посылке; но любой из данных способов не является совершенным. Так как в случае возникновения четного числа ошибок передачи бита в одном байте для такой “защищенной” посылки все будет выглядеть нормально – т.е. будет принята неверная информация. Именно поэтому зачастую бит четности вовсе не применяют Рис3, временная диаграмма 3. Существует также вариант передачи бита паритета внутри информационной части передаваемых данных (последним информационным битом, смотри Рис3 временная диаграмма 2).

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

Стоповый бит также варьируется по длине во времени: 1 стоповый бит, 1.5 стоповых бита и 2 стоповых бита.

Далее перейдем непосредственно к посылаемым данным. Высокий логический уровень сигнала считается нулем, низкий логический уровень считается единицей. Если внимательно присмотреться к последовательности посылаемых данных, то можно обнаружить, что они идут как бы “задом наперед”. Т.е. 0-й бит идет первым, а 7-й последним. Такой способ передачи данных обусловлен легкостью аппаратной дешифрации сигнала из последовательного кода в параллельный байт, действительно, стоит лишь загнать данный код в правосторонний сдвиговый регистр и мы через 8-мь тактов (только для информационной части без паритета) получим параллельно представленный байт.

Стоит также отметить что в общем случае RS232-С является асинхронным интерфейсом, так как момент прихода START бита никак неограничен во времени.

Познакомившись с логической частью передачи данных по данному протоколу, перейдем к электрическим параметрам данного интерфейса. Электрические уровни данного интерфейса установлены следующим образом: значения напряжения от +3 до +12В считаются логическим (двоичным) нулем, напряжение от –3 до –12В считается логической (двоичной) единицей. Таким образом напряжение от –3 до +3В является неопределенным (смотри рис 4).

Рис4.

В стандарте RS-232C все напряжения выше +3 В считаются нулем, а ниже -3 В единицей между +3 В и -3 В не определены.

Обычно используются уровни +12в –12в. С целью удешевления и ускорения разработок аппаратуры интерфейса RS232 было налажено массовое производство стандартного блока – UART. Блок UART обладает следующими функциональными возможностями и особенностями:

  • работа блока по приему/передаче данных проходит на стандартно определенных для порта обмена RS232 скоростях (смотри Табл2.).

  • устройство имеет приемный и передающий выводы TD, RD , выходные выводы байта полученной информации, входные выводы байта передаваемой информации, сигнализаторы готовности к приему/передаче информации, сигнализаторы окончания приема/ передачи информации, сигнализаторы ошибки приема/передачи информации, сигнал инициатор передачи информации, входной сигнал оповещения об окончании приема.

  • Входной вывод задающего высокочастотного генератора.

  • Входной вывод деления частоты.

Табл2.

110 бит/c

300 бит/c

1200 бит/c

2400 бит/c

4800 бит/c

9600 бит/c

19200 бит/c

38400 бит/c

57600 бит/c

115200 бит/c

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

Полномасштабный вариант включает в себя 2 регистра промежуточного хранения, 2 сдвиговых (правый и левый = передача и прием соответственно) регистра, устройство управления и индикации, тактовый формировательный блок. Задача данного устройства заключается в достоверном приеме/передаче последовательного RS232 кода и его преобразовании в параллельный код длинною в байт. Рассмотрим принцип работы блока UART (смотри рис5).

Рис5.

Работа данного устройства на прием строиться по следующей схеме:

  • блок “Read control unit”, тактируемый высокочастотным прямоугольным сигналом CLK призван производить выборку из принимаемой последовательности (способ выборки более подробно будет описан позднее), выдавать выбранный сигнал на десятиразрядный приемный (правый) сдвиговый регистр и информировать контрольный блок “Control unit” о том, что идет прием данных. Срыв активного сигнала информирования о приеме раньше времени приема посылки инкриминируется как ошибка приема.

  • Контрольный блок “Control unit” призван контролировать работу устройства в целом, в частности активировать сдвиг в приемном сдвиговом регистре, осуществить запись в буферный регистр, выставлять флаги приема и флаг ошибок приема.

Работа устройства на передачу строиться следующим образом:

  • в буферный регистр передачи поступают данные, после получения бита инициации передачи устройство (UART) передает данные в сдвиговый (левый) передающий регистр, обрамляя его стартовым и стоповым битом.

  • Далее тактируя сдвиговый регистр, “Control unit” осуществляет передачу в соответствии с “work frequency selector” (выбор рабочей частоты).

Прошу заметить, что данный пример рассмотрен для наиболее широко используемого случая приема/передачи (смотри Рис3, временная диаграмма 3), в данном случае, как видно из рисунка и описания возможно одновременное ведение приема и передачи. Остановимся поподробнее на методе выборки принимаемого сигнала и на методе фиксации ошибок вызванных помехами (смотри Рис6.)

Рис6.

На данном рисунке пунктирной ломаной показано поведение реальной линии связи с наличием отражения и помех, сплошной же линией показано поведение сигнала, которое является предполагаемым для блока контроля чтения UART-a. На данной диаграмме происходит пересылка всего одного бита данных, и как видно из формы реального поведения сигнала передается логический ноль, хотя и сильно покрытый помехами. Но стоит отметить, что без блока контроля чтения считывание данных произойдет в временной середине бита, т.е. в выделенном пунктиром временном интервале 8, а данное значение будет прочтено как логическая единица. Считанная тем самым информация будет неверна. Если же этот пример применить для случая стартового бита, то ситуация становиться еще более трагичной: так как уловив в нулевом временном интервале перепад уровней, контроллер инициирует прием данных, мало того в 8-м промежутке будет прочитан логический 0 – устройство перейдет в режим чтения целой посылки данных, которой естественно нет.

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

Наиболее распространенной является выборка 3 из 16 с критерием приема данных 3 из 2-х - это означает, что весь битовый интервал дробится на 16 временных отрезков (дробление на отрезки задает именно входной тактовый сигнал, частота которого еще не поделена до частоты приема/передачи). Устройство контроля чтения считывает значение уровня трех таких отрезков находящихся в середине битового интервала (в нашем случае 7,8,9) и производит селекцию прочитанной информации: если в 3-х интервалах присутствуют хоть два логических нуля, то прочитанная информация считается 0-й; если присутствуют хоть две единицы, то считаем, что прочитана 1-ца.

Таким образом для нашего примера применение такого критерия позволяет считать верную информацию. Наряду с данным способом коррекции информации существуют другие критерии (например 3 из 4-х), которые могут применяться для более мелкодисперсно разбитых битовых интервалов (разбиение на 32 интервала).

Соседние файлы в папке rs232