Бродин В. Б., Шагурин И. И. Микроконтроллеры (1999) (1095894), страница 11
Текст из файла (страница 11)
1.14. Три из этих запросов являются немаскируемыми — это внешний сигнал на входе ХМ1, ввод неразрешенного кода операции и поступление команды прерывания ТКАР Данные запросы обслуживаются сразу после их поступления при любом значении признака 1 в слове состояния (РЗ'РР'). Остальные 14 запросов являются маскируемыми — их обслуживание можно запретить соответствующей маской, которая заносится в регистры масок !ХТ МАЗК, 1ХТ МАБК1. Разрешение или запрещение обслуживания всех маскируемых запросов производится командами Е!, !)1, которые устанавливают соответствующее значение признака 1- 1 или 0 в слове (РЯЧ).
К маскируемым относятся запросы, возникающие при поступлении внешних сигналов ЕХТ!ХТЗ..О, сигналов от таймеров: ОЧКТМК1, 2, процессора событий (ПРС): ЕРАЗ..О, ОЧК2-3, 0--1, запросы на последовательный ввод или вывод данных от блока последовательного обмена (БПО): К1, Т1. ы«кггжоипчзлпв»ы мчшгшот»л пвог»вмыи»овлимл. иигевелйс 50 Табл. 1.14. Запросы прерываний МК ВХС19бНР Стандартное абел евине Специллизирпввннсе иввние Обозначение Причина прерывания пм нексе и' нем нем ОРР2012Н Не вз еииый код апе цин ОРР20! ОН Команда ТКАР Внешний сигивл ОРИОЗЕН 30 ПЧТ15 ММ! ОРР203СН !4 ОРИ05СН 29 ПЧТ14 РТБ14 ЕХПМТ 3 Внешний сигнвл ОРИ05 АН 28 ОРИОЗ АН! 3 ПЧТ13 ЕХТПЧТ 2 Внешний сипев ОРИ058Н 27 ОРР2056Н 26 ОРР2054Н 25 ОРИ052Н 24 ОРИОЗВН 12 ОРИОЗОН 11 ОРИ034Н 10 ОРИОЗЗН 9 РТБ12 ОУК 2-3 ОЧК 0-1 ПЧТ! 2 П епслнение ПРС,мо ли 2 нлн 3 П пслнение ПРС,ма ли 0 нли 1 Сигнвл ПРС, ме ль 3 ПЧТ1! РТБ11 РТБ10 ПЧТ10 ЕРА 3 ЕРА 2 1МТ09 Сигнвл ПРС, ме ль 2 ОРР2050Н 23 ОРР204ЕН 22 ПЧТОВ ОРР2030Н 8 ОРР200ЕН 7 РТБ08 ЕРА 1 Сигнал ПРС, мо ль ! ПЧТ07 Сигнал ПРС, мо ль 0 ЕРА 0 ОРИ04СН 2! ПЧТ06 ОРР200СН 6 РТВ06 Песледеввгельный ввод ОРИ04АН 20 ОРИООАН 5 Т1 РТВ05 Последовательный вывод ОРР2048Н 19 ОРИООВН 4 1М304 ЕХТПЧТ 1 Внешний сигивл ОРИОООН 3 РТВОЗ ОРР2046Н 18 ПЧТОЗ ЕХТ1МТ 0 Внешний сигнвл ОРИОО«Н 2 ОРИОй«Н 1 ОРИ044Н 17 ОРР2 042 Н 16 ПЧТО2 Зв е ви евино П пслнениетайме в2 РТВО! ПМТО! ОЗгКТМК 2 ОРР2000Н 0 ОРИ004Н 15 О!ГКТМК 1 1МТОО П полнение тайме в ! *) П вЂ” уровень приоритета ожидания: 30 — максимальный, 0 — минимальный.
Поступление сигнала ХМ1 и маскируем ых запросов фиксируется установкой «1» в соответству!ощем разряде 8-разрядных регистров 1ХТ РЕХР, 1ХТ РЕХШ, которые размещаются в младшем файле, имея номера 09Н, 12Н (см. табл. 1.3). Формат содержимого этих регистров показан на рис. 1.8. Когда начинается обслуживание поступившего запроса, соответствующий разряд в регистрах 1ХТ РЕХР, 1ХТ РЕХШ сбрасывается в «О».
Маскирование запросов осуществляется с помощью 8-разрядных регистров 1ХТ МАЯК, 1ХТ МАЯК1, имеющих номера 08Н, 13Н в младшем файле, в которые загружается маска прерываний. Значение «1» в соответствующем разряде маски разрешает обслуживание данного прерывания, «О» — запрещает обслуживание. Форматы регистров 1ХТ МАЯК, 1ХТ МАЯК1 полностью аналогичны форматам регистров 1ХТ РЕХР, 1ХТ РЕХШ.
Следует только отметить, что бит 7 в регистре 1ХТ МАЯК1 не влияет на обслуживание прерывания ХМ1, которое является немаскируемым (рекомендуется записывать в этот разряд «О»). Следует помнить, что при выполнении команды Р1)ЯНР разряды регистра 1ХТ МАЯК сбрасываются в «О», а при выполнении команды Р()ЯНА сбрасыва!отея в «0» разряды обоих регистров 1ХТ МАЯК, 1ХТ МАЯК1. Поэтому после выполнения этих команд требуется загрузка данных регистров для маскирования последу!ощих прерываний. МИКРОКСИТРОЛЛЕРМ СЕМЕЙСТВА МСВ.ВВ 51 7 6 5 4 3 2 1 о ЕРА 0 К! Т! ЕХТ!ХТ 1 ЕХТ!ХТО ОЧКТМК ! ОЧКТМК 2 (резерв) !ХТ РЕХ1) (адрес 09Н), !ХТ МАЯК (адрес 08Н) 3 2 1 0 ХМ! ЕХТ1ХТ 3 ЕХТ!ХТ 2 ОЧК 2-3 ОЧК 0-1 ЕРА 3 ЕРА 2 ЕРА 1 1ХТ РЕХ!1 1 (адрес 12Н), !ХТ МАЯК 1 (адрес 1ЗН).
Рис. 1.8. Формат регистров !МТ РЕМ(1, 1МТ РЕМО! Внешние сигналы прерывания ЕХТ 1ХТО, 1, 2, 3 поступают на соответствующие выводы портов Р2, РЗ, если эти порты запрограммированы на выполнение специальных функций. Запрос на прерывание формируется при поступлении на сответствующий вход положительного фронта сигнала, который затем должен сохранять высокий уровень потенциала в течение не менее одного такта синхронизации. Значения сигналов на входах ЕХТ 1ХТ проверяются микроконтроллером во второй фазе каждого такта.
Если сигнал прерывания поступил менее, чем за четыре такта до окончания выполнения очередной команды, то прерывание производится только после выполнения следующей команды программы. Таким образом, обслуживание запроса ЕХТ 1ХТ может задержаться на (Х)с+4) такта, где Х)е — количество тактов выполнения следующей команды, Если микроконтроллер работает в холостом режиме (см. раздел 1.1), то поступление сигнала ЕХТ !ХТ переводит его в нормальный рабочий режим и обеспечивает выполнение подпрограммы обслуживания.
После окончания этой подпрограммы микроконтроллер остается в нормальном режиме и переходит к выполнению команды, следующей за той, после которой произошло его переключение в холостой режим. В режиме отключения питания поступление сигнала ЕХТ 1ХТ переводит мкроконтроллер в рабочий режим. Если обслуживание поступившего запроса разрешено, то выполняется соответствующая подпрограмма, если обслуживание запрещено, то выполняется команда, следующая за командой 1Р(.Р1), которая перевела микроконтроллер в режим отключения питания. Работа таймеров и ПРС подробно рассмотрена в разделе 1.6, где указаны усяовия возникновения запросов на прерывания ОНК ТМК1, 2, ОЧКО-1, 2- 3, ЕРАЗ..О.
Реализация последовательного ввода-вывода описана в разделе 1.5, там же приведены условия образования запросов К!, Т1. МИКРОКОНТРОЛЛЕРЫ АРХИТЕКТУР ЛРОГРАММИРОЕАНИ ИНТЕРФЕЙС 52 Обслуживание запросов на прерывания производится в соответствии с их приоритетами (табл. 1.14). Минимальный приоритет имеет прерывание с уровнем О, максимальный — с уровнем 30 (немаскируемое прерывание )ч М1). При поступлении нескольких запросов обслуживание начинается с запроса, иметощего наиболее высокий приоритет. Ряд команд микроконтроллера защищен от прерывания. Это значит, что поступившие запросы на прерывание, если они разрешены, обслуживаются только после выполнения команды, следующей за защищенной.
Такими защищенными командами являются Е1, Р1, ЕРШ, РРТЕ, Р!)ЯНР, Р1)БНА, РОРР, РОРА. Стандартная процедура обслуживания прерываний состоит в обрашении к вектору, размещенному на странице ОГГН памяти по адресу, фиксированные значения которого для каждого вида прерывания приведены в табл.
1. 14. 7 6 5 4 3 2 1 0 0 (резерв) К1 Т! ОЧКТМК 2 ЕХТПНТ 1 ЕХТПчТ 0 ЕРА 0 ОЧКТМК 1 15 14 13 12 11 10 9 8 0 (резерв) ЕХТПНТЗ ОЧК 2-3 ОЧКО-1 ЕХТПЧТ 2 ЕРА 3 ЕРА 2 ЕРА 1 Рис. 1.9. Формат регистров РТЗ ЗЕ1. и РТЗ ЗНЧ Система прерываний предусматривает два варианта обслуживания поступатоших запросов: стандартное и специализированное. Стандартное обслуживание выполняется с помощью контроллера прерываний (КПР), специализированное обслуживание — с помощью периферийного сервера (ПСР). Разрешение и запрещение специализированного обслуживания производится командами ЕРТЯ и РРТБ.
Выбор варианта обслуживания для каждого маскируемого прерывания осуществляется с помощью регистра РТЯ БЕ1, формат содержимого которого показан на рис. 1.9. Установка «0» в соответствующем разряде регистра РТЯ ЕЕ1 обеспечивает стандартное обслуживание данного запроса, установка «1» — специализированное обслуживание с помошью ПСР. Для прерываний по сигналу !т!М1, поступлению неразрешенного кода операции и команде ТКАР предусмотрена только стандартная процедура обслуживания. МИЕРОЕ ТРСЛЛЕРЫ СЕМЕЙСТВА МСВ-ЕВ 53 Вектор представляет собой 16-разрядный адрес первой команды подпрограммы обслуживания, который загружается в программный счетчик (РС) после того, как его текущее значение заносится в стек.
Количество тактов Хч, требуемое для загрузки вектора в программный счетчик, зависит от режима адресации (64 К или 1М) и места размещения стека — во внутренней или внешней памяти. В режиме 64К значение Хч - 11 при размещении стека во внутренней памяти, Хч - 13 при размещении стека во внешней памяти. Для режима 1М соответствующие значения Хч составляют 15 и 18. Общее время, требуемое для перехода к подпрограмме стандартного обслуживания после поступления запроса ЕХТ1ХТ, с учетом тактов для завершения выполнения предыдущих команд может достигать значения Х! - (Щ+4)+Хк Максимальная величина составляет Х! - 56 тактов для режима 64К и Х1- 61 такт для режима 1М при Х)» = 39 (наиболее длительная команда ХОКМ1.). Специализированное обслуживание прерываний позволяет выполнить с помощью ПСР (без обращения к подпрограммам обслуживания) процедуры одиночной пересылки, пересылки блока, генерации на одном из выводов ЕРАЗ..О импульсов с программируемой частотой и скважностью, модифицированного варианта генерации импульсов с расширенным диапазоном скважности.
Каждая из этих четырех процедур требует использования специального блока управляющих данных. Эти блоки данных должны быть определены для каждого типа запроса РТЯ0..14, обслуживаемого ПСР, и размещаться в регистровом файле. Запросы РТЯ0..14, маскируются так же, как стандартные запросы 1ХТ0..14, содержимым регистров 1ХТ МАЯК, 1ХТ МАЯК1. Порядок обслуживания поступивших запросов определяется их уровнем приоритета (табл. 1.14). При этом приоритет запросов на специализированное обслуживание РТЯ0..14 выше приоритета запросов на стандартное обслуживание 1ХТ0..14.