ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 26.02.2020
Просмотров: 2345
Скачиваний: 5
Источник Приоритет внутри уровня 'i
J
1. IE0 (высший) i
2. TF0 а
3. IE1 i
4. TF1 i
5. RI+TI (низший) l1
Необходимо особо подчеркнуть, что структура "Приоритет внутри уровня" работает только в тех случаях, когда определяется последовательность обслуживания запросов на прерывания, которые приняты одновременно и при этом имеют одинаковый уровень приоритета.
Общая схема системы прерываний ОМЭВМ приведена на рис. 2.22а.
Рис. 2.2'2а. Система прерываний ОМЭВМ
Обработка прерываний и время отклика. Уровни на выводах INT0 и INT1 инвертируются и защелкиваются в флаги прерывания IE0 и IE1 в фазе S5P2 каждого машинного цикла. В фазе S5P2 устанавливаются флаги прерываний последовательного порта RI и TI. Флаги TF0 и TF1 таймеров/счетчиков устанавливаются в фазе S5P2 машинного цикла, в котором происходит переполнение Т/С. Анализ (опрос) флагов выполняется внутренними средствами ОМЭВМ в следующем после установки (защелкивания) флагов машинном цикле (цикл опроса флага). И только после выполнения последнего цикла текущей команды производится аппаратный вызов соответствующей подпрограммы обслуживания, эквивалентный команде LCALL.
Обращение к подпрограмме обслуживания задерживается (блокируется аппаратный LCALL) при выполнении хотя бы одного из следующих условий:
— уже производится обработка прерывания с таким же или высшим приоритетом;
— текущий машинный цикл (цикл опроса флага) не является последним циклом выполняемой команды;
. — выполняемая команда текущей программы является командой RETI или любой командой обращения к регистрам IE, IP.
В последнем условии после окончания одной из вышеуказанных команд обязательно выполнится еще минимум одна команда текущей программы перед вызовом подпрограммы обслуживания прерывания.
Флаг прерывания, установленный во время действия блокировки прерывания по одному из трех указанных выше условий и сброшенный до их снятия, не вызовет обслуживания соответствующего запроса прерывания.
На рис. 2.23 изображены случаи наиболее быстрой и медленной реакции на прерывание (на примере внешнего прерывания). От момента фиксации запроса внешнего прерывания до начала выполнения первой команды подпрограммы
После того, как указанные манипуляции выполнены, будет происходить следующее: выполнится одна команда основной программы, после чего управление i будет передано подпрограмме обработки прерывания по INT0, которая не сможет | завершиться до тех пор, пока на входе INT0 не будет зафиксирован импульс | "0"—"i"—"0". После прохождения такого импульса, задаваемого кнопкой "ШАГ" j выполнится команда RETI, управление возвратится в основную программу, где | будет выполнена одна команда, после чего вновь начнет обрабатываться прерывание по INT0. Таким образом, одно нажатие кнопки "ШАГ" (один импульс "0"—"1"—"0" на входе INT0) вызывает выполнение одной команды основной программы.
2.3.5. Организация памяти
Все ОМЭВМ семейства МК51 имеют несколько адресных пространств, функционально и логически разделенных за счет разницы в механизмах адресации и сигналах управления записью и чтением:
— память программ; •
— внутренняя память данных; •
— внешняя память данных.
Структура адресного пространства ОМЭВМ показана на рис. 2.24. Слева приводятся адреса соответствующих областей памяти.
Рис. 2.24. Пространство памяти ОМЭВМ
Память программ имеет 16-битовую адресную шину, ее элементы адресуются использованием счетчика команд (PC) или инструкций, которые вырабатывают К разрядные адреса.
Память программ доступна только по чтению. ОМЭВМ не имеют команд управляющих сигналов, предназначенных для записи в память программ. Памж программ имеет байтовую организацию и общий объем до 64 Кбайт. Ряд ОМЭВ] (КР1816ВЕ51, КМ1816ВЕ751, КР1830ВЕ51) содержат расположенную на kphctbaj внутреннюю память программ емкостью 4 Кбайт, которая может быть расширена ^ 64 Кбайт за счет подключения микросхем внешней памяти программ. Внутрена память программ КР1816ВЕ51 и КР1830ВЕ51 представляет собой ПЗ
формируемое при изготовлении ОМЭВМ. Внутренняя память программ КМ1816ВЕ751 является ППЗУ с ультрафиолетовым стиранием.
Таким образом, для ОМЭВМ КР1816ВЕ51, КМ1816ВЕ751 и КР1830ВЕ51 внутренняя и внешняя память программ разделены в соотношении 4 К/60 К.
ОМЭВМ КР1816ВЕ31 и КР1830ВЕ31 не имеют внутренней памяти программ и могут работать только с внешней емкостью до 64 Кбайт.
С точки зрения программиста имеется только один вид памяти программ объемом 64 К. Тот факт, что в ряде ОМЭВМ он образуется комбинацией массивов, находящихся на кристалле и вне его, в соотношении 4 К/60 К для программиста неощутим, так как АЛУ автоматически выбирает байт из соответствующего массива в соответствии с его адресом.
Сигналом, стробирующим выборку и ввод байта из внешней памяти программ в ОМЭВМ является сигнал ОМЭВМ РМЕ. Для ОМЭВМ, содержащих внутреннюю память программ, РМЕ формируется только в том случае, если адрес в счетчике команд превосходит максимальный адрес внутренней памяти программ 0FFFH (т. е. для выборок из внутренней памяти программ РМЕ не формируется).
Для ОМЭВМ, не имеющих внутренней памяти программ, РМЕ формируется при любом обращении к памяти программ.
ОМЭВМ семейства МК51 имеют внешний вывод DEMA, с помощью которого можно запретить работу внутренней памяти программ, для чего необходимо подать на вывод DEMA "0". При этом внутренняя память программ отключается и, начиная с нулевого адреса, все обращения происходят к внешней памяти программ с формированием сигнала РМЕ. В случае, если DEMA=1, работают и внутренняя и внешняя память программ. Для ОМЭВМ, не имеющих внутренней памяти программ, для нормальной работы всегда необходимо задавать DEMA=0.
Таким образом, доступ к внешней памяти программ осуществляется в двух случаях:
1) при действии сигнала DEMA=0 независимо от адреса обращения,
2) в любом случае, если программный счетчик (PC) содержит число, большее чем 0FFFH.
Если центральный процессор осуществляет доступ к внешней памяти программ, сигнал РМЕ вырабатывается дважды во время каждого машинного цикла (исключение составляет команда MOVX) независимо от того, необходим или нет выбираемый байт для текущей команды. При выборке из внешней памяти программ всегда используется 16-битовый адрес, младший байт которого выдается через порт Р0, а старший байт — через порт Р2 ОМЭВМ. Байт из внешней памяти программ вводится в ОМЭВМ через порт Р0, который в этом случае используется как шина адреса/данных в режиме мультиплексирования.
На рис. 2.24а показаны младшие адреса памяти программ, которые, как правило, отводятся под обработку прерываний и начало работы ОМЭВМ после сброса.
Рис. 2.24а. Младшие адреса памяти программ
Внутренняя память данных ОМЭВМ состоит из двух областей: 128 байт оперативной памяти (ОЗУ) с адресами 0—7FH и области регистров специальных функций, занимающей адреса 80Н—FFH. Распределение пространства внутренней памяти данных показано на рис. 2.25. Физически внутреннее ОЗУ данных и область регистров специальных функций являются отдельными устройствами.
Все ячейки внутреннего ОЗУ данных могут адресоваться с использованием прямой и косвенной адресации (режимы адресации описаны в описании системы команд ОМЭВМ). Кроме того, внутреннее ОЗУ данных имеет следующие особенности.
Младшие 32 байта внутреннего ОЗУ данных сгруппированы в 4 банка по 8 регистров в каждом (БАНК0—БАНКЗ на рис. 2.25). Команды программы могут обращаться к регистрам, используя их имена R0—R7. Два бита PSW (указатели банка рабочих регистров RS0 и RS1) определяют, с регистрами какого банка производятся манипуляции. Наличие такого механизма работы с ячейками ОЗУ позволяет экономить память программ, т. к. команды, работающие с регистрами R0—R7, короче команд, использующих прямую адресацию.
Следующие после банков регистров внутреннего ОЗУ данных 16 байт (адреса 20Н—2FH) образуют область ячеек, к которым возможна побитовая адресация. Набор команд ОМЭВМ семейства МК51 содержит значительное количество инструкций, позволяющих работать с отдельными битами, используя при этом прямую адресацию. 128 бит, составляющих рассматриваемую область внутреннего ОЗУ данных, имеют адреса 00Н—7FH и предназначены для работы с такими инструкциями. Битовая адресация ОЗУ показана на рис. 2.26, где в квадратах, символизирующих биты, указаны их адреса.
Обращение к внутреннему ОЗУ данных всегда осуществляется с использованием 8-разрядного адреса. При включении питания содержимое ОЗУ будет иметь случайное значение.
Рис. 2.25. Адресное пространство внутренней памяти данных
Область регистров специальных функций содержит защелки портов, регистры таймеров/счетчиков, регистры управления и т.п. Полный список регистров