Описание мп
Микросхема КР580ВМ80А — функционально законченный однокристальный параллельный 8-разрядный микропроцессор с фиксированной системой команд, применяется в качестве центрального процессора в устройствах обработки данных и управления.
Микропроцессор имеет раздельные 16-разрядный канал адреса и 8-разрядный канал данных. Канал адреса обеспечивает прямую адресацию внешней памяти объемом до 65536 байт, 256 устройств ввода и 256 устройств вывода.
Условное графическое обозначение микросхемы приведено на рис.4, назначение выводов в табл.1, структурная схема показана на рис.5.
Восьмиразрядное арифметико-логическое устройство микропроцессора обеспечивает выполнение арифметических и логических операций над двоичными данными, представленными в дополнительном коде, а также обработку двоично-десятичных упакованных чисел.
В состав блока регистров входят: 16-разрядный регистр адреса команды (IР), 16-разрядный регистр указателя стека (SР), 16-разрядный регистр временного хранения (WZ), 16-разрядная схема инкремента-декремента и шесть 8-разрядных регистров общего назначения (В, С, D, Е, H, L), которые могут использоваться и как три 16-разрядных регистра (ВС, DE, HL).
Рис.4 Условное графическое обозначение КР580ВМ80А
Рис.5. Структурная схема КР580ВМ80А
Микропроцессор выполняет команды по машинным циклам. Число циклов, необходимое для выполнения команды, зависит от ее типа и может быть от одного до пяти. Машинные циклы выполняются по машинным тактам. Число тактов в цикле определяется кодом выполняемой команды и может быть от трех до пяти. Длительность такта равна периоду тактовой частоты и при частоте 2,0 МГц составляет 500 нс.
В начале каждого машинного цикла микропроцессор вырабатывает сигнал синхронизации SYN, который в сочетании с другими сигналами может быть использован для организации различных режимов работы.
На рис.6 изображена диаграмма состояний типичного машинного цикла, показывающая последовательность переходу от такта к такту в машинном цикле и влияние внешних сигналов RDY, HLD, INT на выполнение машинного цикла.
Вывод |
Обозначение |
Тип вывода |
Функциональное назначение вывода |
1, 25-27, 29-40 |
А10, А0-А2, А3-А9, А15, А12-А14, А11 |
Выходы |
Канал адреса |
2 |
GND |
- |
Общий |
3-10 |
D4-D7, D3-D0 |
Входы/выходы |
Канал данных |
11 |
UIO |
|
U источника смещения-5В |
12 |
SR |
Вход |
Установка в исходное состояние |
13 |
HLD |
Вход |
Захват |
14 |
INT |
Вход |
Запрос прерывания |
15, 22 |
C2, C1 |
Выход |
Тактовые сигналы |
16 |
INTE |
Выход |
Разрешение прерывания |
17 |
RC |
Выход |
Прием информации |
18 |
TR |
Выход |
Выдача информации |
19 |
SYN |
Выход |
Сигнал синхронизации |
20 |
UCC1 |
- |
Напряжение питания +5В |
21 |
HLDA |
Выход |
Подтверждение захвата |
23 |
RDY |
Вход |
Сигнал «готовность» |
24 |
WI |
Выход |
Сигнал «ожидание» |
28 |
UCC2 |
- |
Напряжение питания +12В |
Таблица 1
После подачи на вывод SR сигнала высокого уровня микропроцессор устанавливается в исходное состояние. В такте Т1 микропроцессор выдает на адресный канал адрес ячейки, в которой хранится команда программы, а через канал данных — информацию состояния. В такте Т2 анализируются состояния сигналов на входе RDY. «Подтверждение останова» и в зависимости от состояния этих сигналов МП переходит в состояние ожидания, останова или к выполнению такта ТЗ. В такте ТЗ при наличии сигнала высокого уровня на входе RDY МП принимает информацию по каналу данных; анализирует состояние сигнала на входе HLD и если этот сигнал высокого уровня, то после окончания такта ТЗ переходит в состояние захвата. В зависимости от кода выполняемой команды машинный цикл завершается после выполнения тактов ТЗ, Т4 или T5.
В конце машинного цикла снова анализируется состояние сигнала на входу HLD. При низком уровне сигнала проверяется, окончено ли выполнение команды. Если команда не закончена, то микропроцессор выполняет следующий машинный цикл команды, начиная с такта Т1. В конце каждой команды микропроцессор анализирует состояние сигнала на входе INT. Если сигнал высокого уровня и прерывание было ранее разрешено командой EI, то микропроцессор переходит к выполнению машинного цикла «Прерывание», начиная с такта Т1. В противном случае выполняется первый машинный цикл новой команды с такта Т1.
Действия, выполняемые микропроцессором в конкретном машинном цикле, определяются 8-разрядной информацией состояния, которая выдается через канал данных в такте Т1 каждого машинного цикла. Эта информация может использоваться для выработки сигналов обращения к ЗУ, УВВ и для организации различных режимов работы микропроцессора.
В зависимости от сочетания сигналов состояния, выдаваемых в конкретном цикле, машинные циклы можно разделить на 10 типов:
1. Цикл М1 — прием первого байта команды в регистр команд.
2. Цикл чтения ЗУ — чтений ЗУ по содержимому программного счетчика или содержимому одного из регистров ВС, DE, HL.
3. Цикл записи в ЗУ — запись в ЗУ по содержимому одного из регистров ВС, DE, HL.
4. Цикл чтения стека — чтение ЗУ по содержимому указателя стека.
5. Цикл записи в стек — запись в ЗУ по содержимому указателя стека.
6. Цикл ввода — ввод информации в регистр результата (аккумулятор) из внешнего устройства.
7. Цикл вывода—вывод информации из регистра результата во внешнее устройство.
8. Цикл прерывания — прием кода команды RST или CALL, из контроллера прерываний.
9. Цикл останова.
10. Цикл прерывания при останове — прием кода команды RST или CALL при выводе микропроцессора из режима «Останов» по прерыванию.
.
При выполнении команд микропроцессор может переходить в одно из трех состояний: «ожидание», «захват» и «останов», длительность которых определяется внешними управляющими сигналами.
Система команд микропроцессора состоит из 78 базовых команд, которые можно разделить на пять групп:
команды передачи данных — используются для передачи данных из регистра в регистр, из памяти в регистр, из регистра в память;
арифметические команды — используются для сложения, вычитания, инкремента или декремента содержимого регистров или ячейки памяти;
логические команды: И, ИЛИ, исключающее ИЛИ, сравнение, сдвиги;
команды переходов—используются для условных и безусловных переходов, вызова подпрограмм и возврата из них;
команды управления, ввода/вывода и работы со стеком — используются для управления прерыванием, регистром признаков, ввода и вывода информации.
В микропроцессоре КР580ВМ80А принят формат информационного слова, представляющего собой 8-разрядное двоичное слово (байт). Формат команды зависит от типа операция и может быть одно- двух- или трехбайтовым. Байты двух- и трехбайтовых команд должны храниться в ячейках памяти, следующих одна за другой. Адрес первого байта всегда является адресом кода операции. Формат команд микропроцессора:
Режимы работы МП-системы. МП-система — это, в конечном счете, цифровой автомат, который выполняет операции с цифровой информацией в соответствии с хранящейся в памяти программой. Поэтому работа по программе и является основным режимом работы такой системы.
После начального запуска (сброса) в программном счетчике (регистр РС) устанавливается число 0000Н. Буква Н в конце числа указывает, что число представлено в шестнадцатеричном коде, т. е. отношение весов данного и соседнего младшего разрядов числа равно 16 (в шестнадцатеричном коде используются цифры 0—9, а также буквы А—F латинского алфавита, соответствующие десятичным числам 10—15). Установка в состояние 0000Н регистра РС приведет к тому, что на адресную шину будет выдан адрес 0000Н и ЦПУ произведет чтение байта информации, хранящегося в ячейке памяти, расположенной по этому адресу.
Содержимое этого байта будет расшифровано в ЦПУ как код соответствующей операции. Получив код операции (КО), ЦПУ определяет число байт, которое должно содержать полный код команды. В рассматриваемом микропроцессоре команды бывают одно-, двух- и трехбайтные, причем по содержанию кода операции МП однозначно устанавливает длину кода команды. Если команда описывается двумя или тремя байтами, то ЦПУ считывает недостающие один или два байта из последующих ячеек памяти. Пусть, например, КО, считанный из ячейки 0000Н, указывает на то, что команда трехбайтная. Тогда в следующих циклах будут считаны слова из ячеек с номерами 0001Н и 0002Н. Считав, таким образом, полный код команды, ЦПУ ее выполняет. Далее ЦПУ считывает слово из следующей ячейки (по адресу 0003Н) и расшифровывает его как код операции. После этого повторяются те же действия, что и при выполнении первой команды. Таким же путем будет продолжаться работа по программе до тех пор, пока не встретится команда перехода. Такая команда нарушает монотонное нарастание числа, хранящегося в программном счетчике РС. Это число изменяется скачком в соответствии с содержанием команды перехода, а далее снова код, выдаваемый на адресную шину, будет увеличиваться на единицу после каждого чтения из памяти.
Таким образом, однобайтные слова, хранящиеся в памяти системы (ПЗУ и ОЗУ), могут представлять собой как коды операций, так и восьмиразрядные двоичные числа, являющиеся для процессора простыми числовыми константами. Содержание самого слова не позволяет определить его принадлежность. И только просматривая команды от начала программы, можно установить, является ли данное слово кодом операции или числом, представляющим, например, второй или третий байт команды.
В процессе выполнения программы МП-система может перейти в режим ожидания. Дело в том, что при работе с запоминающим устройством или устройством ввода—вывода (УВВ) микропроцессор должен получить на шине управления сигнал RDY, подтверждающий готовность этих устройств к обмену информацией с ЦПУ. Если же RDY=0, то МП-система будет находиться в режиме ожидания. При последующем появлении этого сигнала работа системы возобновляется.
Остановить работу МП-системы можно также программным путем с помощью специальной команды останова HLT (код операции 76Н). Дальнейшая работа после останова может быть осуществлена путем сброса или подачи сигнала прерывания.
Режим прерывания — это такой режим работы МП-системы, в котором по сигналу от некоторого внешнего устройства производится выполнение специальной подпрограммы. Если система в момент прихода этого сигнала работала по программе, то вначале завершаются действия, предусмотренные текущей командой, а затем выполнение основной программы прерывается. ЦПУ запрашивает адрес ячейки, в которой хранится КО первой команды подпрограммы обработки прерывания. Этот адрес называют вектором прерывания. Получив вектор прерывания, МП-система далее выполняет команды, считываемые из области памяти, начало которой соответствует вектору прерывания. Последней командой подпрограммы обработки прерывания обычно предписывается системе возврат к выполнению основной программы. Для того чтобы это оказалось возможным, требуется, как правило, в начале подпрограммы обработки прерывания запомнить в стеке состояния всех регистров ЦПУ, а в конце подпрограммы снова восстановить эти состояния.
В МП системе могут действовать несколько входов прерывания со своими векторами, возможно установление различных режимов и приоритетов прерываний.
Еще один режим работы МП-системы—это режим прямого доступа к памяти (ПДП). В обычных условиях при работе по программе обмен информацией между, например, одним из внешних устройств, подсоединенных через адаптер ввода—вывода (АВВ), и устройством памяти (ОЗУ или ПЗУ) осуществляется через ЦПУ. Информация от источника вначале считывается в ЦПУ, а затем из ЦПУ переписывается в приемник информации. Если речь идет о пересылке больших массивов информации, то, естественно, возникает желание упростить и ускорить процедуру обмена за счет исключения из нее промежуточного звена в виде ЦПУ. Именно такая пересылка информации из источника в приемник и осуществляется в режиме ПДП. При этом ЦПУ отключается от шин данных и адреса: буфера этих шин переходят в высокоимпендансное состояние. Происходит так называемый захват шин контроллером ПДП—специальным модулем, составленным из одной или нескольких специальных БИС. Этот модуль управляет работой шин и организует обмен информацией в режиме ПДП.
Режим ПДП не часто реализуется в микропроцессорных измерительных устройствах. Но поскольку МП применяются в устройствах различного назначения, в том числе и в микро-ЭВМ, то входы управления, позволяющие осуществить режим ПДП, имеют практически все МП.
Описание управляющей программы.
При включении питания ЭМС происходит сброс процессора и ППА. С адреса 0000H начинается отработка программы: настройка портов и таймеров для работы в соответствующих режимах и заполнение ячеек ОЗУ последовательностью кодов от 31H до 36Н. Это необходимо для исключения «молчащих» клавиш, которые могут появиться при случайной установке кодой и ОЗУ после подачи питания (рис. 3).
Основная часть программы начинается с опроса нулевой клавиши (на клавиатуре она первая справа). Если она не нажата, то опрашивается следующая клавиша и т. д. Если очередная клавиша нажата, то выполняется часть программы, обрабатывающая коды нажатых клавиш. Она определяет, содержится ли код данной клавиши в памяти одного из каналов, если нет, ставит в соответствие ей свободный канал синтеза.
Рис. 3. Алгоритм работы ЭМС: А — код клавиши (состояние порта А ППА в модуле клавиатуры и стробов); В—код строб-сигнала (состояние порта В ППА); L — номер канала синтеза; М (L) — ячейка ОЗУ, соответствующая каналу с номером L; Т (L) — регистр данных таймера, соответствующий каналу с номером L.
Это достигается вводом номера свободною канала из ПЗУ модуля клавиатуры и стробов, загрузкой кода клавиши в ячейку ОЗУ, соответствующую этому каналу, выбором из таблицы и загрузкой в таймер двухбайтного кода, определяющего частоту тонального сигнала и установкой активного уровня канального строб-сигнала. Далее осуществляется переход к опросу следующей клавиши. После опроса всех 48 клавиш устанавливаются строб-сигналы всех каналов в соответствии с состоянием клавиш. После этого алгоритм повторяется с опроса нулевой клавиши. Если сигнал Программа принимает активный уровень, то после очередного прохода выполняется программа смены звучания, состоящая в поиске нажатой клавиши и загрузке ППА модуля задания параметров синтеза соответствующими ей кодами из таблицы.