Материал: Микропроцессорные устройства систем управления (2005)

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

жен передать определенный код адреса данных и соответствующие сигна­ лы управления.

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

Еще один важный компонент микропроцессорной системы - топология линий связи для передачи сигналов между микропроцессором и другими устройствами. Топология должна быть такой, чтобы изменение структуры микропроцессорной системы не требовало изменения структуры исполь­ зуемых линий связи и формируемых сигналов. Этому требованию удовле­ творяет магистрально-модульный (шинный) принцип организации взаимо­ действия. При шинной организации все устройства подключаются парал­ лельно к используемым линиям связи. Линии связи можно условно объе­ динить в три группы - шины. По шине данных (ШД) передаются требуе­ мые данные, шина адреса (ША) служит для выбора устройств, участвую­ щих в обмене данными, а шина управления (ШУ) необходима для передачи управляющих сигналов.

Шинная организация максимально универсальна: подключение допол­ нительных устройств абсолютно не затрагивает уже действующую струк­ туру микропроцессорной системы. Конечно, такая организация накладыва­ ет и ограничения на обмен данными. Во-первых, управление обменом дан­ ными должно производиться только одним устройством, иначе могут воз­ никнуть конфликты между управляющими устройствами, приводящие к некорректной работе шины. Во-вторых, обязательно требуется адресация устройств, параллельное подключение к шине требует выполнения проце­ дур выбора только одного из нескольких устройств для обмена данными. В-третьих, одновременный обмен данными с несколькими устройствами невозможен, если шины в текущий интервал времени уже заняты, передача каких-либо других данных невозможна. В микропроцессорной системе эти ограничения не создают особых проблем. Управляющим устройством сис­ темы, в том числе и для шины, обычно является микропроцессор, при нор­ мальной работе он обменивается данными с другими устройствами систе­ мы поочередно, адресация используется не только для устройств, но и для данных.

Типичная структура микропроцессорной системы, построенной в соот­ ветствии с указанными принципами, приведена на рис. 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

Источник: https://studfile.net/preview/16521245/