1. Линии данных (TXD, RXD). Интерфейс RS-232C обеспечивает два независимых последовательных канала данных: первичный (главный) и вторичный (вспомогательный). Оба канала могут работать в дуплексном режиме.

2. Сигналы управления (квитирования) (RTS, CTS). Сигналы квитирования - это средство, с помощью которого обмен сигналами позволяет DTE начать диалог с DCE до фактических передачи или приема данных по последовательной линии связи.

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

4. Линии сигнальной защитной “земли”.

1.3. Соединения по интерфейсу RS-232

На практике дополнительный канал RS-232C применяется редко, и в асинхронном режиме из 25 линий обычно используются только 9. Их описание приведено в табл.1.2.

Таблица 1.2.

Сигналы интерфейса RS-232 (асинхронный режим)

Цепь

Контакт

25-контактного

разъёма

Контакт

9-контактного

разъема

I/O

Назначение

FG

1

-

-

Защитное заземление (экран)

-TxD

2

3

O

Данные, передаваемые компьютером в последовательном коде

-RxD

3

2

I

Данные, принимаемые компьютером в последовательном коде

RTS

4

7

O

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

CTS

5

8

I

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

DSR

6

6

I

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

SG

7

5

-

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

DCD

8

1

I

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

DTR

20

4

O

Готовность выходных данных.

Входы ТхD и RxD используются устройствами DTE и DCE по-разному. Устройство DTE использует линию TxD для передачи данных, а линию RxD для приема данных. И наоборот, устройство DCE использует линию TxD для приема, а линию RxD для передачи данных. Поэтому для соединения терминального устройства и устройства передачи данных их необходимо соединить напрямую на рис.1.3 (для DB-25).

НЕ нашли? Не то? Что вы ищете?

 

2 TxD 2

DTE 3 RxD 3 DCE

7 GND 7

Рис.1.3. Подключение DTE к DCE

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

TxD TxD

RxD RxD

RTS RTS

CTS CTS

DSR DSR

DCD DCD

DTR DTR

RI RI

SG SG

FG FG

Рис. 1.4.Схема 4-проводной линии связи для RS–232.

Существует несколько разновидностей кабелей интерфейса RS-232C: кабель, состоящий из четырех проводов (линий) для простых терминалов, девяти проводов для обычной асинхронной передачи данных, 15 проводов для синхронной связи и 25 проводов для любых применений. Если возникли какие-либо сомнения, лучше использовать кабель с 25 проводами.

Если понадобится соединить два персональных компьютера друг с другом, то необходимо произвести перекрестное соединение линий TxD и RxD, как показано на рис.1.5.

2 TxD TxD 2

DTE 3 RxD RxD 3 DCE

7 GND 7

Рис.1.5. Подключение DTE к DTE

Однако часто этого не достаточно, т. к. для устройств DTE и DCE функции, выполняемые линиями DSR, DTR, DCD, CTS и RTS, асимметричны.

Устройство DTE подает сигнал DTR и ожидает получения сигналов DSR и DCD. В свою очередь, DCE подает сигналы DSR, DCD и ожидает получения сигнала DTR. Таким образом, если вы соедините вместе два устройства DTE, то они не смогут “договориться” друг с другом и осуществить процесс подтверждения связи. Для решения этих проблем при соединении двух устройств типа DTE (DCE) используется специальный кабель, часто называемый нуль – модемом.

Нуль-модемный кабель (null modem cable) - кабель для связи двух компьютеров через их COM порты. Нуль-модемные кабели бывают двух видов. Полный кабель передаёт все сигналы асинхронного интерфейса. Упрощённый кабель имеет только три линии, которых достаточно для простейшей передачи (рис.1.5.).

Остальные сигналы в упрощенном кабеле скоммутированы как в петлевой заглушке. Петлевая заглушка для COM порта представляет собой ответный разъём, контакты которого соединены согласно одной из следующих схем:

 

TxD RxD RTS CTS DCD CTS DTR RI

