- •Утверждено редакционно-издательским советом Тюменского государственного нефтегазового университета
- •Введение
- •Микропроцессоры
- •Микропроцессор и его основные технические характеристики
- •1.2. Состав микропроцессорного комплекта кр580
- •Микропроцессор intel 8080 (kp580bm80a)
- •Понятие машинного такта, цикла команды и машинного такта
- •1.3.2. Извлечение микропроцессором кода команды (данных) из памяти
- •Основные состояния микропроцессора
- •Система команд микропроцессора
- •Достоинства и недостатки микропроцессора
- •Intel 8080
- •Некоторые практические примеры
- •Двунаправленный шинный формирователь и буферный регистр
- •Двунаправленный шинный формирователь кр580ва86(87)
- •Буферный регистр кр580ир82(83)
- •Сходства и различия буферного регистра и
- •Программируемый параллельный интерфейс кр580вв55
- •Выбор порта или регистра управляющего слова
- •Направление передачи данных в ppi
- •Режимы работы программируемого параллельного интерфейса
- •Программирование ppi
- •Программируемый контроллер прерываний кр580вн59
- •Режимы работы контроллера прерываний
- •Характеристика управляющих слов для настройки контроллера прерываний
- •Особенности обслуживания при каскадировании контроллера прерываний
- •Характеристика и формат управляющих слов
- •Анализ приоритетов обслуживания при введении аппаратной избыточности
- •Программируемый таймер кр580ви53
- •Программирование таймера
- •6.1.1. Считывание показаний счетчика
- •Характеристика режимов работы таймера
- •5.Четвертый режим.
Характеристика управляющих слов для настройки контроллера прерываний
Существует две группы управляющих слов для настройки программируемого контроллера прерываний:
Управляющие слова для инициализации (ICW1, ICW2, ICW3). Они позволяют настроить контроллер прерываний (указывают на наличие каскадирования, содержат начальные адреса переходов, определяют характер подключения контроллеров при каскадировании). После загрузки этих слов контроллер прерываний переходит в состояние обслуживания запросов. ICW3 – необходимо при наличии каскадирования.
Операционные управляющие слова (ОCW1, ОCW2, ОCW3). Они позволяют изменить режим работы контроллера прерываний, выбрать или изменить алгоритм обслуживания запросов. Эти слова загружаются в любой момент после слов инициализации (могут вообще не загружаться).
Алгоритм программирования PIC представлен на рис. 17.
Рис. 17
Для программиста (пользователя) контроллер прерываний схематично представляет собой два входных/выходных порта (две ячейки памяти, отличающихся адресами по линии А0):
При А0=0 по команде OUT загружается ICW1;
При А0=1 по команде OUT загружается ICW2.
При наличия каскадирования: А0=1; по команде OUT загружается ICW3.
Такая процедура осуществляется для ведущего и ведомого контроллеров последовательно. Затем контроллер переходит в режим обслуживания.
Особенности обслуживания при каскадировании контроллера прерываний
Поскольку есть ведущий и ведомый контроллеры, то появляется разграничение функций обслуживания прерываний между контроллерами.
По первому сигналу, разрешающему прерывание (INTА) на своем входе, ведущий контроллер выдает на шину данных первый байт команды CALL (код команды). Кроме этого, на своих выходах GAS0 ÷ GAS2 ведущий контроллер формирует код выбираемого ведомого. С приходом двух последующих сигналов INTА от системного контроллера ведомый контроллер прерываний выставляет на шину данных последовательно два байта адреса первой команды подпрограммы обслуживания прерываний.
В каскадируемых системах по окончанию обслуживания прерывания необходимо корректно завершить выход из процедуры обслуживания прерываний. Это осуществляется путем загрузки по команде OUT из микропроцессора соответствующих операционных управляющих слов в ведущий и ведомый контроллеры.
Схема каскадирования контроллеров представлена на рис. 18.
Рис. 18
Данная схема позволяет обслужить 22 запроса от внешних устройств. Максимальное же число запросов для каскада из ведущего и 8 ведомых контроллеров = 64.
Характеристика и формат управляющих слов
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 контроллер прерываний выполняет следующие действия:
Очищает регистр маскирования приоритетов;
Присваивает запросу на входе IR7 низший приоритет;
Подготавливается к работе регистр запросов;
При наличии каскадирования загрузка слов осуществляется последовательно: сначала в ведущий контроллер, затем в ведомый.
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.