- •Состав мпк бис серии к1810
- •Микропроцессор к1810вм86
- •Адресное пространство памяти и вв
- •Сегментация памяти и вычисление адресов
- •Организация вв
- •Организация прерываний в микропроцессоре к1810вм86
- •Внешние прерывания
- •Внутренние прерывания
- •Программа обслуживания прерывания
- •Назначение выводов микропроцессора к1810вм86
- •Функционирование микропроцессора к1810вм86
Назначение выводов микропроцессора к1810вм86
Ниже используются следующие соглашения об обозначении выводов микросхемы процессора. Если вывод микросхемы имеет два названия, разделенных слэшем (/), например A19/ST6, то этот вывод является мультиплексированным. Если же второе название вывода помещено в круглые скобки, например ALE (QS0), то первое название относится к минимальному режиму работы микропроцессора, а второе - к максимальному. Инверсия вывода обозначается символом ‘#’, например RD# - инверсный выход строба чтения RD.
Микропроцессор К1810ВМ86 имеет выводы (рис. ):
AD(15-0) - мультиплексированная двунаправленная шина адреса/данных. В первом такте шинного цикла (обращение к памяти или ВВ) микропроцессор выдает на эту шину младшие 16 битов адреса памяти или полный адрес порта ВВ. Этот адрес должен быть сохранен во внешнем регистре - защелке по стробу ALE. Во второй половине шинного цикла по линиям AD(15-0) передаются данные или байты считываемых команд, сопровождаемые стробом DEN;
A19/ST6..A16/ST3 - мультиплексированные выходные линии адреса состояния. В первом такте шинного цикла на эти линии выдаются старшие 4 бита адреса памяти, а при адресации ВУ - нули. В остальных тактах шинного цикла микропроцессор выдает на эти линии сигналы состояния ST(6-3). Код на линиях ST4, ST3 определяет сегментный регистр, участвующий в формировании физического адреса памяти:
|
ST4 ST3 |
Сегментный регистр |
|
0 0 |
ES |
|
0 1 |
SS |
|
1 0 |
CS |
|
1 1 |
DS |
При обращении к ВУ, когда сегментные регистры не участвуют в формировании адреса, устанавливаются значения ST4 = 1, ST3 = 0 (CS).
Сигналы ST4,ST3 можно использовать для расширения адресного пространства системы до 4 Мб, назначая каждому сегменту отдельный банк памяти емкостью в 1 Мб.
Сигнал ST5 соответствует состоянию флага прерываний микропроцессора ВМ80А. Сигнал ST6 не используется и всегда равен 0;
BHE#/ST7# - разрешение старшего байта (Byte High Enable), формируемый в первом такте шинного цикла. Активный сигнал BHE# = 0 означает, что по старшей половине шины AD(15-8) передаются данные. Этот сигнал должен защелкиваться во внешнем регистре по стробу ALE и используется как дополнительный адресный выход, определяющий доступ к старшему банку памяти либо к ВУ с байтовой организацией, подключенному к старшей половине шины AD.
Совместное использование сигналов BHE# и A0 для дешифрации адресов позволяет осуществить передачу слов или байтов данных по различным половинам шины AD:
|
BHE# |
A0 |
Разрядность данных |
|
0 |
0 |
Слово |
|
0 |
1 |
Старший байт (нечетный адрес) |
|
1 |
0 |
Младший байт (четный адрес) |
|
1 |
1 |
Нет обращения |
После окончания сигнала BHE# в следующих тактах шинного цикла на выход выдается резервный сигнал состояния ST7#, не имеющий определенного назначения;
ALE (QS0) - в минимальном режиме строб адреса;
INTA# (QS1) - в минимальном режиме подтверждение запроса на прерывание. Сигнал выполняет функцию строба считывания RD# в цикле подтверждения прерывания, стробируя считывание вектора прерывания (при подтверждении прерывания ВМ86 выдает два строба INTA#, из которых первый строб является предварительным и не сопровождается передачей информации по шине данных).
В максимальном режиме сигналы QS(1-0) определяют состояние очереди команд:
|
QS1 |
QS2 |
Операция над очередью |
|
0 |
0 |
Операции нет, в последнем такте не было выборки из очереди команд |
|
0 |
1 |
Из очереди выбран первый байт команды |
|
1 |
0 |
Очередь пуста или была опустошена командой передачи управления |
|
1 |
1 |
Из очереди выбран следующий байт команды |
Сигналы QS(1-0) предназначены для сопроцессора, который воспринимает команды и операнды по команде ESC. Сопроцессор постоянно контролирует шину AD и фиксирует момент, когда из программной памяти начинает выбираться команда ESC, а затем следит за очередью команд, определяя момент, когда нужно начать выполнение этой команды;
READY - входной сигнал готовности. При READY = 0 МП переходит в состояние ожидания, в котором между тактами Т3 и Т4 вставляются такты ожидания Tw до тех пор, пока на входе READY не появится логическая 1;
TEST# - проверка, используется вместе с командой ожидания WAIT, выполняя которую микропроцессор проверяет уровень сигнала на входе TEST#. Если TEST# = 0, то МП выполняет следующую команду программы, при TEST# = 1 микропроцессор вводит холостые такты Т1 и периодически, с интервалом 5Т, снова проверяет состояние входа TEST#. Вход TEST# - это вход программной проверки готовности ВУ, а вход READY - вход аппаратной проверки готовности ВУ;
CLK - вход тактовой синхронизации (Т = 200..500 нс);
RESET - сброс. Переводит микропроцессор в начальное состояние, в котором сброшены все сегментные регистры (кроме CS, все разряды которого устанавливаются в логическую 1), указатель команд IP, флаги, регистры очереди команд и все внутренние триггеры в устройстве управления. Сигнал RESET не влияет на состояние регистров общего назначения. На время действия сигнала RESET все выходы, имеющие третье состояние, переводятся в него, а выходы с двумя состояниями становятся пассивными. Минимальная длительность сигнала RESET должна составлять 50 мкс, а при повторном сбросе - 4 такта синхронизации. По завершении состояния RESET работа микропроцессора возобновляется из начального состояния;
MN/MX# - вход, задающий режим работы МП (минимальный или максимальный);
ST#(2-0) - выходы, определяющие тип выполняемого в данный момент шинного цикла:
|
ST2 |
ST1 |
ST0 |
Тип шинного цикла |
|
0 |
0 |
0 |
Подтверждение прерывания |
|
0 |
0 |
1 |
Чтение внешнего устройства |
|
0 |
1 |
0 |
Запись в ВУ |
|
0 |
1 |
1 |
Останов |
|
1 |
0 |
0 |
Выборка команды |
|
1 |
0 |
1 |
Чтение памяти |
|
1 |
1 |
0 |
Запись в память |
|
1 |
1 |
1 |
Нет цикла |
Сигналы состояния подаются в системный контроллер, который дешифрирует их и формирует расширенный набор управляющих сигналов. Сигнал ST2# логически эквивалентен сигналу M/IO# микропроцессора ВМ85, а ST1# - сигналу DT/R#;
HLDA (RQ#/GT0#), HOLD (RQ#/GT1#) - запрос/разрешение захвата. В минимальном режиме на вход HOLD подается запрос на захват шины, выходной сигнал HLDA - подтверждение захвата. В максимальном режиме эти вводы образуют две одинаковые двунаправленные линии, каждая из которых может использоваться для передачи импульсных сигналов запроса/разрешения доступа к локальной шине со стороны сопроцессора. Процесс доступа сопроцессора к шине осуществляется следующим образом:
Устройство, подключенное к локальной шине и требующее доступа к общим ресурсам, формирует первый запросный импульс RQ#/GT# длительностью Т;
В конце текущего цикла МП выдает на эту линию второй ответный импульс, подтверждающий возможность доступа к локальной шине;
В следующем такте МП переводит шины адреса/данных и управления в третье состояние и отключается от канала;
По окончании работы с локальной шиной устройство выдает на ту же линию третий импульс, указывающий на окончание захвата шины;
В следующем такте МП возобновляет управление шиной и продолжает работу по программе.
Все три импульса имеют одинаковую длительность и низкий активный уровень. Сигналы на линиях RQ#/GT0# и RQ#/GT1# независимы, но линии RQ#/GT0# имеют более высокий приоритет, когда запросы на эти линии поступают одновременно. Но если на линии RQ#/GT0# появляется запрос в то время, когда МП находится в состоянии захвата по сигналу RQ#/GT1#, то сигнал запроса RQ#/GT0# не получает подтверждения до освобождения шины по линии RQ#/GT1#;
WR# (LOCK#) -строб записи (блокировка шины). В минимальном режиме сигнал WR# используется в качестве строба записи в память или ВУ. В максимальном режиме выходной сигнал LOCK# информирует устройства системы, что они не должны запрашивать шину.
Сигнал LOCK# формируется однобайтовым префиксом LOCK перед критичной командой программы и действует до конца выполнения этой команды, запрещая доступ к шине другим устройствам, в частности, другим процессорам. Если при наличии блокировки внешнее устройство запрашивает шину по линиям RQ#/GT#, то МП фиксирует поступивший запрос, но не подтверждает его до завершения команды, имеющей префикс LOCK.
Префикс LOCK можно использовать и в минимальном режиме, когда внешний сигнал блокировки отсутствует. В этом случае генерирование сигнала подтверждения HLDA на запрос HOLD задерживается до завершения критичной команды.
