Изучение и исследование микропроцессора КР580ВМ80А

04/09/95 05:37pm 580bm80.met
С.Т.Хвощ,Н.Н.Варлинский,Е.А.Попов "МИКРО-процессоры и МИКРО-эвм в системах автоматического управления Справочник" Л. "Машишостроение" 1987.

Изучение и исследование микропроцессора КР580ВМ80А

1.Краткие теоретические сведения

В последние годы отмечается быстрый рост выпуска микропроцессорных БИС и приборов на их основе. Это объясняется тем,что микропроцессоры (МП) дают возможность использования средств и методов вычислительной техники в любых устройствах,где реализуются процедуры сбора, обработки, передачи и отображения информации, управления процессами и объектами. Микропроцессор, по определению-это программно-управляемое устройство, непосредственно осуществляющее процесс обработки цифровой информации и управление им, построенное на одной или нескольких БИС. Микро-ЭВМ, также как и мини-ЭВМ, относятся к классу проблемно-ориентированных ЭВМ. Микро-ЭВМ создается на основе технологии БИС; по определению,это микропро- цессорная ЭВМ,состоящая из микропроцессора, полупроводниковой памяти, средств связи с периферийными устройствами. При необходимости микро-ЭВМ снабжается пультом управления и источником питания. Все составные части микро-ЭВМ объединяются общей несущей конструкцией. Микро-ЭВМ предназначены, в основном, для встраивания в аппаратуру систем в качестве элементов обработки информации. Микро-ЭВМ - многофункциональный блок,который за счет программирования органически сливается в функциональном отношении с аппаратурой, в которую встраивается

Контроллер - это устройство управления некоторым механизмом или аппаратом по жесткой программе. Примерами достаточно сложных контроллеров могут служить устройства управления магнитными лентами и дисками. До появления микро-ЭВМ контроллеры выполнялись как чисто аппаратные устройства.Однако простота и гибкость реализации в ЭВМ логических функций,а также возможность дополнительного использования вычислительных алгоритмов делают применение микро-ЭВМ в контроллерах весьма перспективны.Контроллеры,построенные на базе микро-ЭВМ, называют микро-контроллерами.

2.Микропроцессорный комплект БИС серии КР5580.

Микропроцессорный комплект (МПК) - совокупность микропроцессорных и других интегральных микросхем, совместимых по конструктивно-технологическому исполнению и предназначенных для совместного применения при построении МП, микро-ЭВМ и др. средств выч.техники. МПК серии КР580 предназначен для построения электронно-вычислительной аппаратуры широкого применения, микропроцессорных вычислительных систем, средств дискретной автоматики.
МПК КР580 выполнен на основе n-МОП технологий. Уровни электрических сигналов микросхем соответствуют уровням ТТЛ схем серии K155 (K555). С комплектом совместимы микросхемы серии К589, выполненные по технологии ТТШЛ.
Основные параметры микропроцессора КР580ВМ80А приведены в табл.1.

Таблица 1. Основные параметры БИС КР580ВМ80А

Разрядность данных(бит)

8

Число команд

78

Разрядность команд(байт)

1,2,3

Макс. об'ем адресуемой памяти(Кбайт)

64

Макс. число адресуемых внеш. устройств ввода-вывода

256

Число уровней прерывания

8

Тактовая частота (МГц)

1.7 - 2.5

Потребляемая мощность(Вт)

1.5

Напряжение питания, В

-5 +5 +12

Рис.1 Обозначение на схемах БИС КР580ВМ80А

2.1.Микропроцессор КР580ИК80А

Микросхема КР580ВМ80А представляет собой однокристальный восьмиразрядный микропроцессор с фиксированной системой команд. Предназначен для применения в устройствах обработки данных и схемах управления в качестве центрального процессорного элемента. Микропроцессор конструктивно помещен в пластиковый корпус с 40 выводами.

2.1.1.Функциональная организация микропроцессора КР580ВМ80А

Микропроцессор предназначен для работы с байтовой организацией памяти и имеет следующие форматы представления данных и команд. Формат обрабатываемых данных (операндов) представлен на рисунке 2.

РИС.2 Формат данных

Формат данных интерпретировать как :

