Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Тема 9. Обработка прерываний в контроллере




В качестве сигналов прерывания, поступающих в контроллер прерывания, могут быть сигналы, формируемые модулями, входящими в контроллер (модуль таймера, последовательные и параллельные порты, АЦП и др.) и могут быть внешние сигналы, поступающие в контроллер из устройств, подключенных к нему. Первая группа сигналов называется – внутренними прерываниями, а вторая – внешними. Структурная схема контроллера прерываний приведена на рис.

IR0 – IRn-1 - сигналы запросов прерываний, IR0 – имеет высший приоритет;

· IRR – регистр запросов прерываний. В этом регистре фиксируются поступившие запросы.

После поступления в КП одного или более запросов IR, КП выделяет самый приоритетный из них. Для назначения приоритетных запросов в КП имеется регистр приоритетов (IP).

· IE – регистр разрешения запросов прерывания. Он позволяет временно запрещать поступление одного или более запросов IR. В некоторых контроллерах такие регистры обозначаются MR – маскирование.

После определения запроса с максимальным приоритетом контроллер прерывания формирует в ЦПУ сигнал прерывания INT. После получения сигнала прерывания INT ЦПУ завершает выполнение текущей команды, прерываемой программы и формирует сигнал подтверждения INTA. После получения INTA КП формирует команду вызова подпрограммы Call ADRi (i = 0… (n-1)). После этого она обрабатывается как обычная команда. Выполнение команды Call ADRi в ЦПУ обеспечит обращение соответствующему адресу памяти программ для вызова подпрограммы обработки запроса прерывания.

 

В базовом микроконтроллере MCS-51 имеется 5 входов запросов прерывания: два внешних (INT0, INT1) поступают через линии порта Р3 и три внутренних прерывания: TF0, TF1(от таймеров/счетчиков) и TI/RI – прерывание от последовательного адаптера.

С точки зрения приоритетов все 5 прерываний могут быть распределены только по двум уровням приоритетов (0 – высший приоритет и 1 – низший приоритет).

Имеется внутренняя схема, которая решает, как должны обрабатываться запросы с одним уровнем приоритета, пришедших одновременно:

Ранжирование приоритетов

Hi INT 0

TF 0

INT 1

TF 1

Low TI/RI

Распределение областей РПП под определенные запросы прерываний показано на рис.

В резидентной памяти программ выделено 5 областей для каждого из 5 прерываний, каждая область - 8 байт для вектора прерывания. Таким образом, первые 43 байта программ имеют специальное назначение.

ORG 30H – это 48 ячейка, программу рекомендуется начинать с этого адреса.

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

 

Рис. Распределение прерываний

 





Поделиться с друзьями:


Дата добавления: 2016-12-07; Мы поможем в написании ваших работ!; просмотров: 369 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Начинайте делать все, что вы можете сделать – и даже то, о чем можете хотя бы мечтать. В смелости гений, сила и магия. © Иоганн Вольфганг Гете
==> читать все изречения...

2335 - | 2134 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.009 с.