КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Программируемый контроллер приоритетных прерываний
БИС КР580ВН59, Эффективность систем автоматического управления технологическими процессами значительно повышается, когда в системе возможна организация прерываний программы, так как наличие прерываний позволяет изменять ход программы на основании сигналов, поступающих в микропроцессор от периферийного оборудования. Напомним кратко процедуру выполнения прерываний. Входной сигнал «Запрос прерывания» (ЗПР) поступает на вход ЦПЭ (вывод 14) от внешнего устройства. Этот сигнал анализируется в конце текущей команды. Предварительно должен быть установлен в 1 триггер возможности прерывания. Эта установка делается только программно, по команде EI. Если сигнал INTE равен 1, сигнал ЗПР инициирует процедуру перехода текущей программы в состояние прерывания; одним из элементов этой процедуры будет автоматический сброс в 0 триггера разрешения прерываний, а другим — передача по специальной линии шины управления сигнала согласия на выполнение прерывания — «Прерывание разрешено» (РПР). Таким образом, имеется два сигнала разрешения прерывания: один появляется на выводе 16 ЦПЭ, а другой — на шине данных (бит Do). Как называть каждый из них, нет единого мнения. Первый — Interrupt Enable (INTE) — можно называть «Разрешение прерывания», хотя более строго он означает «Возможно прерывание» (ВЗПР). Второй — Interrupt Acknowledge (INTA) — переводят как «Подтверждение получения запроса», хотя его сущность заключается именно в согласии, иными словами разрешении, на выполнение прерывания (РПР). Именно этот сигнал используется для управления прерываниями. После наступления прерывания выполнение текущей программы прекращается и центральный процессор переключается на выполнение запроса. Адрес программы отработки прерывания указывается периферийным устройством, пославшим запрос прерывания, с помощью вектора рестарта, выставляемого на шину данных. Как только работа этой программной секции завершится, осуществляется обратный переход к прерванной программе и продолжается ее нормальное выполнение. Обслуживание запросов только от одного периферийного устройства протекает описанным образом и не вызывает затруднений, так как начальный адрес программы обработки прерывания можно зафиксировать аппаратно. Ситуация усложняется, когда на линию запроса прерывания подаются сигналы от нескольких внешних устройств, а именно так бывает в реальных системах автоматического управления технологическими процессами. В такой системе возможен запрос на прерывание сразу от двух или более устройств во время выполнения центральным процессором какой-либо команды. Таким образом, в конце выполнения команды ЦПЭ имеет дело с несколькими запросами, называемыми одновременными, хотя фактически они могли возникнуть не строго в одно и то же время. Система прерываний должна решить, какое из устройств, пославших запрос, следует обслужить сразу, а какое оставить ждать. Иными словами, она должна установить очередность обслуживания устройств, или их приоритеты. Когда в системе используется несколько внешних устройств, центральный процессор должен прежде всего определить, какое из них выставило запрос на прерывание и какое обслуживается в данный момент. После этого необходимо решить, какое из них имеет более высокий приоритет и должно быть обслужено в первую очередь. Возможно два подхода к решению этой проблемы: применение специальных аппаратных средств и программное задание приоритетов. Программное решение обычно медленнее соответствующего аппаратного, а так как скорость отработки прерываний является важнейшим аспектом снижения затрат времени на обслуживание и повышение эффективности системы, то чаще применяется аппаратное решение. Аппаратная реализация управления приоритетами. Для аппаратной реализации управления приоритетами существует два основных метода. Первый метод заключается в использовании поллинга, т. е. линии, по которой сигнал РПР идет от центрального процессора последовательно ко всем внешним устройствам (рис. 2.9). Сигнал РПР посылается сначала устройству с наивысшим приоритетом; в этом случае говорят, что сигнал посылается только самому ближнему устройству, хотя пространственно оно может располагаться дальше всех от ЦПЭ. Если это устройство не запрашивало прерывания, то сигнал РПР переходит к следующему устройству (со вторым приоритетом) и т. д. Если же какое-то устройство запрашивало прерывание, то оно прерывает путь сигнала РПР и не допускает его пересылки дальше. Устройство, запросившее прерывание, не только захватывает сигнал РПР, но и выставляет на линии шины данных двоичный код (вектор), представляющий собой указатель начального адреса программы обслуживания данного устройства. Это позволяет центральному процессору очень быстро переходить к программе обработки прерываний. Для каждого внешнего устройства резервируется несколько ячеек памяти. Первая используется для хранения содержимого счетчика команд (адреса возврата), а во второй хранится адрес, с которого начинается программа обслуживания внешнего устройства. Содержимое этой ячейки загружается в программный счетчик, и центральный процессор сразу же переходит к выполнению команды обслуживания. Процесс этот очень быстрый, занимает не более двух машинных циклов. Время обслуживания не зависит от числа внешних устройств в системе. Второй метод аппаратной реализации управления приоритетами заключается в использовании нескольких линий запросов, прерывания. Если каждое внешнее устройство связано с центральным процессором своей собственной линией запроса, то при помощи простой логической схемы можно реализовать систему, при которой Рис. 2.9. Аппаратная реализация управления приоритетами (схема поллинга)
Рис. 2.10. Система многоуровневых прерывании на ЦПЭ поступает запрос только с наивысшим приоритетом. Тот факт, что каждый запрос идет по своей индивидуальной линии, также означает, что в системе можно сделать опознание устройства и нет необходимости в дополнительном векторе программы отработки прерывания. Практически при аппаратном управлении приоритетами часто используется комбинация двух описанных способов, дающая систему многоуровневых прерываний. В такой системе используется несколько пар линий запроса-разрешения (ЗПР-РПР). Линии запроса специальной схемой устанавливаются на приоритетный уровень, а разрешение, соответствующее каждому приоритетному уровню, идет по цепочке через все внешние устройства данного уровня приоритета (рис. 2.10). Таким образом, каждое устройство на любом уровне имеет свой собственный приоритет. Система приоритетных прерываний позволяет центральному процессору непрерывно сравнивать приоритет обслуживаемого устройства, а также собственный с приоритетом внешних устройств, пославших запрос, и немедленно переключаться на выполнение самых срочных требований. Когда поступает запрос с более высоким приоритетом, например сигнал о возникновении аварийной ситуации в системе, то прерывается выполнение даже той программы, которая до этого вызвала прерывание основной программы, но уровень приоритета которой ниже. Обслуживание прерванной программы с низким приоритетом возобновляется автоматически, как только будет завершено выполнение программы с более высоким приоритетом. Такой процесс, называемый вложением прерываний, может повторяться много раз и выполняется автоматисески на любом уровне без всяких дополнительных указаний в программе. Программное управление приоритетами. Недостаток аппаратной системы управления приоритетами заключается в том, что однажды установленные приоритеты жестко фиксируются. При программной установке приоритетов последние находятся под контролем программиста и, следовательно, могут быть изменены и приспособлены к требованиям конкретной системы управления технологическими процессами. Гибкость программных средств и высокие скорости аппаратурной реализации соединяются в комбинированной программно-аппаратной системе управления приоритетами. Такие системы должны иметь два регистра: регистр прерываний и регистр маски. Все внешние по отношению к ЦПЭ средства образуют систему многоуровневого прерывания. Линии запроса прерывания заканчиваются в регистре прерываний, и запрос от любого устройства, находящегося на данном уровне приоритета, вызывает установку логической 1 в соответствующем бите регистра прерываний. Регистр маски — это адресуемое устройство, поэтому его содержание может быть установлено путем подачи соответствующей команды. Соответственные биты этих двух регистров объединяются логической схемой И. Таким образом, запрос на прерывание достигает ЦПЭ только в том случае, если соответствующий бит маски прерываний был предварительно установлен в состояние логической 1. В любое время программно можно запретить запросы на прерывание на каждом уровне, установив логический О в соответствующем бите регистра маски. Путем запрета уровня п и разрешения уровня п — 1 приоритет уровня п — 1 можно сделать выше, чем п. В результате программа управляет аппаратной установкой приоритетов. БИС контроллера приоритетных прерываний. В составе микропроцессорного комплекта БИС серии К580 имеется специальная микросхема КР580ВН59, предназначенная для построения многоуровневых приоритетных прерываний и называемая БИС контроллера приоритетных прерываний (КПП). Она размещена в корпусе с 24 выводами (рис. 2.11) и представляет собой 8-уровневое программируемое устройство. Каскадное включение подобных схем позволяет расширить систему прерываний до 64 запросов. Рис. 2.11. Структурная схема КПП
При этом одно из устройств является основным (ведущим), а другие—вспомогательными (ведомыми). Каждый сигнал запроса прерывания представляет один уровень. Приоритеты отдельных уровней устанавливаются путем записи соответствующего кода в регистр маски. Структурно КПП состоит из буфера данных, который используется для записи управляющих слов, выдачи информации о состоянии контроллера, а также команды вызова подпрограммы обработки прерываний. Кроме того, в КПП имеется 8-разрядный регистр запросов на прерывания с шифратором приоритета, буфер-компаратор и регистр маски. Каскадный буфер-компаратор используется при каскадном включении нескольких КПП. В буфере ведущего контроллера (ВВдм равен 0) генерируется код ведомого (ВВдм равен 1), вырабатывающего сигнал прерывания. По линиям Кас2, Кас1, Кас0 ведущий контроллер передает код, а ведомые по этим же цепям этот код принимают и сравнивают с собственным номером. Регистр запросов и обслуживающий регистр предназначены для фиксации запросов прерывания: регистр запросов хранит все поступившие запросы прерывания, а обслуживающий регистр хранит только обслуживаемый запрос. Сброс бита обслуживающего регистра выполняется текущим управляющим словом по окончании обслуживания, а бита регистра запросов — автоматически. Регистр маски хранит код маски, влияющий и на регистр запросов, и на обслуживающий регистр.. Схема управления обеспечивает загрузку и хранение командных слов и передачу на шину данных содержимого внутренних регистров контроллера. Режимы работы и сигналы управления КПП представлены в табл. 2.5. Программирование КПП выполняется последовательным занесением начальных (НУС) и текущих (ТУС) управляющих слов. Перед началом работы системы в контроллер заносятся НУС1, НУС2 и НУСЗ, которые задают структуру блока приоритетных прерываний и адресный интервал между.начальными командами программ обслуживания, т. е. протяженность ареалов памяти. Если в системе управления технологическими процессами имеется не более 8 периферийных устройств, то в единственный КПП заносится два слова — НУС1 и НУС2. При большем числе периферийных модулей выполняется каскадное включение контроллеров и в каждый загружается три начальных слова. Начальное управляющее слово НУС1 (рис. 2.12) задает адресный интервал (ИА) (4 или 8) и младший байт адреса подпрограммы. Затем НУС2 задает старший байт адреса и заносится непосредственно после НУС1. В слове НУСЗ ведущего модуля записываются единицы в битах, соответствующих номерам тех входов, к которым подключены ведомые модули. Для ведомого контроллера в разряды D2, D1, D0 слова НУСЗ заносится код его номера, равный номеру входа ведущего КПП, к которому он подключен. Текущие управляющие слова ТУС1, ТУС2 и ТУСЗ управляют режимами работы КПП и всеми этапами обработки запросов прерываний от периферийных
Таблица 2.5, Сигналы управления и функции программируемого КПП Рис. 2.12. Форматы начальных управляющих слов КПП устройств. Слово ТУС1 представляет собой код маски, который заносится в соответствующий регистр. Слово ТУС2 осуществляет изменение приоритетов внешних устройств и сброс отдельных бит обслуживающего регистра. Слово ТУСЗ устанавливает специальный режим маскирования, в котором разрешаются прерывания от запросов более низких приоритетов, а от более высоких — запрещаются (рис. 2.13). Распределение приоритетов запросов в исходном состоянии КПП имеет.вид: 0, 1,2, 3, 4, 5, 6, 7. Наивысший приоритет имеет 0. Управляющим словом ТУС2 этот порядок можно изменить, назначив запрос с младшим приоритетом. При этом остальные приоритеты смещаются циклически, сохраняя тот же порядок. Например, задавая самый младший приоритет запросу с номером 5, образуют распределение приоритетов следующего вида: 6, 7, 0, 1, 2, 3, 4, 5. Циклический сдвиг приоритета выполняется при D7=1, причем если D6=0, то самый низкий приоритет будет присвоен старшему из обслуживаемых запросов, а при D6=1 — запросу с номером, код которого размещен в битах D2, D1, D0. Остальные приоритеты смещаются циклически. После загрузки начальных командных слов контроллер находится в исходном состоянии, в котором все регистры очищены и самый младший приоритет присвоен устройству, подключенному к входу ЗПР7 (см. рис. 2.11). Один или несколько запросов устанавливают в состояние 1 соответствующие разряды регистра запросов. Контроллер выявляет сигнал, имеющий наивысший приоритет, и вырабатывает запрос прерывания, подаваемый в ЦПЭ. Последний дает согласие на выполнение прерывания и сигнал разрешения РПР..Контроллер, установив в единицу бит обслуживающего регистра, выставляет код операции CALL<B2> <B3> на шину данных. Выполнение команды вызова подпрограммы CALL обеспечивается еще двумя сигналами РПР, по которым на шину данных передаются младший и старший байты начального адреса подпрограммы. Например, при адресном интервале 8 и начальном адресе размещения подпрограмм 0000 HEX на запрос третьего устройства будут выработаны следующие кодовые комбинации:
Рис. 2.13. Форматы текущих управляющих слов КПП 11001101—код операции CALL; 00101000 — младший байт адреса <ВЗ>; 00000000 — старший байт адреса подпрограммы обработки. При организации в микропроцессорной системе управления технологическими процессами ввода-вывода по прерываниям необходимо тщательно проанализировать временные соотношения обработки прерываний, а также соблюдать специальные правила проектирования систем с прерываниями: 1. Выполнение прерванной программы должно возобновляться таким образом, как если бы прерывания вообще не было. Поэтому в программах обслуживания прерываний следует предусмотреть временное запоминание содержимого всех внутренних регистров, привлекаемых для обмена данными. 2. Для временного запоминания используется стек, под который следует выделить достаточную область памяти. Емкость стека играет важную роль в системах с многоуровневыми прерываниями. 3. Большое значение имеет правильное присвоение приоритетов периферийным устройствам. Наивысший приоритет присваивается критическим прерываниям типа аварийного выключения питания, достижения параметрами предельных значений и др. Следующий приоритет обычно назначается таймеру реального времени. Низшие приоритеты присваиваются периферийным устройствам, у которых время ожидания некритично, например пишущей машинке, делающей периодическую распечатку значений параметров. 4. В режимах управления системой с пульта оператора пульт должен иметь достаточно высокий приоритет, чтобы. оператор не терял связь с системой. 5. При анализе системы на наиболее неблагоприятный режим предполагается, что запросы на прерывания от периферийных устройств поступают одновременно, а запросы на передачу управления следуют с максимальной частотой. Рекомендуется проверить последовательность обслуживания в соответствии с присвоенными приоритетами и убедиться, что запросы от устройств с высоким приоритетом не блокируют устройства с низким приоритетом.
Дата добавления: 2014-01-20; Просмотров: 1484; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |