1.1. Структура ЦПЭ

1.2. Форматы команд

1.3. Виды адресации

1.4. Виды выполняемых операций

1.5. Примеры программирования микропроцессора

1.6. Циклические программы

1.7. Система сбора и обработки информации

1.8. Система групповой АРУ аналоговой системы передачи

Рисунок 1.1. Структура микропроцессорного комплекта 580 серии

Рисунок 1.1. Структура микропроцессорного комплекта 580 серии.

Микропроцессор состоит из четырех основных частей:

  1. ЦПЭ – центральный процессорный элемент;
  2. ШД – шина данных;
  3. ОЗУ – оперативное запоминающее устройство;
  4. ПЗУ – постоянное запоминающее устройство – одна или несколько микросхем, содержимое которых можно изменить либо в специальном программаторе, либо на заводе-изготовителе.

Принцип работы.

Система начинает работать после приема сигнала сброса. По этому сигналу все регистры, входящие в ЦПЭ, переходят в исходное нулевое состояние. Обнуляется оперативная память, обнуляются регистры устройства ввода-вывода. В ЦПЭ помимо этого обнуляется счетчик адреса. Далее под действием тактовых сигналов на ША вырабатывается нулевой адрес. По этому адресу производится первое обращение к первой ячейке ПЗУ, где хранится начало работы программы. За сигналом адреса по шине управления (ШУ) следует сигнал чтения (read), далее идет синхросигнал, а ПЗУ отвечает, что готово выдать сигнал. Итак, после выставления нулевого адреса по ША, а также сигнала read и синхросигнала по ШУ, ПЗУ отвечает сигналом ready (готов). Одновременно с сигналом ready выставляется первый байт, который через ШД поступает ЦПЭ. Принятый байт анализируется и тут же выполняется. Следом за этим выставляется новый адрес и вся процедура выполняется до тех пор, пока не будет считана последняя ячейка ПЗУ. После первоначальной инициализации переходим к выполнению рабочей программы. Для этих целей через устройство ввода/вывода передается рабочая программа, которая помещается в оперативную память. При выполнении рабочей программы процессы аналогичны процессу инициализации

При перекачке рабочей программы с внешнего носителя в оперативную память возможны два режима:

  1. Информация с внешнего носителя поступает на устройство ввода/вывода, затем на внешнюю ШД, на буфер 1 (Б1), через внутреннюю ШД на ЦПЭ, далее вновь обратно поступает в ОЗУ.
  2. С внешнего носителя на устройства ввода/вывода, на внешнюю шину данных и с нее на ОЗУ (режим прямого доступа к памяти (ПДП))

После записи рабочей программы в ОЗУ начинается ее выполнение. Начиная с адреса 2 по ША ведется обращение к ОЗУ. Рабочая программа может быть либо ветвящейся, либо последовательной, либо циклической. Выполнение каждой из этих программ осуществляется по-разному:

  1. Последовательная программа. При выполнении последовательной программы адреса на ША формируются последовательно. Сигнал с ОЗУ, который хранится в разных ячейках адресного пространства, попадает в ЦПЭ, и каждая команда выполняется после ее принятия.
  2. Ветвящаяся программа. Часть программы – последовательная, но есть условия, которые заставляют перейти на новую адресацию. При выполнении наперед заданных условий производится переход на новые адреса, которые хранят новые условия обработки задач. При этом старый адрес запоминается в специальном регистре и после выполнения условия идет возврат к прежнему адресу.

1.1. Структура ЦПЭ

Структура ЦПЭ показана на рис.1.1.1.

1. АЛУ – арифметико-логическое устройство. Позволяет производить 4 вида операций:

  1. Арифметическое сложение;
  2. Логическое сложение;
  3. Логическое умножение;
  4. Суммирование по модулю два.

2. РОН – Блок регистров общего назначения. Участвуют в операции как восьмиразрядные регистры. Всего их шесть. Помимо этого они могут образовывать пары регистров, которые используются:

  1. Для косвенной адресации;
  2. Для 16-ти разрядной обработки сигналов.