Арифметические операции выполняются по правилам двоичной арифметики над числами в дополнительном коде. При обработке двоично-десятичных чисел используется преобразование в двоичный код. Логические операции выполняются по правилам двоичной логики. Результат операции представляется числом в соответствующем формате и байтом признаков результата (флажков) (рис.3).

Рис.3. Байт признаков (флажки)

Пять признаков (остальные три разряда фиксированы) устанавливаются в зависимости от результата выполнения операции:

Форматы команд зависят от типа команд и способа адресации. Код операции представляется одним байтом. В случае прямой адресации к памяти используется адрес длиной 16 бит (т.е. макс. емкость памяти 65536 байтов).
Длина команды может быть 1,2 или 3 байта.Многобайтовые команды хранятся в соседних ячейках памяти и адресуются по первому байту, младший байт распологается по меньшему адресу. Формат команды определяется кодом операции. Адресация памяти в микропроцессоре КР580ВМ80А задается в коде операции и использует следующие способы.

2.1.2. Структурная организация микропроцессора КР580ИК80А.

Микропроцессор КР580ИК80А реализован на основе общей внутр. шины данных и включает следующие функциональные узлы:

Блок регистров общего назначения предназначен для оперативного хранения информации, участвующей в процессе выполнения программы. Он представляет собой динамическую память с произвольным доступом, организованную в виде шести 16-битовых регистров. Три регистра могут использоваться при выполнения операций как шесть отдельных 8-битовых программно-доступных регистров B,C,D,E,H,L, или как 16-би- товые программно-доступные пары BC,DE.HL.
Пара 8-битовых регистров WZ используется для временного хранения второго и третьего байтов команд перехода,передаваемых с внутр. шины данных (ВШД) в программный счетчик (РС). К паре WZ программист обращаться не может.

16-битовый программный счетчик (РС) служит для хранения адреса текущей команды программы. Его содержимое автоматически инкрементируется (увеличивается) после выборки каждого байта команды схемой адресной логики. Загрузка и выдача содержимого РС осуществляется побайтно через мультиплексоры (МПЛ) и внутр.шину данных.

16-битовый указатель стека (SP) хранит адрес ячейки области оператиной памяти, отведенной под стек, к которой было последнее обращение. Перед занесением слова в стек содержимое указателя стека уменьшается (декркментируется) на 1. После считывания слова из стека содержимое SP инкрементируется на 1. Для выполнения инкрементации-декрементации в адресной логике предусмотрена схема инкрементации-декркментации (СИД).
Содержимое SP может быть прибавлено к содержимому регистровой пары HL, для чего имеется возможность побайтовой пересылки содержимого через мультиплексоры МПЛ на внутр. шину данных.

Выбор регистра, участвующего в операции, осуществляется схемой выбора регистра (СВР). Адресная логика обеспечивает выдачу на адресную шину адресов данных и команд. Она включает в себя буферный регистр адреса (БРА), схему инкрементации-декрементации (СИД) и адресный буфер. Регистр БРА принимает и хранит адрес с любого 16-битового регистра. Его выход связан со входами схемы СИД и адресного буфера.

Схема СИД - схема быстрого переноса/заема. С ее помощью содержимое БРА может быть передано с изменением на 1, или без изменения через 16-разрядный мультиплексор на вход любого 16-битового регистра (пары) BC,DE,HL,SP или РС.

Адресный буфер представляет собой 16 выходных формирователей с тремя состояниями и предназначен для выдачи адреса на выводы адресной шины А15...A0. Третье (отключающее) состояние позволяет подключать микропроцессор непосредственно к общей системной адресной шине микро-ЭВМ.

Блок арифметико-логического устройства (АЛУ) предназначен для выполнения арифметических и логических операций над числами в параллельном 8-разрядном двоичном коде, а также операций циклического сдвига. При обработке информации в АЛУ используются регистры:

При выполнении операций один из операндов пересылается из аккумулятора в регистр ВА; второй операнд поступает из памяти или блока регистров через ВШД в регистр ВР, а затем в АЛУ в прямом или обратном коде в зависимости от операции. Результат операции передается через ВШД в аккумулятор или в регистр общего назначения, а прзнаки результата записываются в регистр флажков F (нуль,перенос, знак,четность,вспомогат.перенос), обеспечивая возможность переходов в программе.

