Структура контролера переривань
Внутрішні і програмні переривання обробляються безпосередньо процесором, а для попередньої обробки зовнішніх запитів застосовують спеціалізовані пристрої - контролери переривань . Необхідність використання контролерів переривань зумовлена тим, що процесор або мікроконтроллер має обмежене число вхідних ліній для прийому запитів на переривання (1-2 - у Однокристальний МП, 2-10 - у мікроконтролерів). У той же час кількість пристроїв, які вимагають взаємодії з процесором через сигнали переривань, в реальних системах досягає декількох десятків. Таким чином, контролер переривань виконує селекцію запитів . Схема на ріс.6.1 ілюструє взаємодія процесора і контролера переривань при обробці групи зовнішніх запитів. Відзначимо важливу особливість контролерів переривань, виконаних у вигляді інтегральних схем, - можливість їх програмної настройки на необхідні режими роботи. rn rn Рис. 6.1. Структура контролера переривань і його взаємодію з процесором rn Контролери переривань є складними пристроями, а в їх структурі можна виділити чотири основних блоки: фіксації запитів, дозволи запитів, аналізу пріоритету запитів і схему управління . rn Блок фіксації запитів виконаний на основі регістра фіксації запитів переривань (РФЗ) і служить для фіксації асинхронних сигналів запитів від зовнішніх пристроїв. rn Блок дозволу запитів призначений для вибірки з надійшли сигналів тих запитів, які найбільш важливі для обробки на конкретному етапі реалізації основних алгоритмів. Основу блоку становить регістр дозволу переривань (РРП) . В цей реєстр можна записати програмним шляхом двійкові код, який буде визначати набір запитів, дозволений для обробки в даний момент. Нехай, наприклад, в РРП контролера переривань, що має вісім входів, записаний код 01100010. Це означає, що в даний момент дозволені переривання по входу 1, 5 і 6 (рахуючи з нуля, справа наліво). Найпростіша структура блоку дозволу запитів показана на мал. 6.2. rn rn Рис. 6.2. Схема побудови блоку фіксації та аналізу запитів переривань rn Код, записується в РРП, прийнято називати маскою переривань, так як нульові біти в цьому коді забороняють (маскують) обробку певних запитів. rn Блок аналізу пріоритетів запитів призначений для вибору з групи запитів одного найбільш важливого, тобто найбільш пріоритетного для обробки. Програмно задаються шкала пріоритетів визначає послідовність реакції на сигнали, які пройшли через РМП, у разі їх одночасного появи. На процесор пропускається сигнал, який був ідентифікований першим в порядку опитування. rn Код, що визначає шкалу пріоритетів, записують в регістр пріоритетів переривань (РПП) програмним шляхом. Як правило, контролери переривань мають вбудовану апаратну шкалу, відповідно до якої вхід з меншим номером має найвищий пріоритет. Тому запис коду в РПП, по суті, змінює стандартну апаратну шкалу. rn Як видно з мал. 6.1, процесор також має вбудований блок дозволу переривання та перевірки пріоритетності. Даний блок служить для узгодження зовнішнього запиту INT та внутрішніх і програмних запитів при їх одночасному вступі.
|