Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы к экзамену_Петровский.doc
Скачиваний:
31
Добавлен:
21.09.2019
Размер:
753.66 Кб
Скачать

Виды сигналов

В большинстве схем, содержащих интерфейс RS–232C, данные передаются асинхронно, т.е. в виде последовательности пакета данных. Каждый пакет содержит один символ кода ASCII, причем информация в пакете достаточна для его декодирования без отдельного сигнала синхронизации.

Символы кода ASCII представляются семью битами, например буква А имеет код 1000001. Чтобы передать букву А по интерфейсу RS–232C, необходимо ввести дополнительные биты, обозначающие начало и конец пакета. Кроме того, желательно добавить лишний бит для простого контроля ошибок по паритету (четности).

Наиболее широко распространен формат, включающий в себя один стартовый бит, один бит паритета и два стоповых бита. Начало пакета данных всегда отмечает низкий уровень стартового бита. После него следует 7 бит данных символа кода ASCII. Бит четности содержит 1 или 0 так, чтобы общее число единиц в 8–битной группе было нечетным. Последним передаются два стоповых бита, представленных высоким уровнем напряжения. Эквивалентный ТТЛ–сигнал при передаче буквы А показан на рис. 2.

Рис. 2. Представление кода буквы А сигнальными уровнями ТТЛ.

Таким образом, полное асинхронно передаваемое слово состоит из 11 бит (фактически данные содержат только 7 бит) и записывается в виде 01000001011.

Используемые в интерфейсе RS–232C уровни сигналов отличаются от уровней сигналов, действующих в компьютере. Логический 0 (SPACE) представляется положительным напряжением в диапазоне от +3 до +25 В, логическая 1 (MARK) — отрицательным напряжением в диапазоне от –3 до –25 В. На рис. 3 показан сигнал в том виде, в каком он существует на линиях TXD и RXD интерфейса RS–232C.

Рис. 3. Вид кода буквы А на сигнальных линиях TXD и RXD.

Сдвиг уровня, т.е. преобразование ТТЛ–уровней в уровни интерфейса RS–232C и наоборот производится специальными микросхемами драйвера линии и приемника линии.

На рис. 4 представлен типичный микрокомпьютерный интерфейс RS–232C. Программируемая микросхема DD1 последовательного ввода осуществляет параллельно–последовательные и последовательно–параллельные преобразования данных. Микросхемы DD2 и DD3 производят сдвиг уровней для трех выходных сигналов TXD, RTS, DTR, а микросхема DD4 для трех входных сигналов RXD, CTS, DSR. Микросхемы DD2 и DD3 требуют напряжения питания ±12 В.

Рис. 4. Типичная схема интерфейса RS–232C.

Таким образом, асинхронная последовательная связь является

предпочтительным решением ввиду низкой стоимости и простоты ис-

пользуемых аппаратных средств. Конечно, в этом режиме передачи мы

должны преобразовывать каждый байт данных в серию битов и указы-

вать приемнику начало и конец каждого байта. На рисунке 1-1 про-

иллюстрирована концепция асинхронной последовательной связи.

Предположим, что мы умеем преобразовывать каждый байт в поток

единиц и нулей, то есть биты, которые могут быть переданы через

среду связи (например, телефонную линию). В самом деле, универ-

сальный асинхронный приемопередатчик (UART), как мы увидим в сле-

дующем разделе, выполняет точно такую же функцию. Обычно, в то

время как линия находится в режиме ожидания, для демонстрации то-

го, что линия в порядке, по ней передается единица, обозначая не-

занятость линии. С другой стороны, когда линия находится в состо-

янии логического нуля, говорится, что она стоит в режиме

выдерживания интервалов. Таким образом, логические единица и ноль

рассматриваются, соответственно, как MARK и SPACE.

┌ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ┐

Восстанавливается один байт

│ └ 7 6 5 4 3 2 2 1 ┘└──┐

┌───Принимается один символ────┐└─┘└─┘└─┘└─┘└─┘└─┘└─┘└─┘ ┌─┐|

