Общая характеристика.
МикроЭВМ представляет собой законченное устройство, имеющее в своем составе арифметико-логический блок, оперативную память и постоянное запоминающее устройство (ПЗУ).
Имеется 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.