Аппаратные интерфейсы ПК — страница 11 из 52

DLL
регистр младшего байта делителя частоты.

DLM
регистр старшего байта делителя частоты. Делитель определяется по формуле D=115200/V, где V — скорость передачи, бит/с. Входная частота синхронизации 1,8432 МГц делится на заданный коэффициент, после чего получается 16-кратная частота передачи данных.

IER
регистр разрешения прерываний. Единичное значение бита разрешает прерывание от соответствующего источника.

Назначение бит регистра

IER
:

♦ биты [7:4]=0 — не используются;

♦ бит 3 —

Mod_IE
— по изменению состояния модема (любой из линий
CTS
,
DSR
,
RI
,
DCD
);

♦ бит 2 —

RxL_IЕ
— по обрыву/ошибке линии;

♦ бит 1 —

TxD_IE
— по завершении передачи;

♦ бит 0 —

RxD_IЕ
— по приему символа (в режиме FIFO — прерывание по тайм-ауту).

IIR
регистр идентификации прерываний и признака режима FIFO (только для чтения). Для упрощения программного анализа UART выстраивает внутренние запросы прерывания по четырехуровневой системе приоритетов. Порядок приоритетов (по убыванию): состояние линии, прием символа, освобождение регистра передатчика, состояние модема. При возникновении условий прерывания UART указывает на источник с высшим приоритетом до тех пор, пока он не будет сброшен соответствующей операцией. Только после этого будет выставлен запрос с указанием следующего источника. Ниже описано назначение бит регистра IIR.

♦ Биты [7:6] — признак режима FIFO:

 • 11 — режим FIFO 16550A;

 • 10 — режим FIFO 16550;

 • 00 — обычный.

♦ Биты [5:4] — не используются.

♦ Бит 3 — прерывание по тайм-ауту приема в режиме FIFO (в буфере есть символы для считывания).

♦ Биты [2:1] — причина прерывания с наивысшим приоритетом (в обычном, не FIFO-режиме):

 • 11 — ошибка/обрыв линии, сброс выполняется чтением регистра состояния линии;

 • 10 — принят символ, сброс выполняется чтением данных;

 • 01 — передан символ (регистр

THR
пуст), сброс выполняется записью данных;

 • 00 — изменение состояния модема; сброс выполняется чтением регистра состояния модема.

♦ Бит 0 — признак необслуженного запроса прерывания (1 — нет запроса, 0 — есть запрос).

В режиме FIFO причину прерывания идентифицируют биты [3:1].

♦ 011 — ошибка/обрыв линии. Сброс выполняется чтением регистра состояния линии.

♦ 010 — принят символ. Сброс выполняется чтением регистра данных приемника.

♦ 110 — индикатор тайм-аута (за 4-кратный интервал времени символа не передано и не принято ни одного символа, хотя в буфере имеется, по крайней мере, один). Сброс выполняется чтением регистра данных приемника.

♦ 001 — регистр

THR
пуст. Сброс выполняется записью данных.

♦ 000 — изменение состояния модема (

CIS
,
DSR
,
RI
или
DCD
). Сброс выполняется чтением регистра
MSR
.

FCR
регистр управления FIFO (только для записи). Ниже описано назначение бит регистра
FCR
:

♦ Биты [7:6] —

ITL
(Interrupt Trigger Level) — уровень заполнения FIFO-буфера, при котором вырабатывается прерывание:

 • 00 — 1 байт (по умолчанию);

 • 01 — 4 байта;

 • 10 — 8 байт;

 • 11–14 байт.

♦ Биты [5:4] зарезервированы.

♦ Бит 3 — разрешение операций DMA.

♦ Бит 2 —

RESETTF
(Reset Transmitter FIFO) — сброс счетчика FIFO-передатчика (записью единицы; сдвигающий регистр не сбрасывается).

♦ Бит 1 —

RESETRF
(Reset Receiver FIFO) — сброс счетчика FIFO-приемника (записью единицы; сдвигающий регистр не сбрасывается).

♦ Бит 0 —

TRFIFOE
(Transmit And Receive FIFO Enable) — разрешение (единицей) режима FIFO для передатчика и приемника. При смене режима FIFO-буферы автоматически очищаются.

LCR
регистр управления линией (настройки параметров канала). Ниже описано назначение бит регистра
LCR
.

♦ Бит 7 —

DLAB
(Divisor Latch Access Bit) — управление доступом к делителю частоты.

♦ Бит 6 —

BRCON
(Break Control) — формирование обрыва линии (посылка нулей) при
BRCON
=1.

♦ Бит 5 —

STICPAR
(Sticky Parity) — принудительное формирование бита паритета:

 • 0 — контрольный бит генерируется в соответствии с паритетом выводимого символа;

 • 1 — постоянное значение контрольного бита: при

EVENPAR
=1 — нулевое, при
EVENPAR
=0 — единичное.

♦ Бит 4 —

EVENPAR
(Even Parity Select) — выбор типа контроля: 0 — нечетность, 1 — четность.

♦ Бит 3 —

PAREN
(Parity Enable) — разрешение контрольного бита:

 • 1 — контрольный бит (паритет или постоянный) разрешен;

 • 0 — контрольный бит запрещен.

♦ Бит 2 —

STOPВ
(Stop Bits) — количество стоп-бит:

 • 0–1 стоп-бит;

 • 1–2 стоп-бита (для 5-битного кода стоп-бит будет иметь длину 1,5 бит).

♦ Биты [1:0] —

SERIALDB
(Serial Data Bits) — количество бит данных:

 • 00 — 5 бит;

 • 01 — 6 бит;

 • 10 — 7 бит;

 • 11 — 8 бит.

MCR
регистр управления модемом. Ниже описано назначение бит регистра
MCR
.

♦ Биты [7:5]=0 — зарезервированы.

♦ Бит 4 —

LME
(Loopback Mode Enable) — разрешение режима диагностики:

 • 0 — нормальный режим;

 • 1 — режим диагностики (см. ниже).

♦ Бит 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) — состояние линии