русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

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


Дата добавления: 2015-08-14; просмотров: 1972; Нарушение авторских прав


Принцип обмена по прерываниям показан на рис. 1:

Рис. 1.

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

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

  1. Количество выводов МП ограничено, следовательно, количество входов запросов на прерывание также будет ограничено, следовательно, у системы будет жесткое ограничение на количество устройств, могущих участвовать в обмене по прерываниям с МП.
  2. Если два или более устройства одновременно запросят обмен по прерываниям, возникает конфликтная ситуация, так как одновременно может быть выполнен только один запрос.

Для устранения указанных недостатков применяется программируемый контроллер прерываний, который включается в систему между МП и устройствами, запрашивающими прерывания так, как показано на рис. 2.

Рис. 2.

Внешние устройства подключаются к контроллеру прерываний, а он в свою очередь — к микропроцессору. Контроллер прерываний решает три основные задачи:

  1. Передача в МП сигналов запросов на прерывание, поступивших от внешних устройств.
  2. Информирование МП о том, какое именно устройство запросило прерывание (МП должен это знать для перехода на выполнение соответствующей подпрограммы обработки прерывания, а сам он это определить не может, так как все запросы приходят к нему по одной линии INT).
  3. Разрешение конфликтных ситуаций, когда два или более устройства одновременно выдают запрос на прерывание. В этом случае контроллер должен выбрать из них какое-то одно в соответствии с теми приоритетами, которые назначены каждому устройству при настройке (программировании) контроллера. Первым будет обработан запрос от устройства, имеющего максимальный приоритет среди всех запросивших.

Обобщенная архитектура программируемого контроллера прерываний представлена на рис. 3.



Рис. 3.

Буфер шины данных, обеспечивает подключение к контроллера прерываний к шине данных. Подключение к ШД необходимо для:

  • программирования (начальной настройки) контроллера перед началом работы;
  • передачи контроллером МП номера устройства, запросившего прерывание.

Блок управления управляет работой контроллера, обеспечивая обмен данными между ним и МП (на этапе программирования контроллера), формирование сигнала INT и передачу в МП номера устройства, запросившего обмен.

Регистр управления содержит информацию о режиме работы контроллера. Информация в него заносится микропроцессором на этапе программирования (настройки) контроллера. К программируемым (настраиваемым) параметрам относятся, в частности, номера устройств для каждой линии запроса, приоритеты, схемы изменения приоритетов, наличие контроллеров следующего уровня и т.п.

Регистр запросов фиксирует запросы, приходящие от внешних устройств. К линиям IRQ подключаются ВУ, по ним передаются запросы на прерывание.

Регистр маскирования предназначен для "маскирования" (запрещения обработки) запросов на прерывание для определенного входа (входов). Регистр маскирования содержит по одному биту на каждый вход запроса от внешнего устройства. Если значение бита равно "1", обработка прерывания по данному входу разрешена, если "0" — запрещена. Значение в регистр маскирования записывается МП на этапе программирования контроллера.

Контроллер прерываний в общем случае может поддерживать разные схемы приоритетов.

Схема жестких приоритетов. Каждому устройству (входу IRQ) назначается фиксированный приоритет, который не меняется во время работы контроллера. Недостаток такой схемы — если устройство с высоким приоритетом будет интенсивно выдавать запросы, запросы от устройств с более низким приоритетом подолгу не будут обрабатываться. Схема используется в том случае, если в системе явно присутствует устройство, которому необходимо обеспечить первоочередное обслуживание в обработке прерываний.

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

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

Рис. 4.

На рис. 4 приведена временная диаграмма работы контроллера прерываний по обслуживанию запроса от устройства. Устройство выдает запрос на обмен по прерыванию на линию IRQ. Контроллер "передает" запрос в МП по линии INT (перед этим решается, если необходимо, задача приоритетов, проверяется, не запрещена ли обработка прерывания через регистр маскирования). Спустя некоторое время (разрыв на временной диаграмме) микропроцессор активизирует сигнал INTA, сообщая таким образом, что он готов начать процедуру обмена по прерываниям. В ответ на это контроллер выдает на шину данных номер устройства, запросившего прерывание. Микропроцессор загружает этот номер с шины данных и переходит к выполнению соответствующей подпрограммы обработки прерывания. Адрес подпрограммы МП определяет по номеру устройства с помощью специальной таблицы (таблицы векторов прерываний), в которой каждому номеру устройства соответствует определенный адрес подпрограммы.

Некоторые контроллеры вместо номера устройства выдают в МП непосредственно адрес подпрограммы обработки прерывания.

Разрыв на временной диаграмме вызван тем, что после получения сигнала запроса, МП может не сразу перейти к обработке прерывания. Как минимум, он должен завершить выполнение текущей команды. Кроме того, обработка прерываний в МП может быть временно запрещена — в этом случае сигнал INTA будет активизирован после того, как обработка прерываний снова будет разрешена.

Количество входов для подключения внешних устройств в любом контроллере прерываний ограничено и может возникнуть ситуация, когда необходимо подключить большее количество устройств, чем имеется входов у контроллера. В этом случае используется каскадирование контроллеров прерываний. Второй контроллер подключается к первому как одно из внешних устройств — выход INT второго контроллера (контроллера второго уровня) подключается к одному из входов IRQ первого контроллера (контроллера первого уровня). При этом первому контроллеру на этапе программирования указывается, что к одному из его входов подключено не простое устройство, а другой КП.



<== предыдущая лекция | следующая лекция ==>
Последовательный программируемый интерфейс | Программируемый таймер


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.535 сек.