Cхема десятичной коррекции (СДК) предназначена для преобразования двоичного кода в двоично-десятичный при обработке двоично-десятичных чисел.

Блок регистра команд и управления содержит регистр команд (РК), схемы дешифрации команд (ДШК) и шифрации машинных циклов (ШМЦ). РК хранит первый байт кода операции и после дешифрации используется для формирования сигналов управления блоком регистров, АЛУ с регистрами и буфером данных (БД),реализующих микропрограммы вы полнения команд.

Двунаправленная шина данных предназаначена для организации связи между отдельными блоками микропроцессора и для связи с др. микросхемами и микро-ЭВМ. Она включает в себя внутр.шину данных ВШД и буфер данных (БД), соединенный с внешней ши ной данных Д7...Д0. Двунаправленный с тремя состояниями БД (0:7) состоит из буферного регистра и формирователей. Предназначен для развязки внутр.и внешней шин данных (в процессе ввода или выполнения операций, не связанных с пересылкой данных, БД отключается).

Узел управления и синхронизации (УУС) предназначен для синхронизации и управле ния работой процессора.
Синхронизация:

Управление ожиданием:

Управление шинами:

Управление прерываниями:

Управление прямым доступом к памяти (захватом):

2.1.3.Система команд микропроцессора КР580ВМ80А

В микропроцессоре КР580ИК80А программно-доступными являются 8-битовые регистры A,B,C,D,E,H,L; 16-битовые - слово состояния PSW (регистры А и F), пары регистров B,D,H, обозначаемые по первому регистру пары BC,DE,HL соответственно, указатель стека SP и программный счетчик РС, а также отдельные признаки рeгистра F (см.рис.5).

Система команд микропроцессора содержит 78 команд и может быть разбита на следующие группы:

  1. группа команд пересылки, осуществляющих передачу информации между регистрами (11 команд);

  2. группа арифметических команд (14 команд);

  3. группа логических команд (15 команд);

  4. группа команд передачи управления (29 команд);

  5. группа команд работы со стеком, ввода-вывода и управления регистрами процессора (9 команд);

2.1.4.Выполнение команд в микропроцессоре КР580ВМ80А.

Каждая команда микропроцессора занимает командный цикл, состоящий из цикла выборки команды и цикла ее исполнения. Длительность цикла выборки команды различна для различных команд и зависит от длины команды (воз можны от одного трех обращений к памяти )
С другой стороны, длительность цикла выполнения команды зависит от типа команды и способа адресации операндов. Например,для выполнения команды ADD r требуется только одно обращение к памяти, за самой командой, а операнд находится в регистре r процессора. Для выполнения команды ADD M требуется два обращения к памяти: за командой и за операндом, адресуемым парой HL.

Таким образом, длительность командного цикла определяется числом обращений к памяти или внешнему устройству. Интервал времени на одно обращение к памяти или внешнему устройству определяется как машинный цикл М.
Число машинных циклов в команде изменяется от одного для однобайтовых команд с регистровой адресацией до пяти для трехбайтовых сложных команд.

Машинный цикл, в свою очередь, разбивается на машинные такты Т, в каждом из которых выполняется элементарное действие в процессоре - микрооперация. Число тактов в цикле определяется кодом команды и изменяется от трех до пяти.
Длительность такта задается периодом синхроимпульсов F1, формируемых внешними цепями.

Для синхронизации процессора с памятью и внешними устройствами, имеющими меньшее быстродействие, для организации прямого доступа к памяти и останова процессора предусмотрены три специальных состояния: ОЖИДАНИЕ,ЗАХВАТ и ОСТАНОВ, длительность ко торых произвольная, но всегда кратная Т.

Последовательность действий в каждом машинном цикле определяет его тип. Имеется 10 машинных циклов:

В каждой команде циклы появляются в той или иной последовательности, например:

Каждый машинный цикл процессора идентифицируется байтом состояния, который выдается на шину данных в начале каждого машинного цикла и сопровождается выдачей сигнала синхронизации машинных циклов на вывод SYNC. Этот байт несет информацию о последующих действиях процессора и может быть использован для расширения функций управления в микропроцессорной системе. Информация о состоянии распределена в байте состояния в соответствии с табл.2, а распределение байтов состояния в зависимости от типа машинного цикла представлена в табл.3.

