Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
26,34,37,39,47.docx
Скачиваний:
7
Добавлен:
01.03.2025
Размер:
835 Кб
Скачать
☆

34.Программируемый контроллер прерываний к580вн59. Назначение, характеристики, структурная схема. Программируемый контроллер прерываний (пкп) кр580вн59.

БИС программируемого контроллера прерываний (ПКП) представляет собой устройство, реализующее до 8 уровней запросов на прерывание с возможностями программного маскирования и изменения дисциплины обслуживания прерываний.

Число уровней прерывания может быть расширено до 64 за счет каскадного включения нескольких БИС.

В системе с несколькими ПКП, для каждого из них после двух первых команд инициализации ICW1,2 вводится команда ICW3, задающая режим взаимодействия контроллеров.

Команда ICW1 сбрасывает регистры РЗП, РОЗП и присваивает низший приоритет входу IR7, а – IRO высший.

S - наличие одного или нескольких ПКП.

F (формат) – адресный интервал в 4 или 8 байт между начальными адресами программного обслуживания прерываний.

А7 – А5 – используются для формирования младшего байта адреса таблицы переходов на ПП .

Команда ICW2 представляет собой старший байт адреса таблицы переходов, выдаваемый ПКП на шину данных в качестве 3-го байта команды CALL.

(БД) – BD предназначен для сопряжения КПК с системной шиной;

(БУЗИ) – RWCU принимает управляющие сигналы от МП и задает режим функционирования ПКП;

(СУ) – CU вырабатывает сигнал прерывания (INT) и формирует трехбайтную команду для выдачи на шину данных;

(РЗП) - RGI используется для хранения всех запросов прерываний, которые поступают от ВУ;

(СПРП) – PRB выбирает запрос с наивысшим приоритетом;

(РОП) – ISR хранит запросы прерываний, находящихся на обслуживании ПКП;

(РМП) – RGM запрещает обслуживание одного или нескольких запросов прерываний.

Назначение входных, выходных и управляющих сигналов ПКП.

DØ – D7 – вход/выход данных;

RD – вход строба чтения;

WR – вход строба записи;

AØ – нулевой разряд шины адреса для загрузки команд и чтения состояния ПКП;

CS – вход выбора микросхемы;

CASØ – CAS2 – входы/выходы каскадирования;

SP – признак подчинения («1» - ведущий, «Ø» - ведомый);

INTA – подтверждение прерывания («1» указывает о выдаче кода команды CALL);

INT – «Ø» указывает о запросе на обслуживание прерывания;

IRØ – IR7 – входы запросов прерываний (положительный фронт).

Программная модель ПКП позволяет реализовать процесс обслуживания ВУ по прерываниям МП или по опросу микропроцессором готовности внешних устройств к обмену.

При обслуживании ВУ по прерываниям МП выполняется следующая последовательность операций:

1 – запросы на обслуживание поступают от ВУ на входы IRØ – IR7 ПКП и устанавливают соответствующие разряды регистра запросов прерываний;

2 – ПКП принимает запросы, оценивает их приоритеты и если обслуживание разрешено данного запроса – ЗПР, формирует сигнал прерывания INT;

3 – МП принимает сигнал INT, если прерывания разрешены (EI, DI) и подтверждает прием выдачей сигнала INTA;

4 – получив сигнал INTA ПКП устанавливает разряд регистра обслуживаемых прерываний соответствующий запросу с наивысшим приоритетом (сбрасывает соответствующий разряд РЗП), и выдает на шину данных код операции команды CALL; (СД)

5 – МП выдает еще два сигнала INTA, по которым ПКП передаст на шину данных 16-разрядный адрес, позволяющий перейти на программы обслуживания прерывания, причем младший байт адреса передается первым;

6 – управление передается выбранный ПП-ме, а после ее завершения возвращается прерванной программе.

При обслуживании ВУ с опросом готовности МП производит считывание кода номера запроса с высшим приоритетом командой IN. Прием запросов на регистры, маскирование и анализ выполняются так же, как и при обслуживании по прерываниям МП.

Для увеличения числа запросов прерывания ПКП могут быть объединены в систему, состоящую из ведущего и нескольких ведомых ПКП.

При обслуживании запроса, поступающего на вход ведомого ПКП, ведущий по сигналу INTA выдает на шину данных код операции команды CALL, а на шины CASØ – CAS2 – код номера ведомого ПКП.

