Студопедия — Устройство управления прерываниями
Студопедия Главная Случайная страница Обратная связь

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

Устройство управления прерываниями






(система прерываний)

Устройство управления прерываниями (УУП) предназначено для обеспечения реакции микроконтроллера на внешние и внутренние запросы прерывания. Базовые микроконтроллеры семейства МК51 имеют 5 прерываний: два внешних (входы и ) и три внутренних (от таймеров/счетчиков T/C0, T/С1 и последовательного порта) [3]. Функционально-структурная схема УУП показана на рис.46.

 

Рис.46. Функционально-структурная схема блока УУП

 

Устройство управления прерываниями позволяет:

- фиксировать запросы от внешних и внутренних источников прерываний при их исполнении;

- программным способом разрешить или запретить работу системы прерываний в целом;

- программным способом маскировать запросы прерываний отдельных источников;

- программным способом устанавливать высокий или низкий приоритет каждому источнику запроса прерываний;

- формировать вектор прерывания;

- аппаратным способом снять запрос на прерывание при его исполнении.

В состав блока УУП входят следующие элементы:

Буфер УУП осуществляет связь между 8-разрядной внутренней шиной ШВ и 8-разрядной шиной данных ШД, обеспечивая запись, хранение и коммутацию данных.

Регистр разрешения прерываний IE (Interrupt Enable) предназначен для разрешения или запрещения прерываний от соответствующих источников. Обозначение разрядов регистра IE и их назначение показано в табл. 13:

Таблица 13

Символ Позиция Имя и назначение
ЕА IE.7 Общий запрет/разрешение прерываний. Сбрасывается/устанавливается программно для всех прерываний независимо от состояний IЕ4 - IЕ0
---- IE.6 Не используются
---- IE.5
ES IE.4 Бит разрешения прерывания от УАПП. Установка/сброс программой для разрешения/запрета прерываний от флагов TI или RI
ET1 IE.3 Бит разрешения прерывания от таймера 1. Установка/сброс программой для разрешения/запрета прерываний от таймера 1
EX1 IE.2 Бит разрешения внешнего прерывания 1. Установка/сброс программой для разрешения/запрета прерываний
ET0 IE.1 Бит разрешения прерывания от таймера 0. Работает аналогично IE.3
EX0 IE.0 Бит разрешения внешнего прерывания 0. Работает аналогично IE.2

 

- ЕА - управление всеми источниками прерываний одновременно. Если ЕА= «0», то прерывания запрещены. Если

ЕА= «1», то прерывания могут быть разрешены индивидуальными разрешениями ЕХ0, ЕТ0, ЕХ1, ЕТ1, ES;

- ES - управление прерыванием от последовательного порта.

- ES= «1» – разрешено, ES= «0» – запрещено;

- ЕТ1 - управление прерыванием от Т/С 1.

ЕТ1= «1» – разрешено, ЕТ1= «0» – запрещено;

- ЕХ1 - управление прерыванием от внешнего источника . ЕХ1= «1» – разрешено, ЕХ1= «0» – запрещено;

- ЕТ0 - управление прерыванием от Т/С 0.

ЕТ0= «1» – разрешено, ЕТ0= «0» – запрещено;

- ЕХ0 - управление прерыванием от внешнего источника . ЕХ0= «1» - разрешено, ЕХ0= «0» - запрещено.

Регистр приоритетов прерываний IP (Interrupt Priority) предназначен для установки уровня приоритета прерывания для каждого из пяти источников прерываний, установкой или сбросом соответствующих разрядов регистра IP. Все разряды регистра IP устанавливаются и сбрасываются программным способом. Обозначение разрядов регистра IP и их назначение показано в табл. 14.

Таблица 14

Символ Позиция Имя и назначение
---- IP.7 - IP.5 Не используются
PS IP.4 Бит приоритета УАПП. Установка/сброс программой для присваивания прерыванию от УАПП высшего/низшего приоритета
PT1 IP.3 Бит приоритета таймера 1. Установка/сброс программой для присваивания прерыванию от таймера 1 высшего/низшего приоритета
PX1 IP.2 Бит приоритета внешнего прерывания 1. Установка/сброс программой для присваивания высшего/низшего приоритета внешнему прерыванию INT1
PT0 IP.1 Бит приоритета таймера 0. Работает аналогично IP.3
PX0 IP.0 Бит приоритета внешнего прерывания 0. Работает аналогично IP.2

 

Приоритет источников прерывания при одинаковых значениях битов управления регистра IP возрастает в направлении от старших разрядов к младшим. Установка любого бита в состояние лог.1 при значениях других битов лог.0 позволяет произвольно устанавливать высокий уровень приоритета для любого источника.

Регистр управления (TCON) предназначен для приема и хранения кода управляющего слова. Обозначение разрядов регистра TCON и их назначение приведено в табл. 12. Для управления таймерами/счетчиками используются 4 старших разряда, а для управления внешними прерываниями – 4 младших разряда регистра TCON.

Внешние прерывания INT0 и INT1 могут быть вызваны либо уровнем, либо переходом сигнала из «1» в «0» на входах МК51 в зависимости от значений управляющих бит IT0 и IT1 в регистре TCON (ITx= «1» - управление по срезу, ITx= «0» –управле-ние по низкому уровню). От внешних прерываний устанавливаются флаги IE0 и IE1 в регистре TCON, которые инициируют вызов соответствующей подпрограммы обслуживания прерывания. Сброс этих флагов выполняется аппаратно только в том случае, если прерывание было вызвано по переходу (срезу) сигнала. Если же прерывание вызвано уровнем входного сигнала, то сбросом флага IE управляет соответствующая подпрограмма обслуживания прерывания путем воздействия на источник прерывания с целью снятия им запроса.

Флаги запросов прерывания от таймеров TF0 и TF1 сбрасываются автоматически при передаче управления подпрограмме обслуживания. Флаги запросов прерывания RI и ТI устанавливаются блоком управления УАПП аппаратно, но сбрасываться должны программой.

Прерывания могут быть вызваны или отменены программой, так как все перечисленные флаги программно-доступны и могут быть установлены/сброшены программой с тем же результатом, как если бы они были установлены/ сброшены аппаратными средствами.

Логика обработки флагов прерываний осуществляет приоритетный выбор запроса прерывания, сброс его флага и инициирует выработку аппаратно-реализованной команды перехода на подпрограмму обслуживания прерывания.

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

EXTI0 IE0 0003H Внешнее прерывание ;

TIMER0 TF0 000BH Прерывание таймера/счетчика ТС0;

EXTI1 IE1 0013H Внешнее прерывание ;

TIMER0 TF1 001BH Прерывание таймера/счетчика ТС1;

SINT RI ∨ TI 0023H Прерывание последовательного

порта.

Логика управления УУП организует работу всех элементов структуры в соответствии с запрограммированными режимами работы и синхронизирует работу блока УУП с работой МК51.

Работа с системой прерываний МК51. Механизм прерываний в МК51 позволяет автоматически, на аппаратном уровне реагировать на внешние сигналы (входы и ) и на внутренние события (переполнение таймеров / счетчиков, завершение последовательного обмена).

Функционально-логическая структура системы прерываний показана на рис.47.

 

 

Рис.47. Функционально-логическая структура системы прерываний

 

Наступившие события фиксируются в виде флагов IE0, TF0, IE1, TF1, RI или TI при установке соответствующих битов в регистрах. Флаги IE0, IE1, TF0, TF1, RI, TI устанавливаются независимо от того разрешено или нет соответствующее прерывание в регистре IE. Дальнейшее их исполнение зависит от состояния битов разрешения прерываний EX0, ET0, EX1, ET1, ES и EA (как индивидуальных, так и общего) в регистре IE. Биты флагов и биты разрешения прерываний обрабатываются логикой И (элементы DD4 и DD5).

Флаги наступивших событий обрабатываются в определенном порядке, который зависит от приоритета прерывания. Структура приоритетов прерываний является двухступенчатой. Каждому источнику прерывания может быть индивидуально присвоен один из двух уровней приоритета: высокий H или низкий L. Выполняется это установкой (высокий уровень приоритета) или сбросом (низкий уровень приоритета) соответствующих бит PX0, PT0, PX1, PT1, PS в регистре приоритетов прерываний IP (см. табл. 14). Программа обработки прерывания с низким уровнем приоритета может быть прервана запросом прерывания с высоким уровнем приоритета, но не может быть прервана другим запросом прерывания с низким уровнем приоритета. Программа обработки прерывания с высоким уровнем приоритета не может быть прервана никаким другим запросом прерывания ни от одного из источников. Если два запроса с разными уровнями приоритета приняты одновременно, сначала будет обслужен запрос с высоким уровнем приоритета. Если одновременно приняты запросы с одинаковым уровнем приоритета, обработка их будет производиться в порядке, задаваемом последовательностью внутреннего опроса флагов прерываний. Таким образом, в пределах одного приоритетного уровня существует еще одна структура приоритетов, представленная в табл. 15.

Таблица 15

 

Необходимо особо подчеркнуть, что структура «приоритет внутри уровня» работает только в тех случаях, когда определяется последовательность обслуживания запросов на прерывания, которые приняты одновременно и при этом имеют одинаковый уровень приоритета.

Алгоритм аппаратной обработки прерывания при обнаружении запроса прерывания представлен на рис. 48.

 

Рис.48. Блок-схема алгоритма обработки прерываний в МК51

 

При реализации алгоритма микроконтроллер выполняет следующие действия.

Прием и обработка сигнала запроса прерывания. Для четкой фиксации сигнала внешнего прерывания по уровню необходимо, чтобы низкий уровень на выводе удерживался в течение не менее 12 периодов сигнала тактовой частоты fCLK МК51. Это объясняется тем, что проверка выводов , выполняется внутренними аппаратными средствами один раз в каждом машинном цикле. В случае внешнего прерывания по фронту флаг IЕх будет установлен, если две последовательные проверки входа покажут в одном машинном цикле «1», а в следующем «0». Поэтому, если внешнее прерывание активизируется по переходу из состояния высокого уровня в состояние низкого уровня, то минимум одному машинному циклу низкого уровня должен предшествовать минимум один машинный цикл высокого уровня на выводе . Если внешнее прерывание активизируется по уровню, запрос должен удерживаться до начала обслуживающей подпрограммы и сниматься до завершения этой подпрограммы для предотвращения повторного обслуживания.

Уровни на выводах и инвертируются и защелкиваются в флаги прерывания IE0 и IE1 в фазе S5P2 каждого машинного цикла. В фазе S5P2 устанавливаются флаги прерываний последовательного порта RI и TI. Флаги TF0 и TF1 таймеров/счетчиков устанавливаются в фазе S5P2 машинного цикла, в котором происходит переполнение Т/С.

Анализ и обработка флагов прерываний. Анализ (опрос) флагов выполняется внутренними средствами МК51 в следующем после установки (защелкивания) флагов машинном цикле (цикл опроса флага). Для реализации процедуры прерывания используются только флаги, имеющие индивидуальное и общее разрешение в регистре IE. Кроме того, определяется уровень приоритета, согласно битам регистра IP. И только после выполнения последнего цикла текущей команды производится аппаратный вызов соответствующей подпрограммы обслуживания, эквивалентный команде LCALL.

Переход к подпрограмме обслуживания прерывания. Обращение к подпрограмме обслуживания задерживается (блокируется аппаратный вызов LCALL) при выполнении хотя бы одного из следующих условий:

- уже производится обработка прерывания с таким же или высшим приоритетом;

- текущий машинный цикл (цикл опроса флага) не является последним циклом выполняемой команды;

- выполняемая команда текущей программы является командой RETI или любой командой обращения к регистрам IE, IP.

В последнем условии после окончания одной из вышеуказанных команд обязательно выполнится еще минимум одна команда текущей программы перед вызовом подпрограммы обслуживания прерывания. Флаг прерывания, установленный во время действия блокировки прерывания по одному из трех указанных выше условий и сброшенный до их снятия, не вызовет обслуживания соответствующего запроса прерывания.

