Контролер переривань

Контро́лер перерива́нь (англ. Programmable Interrupt Controller, PIC)  мікросхема чи інтегрований блок процесора, що відповідає за послідовну обробку запитів на переривання від різних пристроїв.

Призначення

Використовується для забезпечення процедури переривання в мікропроцесорних системах:

  • обслуговує до восьми запитів на переривання мікропроцесора;
  • визначає пріоритет запитів;
  • має можливість нарощування кількості ліній запитів переривання за рахунок каскадного з’єднання контролерів переривання.

Структура контролера переривань

Внутрішні і програмні переривання обробляються безпосередньо процесором, а для попередньої обробки зовнішніх запитів застосовують спеціалізовані пристрої - контролери переривань. Необхідність використання контролерів переривань зумовлена тим, що процесор або мікроконтролер має обмежене число вхідних ліній для прийому запитів на переривання (1-2  — у однокристальної ЕОМ, 2-10  — у мікроконтролерів). У той же час кількість пристроїв, які вимагають взаємодії з процесором через сигнали переривань, в реальних системах досягає декількох десятків. Таким чином, контролер переривань виконує селекцію запитів. Відзначимо важливу особливість контролерів переривань, виконаних у вигляді інтегральних схем,  — можливість їх програмного налаштування на необхідні режими роботи.

Контролери переривань є складними пристроями, а в їх структурі можна виділити чотири основних блоки: фіксації запитів, дозволи запитів, аналізу пріоритету запитів і схему керування.

Блок фіксації запитів виконаний на основі регістра фіксації запитів переривань (РФЗ) і служить для фіксації асинхронних сигналів запитів від зовнішніх пристроїв.

Блок дозволу запитів призначений для вибірки із вхідних сигналів тих запитів, які є найважливішими для обробки на конкретному етапі реалізації основних алгоритмів. Основу блоку становить регістр дозволу переривань (РРП). В цей регістр можна записати програмним шляхом двійковий код, який визначатиме набір запитів, дозволених для обробки в цей час. Нехай, наприклад, в РРП контролера переривань, що має вісім входів, записаний код 01100010. Це означає, що в цей час дозволені переривання по входу 1, 5 і 6 (рахуючи з нуля, справа наліво). Код, який записується в РРП, прийнято називати маскою переривань, так як нульові біти в цьому коді забороняють (маскують) обробку певних запитів.

Блок аналізу пріоритетів запитів призначений для вибору з групи запитів одного найважливішого, тобто найпріоритетнішого для обробки. Програмно задана шкала пріоритетів визначає послідовність реакції на сигнали, які пройшли через РМП, у разі їх одночасної появи. На процесор пропускається сигнал, який був ідентифікований першим в порядку опитування. Код, що визначає шкалу пріоритетів, записують в регістр пріоритетів переривань (РПП) програмним шляхом. Як правило, контролери переривань мають вбудовану апаратну шкалу, відповідно до якої вхід з меншим номером має найвищий пріоритет. Тому запис коду в РПП, по суті, змінює стандартну апаратну шкалу.

Номер входу контролера переривань позначається «IRQ». Не слід плутати цей номер із пріоритетом переривання, а також з номером входу в таблицю векторів преривань (INT).

Процесор також має вбудований блок дозволу переривання та перевірки пріоритетності. Цей блок служить для узгодження зовнішнього запиту на переривання та внутрішніх і програмних запитів при їх одночасному надходженні.

Посилання

Див. також

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.