│ |A||B||7||6||5||4||3||1||0||C| ^ ^ ^ ^ ^ ^ ^ ^ ||

--> └─┘└─┘└─┘└─┘└─┘└─┘└─┘└─┘└─┘└─┘ ┌─────┬─────────┬─────┐ |─┘└┐

┌──────────────────────────────────| D | | | | |

|│ от модема └─────┴─────────┴─────┘ |───|

| UART на приемном конце скорость в бодах | |

|└ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─| |

| |───|

| ┌───────┐ | |

└──| |──┐ |───|

└───────┘ │ Принимающий

│ Телефонная линия компьютер

┌┼┐___________________________┌─┐

└─┘ <-- └┼┘

│ ┌───────┐

└───────| модем |───|

┌────────┐ └───────┘ |

│ │ |

│ PC │ |

┌──┴────────┴──┐ |

│ │ |

└┐┌────────────┘ v

|| ┌ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ──┐

|| │ ┌──────── Байт───────────┐

|| 7 6 5 4 3 2 2 1 |

|└──┘ └─┘└─┘└─┘└─┘└─┘└─┘└─┘└─┘┌───Посылаемый один символ──┐

└───┐ |A||B||7||6||5||4||3||1||0||C|

┌─────┬─────────┬─────┐ └─┘└─┘└─┘└─┘└─┘└─┘└─┘└─┘└─┘└─┘

| | | | D |──────────────────────────────┘

└─────┴─────────┴─────┘ к модему --> |

| скорость в бодах UART в последовательном адаптере PC

└ ─ ─ ─ ─ ─ ─ ─ ─ ─── ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ┘

A-стоп; B-четность; C-начало; D-сдвиговый регистр

Рис.1-1. Асинхронная последовательная связь.

В асинхронной связи изменение условия состояния линии с MARK

на SPACE означает начало символа (смотри рисунок 1-2). Это назы-

вается стартовым битом. За стартовым битом следует комбинация би-

тов, представляющая символ, и затем бит контроля четности. Нако-

нец, линия переходит в состояние ожидания MARK, которая

представляет собой стоповый бит и означает конец текущего симво-

ла. Число битов, используемых для представления символа, называ-

ется длиной слова и обычно бывает равно семи или восьми. Конт-

рольный бит используется для выполнения элементарной проверки на

наличие ошибки.

<─────────── Направление передачи

Линия Линия возвращается в

свободна свободное состояние

A

B ────┐ ┌ ─ ┬ ─ ┬ ─ ┬ ─ ┬ ─ ┬ ─ ┬ ─ ┬ ─ ┬ ─ ┬───┬───────┐ ┌ ─ ─

│ │ 0 1 2 3 4 5 6 7 │ │

C ─ ─ └──┘ ─ ┴ ─ ┴ ─ ┴ ─ ┴ ─ ┴ ─ ┴ ─ ┴ ─ ┴ ─ ┴ ─ ┴ ─ ─ ─ └──┘ ─ ─

^ └──────── 7 или 8 бит данных ───┘ ^ ^ ^

Стартовый бит четности│ Начало другого

бит │ символа

бит стоповый

Время ----->

A-длительность 1 бита; B-MARK или 1; C-SPACE или 0

Рис.1-2. Представление в асинхронной последовательной

связи формата одиночного символа

И передатчик, и приемник должны знать длительность или детек-

тирование битов будет невозможно. Длительность каждого бита опре-

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

Отметим, однако, что генераторы в приемнике и передатчике должны

иметь одну и ту же частоту, но не требуется, чтобы они были синх-

ронизированы. Выбор частоты генератора зависит от скорости пере-

дачи в бодах, которая означает число изменений состояния линии

каждую секунду. Номинально тактовая частота " 16-кратная скорость

передачи в бодах" означает, что линия проверяется достаточно

часто для надежного распознавания стартового бита.

Существует одно обычное состояние линии, которое иногда ис-

пользуется для привлечения внимания приемника. Нормальным состоя-

нием линии является MARK (или 1) и начало символа определяется

