Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Вопрос 6. Ввод данных в режиме прерывания. Способы идентификации источника прерывания(несколько видеодатчиков)




Иногда с точки зрения рационального использования вычислительных ресурсов более предпочтительным представляется режим ввода (вывода) данных по прерыванию. При этом процедура ввода (вывода) также может осуществляться ЦВУ, но под управлением специальной части программы, оформленной в виде подпрограммы обработки прерывания. Однако момент начала обмена данными заранее не определён. Начало обмена инициализируется не программой, а каким-либо внешним устройством, например, контроллером сопряжения, запрашивающим прерывание.

Прерывание основной программы, управляющей работой ЦВУ в составе АТСН, становится возможным после выполнения команды EIразрешение прерываний (рис. 2.8). Теперь, хотя ЦВУ и продолжает функционировать в соответствии с основной программой, выполнению каждой последующей команды предшествует проверка наличия запроса прерывания. Следует отметить, что эта процедура, обозначенная на блок-схеме оператором «ЗП?», выполняется процессором ЦВУ уже на аппаратном уровне в пределах командного цикла, и потому она практически не влияет на скорость обработки информации. Практически процедура проверки заключается в анализе сигнала на одном из специальных выводов процессора, который связан с соответствующим триггером контроллера сопряжения.

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


В качестве первой шага подпрограммы обслуживания прерывания обычно используется команда DIзапрет прерываний (если только в системе не предусматривается более сложный режим так называемых вложенных прерываний, то есть прерываний внутри прерываний). Затем необходимо позаботиться о сохранении в специальной памяти – стеке содержимого аккумулятора (А) и некоторых регистров общего назначения (РОН) ЦВУ, которые могут быть задействованы при выполнении подпрограммы обслуживания прерывания – ввода (вывода) данных.

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


Как показано на рис 2.8, в приведённом примере задача идентификации источника прерывания решается чисто программными средствами, путём последовательного опроса всех имеющихся в системе внешних устройств (ВУ1, ВУ2, ВУ3 и т.д.). Если какое-либо внешнее устройство запросило прерывание, то ЦВУ переходит к частной подпрограмме обработки (обслуживания) именно этого устройства. В противном случае опрос продолжается.

Следует обратить внимание на то, что в приведенном примере наивысшим приоритетом обладает ВУ1, поскольку оно опрашивается первым, а самым низким – ВУ3. Это может иметь значение в случае одновременного запроса прерывания сразу несколькими устройствами.

Очевидно, что при таком алгоритме обслуживание ВУ, имеющего более низкий приоритет будет возможно только после завершения обслуживания всех ВУ, обладающих более высоким приоритетом. После завершения какой-либо частной подпрограммы обработки прерывания осуществляется восстановление из стека временно сохранённых там данных в аккумулятор и другие регистры. Затем выполняется команда EI – разрешение прерываний и происходит возврат к основной программе.

Однако при большом числе возможных источников прерывания процедура идентификации внешних устройств путем их последовательного опроса может приводить к заметной задержке взаимодействия ЦВУ с этими устройствами.

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

Запрос прерывания от i -того внешнего устройства (ВУ i) устанавливает триггер соответствующего i -того контроллера сопряжения в состояние логической «1». С выхода триггера напряжение высокого уровня (сигнал логической «1») поступает в общую (для всех ВУ) линию запроса прерывания, а также на правый вход правой схемы совпадения (см. рис. 2.9). Процессор ЦВУ посылает ответный сигнал в общую линию передачи сигнала подтверждения прерывания. Эта линия подключена к левым входам правых схем совпадения, расположенных в контроллерах каждого ВУ. Однако, очевидно, что лишь в контроллере i -того ВУ, запросившего прерывание, сигнал подтверждения проявится и на выходе правой схемы совпадения, поскольку на правый вход данной схемы также воздействует высокий уровень напряжения сигнала запроса прерывания с выхода триггера.

Как показано на рис. 2.9, выход правой схемы совпадения под ключен к управляющему входу шинного формирователя, который образован группой электронных коммутирующих устройств. Число коммутирующих устройств равно числу разрядов шины данных. Каждое коммутирующее устройство, изображенное в виде треугольника, представляет собой повторитель сигнала, поступающего на его вход (основание треугольника). Однако на выходе коммутирующего устройства (вершина треугольника) сигнал может появиться лишь при наличии на его другом, управляющем входе сигнала логической «1». Поскольку управляющие входы группы коммутирующих устройств объединены в общую цепь управления шинного формирователя, то при наличии сигнала подтверждения прерывания в общую шину данных предаётся индивидуальный двоичный код i -того ВУ. Этот двоичный код, используемый ЦВУ в качестве косвенного адреса при обращении к подпрограмме обслуживания i -того ВУ, может быть «жестко» установлен, например, с помощью специальных перемычек на печатной плате контроллера.

Перейдя к подпрограмме обслуживания i -того ВУ, ЦВУ снимает сигнал подтверждения, формирует с помощью дешифратора сигнал выбора ВУ i и выполняет необходимую серию пересылок данных с соответствующего регистра контроллера сопряжения. Каждая пересылка синхронизируется микропроцессором ЦВУ путем передачи стробирующих импульсов, которые, проходя через левую схему совпадения, управляют работой второго шинного формирователя регистра данных. (Буферный регистр данных и буферный регистр адреса, необходимые для управления работой БЗУ, на рис.2.9 не показаны).

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

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...