Главная > Схемотехника > Микропроцессорные автоматические системы регулирования. Основы теории и элементы
<< Предыдущий параграф
Следующий параграф >>
<< Предыдущий параграф Следующий параграф >>
Макеты страниц

9.3. СТРУКТУРНАЯ СХЕМА И УСТРОЙСТВО ОДНОКРИСТАЛЬНОГО МП

В настоящее время промышленностью выпускается много моделей микропроцессоров с широким спектром параметров. Поэтому целесообразно вначале рассмотреть некоторый наиболее распространенный на практике тип МП. Это позволит лучше осветить наиболее существенные аспекты функционирования и применения МП, не вдаваясь пока в детали, характерные для тех или иных модификаций МП. Наиболее подходящим с этой точки зрения является микропроцессор серии К 580 (КР 580).

КР580ВМ80А — центральный процессорный элемент параллельной обработки данных, представляет собой -разрядный микропроцессор (МП), реализованный на одном кристалле большой интегральной схемы (БИС) по -МОП технологии, содержит 5000 элементов (транзисторов) и выполнен в 40-выводном пластмассовом корпусе. Тактовая частота 2 МГц. Источники питания: + 5 В, + 12 В, —5 В.

Для данного МП характерны однозначно определенная архитектура и система команд, отсутствие возможности аппаратного наращивания разрядности обрабатываемых данных; он используется для построения средств обработки информации в устройствах и системах автоматики, контроллерах и микроЭВМ (МЭВМ), в частности, в МЭВМ СМ 1800, семейства «Электроника-К1», МИКРОДАТ, Ремиконт Р-100 и др.

Микропроцессорные системы (МПС) на базе этого МП организуются соединением его с устройствами (портами) ввода-вывода (до 256 входных и 256 выходных портов) и модулями полупроводниковой памяти любого типа и быстродействия.

Количество базовых команд микропроцессора — 78, время выполнения команд для тактовой частоты 2 МГц находится в диапазоне 2 ... 9 мкс.

На рис. 9.1 приведены структура МП (а) и условное обозначение микропроцессорной БИС (б). Он состоит из следующих основных функциональных элементов: арифметико-логического устройства (АЛУ), схемы десятичной коррекции (ДК), блока регистров (БРГ), устройства управления (УУ), регистра-аккумулятора (А), буферного регистра (БР), регистра признаков результата или флагового регистра (F), буферов данных (БД) и адреса (БА).

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

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

Схема десятичной коррекции, построенная на базе ПЗУ, позволяет выполнять обработку данных, представленных в двоичнодесятичной системе.

Для приема, хранения и передачи различной информации предназначен БРГ, который участвует в процессе выполнения программы. Он содержит специальные регистры: регистр адреса (РА), регистр счетчик команд или программный счетчик (СК) и регистр указатель стека (УС), регистры W и Z (не являются программнодоступными, используются для временного хранения данных при выполнении команд), мультиплексоры (МПЛ), схему выбора регистров (СВРГ) и шесть регистров общего назначения (РОН).

Перечисленные компоненты существенно расширяют возможности АЛУ по обработке информации.

Обмен информацией внутри МП осуществляется но внутренней 8-разрядной шине данных (ШДВ) с помощью двух 8-разрядных мультиплексоров (МПЛ).

Регистр адреса — 16-разрядный регистр, предназначенный для хранения адреса ячейки ОЗУ, из которой в некоторый момент времени необходимо считать операнд или в которую необходимо записать операнд.

На РА коды передаются из регистровых пар БРГ, УС и СК при обращении к памяти и внешним устройствам.

(см. скан)

Рис. 9.1

Счетчик команд (СК) — это программно-доступный 16-раз-рядный регистр, иногда его называют также программным счетчиком, содержимое которого указывает адрес очередной команды. После чтения очередной команды содержимое СК автоматически увеличивается на единицу при выборке каждого байта команды, а точнее на 1,2 или 3 в зависимости от длины команды. При этом первый байт, определяющий код операции (КОП), всегда передается по ШДВ в регистр команд (РК). Этот процесс длится до тех пор, пока выполнение происходит по последовательной ветви команд. Если же текущая команда (перехода или вызова ПП) изменит последовательность выполнения программы, МП занесет в СК не адрес следующей команды, а адрес, определяемый выполняемой в настоящий момент командой.