Если запрос прерывания с более высоким уровнем приоритета зафиксируется во время аппаратного вызова подпрограммы обслуживания, а именно в фазе S5P2 1-го цикла аппаратной команды LCALL, то по окончании процедуры текущего вызова сразу же начнет выполняться процедура аппаратного вызова по поступившему запросу.

Необходимо отметить, что время реакции МК51 на сигнал запроса прерывания (от момента появления сигнала запроса до загрузки вектора в РС) может составлять от 38 до 86 периодов тактовой частоты fCLK. Это время зависит от длительности команды предшествующей и длительности выполнения самой команды LCALL, а также времени аппаратной реакции МК51 на сигнал запроса.

Выполнение подпрограммы обслуживания прерывания. Аппаратно-реализуемая команда LCALL загружает содержимое счетчика команд PC в стек (при этом PSW в стек не записывается), в ячейку стека с младшим адресом загружаются разряды 0-7 счетчика команд, а в следующую ячейку стека - разряды 8-15 счетчика команд. Таким образом сохраняется адрес возврата в основную программу после завершения подпрограммы обслуживания прерывания.

Далее команда LCALL записывает в PC адрес (вектор) соответствующей подпрограммы обработки прерывания. После чего начинается выполнение подпрограммы обслуживания прерывания. В начале подпрограммы обычно рекомендуется программным путем сохранить в стек содержимое регистров A, PSW с помощью команд: PUSH A; PUSH PSW, а в конце подпрограммы извлечь их из стека в обратном порядке с помощью команды POP: POP PSW; POP A.

Возврат из подпрограммы обслуживания прерывания в основную программу. Подпрограмма обслуживания прерывания обязательно должна заканчиваться командой RETI. Команда RETI восстанавливает состояние логики прерывания и загружает в счетчик команд PC 2 байта адреса возврата из двух верхних ячеек стека. Восстановление состояния логики прерывания заключается в следующем: при переходе по вектору на подпрограмму обработки пре-рывания автоматически до выполнения команды RETI независимо от состояния бит регистра IE запрещаются все прерывания с уровнем приоритета, равным уровню приоритета обслуживаемого прерывания, т. е. вложенные прерывания с равными уровнями приоритета невозможны. Команда RETI снимает этот запрет. При использовании команды RET восстанавливается только состояние счетчика команд, т. е. происходит возврат в прерванную программу. Состояние логики прерывания команда RET не меняет, т. е. логика управления обслуживанием прерываний по-прежнему считает, что продолжает обслуживаться прерывание, подпрограмма обработки которого была закончена командой RET.

 







Дата добавления: 2015-08-12; просмотров: 1081. Нарушение авторских прав; Мы поможем в написании вашей работы!



Шрифт зодчего Шрифт зодчего состоит из прописных (заглавных), строчных букв и цифр...

Картограммы и картодиаграммы Картограммы и картодиаграммы применяются для изображения географической характеристики изучаемых явлений...

Практические расчеты на срез и смятие При изучении темы обратите внимание на основные расчетные предпосылки и условности расчета...

Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...

Характерные черты официально-делового стиля Наиболее характерными чертами официально-делового стиля являются: • лаконичность...

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

Понятие и структура педагогической техники Педагогическая техника представляет собой важнейший инструмент педагогической технологии, поскольку обеспечивает учителю и воспитателю возможность добиться гармонии между содержанием профессиональной деятельности и ее внешним проявлением...

Ганглиоблокаторы. Классификация. Механизм действия. Фармакодинамика. Применение.Побочные эфффекты Никотинчувствительные холинорецепторы (н-холинорецепторы) в основном локализованы на постсинаптических мембранах в синапсах скелетной мускулатуры...

Шов первичный, первично отсроченный, вторичный (показания) В зависимости от времени и условий наложения выделяют швы: 1) первичные...

Предпосылки, условия и движущие силы психического развития Предпосылки –это факторы. Факторы психического развития –это ведущие детерминанты развития чел. К ним относят: среду...

Studopedia.info - Студопедия - 2014-2024 год . (0.012 сек.) русская версия | украинская версия