Порты передачи данных
Порт RS232
Протокол последовательного асинхронного обмена RS5232/ССIТТ V24 широко применяется для подключения к компьютеру алфавитно-цифровых терминалов, низкоскоростных печатающих устройств, позиционных устройств ввода (мышей, планшетов), низкоскоростного телекоммуникационного оборудования и т.д., а иногда и для соединения компьютеров между собой, например, если более скоростное сетевое оборудование отсутствует или не может быть использовано.
Такие порты используются для передачи данных за пределы корпуса компьютера, поэтому кроме линии передачи данных предусмотрен также провод, передающий опорное нулевое напряжение, Вместо TTL-совместимых напряжений, RS232 использует в качестве 1 напряжения в диапазоне от -25 до -3 В, а в качестве 0 – соответственно, в диапазоне от +3 до +25 В (рис. 9.9).
RS232 предполагает двусторонний обмен данными. Для этой цели предусмотрено две линии данных – для приема и для передачи, обозначаемые ТХ и RX-В соответствии со стандартом, устройства делятся на два типа: "компьютеры и "терминалы". Различие между ними состоит в том, что "компьютер" передает данные по линии ТХ, а получает по линии RX, а "терминал" – наоборот. Для соединения двух "компьютеров" необходим специальный, так называемый нуль-модемный кабель, в котором провода ТХ и RX перекрещены. Любопытно, что стандартные порты IBM PC являются "терминалами", а не "компьютерами".
Рис. 9.9. Диаграмма напряжений RS232
Обмен данными осуществляется кадрами, состоящими из стартового бита, семи или восьми битов данных (младший бит передается первым), возможно – контрольного бита четности (см. разд. "Контрольные суммы"), и одного или двух стоповых битов. Игнорируя ошибки четности или вообще не проверяя четность, можно использовать этот бит для передачи данных, и получить, таким образом, девять битов данных в одном кадре.
Минимальная скорость передачи составляет 300 бит/с, последующие допустимые скорости получаются удвоением предыдущей– 600 бит/с, 1200, 2400 и т.д. Современные реализации RS232 поддерживают скорости 115 200 бит/с и более. Скорость и вариации формата кадра определяются настройками приемника и передатчика. Необходимо, чтобы у соединенных портом устройств эти настройки совпадали, однако протокол сам по себе не предоставляет средств для их согласования.
Кроме линий приема, передачи, нуля и питания спецификация RS232 предусматривает ряд дополнительных сигналов, в просторечии называемых модемными линиями– признак несущей, разрешение передачи данных (очисткой этого сигнала приемник может сигнализировать передатчику, что он не успевает обрабатывать поступающие данные) и др. Эти сигналы не должны обязательно поддерживаться всеми устройствами и используются, главным образом, акустическими модемами, откуда и происходит название. Полная спецификация при использовании 25-контактного разъема предусматривает также возможность синхронной передачи данных с отдельными стробирующими сигналами, но основная масса реализаций RS232 этого не поддерживает.
Протокол RS232 весьма прост и легко может быть реализован программными средствами с использованием двух бит порта ввода-вывода (пример 9.1) – впрочем, в этом случае потребуется еще внешняя микросхема приемопередатчика, преобразующая TTL-совместимые напряжения в диапазон напряжений RS232. Однако использующие этот протокол, применяются очень широко, и многие модели микроконтроллеров и практически все комплекты вспомогательных микросхем для микропроцессоров предлагают аппаратные реализации этого стандарта.