Проектирование узлов цифровой техники (967610), страница 4
Текст из файла (страница 4)
Таблица Таблица
истинности состояний
Рис. 18
Задание 3 состоит в проектировании микропроцессорной системы в программной ее части. Составить программу — это записать последовательность команд для действий микропроцессора.
Нужно ввести через один из портов установленные внешними устройствами сигналы. Применяя пересылки, сдвиговые и логические операции выполнить в младшем разряде действия согласно уравнению (2). Полученный результат выдать через другой порт на выход. Такой подход к составлению программы называют компиляцией.
Можно в некоторую область памяти заранее записать таблицу выходных сигналов для всех сочетаний входных. Программу действия составить как нахождение необходимой строки этой таблицы по входному сигналу. Такой подход называют интерпретацией. Выяснить, какой подход лучше, можно по критериям быстродействия и объема программы.
Бесконечный цикл выполнения для микропроцессорных программ является основным. При этом можно ввести цикл ожидания прихода сигнала, разрешающего выполнить некоторые действия.
Перед написанием программы необходимо составить ее алгоритм. Вначале следует изобразить исходный алгоритм, в котором записать блоки задания — что нужно сделать. Далее его детализируют до уровня отдельных команд. Такой алгоритм уже указывает последовательность команд — как выполнить задание.
На основе алгоритма написать программу. Оптимальный вариант для данного задания — написать программу на языке ассемблера. Затем она транслируется в коды — байты команд.
Для расчета быстродействия при написании программы необходимо ввести графу, в которую нужно записывать количество тактов, необходимых микропроцессору на выполнение каждой команды.
С точки зрения программирующего, микропроцессор — это набор регистров и счетчиков. Для микропроцессора КРБ80ВМ80 — это восьмиразрядные регистры A, F, В, С, D, E, H, L, a PC — программный счетчик и SP — указатель стека являются шестнадцатиразрядными счетчиками (рис. 19). Действия над их содержимым определяются командами.
В списке команд этого микропроцессора их 244. Почти все действия выполняются в арифметико-логическом устройстве (АЛ У). Всеми операциями управляет первичный управляющий автомат (ПУА) в непрерывающемся переходе от выполнения одной команды к следующей. Составленную программу как последовательность байтов следует записывать в память. Если она неизменная, то ее байты записывают в постоянную память, выполненную на БИС ППЗУ. Такие микропроцессорные системы называют контроллерами.
После импульсного сигнала СБР программный счетчик обнуляется, т.е. PC = 0000H Начинается выполнение программы. Содержание PC появляется на магистрали адресов и сопровождается соответствующим сигналом чтения памяти от системного контроллера (рис. 20). Первый байт передается из БИС памяти в микропроцессор и выполняется.
В процессе выполнения команд при обработке каждого их байта кроме основных действий происходит увеличение содержания программного счетчика на единицу. Так подготовляется адрес для выборки следующего байта в двух- или трехбайтных командах или байта следующей команды. Выполняется линейный алгоритм построения программы.
Существуют команды занесения в PC адреса, указываемого в составе самой команды. Она оказывается в этом случае трехбайтной. По этим командам выполняются заданные алгоритмом переходы по программе, в частности организуются циклы.
Фиксированные, заранее известные адреса можно занести в PC командами RSTN, где N от 0 до 7. Эти команды однобайтовые. Их удобно использовать при прерываниях.
Прерывания инициируются внешним устройством, подающим на микропроцессор сигнал запроса прерывания (ЗПР). Приняв запрос на прерывание, микропроцессор после завершения выполнения текущей команды должен получить код команды RSTN. Выполняя ее, он перейдет к реализации фрагмента программы, обслуживающего это прерывание, который записан с соответствующего адреса памяти.
Необходимая команда RSTN подготовляется аппаратно. В алгоритме программы ее нет. В состав микропроцессорной системы вводится регистр прерывания, в котором записывается код этой команды. Приняв сигнал ЗПР, микропроцессор через системный контроллер сигналом подтверждения прерывания (ППР) выводит выход этого регистра из высокоомного состояния. Содержащийся в нем код поступает по магистрали данных в микропроцессор и команда выполняется.
Программа обслуживания прерываний завершается командой RET, возвращающей микропроцессор к выполнению прерванной программы.
После сигнала СБР и приема сигнала ЗПР прерывания запрещены, т.е. не будут восприняты микропроцессором. Существуют команды, разрешающие и запрещающие прерывания.
Условные ветвления в алгоритме программы — это переходы по указываемому в команде адресу в соответствии со значением ДА флага. По значению НЕТ команда условного перехода игнорируется, т.е. выполняется только PC — PC + 1.
Флагами являются отдельные разряды регистра флагов F. Флаги устанавливаются при выполнении команд, влияющих на них. Каждый из флагов фиксирует значение одного из признаков выходного сигнала АЛУ после выполнения команды (см. рис. 19). Например, флаг Zнулевого результата равен единице, если выходной сигнал данных нулевой по всем восьми разрядам, и Z= 0, если сигнал не нулевой. Флаг СУ является по существу девятым разрядом выходного сигнала АЛУ. Его значение СУ = 1 указывает на переполнение разрядной сетки при выполнении операции суммирования, либо принимает значение бита, попадающего в него при выполнении сдвиговой операции. Если команда не влияет на флаги, то их значения сохраняются.
Рис. 19
Рис. 20, а
Рис. 20, б
Запись данных в оперативную память микропроцессорной системы и их считывание может осуществляться командами с непосредственным указанием любого из адресов ОЗУ. Для обращения к оперативной памяти также можно использовать стековую ее организацию. Стековая область памяти — это, как правило, последние адреса реально используемых БИС оперативной памяти. Запись и считывание в эту область происходит по текущему содержанию указателя стека SP.
Такое использование оперативной памяти организует доступ к ячейкам памяти при записи и считывании только по очереди. Реализуется принцип: первым вошел при записи, последним выйдешь при считывании. Это программно более компактно, а при выполнении программы реализуется с большим быстродействием.
Каждая команда характеризуется: кодом команды — 1 байт (первый байт двух- или трехбайтных команд), общим количеством байт в команде, мнемоническим описанием команды, являющимся ее названием, описанием выполняемых по этой команде действий, влиянием на флаги и количеством тактов выполнения команды. При выполнении команды ее код, полученный микропроцессором по магистрали данных, устанавливается на входе первичного управляющего автомата. По тактам с частотой 2 МГц этот автомат выдает сигналы, управляющие всеми операциями в микропроцессоре. При этом выполняются действия, определенные этой командой.
Схема электрическая принципиальная микропроцессорной системы на основе комплекта БИС КР580 в конфигурации, соответствующей поставленной в задании задаче управления, представлена на рис. 20.
БИС ГФ24 - генератор, ВМ80 - микропроцессор, ВК38 - системный контроллер образуют процессор управляющей системы. Реальные возможности такого процессора шире требуемых для выполнения задания, поэтому есть неиспользуемые выводы этих БИС. Они на схеме не указаны.
В условных обозначениях всех микросхем не указаны номера выводов.
Память в системе образуется двумя БИС. Постоянная память для записи программ выполнена на БИС КР556РТ17 — ППЗУ с пережигаемыми перемычками, организация 512x8. Оперативная память для записи и считывания промежуточных данных выполнена на БИС КР535РУ8 - ОЗУ с организацией 1Кх8. Для ее активизации в качестве сигнала ВМ используется бит адресного сигнала А9.
RLC
RAL
RRC
RAR
Рис. 21
Для ввода и вывода данных из микропроцессорной системы используется БИС ВВ55 — интерфейс ввода-вывода. После включения напряжения питания по сигналу СБР все внутренние регистры этой БИС обнуляются. Для начала работы по передаче данных ее каналы А, В и С, обладающие свойствами двунаправленных регистров, необходимо настроить на направление передачи. Занесение в РУС — регистр управляющего слова (порт 03) слова данных 98Я настраивают канал А (порт 00) на ввод, канал В (порт 01) на вывод, младшие четыре бита канала С (порт 02) на вывод, старшие — на ввод.
При обращении к ВВ55 по адресному сигналу и соответствующим сигналам ЧТВВ или ЗПВВ она активизируется сигналом ВМ, образуемым их конъюнкцией.
В качестве регистра прерывания использован регистр ИР82. На его входе, как указано на рис. 21, образован код команды RST4. В каждом конкретном случае составления программы необходимо выбрать наиболее подходящую команду RSTN и в схеме указать образование ее кода.
Внешний сигнал начальной установки воспринимается как СБРВ — входной сброс, поступающий на генератор. В микропроцессор он попадает синхронизированным с тактовыми сигналами.
Таблица кодирования ППЗУ — это перечень полученных в результате трансляции байтов команд с указанием адресов, по которым они располагаются.
Таблица формируется по строкам, указывающим адрес первого в строке байта, затем самих байтов, которых в строке 16. Эти адреса, так же как и байты, выражаются числами в шестнадцатеричной системе счета: 0000, 0010, 0020, 0030 и т.д.
Объем программы в байтах указывается десятичным числом.
8. КОМАНДЫ МИКРОПРОЦЕССОРА КР580ВМ80
При описании команд используются обозначения (табл. 3):
N(**) — порт ввода или вывода, фактически адресный сигнал, 1 байт;
D8 — операнд двухбайтной команды, записывается программирующим как некоторое число, 1 байт;
D16 — операнд трехбайтной команды, записывается программирующим;
D8CT — старший байт;
D8MJI — младший байт;
ADR — адрес в составе трехбайтной команды, 2 байта;
R — регистр;
RP — регистровая пара ВС, DE, HL;
PSW — слово состояния, фактически регистровая пара AF;
M(RP) — ячейка памяти микропроцессорной системы, адрес которой находится в RP.
Таблица 3
ОПИСАНИЕ КОМАНД