DTR DSR DCD

Как видно, передающие сигналы соединены с принимающими. Сигнал RI задействовать в заглушке необязательно, т. к. в порту компьютера он не используется. Следует отметить, что в нуль-модемном соединении сигнал DCD, предназначенный для модемного соединения, лишь эмулирует наличие несущей, но сообщает как в реальном случае, об установленном соединении.

Если оба устройства, как это часто бывает, работают в конфигурации DTE, то для правильной работы необходим пустой модем (нуль-модем). Несколько вариантов пустого модема (рис.1.6., 1.7.).

DB-25

 

DB-25

 

DB-25

 

DB-25

 

20

рис.1.6. рис.1.7.

Т. к. COM порты PC всегда выполнены "вилкой" (male), то разъёмы нуль-модемного кабеля всегда представляют собой розетки (female-female). Этим нуль-модем отличается от обычного удлинительного кабеля и таким образом его можно распознать.

Вообще тип разъёма в кабеле принято записывать в виде F/M, что в данном случае означает розетка-вилка, причём первая буква относится к компьютеру, а вторая - к подсоединяемому периферийному устройству. Так что нуль-модем представляет собой F/F кабель.

1.4. Настройка асинхронного коммуникационного порта

Команда MODE может использоваться для инициализации асинхpонного коммуникационного поpта. Команда вводится в фоpмате:

MODE COMn: baud [, parity [, databits [, stopbits [, retry ] ] ] ]

или

MODE COMn baud=b [parity=p] [data=d] [stop=s] [retry=r]

где:

n - номеp поpта (1, 2, 3 или 2);

baud, b - скоpости манипуляции, Бод (110, 150, 300, 600, 1200, 2400, 4800, 9600 или 19200);

parity, p - одно из следующих значений:

N (none), O (odd), E (even), M (mark) или S (space);

databits, d - количество битов в слове (5, 6, 7 или 8);

stopbits, s - количество стоповых битов (1, 1.5 или 2);

retry, r - задает обработку занятости порта:

E (обработка как ошибки), B (обработка как занято), R (обработка как готов)

и NONE (блокирование повторения операции при занятости порта).

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

parity=even, databits=7, stopbits=1.

Если скорость передачи данных равна 110, то параметр stopbits по умолчанию равен 2.

Параметр p обеспечивает непрерывно повторяющуюся пересылку порции данных на порт при ответном сигнале "порт занят". Этот повторяющийся цикл можно оборвать только нажатием клавиш Ctrl-Break.

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

Вводимые параметры: скорость передачи данных - 1200, контроль по

чётности не производится (parity=even), databits=8 и

stopbit=1.

При введении команды параметры дублируются на экране:

C:\> mode com1:12,,8,,

COM1: 1200,e,8,1,-

1.5. Лабораторная работа № 1.

ИНТЕРФЕЙС RS-232

Цель работы:

- изучение интерфейса RS-232 на базе ПК типа IBM PC;

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

Порядок выполнения работы:

ВНИМАНИЕ! Любые операции, связанные с подключением или отключением соединительных кабелей от/к ПК осуществляйте на обесточенном оборудовании.

После выполнения подключения/отключения приборов и оборудования последующее включение ПК возможно только после контроля преподавателя.

Подготовка к работе:

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

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

- получить у инженера необходимое оборудование, приборы и комплектующие.

Тестирование последовательного интерфейса ПК:

- средствами операционной системы MSDOS запустите на исполнение программу тестирования ПК CHECKIT;

- проверьте наличие на Вашем ПК последовательного интерфейса (Serial port), для чего войдите в меню "Configuration"; перепишите значение шестнадцатиричного базового адреса интерфейса в отчет по лабораторной работе;

- протестируйте последовательный порт, для чего войдите в меню "Tests", выберите тестирование последовательных портов и установите номер тестируемого порта; на запрос программы о наличие внешней петли (loopback) ответьте "N"; оцените результаты тестирования и сделайте необходимые выводы;