3. Аккумулятор – является главным регистром процессора, в нем производится 95% всех операций. Это 8-разрядный регистр.

4. РС – счетчик команд. Необходим для перехода к новому адресу при последовательном выполнении программы. Всегда работает вместе с регистром адреса РА. При последовательном выполнении программы состояние счетчика команд РС последовательно увеличивается на единицу, переписывается в регистр адреса РА и через буфер 2 выдается на внешнюю шину данных ШД. Если выполняется ветвящаяся программа, то состояние счетчика команд запоминается в одной из ячеек указателя стека (SP), а в регистр адреса записывается адрес, на который нужно перейти в результате безусловной операции.

5. SP – указатель стека. Используется для упрощенной адресации к оперативной памяти. Это оперативная память магазинного типа

Рисунок 1.1.1. – Структура ЦПЭ.

– первым вошел – последним вышел. При запоминании сигналов в стек обязательно производится запись 16-ти разрядного числа.

6. Шина управления (ШУ)

Генератор тактовых импульсов (ГТИ) формирует две импульсные последовательности Ф1 и Ф2, необходимые для тактирования работы микропроцессора.

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

WRITE – сигнал записи.
READ – сигнал считывания.

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

Сигнал ЗАПРЕТ ПРЕРЫВАНИЯ запрещает производить прерывание при обработке программы.

Микропроцессор может быть переведен в ведомый режим с помощью сигнала Захват. При этом микропроцессор отключается от внешних шин, предоставляя их в распоряжение некоторого внешнего устройства, и останавливает работу.

В каждом цикле микропроцессор выдает на выход СИНХРОНИЗАЦИЯ стробирующие импульсы – синхросигнал и на шину данных – информацию о состоянии.

7. Регистр признаков.

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

  • ТС - Признак переноса из восьмого в девятый разряд. Участвует в арифметических и логических операциях при переполнении разрядной сетки, кроме этого, он используется при циклических сдвигах аккумулятора вправо и влево.
  • ТZ – Признак нуля. Устанавливается в состояние логической 1, если результат операции АЛУ или операции приращения содержимого регистра равен нулю. В остальных случаях ТZ =0.
  • ТS – Признак знака. Если в результате выполняемой операции результат положительный, то ТS =0, если – отрицательный, то ТS =1.
  • ТР – признак четности. Устанавливается в состояние лог.1, если число единиц а разрядах результата четно; если количество единиц нечетное, ТР=0.
  • ТV – признак переноса из 4-го в 5-ый разряд.

1.2. Форматы команд

При работе микропроцессора используются три вида формата команд.

  • Однобайтовые команды,
  • Двухбайтовые команды
  • Трехбайтовые команды
  1. Однобайтовые команды. Используются тогда, когда в одном байте содержится вся информация об используемых регистрах и виде выполняемых операций. » 90% всех выполняемых команд – однобайтовые. Однобайтовые команды содержат код операции (КОП).

Двухбайтовые команды. Используются:

  • При вводе и выводе сигналов из микропроцессора;
  • При непосредственной загрузке одного из регистров общего назначения (РОН);
  • При арифметических и логических операциях, когда вторым операндом является регистр общего назначения.

D7

D6

D5

D4

D3

D2

D1

D0

КОП

D7

D6

D5

D4

D3

D2

D1

D0

<B2>

В первом байте двухбайтовой команды указывается вид выполняемой операции, во втором байте приводится число, являющееся операндом при выполнении операции, либо номером устройства ввода или вывода.

    1. Трехбайтовые команды.

<B1>

D7

D6

D5

D4

D3

D2

D1

D0

КОП (код операции)

<B2>

D7

D6

D5

D4

D3

D2

D1

D0

Младший байт адреса или младший байт операнда

<B3>

D7

D6

D5

D4

D3

D2

D1

D0

Старший байт адреса или старший байт операнда

  1. Трехбайтовые форматы команд используются в следующих случаях:
      1. Непосредственная загрузка пар регистров;
      2. Сложение пар регистров;
      3. Условный или безусловный переход по заданному адресу;
      4. При косвенной адресации.

