Программируемый контроллер прерываний ВН59А
В настоящее время разработан новый контроллер прерываний К1810ВН59А (ВН59А), совместимый на уровне как интерфейса, так и управляющих кодов со своим предшественником ВН59 (см. § 3.6). Последний может быть заменен прибором ВН59А без внесения изменений в схему и ПО. Новый ПКП выполняет ряд функций, недоступных приборам ВН59. Важнейшая среди них—это обслуживание системы прерываний МП ВМ86/ВМ88.
Микросхема ВН59А выполнена по n-МОП-технологии, размещается в 28-выводном корпусе 2121.28 с двурядным вертикальным расположением выводов, совместима по выходам с ТТЛ-схемами. Для ее работы требуется источник питания +5 В.
Схема ПКП ВН59А аналогична схеме на рис. 3.41, за исключением вывода . Этот вывод выполняет двойную функцию ( / ) и реализован в виде двунаправленной линии. В первом случае он используется как вход для программирования ведущего/ведомого прибора. Во втором случае он выполняет роль выходной линии , указывающей направление передачи данных в/из прибора и необходимой для управления внешними двунаправленными шинными формирователями. Условное графическое обозначение ВН59А совпадает с ВН59 (см. рис. 3.41, б).
Перед началом работы прибор ВН59А, подобно ВН59, должен быть инициализирован в соответствии с процедурой на рис. 7.11. Данная процедура отличается от инициализации ВН59 (рис. 3.45) наличием четвертого слова ICW4, которое ранее отсутствовало. Необходимость в ICW4 программируется битом IС4 в ICW0, который для ВН59 был всегда в состоянии 0. Отсутствие ICW4 эквивалентно его принятию со всеми флажками, установленными в 0. Как будет видно далее, этот случай полностью соответствует режиму работы ВН59. Единственное исключение составляет дополнительно появившийся флажок LTIM в ICW0, программирующий тип входов IR7—IR0. Новый прибор поддерживает два типа запросов на прерывание: по переходу из 0 в 1 в соответствии с ВН59 (LTIM = 0) и по высокому уровню напряжения (LTIM = 1). Потенциальный вариант входов IR7—IR0 предполагает удержание 1 на линии запроса до окончания первого строба и установку на ней 0 к моменту разрешения прерывания. В противном случае произойдет повторный захват того же самого сигнала прерывания.
Рис. 7.11. Последовательность инициализации ВН59А
Новое слово ICW4 обеспечивает программное управление рядом функций, отсутствовавших в ВН59. Главнейшей среди них является совместимость с МП типа ВМ86/ВМ88. Перевод ВН59А для работы в режим ВМ86 осуществляется установкой флажка ICW4. МРМ в 1. В данном режиме общее функционирование прибора не изменяется, за исключением фазы ответа на стробы . В отличие от ВМ80/ВМ85А микропроцессоры ВМ86/ВМ88 генерируют два строба (см. § 6.6). Отвечая на первый строб контроллер прерываний устанавливает в 1 соответствующий бит в ISR, одновременно устанавливая его в 0 в регистре IRR, и в случае каскадного соединения выставляет идентифицирующий код ведомого контроллера на линиях CAS2—CAS0 (рис. 7.12). Никакие данные в этом цикле на шину данных не выводятся. Во время второго цикла автономный или один из ведомых контроллеров выдает на шину данных 8-разрядный вектор прерывания в формате, представленном на рис. 7.13. Микропроцессор ВМ86/ВМ88 использует эту информацию для вычисления адреса входа в таблицу векторов прерываний. Кроме того, в режиме ВМ86 функция ADI (управления адресным интервалом) подавляется. Состояние поля А7—А5 в ICW1, а также А10—А8 в ICW2 игнорируется. В остальном работа ВН59А подобна работе ВН59.
Рис. 7.12. Временные диаграммы работы
ВН59А в режиме ВМ86
Рис. 7.13. Формат вектора прерываний | Рис. 7.14. Форматы OCW1—OCW3 ВН59А |
Следующее расширение ВН59А состоит в возможности автоматического выполнения операции конца прерывания ЕOI (ICW4.AEOI = 1). В данном режиме ВН59А отрабатывает неспециальную команду ЕOI сразу же по окончании последнего строба : второго в режиме ВМ86 и третьего в режиме ВМ80. В результате отпадает необходимость в генерации команды ЕOI. Режим АЕOI может быть применен, если не требуется строгого упорядочения приоритетов в рамках отдельного контроллера.
Чтобы добиться автоматического циклического сдвига при АЕOI в ВН59А предусмотрен специальный триггер. Он устанавливается в 1 словом OCW2 (рис. 7.14) при R = 1, SL = 0, ЕOI = 0, а в 0 при R = 0, SL = 0, ЕOI = 1. В BH59 (см. рис. 3.47) эти комбинации не использовались. В остальном функции OCW1—OCW3 обоих приборов совпадают.
В больших системах может потребоваться дополнительный буфер, согласующий интерфейс ВН59А с системной магистралью. Возникает проблема управления этим буфером, решаемая с помощью линии / . Режим буферизации программируется установкой флажка BUF в 1 в слове ICW4. В данном режиме линия / становится выходной и на ней устанавливается низкий уровень напряжения всякий раз, когда контроллер ВН59А выдает информацию на шину данных.
Подобная модификация линии / заставляет пересмотреть правила программирования ведомых и ведущих контроллеров. Теперь для этой цели используется специальный флажок /S в слове ICW4. Выходы / всех приборов объединяются по схеме «монтажное ИЛИ», образуя единую линию управления буфером данных.
В приборе ВН59А осуществляется специальный режим строгого упорядочения приоритетов, программируемого флажком SFNM в слове ICW4. Установка флажка SFNM в 1 снимает требование строгого упорядочения приоритетов и разрешает прием новых запросов с линии, только что принятой к обслуживанию. Обычно этот режим используется в ведущем контроллере, в то время, как ведомые контроллеры продолжают работать в рамках системы с обычным строгим упорядочением приоритетов. В результате при получении очередного запроса от ведомого контроллера последний не блокируется, как это было ранее, и может генерировать новые запросы с более высоким приоритетом.
По окончании процедуры обслуживания прерывания программа должна проверить, было ли обслуженное прерывание единственным, исходящим от ведомого ВН59А. Это делается путем выдачи в ведомый прибор неспециальной команды ЕOI с последующей проверкой состояния регистра ISR. Если ISR пуст, неспециальная команда ЕOI посылается в ведущий контромер, в противном случае команда ЕOI не генерируется.
Дата добавления: 2019-02-07; просмотров: 436;