жен передать определенный код адреса данных и соответствующие сигна лы управления.
Процедуры ввода-вывода данных также должны выполняться стандарт ными для микропроцессора алгоритмами. Эти алгоритмы, эффективные для управления микропроцессорной системы, могут не соответствовать особенностям работы различных периферийных устройств. Поэтому мик ропроцессорная система обычно содержит устройства ввода-вывода, обес печивающие согласование алгоритмов управления обменом данными.
Еще один важный компонент микропроцессорной системы - топология линий связи для передачи сигналов между микропроцессором и другими устройствами. Топология должна быть такой, чтобы изменение структуры микропроцессорной системы не требовало изменения структуры исполь зуемых линий связи и формируемых сигналов. Этому требованию удовле творяет магистрально-модульный (шинный) принцип организации взаимо действия. При шинной организации все устройства подключаются парал лельно к используемым линиям связи. Линии связи можно условно объе динить в три группы - шины. По шине данных (ШД) передаются требуе мые данные, шина адреса (ША) служит для выбора устройств, участвую щих в обмене данными, а шина управления (ШУ) необходима для передачи управляющих сигналов.
Шинная организация максимально универсальна: подключение допол нительных устройств абсолютно не затрагивает уже действующую струк туру микропроцессорной системы. Конечно, такая организация накладыва ет и ограничения на обмен данными. Во-первых, управление обменом дан ными должно производиться только одним устройством, иначе могут воз никнуть конфликты между управляющими устройствами, приводящие к некорректной работе шины. Во-вторых, обязательно требуется адресация устройств, параллельное подключение к шине требует выполнения проце дур выбора только одного из нескольких устройств для обмена данными. В-третьих, одновременный обмен данными с несколькими устройствами невозможен, если шины в текущий интервал времени уже заняты, передача каких-либо других данных невозможна. В микропроцессорной системе эти ограничения не создают особых проблем. Управляющим устройством сис темы, в том числе и для шины, обычно является микропроцессор, при нор мальной работе он обменивается данными с другими устройствами систе мы поочередно, адресация используется не только для устройств, но и для данных.
Типичная структура микропроцессорной системы, построенной в соот ветствии с указанными принципами, приведена на рис. 2. В этой структуре, отражающей особенности построения типовой микропроцессорной систе-
10
Микропроцессор
|
ж |
Шина данных |
|
Шина адреса |
|
Устройство |
\С |
Шина управления |
|
||
управления |
|
|
ж |
|
|
Регистр |
у |
о <> |
команд |
Запоминающие |
|
|
||
устройства
ж |
S> |
|
£> |
|
: > |
V V V
Устройства ввода-вывода
Программный счетчик
Указательстека
Рис. 2. Структурная схема микропроцессорной системы
мы, рассматривается работа микропроцессора Intel 8080 (отечественный аналог - К580ВМ80). Так как детальное описание этого микропроцессора можно найти в многочисленной литературе, изданной ранее (например, [1]), будем рассматривать только наиболее общие вопросы организации работы микропроцессорной системы (логическое взаимодействие), но с учетом особенностей реализации Intel 8080.
В микропроцессорной системе (рис. 2) запоминающие устройства (па мять) и устройства ввода-вывода (периферийные устройства) представлены в обобщенном виде, хотя в действительности они могут состоять из разно родных устройств с различными свойствами и реализуемыми функциями. Данные в параллельном формате в виде отдельных байт (8 бит) могут пере даваться из микропроцессора или в микропроцессор по ШД. Сигналы ША практически всегда формируются микропроцессором и являются адресом (16 бит) байта данных, который микропроцессором передается или прини мается. Сигналы ШУ в основном формируются устройством управления микропроцессора, хотя отдельные сигналы этой шины могут поступать и от других устройств, выполняя, например, функции запросов или подтвер ждений.
Структура микропроцессора (рис. 2) представлена в форме, отображаю щей только логическую организацию работы, ряд элементов, без которых невозможно корректное физическое взаимодействие, в этой структуре не показан. Микропроцессор содержит элементы, необходимые для выполне ния требуемого набора команд (операций), и представляет собой средство выполнения этих команд, без программы - последовательности команд, реализующих заданный алгоритм работы микропроцессорной системы, ни какие операции невозможны. Любые действия в микропроцессоре начина ются с чтения из запоминающего устройства (памяти) кода очередной ко манды и его ввода в регистр команд. Поэтому любую микропроцессорную систему необходимо рассматривать как программно-аппаратный комплекс. Аппаратные (hardware) и программные (software) средства тесно связаны и могут работать только в едином комплексе.
Код команды, поступивший в регистр команд микропроцессора, сигна лами устройства управления определяет необходимые функции, как внут ренних элементов микропроцессора, так и других устройств микропроцес сорной системы через ШУ. Операции преобразования данных выполняют ся арифметико-логическим устройством - АЛУ (рис. 2). Набор этих опера ций обычно стандартный и включает сложение, вычитание, инкремент (увеличение переменной на единицу), декремент (уменьшение переменной на единицу), логические операции И, ИЛИ, исключающее ИЛИ, инверсия и т.п. В рассматриваемой системе основной формат данных АЛУ - байт (8 бит), АЛУ предназначено только для преобразования и не содержит эле ментов для хранения данных.
12
Входными данными для операций преобразования обычно служат две переменных, а результат преобразования - одна переменная. Например, для операции сложения в АЛУ входными переменными будут 2 слагаемых по одному байту, а результат-сумма - один байт и признак переноса, если сумма выходит за пределы однобайтового формата. Для хранения и вход ных переменных, и результатов преобразования микропроцессор содержит регистры: регистр-аккумулятор и 6 регистров блока регистров общего на значения (РОН). Одна из входных переменных (операндов) всегда разме щается в аккумуляторе, а полученный результат преобразования также все гда направляется в аккумулятор. Второй операнд может храниться в одном из регистров РОН. В коде команды преобразования обычно указывается ре гистр, из которого поступает второй операнд, если аккумулятор единствен ный (рис. 2), его не указывают в коде команды.
Количество регистров данных микропроцессора невелико, в данном примере - 7 регистров (аккумулятор и 6 регистров блока РОН), эти регист ры содержат данные, которые постоянно доступны для преобразования. Основной объем данных хранится в памяти микропроцессорной системы, однако для выполнения операций их необходимо переместить в регистры данных микропроцессора, используя процедуры адресации и управления обменом данных. Разрядность регистров блока РОН соответствует формату данных АЛУ - один байт. Эти 6 однобайтовых регистров (регистры В, С, D, E, H, L, рис. 2) могут использоваться независимо или объединяться в ре гистровые пары ВС, DE, HL для выполнения определенных операций с двухбайтовыми данными. В первую очередь двухбайтовый формат необхо дим для операций с адресами, так как адресация данных в микропроцес сорной системе производится двухбайтовым адресом ША. Такой формат адреса обеспечивает размер адресного пространства микропроцессорной системы 216 = 64 кбайт.
Организация микропроцессорной системы, кроме операций преобразо вания данных, требует выполнения операций пересылки данных, с помо щью которых обеспечивается доступ к преобразуемым данным. Операции пересылки должны производить обмен данных между регистрами микро процессора, между регистрами микропроцессора и памятью или устройст вами ввода-вывода. Эти операции так же, как и операции преобразования, задаются командами программы с указанием кода операции и адресов при емника и источника для пересылаемых данных.
В рассматриваемой микропроцессорной системе используется память с единым адресным пространством объема 64 кбайта и для данных, и для ко дов программы. Адреса данных содержатся в кодах программы, а адреса кодов программы определяются специальным регистром - программным счетчиком. Разрядность программного счетчика соответствует формату ад реса (2 байта), его содержимое определяет адрес ячейки памяти, в которой хранится код очередной команды. Последовательность выполняемых ко-
13
манд обычно формируется в виде линейной последовательности кодов про граммы и размещается в ячейках памяти с последовательно нарастающими адресами.
Стандартный цикл работы микропроцессорной системы для очередной команды выполняется следующим образом:
1. По сигналам устройства управления микропроцессора производится считывание и ввод в регистр команд кода очередной команды по адре су, указанному в программном счетчике.
2.Содержимое программного счетчика автоматически инкрементируется (увеличивается на единицу) для определения следующего адреса хранения кодов программы.
3.Если код команды поступил в микропроцессор полностью, команда выполняется; если требуется чтение недостающих элементов кода, по вторяется считывание с автоматическим инкрементом адреса в про граммном счетчике (повторение п.п. 1 и 2).
4.Когда очередная команда программы микропроцессорной системы выполнена, в программном счетчике уже содержится адрес следующей команды и начинается следующий рабочий цикл (см. п. 1).
Вкачестве примера программной реализации рассмотрим процедуру сложения двух переменных. Полагаем, что однобайтовые слагаемые D1 и D2 хранятся в ячейках памяти по двухбайтовым адресам А1 и А2, полу ченный однобайтовый результат необходимо сохранить по адресу A3, а последовательность кодов программы сложения также хранится в ячей ках памяти с начальным адресом А4. С учетом особенностей работы микропроцессорной системы алгоритм должен предусматривать ввод из памяти в регистры микропроцессора обоих слагаемых, сложение содер жимого двух регистров данных и пересылку в память полученного резуль тата.
Эта последовательность команд при использовании мнемонических обо значений операций для микропроцессора Intel 8080 будет следующая:
ml: |
Ida Al |
; чтение байта данных D1 из ячейки памяти по адресу А1 и |
|
|
|
|
; пересылка в аккумулятор микропроцессора |
т2: |
mov |
В, А ; пересылка данных из аккумулятора в регистр В |
|
13 Ida А2 |
; чтение байта данных D2 из ячейки памяти по адресу А2 и |
||
|
; |
пересылка в аккумулятор микропроцессора. |
|
т4: add |
В |
; сложение содержимого аккумулятора и регистра В |
|
|
|
; (D1+D2), результат сложения помещается в |
|
|
|
; аккумулятор (А-А+В) |
|
т5: sta |
A3 |
; пересылка байта данных из аккумулятора в память и |
|
; запись в ячейку памяти по адресу A3
14