Указатель стека — специальный программно-доступный 16-разрядный регистр. С его помощью пользователь определяет адреса ячеек ОЗУ, с которыми оперируют стековые операции. В процессе функционирования МП в указателе стека хранится адрес последней занятой ячейки стековой памяти. Содержимое указателя стека уменьшается перед записью кода в стек и увеличивается после считывания.

Регистры общего назначения (РОН) - это устройства, выполняюющие роль сверхоперативного ЗУ. В состав РОН входят шесть 8-разрядных регистров (РГ): В, С, D, Е, Н. L. Принята следующая адресация РОН: С-001, D-010, Е-011, Н-100, L - 101.

Поскольку ряд команд предусматривает обработку или пересылку машинных слов двойной длины, то пары регистров В и С, D и Е, Н и L объединяются в 16-разрядные РГ (регистровые пары), имеющие адреса 00, 01, 10 соответственно. При символическом представлении таких РГ используются обозначения только первого в паре РГ, т. е. В, D и Н соответственно.

Устройство управления (УУ) — управляет работой АЛУ, БРГ и другими компонентами МП, реализуя следующие основные функции:

выборку команд программы в нужной последовательности, их дешифрацию и обработку полей команды;

управление выполнением операций;

синхронизацию работы отдельных блоков и элементов МП.

Регистр команд (РК) — входит в состав УУ и предназначен для хранения кода операции (первого байта) той команды, адрес которой установлен в счетчике команд, при этом второй байт команды заносится в регистр w, а третий — в регистр z.

Далее код операции поступает на дешифратор команд (ДШК), где осуществляется дешифрация команды, т. е. определяется тип выполняемой операции.

ДШК представляет собой пять программируемых логических матриц двух типов ().

Блок управления и синхронизации (БУС) — вырабатывает необходимую последовательность управляющих сигналов, предназначенных для управления и синхронизации как внутренними компонентами микропроцессора (сигналы УВ), так и для связи с внешними (относительно МП) устройствами — это выходные сигналы управления и состояния, которые передаются по шине управления (ШУ).

Поскольку МП изготовлен по -МДП технологии, его нагрузочная способность низка. Выходной ток при низком уровне сигнала составляет 1,9 мА, что является достаточным для управления только одним входом микросхемы, изготовленной по ТТЛ технологии. Вследствие этого для увеличения нагрузочной способности шин адреса (ША), данных (ШД) и управления (ШУ) необходимо использовать соответствующие буферные регистры.

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

Буферный регистр данных (БД) предназначен для сопряжения МП с шиной данных. Управляемый сигналами, поступающими с УУ, буфер данных обеспечивает либо прием байта данных в МП. либо выдачу байта во внешнюю шину, так как он содержит двунаправленные магистральные усилители, либо отключение МП от этой шины.

Таким образом, МП содержит доступные для пользователя (разработчика МПАС) шесть 8-разрядных регистров, 8-разрядный аккумулятор, пять анализируемых триггеров — флажков, содержащих признаки результата, полученного в 8-разрядном АЛУ параллельного действия.

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

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

Другим преимуществом являются практически неограниченные возможности обращения к программам из подпрограмм (вложение подпрограмм).

Отдельные 16-разрядная шина адреса и 8-разрядная двунаправленная шина данных допускают непосредственное подсоединение МП к микросхемам памяти и портам ввода-вывода. Сигналы управления не требуют декодирования и формируются самим процессором. Все шины (ША. ШД, ШУ) совместимы по уровням с ИС ТТЛ.

Регистр признаков результата операции (F). Последовательность выполнения операций в процессе обработки цифровой информации часто зависит от значения результата выполнения предыдущей операции. Для того чтобы использовать информацию о результатах предыдущих операций, в состав МП введен набор триггеров, каждый из которых устанавливается в «1» или в «0» в зависимости от того или иного признака результата. Совокупность этих триггеров образуют регистр признаков результата, который иногда называют также флаговым регистром (F).

Программно можно проверить значения четырех признаков; СУ — переноса (carry), S — знака (sign), Z - нуля (zего), Р — четности (parity). Эти признаки можно использовать при организации более сложных процедур обработки информации, реализуя команды условного перехода, условного вызова подпрограммы или условного возврата из нее. Пятый признак АС — вспомогательного переноса (auxiliray carry) — используется при реализации команды десятичной коррекции (ДАА).

Рассмотрим некоторые особенности использования указанных признаков.