- протестируйте последовательный порт с использованием внешней петли для канала данных, для чего выключите ПК, установите соответствующую заглушку, представьте результат на проверку преподавателю; после разрешения преподавателя включите ПК и выполните требуемое тестирование с использованием программы CHECKIT; оцените результаты тестирования и сделайте необходимые выводы;

- протестируйте последовательный порт с использованием внешней петли для канала данных и сигналов управления и состояния связного оборудования, для чего выключите ПК, установите соответствующую заглушку и представьте результат на проверку преподавателю; после разрешения преподавателя включите ПК и выполните требуемое тестирование с использованием программы CHECKIT; оцените результаты тестирования и сделайте необходимые выводы.

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

- соедините два рядом стоящих ПК через последовательный интерфейс, для чего выключите питание, соедините требуемые контакты интерфейсов по выбранной Вами схеме коммутации и предъявите результат для проверки;

- включите питание ПК и с помощью утилиты MODE установите одинаковые для двух ПК параметры обмена данными через последовательный канал COM1 или COM2 (в зависимости от комплектации ПК и по результатам тестирования и подключения); рекомендуемые параметры: разрядность слова данных - 8 бит, контроль по паритету - нечет, скорость передачи данных - 300 Бод;

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

- с помощью утилиты MODE установите максимальную скорость передачи данных и повторите копирование файла; оцените полученные результаты и сделайте необходимые выводы;

Связь ПК через последовательный канал средствами оболочки Norton Comander:

- с помощью операционной оболочки Norton Comander свяжите ПК через последовательный интерфейс, для чего войдите в меню правой или левой панели и выберите опцию Link; первый ПК установите в режим терминала Master, второй - в режим связного оборудования Slave; выберите соответствующий последовательный порт;

- проверьте выполнение операции поиска, копирования, удаления, переименования и т. д. файлов на удаленном ПК;

- повторите операции работы с файлами, установив первый ПК в режим Slave, а второй - в режим Master;

- отмените связь компьютеров, выключите ПК и разберите собранную схему; оцените полученные результаты и сделайте необходимые выводы.

Индивидуальные задания к работе № 1

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

Задание 1. Исследовать зависимость скорости передачи данных между ПК при их связи с помощью операционной оболочки NORTON COMMANDER от параметров канала, установленных с помощью команды MODE.

Задание 2. Исследование эффективной скорости передачи данных между ПК при различной длине информационной посылки.

Задание 3. Исследование эффективной скорости передачи данных между ПК при различном количестве стоповых бит.

Задание 4. Исследование эффективной скорости передачи данных между ПК при различной длине соединительного кабеля на максимальной скорости передачи.

Задание 5. Исследование эффективной скорости передачи данных между ПК при различном расположении проводников соединительного кабеля на максимальной скорости передачи.

Задание 6. Исследование возможности реализации ретранслятора (передача данных между двумя ПК через третий) средствами MSDOS.

Вопросы для подготовки к работе:

1.  Назначение и принцип действия последовательного интерфейса.

2.  Уровни сигналов RS-232.

3. Терминальное и связное оборудование.

4. Сигналы интерфейса RS-232.

5. Классы сигналов RS-232.

6. Виды кабелей RS-232.

7. Понятие нуль-модема и варианты его реализации.

8. Понятие петлевой заглушки.

9. Изменяемые параметры интерфейса.

2. Глобальные и локальные параметры связи

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

Глобальные параметры связи - те параметры, которые нужно согласованно выставлять на обеих сторонах. О них нужно договариваться заранее (телефоном, почтой). Делается это один раз.

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

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

2.1. Хост компьютер и его терминалы

Хост (host, буквально главный) компьютер, или просто хост-многопользова-тельский компьютер. Выполняет все задачи пользователя и предоставляет им свои ресурсы. Пользователи работают за подсоединёнными к хосту терминалами – рабочими местами, в основе которых лежат экран и клавиатура (устройства ввода/вывода). С терминала производится запуск задачи, а на экран выводятся результаты.

