Последовательный порт компьютера
Стандартный последовательный порт RS–232C имеет форму 25–контактного разъема типа D. На практике вспомогательный канал применяется редко, и в асинхронном режиме вместо 25 линий используются 9 линий:
Рисунок 5 – Порт RS–232C
Таблица 5
Назначение линий разъема СОМ-порта компьютера (9-ти контактный):
Номер контакта | Сигнал | Выполняемая функция |
1 | DCD | Обнаружение информационного сигнала |
2 | RxD | Принимаемые данные |
3 | TxD | Передаваемые данные |
4 | DTR | Готовность DTE к приему данных |
5 | SG | Возвратный тракт общего сигнала (земли) |
6 | DSR | Готовность DCE принимать данные от DTE |
7 | RTS | Запрос на передачу |
8 | CTS | Сброс передачи |
9 | RI | Индикатор звонка |
Соединение компьютера и периферийного устройства по протоколу RS232 выполняется либо с использованием нуль-модемного кабеля, либо при помощи трех линий:
Рисунок 6 – Соединение компьютера и периферийного устройства по протоколу RS232
Формат данных
Последовательный поток данных состоит из битов синхронизации и собственно битов данных. Формат последовательности состоит из четырех частей: стартовый бит, биты данных (5 – 8 бит), проверочный и стоповый биты; вся эта конструкция называется символом:
Рисунок 7 – Формат данных
Собственно данные могут содержать 5, 6, 7 или 8 бит. Они обрамляются стартовым битом, битом четности и одним или двумя стоповыми битами. Получив стартовый бит, приемник выбирает из линии биты данных через определенные интервалы времени. Очень важно, чтобы тактовые частоты приемника и передатчика были одинаковыми (допустимое расхождение — не более 10%). Скорость передачи по RS-232C может выбираться из ряда: 110, 150, 300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200 бит/с.
Все сигналы RS-232C передаются специально выбранными уровнями, обеспечивающими высокую помехоустойчивость связи. Уровни сигналов RS-232C на передающем и принимающем концах линии связи:
Рисунок 8 – Уровни сигналов RS-232C
Данные передаются в инверсном коде (логической единице соответствует низкий уровень, логическому нулю – высокий уровень.
Обмен по RS-232C осуществляется компьютером с помощью обращений по специально выделенным для этого портам COM1 (адреса 3F8...3FF, прерывание IRQ4), COM2 (адреса 2F8...2FF, прерывание IRQ3), COM3 (адреса 3E8...3EF, прерывание IRQ10), COM4 (адреса 2E8...2EF, прерывание IRQ11).
Когда данные не передаются (режим ожидания), на линии устанавливается уровень логической единицы. Начало режима передачи данных предваряется передачей уровня логического нуля длительностью в одну элементарную посылку (стартовый бит). Далее следуют биты данных, причем младший бит идет первым.
За битами данных следует проверочный бит, предназначенный для обнаружения ошибок, которые могут возникнуть при передаче. Проверка может вестись «по четности» (even), когда общее число единичных битов в принятых данных, включая сам бит четности, должно быть четным, и по нечетности (odd), когда общее число единичных битов в принятых данных, включая сам бит четности, должно быть нечетным. Если интерфейс настроен на проверку по четности, то бит паритета будет выставляться в единицу и наоборот. Кроме того, проверка может вообще отсутствовать;
Последней передается стоповая посылка, информирующая об окончании символа. Стоповый бит передается уровнем логической единицы. Длительность стоповой посылки 1, 1,5 или 2 бита.
Последовательный порт базируется либо на микросхеме UART (Universal Asynchronous Receiver\Transmitter), либо ACIA (Asynchronous Communication Interface Adapter). В настоящее время – UART 16550.
Скорость передачи информации в последовательном интерфейсе измеряется в бодах. Бод – это количество передаваемых битов за 1 секунду.