Адреса и прерывания последовательных портов
Конфигурация
Последовательный интерфейс связывает два устройства. Для того чтобы «собеседники» при обмене данными не перебивали друг друга, они должны иметь единый протокол приема-передачи, которым определяется последовательность обмена данными.
Скорость передачи данных
Номинальная скорость передачи – это скорость передачи данных, определяемая количеством элементов двоичной информации, передаваемых за 1 секунду.
Эффективная (реальная) скорость – скорость передачи с учетом необходимости передачи служебной информации (что уменьшает эффективную скорость по сравнению с номинальной) и сжатия данных (что увеличивает эффективную скорость).
Скорость передачи измеряется в бодах. Иногда вместо бод употребляют обозначение bps (bit per second) или бит/с.
Следует обратить внимание на то, что при передаче данных, например между двумя модемами, один из которых является высокоскоростным модемом со скоростью 19200 бод, а другой в состоянии обеспечить обмен данными лишь со скоростью 2400 бод, компьютеры все равно будут общаться со скоростью 2400 бод.
Стартовый бит, стоп-бит, биты данных
Данные при последовательной передаче разделяются между собой служебными посылками, такими как стартовый бит (Start bit) и стоп бит (Stop bit). Эти биты указывают на начало и конец передачи последовательности битов данных (Data bits). Данный метод передачи позволяет осуществить синхронизацию между приемной и передающей сторонами, а также выровнять скорость обмена данными.
Бит контроля четности
Для идентификации и распознавания ошибок при последовательной передаче в состав байта данных дополнительно включают бит контроля четности (Parity bit). Существует несколько различных вариантов использования бита контроля четности:
бит контроля четности не посылается (No Parity),
бит контроля четности четный (Even Parity);
бит контроля четности нечетный (Odd Parity).
Значение бита контроля четности определяется бинарной суммой всех передаваемых битов данных.
Для установления связи между двумя последовательными интерфейсами предварительно необходимо сконфигурировать их соответствующим образом, т.е. указать, каким образом будет осуществляться обмен данными: скорость обмена, формат данных, контроль четности и т. п.
Обычно на практике параметры указывают только в краткой формулировке. Например, запись 8Е1 обозначает протокол обмена данными с числом бит 8, битов контроля четности четный и один стоп-бит. Запись 7N2 указывает на 7 бит данных, без контроля четности и два стоп-бита.
Общие сведения об интерфейсе RS–232C
Интерфейс RS–232C является наиболее широко распространенной стандартной последовательной связью между микрокомпьютерами и периферийными устройствами. Интерфейс, определенный стандартом Ассоциации электронной промышленности (EIA), подразумевает наличие оборудования двух видов: терминального DTE и связного DCE.
Сигналы интерфейса RS–232C подразделяются на следующие классы:
Последовательные данные RXD - принимаемые данные (входные последовательные данные);TXD - передаваемые данные (выходные последовательные данные)). Интерфейс RS–232C обеспечивает два независимых последовательных канала данных: первичный (главный) и вторичный (вспомогательный). Оба канала могут работать в дуплексном режиме, т.е. одновременно осуществляют передачу и прием информации.
Управляющие сигналы квитирования (CTS - сброс передачи. На этой линии периферийное устройство формирует сигнал низкого уровня, когда оно готово воспринимать информацию от процессора; RTS - запрос передачи. На эту линию микропроцессорная система выдает сигнал низкого уровня, когда она намерена передавать данные в периферийное устройство). Сигналы квитирования – средство, с помощью которого обмен сигналами позволяет DTE начать диалог с DCE до фактической передачи или приема данных по последовательной линии связи.
Сигналы синхронизации (TC, RC). В синхронном режиме (в отличие от более распространенного асинхронного) между устройствами необходимо передавать сигналы синхронизации, которые упрощают синхронизм принимаемого сигнала в целях его декодирования.
На практике вспомогательный канал RS–232C применяется редко, и в асинхронном режиме вместо 25 линий используется 9 линий.
Виды сигналов
В большинстве схем, содержащих интерфейс RS–232C, данные передаются асинхронно, т.е. в виде последовательности пакета данных. Каждый пакет содержит один символ кода ASCII, причем информация в пакете достаточна для его декодирования без отдельного сигнала синхронизации.
Символы кода ASCII представляются семью битами, например буква А имеет код 1000001. Чтобы передать букву А по интерфейсу RS–232C, необходимо ввести дополнительные биты, обозначающие начало и конец пакета. Кроме того, желательно добавить лишний бит для простого контроля ошибок по паритету (четности).
Наиболее широко распространен формат, включающий в себя один стартовый бит, один бит паритета и два стоповых бита. Начало пакета данных всегда отмечает низкий уровень стартового бита. После него следует 7 бит данных символа кода ASCII. Бит четности содержит 1 или 0 так, чтобы общее число единиц в 8–битной группе было нечетным. Последним передаются два стоповых бита, представленных высоким уровнем напряжения. Эквивалентный ТТЛ–сигнал при передаче буквы А показан на рис. 10.
Рис. 10. Представление кода буквы А сигнальными уровнями ТТЛ
Таким образом, полное асинхронно передаваемое слово состоит из 11 бит (фактически данные содержат только 7 бит) и записывается в виде 01000001011.
Используемые в интерфейсе RS–232C уровни сигналов отличаются от уровней сигналов, действующих в компьютере. Логический 0 (SPACE) представляется положительным напряжением в диапазоне от +3 до +25 В, логическая 1 (MARK) – отрицательным напряжением в диапазоне от –3 до –25 В. На рис. 11 показан сигнал в том виде, в каком он существует на линиях TXD и RXD интерфейса RS–232C.
Рис. 11. Вид кода буквы А на сигнальных линиях TXD и RXD