1.3. Виды адресации

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

    1. Прямая адресация. При этом способе адресации используется однобайтовая команда, которая содержит только код операции (КОП). В байте КОП указываются адреса регистров, где хранятся операнды и куда пересылается результат. Адреса регистров приведены в следующей таблице:

Регистр

Адрес регистра, используемый в командах

Регистр

Адрес регистра, используемый в командах

В

000

H

100

С

001

L

101

D

010

M

110

E

011

A

111

Под М понимается ячейка оперативной памяти, адресом которой служит содержимое пары регистров HL. А – аккумулятор.

  1. Непосредственная адресация. При этом способе адресации операнды (один либо два) задаются непосредственно в команде вслед за байтом кода операции во втором, либо втором и третьем байтах. Таким образом, непосредственная адресация – это двух- или трехбайтовая команда.
  2. Косвенная адресация. При этом способе адресации в команде указывается пара регистров блока РОН (путем указания адреса одного из регистров этой пары), содержимое которой служит адресом, по которому в оперативной памяти находится операнд.

Пара регистров HL является более предпочтительной при обращении к ячейкам оперативной памяти, т.к. с помощью этой пары регистров возможно переслать содержимое оперативной памяти в любой из регистров назначения.

Пары регистров ВС и DE используются только при пересылках из оперативной памяти в аккумулятор и обратно.

1.4. Виды выполняемых операций

    1. Операции пересылки и непосредственной загрузки. При выполнении этого вида операций могут использоваться одно-, двух-, и трехбайтовые команды. Наиболее многочисленный класс операций – команды однобайтовые. Возможно использование семи регистров общего назначения, ячеек оперативной памяти, стеков. Производится пересылка или непосредственная загрузка одного или пары регистров.
      • Операции пересылки. Производится пересылка данных из одного регистра в другой.

Пример: - содержимое регистра В пересылается в регистр С. Мнемонически это записывается MOV C,B

В случае использования пар регистров HL ячейка оперативной памяти рассматривается как отдельный регистр общего назначения.

Пример: – пересылка в регистр D содержимого пары регистров HL (M – ячейка оперативной памяти, адресом которой служит содержимое пары регистров HL)

      • Непосредственная загрузка регистра.

MVI E,5D

      • Непосредственная загрузка пары регистров

LXI D, 5D4F

    1. Арифметические и логические операции. Все операции данного класса команд производятся исключительно через аккумулятор. Операции производятся как с данными, хранящимися в регистрах общего назначения, так и с данными, которые следуют в командах. Сложение 2-х байтовых чисел возможно только арифметически.
  • Логическое сложение

      • Арифметическое сложение

      • Сложение по модулю два

X1

X2

Y

0

0

0

1

0

1

0

1

1

1

1

0

      • Логическое умножение

    1. Операции циклического сдвига

Циклические сдвиги возможны исключительно в аккумуляторе, при этом кодовая комбинация сдвигается либо влево, либо вправо

  • Сдвиг вправо без учета переноса

Мнемонически такая операция обозначается RRC.
Содержимое каждого разряда аккумулятора передается в соседний младший разряд , содержимое младшего разряда передается в старший разряд и одновременно в триггер переноса .

      1. Сдвиг вправо с учетом переноса.

Мнемонически такая операция обозначается RAR.
Отличие от сдвига без переноса в том, что триггер переноса передает свое содержимое в старший разряд аккумулятора и принимает выданное из аккумулятора содержимое младшего разряда .

      1. Сдвиг влево без учета переноса.

Мнемонически такая операция обозначается RLC.
Содержимое каждого разряда аккумулятора передается в соседний старший разряд , содержимое старшего разряда переносится в младший разряд и одновременно в триггер переноса .

      1. Сдвиг влево с учетом переноса.

Мнемонически такая операция обозначается RАL.
Отличие от сдвига без переноса состоит в том, что триггер переноса ТС вводится в замкнутый контур, в котором осуществляется сдвиг; триггер переноса передает свое содержимое в младший разряд аккумулятора и принимает выдвигаемое из аккумулятора содержимое старшего разряда .

  • Положительное и отрицательное приращение регистра или пары регистров.

