Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Булатов В.Н. Архитектура микропроцессороной системы, состав машинных команд и основы программирования микропроцессорной .pdf
Скачиваний:
97
Добавлен:
02.05.2014
Размер:
7.1 Mб
Скачать

RxRDY —сигнал готовности приемника; устанавливается в «1», когда слово, преобразованное из последовательного кода в параллельный, сбрасывается из сдвигающего регистра приемника в буфер приемника (рисунок 27). Это действие настолько простое, что временная диаграмма здесь не нужна.

Сбрасывается сигнал RxRDY (RxRDY=0) командой чтения (IN), то есть, как только забрали слово из буфера приемника, так готовность приемника сбрасывается. Дело в том, что RxRDY также подключается к контроллеру прерывания через схему управления прерыванием (рисунок 27) для вызова подпрограммы ввода, и этот вызов автоматически должен сниматься, как только слово из приемника заберут.

15.3 Описание регистров 8250 и программирование

Программирование последовательного порта производится посредством операций с семью его управляющими регистрами и счетчиком-делителем частоты. Каждый регистр выбирается комбинацией адресных бит А2-А0. Функции каждого регистра описаны ниже.

Примечание —DLAB (Divisor Latch Access Bit) —7-й бит регистра управления линией (адрес 011) —демультиплексирует направление программирования: или на приемопередатчик и регистр прерывания, или на делитель частоты.

А2А1А0

Операци

Назначение

 

я

 

0 0 0

Запись

Регистр передатчика – сюда засылается байт для

 

 

передачи, если DLAB=0

 

Чтение

Регистр приемника – отсюда извлекается

 

 

принятый байт, если DLAB=0

 

Запись,

Если DLAB=1, то сюда засылается младший байт

 

чтение

скорости обмена ,

0 0 1

Запись,

если DLAB=1, то сюда засылается старший байт

 

чтение

скорости обмена. Скорость задается значением

 

 

делителя, равным 11520/V, где V – скорость

 

 

бит/сек.

 

Запись

Регистр управления прерываниями (1=разрешить

 

 

прерывание) при DLAB=0. Формат слова приведен

 

 

ниже.

D7 D6 D5 D4 D3 D2 D1 D0

┌─┬─┬─┬─┬─┬─┬─┬─┐ │0 0 0 0

└─┴─┴─┴─┴─┴─┴─┴─┘ Разрешение прерываний

97

1 – прерывание по приему символа;

└── 1 – прерывание по завершению передачи

символа;

└──── 1 – прерывание по обрыву линии или

или ошибке в линии;

└────── 1 – прерывание по изменению состояния модема (CTS, DSR, RI и DCD);

 

 

 

 

 

 

 

 

 

А2 А1 А0

 

 

 

 

Операция

 

 

 

 

Назначение

 

 

 

 

 

 

 

 

 

 

 

 

 

0 1 1

 

 

 

Чтение/запис

 

 

Регистр управления линией

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ь

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Формат слова и назначение разрядов:

 

 

 

 

 

 

 

 

 

 

D7 D6 D5 D4 D3 D2 D1 D0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

┌─┬─┬─┬─┬─┬─┬─┬─┐

Длина данных

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

└─┴─┴─┴─┴─┴─┴─┴─┘

 

 

 

 

 

 

5 бит

 

 

 

6 бит 7 бит

8 бит

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

00

 

 

 

 

 

 

 

 

 

 

 

0

 

0

1

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Число

 

 

 

 

 

 

 

 

 

 

 

0

 

1

0

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

стоп-битов: 0 –1 бит ;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(в битах)

 

 

1 – 1.5 при 5 бит. данных и

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2.0 – при 6-8 бит. данных

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Тип четности

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Нет

Нечетная

Четная

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

х

0

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Постоянная четность: 0 – отмена постоянной четности,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1 – постоянный бит четности:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

если биты 3-4=01, то бит четности=1;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

если биты 3-4=11, то бит четности=0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1 —имитировать обрыв линии (посылка нулей)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Бит DLAB:

 

1 — порты 000 и 001 для загрузки скорости обмена;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0 — порты 000, 001 в обычном режиме;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

А2 А1 А0

 

 

Операция

 

 

 

 

 

 

 

 

 

 

 

 

Назначение

0 1 1

 

 

 

 

 

 

Чтение

 

 

 

 

 

 

 

Регистр идентификации прерывания. Содержит

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

причину прерывания

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

7

6

 

5

4

3

 

2

1

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

98

┌─┬─┬─┬─┬─┬─┬─┬─┐

 

 

 

 

│0 0 0 0 0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

└─┴─┴─┴─┴─┴─┼─┴─┘

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0 – было прерывание

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

Причина прерывания

 

 

 

 

 

 

 

 

1

 

 

Ошибка или обрыв линии;

 

 

 

 

 

 

сбрасывается чтением регистра

 

1

0

 

 

 

 

состояния линии (порт 101);

 

 

 

Принят символ; сбрасывается

 

0

1

 

 

 

 

 

 

чтением приемника (порт 000);

 

 

 

Передан символ; сбрасывается

 

 

 

 

 

 

 

 

записью символа в регистр

 

0

0

 

 

 

передатчика (порт 000);

 

 

 

 

Изменение состояния модема

 

 

 

 

 

 

 

 

 

(линий CTS, DSR, RI или DCD);

 

 

 

 

 

 

 

сбрасывается чтением регистра

 

 

 

 

 

 

 

 

состояния модема (порт 110);

 

 

 

 

 

 

А2 А1 А0

Операция

Назначение

 

 

1 0 0

 

 

 

 

 

Запись

Регистр управления модемом

7 6 5 4 3 2 1 0

┌─┬─┬─┬─┬─┬─┬─┬─┐ │0 0 0

└─┴─┴─┴─┴─┴─┴─┴─┘

│ │ │ │ └ 1 — установка DTR: DTR:=1;

│ │ │ └── 1 — установка RTS: RTS:= 1;

│ └ 1 — установка OUT1 (не используется);

1 — установка OUT2 (разрешить прерывания от

8050);

1 — диагностический режим (соединить выход со

входом).

А2 А1 А0

Операция

Назначение

1 0 1

Чтение

Регистр состояний линии. Биты 1-4 вызывают

прерывания по ошибке, если оно разрешено.

 

 

7 6 5 4 3 2 1 0

┌─┬─┬─┬─┬─┬─┬─┬─┐ │ 0 └─┴─┴─┴─┴─┴─┴─┴─┘

│ │ │ │ │ │ └ 1 — данные приняты; сбрасывается

99