Мегаобучалка Главная | О нас | Обратная связь


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



2016-01-26 497 Обсуждений (0)
Программируемый контроллер прерываний ВН59 0.00 из 5.00 0 оценок




Лекция 13

Средства ввода/вывода в режиме прерываний

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

 

Система векторных прерываний ВМ80/ВМ85А может быть построена различными способами. Наиболее эффективно она реализуется с помощью специальной БИС типа КР580ВН59 (ВН59), называемой программируемым контроллером прерываний (ПКП). Микросхема выполняется по n-МОП-технологии и размещается в 28-выводном корпусе с вертикальным расположением выводов. Она совместима с ТТЛ-схемами. Для работы БИС требуется единственный источник питания +5 В. На основе ПКП ВН59 формируется 8-уровневая приоритетная система векторных прерываний для МП типов ВМ80/ВМ85А. Несколько контроллеров ВН59 могут соединяться каскадно для расширения числа уровней прерывания до 64. Прибор обеспечивает работу в нескольких режимах, позволяя оптимизировать логику работы системы прерываний согласно требованиям, предъявляемым к МС. Структурная схема и условное графическое обозначение ПКП приведены на рис. 13.1.

 

Рис. 13.1. Программируемый контроллер прерываний ВН59: а - структурная схема: б - условное графическое обозначение

 

Рассмотрим работу ВН59 в автономном режиме (рис. 13.2.). Один или несколько запросов на прерывания (переход из 0 в 1) подаются на входы IR0—IR7 и запоминаются в регистре запросов IRR (Interrupt Request Register). Регистр обслуживания ISR (In Service Register) содержит все запросы, которые в данное время находятся в стадии обработки. Регистр маски IMR (Interrupt Mask Register) используется для маскирования отдельных уровней. Запрет некоторого уровня соответствует единице в соответствующем разряде IMR.

 

Рис. 13.2. Автономное включение ВН59

 

Приоритетная логика выбирает разрешенный запрос на прерывание с наивысшим приоритетом из числа поступивших и сравнивает его с текущим приоритетом запросов, находящихся на обслуживании. При превышении последнего ПКП генерирует сигнал INT (рис. 13.3.).

Микропроцессор подтверждает прием запроса INT генерацией строба INTA, под воздействием которого запрос с высшим приоритетом из IRR фиксируется в соответствующем разряде ISR. Принятый к обслуживанию IRR-бит сбрасывается и прием нового запроса разрешается Одновременно с этим ПКП генерирует код команды CALL (OCDH), который принимается МП. В ответ ВМ80/ВМ85А инициирует еще два следующих друг за другом GМТА - цикла. Во время этих циклов ПКП передает в МП полный адрес программы обслуживания прерывания, принятого к обработке: сначала младший, а затем старший байт адреса. Установленный в 1 SR бит остается в состоянии 1 до окончания процедуры обслуживания. В конце процедуры в ПКП должна быть передана специальная команда окончания прерывания EOI, которая сбрасывает соответствующий ISR-бит.

 

 

Рис. 13.3. Временные диаграммы работы ВН59

 

До тех пор, пока некоторый ISR-бит установлен, все запросы с равным или меньшим приоритетом игнорируются. В то же время запросы с более высоким приоритетом приводят к генерации сигнала INT, инициируя вложенные прерывания МП.

Каскадное соединение нескольких БИС типа ВН59 (рис. 13.4.) позволяет довести число приоритетных уровней до 64. В данном случае одна БИС действует как ведущая (SP=1) а другие как ведомые (SP = 0).

 

Рис. 13.4. Каскадное включение ВН59

 

В каскадном режиме генерация кода команды CALL возлагается на ведущую БИС, а генерация адреса подпрограммы обслуживания — на ведомую. Для этого каждой ведомой БИС* присваивается идентификационный код, соответствующий номеру линии запроса на прерывание ведущей БИС, к которой она подключена. Вместо генерации адреса ведущая БИС посылает по трехразрядной шине CAS номер уровня, принятого к обслуживанию, на второй и третий стробы INTA. Этот номер сравнивается компараторами ведомых БИС с присвоенными им идентификаторами, в результате выбирается один из них. Выбранная БИС завершает команду CALL, отвечая на второй и третий стробы INTA генерацией одного из восьми возможных адресов.