Адрес для перехода на подпрограммы обслуживания на шину данных выдает выбранный ведомый ПКП по 2-му и 3-му сигналу INTA.

Установка ПКП в исходное состояние и настройка его на определенный режим обслуживания прерываний программируется двумя шинами команд:

1. IСW – команды инициализации;

2. OCW – команды управления операциями (рабочие приказы).

Последовательность инициализации определяется первым приказом IСW1.

С каждым входом IR ассоциируется адрес памяти, который выдается на шину данных в ответ на сигналы ППР INTA от МП после выдачи команды CALL.

Адреса для всех IR расположены равномерно через 4 или 8 байт и содержат команды переходов (команды JMP) к соответствующим подпрограммам обслуживания. Разряды адреса начала таблицы переходов А6 – А15 передаются в командах инициализации IСW1,2, а младшие (АØ – А4) формируются в контроллере.

Значение А5 зависит от заданного интервала и для 4–байтного интервала программируется в IСW1, а для 8-байтного устанавливается контроллером.

Формат младшего байта адреса для каждого входа IR приведен в таблице.

Приказы инициации IСW3 необходимы только для системы, содержащей несколько контроллеров, и определяют их взаимодействие.

Для каждого ведомого контроллера выдается свой приказ IСW3, т.е. они инициируются автономно.

Приказ IСW3 сообщает наличием 1 ведущему контроллеру к каким его входам IR подключены ведомые контроллеры, а каждому ведомому – к какому входу IR ведущего контроллера подключен его выход INT.

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

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

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

Примечание: символический адрес ADRØ имеет АØ=Ø

символический адрес ADR1 имеет АØ=1.

DI ; запрещение прерываний

MUI A,16H ; ICW1 (00010110)

OUT ADRØ

MUI A,40H ; ICW2 (01000000)

OUT ADR1

EI ; разрешение прерываний.

Рабочие приказы:

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

Для задания других режимов работы в контроллер необходимо загрузить дополнительные рабочие приказы OCW.

С помощью приказа OCW1 в любой момент времени программно можно установить или сбросить отдельные биты регистра масок прерываний IMR.

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

Вложенные прерывания.

Каждому из 8 входов запросов прерываний IR7-0 назначается фиксированный приоритет в порядке возрастания, и запрос с большим приоритетом прерывает обслуживание запросов с меньшим приоритетом (IRØ – высший, IR7 – низший).

Круговой (циклический) приоритет. Как и в предыдущем режиме, каждому входу IR7-0 назначается приоритет, но теперь после обработки запроса на прерывание приоритеты изменяются в круговом порядке т.о., что последний обслуженный вход будет иметь низший приоритет. Этот режим используется когда ВУ имеют одинаковый приоритет и ни одному из них нельзя отдать предпочтение (все в равноправном положении).

Адресуемые приоритеты.

Режим аналогичен второму режиму, но допускает …………… определение входа IR, которому назначается низший приоритет.

Режим опроса. В этом режиме прерывания процессора запрещаются, а требующие обслуживания ВУ распознается с помощью считывания состояния контроллера.

Организация прерываний

Система прерываний позволяет ВУ быть инициатором обмена данными с МП. Т.е. обмен данными с ВУ может быть реализован в произвольные моменты времени, не зависящие от программы, выполняемой ЭВМ. Появляется возможность обмена данными с ВУ в реальном масштабе времени. Для организации обмена по прерыванию ВУ выставляет «запрос на прерывание», при поступлении которого в МП должна прерваться основная программа и выполняться подпрограмма обработки прерываний.

Организация системы прерываний требует решения следующих задач:

  1. должно быть идентифицировано устройство, от которого поступил запрос на прерывание;

  2. должно быть сохранено состояние активных регистров МП, так как оно должно использоваться после возобновления основной программы;

  3. после окончания обслуживания прерывания состояние этих регистров должно быть восстановлено.

Существую 2 способа идентификации ВУ, запросивших обслуживания:

  • программный опрос регистров состояния всех ВУ (разряд «Готовность ВУ»);

  • использование векторов прерывания, которые может формировать само ВУ или специально используемые средства БПП, ПКП.

  • организация прерывания с программным опросом готовности.

Подпрограмма обработки прерывания и ее связь с основной программой

Процессор проверяет наличие запроса прерывания от ВУ в последнем машинном цикле каждой команды основной программы. При наличии запроса и разрешении прерывания в процессоре, он переключается на выполнение подпрограммы обработки прерывания.

