- •Состав мпк бис серии к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задерживается до завершения критичной команды.