Отличительной чертой БИС типа ВН59 является ее программируемость. Программирование осуществляется двумя типами управляющих слов: командами инициализации ICW (Initialization Command Word) и управления OCW (Operation Command Word). Три команды инициализации ICW1— ICW3 загружаются перед началом работы и служат для установки БИС в исходное состояние.

Команды управления OCW1—OCW3 могут быть переданы в ПКП в любое время после окончания инициализации. Они предназначены для оперативного управления работой контроллера. При каскадном включении каждая БИС программируется независимо от других.

При А0 = 0 и D4=l входной байт интерпретируется как ICW1. При этом очищаются IRR, IMR и осуществляется последовательность действий, приведенная на рис. 13.5. Генерируемые ПКП восемь адресов в команде CALL (по адресу на каждый уровень) равно удалены друг от друга с интервалом либо 4, либо 8 байт, образуя в памяти МС таблицу входов в процедуры обслуживания прерываний размером 32 или 64 байт соответственно. Два первых обязательных слова ICW1 и ICW2 определяют базовый адрес таблицы входов. Адресный интервал таблицы программируется специальным битом F слова ICW1 (ICW1.F). При F=l интервал равен 4, в противном случае — 8. Адреса команды CALL формируются по схеме addr = base + k • NL, k = 4 или 8 и имеют формат, приведенный на рис. 13.6. Здесь через NL обозначен уровень запроса, принятого к обслуживанию.

Рис. 13.5. Последовательность инициализации ВН59

 

Рис. 13.6. Формат адреса команды CALL

 

Программируемость базы таблицы входов base предполагает ее размещение в любом месте памяти МС с точностью до границы в 32 или 64 байт. При к = 8 и base = 0 таблица совпадает с системой входов по командам RSTn, n = 0- -7, микропроцессора ВМ80. При к - 4 и base = 4 обеспечивается совместимость со второй половиной таблицы входов по командам RSTn, n = 4—7 микропроцессора ВМ85А. Кроме того, поддерживается перемещаемость таблицы входов, что может быть полезно в ряде практических случаев.

 

 

В составе ICW1 находится также бит S (Single), определяющий в каком режиме работает система прерываний: автономном (8=1) или каскадном (8 = 0). При работе в автономном режиме процедура инициализации завершается. В каскадном режиме в ПКП должна быть передана еще одна команда ICW3. Формат ICW3 ведущей БИС (SР=1) отличается от формата ICW3 ведомого (SP = 0).

В первом случае ICW3 сообщает контроллеру о множестве тех уровней, которые задействованы под каскадирование. Эти уровни выделяются установкой в 1 соответствующих разрядов ICW3. Во втором случае ICW3 используется для сообщения ведомой БИС идентификационного номера. Идентификатор должен соответствовать номеру уровня ведущей БИС, к которой подключена ведомая.

После инициализации микросхема готова к работе в режиме строго упорядоченных приоритетов. В данном режиме приоритеты уровней IR0—IR7 располагаются в порядке от 0 (высший) для IR0 до 7 (низший) для IR7. Дальнейшее управление работой схемы осуществляется с помощью OCW1—OCW3, форматы которых приведены на рис. 13.7.

 

 

Рис. 13.7. Форматы OCW1—OCW3

 

Для установки регистра маски IMR применяется слово OCW1. С его помощью каждый уровень может быть замаскирован в произвольный момент времени независимо от других. При установке 1 в некотором разряде IMR запрещается прием прерываний по соответствующему уровню. Регистр маски воздействует и на IRR, и на ISR.

По окончании очередной процедуры обслуживания в контроллер должна быть передана команда EOI, которая сбрасывает ISR-бит с высшим приоритетом. Для этой цели используется ОСW2 с кодом R = 0, SL = 0, ВОТ = 1. При работе в каскадном режиме команда EOI выдается дважды: для ведущего и ведомого приборов.

