Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
tsa (часть2).doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
3.72 Mб
Скачать

5.4.1. Интерфейс стандарта rs-232

В настоящее время наиболее распространенным является стандарт, разработанный Ассоциацией промышленных средств связи (TIA, Telecommunication Industry Association) и Ассоциацией электронной промышленности (EIA, Electronic Industries Alliance) «ЕIА/ТIА-232-Е», более известный под названием «RS-232» (RS – Recommended Standard). Стандарт RS-232 (его официальное название «Interface Between Data Terminal Equipment and Data Circuit-Termination Equipment Employing Serial Binary Data Interchange») предназначен для подключения аппаратуры, передающей или принимающей данные, к оконечной аппаратуре каналов данных. Стандарт описывает управляющие сигналы интерфейса, пересылку данных, электрический интерфейс и типы разъемов.

Стандарт RS-232, в общем случае, описывает четыре интерфейсные функции:

определение управляющих сигналов через интерфейс;

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

передачу тактовых сигналов для синхронизации потока данных;

формирование электрических характеристик интерфейса.

Согласно стандарту RS-232, сигнал (последовательность битов) передается напряжением. Передатчик и приемник являются несимметричными: сигнал передается относительно общего провода (в отличие от симметричной передачи протокола RS-485 или RS-422). В табл. 5.3 приведены границы напряжений для сигналов приемника и передатчика. Логическому нулю на входе приемника соответствует диапазон +3...+ 12 В, а логической единице – диапазон –12...–3 В. Диапазон –3...+3 В – юна нечувствительности, обеспечивающая гистерезис приемника (передатчика). Уровни сигнала на выходах должны быть в диапазоне –12...–5 В для представления логической единицы и +5...+12 В для представления логического нуля.

Таблица 5.3.

Границы напряжений СОМ-порта (стандарт RS-232)

Значение сигнала

Диапазон на- пряжения входа приемника

Диапазон напряжения выхода передатчика

Состояние управляющего сигнала

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

Логический 0

от -12 до -3 В

от -12 до -5 В

ON

MARX

Логическая 1

от +3 до +12 В

от +5 до +12 В

OFF

SPACE

Стандарт RS-232 состоит из трех частей. Первая часть, стандарт RS-232C, была принята в 1969 году и содержит описание электрических цепей и сигналов несимметричной последовательной связи. Вторая часть, стандарт RS-232D, принята в 1987 году и определяет дополнительные линии тестирования, а также формально описывает разъем DB-25. Третья часть, RS-232E, принята в 1991 году.

Рекомендация V.24 содержит описание линий и набора сигналов обмена между DTE и DCE. В RS-232 используются другие обозначения линий, однако линии интерфейса RS‑232 и рекомендации V.24 выполняют совершенно одинаковые функции. V.24 определяет большее количество линий, чем RS-232, поскольку стандарт V.24 используется и в других интерфейсах. В этом смысле RS-232 является подмножеством V.24. Рекомендация V.28 определяет только электрические характеристики интерфейса V.24, обеспечивающего работу по несимметричным двухполярным линиям обмена на скоростях до 20 Кбит/с. К таким характеристикам относятся уровни используемых сигналов, емкостное сопротивление и т.д. Данная рекомендация не содержит требований к длине кабеля, типу разъемов и расположению их контактов. Поэтому рекомендация V.28 может рассматриваться как подмножество стандарта RS-232.

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

Вследствие воздействия помех, активного и реактивного сопротивления соединительного кабеля между устройствами DTE и DCE существуют ограничения на его длину. Официальное ограничение по длине для соединительного кабеля по стандарту RS‑232 составляет порядка 15 м при скорости передачи около 20 Кбит/с. Однако на практике это расстояние может быть значительно больше и зависит от скорости передачи данных.

Протокол RS-232 имеет существенный недостаток – плохую помехозащищенность. Если для символьного протокола некоторой зашитой служит ограничение диапазона самих символов (например, в посылке числовых данных могут встречаться только символы «0...9», «.», «–» и, может быть, буквы), то для бинарного протокола необходимы дополнительные меры контроля данных.

Причины потери данных при передаче или приеме можно разделить на две категории: аппаратные и программные.

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

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

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

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

В таких случаях необходимо некоторое промежуточное хранилище полученных данных – буфер.

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

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

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

Аппаратная обратная связь заключается в выделении некоторой линии (например, DTR/DSR) для уведомления передатчика о возможностях приемника.

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

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

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

В системах с обратной связью применяются процедуры обнаружения ошибок и переспроса, также называемые «обнаружением ошибок с автоматическим запросом повторения» (ARQ, Automatic Repeat Request). В этом случае к данным добавляется контрольная информация, достаточная только для вычисления достоверности данных. Каждый принятый блок данных (кадр) должен быть подтвержден специальным кадром, посылаемым и обратном направлении. Такой кадр содержит уведомление о правильности данных или запрос на повторение кадра. Таким образом, достигается оптимальное сочетание: передаваемый код не содержит избыточных данных, а принимающая сторона может управлять коррекцией ошибок. При этом ARQ также может быть старт-стопного типа (SAW), с возвратом на N шагов (GBN) или селективного повторения (SR).

Для обнаружения ошибок в данных могут применяться несколько методов:

посимвольный контроль четности (реализуется аппаратно в RS-232 с помощью контроля четности);

поблочный контроль четности (например, в протоколах ARQ);

добавление избыточного контрольного кода (CRC):

увеличение вероятности корректного распознавания начала посылки;

естественные методы контроля данных.

Порт RS-232 реализует аппаратный контроль четности (или как его еще называют, контроль паритета). Пользователь может конфигурировать порт на проверку четного или нечетного паритета или отсутствия контроля четности.

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

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

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