Таблица 2. Информация о состоянии микропроцессора КР580ИК80А

Разряд шины данных

Сигнал состояния

Описание

D0

Подтверждение прерывания (INTA)

=1 указывает,что процессор готов вести отработку запроса прерывания

D1

Запись - вывод (WO)

=0 указывает,что выполняются циклы ЗАПИСЬ В ПАМЯТЬ или ВЫВОД. Если ЗВ=1,выполняются ЧТЕНИЕ ПАМЯТИ или ВВОД

D2

CТЕК (STACK)

=1 указывает,что на адресной шине находится содержимое указателя стека,т.е. адрес верхней ячейки стека

D3

Подтверждение останова (HLTA)

=1 указывает,что процессор находится в состоянии ОСТАНОВ (выполняется команда HALT)

D4

Вывод (OUTPUT)

=1 указывает,что на адресной шинe находится адрес внешнего устройства,на которое осуществляется вывод информации(цикл ВЫВОД)

D5

M1

=1 указывает,что выполняется 1-й цикл команды (цикл ВЫБОРКА)

D6

ВВОД (INPUT)

=1 указывает,что на адресной шине находится адрес внеш. устройства,с которого осуществляется ввод информации (цикл ВВОД)

D7

Чтение памяти (MEMR)

=1 указывает что, шина данных будет использоваться для чтения данных из памяти

Таблица 3 Распределение байтов состояния по типам машинных циклов микропроцессора КР580ВМ80А

Разряд шины данных

Сигнал состояния

Тип машинного цикла

выборка

Чтение памяти

Запись в память

Чтение стека

Запись в стек

ввод

вывод

прерывание

останов

Прерывание при останове

D0

INTA

0

0

0

0

0

0

0

1

0

1

D1

WR

1

1

0

1

0

1

0

1

1

1

D2

STACK

0

0

0

1

1

0

0

0

0

0

D3

HLTA

0

0

0

0

0

0

0

0

1

1

D4

OUTPUT

0

0

0

0

0

0

1

0

0

0

D5

M1

1

0

0

0

0

0

0

1

0

1

D6

INPUT

0

0

0

0

0

1

0

0

0

0

D7

MEMR

1

1

0

1

0

0

0

0

1

0

 

Табл. 4. Распределение действий по тактам процессора КР580ВМ80А.

Такт

Действие

Т1

Адрес памяти или УВВ выдается на адресную шину (A15...A0). БС выдается на шину данных (D7...D0).

T2

Анализируются сигналы на входах RDY и HLD, а также контролируется команда остонова HLT.

Tw

Если сигнал на входе RDY имеет низкий уровень, или на входе ЗХ высокий уровень, или выполняется команда HLT, процессор переходит в одно из состояний: ОЖИДАНИЕ, ЗАХВАТ или ОСТАНОB.

Т3

С шины данных в процессор вводится байт команды (в цикле ВЫБОРКА) байт данных (в циклах ЧТЕНИЕ ПАМЯТИ,ЧТЕНИЕ СТЕКА,ВВОД) или команда прерывания RST (цикл ПРЕРЫВАНИЕ).Или из процессора выводится байт данных (циклы ЗАПИСЬ В ПАМЯТЬ,ЗАПИСЬ В СТЕК,ВЫВОД) на шину данных.

Т4,Т5

Выполняется операция.Такты Т4,Т5 или только Т5 могут не использоваться при выполнении команды.

 

В каждом машинном цикле выполняется обращение к памяти. Поэтому в первом машинном такте Т1 на адресную шину выдается адрес с программного счетчика РС или указателя SP. Одновременно на шину данных выдается байт состояния (БС) и формируется сигнал синхронизации. На рис. 5 представлена временная диаграмма работы центрального процессорного элемента (ЦПЭ) КР580ВМ80А в цикле выборки. Если память или внешнее устройство не готовы к обмену (RDY=0), или есть запрос прямого доступа к памяти (ПДП), т.е. HLD=1, или выполняется команда останова, то обмен данными осуществляться не может. Процессор переходит в состояние ОЖИДАНИЕ, ЗАХВАТ или ОСТАНОВ, т.е. выполняет такты ожидания Tw, число которых определяется внешними признаками. Анализ этой информации осуществляется в такте Т2. В этом же такте содержимое РС увеличивается на 1 для адресации следующего бита.