В более общем случае ОCW2 служит для установки в 0 произвольных разрядов ISR и циклического сдвига приоритетов с присвоением максимального значения любому из восьми возможных уровней. Если операция установки в 0 кодируется установкой в 1 бита OCW2.EOI, то операция циклического сдвига — бита OCW2.R (Rotate). В зависимости от состояния флажка SL (Special Level) возможны две ситуации: операция установки в 0 и (или) циклического сдвига относится к уровню с высшим в данный момент приоритетом из числа находящихся в обслуживании (SL = 0); одна и (или) обе операции относятся к явно указываемому в OCW2 уровню (SL=1). В последнем случае номер уровня кодируется в трехразрядном поле L2 —LO (Level). Различные комбинации этих функций и соответствующие им коды приведены на рис. 13.8. На их основе можно построить достаточно мощные и гибкие системы прерываний с разнообразными характеристиками.

Рис. 13.8. Операция EOI со сдвигом: а - до операции; б - после операции

 

Применение только команды EOI обеспечивает работу в режиме строго упорядоченных приоритетов, когда все запросы имеют фиксированные и строго упорядоченные приоритеты. Для обслуживания запросов с равными приоритетами должна быть использована команда EOI с циклическим сдвигом. При использовании команды сдвига одновременно со сбросом ISR-бита, имеющего высший текущий приоритет, реализуется циклический сдвиг приоритетов с присвоением низшего только что обслуженному уровню. На рис. 13.8. приведен пример циклического сдвига после обработки пятого уровня с приоритетом 3. Следует отметить, что циклический сдвиг не нарушает последовательности вложенных друг в друга прерываний, что обеспечивает правильный возврат из обслуживающих их подпрограмм.

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

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

Кроме управления режимом специального маскирования в функции ОCW3 входит управление режимом поллинга и выбор регистра IRR или ISR для чтения его содержимого с помощью программ. Режим поллинга (опроса) предполагает ввод информации об источнике прерывания программным методом. Режим инициируется выдачей в ПКП слова ОCW3 с установленным битом Р (Polling). Контроллер ВН59 интерпретирует следующий цикл чтения при А0 = 0 как подтверждение прерывания и выдает на шину данных информацию о. требующем обслуживания уровне с высшим приоритетом в формате, представленном на рис. 13.9. Если к моменту опроса запросов нет, то возвращается слово с флажком запроса I = 0, в противном случае I = 1, а в поле W2—W0 содержится код уровня с высшим приоритетом. В остальном работа ВН59 аналогична предыдущему случаю. Режим поллинга применяется в случаях, когда существует единая программа обслуживания для нескольких запросов, а также для расширения числа уровней (сверх 64).

 

 

Рис. 13.9. Формат данных при опросе

 

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

Входящие в состав ВН59 регистры IMR, IRR и ISR доступны для чтения. Регистр маски IMR может быть прочитан в любой момент при А0 = 0 по команде RD, регистры IRR и ISR»— при А0=1. В каждый момент времени непосредственно доступен только один из регистров. Выбор регистра осуществляется словом OCW3 с помощью ERIS и RIS. После выбора содержимое регистра может считываться произвольное число раз до выбора другого. При приеме ICW1 устанавливается режим чтения содержимого IRR.



2016-01-26 497 Обсуждений (0)
Программируемый контроллер прерываний ВН59 0.00 из 5.00 0 оценок









Обсуждение в статье: Программируемый контроллер прерываний ВН59

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Личность ребенка как объект и субъект в образовательной технологии: В настоящее время в России идет становление новой системы образования, ориентированного на вхождение...
Почему двоичная система счисления так распространена?: Каждая цифра должна быть как-то представлена на физическом носителе...
Почему человек чувствует себя несчастным?: Для начала определим, что такое несчастье. Несчастьем мы будем считать психологическое состояние...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (497)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.009 сек.)