переходом SPACE (0). Если линия находится в состоянии SPACE в те-

чение периода времени большем, чем время, которое она затратила

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

пило состояние BREAK. В кодах ASCII отсутствует представление

BREAK - это означает, что линия "умерла" на непродолжительный

промежуток времени, который составляет BREAK.

Контроль по четности и обнаружение ошибок

Бит контроля четности полезен для обнаружения ошибок. Например,

если выбрана проверка на четность, этот бит устанавливается таким

образом, что общее число единиц в текущем слове является четным

(такая же логика используется для проверки на нечетность).

В приемнике четность вычисляется заново и сравнивается с битом

контроля четности. Если они не равны, то приемник сообщает, что

имеет место ошибка четности.

Связь с использованием стандарта RS-232C.

Несмотря на то, что в персональном компьютере мы пред-

ставляем единицы и нули посредством уровней напряжения, сигналы,

передаваемые по телефонной линии обычно являются тонами различной

частоты. Устройство, которое находится между аппаратурой персо-

нального компьютера и передающей линией и делает возможной пере-

дачу данных, называется модемом (модулятор/демодулятор). Модем

может преобразовывать информацию в представление "напряжение/нет

напряжения" цифровых схем и обратно, а так же аналоговые сигналы

(например, тоны), предназначенные для передачи по телефонной ли-

нии. Стандарты, такие как RS-232C (выдвинутый Ассоциацией элект-

ронной промышленности, EIA), описывают метод обмена информацией

между модемом (или, в соответствии с терминологией ассоциации

EIA, "аппаратура передачи данных, DCE") и связной аппаратурой