Схема хоста с терминалом является альтернативой локальной сети с серверами и рабочими станциями.

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

Ø  TTY переводится как пишущая машинка. Самый простой, цвет отсутствует, а управление движением курсора – минимально, т. е. позволяет выводить цвет построчно. При медленной линии этот тип оказывается наиболее приемлемым.

Ø  ANSY развитой терминал, позволяющий работать с цветом и свободно перемещать курсор. Применяется для работы с BBS. В качестве управляющих кодов используются так называемые Esc последовательности.

Ø  VTxxx терминалы серии VT (VT52, VT102 и т. д.) предназначены для работы с хост компьютерами фирмы Dec. Пир этом VT100 близок к ANSY и часто в списке выбора в терминальных программах их объединяют (ANSY/VT100).

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

Принципиально важным является то, что тип терминала является глобальным параметром. В случае работы с удалённым сервером следует настроится под тот же тип, что и сервера. Терминальная программа обычно поддерживает все распространённые типы.

2.2. Аппаратная реализация интерфейса RS-232

Аппаратная реализация интерфейса RS-232 включает в себя последовательный адаптер и собственно механический интерфейс (разъемное соединение).

Структурная схема типичного варианта адаптера последовательного порта RS-232 представлена на рис.2.1.

 

Рис.2..1. Структурная схема адаптера последовательного порта RS-232

Преобразование ТТЛ-уровней в уровни интерфейса RS-232 и наоборот производится передатчиками и приёмниками EIA, входящими в состав микросхем типа i1488 и i1489 или их аналогов.

Средства BIOS (такие как прерывание Int14h) поддерживают скорости только до 9600Бод включительно. Тактовая частота составляет 1,8432 МГц и стабилизирована благодаря использованию генератора. Из этой частоты формируются все необходимые частоты.

В основе контроллера последовательного порта передачи данных лежит микросхема INS8250 (i8250) или её современные аналоги – 16450, 16550, 16550А. Эта микросхема является асинхронным приёмопередатчиком UART (Universal Asinchronouse Receiver Transmitter). Микросхема 8250 содержит регистры передатчика и приёмника данных, а также ряд служебных регистров. Точная последовательность операций, выполняемых UART в каждой конкретной ситуации, контролируется внешними параметрами. В общих чертах работу UART в режимах приёма/передачи можно описать следующим образом.

При передаче символа UART должен выполнить следующие операции:

Ø  принять символ в параллельной форме через системную шину PC;

Ø  преобразовать символ в последовательность отдельных битов (параллельно-последовательное преобразование);

Ø  сформировать старт-стопный символ путём добавления к информационным разрядам стартового, стопового и, возможно, бита паритета (чётности или нечётности);

Ø  передать старт-стопный символ на интерфейс с требуемой скоростью;

Ø  сообщить о готовности к передаче следующего символа.

При приёме символа UART должен выполнить обратную последовательность действий:

Ø  принять данные в последовательной форме;

Ø  проверить правильность структуры старт-стопного символа. Если выявлена ошибка – выдать сигнал ошибки паритета;

Ø  осуществить проверку паритета; если выявлена ошибка – выдать сигнал ошибки паритета;

Ø  преобразовать старт-стопный символ в информационный и передать его в параллельной форме в PC;

Ø  сообщить, что символ принят.

Первые адаптеры последовательной связи были построены на микросхеме INS8250 фирмы National Semiconductor. Микросхемы такого типа стали “узким” местом коммуникационной аппаратуры. Чтобы исправить ситуацию были разработаны и выпущены микросхемы типа 16550 (PC16550C/ NS16550AF и ряд других их функциональных аналогов).