Признак переноса. Если при выполнении операции сложения осуществляется перенос из старшего (седьмого) разряда аккумулятора, то соответствующий этому признаку триггер устанавливается в «1», в противном случае он устанавливается в «0». Другими словами, признаку СУ присваивается либо значение «1», либо «0». Аналогично его использование при вычитании. Кроме того, команды, сдвигающие содержимое акумулятора влево или вправо на один разряд, используют признак СУ как девятый разряд аккумулятора.

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

Признак нуля. Ряд команд МП устанавливает признак нуля в «1», что соответствует равенству нулю всех разрядов аккумулятора.

Если результате аккумуляторе отличен от нуля, признак нули будет сброшен в «0».

Признак четности. Четность результата выполнения команды определяется подсчетом количества единиц в аккумуляторе после выполнения команды. Признак четности устанавливается в «1» для четного количества единиц и сбрасывается в ноль для нечетного их количества. Обычно признак четности используется для контроля на четность данных в процессе их передачи.

Признак вспомогательного переноса указывает на наличие переноса из третьего разряда результата в аккумуляторе. Этот признак нельзя опросить в программе непосредственно. и он используется лишь в команде ДАА (десятичная настройка аккумулятора) для преобразования чисел из двоичной системы счисления в двоично-десятичную, например содержимое аккумулятора можно преобразовать в два четырехбитовых двоичных кода десятичного числа.

При описании МП необходимо также рассмотреть состав и функциональное назначение его внешних выводов (рис. 9.1, б): — входы для подачи синхросигналов определяющих тактовую частоту работы МП;

— входы источников питания: нулевой потенциал (земля), +5 В, -5 В, +12;

Г (READI) — вход, сигнал на котором информирует МП о готовности ВУ к обмену информацией; при нулевом уровне на этом входе МП будет находиться в состоянии ОЖИДАНИЕ;

ЗЗХ (HOLD) — вход, на который подается сигнал, соответствующий запросу захвата, т. е. на переход МП в состояние ЗАХВАТ, в котором ША и ШД переходят в состояние высокого сопротивления; это состояние обычно используется для организации обмена информацией по каналу прямого доступа к памяти; -

ЗПР (INT) — вход, на который подается сигнал запроса прерывания от ВУ, т. е. на прерывание основной программы и переход на выполнение подпрограмм обслуживания прерывания; этот сигнал не воспринимается МП при работе его в режимах ЗАХВАТ, ОЖИДАНИЕ или при нулевом состоянии триггера разрешения прерывания;

R (RESET) — вход, по которому поступает сигнал на начальную установку МП, при этом обнуляются РК, СК, внутренние триггеры подтверждения захвата и разрешения прерывания (состояния остальных регистров не изменяются), в результате чего выполнение программы начинается с нулевой ячейки памяти;

А0-А15 — адресная шина (выходы с тремя состояниями), обеспечивает адресацию памяти емкостью до 64 К байт, адресацию 256 устройств ввода-вывода (УВВ);

— двунаправленная шина данных (с тремя состояниями), обеспечивает обмен информацией между МП, памятью и внешними устройствами (ВУ);

С (SYNC) — выход синхронизации, на котором формируется сигнал в начале каждого машинного цикла;

П (DBIN) — выход, на котором формируется сигнал, указывающий (памяти и ВУ) на готовность МП к приему данных (разрешение ввода данных);

ОЖД (WAIT) — выход, сигнал на котором указывает, что МП находится в состоянии ожидания;

ЗП выход, сигнал на котором используется для управления записью информации из МП в память и ВУ, активным является сигнал ЗП

ПЗХ (HLDA) — выход, на котором формируется сигнал подтверждения состояния захвата МП (в ответ на сигнал запроса захвата — ЗЗХ), указывает на то, что ШД и ША находятся в состоянии высокого сопротивления; после окончания текущего МЦ микропроцессор приостанавливает выполнение своих операций, пока действует сигнал ЗЗХ; сигналы ЗЗХ и ПЗХ можно использовать для организации прямого доступа к памяти, а также в многопроцессорных системах;

РПР (INTE) — выход, на котором формируется сигнал разрешения прерываний, характеризует состояние внутреннего триггера разрешения прерывания МП; состояние этого триггера может быть установлено программно с помощью команд .

При нулевом уровне на выходе РПР прием запросов прерывания МП невозможен.