персонального компьютера (или "оконечная аппаратура обработки

данных, DTE"). Модем может работать в двух режимах: полудуплекс-

ном и дуплексном. В полудуплексном режиме модем может осущест-

влять передачу только в одном направлении в один промежуток вре-

мени, в то время как при работе в дуплексном режиме

осуществляется независимая двухсторонняя связь. Стандарт RS-232C

обеспечивает управление такими сигналами, как "запрос-на-передачу

(RTS)" и "открыт-для -передачи (CTS)", которые могут быть исполь-

зованы для координации процесса передачи и приема данных. Термин

"квитирование установления связи" используется для описания коор-

динации приема и передачи сигналов. Как показано на рисунке 1-3,

стандарт RS-232C соответствует кабелю и соединителям, используе-

мым для связи персонального компьютера и модема.

┌ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ┐

ОАОД ┌───── Номер контакта ──────┐ DCE

| ┌─────┐ ┌─────┐ |

| 2|─────────────ПД───────────| 2 |

| | 3|──────────────П───────────| 3 | |

| 4|─────────────ЗП───────────| 4 |

| | 5|────────────ОДП───────────| 5 | |

| 6|────────────ГПД───────────| 6 | к

| | ┌──7|───────────Общий──────────| 7──┐| телефонной

| 8|───────────ДСПЛ───────────| 8 | линии

| | 20|────────────ТДГ───────────|20 | | ^

| 22|─────────────RI───────────|22 | |

| | .| | . | |────┐ |

| .| | . | | |

┌─| | .| | . | | | |

RS ---> | └─────┘ └─────┘ | |

| └ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ┘ | |

┌───┴────┐ | |

│ │ |--| |

│ │ | ---|

┌──┴────────┴──┐ ┌─┴───┴─┐

│ │ | |

└──────────────┘ └───────┘

PC или ОАОД Модем ил

ОАОД-оконечная аппаратура обработки данных;RS-кабельRS-232C;

ПД - передача данных; П-прием данных;ЗП -запрос на передачу;

ОДП - открыт для передачи; ГПД - готов к передаче данных;

ДСПЛ - детектор сигнала приемной линии; ТДГ -терминал данных

готов; АПД - или аппаратура передачи данных; 7- сигнальное

заземление или общий обратный провод; RI - индикатор вызова

(звонок);

Рис.1-3. Связь RS-232C.

Управление потоком с помощью XON/XOFF

В дополнение к квитированию установления связи посредством

аппаратных сигналов RTS/CTS, для достижения управления потоком с

использованием программного обеспечения применяются специальные

управляющие символы ASCII (Control-Q/Control-S или XON/ XOFF).

Управлять потоком необходимо ввиду того, что иногда либо передат-

чик либо приемник не могут поддерживать скорость передачи и они

должны иметь возможность информировать другую сторону о необходи-

мости остановки на время, требуемое для того, чтобы отставшая

сторона смогла догнать другую.

Предположим, что приемник имеет буфер для хранения поступаю-

щих символов. Как только буфер после заполнения закрывается, при-

емник может послать символ XOFF передатчику, сигнализируя, что

передача должна быть приостановлена. Конечно, приемник должен по-

нять значение XOFF и прекратить передачу символов. Затем, когда

приемник обработает символы (скажем, запишет их в файл на диске)

и буфер освободится, тогда посылается символ XON, показывающий,

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

широко применяется ввиду ее простоты. Большинство связных прог-

рамм предоставляют возможность дуплексной связи с управлением по-

током, основанном на применении символов XON/XOFF.

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

Аппаратура последовательного порта в системах MS-DOS известна

как последовательный адаптер или асинхронный связной адаптер (да-

лее мы будем называть его последовательным адаптером). Адаптер

основан на Intel 8259 UART (универсальный асинхронный приемопере-

датчик), имеет порт RS-232C для подключения к модему и, как адап-

тер дисплея, программируется посредством набора регистров. Мик-

ропроцессор имеет доступ к регистрам через ранее определенные

адреса порта ввода/вывода.

Универсальный асинхронный приемопередатчик Intel 8250 управ-

ляется посредством записи в набор восьмибитовых регистров и чте-

ния из них. Эти регистры доступны программисту через адреса пор-

та. Адреса портов задаются последовательно, поэтому достаточно

знать адрес первого порта. Он также известен как базовый адрес

последовательного адаптера. В персональном компьютере IBM PC двум

последовательным портам COM1 и COM2 присвоены базовые адреса пор-

та 3F8h и 2F8h соответственно. Так, для последовательного адапте-

ра COM1 первый регистр имеет адрес 3F8h, следующий 3F9h и так да-

лее.

В 8250 имеется семь физических регистров и они описываются в

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

Как показано на рисунке 1-4, базовый адрес порта имеет один ре-

гистр, который делится на два, как приемный буферный регистр и

регистр хранения передачи (THR), который используется для хране-

ния одного передаваемого или принимаемого символа. Затем следует

регистр разрешения прерываний, который используется для разреше-

ния или блокировки генерации прерываний последовательным адапте-

ром. Третий регистр, называемый регистром идентификации прерыва-

ний, содержит сообщение универсального асинхронного

приемопередатчика об идентичности прерывания. Затем следует ре-

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

связных параметров, таких как длина слова, количество стоповых

битов, четность и скорость передачи в бодах. Пятый регистр - это

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

дему сигналов, таких как DTR (терминал готов) и RTS (запрос на

передачу). Наконец, два последних регистра, регистр состояния ли-

нии и регистр состояния модема, показывают соответственно состоя-

ние линии и модема.

Первые два регистра применяются также для установки скорости

передачи в бодах. Скорость передачи в бодах определяется как

16-битовый делитель тактовой частоты, используемой для последова-

тельного адаптера (1.8432 МГц в большинстве систем MS -DOS). Зна-

чение делителя вычисляется по формуле

1,843,200

делитель= ------------------------------

16 Х скорость передачи в бодах

Чтобы установить скорость передачи в бодах, Вы должны проде-

лать следующее:

1. Установить в 1 наиболее значимый бит регистра управления

линией (он называется битом защелки доступа делителя или

DLAB).

2.Загрузить младший и старший байты делителя соответственно в

приемный буфер и регистр разрешения прерываний.

3. Установить DLAB в 0 для обеспечения нормальной работы уни-

версального асинхронного приемопередатчика.