Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Периферийные устройства ЭВМ_2009.doc
Скачиваний:
4
Добавлен:
01.04.2025
Размер:
2.43 Mб
Скачать

1.4.3. Описание регистров уапп 16550a

Регистр разрешения прерываний. Единичное значение бита соответствует разрешению прерывания, назначение битов приведено в табл. 9. Если работа с портом идет без использования прерываний, то их следует запретить путем записи 0 в этот регистр.

В табл. 10, 14 значком * отмечены биты, не используемые в i8250.

Таблица 9. Регистр разрешения прерываний

Бит

Значение

7,6,5,4

= 0, не используются

3

По изменении статуса модема (STS, DSR, RI, RLSD )

2

По ошибке приема данных

1

По завершении передачи

0

По приему символа ( в режиме FIFO - по тайм-ауту)

Регистр идентификации прерываний (табл. 10). Ввиду того, что контроллер обслуживается одним прерыванием, а возникать оно может в четырех различных ситуациях, в процедуре обработки прерывания необходимо выяснить, по какой причине произошло прерывание.

Таблица 10. Регистр идентификации прерываний

Бит

Значение

1

2

7,6*

Признак режима FIFO:

11 – FIFO 16550А, 10 – FIFO 16550, 00 – обычный

5, 4

Не используются

3*

Прерывание по тайм-ауту (не в режиме FIFO)

2,1

00 – прерывание от приемника; 01 – есть данные в приемнике

10 – буфер передатчика пуст; 11 – изменение статуса модема

0

1 – нет запроса прерывания, 0 – есть запрос

В режиме FIFO биты 3-0 имеют иной смысл:

Продолжение табл. 10

1

2

2,1,0*

011 – обрыв, ошибка/обрыв линии; сброс - чтение регистра состояния линии 

010 - принят символ; сброс - чтение регистра приемника

110 - индикатор тайм-аута (4-кратный интервал времени передачи символа). Генерируется, если в FIFO- буфере есть символы

001 - регистр передатчика пуст; сброс - запись в регистр передатчика 

000 - изменение состояния модема; сброс - чтение регистра состояния модема

Регистр управления FIFO (только для записи, только 16550+) представлен в табл.11. Для очистки буферов FIFO необходимо запретить и затем снова разрешить режим FIFO. Для задания основных параметров адаптера применяется регистр управления линией (табл. 12). Бит 7 регистра управления линией называется DLAB и предназначен для определения назначения регистров 0 и 1. Он устанавливается в единичное состояние только на время программирования делителя управления скоростью передачи.

Таблица 11. Регистр управления FIFO

Бит

Значение

7,6

Уровень заполнения FIFO-буфера, при котором генерируется прерывание (00 - 1 байт, 01 - 4 байта, 10 - 8 байт, 11 - 14 байт)

5,4

Резерв

3

Разрешение операций DMA

2

Сброс счетчика FIFO-передатчика

1

Сброс счетчика FIFO-приемника

Разрешение («1») режима FIFO для передатчика и приемника. При смене режима FIFO буфера очищаются!

Таблица 12. Регистр управления линией

Бит

Значение

7

DLAB. Управление доступом к регистрам адаптера интерфейса.

1 – режим программирования делителя, 0 – чтение/запись

6

Формирование «обрыва линии» (вывод нулей)

5

Принудительная четность (если 0, то бит паритета генерируется в соответствии с паритетом символа, «1» - всегда равен инверсному значению бита 4 этого регистра)

4

Тип паритета («1»-четность, «0»-нечетность) 

3

Разрешение бита контроля четности («1» – формируется, «0» – запрещен)

2

Длина стоп-бита («0»-1, «1»-1,5 при длине слов 5 бит и 2 при длине слова 6-8 бит)

1,0

Длина слова в битах

00 - 5; 01 - 6; 10 - 7; 11 - 8

Бит 4 управляет типом паритета, бит 3 задает разрешение контроля паритета. Бит 2 задает длину стоп-бита. Биты 1-0 определяют длину слова. Наиболее часто применяются слова длиной 7 и 8 бит.

Регистр управления модемом позволяет управлять модемом. Назначения битов приведены в табл. 13.

Таблица 13. Регистр управления модемом

Бит

Значение

7,6,5

=0 – резерв

4

«0» – нормальный режим, «1» – режим диагностики

3

OUT2 инверсный (разрешить прерывания от RS-232)

2

OUT1 инверсный (используется только в режиме диагностики)

1

RTSC – управление выходом RTS («1» – активен (-V), «0» – пассивен (+V))

0

DTRС – управление выходом DTR («1» – активен (-V), «0» – пассивен (+V))

В режиме диагностики выход передатчика переводится в состояние «1», вход приемника отключается, выход сдвигающего регистра передатчика логически соединяется с входом приемника; входы DSR, CTS, RI, DCD отключаются от входных линий и соединяются с DTRС, RTSC, OUT1, OUT2 соответственно, выходы управления модемом переводятся в пассивное состояние. Переданный в таком режиме байт должен немедленно приниматься, что позволяет проверять внутренние каналы данных порта и сдвиговые регистры.

Регистр состояния линии позволяет определить состояние приемопередатчика (табл.14).

Регистр состояния модема (табл. 15) позволяет определить состояние модема. Биты 3-0 вызывают прерывание «Изменение состояния модема». «1» в любом из этих битов свидетельствует о том, что состояние линии изменилось по сравнению с состоянием на момент последнего чтения этого регистра.

Таблица 14. Регистр состояния линии

Бит

Значение

7*

Ошибка принятых данных в режиме FIFO (буфер FIFO содержит хотя бы один символ, принятый с ошибкой)

6

Буфер передатчика пуст (символов нет ни в регистре передатчика, ни в сдвиговом регистре, ни в буфере FIFO)

5

Сдвиговый регистр передатчика пуст (буфер FIFO передатчика пуст). Может генерировать прерывание

4

BD - индикатор обрыва линии (на входе приемника «0» не менее чем время посылки одного символа)

3

FE - ошибка кадра (стоп-бит не найден) 

2

PE - ошибка контрольного бита

1

OE - ошибка переполнения. Означает потерю символа (имеет аналогичный смысл в режиме FIFO)

0

DR принятые данные готовы. Сбрасывается при чтении регистра приемника

Таблица 15. Регистр состояния модема

Бит

Значение

7

Состояние линии DSD

6

Состояние линии RI

5

Состояние линии DSR

4

Состояние линии CTS

3

Изменение DSD

2

Изменение RI

1

Изменение DSR

0

Изменение STS