По умолчанию микросхема 16550 работает в режиме микросхемы 8250 и может быть установлена вместо микросхемы 8250. В совместимом режиме, она является полным функциональным аналогом UART 8250 и 16450 и в отличие от микросхем UART более ранних выпусков микросхема 16550 имеет второй режим работы, предусматривающий сокращение вмешательства ЦП в процедуру последовательной передачи данных. В этом режиме внутренние буферные регистры приёмника и передатчика расширяются от 1 до 16 байтов и управляются с использованием логики FIFO (First In – First Out – первым пришёл – первым вышел). Буфер FIFO приёмника используется также для хранения трех битов информации об ошибках для каждого символа. Ошибки паритета, форматирования и сигналы прерывания (BREAK-сигналы) буферизуются вместе с символом, к которому они относятся.

Микросхема 16550 выполняет следующие функции:

Ø  обеспечивает простой интерфейс между шиной РС и модемом или другими внешними устройствами;

Ø  автоматически добавляет, удаляет и проверяет форматирующие биты;

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

Ø  выделяет указатели состояния операций передачи и приёма, а также состояния линии передачи данных и устройства сопряжения;

Ø  содержит встроенные сдвиговые регистры и регистры хранения для операций передачи и приема данных, что исключает необходимость точной синхронизации работы процессора с потоком последовательных данных;

Ø  содержит программируемый генератор-контроллер скорости передачи, работающий с внешним опорным сигналом частотой до 24МГц;

Ø  содержит встроенные средства самотестирования;

Ø  может работать под управлением программного обеспечения, разработанного для микросхем 8250 и 16450;

2.3. Управление потоком данных

В процессе передачи нередка ситуация, когда принимающей стороне требуется временная передышка. Поэтому требуется как-то просигналить передающей стороне приостановить передачу, а потом просигналить о возобновлении. Примером является более высокая скорость в порту (DTE скорость), чем в линии (DCE скорость), для эффективности работы CPU. Однако возможности модема ограничены и ему надо сигналить связной программе о передышке пока он не выкачает очередную порцию в линию. Вот как это происходит более детально. Взаимодействуют обычно программы. Принимающая программа, всегда использует буфер.

 

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

Сигнал приостановки передается, если буфер в значительной степени заполнен, например на 80%. Пороговое значение должно быть обязательно меньше

100%, так как есть инерционность. Далее принимающая программа выкачивает данные из буфера. После того, как буфер почти освободился, скажем, на 10%, посылается сигнал возобновления передачи. Остаток буфера продолжает выкачиваться, одновременно с поступлением новых данных в него, что повышает эффективность обмена.

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

Обычно с управлением потоком данных сталкиваются между DTE (компьютер) и DCE (модем). При этом взаимодействует связной софт на компьютере и связной софт, "зашитый" в firmware модема. Основная причина - желание иметь различные скорости DTE и DCE для эффективного использования ресурсов CPU.

Между двумя модемами на линии тоже может быть управление потоком, но происходит это незаметно для пользователя и обеспечивается коммуникационными протоколами. В частности это происходит при команде перехода в командный режим. (ESC - последовательность +++).

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

практически не требуется в силе единой скорости в портах.

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

При разных DCE и DTE скоростях, как в типичном случае связи модемов по телефонной сети. Скорость DTE обычно бывает выше скорости DCE, т. е. в линии, о чем говорилось выше. Т. к. буфер модема ограничен, то необходимо приостанавливать поступление данных от DTE, пока буфер не выкачан в линию.

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

Принимающая сторона переключается на выполнение подзадачи в рамках коммуникационной задачи. Это может быть сохранение экрана в файл, просмотр буфера обратной прокрутки, запись на диск принятых данных (из буфера). Здесь управление осуществляет программа. В многопоточных ОС (Windows 95 например) такие задержки становятся необязательными.

Управление включается и в связной программе (в ее установках), и в модеме. Интересно отметить, что не всякий протокол коррекции ошибок связан с управлением потоком. Так в данной работе при передаче файлов через нуль-модем по протоколу ZMODEM не используется управление потоком, хотя коррекция ошибок присутствует. В Zmodem принимающая сторона просо просит передающую возобновить передачу с определенного блока и дожидается этого блока, не считывая текущие блоки с большими номерами, т. е. не останавливая передачу.

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6