Увеличение (уменьшение) содержимого регистра необходимо для организации циклических операций и для обращения к ячейкам оперативной памяти (модификация адреса).

– положительное приращение регистра. Мнемонически это будет INP B.

– уменьшение содержимого регистра С. Мнемонически это будет DCP C.

Возможно положительное или отрицательное приращение содержимого пары регистров:

- INX H.

- INX B.

- DCX D.

  • Операции условных и безусловных переходов.

Условные переходы позволяют организовать ветвящиеся программы. Условные переходы выполняются по значению признаков, хранящихся в регистре признаков (Всего их 5 – TZ, TS, TC, TP, TV). Каждый из этих признаков может принимать два значения – 0 и 1, – следовательно, всего можно организовать 10 условных переходов. Кроме того, имеется возможность перейти в любую точку программы (Мi) с помощью операции безусловного перехода (команда JMP Мi). Таким образом, имеется 11 команд условных и безусловных переходов, причем команды эти – трехбайтные.

Примеры команд условных переходов:

По признаку TZ:
JNZ Mi – если TZ=0;
JZ Mi – если TZ=1;

По признаку TС:
JNС Mi – если TС=0;
JС Mi – если TС=1;

По признаку TS:
JNS Mi – если TS=0;
JS Mi – если TS=1;

  • Команды ввода/вывода.

Ввод (вывод) сигналов в (из) микропроцессора осуществляется исключительно через аккумулятор с помощью двухбайтовых команд.

1-ый байт – код операции, 2-ой байт – номер устройства ввода/вывода (УВВ). Т.к. восьмиразрядная кодовая комбинация может содержать 256 состояний, то имеется возможность опрашивать 256 устройств ввода и вывода.

Пример команд ввода/вывода:

Ввод в аккумулятор сигнала с устройства ввода №5:

- IN 5.

Вывод сигнала из микропроцессора через устройство вывода №2:

- OUT 2.

Прочие операции.

В микропроцессоре можно производить еще множество операций, например:

  • Res – сброс;
  • HLT – остановка – вызывает прекращение выполнения программы и переход в состояние останова;
  • Инверсия аккумулятора и другие.

1.5. Примеры программирования микропроцессора

Пример1: Программирование последовательных участков алгоритма.
Условие задачи: Имеется три числа, хранящиеся в ОЗУ в соседних ячейках. Адрес первого числа 7F5D. Все числа кодированы прямым кодом (положительные). Необходимо первые два числа сложить, а третье вычесть из полученной суммы. Результат вывести через устройство вывода №1.

Пример 2: Программирование ветвящихся участков алгоритма.
Условие задачи: Имеется 2 массива, каждый из двух чисел. Адрес первого числа первого массива – 7F5D, адрес первого числа второго массива – 6F4E. Необходимо сложить элементы первого массива и в зависимости от результата переноса ТС произвести следующие операции:

    • Если ТС=0, то элементы второго массива сложить между собой и результат вывести на устройство вывода №1, а на устройство вывода №2 вывести значение FFHEX;
    • Если ТС=1, то из первого элемента второго массива вычесть второй, результат, как и в первом случае, вывести на устройство вывода №1, а на устройство вывода №5 вывести значение 00HEX;

Программа.

Алгоритм программы.

1.6. Циклические программы

Циклические программы составляются тогда, когда необходимо повторить один или несколько операций многократно, например, при вычислении произведения двух двоичных чисел:

При арифметическом умножении порядок точно такой же, как и при умножении десятичных чисел, далее все промежуточные суммы (4) складываются между собой.

При организации умножения нужно уметь следующее:

  1. Анализировать разряды множителя. Если разряд множителя равен 0, то соответствующее множимое к промежуточной сумме не прибавляется. Если же разряд множителя равен 1, то к промежуточной сумме добавляется множимое;
  2. Значение промежуточной суммы должно постоянно сдвигаться;
  3. Промежуточную сумму можно сдвигать влево и тогда анализ каждого разряда множителя нужно начинать слева направо, либо промежуточную сумму можно сдвигать вправо и тогда анализ множителя нужно производить справа налево.

