- •А. В. Поздняков, б. Я. Цилькер микропроцессоры и микропроцессорные системы
- •Часть 1
- •(Учебное пособие)
- •Содержание
- •1. Микропроцессорные системы
- •1.1. Историческая справка
- •1.2. Архитектура мпс с магистрально-модульной организацией
- •1.3. Режимы работы мпс
- •2.1. Центральный процессор
- •2.1.1. Классификация микропроцессоров
- •2. Микропроцессорный модуль
- •2.1.2. Структура центрального процессора
- •2.1.2.1. Краткая характеристика микропроцессора Intel 8086
- •2.1.2.2. Архитектура микропроцессора Intel 8086
- •2.1.2.3. Программная модель микропроцессора Intel 8086
- •2.1.2.4. Представление информации в мп Intel 8086
- •2.1.2.5. Способы адресации операндов в мп Intel 8086
- •2.1.2.6. Система команд мп Intel 8086
- •2.1.2.7. Содержание цикла команды, типовые машинные циклы мп Intel 8086
- •2.1.2.8. Входные и выходные сигналы мп Intel 8086
- •2.2. Сопроцессор
- •2.3. Генератор тактовых импульсов
- •2.4. Системный контроллер
- •2.5. Согласующие элементы микропроцессорных систем
- •2.5.1. Шинные формирователи
- •2.5.2. Буферные регистры
- •2.6. Контроллер прерываний
- •2.7. Контроллер прямого доступа к памяти
- •2.8. Программируемый таймер
- •3. Модуль памяти
- •3.1. Организация модуля памяти
- •3.2. Распределение адресного пространства зу
- •3.3. Декодирование старших разрядов адреса.
- •3.3.1. Декодирование адресов методом линейной выборки
- •3.3.2. Декодирование адресов с помощью логических компараторов
- •3.3.3. Декодирование адресов с применением комбинационных логических схем
- •3.4. Выбор типа зу
- •3.5. Функциональная схема модуля памяти
- •3.6. Обеспечение необходимой емкости зу
- •3.6.1. Увеличение разрядности зу
- •3.6.2. Увеличение адресного пространства зу
- •4. Модуль ввода-вывода
- •4.1. Интерфейс ввода-вывода
- •4.2. Параллельные порты
- •4.2.1. Параллельный порт вывода
- •4.2.2. Параллельный порт ввода
- •4.2.3. Параллельные порты ввода-вывода
- •4.3. Последовательные порты
- •4.3.1. Последовательный асинхронный порт вывода
- •4.3.2. Последовательный асинхронный порт ввода
- •4.3.3. Программируемый последовательный интерфейс
- •4.4. Организация обращения к портам ввода/вывода
- •4.4.1. Обращение к портам ввода/вывода с помощью специальных команд
- •4.4.2. Обращение к портам ввода/вывода с помощью команд пересылок
- •4.5. Способы организации ввода/ вывода информации в мпс
- •4.5.1. Организация ввода/вывода информации под управлением основной программы
- •4.5.2. Организация ввода/вывода в режиме прерывания программы
- •4.5.3. Организация ввода/вывода в режиме прямого доступа к памяти
- •Система команд микропроцессора Intel 8086 Команды пересылки данных
- •Арифметические команды
- •Логические команды
- •Команды передачи управления
- •Команды управления процессором
- •Команды обработки строк
- •Литература
2.6. Контроллер прерываний
Для обеспечения реакции на запросы прерывания от внешних устройств в МП обычно имеется один или два входа запросов прерывания. В последнем случае один из входов предназначен для маскируемых (INT), а второй – для немаскируемых прерываний (NMI). При этом внутренняя структура МП предусматривает поддержку многоуровневой системы прерываний. Для практической реализации этой возможности по маскируемому входу прерывания (INT), в состав процессорного модуля включают специальные, обычно программируемые, микросхемы – контроллеры прерываний (КПР). Контроллер прерывания выполняет следующие функции:
принимает запросы прерываний от нескольких источников;
запрещает в случае необходимости запрос прерывания от любого источника прерывания;
на приоритетной основе выбирает один из одновременно поступивших запросов прерывания;
на приоритетной основе определяет возможность прерывания текущей программы;
формирует запрос прерывания на входе INT микропроцессора;
обеспечивает ввод в микропроцессор по сигналу INTA информации о номере (или векторе) прерывания.
Каждому запросу на прерывание присваивается свой уровень приоритета. Приоритет прерывания определяет порядок, в котором это прерывание будет обслужено. Запрос с более высоким уровнем приоритета, если он не замаскирован, может прервать выполнение программы, в том числе и программы обработки прерывания, приоритет которой ниже.
Контроллеры прерываний могут поддерживать две системы задания приоритетов: фиксированную и циклическую. При фиксированном приоритете всем входам запроса на прерывание присваиваются фиксированные приоритеты, причем уровень приоритета убывает с возрастанием номера входа запроса на прерывание. При циклическом приоритете приоритеты входов циклически изменяются таким образом, что входу запроса прерывания, обслуженному последним, присваивается низший приоритет, а следующему – самый высокий приоритет и далее по кругу с понижением приоритета, что позволяет предотвратить монополизацию канала прерывания быстрым устройством за счет медленных, а также блокировку устройств с низким уровнем приоритета при неисправности устройств с высоким уровнем приоритета, проявляющейся в непрерывном запросе прерывания.
Возможен и другой вариант циклического приоритета, когда низший уровень приоритета назначается входу, указанному программным образом из микропроцессора, а остальные входы получают приоритеты по кругу, как и в предыдущем варианте.
П
римером
программируемого контроллера прерываний
может служить микросхема I8259A [ХВОЩ87].
Контроллер позволяет обслужить до 8
запросов прерываний от внешних устройств,
а при подключении дополнительных
подобных ИМС число обслуживаемых
запросов может быть расширено до 64.
Структурная схема I8259A представлена на
рис. 2.23.
Рис. 2.23. Структурная схема КПР I8259A
В состав контроллера входят:
двунаправленный 8-разрядный буфер данных (BD), предназначенный для сопряжения контроллера прерываний с системной информационной шиной;
блок управления записью чтением (RWCU), принимающий управляющие сигналы от микропроцессора и задающий режимы функционирования контроллера;
схема каскадного буфера-компаратора (CMP), используемая для включения в систему нескольких контроллеров;
схема управления (CU), вырабатывающая сигнал прерывания INT и формирующая номер запроса прерывания для выдачи на шину данных;
регистр запросов прерываний (IRR – Interrupt Request Register), используемый для хранения всех запросов прерываний поступающих по линиям IRQ0... IRQ7;
схема принятия решений по приоритетам (PRB), идентифицирующая приоритеты запросов и выбирающая запрос с наивысшим приоритетом для дальнейшего обслуживания;
регистр масок прерываний (IMR – Interrupt Mask Register), содержимое каждого бита которого отвечает за маскирование соответствующего запроса прерывания (0 – разрешение обработки прерывания, 1 – запрещение);
регистр обслуживаемых прерываний (ISR – Interrupt Service Register), сохраняющий уровни запросов прерываний, находящихся на обслуживании контроллера.
Каждый сигнал запроса прерывания, поступившей с линии IRQx, фиксируется в соответствующем бите регистра IRR. Проверяется регистр маски IMR. Если запрос по данному входу разрешен (не замаскирован), микросхема проверяет, не обрабатывается ли другое прерывание. При этом она запрашивает информацию регистра ISR. Содержимое регистра IRR поступает на схему приоритетов, чтобы в случае поступления сразу нескольких запросов прерывания выбрать из них запрос с наивысшим приоритетом. Бит, соответствующий запросу с наивысшим приоритетом, переносится в регистр ISR и контроллер формирует сигнал запроса прерывания INT для микропроцессора. Если в микропроцессоре флаг IF=1, то микропроцессор отвечает двумя сигналами по линии INTA, выполняя два цикла подтверждения прерывания. По второму сигналу INTA контроллер выдает на линии данных D0–D7 номер обрабатываемого прерывания, по которому микропроцессор передает управление соответствующей программе обработки прерывания.
Номер прерывания для каждой линии IRQx, а также уровень приоритета запроса задаются микропроцессором при программировании контроллера.
