регистр прерываний и регистр маски. Все внешние по отношению к ЦПЭ средства образуют систему многоуровневого прерывания. Линии запроса прерывания заканчиваются в регистре прерываний, и запрос от любого устройства, находящегося на данном уровне приоритета, вызывает установку логической 1 в соответствующем бите регистра прерываний. Регистр маски — это адресуемое устройство, поэтому его содержание может быть установлено путем подачи соответствующей команды. Соответственные биты этих двух регистров объединяются логической схемой И. Таким образом, запрос на прерывание достигает ЦПЭ только в том случае, если соответствующий бит маски прерываний был предварительно установлен в состояние логической 1.
В любое время программно можно запретить запросы на прерывание на каждом уровне, установив логический О в соответствующем бите регистра маски. Путем запрета уровня п и разрешения уровня п — 1 приоритет уровня п — 1 можно сделать выше, чем п. В результате программа управляет аппаратной установкой приоритетов.
БИС контроллера приоритетных прерываний. В составе микропроцессорного комплекта БИС серии К580 имеется специальная микросхема КР580ВН59, предназначенная для построения многоуровневых приоритетных прерываний и называемая БИС контроллера приоритетных прерываний (КПП). Она размещена в корпусе с 24 выводами (рис. 8.11) и представляет собой 8-уровневое программируемое устройство. Каскадное включение подобных схем позволяет расширить систему прерываний до 64 запросов.
Рис. 8.11. Структурная схема КПП
При этом одно из устройств является основным (ведущим), а другие—вспомогательными (ведомыми).
Каждый сигнал запроса прерывания представляет один уровень. Приоритеты отдельных уровней устанавливаются путем записи соответствующего кода в регистр маски. Структурно КПП состоит из буфера данных, который используется для записи управляющих слов, выдачи информации о состоянии контроллера, а также команды вызова подпрограммы обработки прерываний. Кроме того, в КПП имеется 8-разрядный регистр запросов на прерывания с шифратором приоритета, буфер-компаратор и регистр маски.
Каскадный буфер-компаратор используется при каскадном включении нескольких КПП. В буфере ведущего контроллера (ВВдм равен 0) генерируется код ведомого {ВВдм равен 1), вырабатывающего сигнал прерывания. По линиям Кас2, Кас1, КасО ведущий контроллер передает код, а ведомые по этим же цепям этот код принимают и сравнивают с собственным номером.
Регистр запросов и обслуживающий регистр предназначены для фиксации запросов прерывания: регистр запросов хранит все поступившие запросы прерывания, а обслуживающий регистр хранит только обслуживаемый запрос. Сброс бита обслуживающего регистра выполняется текущим управляющим словом по окончании обслуживания, а бита регистра запросов — автоматически.
Регистр маски хранит код маски, влияющий и на регистр запросов, и на обслуживающий регистр. .
Схема управления обеспечивает загрузку и хранение командных слов и передачу на шину данных содержимого внутренних регистров контроллера. Режимы работы и сигналы управления КПП представлены в табл. 8.5. Программирование КПП выполняется последовательным занесением начальных (НУС) и текущих (ТУС) управляющих слов. Перед началом работы системы в контроллер заносятся НУС1, НУС2 и НУСЗ, которые задают структуру блока приоритетных прерываний и адресный интервал между .начальными командами программ обслуживания, т. е. протяженность ареалов памяти. Если в системе управления технологическими процессами имеется не более 8 периферийных устройств, то в единственный КПП заносится два слова — НУС1 и НУС2. При большем числе периферийных модулей выполняется каскадное включение контроллеров и в каждый загружается три начальных слова.
Начальное управляющее слово НУС1 (рис. 8.12) задает адресный интервал {И А} (4 или 8) и младший байт адреса подпрограммы. Затем НУС2 задает старший байт адреса и заносится непосредственно после НУС1. В слове НУСЗ ведущего модуля записываются единицы в битах, соответствующих номерам тех входов, к которым подключены ведомые модули. Для ведомого контроллера в разряды D2, Dl, DO слова НУСЗ заносится код его номера, равный номеру входа ведущего КПП, к которому он подключен.
Текущие управляющие слова ТУС1, ТУС2 и ТУСЗ управляют режимами работы КПП и всеми этапами обработки запросов прерываний от периферийных
Таблица 8.5, Сигналы управления и функции программируемого КПП
Рис. 8.12. Форматы начальных управляющих слов КПП
устройств. Слово ТУС1 представляет собой код маски, который заносится в соответствующий регистр. Слово ТУС2 осуществляет изменение приоритетов внешних устройств и сброс отдельных бит обслуживающего регистра. Слово ТУСЗ устанавливает специальный режим маскирования, в котором разрешаются прерывания от запросов более низких приоритетов, а от более высоких — запрещаются (рис. 8.13).
Распределение приоритетов запросов в исходном состоянии КПП имеет .вид: 0, 1,2, 3, 4, 5, 6, 7. Наивысший приоритет имеет 0. Управляющим словом ТУС2 этот порядок можно изменить, назначив запрос с младшим приоритетом. При этом остальные приоритеты смещаются циклически, сохраняя тот же порядок. Например, задавая самый младший приоритет запросу с номером 5, образуют распределение приоритетов следующего вида:
6, 7, О, 1, 2, 3, 4, 5. Циклический сдвиг приоритета выполняется при D7=1, причем если D6==0, то "самый низкий приоритет будет присвоен старшему из обслуживаемых запросов, а при D6==\ — запросу с номером, код которого размещен в битах D2, Dl, DO. Остальные приоритеты смещаются циклически.
После загрузки начальных командных слов контроллер находится в исходном состоянии, в котором все регистры очищены и самый младший приоритет присвоен устройству, подключенному к входу ЗПР7 (см. рис. 8.11). Один или несколько запросов устанавливают в состояние 1 соответствующие разряды регистра запросов. Контроллер выявляет сигнал, имеющий наивысший приоритет, и вырабатывает запрос прерывания, подаваемый в ЦПЭ. Последний дает согласие на выполнение прерывания и сигнал разрешения РПР. .Контроллер, установив в единицу бит обслуживающего регистра, выставляет код операции CALL<B2> <B3> на шину данных. Выполнение команды вызова подпрограммы CALL обеспечивается еще двумя сигналами РПР, по которым на шину данных передаются младший и старший байты начального адреса подпрограммы. Например, при адресном интервале 8 и начальном адресе размещения подпрограмм 0000 HEX на запрос третьего устройства будут выработаны следующие кодовые комбинации: 11001101—код операцииCALL; 00101000 — младший байт адреса <ВЗ> ; 00000000 — старший байт адреса подпрограммы обработки.
Рис. 8.13. Форматы текущих управляющих слов КПП
При организации в микропроцессорной системе управления технологическими процессами ввода-вывода по прерываниям необходимо тщательно проанализировать временные соотношения обработки прерываний, а также соблюдать специальные правила проектирования систем с прерываниями:
1. Выполнение прерванной программы должно возобновляться таким образом, как если бы прерывания вообще не было. Поэтому в программах обслуживания прерываний следует предусмотреть временное запоминание содержимого всех внутренних регистров, привлекаемых для обмена данными.
2. Для временного запоминания используется стек, под который следует выделить достаточную область памяти. Емкость стека играет важную роль в системах с многоуровневыми прерываниями.
3. Большое значение имеет правильное присвоение приоритетов периферийным устройствам. Наивысший приоритет присваивается критическим прерываниям типа аварийного выключения питания, достижения параметрами предельных значений и др. Следующий приоритет обычно назначается таймеру реального времени. Низшие приоритеты присваиваются периферийным устройствам, у которых время ожидания некритично, например пишущей машинке, делающей периодическую распечатку значений параметров.
4. В режимах управления системой с пульта оператора пульт должен иметь достаточно высокий приоритет, чтобы. оператор не терял связь с системой.
5. При анализе системы на наиболее неблагоприятный режим предполагается, что запросы на прерывания от периферийных устройств поступают одновременно, а запросы на передачу управления следуют с максимальной частотой. Рекомендуется проверить последовательность обслуживания в соответствии с присвоенными приоритетами и убедиться, что запросы от устройств с высоким приоритетом не блокируют устройства с низким приоритетом.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.