Микропроцессоры и микроконтроллеры

 
 
 
«Хорошо, Java, ВОЗМОЖНО, хороший пример того как должен выглядеть язык. Но тогда программы на Java — это хороший пример как НЕЛЬЗЯ писать программы.»
pixadel
Русский | Українська


Микропроцессоры и микроконтроллеры :: Принципи роботи мікропроцесорів :: Структура контролера переривань

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

Внутрішні і програмні переривання обробляються безпосередньо процесором, а для попередньої обробки зовнішніх запитів застосовують спеціалізовані пристрої - контролери переривань . Необхідність використання контролерів переривань зумовлена тим, що процесор або мікроконтроллер має обмежене число вхідних ліній для прийому запитів на переривання (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 та внутрішніх і програмних запитів при їх одночасному вступі.