Рис.5 Временная диаграмма работы ЦПЭ КР580ВМ80А в ЦИКЛЕ ВЫБОРКИ.

Если особых случаев нет, или есть внешний сигнал из состояния ожидания, то процессор переходит к такту Т3, в котором может производиться обращение к памяти, стеку или устройству ввода/вывода (УВВ). В результате происходит передача через шину данных байта команды,адреса или данных. При этом на выводах DBIN или WR формируются соответствующие управляющие сигналы.

Если требуется обработка операндов, то процессор переходит к тактам Т4,Т5 (не все машинные циклы используют эти такты - зависит от типа команды и типа машин ного цикла).

В команде ADD r (сложение содержимого регистра r с аккумулятором) в единственном цикле ВЫБОРКА выполняется четыре такта (см.рис.6). Длительность такта определяется периодом синхроимпульсов F1, а внутренние микрооперации инициируются импульсами F2. Начало машинного цикла отмечается появлением сигнала синхронизации SYNC, длительность которого равна периоду импульсов F2. В течение сигнала SYNC выдается байт состояния процессора.

В такте Т1 адрес команды загружается на адресную шину из программного счетчика РС и сохраняется на ней до четвертого такта. Выдав адрес на адресную шину процессор в такте Т2 увеличевает содержимое РС на единицу и проверяет сигналы состояния ОЖИДАНИЕ, ЗАХВАТ, ОСТАНОВ. Если, например, память не готова к обмену (на линии RDY низкий уровень), процессор переходит в состояние Тw и выдает сигнал высокого уровня на линию WAIT, подтверждающий запрос памяти (см.рис.5).

Процессор остается в состоянии ожидания до тех пор, пока сигнал RDY не переходит в состояние высокого уровня. Следующий импульс F1 переведет линию WAIT в состояние низкого потенциала, процессор перейдет в состояние Т3. В такте Т3 извлекается команда в регистр команд РК и, в соответствии с кодом операции, в такте Т4 осуществляется подготовка операндов к выполнению операции сложения: операнд из регистра r пересылается по внутренней шине в регистр ВР, а операнд из аккумулятора А пересылается в регистр ВА. Далее в течение действия такта Т2 следующей команды, операнды складываются в АЛУ, результат сохраняется в аккумуляторе А. Совмещение тактов позволяет повысить производительность процессора.

В команде ADD M (сложение содержимого ячейки памяти с содержимым аккумулятора) цикл ВЫБОРКА (такты Т1...Т4) выполняется почти аналогично, а цикл М2 используется для выполнения операции сложения (рис.7, 8). Для выборки операнда из памяти в такте Т1 на адресную шину выдается его адрес из пары HL, по которому в такте Т3 операнд выбирается в регистр ВР. Собственно сложение выполняется в такте T2 следующей команды.

Рис. 7. Временная диаграмма выполнения команды ADD M.

 

Рис. 8 Выполнение команда ADD M.

При выполнении команд ввода/вывода (см.рис.9),являющихся двухбайтовыми, в первом машинном цикле на адресную шину выдается содержимое РС, которое затем автоматически инкрементируется на единицу. Первый байт (код операции) выбирается в регистр команд. Во втором машинном цикле по адресу, указанному в программном счетчике РС, читается второй байт команды (номер порта ввода/вывода), который размещается в регистрах W,Z. В третьем машинном цикле адрес порта ввода-вывода (номер ВУ) выдается на адресную шину и осуществляется выбор порта. При этом через выбранный порт осуществляется обмен информацией между аккумулятором и шиной данных.

Рис. 9. Выполнение команды IN port.

Рис. 10. Реакция на сигнал "Запрос прерывания".

 

Логика работы процессора построена так,что в последнем такте последнего машинного цикла любой команды проверяется наличие запроса прерывания. Если запрос на прерывания имеется, то ЦП выполняет цикл М1 специального типа (см.рис.10) при условии, что ранее был установлен триггер "Разрешение прерывания" (INTE). По тактовому импульсу F2 устанавливается внутренний триггер "Прерывание" (ПР). В такте Т1 цикла прерывания М1 содержимое счетчика команд не увеличивается на единицу, а сохраняется. Выдается сигнал подтверждения прерывания (INTA). В такте Т3 устройство, запросившее прерывание, выдает на шину данных код однобайтовой команды RST (или любой другой), которая выполняется.В циклах М2 и М3 (при получении команды RST n), следующих за циклом прерывания, осуществляется запись в стек по адресам указателя стека(SP-1,SP-2) первого и второго байтов содержимого счетчика команд (PC).

