- •А. В. Поздняков, б. Я. Цилькер микропроцессоры и микропроцессорные системы
- •Часть 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 Команды пересылки данных
- •Арифметические команды
- •Логические команды
- •Команды передачи управления
- •Команды управления процессором
- •Команды обработки строк
- •Литература
4.5.2. Организация ввода/вывода в режиме прерывания программы
Рассмотрим организацию ввода-вывода в режиме прерывания на примере решения задачи 1.
Реализация ввода в этом режиме потребует включения в состав МПС логических элементов “Исключающее ИЛИ” DD3,DD4, элемента “ИЛИ” DD4 и контроллера прерываний DD6 (см. рис. 4.17).
Работа схемы протекает в следующей последовательности:
Постоянный опрос порта не производится, но при нажатии любой кнопки на выходе элемента ИЛИ формируется сигнал единичного уровня, который поступает на вход запроса прерывания IR0 программируемого контроллера прерываний.
Контроллер прерываний формирует на своем выходе INT запрос прерывания (если он не замаскирован). Запрос прерывания поступает на вход INT микропроцессора.
Микропроцессор в конце каждой команды проверяет наличие запроса прерывания на входе INT. Если на входе INT имеет место сигнал единичного уровня и прерывание разрешено (флаг IF в регистре флагов находится в единичном состоянии), то микропроцессор заканчивает выполнение текущей команды и приступает к формированию последовательности подтверждения прерывания. Последовательность подтверждения прерывания состоит из двух циклов подтверждения прерывания разделенных двумя холостыми тактами.
В первом цикле подтверждения прерывания МП загружает в стек содержимое регистра флагов F, сегментного регистра кода CS, указателя команд IP и формирует первый сигнал подтверждения прерывания INTA. При формировании сигнала INTA сбрасывается триггер разрешения прерывания.
В
о
втором цикле подтверждения прерывания
микропроцессор формирует второй
сигнал подтверждения прерывания INTA, в
ответ на который контроллер прерываний
выдает на шину данных номер прерывания.Микропроцессор принимает номер прерывания, умножает его на 4 и по полученному адресу извлекает из таблицы векторов прерываний значения командного сегмента и указателя команд, соответствующие программе обслуживания прерывания.
З
агрузка
этих значений в соответствующие регистры
приводит к тому, что очередной выполняемой
командой будет являться первая команда
программы обслуживания прерывания.
В нашем случае эта программа должна иметь следующий вид:
PR: CALL TZ ; Уход на п/программу задержки TZ
IN AL, 00h ; Опрос порта 00h
AND AL, 03h ; Маскирование старших разрядов
MOV ADR, AL ; Запись информации в ячейку ADR
OUT 01h, AL ; Вывод в порт 01h принятой кодовой
; комбинации с целью снятия запроса прерывания
STI ; Разрешение прерывания
IRET ; Возврат из п/программы
; обслуживания прерывания
При выполнении последней команды обслуживания запроса прерывания микропроцессор извлекает из стека записанные значения указателя команд, сегментного регистра кода, регистра флагов и помещает их в соответствующие регистры. Этим обеспечивается переход к выполнению следующей команды основной программы.
Достоинства ввода/вывода информации в режиме прерывания программы:
считывание информации происходит только в случае ее изменения. В остальное время микропроцессор может решать другие задачи.
задержка в получении информации является величиной постоянной.
Недостатки ввода/вывода информации в режиме прерывания программы:
дополнительные аппаратные затраты (контроллер прерываний, логика).
дополнительные программные затраты (необходимость предварительного программирования контроллера прерываний).