В исходном состоянии на МП подаются питающие напряжения ±5 В, +12, последовательности импульсов синхронизации , сигнал СБРОС, устанавливающий элементы памяти МП в начальное положение. В СК при этом записывается нуль.

После окончания действия сигнала СБРОС МП осуществляет обращение к нулевой ячейке памяти, где всегда располагается начало программы. Эта программа начинает покомандно выполняться.

Анализ работы МП по реализации различных команд показывает, что им выполняется всего десять типовых машинных циклов <МЦ):

выборка из памяти (ОЗУ, ПЗУ) первого байта команды - ;

чтение ЗУ — считывание содержимого ячейки памяти по адресу, хранящемуся в СК или в одной из пар регистров ВС, ДЕ, HL;

запись в ЗУ — запись в ЯП по адресу, хранящемуся в одной из пар регистров ВС, ДЕ, HL;

чтение стека — считывание из стековой памяти по адресу, хранящемуся в УС;

запись в стек — запись в стековую память по адресу, хранящемуся в УС;

ввод — ввод информации в аккумулятор из внешнего устройства (ВУ);

вывод — вывод инфорации из аккумулятора в ВУ;

прерывание — перевод МП в режим «Прерывание», обработка прерывания;

останов — перевод МП в режим «Останов»;

прерывание при останове — вывод МП из режима «Останов» по запросу прерывания.

Любая команда начинает выполняться с цикла Последующие этапы работы МП определяются кодом операции.

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

— признак подтверждения прерывания, используется для разрешения передачи команды вызова подпрограммы (ПП) обработки запроса прерывания;

— признак записи — вывода, указывает, что в текущем МЦ будет выполняться запись в память или вывод кода в порт вывода (при

— признак указывает, что на ША передается адрес из УС, используемый для адресации области стековой памяти;

— признак подтверждает выполнение команды останова

— признак вывода, указывает, что ША содержит адрес порта вывода, а шина данных будет содержать данные при сигнале

— признак указывает, что МП находится в цикле выборки первого байта команды;

— признак ввода, указывает, что ША содержит адрес порта ввода и входные данные передаются по ШД при сигнале DBIN

— признак указывает, что ШД будет использована для приема данных из памяти.

Слово состояния может загружаться в -разрядный регистр, например К589ИР12, посредством сигнала синхронизации тактирующего сигнала уровня ТТЛ, формируемого генератором тактовых сигналов (ГТС), и использоваться для управления компонентами МПС.

Однако в более простых случах организация МПС возможна и без применения рассмотренных признаков.

Система прерываний. В МП имеется специальный триггер — триггер разрешения прерывания (РПР), который может быть установлен в «1» либо сброшен в «0» командами EI и DI соответственно.

Если триггер РПР сброшен в «0», система прерываний блокирована и запросы прерываний не воспринимаются. Если же МП воспринимает запрос прерывания от внешнего устройства, происходят следующие действия: заканчивается выполнение текущей команды; сбрасывается в «0» триггер РПР; прерывающее устройство аппаратно формирует команду и посылает ее в МП для выполнения. Эта команда не расположена в памяти, и пользователь не может ее изменить, так как она функционально определена разработчиком системы прерываний. Перед выполнением команды не увеличивается содержимое счетчика команд.

Обычно прерывающее устройство формирует команду RST, которая вызывает одну из восьми 8-байтовых подпрограмм, располагаемых в первых 64 байт памяти.

Например, нулевое устройство при каждом запросе на прерывание может посылать команду RSTO. Для обработки данных, поступающих от нулевого устройства, управление передается соответствующей подпрограмме группой команд, расположенных в байтах памяти . Первое устройство может формировать команду через группу команд, расположенных в байтах памяти должна быть вызвана подпрограмма обслуживания первого устройства и т. д. до седьмого устройства включительно.

Подпрограмма обработки прерываний должна, как минимум, сохранить признаки результата (условий) и восстановить их перед возвратом в основную программу. Кроме того, триггер РПР после подтверждения запроса прерывания сбрасывается в «0», в результате чего система прерываний оказывается блокированной. Для разрешения приема и обслуживания последующих прерываний в подпрограмму обработки прерываний необходимо включить команду EI. После выполнения команды EI подпрограмма обработки прерываний может быть прервана. Таким образом, типичная подпрограмма обработки прерываний следующая:

<< Предыдущий параграф Следующий параграф >>
Оглавление