- •Раздел 1 Архитектура микропроцессорного вычисления
- •Тема 1.1 Архитектура микропроцессора
- •1 Архитектура микропроцессора. Классификация
- •Контрольные вопросы:
- •Тема 1.2 Организация управления процессом обработки информации
- •1 Структура микропроцессора
- •2 Аппаратный принцип управления выполнением операций
- •3 Микропрограммный принцип управления выполнением операций
- •Контрольные вопросы:
- •Тема 1.3 Общая схема микропроцессора. Cisc и risc архитектура, основные принципы
- •1 Построение микропроцессорных систем
- •2 Режим выполнения основной программы
- •3 Режим вызова программы
- •4 Режим обслуживания прерываний и исключений
- •5 Режим прямого доступа к памяти
- •6 Конвейерный принцип выполнения команд
- •При идеальной (а) и реальной (б) загрузке 6-ступенчатого конвейера
- •Контрольные вопросы:
- •Тема 1.4 Ассемблерная мнемоника. Структура и форматы команд. Виды адресации. Система команд микропроцессора
- •1 Язык ассемблера. Основные понятия
- •Структура программы на ассемблере. Синтаксис ассемблера.
- •2 Символы языка ассемблера
- •3 Типы операторов ассемблера
- •Директивы ассемблера
- •Система команд процессора
- •Контрольные вопросы:
- •Тема 1.5 Организация памяти микропроцессорных вычислителей
- •1 Общие сведения о запоминающих устройствах (зу)
- •2 Основные параметры запоминающих устройств Основными параметрами запоминающих устройств являются:
- •3 Классификация запоминающих устройств
- •4 Основные структуры запоминающих устройств
- •Структура 3d
- •Контрольные вопросы:
- •Тема 1.6 Адресация в микропроцессорном вычислителе. Понятие адресного пространства. Методы полной и частичной дешифрации адресов
- •1 Форматы команд
- •2 Способы адресации операндов
- •Тема 1.7 Интерфейс и его функции. Параллельный и последовательный обмен информацией. Способы обмена данными.
- •1 Общие сведения об интерфейсах
- •2 Иерархия шин
- •4 Параллельные периферийные адаптеры
- •Режим 0
- •Режим 1
- •5 Программируемые связные адаптеры
- •6 Программируемые контроллеры прерываний
- •7 Контроллеры прямого доступа к памяти
- •8 Программируемые интервальные таймеры
- •Раздел 2 Системы на основе однокристальных микропроцессоров и микроконтроллеров
- •Тема 2.1 Особенности архитектуры однокристальных микропроцессоров. Обобщенная структура
- •1 Основные характеристики однокристальных микропроцессоров
- •2 Эволюция архитектуры однокристальных микропроцессоров Intel x86
- •3 Семейства однокристальных микроконтроллеров. Базовая органи-зация
- •4 Набор регистров мк - 51
- •5 Организация памяти мк-51
- •Периферийные средства мк – 51
- •Контрольные вопросы:
- •Тема 2.2 Система команд
- •3 Отладка и настройка микроконтроллерных систем
- •1 Типы команд
- •2 Расширение памяти программ и данных
- •3 Отладка и настройка микроконтроллерных систем
- •Глоссарий
- •Итоговый тест
- •Литература
6 Программируемые контроллеры прерываний
При работе микропроцессорной системы в ней или внешней среде происходят события, требующие немедленной реакции, что обеспечивается прерыванием выполняемых программ и переходом к обслуживанию запросов прерывания. Аппаратно прерывания обслуживаются специализированными ИС, простейшими из которых являются блоки приоритетного прерывания (Intel 8214, К589ИК14 и др.)- Эти блоки решают несложные задачи обработки нескольких векторных прерываний при фиксированных приоритетах запросов. Более сложные задачи решаются программируемыми контроллерами прерываний (ПКП), в частности ИС Intel 8259A, К1810ВН59. Эти контроллеры непосредственно реализуют прерывания с обработкой 8 запросов. С помощью нескольких ПКП легко организуются устройства обработки до 64 запросов. Контроллеры обеспечивают различные виды прерываний. Система прерываний должна выдать команду перехода к той подпрограмме обслуживания, которая соответствует признанному запросу. Контроллер ВН59 обеспечивает различные виды прерываний:
1 Вложенные прерывания с фиксированными приоритетами входов. Имеются 8 входов запроса прерывания IR7...IR0 (от английского Interrupt Request). Высший приоритет имеет вход IR0, низший - у входа IR7. Вложенность - возможность прерывания подпрограммы обслуживания запроса другой подпрограммой с более высоким приоритетом, которая, в свою очередь, также может быть прервана более приоритетной подпрограммой и т.д. Возможность вложенных прерываний обеспечивается введением команды EI (Enable Interrupt) в подпрограммы обслуживания прерываний. Прерывания с фиксированными приоритетами реализуются просто, но запросы неравноправные и при интенсивном поступлении запросов с высокими приоритетами запросы с низкими приоритетами могут вообще не получить обслуживания.
Прерывания с круговым (циклическим) приоритетом. В этом случае у каждого входа тоже есть свой приоритет, но после обслуживания он изменяется в круговом порядке так, что обслуженный вход получает низший приоритет. Такая дисциплина обслуживания характерна для ситуации с источниками, не имеющими преимуществ друг перед другом. Запрашивающее обслуживания устройство будет ждать в худшем случае до того, как 7 других источников будут обслужены по одному разу. Работу с круговым приоритетом можно иллюстрировать примером (Рисунок 45), в котором регистр запросов вначале содержит 6-й и 4-й запросы, т.е. наивысший приоритет имеет 4-й запрос, который и будет обслужен. После обслуживания приоритетность входов изменяется как бы вращением кольца, причем номер 7 с низшим приоритетом становится на 4-ю позицию только что обслуженного запроса. Позицию низшего приоритета называют дном приоритетного кольца. Контроллерами реализуется маскирование запросов, когда запрещается их восприятие с помощью соответствующих битов регистра маски. При этом могут быть реализованы разные ситуации. Обычное маскирование. Маскирование какого-либо запроса ведет и к маскированию других запросов с меньшими приоритетами.
Специальное маскирование. Происходит блокирование восприятия только одного входа запросов при отсутствии маскирования младших по приоритету. После снятия маски обслуживание запросов становится возможным.
Рисунок 45 - Пример обслуживания запросов
прерывания с круговым приоритетом
Включение контроллера прерываний в систему показано на рисунке 46. Контроллер принимает запросы от внешних устройств, определяет, какой из незамаскированных запросов имеет наивысший приоритет, сравнивает его с приоритетом текущей программы и при соответствующих условиях выдает запрос прерывания INT для МП. После подтверждения запроса МП должен получить от контроллера информацию, которая укажет на подпрограмму, соответствующую данному ВУ, т.е. вектор прерывания.
Рисунок 46 - Схема включения контроллера
прерываний в микропроцессорную систему
Структура программируемого контроллера прерываний. Структура ПКП Intel 8259A представлена на рисунке 47. В английской терминологии ПКП называют PIC, т.е. Programmable Interrupt Controller. Запросы прерываний от ВУ поступают на регистр запросов IRR, сохраняющий запросы до их принятия на обслуживание. Биты регистра IRR сопоставляются с битами регистра масок IMR (Interrupt Mask Register).
Р
исунок
47 - Структура программируемого контроллера
прерываний
Биты регистра масок действуют также на работу схемы определения приоритетов и регистр обслуживания ISR, так что маскирование может быть осуществлено не только на стадии приема запросов, но и на более поздних стадиях их обработки.
Если приоритет запроса выше текущего приоритета, то при вложенных прерываниях формируется сигнал INT для процессора. При поступлении от процессора сигнала подтверждения прерывания INTA принятый запрос переходит в регистр обслуживания ISR (Interrupt Servicing Register) и сбрасывается в регистре запросов IRR. Установка бита ISR запрещает прерывания от всех других запросов с меньшими приоритетами. Подпрограмма обслуживания прерывания завершается сбросом бита регистра ISR.
Можно также обслуживать прерывания по результатам опроса источников запросов, когда сигнал INT не используется, и процессор сам производит поочередный опрос входов, начиная со старшего по приоритету. Обнаружение запроса ведет к его обслуживанию с переходом на соответствующую подпрограмму.
Буфер ШД восьмиразрядный, двунаправленный, с третьим состоянием. При программировании контроллера через него передаются управляющие слова, и считывается состояние регистров, а также код запроса, выработавшего сигнал INT. При обслуживании прерывания по сигналу INTA через буфер ШД в шину данных системы выдается трехбайтная команда вызова подпрограммы CALL.
Смысл
сигналов
,
и
,
ясен (совпадает со смыслом этих сигналов
в описанных выше устройствах). Сигнал
поступает от процессора в виде трех
последовательных импульсов, для выдачи
контроллером кода команды CALL,
младшего байта адреса начала подпрограммы
и старшего байта этого адреса. Первый
импульс
сбрасывает запрос в соответствующем
бите IRR.
Сигналы
IR0...IR7
- входы запросов прерывания (Interrupt
Requests),
A0-
младший разряд адреса, показывает, к
какому регистру управляющих слов (УСИ
или УСО) обращается процессор. Сигналы
CAS2-0
связаны с работой контроллера в групповой
схеме, образуют выходную шину для
ведущего контроллера и входную для
ведомых. Сигнал
(
)
двухфункциональный, как
он определяет, является ли контроллер
ведущим или ведомым в групповой схеме,
как
используется в так называемом
буферизованном режиме для разрешения
выхода на шину системы, т.е. для управления
выходными буферами участников обмена.