В микропроцессорной технике обычно производят сдвиг промежуточной суммы влево. Сдвиг влево осуществляется сложением содержимого регистра (пары регистров) самого с собой. При организации умножения разрядность произведения в два раза больше разрядности множителей. Так как обычно множители восьмиразрядные, то для хранения произведения используется пара регистров (HL). Таким образом будет осуществляться сложение самого с собой именно содержимого пары регистров HL.

. Итак, при организации умножения накапливаемый результат будет храниться в HL, в паре регистров DE будет храниться множимое (<N1>). Так как множители восьмиразрядные, то требуется вычислить восемь промежуточных сумм, а, следовательно, организовать восемь циклов расчета.

Алгоритм циклической программы для расчета произведения 2-х 8-разрядных двоичных чисел приведен на рис.1.6.1

Блок 1: Производится организация счетчика циклов. Так как требуется произвести умножение 8-разрядных чисел, т.е. организовать 8 циклов, в регистр В записывается число 8.
Блок 2: В HL записывается 0 – первоначальное обнуление пары регистров HL для правильного накопления результатов промежуточного суммирования.
Блок 3: Запись в пару регистров DE значения множимого. Т.к. значение множимого 8-разрядное, а пара регистров DE – 16 разрядная, то в D записывается 0, а в Е – множимое.
Блок 4: Запись в аккумулятор множителя.
Блок 5: Сдвиг влево содержимого пары регистров HL (результат промежуточного суммирования).
Блоки 6, 7: Анализ значений разряда множителя (анализ производится слева направо).
Блок 8: Получение промежуточной суммы (5 и 8 блоки работают в паре).
Блоки 9, 10: Организация цикла программы.

Из анализа операции умножения следует, что для данной циклической программы требуется около 200 мс. При обработке сигналов период выборки для канала ТЧ составляет 125 мкс, следовательно, сделать устройство для обработки сигналов в реальном масштабе времени на данном процессоре практически невозможно. Даный процессор годен лишь для систем управления объектами, где скорость обоаботки невысока.

Рисунок 1.6.1 – Алгоритм циклической программы для расчета произведения 2-х 8-разрядных двоичных чисел

1.7. Система сбора и обработки информации

Пусть имеется N объектов, которые требуется постоянно опрашивать и информацию об их состоянии помещать в оперативную память.

AMS – аналоговый мультиплексор (аналог декадно-шагового искателя);
DC – дешифратор управления;
ЦПЭ – центральный процессорный элемент;
УВВ1 – устройство ввода №1;
УВВ2 – устройство ввода №2;
УВ1 – устройство вывода №1;
АЦП – аналого-цифровой преобразователь.

Принцип работы: Центральный процессорный элемент выставляет на шину данных (ШД) адрес очередного опрашиваемого объекта. Этот адрес с ШД поступает на УВ1. Выходной сигнал с УВ1 поступает на DC, где дешифрирует и подключает требуемый вход аналогового мультиплексора на свой выход. Информационный сигнал опрашиваемого объекта оказывается подключен через AMS ко входу АЦП. При поступлении очередного отсчета аналогового сигнала АЦП начинает преобразовывать его в цифровой эквивалент.После этого ЦПЭ периодически начинает опрашивать сигнал готовности с УВВ1 (готово ли АЦП выдать результат преобразования). При обнаружении сигнала готовности производится считывание с УВВ2 информационного сигнала на шину данных и далее его помещение в ОЗУ. После записи состояния i – того объекта в ОЗУ, на ШД выставляется адрес очередного (i+1)-го объекта и процесс полностью повторяется.

Опрос всех объектов производится по очереди (циклически).

Составим алгоритм и программу работы устройства сбора и обработки информации.

В блоке 1 производится формирование адреса оперативной памяти; в блоке 2 происходит инициализация системы (определяется количество опрашиваемых объектов); в блоке 3 производится формирование адреса для дешифратора; блок 4 – вывод сигнала для дешифратора; блоки 5-7 – проверка сигнала готовности (если АЦП готов выдать результат, то на выходе формируется сигнал готовности, иначе сигнала готовности нет); блок 8 – ввод информационного сигнала; блоки 9-11 – организация цикла работы устройства.

