♦ Бит 3 — IE
(Interrupt Enable) — разрешение прерываний с помощью внешнего выхода OUT2
; в режиме диагностики поступает на вход MSR.7
:
• 0 — прерывания запрещены;
• 1 — прерывания разрешены.
♦ Бит 2 — OUT1C
(OUT1 Bit Control) — управление выходным сигналом 1 (не используется); в режиме диагностики поступает на вход MSR.6
.
♦ Бит 1 — RTSC
(Request To Send Control) — управление выходом RTS
; в режиме диагностики поступает на вход MSR.4
:
• 0 — активен (-V);
• 1 — пассивен (+V).
♦ Бит 0 — DTRC
(Data Terminal Ready Control) — управление выходом DTR
; в режиме диагностики поступает на вход MSR.5
:
• 0 — активен (-V);
• 1 — пассивен (+V).
LSR
— LSR
.
♦ Бит 7 — FIFOE
(FIFO Error Status) — ошибка принятых данных в режиме FIFO (буфер содержит хотя бы один символ, принятый с ошибкой формата, паритета или обрывом). В не FIFO-режиме всегда 0.
♦ Бит 6 — TEMPT
(Transmitter Empty Status) — регистр передатчика пуст (нет данных для передачи ни в сдвиговом регистре, ни в буферных регистрах THR
или FIFO).
♦ Бит 5 — THRE
(Transmitter Holding Register Empty) — регистр передатчика готов принять байт для передачи. В режиме FIFO указывает на отсутствие символов в FIFO-буфере передачи. Может являться источником прерывания.
♦ Бит 4 — BD
(Break Detected) — индикатор обрыва линии (вход приемника находится в состоянии 0 не менее чем время посылки символа).
♦ Бит 3 — FE
(Framing Error) — ошибка кадра (неверный стоп-бит).
♦ Бит 2 — РЕ
(Parity Error) — ошибка контрольного бита (паритета или фиксированного).
♦ Бит 1 — ОЕ
(Overrun Error) — переполнение (потеря символа). Если прием очередного символа начинается до того, как предыдущий выгружен из сдвигающего регистра в буферный регистр или в регистр FIFO, прежний символ в сдвигающем регистре теряется.
♦ Бит 0 — DR
(Receiver Data Ready) — принятые данные готовы (в DHR или FIFO- буфере). Сброс — чтением приемника.
Индикаторы ошибок — биты [4:1] — сбрасываются после чтения регистра LSR
. В режиме FIFO признаки ошибок хранятся в FIFO-буфере вместе с каждым символом. В регистре они устанавливаются (и вызывают прерывание) в тот момент, когда символ, принятый с ошибкой, находится на вершине FIFO (первый в очереди на считывание). В случае обрыва линии в FIFO заносится только один «обрывной» символ, и UART ждет восстановления и последующего старт-бита.
MSR
— MSR
:
♦ Бит 7 — DCD
(Data Carrier Detect) — состояние линии DCD
:
• 0 — активна (-V);
• 1 — пассивна (+V).
♦ Бит 6 — RI
(Ring Indicator) — состояние линии RI
:
• 0 — активна (-V);
• 1 — пассивна (+V).
♦ Бит 5 — DSR
(Data Set Ready) — состояние линии DSR
:
• 0 — активна (-V);
• 1 — пассивна (+V).
♦ Бит 4 — CTS
(Clear To Send) — состояние линии CTS
:
• 0 — активна (-V);
• 1 — пассивна (+V).
♦ Бит 3 — DDCD
(Delta Data Carrier Detect) — изменение состояния DCD
.
♦ Бит 2 — ТЕRI
(Trailing Edge Of Ring Indicator) — спад огибающей RI
(окончание звонка).
♦ Бит 1 — DDSR
(Delta Data Set Ready) — изменение состояния DSR
.
♦ Бит 0 — DCTS
(Delta Clear To Send) — изменение состояния CTS
.
Признаки изменения (биты [3:0]) сбрасываются по чтению регистра.
SCR
—
В LME
=1) внутри UART организуется внутренняя «заглушка»:
♦ выход передатчика переводится в состояние логической единицы;
♦ вход приемника отключается;
♦ выход сдвигающего регистра передатчика логически соединяется со входом приемника;
♦ входы DSR
, CIS
, RI
и DCD
отключаются от входных линий и внутренне управляются битами DTRC
, RISC
, OUT1C
, IE
;
♦ выходы управления модемом переводятся в пассивное состояние (логический ноль).
Переданные данные в последовательном виде немедленно принимаются, что позволяет проверять внутренний канал данных порта (включая сдвигающие регистры) и отработку прерываний, а также определять скорость работы UART.
2.6. Системная поддержка СОМ-портов
СОМ-порты поддерживаются сервисом BIOS Int 14h
, который обеспечивает следующие функции:
♦ DTR
и RTS
влияния не оказывает (после аппаратного сброса они пассивны);
♦ DTR
и RTS
, и после освобождения регистра THR в него помещается выводимый символ;
♦ DTR
(RTS
переходит в пассивное состояние), и ожидается готовность принятых данных;
♦ MSR
и LSR
).
Аппаратные прерывания не используются, ожидание готовности ввода и вывода ограничивается по тайм-ауту. Готовность можно быстро проверить опросом состояния.