Режим прямого доступа к памяти (ПДП) используется для непосредственного обмена информацией между ЗУ и внешним устройством (ВУ). При этом от внешнего устройства на МП поступает сигнал захвата шин (HLD) (см.рис.11,12). Микропроцессор устанавливает свои выходы адресов и данных в высокоимпедансное состояние и вырабатывает сигнал подтверждения захвата (HLDA), завершает выполнение внутренних операций текущего цикла и переходит в состояние ожидания захвата Т ож.зх (Tw).
Выработка сигнала ПЗХ осуществляется по разному, в зависимости от типа машинного цикла, выполняемого во время поступления сигнала ЗХ. Под действием сигнала ЗХ при наличии сигнала на входе RDY ("Готов"), указывающего готовность внешнего устройства, по импульсу F2 устанавливается внутр. триггер захвата, и по фронту следующего импульса F1 устанавливается в"I" выход HLDA. При выполнении циклов чтения (ввода) процессор подтверждает захват в начале такта Т3 (по окончании чтения).
В циклах записи (вывода) подтверждение захвата происходит в такте, следующем за Т3 (по окончании чтения). В циклах записи (вывода) подтверждение захвата происходит в такте, следующем за Т3 (по окончании записи). Шины процессора отключаются по фронту импульса F2. Если процессор подтвердил запрос ПДП в такте Т3 цикла с большим числом тактов, то он продолжает выполнение цикла до конца. Это позволяет частично совместить обработку информации в процессоре с передачей по каналу ПДП.

По окончании асинхронного сигнала на входе ЗХ, следующим импульсом F2 сбрасывается триггер захвата и сигнал на выходе ПЗХ устанавливается в состояние низкого потенциала по переднему фронту следующего импульса F1. Процессор переходит к выполнению следующего машинного цикла.

Если выполняется последовательность захвата в режиме ПДП, то запросы прерывания не воспринимаются процессором до окончания обмена. При обработке прерываний запрос захвата не воспрнимается процессором до окончания выполнения только первого цикла - цикла чтения команды RST. Завершение последовательности прерывания осуществляется по окончании запрошенного режима ПДП.

При выполнении команды останова (рис.13) процессор переходит в состояние "Оcтанов" после завершения такта Т2 второго машинного цикла. Состояние останова подтверждается установкой соответствующего бита в байте состояния, выдаваемом также в такте Т2. Из состояния останов процессор может быть выведен подачей сигнала на линию "Cброс", подачей сигнала на вход HLD или подачей сигнала прерывания (при разрешающем сигнале на выходе "Разрешение прерывания"). Заметим, что по окончании сигнала HLD процессор вновь входит в состояние "Останов" по переднему фронту F1. Установка же триггера разрешения прерывания осуществляется путем выполнения команды EI.

Рис.11. Последовательность захвата в цикле "ЧТЕНИЕ".

Рис.12. Последовательность захвата в цикле "ЗАПИСЬ".

Рис.13. Выполнение команды "останов".

2.1.5 Включение процессора

Включение необходимо осуществлять вместе с подачей сигнала на линию "Сброс". Длительность этого сигнала должна быть не менее трех периодов синхроимпульсов. Программный счетчик при этом устанавливается в нулевое состояние и, следовательно, процессор начинает выполнение программы с нулевой ячейки памяти.
По первой ко манде JMP может быть осуществлен переход к программе, расположенной в произвольном месте памяти.
Если запуск программы в системе необходимо осуществлять по некоторому стартовому импульсу, в первых двух ячейках размещают команды EI HLT. При этом процессор переходит в состояние останова, а с приходом сигнала прерывания (ручного или автоматического) выходит из этого состояния.

Отметим также, что содержимое рабочих регистров, регистра флажков остается не определенным, пока программа не установит их. Это необходимо иметь в виду для исключения возможных ошибок.

Система команд микропроцессора (файл в формате DOS)


Stay-at-home