Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Весь документ / МПС АиУ-конспект.doc
Скачиваний:
68
Добавлен:
17.02.2016
Размер:
5.61 Mб
Скачать
    1. Характеристика управляющих слов для настройки контроллера прерываний

Существует две группы управляющих слов для настройки программируемого контроллера прерываний:

  1. Управляющие слова для инициализации (ICW1, ICW2, ICW3). Они позволяют настроить контроллер прерываний (указывают на наличие каскадирования, содержат начальные адреса переходов, определяют характер подключения контроллеров при каскадировании). После загрузки этих слов контроллер прерываний переходит в состояние обслуживания запросов. ICW3 – необходимо при наличии каскадирования.

  2. Операционные управляющие слова (ОCW1, ОCW2, ОCW3). Они позволяют изменить режим работы контроллера прерываний, выбрать или изменить алгоритм обслуживания запросов. Эти слова загружаются в любой момент после слов инициализации (могут вообще не загружаться).

Алгоритм программирования PIC представлен на рис. 17.

Рис. 17

Для программиста (пользователя) контроллер прерываний схематично представляет собой два входных/выходных порта (две ячейки памяти, отличающихся адресами по линии А0):

  1. При А0=0 по команде OUT загружается ICW1;

  2. При А0=1 по команде OUT загружается ICW2.

При наличия каскадирования: А0=1; по команде OUT загружается ICW3.

Такая процедура осуществляется для ведущего и ведомого контроллеров последовательно. Затем контроллер переходит в режим обслуживания.

    1. Особенности обслуживания при каскадировании контроллера прерываний

Поскольку есть ведущий и ведомый контроллеры, то появляется разграничение функций обслуживания прерываний между контроллерами.

По первому сигналу, разрешающему прерывание (INTА) на своем входе, ведущий контроллер выдает на шину данных первый байт команды CALL (код команды). Кроме этого, на своих выходах GAS0 ÷ GAS2 ведущий контроллер формирует код выбираемого ведомого. С приходом двух последующих сигналов INTА от системного контроллера ведомый контроллер прерываний выставляет на шину данных последовательно два байта адреса первой команды подпрограммы обслуживания прерываний.

В каскадируемых системах по окончанию обслуживания прерывания необходимо корректно завершить выход из процедуры обслуживания прерываний. Это осуществляется путем загрузки по команде OUT из микропроцессора соответствующих операционных управляющих слов в ведущий и ведомый контроллеры.

Схема каскадирования контроллеров представлена на рис. 18.

Рис. 18

Данная схема позволяет обслужить 22 запроса от внешних устройств. Максимальное же число запросов для каскада из ведущего и 8 ведомых контроллеров = 64.

    1. Характеристика и формат управляющих слов

I. Управляющие слова инициализации.

1. ICW1 – программируется при А0 = 0.

А7÷А5 – разряды младшего байта адреса;

D4D3 – фиксированные;

Ф – программирует (определяет) формат младшего байта адреса;

Е – бит, определяющий наличие каскадирования (Е=0 – есть каскадирование; Е=1 – нет каскадирования);

D0 = 0 – фиксированный бит.

1 А7 А6 А5 В2 В1 В0 0 0

Ф: 0 А7 А6 В2 В1 В0 0 0 0

В2 В1 В0 – код устройства, выработавшего запрос на прерывание.

Если Ф=1, т.е. формат = 4 – это означает, что начальные адреса подпрограмм обслуживания смежных запросов отстоят друг от друга на 4 адреса. Если Ф=0, т.е. формат = 8 – начальные адреса подпрограмм отстоят друг от друга на 8 адресов.

При загрузке ICW1 контроллер прерываний выполняет следующие действия:

  1. Очищает регистр маскирования приоритетов;

  2. Присваивает запросу на входе IR7 низший приоритет;

  3. Подготавливается к работе регистр запросов;

При наличии каскадирования загрузка слов осуществляется последовательно: сначала в ведущий контроллер, затем в ведомый.

2. ICW2 – загружается при А0 = 1.

Содержит старший байт адреса команды CALL.

3.

а) ICW3 загружается при А0 = 1 и при наличии каскадирования.

Ui (0;1) определяет характер подключения выходов ведомых контроллеров к входу ведущего:

1 – выход ведомого соединен со входом Ui ведущего.

Ui

0 - запросы от внешних устройств.

б) ICW3 для ведомого контроллера: программируется три последних бита U0 U1 U2 – они указывают на его адрес в системе.

II Операционные управляющие слова.

1. ОCW1 – операционное управляющее слово первого типа. Данное слово загружается при А0 = 1 и его код предполагает признаки (биты), определяющие наличие запретов на входе (1 – блокировка; 0 – обслуживание).

- маска.

Например, М5=1 – это значит, что будет заблокирован вход IR5 контроллера.

2. ОCW2 – операционное управляющее слово второго типа (D4, D3 = 0). Данное слово загружается при А0 = 1 и имеет 5 модификаций, которые указывают вид конца обслуживания прерываний, а также вид установки дна приоритетного кольца:

а) ОCW2а – обычный конец прерываний.

0 0 1 0 0 - - -: код ОCW2а.

При загрузке ОCW2а устанавливается в «0» разряд регистра состояния, соответствующий последнему обслуженному запросу.

б) ОCW2б – специальный конец прерывания.

0 1 1 0 0 В2 В1В0 – задает номер разряда.

При загрузке ОCW2б в «0» устанавливается тот разряд регистра состояния, который указывается в коде В2 В1В0.

в) ОCW2в – операционное управляющее слово для установки приоритетов по последнему обслуженному запросу. При загрузке ОCW2в устанавливается в «0» соответствующий последнему обслуженному запросу разряд регистра состояния и этому же номеру запроса присваивается низший приоритет.

г) ОCW2г.

1 1 1 0 0 В2 В1 В0 – установка приоритетов по указанию с выполнением операций обычного конца прерываний. Дно приоритетного кольца присваивается тому входу, код которого указан в В2 В1 В0.

д) ОCW2д.

1 1 0 0 0 В2 В1 В0 – установка приоритетов по указанию без выполнения операций конца прерываний. Дно приоритетного кольца присваивается входу, код которого указан в В2 В1 В0.

3. ОCW3 – операционное управляющее слово третьего типа. Программируется при А0 = 0. D4 = 0, D3 = 1, D7 – не используется.

Данное слово имеет пять модификаций:

а) ОCW3а – устанавливает режим обслуживания по результату опроса.

При подаче RD это слово прекращает свое действие.

б) ОCW3б – чтение регистра запросов

- 0 0 0 1 0 1 1.

в) ОCW3в – чтение регистра состояния.

- 0 0 0 1 0 1 0.

г) ОCW3г – вход в маскирование.

- 1 1 0 1 0 0 0.

д) ОCW3д – выход из маскирования.

- 1 0 0 1 0 0 0.