Работа подпрограммы начинается с запоминания содержимого регистров процессора. После этого начинается последовательный опрос регистров состояния Кву. Как только подпрограмма обнаружит готовое к обмену ВУ, начинается его обслуживание. Подпрограмма обработки прерывания завершает свою работу после опроса готовности всех ВУ и восстановления содержимого регистров процессора.

Приоритет ВУ в данном способе определяется порядком опроса их готовности подпрограммой.

Недостаток способа: чем позже опрашивается готовность ВУ, тем дольше время обслуживания соответствующего ВУ. Используется, когда нет жестких ограничений на допустимое время обработки прерываний.

Обработка прерываний и использование векторов прерываний.

Вектор прерывания – это адрес ячейки памяти, в которой хранится либо первая команда подпрограммы обслуживания соответствующего ВУ, либо адрес начала такой подпрограммы. Процессор, получив из контроллера ВУ вектор прерывания, сразу переходит на выполнение требуемой подпрограммы обработки прерывания. При реализации данного способа каждое ВУ во-первых, имеет собственную подпрограмму обработки прерывания и, во-вторых, ВУ само идентифицирует себя.

Для задания вектора прерывания в Кву вводится специальный регистр, в котором вектор прерывания набирается с помощью специальных переключателей или перемычек. Из данного регистра вектор прерывания выдается в ША системного интерфейса.

Для организации приоритетного обслуживания различных ВУ в контроллер вводятся элементы И2, И3, И4 и дополнительный сигнал «Предоставлен Пр Вход» и «Предоставлен Пр. Выход». Этот сигнал используется для последовательного аппаратного опроса. «Готовности ВУ». При этом в i-й К-р входной сигнал «Предоставл. Пр» придет в том случае, если с 1-го по i-й К-ра не готовы к обмену. В этом случае «Предоставл.Пр» прошел на вход этих контролллеров (Элементы И4, И2).

Если же i-й К-р готов к обмену и это ему разрешено МП (в соответствующих разрядах RG сост. «1») , то через И3 на RG вектора прерывания выдается сигнал, разрешающий выдачу вектора в ША. При этом сигнал «Предоставл. Пр» на выход i-го ……..не проходит.

Достоинство: быстрое проведение опроса готовности ВУ.

Формирование вектора прерывания в контроллере ВУ

Рабочие приказы

Для задания других режимов (отличных от вложенных прерываний) работы в контроллер необходимо загрузить дополнительные рабочие приказы OCW, форматы которых имеют вид:


C помощью приказа OCW1 в любой момент времени программно можно установить и сбросить отдельные биты регистра масок IMR.

С помощью приказа OCW2 можно задать пять операций:

  1. Сброс бита ISR с максимальным приоритетом (неадресуемый конец прерывания EOI);

  2. Сброс бита ISR, определяемого полем L2-0 (адресуемый сброс) – рекомендуется для других режимов;

  3. Установка приоритета – назначение входу IR, определяемому полем L2-0, низшего приоритета, а остальным – в круговом порядке;

  4. Автоцикл – сброс бита ISR с максимальным приоритетом и назначение ему низшего приоритета; приоритеты остальных модифицируются в круговом порядке;

  5. Адресуемый цикл – сброс бита ISR, определяемого полем L2-0, и назначение ему низшего приоритета, а остальные – по кругу.

С помощью приказа OCW3 устанавливаются:

1. Режим специальной маски SMM – служит для временного прекращения действия бита ISR (до его сброса специальным приказом).

2. Режим опроса – используется процессором для идентификации ВУ, запрашивающего обслуживания. При этом процессор опрашивает не сами ВУ, а контроллер, который может работать в любом режиме. По этому приказу контроллер выдает на шину данных слово состояния прерываний. В этом слове старший бит D7 (I) фиксирует наличие запросов, биты D6-3 не используются, а биты D2-0 указывают код имеющегося запроса с наибольшим приоритетом.

Обслуживание запросов осуществляется программной дешифрацией считанного слова и переходом к соответствующей ПП.

  1. Считывание содержимого регистра ISR (обслуживаемых запросов).

  1. Считывание содержимого регистра IRR (регистр запросов).

Регистры считываются при загрузке соответствующего приказа OCW3 с последующим выполнением команды IN. Для считывания содержимого регистра IMR не нужен приказ OCW3 , т.к. на линиях данных D7-0 контроллера находится это содержимое, если А0=1 и (выдан сигнал считывания) RD=0.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]