1. Структура микропроцессорного комплекта 580 серии
1.4. Виды выполняемых операций
1.5. Примеры программирования микропроцессора
2. Цифровые развязывающие устройства
2.1. Абсолютный компенсационный метод (АКМ)
3. Однокристальные микроЭВМ К1816ВЕ48 (ВЕ51)
1. Структура микропроцессорного комплекта 580 серии
Рисунок 1.1. Структура микропроцессорного комплекта 580 серии.
Микропроцессор состоит из четырех основных частей:
- ЦПЭ – центральный процессорный элемент;
- ШД – шина данных;
- ОЗУ – оперативное запоминающее устройство;
- ПЗУ – постоянное запоминающее устройство – одна или несколько микросхем, содержимое которых можно изменить либо в специальном программаторе, либо на заводе-изготовителе.
Принцип работы.
Система начинает работать после приема сигнала сброса. По этому сигналу все регистры, входящие в ЦПЭ, переходят в исходное нулевое состояние. Обнуляется оперативная память, обнуляются регистры устройства ввода-вывода. В ЦПЭ помимо этого обнуляется счетчик адреса. Далее под действием тактовых сигналов на ША вырабатывается нулевой адрес. По этому адресу производится первое обращение к первой ячейке ПЗУ, где хранится начало работы программы. За сигналом адреса по шине управления (ШУ) следует сигнал чтения (read), далее идет синхросигнал, а ПЗУ отвечает, что готово выдать сигнал. Итак, после выставления нулевого адреса по ША, а также сигнала read и синхросигнала по ШУ, ПЗУ отвечает сигналом ready (готов). Одновременно с сигналом ready выставляется первый байт, который через ШД поступает ЦПЭ. Принятый байт анализируется и тут же выполняется. Следом за этим выставляется новый адрес и вся процедура выполняется до тех пор, пока не будет считана последняя ячейка ПЗУ. После первоначальной инициализации переходим к выполнению рабочей программы. Для этих целей через устройство ввода/вывода передается рабочая программа, которая помещается в оперативную память. При выполнении рабочей программы процессы аналогичны процессу инициализации
При перекачке рабочей программы с внешнего носителя в оперативную память возможны два режима:
- Информация с внешнего носителя поступает на устройство ввода/вывода, затем на внешнюю ШД, на буфер 1 (Б1), через внутреннюю ШД на ЦПЭ, далее вновь обратно поступает в ОЗУ.
- С внешнего носителя на устройства ввода/вывода, на внешнюю шину данных и с нее на ОЗУ (режим прямого доступа к памяти (ПДП))
После записи рабочей программы в ОЗУ начинается ее выполнение. Начиная с адреса 2 по ША ведется обращение к ОЗУ. Рабочая программа может быть либо ветвящейся, либо последовательной, либо циклической. Выполнение каждой из этих программ осуществляется по-разному:
- Последовательная программа. При выполнении последовательной программы адреса на ША формируются последовательно. Сигнал с ОЗУ, который хранится в разных ячейках адресного пространства, попадает в ЦПЭ, и каждая команда выполняется после ее принятия.
- Ветвящаяся программа. Часть программы – последовательная, но есть условия, которые заставляют перейти на новую адресацию. При выполнении наперед заданных условий производится переход на новые адреса, которые хранят новые условия обработки задач. При этом старый адрес запоминается в специальном регистре и после выполнения условия идет возврат к прежнему адресу.
1.1. Структура ЦПЭ
Структура ЦПЭ показана на рис.1.1.1.
1. АЛУ – арифметико-логическое устройство. Позволяет производить 4 вида операций:
- Арифметическое сложение;
- Логическое сложение;
- Логическое умножение;
- Суммирование по модулю два.
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. Форматы команд
При работе микропроцессора используются три вида формата команд.
- Однобайтовые команды,
- Двухбайтовые команды
- Трехбайтовые команды
- Однобайтовые команды. Используются тогда, когда в одном байте содержится вся информация об используемых регистрах и виде выполняемых операций. » 90% всех выполняемых команд – однобайтовые. Однобайтовые команды содержат код операции (КОП).
Двухбайтовые команды. Используются:
- При вводе и выводе сигналов из микропроцессора;
- При непосредственной загрузке одного из регистров общего назначения (РОН);
- При арифметических и логических операциях, когда вторым операндом является регистр общего назначения.
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
КОП |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
<B2> |
В первом байте двухбайтовой команды указывается вид выполняемой операции, во втором байте приводится число, являющееся операндом при выполнении операции, либо номером устройства ввода или вывода.
-
- Трехбайтовые команды.
<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.3. Виды адресации
Для того чтобы могла быть выполнена определенная операция, в команде, кроме вида операции, должно содержаться указание, откуда берутся участвующие в операции числа и куда помещается результат выполненной операции (иначе говоря, указания об источниках и приемнике операндов). Под видами адресации понимают способы, используемые для указания источников и приемников операндов.
-
- Прямая адресация. При этом способе адресации используется однобайтовая команда, которая содержит только код операции (КОП). В байте КОП указываются адреса регистров, где хранятся операнды и куда пересылается результат. Адреса регистров приведены в следующей таблице:
Регистр |
Адрес регистра, используемый в командах |
Регистр |
Адрес регистра, используемый в командах |
В |
000 |
H |
100 |
С |
001 |
L |
101 |
D |
010 |
M |
110 |
E |
011 |
A |
111 |
Под М понимается ячейка оперативной памяти, адресом которой служит содержимое пары регистров HL. А – аккумулятор.
- Непосредственная адресация. При этом способе адресации операнды (один либо два) задаются непосредственно в команде вслед за байтом кода операции во втором, либо втором и третьем байтах. Таким образом, непосредственная адресация – это двух- или трехбайтовая команда.
- Косвенная адресация. При этом способе адресации в команде указывается пара регистров блока РОН (путем указания адреса одного из регистров этой пары), содержимое которой служит адресом, по которому в оперативной памяти находится операнд.
Пара регистров HL является более предпочтительной при обращении к ячейкам оперативной памяти, т.к. с помощью этой пары регистров возможно переслать содержимое оперативной памяти в любой из регистров назначения.
Пары регистров ВС и DE используются только при пересылках из оперативной памяти в аккумулятор и обратно.
1.4. Виды выполняемых операций
-
- Операции пересылки и непосредственной загрузки. При выполнении этого вида операций могут использоваться одно-, двух-, и трехбайтовые команды. Наиболее многочисленный класс операций – команды однобайтовые. Возможно использование семи регистров общего назначения, ячеек оперативной памяти, стеков. Производится пересылка или непосредственная загрузка одного или пары регистров.
- Операции пересылки. Производится пересылка данных из одного регистра в другой.
- Операции пересылки и непосредственной загрузки. При выполнении этого вида операций могут использоваться одно-, двух-, и трехбайтовые команды. Наиболее многочисленный класс операций – команды однобайтовые. Возможно использование семи регистров общего назначения, ячеек оперативной памяти, стеков. Производится пересылка или непосредственная загрузка одного или пары регистров.
Пример: - содержимое регистра В пересылается в регистр С. Мнемонически это записывается MOV C,B
В случае использования пар регистров HL ячейка оперативной памяти рассматривается как отдельный регистр общего назначения.
Пример: – пересылка в регистр D содержимого пары регистров HL (M – ячейка оперативной памяти, адресом которой служит содержимое пары регистров HL)
-
-
- Непосредственная загрузка регистра.
-
MVI E,5D
-
-
- Непосредственная загрузка пары регистров
-
LXI D, 5D4F
-
- Арифметические и логические операции. Все операции данного класса команд производятся исключительно через аккумулятор. Операции производятся как с данными, хранящимися в регистрах общего назначения, так и с данными, которые следуют в командах. Сложение 2-х байтовых чисел возможно только арифметически.
- Логическое сложение
-
-
- Арифметическое сложение
-
-
-
- Сложение по модулю два
-
X1 |
X2 |
Y |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
-
-
- Логическое умножение
-
-
- Операции циклического сдвига
Циклические сдвиги возможны исключительно в аккумуляторе, при этом кодовая комбинация сдвигается либо влево, либо вправо
- Сдвиг вправо без учета переноса
Мнемонически такая операция обозначается RRC.
Содержимое каждого разряда аккумулятора передается в соседний младший разряд , содержимое младшего разряда передается в старший разряд и одновременно в триггер переноса .
-
-
- Сдвиг вправо с учетом переноса.
-
Мнемонически такая операция обозначается RAR.
Отличие от сдвига без переноса в том, что триггер переноса передает свое содержимое в старший разряд аккумулятора и принимает выданное из аккумулятора содержимое младшего разряда .
-
-
- Сдвиг влево без учета переноса.
-
Мнемонически такая операция обозначается RLC.
Содержимое каждого разряда аккумулятора передается в соседний старший разряд , содержимое старшего разряда переносится в младший разряд и одновременно в триггер переноса .
-
-
- Сдвиг влево с учетом переноса.
-
Мнемонически такая операция обозначается 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) складываются между собой.
При организации умножения нужно уметь следующее:
- Анализировать разряды множителя. Если разряд множителя равен 0, то соответствующее множимое к промежуточной сумме не прибавляется. Если же разряд множителя равен 1, то к промежуточной сумме добавляется множимое;
- Значение промежуточной суммы должно постоянно сдвигаться;
- Промежуточную сумму можно сдвигать влево и тогда анализ каждого разряда множителя нужно начинать слева направо, либо промежуточную сумму можно сдвигать вправо и тогда анализ множителя нужно производить справа налево.
В микропроцессорной технике обычно производят сдвиг промежуточной суммы влево. Сдвиг влево осуществляется сложением содержимого регистра (пары регистров) самого с собой. При организации умножения разрядность произведения в два раза больше разрядности множителей. Так как обычно множители восьмиразрядные, то для хранения произведения используется пара регистров (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 для решения поставленных задач.
2. Цифровые развязывающие устройства
Для разделения направлений передачи и приема существуют дифференциальные системы. Они могут быть реализованы либо на резисторах (рис.2.1.б), либо на трансформаторах (рис.2.1а). В этих дифференциальных системах используется принцип моста. Когда мост сбалансирован (продольные плечи моста подобны), сигналы передатчика не проникают в приемник и в идеальном случае происходит развязка направлений передачи и приема.
В трансформаторной дифференциальной системе используется тот же принцип моста:
W1 и ZЛ – одно плечо моста;
W2 и ZБ – другое продольное плечо моста;
ПД – передатчик;
ПРМ – приемник;
ZЛ – сопротивление линии связи.
Впервые дифференциальная система на трансформаторах была предложена в 1908 г. русским ученым Коваленковым. В случае, если балансное сопротивление (ZБ) точно совпадает с параметрами линии связи, то в этом случае наблюдается максимальное затухание в направлении а4-2. Однако реально линия – распределенная система, поэтому изначально нельзя точно сбалансировать дифференциальную систему. В результате этого наблюдается появление эхо-сигналов.
Если эхо-сигналы приходят с небольшой задержкой (менее 10 мс), то такие помехи ухом не воспринимаются. Однако, если сигналы передаются по спутниковым каналам, то задержка может быть до 500 мс и более, что приводит к срыву передаваемого сообщения. Из-за конечного значения переходного затухания а4 – 2 появляется дополнительная неравномерность амплитудно-частотных искажений как в тракте передачи, так и в тракте приема, даже если АЧХ каждого направления идеальна. В среднем величина затухания а4-2=10 дБ.
Развитие микроэлектроники и методов адаптивной фильтрации привели к поиску новых алгоритмов разделения направлений передачи и приема.
2.1. Абсолютный компенсационный метод (АКМ)
ФФ – формирующий фильтр;
g42(nT) – импульсная реакция эхо-тракта;
SЭХО(nT)=x(nT)*g42(nT) – отсчеты эхо-сигнала.
Принцип работы.
Сигнал x(nT) поступает одновременно на передатчик и на формирующий фильтр. Задача формирующего фильтра – сформировать паразитный сигнал (оценку выходного сигнала), который являлся бы точной копией эхо-сигнала: . Формирующий фильтр производит операцию свертки передаваемого сигнала x(nT) с заранее снятой импульсной реакцией .
либо снимается заранее, либо с помощью градиентных методов сводится к минимуму среднеквадратической ошибки.
Эхо-сигнал компенсируется в вычитателе. На выходе вычитателя будет:
LПРИН.(nT)= x(nT)*g42(nT)+y(nT) - » y(nT).
Таким образом для борьбы с помехой была использована искусственно выработанная помеха, которая в идеальном случае точно повторяет реальную помеху и компенсирует ее с большой точностью.
Преимущества системы разделения направлений передачи и приема на основе АКМ:
- Адаптивность (происходит адаптация системы под параметры канала связи).
- Возможна микроминиатюризация устройства в связи с развитием цифровой техники.
- Величина переходного затухания между трактами передачи и приема достигает 40 дБ, а значит данную систему можно использовать в спутниковых системах связи.
Недостатки:
- Сложность реализации операции свертки формирующим фильтром в реальном масштабе времени из-за большого количества операций умножения.
- Достаточно большой уровень собственного шума. Это приводит к невозможности подстройки алгоритма при соизмеримости уровня шума канала связи с собственным шумом формирующего фильтра.
- Невозможность подстройки параметров формирующего фильтра при наличии принимаемого сигнала.
2.2. Относительный компенсационный метод (ОКМ)
Перечисленные выше недостатки АКМ привели к поиску нового алгоритма разделения сигналов 2-х направлений, получившего название относительного компенсационного метода (ОКМ).
БП – блок памяти (линия задержки).
При формировании передаваемого сигнала канал связи откликается отсчетами помехи, при этом значение помехи меняется медленно и для k отсчетов сигнала величина помехи одна и та же:
k отсчетам сигнала x(0T), x(1T), …x(kT) соответствует помеха S1ЭХО(nT);
Отсчетам x(1T), x(2T), …x([k+1]T) соответствует помеха S2ЭХО(nT);
Промежуток времени, в течение которого величина помехи остается постоянной, называется интервалом стационарности. Тогда можно записать:
- т.е. множеству отсчетов x1(nT) на интервале стационарности t1 соответствует помеха SЭХО 1(nT) t1.
Аналогично:
,
где - отличие величины помехи на соседних тактовых интервалах, характеризует уход параметров канала связи за какой-то период времени.
Таким образом помехи на соседних тактовых интервалах отличаются на малую величину, а значит, сравнивая их между собой, можно скомпенсировать помехи с большой точностью.
Нас интересует компенсация сигналов передатчика в тракте приема.
На выходе АЦП 2 будем иметь сигнал
X(nT)*gЭХО 4-2(nT)+y(nT).
После вычитателя получим:
Xi(nT)*gЭХО i 4-2(nT)+yi(nT) – (Xi-1(nT)*gЭХО i-1 4-2(nT)+yi-1(nT))= yi(nT)–yi-1(nT).
В силу закона относительности параметры канала связи на соседних тактовых интервалах примерно одни и те же. Тогда сравнивая помеху от своего передатчика на соседних тактовых интервалах добиваются ее компенсации. На выходе вычитателя все время наблюдается разность соседних отсчетов принимаемого синала.
Структура БП + вычитатель названа прямой структурой (ПС).
Для предотвращения модуляции принимаемого сигнала найдена структура, параметры которой обратны параметрам прямой структуры. Она названа взаимно- обратной структурой (ВОС) и зеркально симметрична ПС.
Если прямая структура имеет коэффициент передачи К(jw ), то ВОС имеет коэффициент передачи К-1(jw ). Для передаваемого сигнала коэффициент передачи каскадного соединения ПС и ВОС близок к нулю, а для принимаемого сигнала равен 1.
Рассмотрим совместную работу ПС и ВОС.
Пусть отсчетам сигнала xi(nT) на i-том интервале стационарности соответствует помеха Пi(nT). Т.е.:
Тогда на n+1 шаге в БП 1 будет записано следующее значение:
П1((n+1)T)+y1((n+1)T).
На выходе вычитателя (выходе ПС) получим:
П1((n+1)T)+y1((n+1)T) - П1(nT)= y1((n+1)T)+s 1((n+1)T).
Это значение будет записано в БП 2.
На n+2 шаге на выходе вычитателя получим:
П1((n+2)T)+y2((n+2)T) - П1((n+1)T)- y1((n+1)T)=y2-y1+s 1’
На выходе сумматора (выход ВОС) будем иметь:
y2-y1+s1’+y1+s1= y2+s1’+s1.
Из анализа работы прямой и взаимно-обратной структур видно, что первый блок памяти (БП 1) всегда записывает сумму двух сигналов – величины помехи и отсчета принимаемого сигнала, а во второй блок памяти (БП 2) записывается только принимаемый сигнал, уже очищенный от передаваемого.
Преимущества ОКМ:
- Адаптивность (постоянное обновление ячеек БП 1, куда записываются новые значения эхо-сигналов. В данных эхо-сигналах присутствуют параметры эхо-тракта, а, следовательно, обновление ячеек БП 1 автоматически подстраивает систему под новые условия передачи)
- Для реализации данного метода требуется всего два вида операций:
- Вычитание и суммирование;
- Запись нового отсчета в БП 1 и БП 2.
- Из-за малого количества операций данный алгоритм легко организовать в реальном масштабе времени.
- Можно разделить сигналы, имеющие большую скорость передачи.
- Мощность собственного шума РСШ=, где Δ - шаг квантования.
Недостатки:
- Необходимо предусмотреть время для первоначального обучения системы;
- Малая скорость сходимости алгоритма4
- В период обучения принимаемые сигналы должны отсутствовать.
2.3. Структурная схема ОКМ и алгоритм ее работы
Принцип работы.
АЦП 1 включен в тракт передачи для выработки управляющих сигналов адресации.
УВВ1 и УВВ2 вводят сигнал готовности и информационный сигнал соответственно с выхода АЦП1.
УВВ3 и УВВ4 вводят сигнал готовности и информационный сигнал соответственно с выхода АЦП2.
УВВ5 определяет режим работы (рабочий цикл или обучение).
УВ1выводит принимаемый сигнал на ЦАП, откуда он поступает к потребителю.
МПК позволяет организовать принцип относительного компенсационного метода. Алгоритм его работы показан на рис.
Программа работы
К1. М1: IN 1
К2. RLC
К3. JNC M1
К4. IN 2
К5. MOV L, A
К6. MVI H, 0
К7. M2: IN 3
К8. RLC
Алгоритм
К9. JNC M2
К10. IN 4
К11. MOV C, A
К12. IN 5
К13. RLC
К14. JC M3
К15. MOV M, C
К16. MVI A, 0
К17. MVI H, 01
К18. MOV M, A
JMP M1
К19. M3: MOV A, C
К20. SUB A, M
К21. MOV M, C
К22. MVI H, 01
К23. ADD A, M
К24. OUT 1
К25. MOV M, A
JMP M1
Комментарии к алгоритму и программе:
Блоки 1-3: Анализ сигнала готовности с УВВ 1 (АЦП 1)
Блок 4: Ввод информационного сигнала с АЦП 1.
Блоки 5-6: Формирование адреса БП1 и БП”.
Блоки 7-9: Анализ сигнала готовности АЦП 2.
Блок 10: Ввод информационного сигнала АЦП 2.
Блок 11: Промежуточное запоминание.
Блоки 12-14: Анализ сигнала с УВВ5: идет рабочий цикл или обучение.
Блок 15: Обучение БП1
Блоки 16-18: Принудительное обнуление БП2.
Блок 19: Промежуточная пересылка.
Блок 20: Работа прямой структуры (ПС)
Блок 21: Обновление БП 1.
Блок 22: Модификация адреса.
Блок 23: Работа ВОС.
Блок 24: Вывод на УВ 1.
Блок 25: Обновление БП 2.
Предложенный алгоритм обладает существенным недостатком: для вхождения в связь необходимо отсутствие сигналов противоположной стороны. Недостаток можно устранить, если во взаимно-обратную структуру включить аттенюатор с коэффициентом передачи близким к 1 (но меньше ее) (рис.2.3.1)
Рисунок 2.3.1. Структурная схема ОКМ-1.
Рассмотрим работу данной структуры:
n=0 (нулевой цикл): Сигналу на передаче x1(0T) соответствует принимаемый сигнал П1(0Т)+y1(0T):
. Этот принимаемый сигнал и запишется в БП1.
n=1: .
На выходе вычитателя будет: y2(1T)+s 1- y1(0T)
На выходе сумматора будет: y2(1T)+s 1- y1(0T), т.е. то же, что и на выходе вычитателя, т.к. в нулевом цикле в БП2 был записан ноль.
В БП2 запишется следующее значение: с*[y2(1T)+s 1- y1(0T)]
n=2: С АЦП2 приходит сигнал П1(2Т)+y3(2T)= П1(1Т)+y3(2T)+s 2.
На выходе вычитателя: y3(2T)+s 2- y2(1T).
На выходе сумматора: y3(2T)+s 2- y2(1T)+ с*[y2(1T)+s 1- y1(0T)]=
= y3(2T)+s 2+с*s 1-(1-с)* y2(1T)-с* y1(0T).
Рассмотрим отдельно каждое слагаемое:
-
- с*s 1 через М циклов обработки превратится в сМ*s 1. Т. к. с<1, то величина сМ*s 1à 0.
- с* y1(0T) через М циклов работы превратится в сМ* y1(0T). Т. к. с<1, то величина сМ* y1(0T) à 0.
- (1-с)* y2(1T)à 0, т.к. сà 1.
Таким образом, введение аттенюатора во ВОС позволило выделить новые качества ОКМ: алгоритм стал нечувствителен к появлению принимаемого сигнала с самого начала работы системы. Через М циклов операций дополнительная помеха сМ* yi(0T) à 0.
Как реализовать данный алгоритм в цифровой технике?
Для реализации функции аттенюатора достаточно проанализировать младший разряд на выходе сумматора. Если величина младшего разряда равна 1, то тогда искусственно обернуть разряд в 0. Если же величина младшего разряда равна 0, то выходной сигнал следует оставить без изменений. Данную операцию можно производить только тогда, когда выходной сигнал представлен как минимум пятью разрядами. Алгоритм ОКМ представлен на рис. 2.3.2.
Рисунок 2.3.2. Алгоритм работы ОКМ–1.
3. Однокристальные микроэвм К1816ВЕ48 (ВЕ51)
Общая характеристика.
МикроЭВМ представляет собой законченное устройство, имеющее в своем составе арифметико-логический блок, оперативную память и постоянное запоминающее устройство (ПЗУ).
Имеется 3 порта ввода/вывода, которые могут работать на ввод и вывод информации. Установка портов на ввод/вывод информации производится программно. Емкость оперативной памяти (внутренней) – 64 байта, может быть наращена до 1 кБайта. ПЗУ (внутреннее) содержит 1 кБ памяти, ее емкость может быть увеличена до 4 кБ с помощью внешних ПЗУ. В данном процессоре имеется два банка регистров общего назначения. Каждый из этих банков содержит восемь 8-разрядных регистров общего назначения (РОН). Обращение к одному или другому банку производится программно. Тактовая частота работы микроЭВМ – от 6 до 8 МГц. В последних модификациях К 1816 ВЕ 51 тактовая частота увеличена до 10 МГц. Данная микроЭВМ используется для реализации простых устройств на цифровой элементной базе. Помимо всего вышеперечисленного, в микроЭВМ имеется вход прерывания решения поставленной задачи (INT) – прерывание по переполнению счетчика событий. Схема микроЭВМ показана на рис. 3.1
Рисунок 3.1. Структура микроЭВМ К1816ВЕ48.
РПП – резидентная память программ:
- внутренняя РПП (ПЗУ): емкость 8 р. 1024 – 1 кБ;
- с внешним устройством: емкость 8 р. 4096 – 4 кБ;
РПП электрически программируется заказчиком. В случае необходимости, информация из РПП может быть стерта специальной ультрафиолетовой лампой.
СК – счетчик команд, 12-разрядный. 11 разрядов используются для адресации нулевого или первого банка РПП. 12-ый разряд определяет № банка (если 12-ый разряд равен 0 – 0 банк, если равен 1 – 1-ый банк). Для обращения к 0 –му банку данных нужно выполнить команду SEL МВ0, для обращения к 1-му банку – SEL МВ1.
РПД – резидентная память данных. Имеет емкость 8 р.´ 64 (64 байта): 16 байт – регистры общего назначения; 24 байта – стек; 24 байта – оперативная память. РПД моет быть увеличена за счет подключения внешних устройств до 1 кБ, при этом адресация организуется по страницам: в каждой странице 256 байт.
РА – регистр адреса 10 –разрядный. 10-ый разряд определяет № банка данных (0-ой или 1-ый банк РПД).
АЛУ – арифметико-логическое устройство. Позволяет производить 4 вида операций: арифметическое сложение, логическое сложение, сложение по модулю 2, логическое умножение).
Т1, Т2 – программно недоступные регистры, которые содержат два операнда, участвующих в работе АЛУ.
РП – регистр признаков.
Р1 – двунаправленный порт ввода/ вывода. Используется для приращения емкости РПП и РПД.
Р2 – двунаправленный порт ввода / вывода. Используется для ввода / вывода информации.
ВШД – внутренняя шина данных, 8-разрядная.
BUS – порт, используется для ввода / вывода информации, является продолжением ВШД (внешней шины данных).
Принцип действия.
В ПЗУ хранится рабочая программа. Рабочий цикл начинается с поступления сигнала “RESET”, который переводит все устройство в исходное состояние. СК выбирает первую команду из РПП. Эта команда выставляется на ВШД, анализируется и выполняется.
Если программа последовательная, то СК увеличивает свое состояние на 1, выбирается вторая команда, процесс повторяется.
Если программа ветвящаяся, то алгоритм следующий: содержимое счетчика команд пересылается по ВШД в стек РПД, а в СК загружается адрес, на который нужно перейти программе при выполнении условия. После выполнения данного условия из стека изымается прежнее содержимое счетчика команд и вновь возвращается в СК.
МикроЭВМ имеет два уровня прерывания:
- Самый старший – вход прерывания INT. При поступлении на этот вход сигнала в виде кратковременного импульса, основная программа блокируется и выполняется программа прерывания.
- Прерывание по переполнению счетчика событий.
Программно прерывание по входу INT прерывание по переполнению счетчика событий может быть разрешено либо запрещено.
Структура РПП.
0 – 2 ячейки: используются для безусловного перехода при обнулении устройства по входу “Reset”. В этом случае в этих ячейках формируется команда безусловного перехода в начало программы.
3 – 5 ячейки: формируется команда безусловного перехода при поступлении сигнала по входу INT.
6 – 8 ячейки: формируется сигнал прерывания по входу INT счетчика событий.
РПП начинается с 9-ой ячейки. Если мы работаем с внутренним ПЗУ, - мы работаем с 0-вым банком данных.
Выбор банка данных осуществляется командами:
SEL MB0
SEL MB1
Структура РПД.
РПД может использовать внутреннюю оперативную память (емкость 64 байта) и внешнюю (до 1 кБ).
В РПД имеется, как и в РПП, два банка данных.
Выбор 0-го банка данных: SEL RB 0.
Выбор 1-го банка данных: SEL RB 1.
При этом под банком данных подразумевается одна из восьми областей памяти, в которой находятся регистры общего назначения.
Если при составлении программы требуется использовать другой банк, то необходимо сформировать команду выбора другого банка данных. При возврате требуется сформировать команду возврата банка данных. При обнулении всегда выбирается 0-вой банк данных.
ОЗУ, в которой хранятся результаты промежуточных вычислений, содержит 32 байта, которые могут быть увеличены до 1 кБ, по 256 байт в каждой странице:
Форматы команд.
В 1816 ВЕ – 48 возможны два вида команд:
- Однобайтовые (примерно 80% всех команд)
MOV R0, R7
- Двухбайтовые (второй байт является операндом, над которым производятся те или иные действия)
Виды адресации.
Существует три основных вида адресации: прямая, непосредственна и косвенная.
При прямой адресации в ходе операции указываются все значения регистров, которые участвуют в тех или иных вычислениях.
При непосредственной адресации формируется двухбайтовая команда, во втором байте которой следует тот операнд, над которым требуется произвести действие.
Косвенная адресация используется для обращения к ячейкам РПД. Для обращения к ячейкам оперативной памяти в нулевом банке данных используются регистры R0 и R1, а в первом – R0’ и R1’.
Виды выполняемых команд.
- Команды пересылки и непосредственной загрузки.
Команды непосредственной загрузки:
Для 580 серии:
Для 1816:
Пример: MOV R7’, #C5 – 1-я команда для операции непосредственной загрузки.
Операции пересылки производятся внутри выбранного банка данных:
MOV A, R0
SEL RB1
MOV R0’, R1’
При формировании адреса ячеек оперативной памяти, используются регистры R0 и R1 в 0-вом банке данных, либо R0’ и R1’ в 1-ом банке данных.
– обязательно использовать R0 или R1
MOV R5, C(R0)
MOV R5, C(R1)
-
- Арифметические и логические операции
В данном процессоре возможна организация как операций между аккумулятором и регистрами, включая ОЗУ, так и между аккумулятором и вторым байтом, следующим в этой же команде.
Арифметические операции внутри 0-го банка:
Операции внутри 1-го банка:
Здесь:
- Операции циклического сдвига.
Данные операции осуществляются, как и в 580-й серии, только в аккумуляторе.
Возможны 4 вида циклических сдвигов:
-
- Циклический сдвиг вправо.
- Циклический сдвиг вправо с переносом
- Циклический сдвиг влево.
- Циклический сдвиг влево с переносом.
Данные операции аналогичны операциям в 580-й серии.
- Операции условных и безусловных переходов.
-
-
- Безусловные переходы:
-
Осуществляются командой JMP Mi – перейти на i-тую метку программы. Команда формируется в РПП и внутри рабочей программы при нарушении нумерации блоков алгоритма.
-
- Условные переходы:
В отличие от 580-й серии, в 1816 имеются только два перехода по состоянию регистров признаков: ТС и ТZ:
ТZ=0 JZ Mi
ТZ=1 JNZ Mi
TC=0 JC Mi
TC=1 JNC Mi
В серии 1816 водятся несколько новых условий для формирования операций условных переходов:
-
- Условный переход по сигналу прерывания INT
JT 0 – если сигнал прерывания равен нулю;
JT 1 – если сигнал прерывания равен 1.
-
- Условный переход по состоянию счетчика событий.
JF 0 – если состояние счетчика событий равно 0,
JF 1 – если состояние счетчика событий равно1.
- Отрицательное о положительное приращение регистра.
Данные команды позволяют увеличить или уменьшить на единицу содержимое любого регистра.
-
- Прочие операции
- Команда сброса (Reset) RST.
- Команда разрешения прерывания по входу INT.
- Команда запрета прерывания по входу INT.
- Разрешение / запрет прерывания по входу счетчика событий INT GNT.
- Запуск таймера / остановка таймера.
- Остановка работы микропроцессора HLT.
3.1. Цифровой частотный демодулятор (модем)
Для передачи информации с одного компьютера на другой используют модемы.
1-ый модем включен в режиме передачи (входной сигнал – дискретный, выходной – аналоговый);
2-ой модем включен в режиме приема. Подключение в режимы осуществляется цепями стыка.
UЗМ – короткие импульсы, которыми отмечают каждое пересечение сигнала через 0 (значащие моменты).
Для синтеза помехоустойчивого алгоритма приема будем предполагать следующее:
- При прохождении сигнала через канал связи происходит перераспределение длительности полупериодов;
- Вся информация заключена в переходах сигнала через “0” (“0” - переходах);
- Измеренную длительность полупериодов можно представить в виде чисел;
- Алгоритм должен использовать корреляционные связи длительности полупериодов.
У/О – усилитель/ограничитель;
УВНП – устройство выделения “0” - переходов;
ИС – измерительный счетчик;
RG1, RG2, RG3 – параллельные регистры;
ЛЗ – линия задержки;
К1, К2 – коммутаторы 1 и 2;
S – сумматор;
ПУ – пороговое устройство;
G – генератор;
УУ – управляющее устройство.
Рисунок 3.1.1. Структура цифрового модема.
Алгоритм обработки состоит из двух составных частей: асинхронной и синхронной. В асинхронной части происходит преобразование принимаемого сигнала в соответствующие эквивалентные циклы. Для этого сигнал проходит через усилитель/ограничитель с большим коэффициентом усиления. Далее с помощью УВНП производится выделение из принимаемого сигнала всех нулевых пересечений и отметка этих пересечений с помощью коротких стробирующих импульсов. Чем больше временной интервал, тем больше будет число стробирующих импульсов. Выход RG1 – это выход асинхронной части.
Далее производится синхронная обработка с помощью переходов на равномерные отсчеты. Вначале К1 подключает выход RG1 к выходу сумматора, а К2 подключает выход RG2 ко второму выходу сумматора.
Пусть в RG2 хранится результат расчета рекурсивной суммы. Тогда на выходе сумматора появляется ТРi+Ni, которое записывается в RG2 (TPi – число полупериодов). В следующий момент времени К2 остается в том же положении, выход RG2 подключен ко второму входу сумматора, а К1 подключает выход ЛЗ к первому входу сумматора. Сигналы в ЛЗ переведены в инверсное состояние, следовательно, на этом временном интервале сумматор производит вычитание из рекурсивной суммы сигнала с ЛЗ, задержанного на М тактовых интервалов. На третьем тактовом интервале К2 подключает выход RG3 ко входу сумматора, а К1 вновь подключает выход RG1 на первый вход сумматора. В работу вступает нерекурсивный алгоритм.
Замена рекурсивной суммы значением нерекурсивной суммы происходит после каждых i циклов следующим образом: в первый момент времени К2 подключает выход RG3 ко входу сумматора. К1 подает “0” (отключает выход RG1 и ЛЗ). В результате на выходе сумматора появляется новое значение рекурсивной суммы, которое записывается в RG2. После этого RG3 обнуляется.
На рисунке 3.1.2. приведен алгоритм работы цифрового модема.
Рисунок 3.1.2. Алгоритм работы цифрового модема
Комментарии к алгоритму и программе:
К 1, 2, 3: Первоначальное обнуление рабочих регистров;
К 4: Загрузка адресного регистра R0 (линия задержки в виде ячеек оперативной памяти, считывание и запись по кругу);
К 5, 6, 7: Расчеты D Тi.
К 8-11: Запись в оперативную память числа “-D Тi”;
К 12-16: Работа рекурсивного алгоритма;
К 17-21: Работа нерекурсивного алгоритма;
К 22-26: Вывод результата демодуляции;
К 27-30: Модификация адреса ячеек оперативной памяти;
К 31-32: Перезагрузка R1 и R3 результатами нерекурсивной обработки;
К 33-34: Обнуление рабочих регистров нерекурсивной обработки;
К 35: Загрузка адресного регистра R0.
4. Микропроцессор 1813ВЕ1
Микропроцессор 1813 ВЕ1 представляет собой законченную микроЭВМ, ориентированную на вычисление операций свертки. Применяется, в основном, в цифровых фильтрах (ЦФ) и позволяет в реальном масштабе времени построить либо 1 ЦФ 40-го порядка, либо 8 ЦФ 5-го порядка, либо 5 фильтров 8-го порядка.
1813 ВЕ1 ориентирован, в основном, на обработку сигнала в спектре канала ТЧ.
Имеет в своем составе:
- Масштабирующее устройство (МУ), которое позволяет увеличить обрабатываемый сигнал в 2, 3 или 4 раза, а также уменьшить его в 2, 4, 8, 16, …, 213 раз.
- Постоянное запоминающее устройство (ПЗУ), которое хранит 192 24-разрядных числа.
- Оперативное запоминающее устройство (ОЗУ), позволяющее запомнить 40 28-разрядных чисел.
- АЦП, способный обработать 4 входных канала аналогового сигнала.
- ЦАП, преобразующий цифровой сигнал в аналоговый эквивалент.
Вывод сигнала возможен на один из восьми выходов либо в аналоговом, либо в цифровом виде.
Структурная схема процессора показана на рисунке 4.1 (Структурная схема микропроцессора К1813ВЕ1)
Принцип работы:
G – генератор, встроенный в микропроцессор. Имеется возможность при необходимости подключения внешнего генератора – когда требуется включить несколько процессоров для параллельной обработки сигналов (распараллелить процесс обработки).
ПЗУ – постоянное запоминающее устройство, хранит управляющую программу, записанную либо на заводе-изготовителе в процессе изготовления, либо самостоятельно.
Существуют модификации:
-
-
- ПЗУ не перепрограммируется.
-
- ПЗУ перепрограммируется, при этом стирание старой информации производится с помощью специальной ультрафиолетовой лампы.
ОЗУ – оперативно запоминающее устройство, хранит операнды А и В, а также результаты вычислений.
АЛУ – арифметически-логическое устройство. Позволяет выполнить 8 операций. При этом первый операнд в АЛУ поступает непосредственно из ОЗУ, второй – через масштабирующее устройство (МУ).
Управляющая логика – управляет работой аналогового мультиплексора и демультиплексора. Позволяет организовать либо синхронную работу (1-ый канал на входе – 1-ый на выходе), либо асинхронную (1-ый на входе – 2-ой на выходе).
DAR – регистр, является промежуточным звеном между аналоговой и цифровой частями.
AMS – аналоговый мультиплексор. Позволяет по сигналу управления с выхода управляющей логики подключить один из 4-х каналов на свой выход.
АЦП – аналогово-цифровой преобразователь, 9-разрядный. Старший разряд – знак, восемь разрядов – мантисса.
ЦАП – позволяет преобразовать цифровой эквивалент в аналоговое напряжение.
ADM – аналоговый демультиплексор. Имеет 1 вход и 8 выходов. Позволяет выводить аналоговый сигнал с выхода ЦАП либо со входа АЦП в виде последовательного кода.
Аналоговая и цифровая части микропроцессора должны работать строго синхронно. Если какая-то из частей уже закончила свою работу, а другой части требуется время на выполнение, то в части, где закончились все операции, делают холостые операции, чтобы скорость обработки в обеих частях была одинаковой.
Тактовые сигналы поступают в ПЗУ, где последовательно считываются команды. Первая команда, считанная из ПЗУ, подается в ОЗУ. По этой команде производится считывание первого и второго операнда, участвующих в данной команде. Эти два операнда поступают в АЛУ, где производится одна из восьми операций, и ее результат вновь записывается в ОЗУ.
Одновременно с обработкой сигнала в цифровой части микропроцессора, происходит обработка сигнала и в аналоговой части: преобразование аналогового сигнала в цифровой эквивалент либо преобразование цифрового эквивалента в аналоговый сигнал. Как только в аналоговой части микропроцессора закончилось преобразование, его результат помещается в регистр DAR, и уже из регистра DAR – в ОЗУ. Если в цифровой части микропроцессора закончились операции в соответствии с программой, то результат обработки через регистр DAR помещается из ОЗУ в ЦАП, где производится преобразование цифрового эквивалента в аналоговый сигнал.
По сигналу управляющей логики выводимый сигнал может быть получен либо непосредственно в виде цифрового эквивалента, либо в виде аналогового отсчета на одном из восьми выходов.
Формат команд.
Команды, выставляемые из ПЗУ, имеют 24 разряда. Структура этих команд следующая:
КОП Ц – код операции цифровой, состоит из 3-х разрядов, позволяет организовать 8 команд.
Поле операнда В – адрес, где хранится операнд В.
Поле операнда А – адрес, где хранится операнд А.
Код МУ – код масштабирующего устройства – 4-х разрядное число, позволяющее указать число предполагаемых сдвигов либо вправо, либо влево.
КОП А – код операции аналоговой. Состоит из 5 разрядов, указывает на выполнение одной из разрешенных операций в аналоговой части.
Операции, выполняемые в цифровой части.
№ п/п |
Мнемоника |
Двоичный код |
Комментарии |
1 |
ADD |
110 |
B+2n× Aà B |
2 |
SUB |
101 |
B -2n× Aà B |
3 |
LDA |
111 |
A × 2nà B |
4 |
XQR |
000 |
BÅ 2n× Aà B |
5 |
ABA |
100 |
B×½ 2n× A½à B |
6 |
ABS |
011 |
½ 2n× A½à B |
7 |
LIM |
010 |
|
8 |
AND |
001 |
B× (2n× A)à B |
Система условных команд.
1813 ВЕ 1 имеет небольшую сеть разветвленных программ. Процессор ориентирован на выполнение последовательных программ, однако имеется возможность составления ветвящейся программы с использованием значения заданного разряда регистра данных. При организации условных операций часть программ пишется в цифровом поле – ОП Ц, а часть – в аналоговом – ОП А.
Условная команда |
Содержание |
|
ОП Ц |
ОП А |
|
ADD |
CND (k) |
B+2n× Aà B, если DAR(k)=1 Bà B, если DAR(k)=0 |
SUB |
CND (k) |
B -2n× Aà B, если СYP=1 B +2n× Aà B, если СYP=0 |
LDA |
CND (k) |
½ 2n× A½ à B, если DAR(k)=1 Bà B, если DAR(k)=0 |
ABA |
CND (k) |
2n× A+Bà B, установка режима без коррекции |
XQR |
CND (k) |
B Å A× 2nà B, установка режима с коррекцией |
RNZ |
CND (k) |
Возврат в начало программы, если DAR(k)=1 Продолжение программы, если DAR(k)=0 |
JNZ |
CND (k) |
Переход на 32 ячейки вперед, если DAR(k)=1 Продолжение программы, если DAR(k)=0 |
Для выявления факта переполнения в микропроцессоре 1813 используется 4 старших разряда. Если переполнения нет, то четыре старших разряда имеют одинаковую структуру (либо все нули, либо все единицы).
В случае возникновения переполнения, значение младшего разряда знака не совпадает со значением старшего разряда знака. Факт переполнения разрядной сетки выводится на специальный вывод и может автоматически корректироваться с помощью 5-ой команды (XQR), либо не корректироваться – с помощью четвертой команды (ABA). При появлении 4-ой команды все последующие блоки не корректируют результат переполнения. При поступлении 5-ой команды производится автоматическая корректировка результата переполнения путем преобразования знакового разряда в одно состояние.
Пример:
Т.о., при автоматической корректировке результат выполняемой операции искажается.
Перечень операций в аналоговой части микропроцессора.
В аналоговой части микропроцессора имеется возможность ввода и вывода сигнала в аналоговом виде, в цифровом виде, а также комбинации ввода сигнала в аналоговом и вывода в цифровом виде и наоборот. Режим ввода и вывода задается специальными сигналами, подаваемыми на входы М1 и М2.
Входы |
Режим ввода |
Режим вывода |
|
М1 |
М2 |
||
+5В |
+5В |
IN (0) ¸ IN (3) - Аналоговые входы |
OUT (0) ¸ OUT (7) – аналоговые выходы |
+5В |
-5В |
D1 регистра DAR, цифровой последовательный канал. |
OUT (0) ¸ OUT (3) – аналоговые каналы; OUT (4) ¸ OUT (7) – цифровые каналы. Вывод цифрового канала через D0 регистра DAR. |
-5В |
+5В |
IN (0) ¸ IN (3) - Аналоговые входы |
OUT (0) ¸ OUT (3) – цифровые каналы; OUT (4) ¸ OUT (7) – аналоговые каналы. |
-5В |
-5В |
IN (0) ¸ IN (3) - Аналоговые входы |
OUT (0) ¸ OUT (7) – цифровые выходы |
Операция ввода сигнала в цифровом виде производится в последовательном виде через разряд D1 регистра DAR. Вывод сигнала в цифровом виде производится через младший разряд регистра DAR – D0 – также в последовательном виде. (Всего в регистре DAR 8 разрядов мантиссы и один разряд знаковый).
Цифровой сигнал вводится обычно либо со скоростного АЦП, либо со скоростного микропроцессора в уже оцифрованном виде.
При вводе аналогового сигнала и преобразовании его в цифровой эквивалент необходимо выполнить следующие действия:
- Указывается восемь команд ввода сигнала по заданному каналу – чтобы запомнить напряжение на конденсаторе и получить максимальную точность:
- Последовательно производится преобразование знакового разряда, далее старшего разряда мантиссы (7-го разряда), 6-го разряда мантиссы и т.д.
Перед выполнением каждой команды преобразования соответствующего разряда, нужно предусмотреть две пустые операции NOP (отсутствие операции).
Учитывая вышесказанное, программа ввода будет выглядет следующим образом:
№ команды |
Содержание команды |
№ команды |
Содержание команды |
№ команды |
Содержание команды |
1 |
IN (0) |
13 |
NOP |
25 |
NOP |
2 |
IN (0) |
14 |
CUT (7) |
26 |
CUT (3) |
3 |
IN (0) |
15 |
NOP |
27 |
NOP |
4 |
IN (0) |
16 |
NOP |
28 |
NOP |
5 |
IN (0) |
17 |
CUT (6) |
29 |
CUT (2) |
6 |
IN (0) |
18 |
NOP |
30 |
NOP |
7 |
IN (0) |
19 |
NOP |
31 |
NOP |
8 |
IN (0) |
20 |
CUT (5) |
32 |
CUT (1) |
9 |
NOP |
21 |
NOP |
33 |
NOP |
10 |
NOP |
22 |
NOP |
34 |
NOP |
11 |
Преобразование знакового разряда CUT S |
23 |
CUT (4) |
35 |
CUT (0) |
12 |
NOP |
24 |
NOP |
Особенности вывода:
При выводе в самом начале требуется предусмотреть три пустые операции NOP, а затем повторить 8 раз подряд сигнал вывода по заданному каналу, и тогда программа вывода будет выглядеть следующим образом:
№ команды |
Содержание команды |
№ команды |
Содержание команды |
… |
… |
… |
… |
11 |
NOP |
17 |
OUT (7) |
12 |
NOP |
18 |
OUT (7) |
13 |
NOP |
19 |
OUT (7) |
14 |
OUT (7) |
20 |
OUT (7) |
15 |
OUT (7) |
21 |
OUT (7) |
16 |
OUT (7) |
Сводная таблица операций в аналоговом поле:
Аналоговые операции |
Комментарии |
||
Мнемоника |
КОП А |
||
Функции |
Знач. K |
||
IN (k) |
00 |
000 (k=0) 001 (k=1) 010 (k=2) 011 (k=3) |
Ввод сигнала по каналу k |
NOP |
00 |
100 |
Отсутствие операций |
EOP |
00 |
101 |
Возврат в начало программы |
CUT S |
00 |
110 |
Преобразование знакового разряда |
CND S |
00 |
111 |
Условная операция по знаковому разряду |
CUT (k) |
10 |
000 (k=0) . . . 111 (k=7) |
Преобразование k-того разряда |
OUT (k) |
01 |
000 (k=0) . . . 111 (k=7) |
Вывод сигнала по каналу k |
CND (k) |
11 |
000 (k=0) . . . 111 (k=7) |
Условная операция по разряду k |
5. Реализация цифровых фильтров (ЦФ) на 1813ВЕ1
Программа обработки построена по конвейерному принципу. Конвейерный принцип предполагает выполнение последовательных команд. После выполнения последней команды программа возвращается в начало.
На рис. 5.1. изображен рекурсивный ЦФ 2-го порядка:
Рисунок 5.1. Структурная схема рекурсивного ЦФ 2-го порядка.
Запишем разностное уравнение для данного фильтра:
Исходя из разностного уравнения, можно получить все требуемые характеристики выходного сигнала в заданный момент времени.
Для рекурсивного фильтра коэффициенты умножения А0, А1, А2 могут либо равняться нулю, либо каким-то конкретным значениям. Порядок рекурсивного фильтра определяется количеством линий задержки в выходном сигнале. В случае, если В0 и В1 равны нулю, фильтр превращается в нерекурсивный (трансверсальный фильтр).
Преимущество рекурсивного ЦФ:
Для реализации требуемой крутизны фильтра требуется небольшое (малое) количество операций.
Недостатки рекурсивного ЦФ:
-
- Больший уровень шумов по сравнению с нерекурсивным фильтром.
- Требуется использовать масштабирование, чтобы система не самовозбудилась.
Для реализации коэффициентов умножения используют знакоразрядную форму представления. Для этого выполним следующие шаги:
-
- Возьмем двоичное 15-разрядное число. Два старших разряда отделим от остальных точкой.
- Разряды, находящиеся слева от точки (два разряда) имеют следующий вес: младший – 20, следующий – 21.
- Разряды, находящиеся правее точки, имеют веса:1-й – ;2-й – ;...13-й – ;
- Для уменьшения количества операций умножения некоторые разряды инвертируются. Инверсия разряда обозначается знаком “-” над заданным разрядом, - это означает, что данный ес нужно взять со знаком “-”.
Пример:
Пусть заданы следующие коэффициенты умножения:
Для умножения заданного коэффициента на цифровой отсчет поступают следующим образом:
- На первом этапе цифровой отсчет сдвигают влево либо вправо на заданное количество разрядов – это равносильно умножению на 2К.
- На втором этапе используют прежнее значение на предыдущем такте и новое значение на следующем такте.
Пример: y0=A0× x(nT)=(2-8-2-10)× x(nT).
1-й этап: y0:= 2-8 × x(nT).
2-й этап: y0:=y0-2-10× x(nT).
Пример программы для приведенных выше коэффициентов умножения:
№ п/п |
КОП Ц |
Адрес операнда “В” |
Адрес операнда “А” |
Код МУ |
КОП А |
Комментарии |
1 |
LDA |
Y2 |
Y1 |
L00 |
IN (0) |
Y2= Y1; ввод x0 по “0” каналу. |
2 |
LDA |
Y1 |
Y0 |
L00 |
IN (0) |
Y1= Y0; ввод x0 по “0” каналу. |
3 |
LDA |
Y0 |
Y1 |
L01 |
IN (0) |
Y0= Y1× 21; ввод x0 по “0” каналу. |
4 |
SUB |
Y0 |
Y1 |
R02 |
IN (0) |
Y0= Y0-Y1× 2-2; ввод x0 по “0” каналу. |
5 |
ADD |
Y0 |
Y1 |
R06 |
IN (0) |
Y0= Y0+Y1× 2-6; ввод x0 по “0” каналу. |
6 |
SUB |
Y0 |
Y2 |
L00 |
IN (0) |
Y0= Y0-Y2× 2-0; ввод x0 по “0” каналу. |
7 |
ADD |
Y0 |
Y2 |
R07 |
IN (0) |
Y0= Y0+Y2× 2-7; ввод x0 по “0” каналу. |
8 |
SUB |
Y0 |
Y2 |
R09 |
IN (0) |
Y0= Y0-Y2× 2-9; ввод x0 по “0” каналу. |
9 |
LDA |
Y0 |
Y0 |
L00 |
CUT S |
Y0=Y0, преобразование знака |
10 |
LDA |
Y0 |
Y0 |
L00 |
NOP |
Y0=Y0, преобразование знака |
11 |
LDA |
Y0 |
Y0 |
L00 |
NOP |
Y0=Y0, преобразование знака |
12 |
LDA |
Y0 |
Y0 |
L00 |
CUT(7) |
Y0= Y0, преобразование 7-го разряда мантиссы |
13 |
LDA |
Y0 |
Y0 |
L00 |
NOP |
Y0= Y0, преобразование 7-го разряда мантиссы |
14 |
LDA |
Y0 |
Y0 |
L00 |
NOP |
Y0= Y0, преобразование 7-го разряда мантиссы |
15 |
LDA |
Y0 |
Y0 |
L00 |
CUT(6) |
Y0= Y0, преобразование 6-го разряда мантиссы |
16 |
LDA |
Y0 |
Y0 |
L00 |
NOP |
Y0= Y0, преобразование 6-го разряда мантиссы |
17 |
LDA |
Y0 |
Y0 |
L00 |
NOP |
Y0= Y0, преобразование 6-го разряда мантиссы |
18 |
LDA |
Y0 |
Y0 |
L00 |
CUT(5) |
Y0= Y0, преобразование 5-го разряда мантиссы |
19 |
LDA |
Y0 |
Y0 |
L00 |
NOP |
Y0= Y0, преобразование 5-го разряда мантиссы |
20 |
LDA |
Y0 |
Y0 |
L00 |
NOP |
Y0= Y0, преобразование 5-го разряда мантиссы |
21 |
LDA |
Y0 |
Y0 |
L00 |
CUT(4) |
Y0= Y0, преобразование 4-го разряда мантиссы |
22 |
LDA |
Y0 |
Y0 |
L00 |
NOP |
Y0= Y0, преобразование 4-го разряда мантиссы |
23 |
LDA |
Y0 |
Y0 |
L00 |
NOP |
Y0= Y0, преобразование 4-го разряда мантиссы |
24 |
LDA |
Y0 |
Y0 |
L00 |
CUT(3) |
Y0= Y0, преобразование 3-го разряда мантиссы |
25 |
LDA |
Y0 |
Y0 |
L00 |
NOP |
Y0= Y0, преобразование 3-го разряда мантиссы |
26 |
LDA |
Y0 |
Y0 |
L00 |
NOP |
Y0= Y0, преобразование 3-го разряда мантиссы |
27 |
LDA |
Y0 |
Y0 |
L00 |
CUT(2) |
Y0= Y0, преобразование 2-го разряда мантиссы |
28 |
LDA |
Y0 |
Y0 |
L00 |
NOP |
Y0= Y0, преобразование 2-го разряда мантиссы |
29 |
LDA |
Y0 |
Y0 |
L00 |
NOP |
Y0= Y0, преобразование 2-го разряда мантиссы |
30 |
LDA |
Y0 |
Y0 |
L00 |
CUT(1) |
Y0= Y0, преобразование 1-го разряда мантиссы |
31 |
LDA |
Y0 |
Y0 |
L00 |
NOP |
Y0= Y0, преобразование 1-го разряда мантиссы |
32 |
LDA |
Y0 |
Y0 |
L00 |
NOP |
Y0= Y0, преобразование 1-го разряда мантиссы |
33 |
LDA |
Y0 |
Y0 |
L00 |
CUT(0) |
Y0= Y0, преобразование 0-го разряда мантиссы |
34 |
LDA |
Y0 |
Y0 |
L00 |
NOP |
Y0= Y0, преобразование 0-го разряда мантиссы |
35 |
LDA |
Y0 |
Y0 |
L00 |
NOP |
Y0= Y0, преобразование 0-го разряда мантиссы |
36 |
LDA |
X0 |
DAR |
L00 |
NOP |
X0=DAR |
37 |
ADD |
Y0 |
X0 |
R08 |
NOP |
Y0=Y0+2-8× X0 |
38 |
SUB |
Y0 |
X0 |
R10 |
NOP |
Y0=Y0-2-10× X0 |
39 |
LDA |
DAR |
Y0 |
L00 |
NOP |
DAR=Y0 |
40 |
LDA |
Y0 |
Y0 |
L00 |
OUT(1) |
Вывод Y0 по 1-му каналу. |
41 |
LDA |
Y0 |
Y0 |
L00 |
OUT(1) |
Вывод Y0 по 1-му каналу. |
42 |
LDA |
Y0 |
Y0 |
L00 |
OUT(1) |
Вывод Y0 по 1-му каналу. |
43 |
LDA |
Y0 |
Y0 |
L00 |
OUT(1) |
Вывод Y0 по 1-му каналу. |
44 |
LDA |
Y0 |
Y0 |
L00 |
OUT(1) |
Вывод Y0 по 1-му каналу. |
45 |
LDA |
Y0 |
Y0 |
L00 |
OUT(1) |
Вывод Y0 по 1-му каналу. |
46 |
LDA |
Y0 |
Y0 |
L00 |
OUT(1) |
Вывод Y0 по 1-му каналу. |
47 |
LDA |
Y0 |
Y0 |
L00 |
OUT(1) |
Вывод Y0 по 1-му каналу. |
48 |
LDA |
Y0 |
Y0 |
L00 |
EOP |
Возврат в начало программы |
Система команд микросхемы К580МК80. Основные обозначения.
Обозначение |
Содержание |
<Bi> |
Содержимое i-того байта команды. |
r |
Обозначение регистра 001 010 011 100 101 110 111 |
F |
Обозначение состояния триггера признаков TC (перенос) TZ (нуль) TS (знак) TP (четность) TV (доп. перенос) |
(r ) |
Содержимое регистра |
[(r)] |
Содержимое ячейки памяти, адрес которой (r ) |
Логическое “И” |
|
“Исключающее ИЛИ” |
|
Логическое “ИЛИ” |
|
(rm) |
m-ый бит содержимого регистра |
SP |
Указатель стека |
PC |
Счетчик команд |
Пересылка |
Приложение.
Структура кода команды |
Байты |
Циклы |
Такты |
Выполняемая операция |
Мнемоника |
Признаки |
||||
Z |
S |
C |
V |
P |
||||||
1. Команды пересылки |
||||||||||
01rirj |
1 |
1/3 |
5/7 |
ri(rj) |
MOV ri rj |
- |
- |
- |
- |
- |
00ri110 |
2 |
2/3 |
7/ 10 |
2. Непосредственная пересылка ri<B2> |
MVI ri, <B2> |
- |
- |
- |
- |
- |
00ri001 |
3 |
3 |
10 |
3. Непосредственная загрузка пары регистров ri<B3>; при ri=110: |
LXI ri |
- |
- |
- |
- |
- |
00K1010 |
1 3 3 |
2 4 5 |
7 13 16 |
K1 000 010 001 011 110 111 100 101 |
STAX B STAX D LDAX B LDAX D STA LDA SHLD LHLD |
- - - - - - - - |
- - - - - - - - |
- - - - - - - - |
- - - - - - - - |
- - - - - - - - |
11ri101 |
1 |
3 |
11 |
5. Ввод из пар регистров в стек
[SP-1](ri); |
PUCH ri |
- |
- |
- |
- |
- |
11110101 |
1 |
3 |
11 |
6. Ввод (А) и (F) в стек [SP-1](А); |
PUCH PSW
|
- |
- |
- |
- |
- |
11ri001 |
1 |
3 |
10 |
7. Вывод из стека в пары регистров: ri+1[SP]; |
POP ri |
- |
- |
- |
- |
- |
11110001 |
1 |
3 |
10 |
8. Вывод (А) и (F) из стека F[SP]; |
POP PSW |
+ |
+ |
+ |
+ |
+ |
11101011 |
1 |
1 |
4 |
9. Обмен между DE и HL (H)(D); |
XCH D |
- |
- |
- |
- |
- |
11100011 |
1 |
5 |
13 |
10. Обмен вершин стека с H. |
XT H L |
- |
- |
- |
- |
- |
11111001 |
1 |
1 |
5 |
11. Пересылка (HL) в указатель стека. SP(HL) |
SPHL |
- |
- |
- |
- |
- |
11101001 |
1 |
1 |
5 |
12. Пересылка (HL) в счетчик команд. |
PC HL |
- |
- |
- |
- |
- |
II. Приращение / отрицательное приращение |
||||||||||
00ri100 |
1 |
1/3 |
5/ 10 |
1. Приращение регистра ri(ri)+1 |
INP ri |
+ |
+ |
- |
+ |
+ |
00ri101 |
1 |
1/3 |
5/ 10 |
2. Отрицательное приращение регистра ri(ri)-1 |
DCP ri |
+ |
+ |
- |
+ |
+ |
00ri011 |
1 |
1 |
5 |
3. Приращение пары регистров ri, ri+1 (ri)(ri+1)+1 |
INX ri |
- |
- |
- |
- |
- |
00ri011 |
1 |
1 |
5 |
4. Отрицательное приращение пары регистров ri –1, ri (ri –1)(ri) – 1 При ri=111 – отрицательное приращение SP |
DCX ri –1 |
- |
- |
- |
- |
- |
III. Арифметические и логические операции |
||||||||||
10К2ri |
1 |
1/2 |
4/7 |
1. Над (А) и (r). A(A)*(ri), * - операция (К2) К2 000 001 010 011 100 101 110 111 |
ADD ri ADC ri SUB ri ANA ri XRA ri ORA ri |
+ + + + + + + + |
+ + + + + + + + |
+ + + + 0 0 0 + |
+ + + + 0 0 0 + |
+ + + + + + + + |
00ri001 |
1 |
3 |
10 |
2. Сложение содержимого пар регистров HL(HL)+ (ri –1 )(ri), |
DAD ri –1 |
- |
- |
+ |
- |
- |
11К2110 |
2
|
2 |
7 |
3. Операции с непосредственной адресацией А(А)*<B2>, где * - операция, определяемая К2 К2 000 001 010 011 100 101 110 111
|
ADI ACI SUI SBI ANI XRI ORI CPI |
+ + + + + + + + |
+ + + + + + + + |
+ + + + 0 0 0 + |
+ + + + 0 0 0 + |
+ + + + + + + + |
00K3111 |
1 |
1 |
4 |
IV. Операции циклического сдвига К3 000 001 010 011
|
RLC RRC RAL RAR |
- - - - |
- - - - |
+ + + + |
- - - - |
- - - - |
V. Операции переходов |
||||||||||
11000011 |
3 |
3 |
10 |
1. Безусловный переход PC <B3><B2> |
JMP |
- |
- |
- |
- |
- |
11K4010 |
3 |
3 |
10 |
2. Условные переходы К4 000 001 010 011 100 101 110 111 |
JNZ JZ JNC JC JPO JPE JP JM |
- - - - - - - - |
- - - - - - - - |
- - - - - - - - |
- - - - - - - - |
- - - - - - - - |
11001101 |
3 |
5 |
17 |
3. Вызов безусловный [SP-1][SP-2] (PC), |
CALL |
- |
- |
- |
- |
- |
11K5100 |
3 |
3/5 |
11/17 |
4. Вызов программы условный К5 000 001 010 011 100 101 110 111 |
CNZ CZ CNC CC CPO CPE CP CM |
- - - - - - - - |
- - - - - - - - |
- - - - - - - - |
- - - - - - - - |
- - - - - - - - |
11001001 |
1 |
3 |
10 |
5. Возврат из программы PC [SP][SP+1], |
RET |
- |
- |
- |
- |
- |
11K6000 |
1 |
1/3 |
5/11 |
6. Условный возврат из подпрограммы К6 000 001 010 011 100 101 110 111 |
RNZ RZ RNC RC RPO RPE RP RM |
- - - - - - - - |
- - - - - - - - |
- - - - - - - - |
- - - - - - - - |
- - - - - - - - |
VI. Операции ввода и вывода |
||||||||||
11011011 |
2 |
3 |
10 |
A(входные данные) |
IN |
- |
- |
- |
- |
- |
11010011 |
2 |
3 |
10 |
2. Вывод данных Шина данных X(A) |
OUT |
- |
- |
- |
- |
- |
VII. Прочие операции |
||||||||||
11AAA111 |
2 |
3 |
11 |
1. Рестарт [SP-1][SP-2](PC); |
RST |
- |
- |
- |
- |
- |
00101111 |
1 |
1 |
4 |
2. Дополнение (А) A (Ā) |
SMA |
- |
- |
- |
- |
- |
00110111 |
1 |
1 |
4 |
3. Установка переноса TC 1 |
STC |
- |
- |
1 |
- |
- |
00111111 |
1 |
1 |
4 |
4. Дополнение переноса TC () |
CMC |
- |
- |
+ |
- |
- |
1 |
1 |
4 |
5. Разрешение прерываний |
EI |
- |
- |
- |
- |
- |
|
11110011 |
1 |
1 |
4 |
6. Блокировка прерываний |
DI |
- |
- |
- |
- |
- |
1 |
1 |
4 |
7. Двоично-десятичное представление (А) |
DAA |
+ |
+ |
+ |
+ |
+ |
|
1 |
1 |
4 |
8. Отсутствие операции |
NOP |
- |
- |
- |
- |
- |
|
1 |
1 |
7 |
9. Останов |
HLT |
- |
- |
- |
- |
- |
Примеры. Техника микропроцессорных систем в электросвязи
С относительно медленного устройства ввода (имеющего два порта: порт данных №12 и порт состояний №8) ввести 64 однобайтовых числа со знаком, представленных в дополнительном коде. Вычислить среднее арифметическое чисел и поместить его в прямом коде в ячейку 05АВ оперативной памяти. Готовность устройства ввода определяется значением 1 в младшем разряде числа, выдаваемого из порта №8. для исключения потери точности перед сложением чисел и следует представить в двухбайтовом формате.
Требуется составить алгоритм и реализовать его.
Алгоритм представлен на рис. 1.
Комментарии к алгоритму:
Блок 1: В пару регистров HL записывается начальный адрес массива для записи 64 чисел.
Блок 2: Организация счетчика циклов (64 цикла в 16-ричной системе счисления).
Блок 3: Ввод сигнала готовности через УВВ 8
Блоки 4-5: анализ сигнала готовности.
Блок 6: ввод очередного числа через УВВ 12
Блок 7: запись числа в оперативную память.
Блок 8: модификация адреса (берется следующий элемент массива из соседней ячейки).
Блоки 9-10: организация цикла.
Блок 11: обнуление пары регистров ВС (там будет накапливаться сумма элементов массива).
Блок 12: организация счетчика циклов.
Блок 13: адрес начала массива.
Блок 14: вывод первого числа
Блок 15: модификация адреса.
Блок 16: запись накапливаемой суммы младших байтов в аккумулятор.
Блоки 17-18: увеличение содержимого регистра В, если есть перенос ТС.
Блоки 19-20: организация цикла.
Блок 21: запоминание младшего байта суммы.
Блок 22: организация счетчика циклов для деления на 64.
Блок 23: вызов старшего байта в аккумулятор.
Блок 24: сдвиг вправо аккумулятора.
Блок 25: запоминание старшего байта в регистр В.
Блок 26: вызов младшего байта в аккумулятор.
Блок 27: Сдвиг вправо с учетом ТС.
Блок 28: запоминание младшего байта в регистр С.
Блоки 29-30: организация цикла.
Блок 31: Запоминание результата.
Блок 32: конец программы.
Рисунок 1. Алгоритм вычисления среднего арифметического 64 чисел.
В массиве из 15 чисел, хранящихся в ОЗУ начиная с адреса 056716, изменить порядок следования разрядов на обратный. После преобразования числа помещать на место исходных данных.
Составить алгоритм и программу, реализующие условие задачи.
Итак, нужно сделать следующее:
- взять какое-то число из ОЗУ;
- сдвинуть это число влево, при этом старший разряд попадет в признак ТС.
- взять значение промежуточного регистра и признак ТС, полученный на предыдущем шаге, сдвинуть вправо.
- (2) и (3) операции нужно повторить 8 раз подряд.
- Организовать большой цикл, так как у нас 15 чисел для преобразования..
Для решения задачи воспользуемся следующими регистрами:
HL – пара регистров для обращения к ячейкам ОЗУ.
В – счетчик циклов для преобразования 15-ти чисел.
С - счетчик циклов для преобразования 1-го числа.
D и E – два промежуточных регистра.
Алгоритм приведен на рис.2.
Комментарии к алгоритму и программе:
Блок 1: Загрузка начального адреса массива.
Блок 2: Организация счетчика циклов (всего 15 чисел).
Блок 3: Организация счетчика циклов (всего 8 разрядов в каждом числе).
Блок 4: Обнуление промежуточных регистров.
Блок 5: Пересылка очередного числа в промежуточный регистр “D”.
Блок 6: Пересылка в аккумулятор.
Блок 7: Сдвиг влево аккумулятора.
Блок 8: Возврат в “D”.
Блок 9: Пересылка из “Е” в аккумулятор.
Блок 10: Сдвиг вправо аккумулятора.
Блок 11: Пересылка в регистр “Е”.
Блоки 12, 13: Организация малого цикла работы.
Блок 14: Пересылка преобразованного числа по старому адресу.
Блок 15: Модификация адреса.
Блоки 16, 17: Организация большого цикла работы.
Рисунок 2. Алгоритм изменения порядка следования разрядов.
Массив из 19 5-ти – разрядных двоичных чисел без знака, выдаваемый устройством ввода (порт №10), преобразовать в десятичную систему счисления и полученные данные поместить в оперативную память, начиная с адреса 1АВС. Готовность устройства ввода задается сигналом из порта №11, содержащим 1 в старшем разряде.
Рассмотрим, как можно совершить преобразование двоичных чисел в десятичную систему с помощью сдвиговых регистров.
Пусть число, подлежащее преобразованию в десятичную систему счисления, хранится в регистре R1 (рис.3.1). Результат преобразования (число в десятичной системе счисления) будем формировать в регистре R2. разряды регистра R2 делятся на 4-разрядные группы R2’, R2’’, R2’’’ и т.д., каждая из которых предназначена для хранения одной десятичной цифры, представленной в двоичной системе счисления.
Рассматриваемый способ преобразования потребует выполнения последовательности операций сдвига влево содержимого регистров R1 и R2 с передачей выдвигаемого из регистра R1 содержимого старшего разряда в освобождающийся младший разряд регистра R2. двоичное число, выдвигаясь из регистра R1, будет вдвигаться в регистр R2. При этом необходимо учитывать следующую особенность выполнения сдвигов в регистре R2. Единица, выдвигаемая при сдвиге из старшего разряда группы R2’, имеет вес 24=16. Однако поступая в группу R2’’ (в разряд десятков), эта единица будет иметь вес 10. таким образом, при передаче единицы из R2’ в R2’’ происходит потеря 6 единиц. Для компенсации этой потери потребуется прибавить 6 единиц к содержимому R2’. Можно показать, что выдвижение 1 из любой 4-разрядной группы регистра R2 требует коррекции содержимого этой группы путем прибавления 6 единиц. Такая же коррекция требуется и в случае, когда после сдвига в 4-разрядной группе возникает число, большее или равное 10. В этом случае прибавление 6 единиц вызывает перенос из старшего разряда группы, который необходимо прибавлять к содержимому следующей 4-разрдной группы.
Более удобным оказывается способ, при котором коррекция производится не после сдвига, а до выполнения сдвига влево. В этом случае коррекция осуществляется прибавлением числа 3 (в результате сдвига оно удваивается и принимает значение 6), а признаком необходимости коррекции является наличие в 4-разрядной группе числа, большего или равного 5 (после сдвига это число оказывается большим или равным 10). При этом передача единицы в следующую 4-разрядную группу осуществляется только путем передачи переноса, возникающего в процессе сдвига (т.е. исключается необходимость прибавления единицы к содержимому группы, как в случае, когда коррекция выполняется после операции сдвига).
Если число разрядов регистра R1 равно n, то преобразования завершается после n-кратного выполнения сдвига.
Мы имеем 19 чисел, каждое из которых 5-разрядное, а для преобразования одного 5-разрядного числа необходим один регистр:
Алгоритм преобразования одного числа представлен на рис.3.1
Рисунок 3.1. Алгоритм преобразования одного числа из двоичной системы счисления в десятичную.
Полный алгоритм решения задачи представлен на рис. 3.2.
Комментарии к алгоритму и программе.
Блок 1: Организация счетчика циклов (19 чисел)
Блок 2: Начальный адрес массива.
Блоки 3-5: Синхронизация по сигналу ввода с устройства ввода №11.
Блок 6: ввод сигнала с устройства ввода №10.
Блок 7: Пересылка из аккумулятора в регистр "В".
Блок 8: Организация малого счетчика циклов.
Блок 9: Обнуление R2.
Блок 10: Пересылка R2 в аккумулятор.
Блок 11: Анализ R2'.
Блоки 12, 13: Проверка условия R2' ³ 5.
Блоки 14-21: Коррекция R2'+3 и пересылка результата в регистр "D".
Блоки 22-27: Сдвиг R1 и R2/
Блоки 28, 29: Организация малого цикла преобразования двоичного числа в десятичное.
Блок 30: Пересылка результата преобразования.
Блок 31: Модификация адреса.
Блоки 32, 33: Организация большого цикла работы.
Блок 34: Останов.
Разделить два положительных однобайтовых числа, представленных в формате с фиксированной перед старшим разрядом запятой, находящихся по адресам 078916 и 078А16. если частное больше или равно 1, то выдать сигнал переполнения в устройство вывода №3, в противном случае результат операции следует поместить в ячейку 078В16 оперативной памяти.
Распределим регистры:
А – поместим делимое (адрес 0789);
В – поместим делитель (адрес 078А);
С – промежуточный регистр;
D – счетчик циклов;
Е – частное от деления.
Если будет переполнение регистра Е, то выведем на устройство вывода №3 сигнал 00Н.
Алгоритм решения задачи представлен на рис.4
Рисунок 4. Алгоритм деления двух чисел.
Комментарии к программе:
К1 - организация цикла;
К2 - обнуление регистра, где будет храниться частное;
К3, К4 - пересылка делителя;
К5 - пересылка делимого;
К6, К7 - операция "С=А-В";
К8 - определение знака величины "С";
К9 - К12 - запись "1" в регистр Е и сдвиг на 1 разряд влево.
К13, К14 - операция сдвига влево регистра "С";
К15, К16 - операция "С=А-В";
К17 - К19 - запись "0" в регистр Е и сдвиг на 1 разряд влево.
К20, К21 - сдвиг влево в регистре "С";
К22, К23 - операция "С=А+В";
К24, К25 - организация цикла;
К26, К27, К28 - анализ частного (есть или нет переполнение регистра);
К29, К30 - запись частного от деления;
К31, К32 - вывод сигнала "переполнение";
Произвести умножение двухбайтового числа без знака на однобайтовое целое число без знака. Число хранится в оперативной памяти по адресам: множимое – 0А01, 0А02; множитель – 0А03. Результат умножения выдать на устройство вывода №1. Сигналом готовности устройства вывода является наличие единицы в данных, выдаваемых из порта №6.
Алгоритм решения задачи приведен на рис.5.
Рисунок 5.
Комментарии к программе
К1 – обнуление пары регистров HL для вычисления первого промежуточного произведения.
К2 – К4 – пересылка множимого (младший байт) в пару регистров DE.
К5 – пересылка множителя в аккумулятор.
К6 – счетчик циклов умножения.
К7 – сдвиг HL влево на 1 разряд.
К8 – сдвиг влево множителя.
К9 – анализ разряда множителя.
К10 – сложение пар регистров.
К11 – К11-1 – организация цикла работы.
К12 – запоминание в стеке результатов промежуточного умножения.
К13 – обнуление HL.
К14 – К15 – пересылка множимого (старшего байта) в пару регистров DE.
К16 – счетчик циклов.
К17 – пересылка множителя в аккумулятор.
К18 – сдвиг HL влево на 1 разряд.
К19 – К20 – сдвиг влево множителя и его анализ
К21 – сложение пары регистров.
К22 – К23 – организация цикла.
К24 – К25 – пересылка старшего байта в регистры ВС.
К26 – вывод младшего байта из стека.
К27 – пересылка старшего байта младшего промежуточного умножения.
К28 – сложение двух регистров и запоминание результата в регистре С.
К29, К30– перенос ТС добавляется к старшему байту.
К31 – ввод сигнала с УВВ 6.
К32, К33 – анализ старшего разряда сигнала.
К34, К35 – вывод младшего байта результата на УВ 1.
К36 – ввод сигнала синхронизации.
К37 – К38 – анализ сигнала синхронизации.
К39, К40 – вывод среднего байта.
К41 – ввод сигнала синхронизации.
К42, К43 – анализ сигнала синхронизации.
К44, К45 – вывод старшего байта.
К46 – останов
В оперативной памяти хранятся два массива однобайтовых чисел со знаком, представленные в прямом коде. Каждый из массивов содержит 10 чисел. Начальные адреса массивов: 03АВ и 0А45. сформировать разность массивов в прямом коде и выдать ее на устройство ввода №12. Сигналом готовности устройства вывода является наличие единицы в старшем разряде данных, выдаваемых из порта №13.
Алгоритм решения задачи приведен на рис.6
Комментарии к алгоритму и программе
Блок 1: Организация счетчика циклов
Блок 2: Начальный адрес 1-го массива.
Блок 3: Начальный адрес 2-го массива.
Блок 4: Вывод очередного числа первого массива.
Блок 5: Разность двух чисел.
Блоки 6-8: Преобразование отрицательного числа в положительное (выдача необходима в прямом коде).
Блоки 9, 10: Промежуточное запоминание.
Блоки 11, 12: Модификация адреса.
Блоки 13-15: Синхронизация по УВВ 13: ввод числа, сдвиг влево для выявления старшего разряда и его анализ.
Блок 16: Пересылка из “Е” в аккумулятор.
Блок 17: Вывод числа.
Блоки 18, 19: Организация цикла.
Блок 20: Останов.
Рисунок 6. Алгоритм определения разности массивов.