Программируемый контроллер приоритетных прерываний

Страницы работы

6 страниц (Word-файл)

Содержание работы

Программируемый контроллер приоритетных прерываний

Как уже указывалось в § 4.4, эффективность систем автоматического управления технологическими процес­сами значительно повышается, когда в системе возможна организация прерываний программы, так как наличие прерываний позволяет -изменять ход программы на основа­нии сигналов, поступающих в микропроцессор от пери­ферийного оборудования.

Напомним кратко процедуру выполнения прерываний. Входной сигнал «Запрос прерывания» (ЗПР) поступает на вход ЦПЭ (вывод 14) от внешнего устройства. Этот сигнал анализируется в конце текущей команды. Предварительно должен быть установлен в 1 триггер возможности прерывания. Эта установка делается только программно, по команде EI. Если сигнал INTE равен 1, сигнал ЗПР инициирует процедуру перехода текущей программы в состояние прерывания; одним из элементов этой процедуры будет автоматический сброс в 0 триггера разрешения прерываний, а другим — передача по спе­циальной линии шины управления сигнала согласия на выполнение  прерывания — «Прерывание  разрешено» (РПР).

Таким образом, имеется два сигнала разрешения пре­рывания: один появляется на выводе 16 ЦПЭ, а другой — на шине данных (бит Do). Как называть каждый из них, нет единого мнения. Первый — Interrupt Enable (INTE) — можно называть «Разрешение прерывания», хотя более строго он означает «Возможно прерывание» (ВЗПР). Второй — Interrupt Acknowledge (INTA) — переводят как «Подтверждение получения запроса», хотя его сущ­ность заключается именно в согласии, иными словами раз­решении, на выполнение прерывания (РПР). Именно этот сигнал используется для управления прерываниями.

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

Обслуживание запросов только от одного периферий­ного устройства протекает описанным образом и не вызы­вает затруднений, так как начальный адрес программы обработки прерывания можно зафиксировать аппаратно. Ситуация усложняется, когда на линию запроса прерыва­ния подаются сигналы от нескольких внешних устройств, а именно так бывает в реальных системах автомати­ческого управления технологическими процессами. В такой системе возможен запрос на прерывание сразу от двух или более устройств во время выполнения центральным про­цессором какой-либо команды. Таким образом, в конце выполнения команды ЦПЭ имеет дело с несколькими запросами, называемыми одновременными, хотя факти­чески они могли возникнуть не строго в одно и то же время. Система прерываний должна решить, какое из устройств, пославших запрос, следует обслужить сразу, а какое оставить ждать. Иными словами, она должна установить очередность обслуживания устройств, или их приоритеты.

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

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

Аппаратная реализация управления приоритетами. Для аппаратной реализации управления приоритетами существует два основных метода. Первый метод заклю­чается в использовании поллинга, т. е. линии, по которой сигнал РПР идет от центрального процессора последовательно ко всем внешним устройствам (рис. 8.9). Сигнал РПР посылается сначала устройству с наивысшим приоритетом; в этом случае говорят, что сигнал посылается только самому ближнему устройству, хотя пространствен­но оно может располагаться дальше всех от ЦПЭ. Если это устройство не запрашивало прерывания, то сигнал РПР переходит к следующему устройству (со вторым приоритетом) и т. д. Если же какое-то устройство запрашивало прерывание, то оно прерывает путь сигнала РПР и не допускает его пересылки дальше.

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

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

Рис. 8.9. Аппаратная реализация управления приоритетами (схема поллинга)

Рис. 8.10. Система многоуровневых прерывании

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

Практически при аппаратном управлении приорите­тами часто используется комбинация двух описанных способов, дающая систему многоуровневых прерываний. В такой системе используется несколько пар линий запроса-разрешения (ЗПР-РПР). Линии запроса спе­циальной схемой устанавливаются на приоритетный уро­вень, а разрешение, соответствующее каждому приоритет­ному уровню, идет по цепочке через все внешние устрой­ства данного уровня приоритета (рис. 8.10). Таким обра­зом, каждое устройство на любом уровне имеет свой соб­ственный приоритет.

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

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

Гибкость программных средств и высокие скорости аппаратурной реализации соединяются в комбинирован­ной программно-аппаратной системе управления приори­тетами. Такие системы должны иметь два регистра:

Похожие материалы

Информация о работе