- •Состав мпк бис серии к1810
- •Микропроцессор к1810вм86
- •Адресное пространство памяти и вв
- •Сегментация памяти и вычисление адресов
- •Организация вв
- •Организация прерываний в микропроцессоре к1810вм86
- •Внешние прерывания
- •Внутренние прерывания
- •Программа обслуживания прерывания
- •Назначение выводов микропроцессора к1810вм86
- •Функционирование микропроцессора к1810вм86
Организация вв
ВВ данных может осуществляться двумя способами:
с использованием адресного пространства ВВ;
с использованием общего с памятью адресного пространства.
При первом способе применяются специальные команды ввода (IN) и вывода (OUT), использующие прямую адресацию (адрес порта содержится в виде константы во втором байте команды; можно адресовать 256 портов) и косвенную адресацию (адрес порта находится в регистре DX; можно адресовать до 64к 8-битовых портов).
При втором способе адреса портов размещаются в общем с ячейками памяти адресном пространстве, и обращение к ним не отличается от обращения к ячейкам памяти, что повышает гибкость программирования. При этом несколько усложняется дешифрация 20-разрядного физического адреса порта и сокращается число адресов, отводимых под оперативную память.
МП может передавать по шине байт или слово в/из ВУ. Чтобы слово передавалось за один цикл шины, адрес ВУ должен быть четным.
Организация прерываний в микропроцессоре к1810вм86
ВМ86 имеет эффективную систему прерываний, в которой каждому прерыванию поставлен в соответствие код 0..255, идентифицирующий тип прерывания. Прерывания могут инициироваться ВУ (внешние прерывания) или командами программных прерываний, а в некоторых случаях - автоматически самим микропроцессором (внутренние прерывания).
Рис. . Источники прерываний
Внешние прерывания
Запросы на внешние прерывания поступают в микропроцессор по 2-м входам: INTR и NMI (Non Maskable Interrupt - немаскируемое прерывание), и сами прерывания соответственно делятся на маскируемые и немаскируемые.
Запросы на маскируемые прерывания от ВУ поступают обычно на входы программируемого контроллера приоритетных прерываний (ПКПП) К1810ВР59, который формирует сигнал прерывания INTR. Этот ПКПП может работать как с ВМ86, так и с микропроцессором КР580ВМ80А (аналогично ПКПП КР580ВН59). При работе с ВМ86 в ответ на первый сигнал #INTA ПКПП не выдает команду CALL в микропроцессор и буфер шины данных остается в z - состоянии. По второму сигналу #INTA ПКПП посылает в МП байт, определяющий тип прерывания n.
Действия ВМ86 при поступлении прерывания INTR зависят от состояния флага разрешения прерываний IF (Interrupt Flag) в регистре флагов: если IF=0, то прерывания по входу INTR запрещены (замаскированы) и ВМ86 игнорирует запрос прерывания, переходя к следующей команде. ВМ86 не -запоминает состояния сигнала INTR, поэтому этот сигнал должен оставаться активным, пока прерывающее устройство не получит сигнал подтверждения #INTA или само не снимет запрос. Если IF=1, то МП распознает запрос прерывания и обрабатывает его.
Состоянием флага IF программист может управлять с помощью команд STI (установка) и CLI (сброс).
Запросы на немаскируемые прерывания поступают по входу NMI и обычно используются для прерывания работы микропроцессора при катастрофических ситуациях: аварийное пропадание питания, сбой памяти и др. Вход NMI воспринимает положительный фронт, чтобы текущая программа не прерывалась от одного сигнала NMI=1 несколько раз. Запросы NMI запоминаются в МП и имеют более высокий приоритет, чем прерывания по входу INTR. Обработка прерываний NMI не зависит от состояния флага IF. Немаскируемому прерыванию присваивается тип 2, который автоматически формируется внутри микропроцессора, а циклы шины подтверждения прерывания #INTA не формируются, что ускоряет реакцию МП на немаскируемые прерывания.
В максимальном режиме МП генерирует в циклах #INTA сигнал блокировки шины #LOCK, чтобы другие процессоры не пытавлись запрашивать шину.