1.8. Система групповой АРУ аналоговой системы передачи

В аналоговых системах передачи для контроля прохождения информационного сигнала по линейному тракту используют специальные пилот – сигналы, которые называют контрольными частотами (КЧ). Контрольную частоту замешивают на передаче и выделяют в тракте приема. По уровню контрольной частоты судят о качестве прохождения информационного сигнала через линейный тракт. Чем меньше сигнал затухает, тем выше уровень КЧ. Поэтому по значению КЧ можно судить о параметрах линейного тракта. Приняв контрольную частоту, определяют отклонение ее уровня от номинального уровня приема. Если уровень КЧ меньше номинального, то необходимо увеличить коэффициент усиления. В противном случае его надо уменьшить.

МПК – микропроцессор;
AMS – аналоговый мультиплексор;
DC – дешифратор;
ЦАП – цифро-аналоговый преобразователь;
АЦП – аналого-цифровой преобразователь;
АДМ – аналоговый демультиплексор.

Принцип работы:

Имеется N линейных усилителей, у которых есть выход значения КЧ. Эти значения подаются на входы аналогового мультиплексора. В любой момент времени обрабатывается только один канал (одна КЧ). Выходной сигнал аналогового мультиплексора подается на АЦП, в котором приобретает цифровой вид. МПК периодически опрашивает АЦП о сигнале готовности. Если АЦП не готов дать результат, то на выходе сигнала готовности будет 0. При обнаружении сигнала готовности производится считывание информационного сигнала, и далее МПК сравнивает принятое значение с номинальным и выдает управляющий выходной сигнал на соответствующий групповой усилитель, вид которого представлен на рисунке.

Для усиления сигналов обычно используются как операционные усилители (как на рис. 1.8.1), так и транзисторы и лампы.

Изменение усиления данного усилителя происходит за счет изменения тока подогрева терморезистора.

Регулировка уровня приема производится по замкнутой цепи, при этом если значение КЧ очень высоко, то это приведет к увеличению тока подогрева терморезистора и к увеличению значения R2, что приводит к уменьшению коэффициента усиления. Таким образом коэффициент усиления регулируется автоматически, так как терморезистор – ненадежен, он был заменен на оптоэлектронный резистор.

Рисунок 1.8.1 – Система АРУ на операционном усилителе.

Алгоритм работы групповой АРУ

Комментарии к программе:

Блоки 1-2: первоначальная загрузка пары регистров HL, N1 – число обслуживаемых систем;
Блоки 3-4: вывод на дешифратор адреса номера канала входа и номера канала выхода для AMS и ADM соответственно. Вывод происходит на устройство вывода №1.
Блоки 5-7: Проверка сигнала готовности на выходе АЦП (сигнал готовности поступает с устройства ввода №1). При отсутствии сигнала готовности программа зацикливается на этих трех блоках.
Блоки 8: прием информационного сигнала. Информационный сигнал поступает с устройства ввода №2.
Блок 9: холостая операция для проверки значения уровня контрольной частоты (не нулевое значение).
Блоки 10, 19: вывод сигнала аварии на устройство вывода №2 при несоответствии уровня КЧ номиналу.
Блоки 11-13: Операция усреднения значения уровня КЧ (предыдущий уровень данной КЧ складывается с настоящим и делится на 2).
Блок 14: обновление ячейки оперативной памяти – запись в нее нового значения уровня КЧ.
Блок 15: сравнение полученной КЧ с номинальным значением.
Блок 16: вывод сигнала управления (на устройство вывода №3).
Блоки 17-18: организация цикла работы программы. Количество циклов равно количеству КЧ (<N1>).

При модификации алгоритма для обслуживания групповых усилителей с разных направлений передач, значение <N2> будет для каждого направления своим.

Для закрепления изученного материала предлагается выполнить ряд практических занятий. В Приложении А приведена полная система команд микросхемы К580 для решения поставленных задач.