Файл: 1. Основные параметры и характеристики логических элементов.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 22.11.2023
Просмотров: 299
Скачиваний: 3
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Рис. 2. Формат слова состояния программы микроконтроллера ВЕ48
Входящий в состав PSW трехразрядный указатель стека обеспечивает организацию системного стека из восьми двухбайтовых ячеек. Стек служит для промежуточного хранения старшей тетрады PSW и определяемых текущим состоянием PC адресов возврата при обработке прерываний и вызовах подпрограммы. Набор признаков C, AC, F0, BS совместно с 12-разрядным PC образуют двухбайтовый объект, автоматически загружаемый в стек или выбираемый обратно при очередной операции над ним. При ограниченной глубине стека допускается до восьми уровней вложения, в противном случае возникает переполнение стека с переходов через границу не его начало.
Помимо входящих в слово состояния программы, существуют еще два флажка: MB – содержимое данного флажка определяет состояние старшего разряда PC и F1 – еще один флажок пользователя (наряду с F0).
Схема условных переходов предназначена для формирования сигналов управления ветвлением программы при выполнении команд условных переходов.
98.Организация память программ и данных МК К1816ВЕ48.
Память программ (рис. 3) предназначена для хранения и считывания команд, которые поступают в процессор и управляют процессом обработки информации. Общий объем адресуемой памяти программ семейства ВЕ48 составляет 4 Кбайт, при этом память разделена на две части: резидентная программная память объемом 1024 байт и внешняя программная память, составляющая в сумме с резидентной памятью 4 Кбайт. Если адрес выборки команды выходит за пределы резидентной памяти, то автоматически инициализируется внешняя память.
Рис. 3. Память программ микроконтроллеров семейства ВЕ48
Память программ делится на два банка по 2 Кбайт. Переключение программной памяти с одного банка на другой осуществляется соответствующими командами и непосредственно связано со старшим разрядом программного счетчика.
SEL MB0 ; флажок MB=0
SEL MB1 ; флажок MB=1
Память программ делится не только на два банка емкостью 2 Кбайт, но и на страницы емкостью по 256 байт в каждой. В командах условного перехода задается 8-битный адрес передачи управления в пределах текущей страницы.
Для доступа к памяти программ как к таблицам данных служат команды обращения к текущей странице памяти программ MOVP и к третьей странице MOVP3, которые позволяют считывать байт из программной памяти в аккумулятор.
В памяти программ имеются три ячейки специального назначения:
– адрес 0 – адрес начала программы (ее первой команды), устанавливаемый в счетчике команд по сигналу сброса SR;
– адрес 3 – начальный адрес подпрограммы прерываний, вызываемых внешними устройствами;
– адрес 7 – начальный адрес подпрограммы прерываний, вызываемых переполнением таймера/счетчика.
Память данных. Память данных (рис. 4) предназначена для записи, хранения и считывания данных, получаемых в процессе обработки информации. Память данных, состоящая из 64 ячеек ОЗУ, разбита на два банка регистров общего назначения (РОН) с адресами от 00H до 07H – банк РОН0 и с адресами от 18H до 1FH – банк РОН1. Переключение банков осуществляется программным путем с помощью команд
SEL RB0 ; флажок BS=0
SEL RB1 ; флажок BS=1
Ячейки ОЗУ с адресами от 20H до 3FH используются только как ОЗУ данных. Восьмиуровневый 16-разрядный стек с адресами от 08H до 17H адресуется указателем стека из PSW.
Для записи и выборки данных из ОЗУ применяются два вида адресации: прямая и косвенная (регистровая). Независимо от типа адресации три младших разряда кода команды указывают на один из восьми регистров РОН R0…R7 с учетом принадлежности к ранее выбранному банку регистров. При использовании команд с прямой адресацией указанный регистр является источником или приемником данных, а при использовании команд с косвенной адресацией указанный регистр содержит адрес данных (в качестве регистров косвенного адреса используются только R0 и R1). С помощью косвенной адресации можно обращаться к любой ячейке памяти данных.
Рис. 4. Память данных микроконтроллеров семейства ВЕ48
В микроконтроллере ВЕ48 предусмотрена возможность расширения внутренней памяти до 320 байт путем подключения внешних микросхем ОЗУ. Обращение к внешней памяти данных осуществляется с помощью команд
MOVX @R, A
MOVX A, @R
Обмен информацией с внешним ОЗУ стробируется сигналами WR и RD и производится через порт P0.
99. Организация системы ввода-выводаМК К1816ВЕ48
Каналы ввода-вывода. Каналы ввода-вывода служат для организации обмена информацией между контроллером и внешними устройствами. Архитектура ВЕ48 содержит 27 резидентных линий ВВ, организованных в три 8-разрядных порта BUS, P1, P2 и три тестируемые командами условного перехода независимые линии , , .
Порты P1, P2 имеют одинаковую структурную схему (рис. 5) и могут быть запрограммированы либо на ввод, либо на вывод данных. В режиме вывода эти порты обладают возможностью фиксации данных в так называемых триггерах-защелках. Эти данные статически присутствуют на выводах порта и могут быть изменены только новой выдачей по команде OUTL. Каждая выдача сопровождается занесением данных в защелку порта. При вводе данных информация поступает непосредственно в аккумулятор, минуя выходной буферный регистр. При использовании портов P1, P2 в качестве входов необходимо до подачи входной информации линии портов установить в состояние высокого уровня, выдав на порт байт единиц. В это состояние выводы портов устанавливаются также после подачи сигнала SR. Возможна произвольная смешанная настройка линий портов P1 и P2,
когда одни линии порта работают на ввод, другие – на вывод. Для настройки линии на режим ввода необходимо в триггер-защелку этой линии записать «1». Вводимые данные должны присутствовать на линиях порта до тех пор, пока не будут программно прочитаны. Кроме операции ввода-вывода информации предусмотрена возможность выполнения логических операций И, ИЛИ непосредственно на портах P1, P2 с помощью команд
ANL Pi, #data
ORL Pi, #data
Рис. 5. Схема портов P1, P2
Порт BUS отличается от P1 и P2 тем, что в нем применяется выходной буфер с тремя состояниями. Поэтому он не допускает одновременного смешивания ввода и вывода между своими разрядами. Порт BUS может использоваться в качестве статического порта ввода/вывода или двунаправленного порта адреса/данных с тремя состояниями при работе с внешней памятью.
Три линии ввода вывода ( , , ) опрашиваются при выполнении команд условного перехода для реализации ветвлений программы. Линия ввода-вывода переключается на выход для выдачи тактовых сигналов с частотой, в три раза меньшей частоты задающего генератора, по команде
ENT0 CLK
Линия является входом счетчика внешних событий для таймера-счетчика, если счет разрешен командой
STRT CNT
Линия используется для внешнего аппаратного прерывания.
Расширенное пространство ВВ содержит еще четыре 4-разрядных порта P4…P7, реализуемые внешними средствами. В системе команд предусмотрен ряд операций с прямым доступом к этим портам. Для осуществления этой возможности разработан специальный расширитель ВВ – микросхема 8243.
100. Организация систем подсчета времени, прерываний и синхронизацииМК К1816ВЕ48.
Таймер/счетчик. Внутренний 8-разрядный двоичный суммирующий счетчик T может быть использован для формирования временных задержек и для подсчета внешних событий. Организация 8-разрядного таймера/счетчика ИЕ48 представлена на рис. 6.
Рис. 6. Организация таймера/счетчика ВЕ48
Специальная команда пересылки
MOV A, T ; A←T
MOV T, A ; T←A
обеспечивает программный доступ к его содержимому. Устройство работает в двух режимах: таймера и счетчика, в которые оно переводится по командам
START T ; Пуск в режиме таймера
START CNT ; Пуск в режиме счетчика
Устройство останавливает свою работу при подаче сигнала аппаратного сброса RS или выполнении команды
STOP TCNT ; Останов таймера/счетчика
По команде START mode таймер/счетчик ведет непрерывный счет импульсов на своем входе по . При переходе через границу инициируется запрос на прерывание и устанавливается флажок переполнения TF, который может быть проверен командой условного перехода
JTF addr8 ; Если TF=1, тогда PC0–7←addr8, TF←0
При выполнении команды перехода или при начальной установке по сигналу RS флажок TF сбрасывается.
В режиме счетчика организуется подсчет числа переходов из 1 в 0 на внешнем входе . Максимальная скорость приращения счетчика составляет единицу на три машинных цикла.
В режиме таймера устройство считает метки времени, генерируемые внутренними узлами микроконтроллера. Эти метки являются результатом деления частоты следования машинных циклов ALE на 32. Во время выполнения команды START T этот делитель устанавливается в 0.
Используя начальную загрузку T и обнаруживая установку флажка TF, можно получить паузы от (1/32)ALE до 256(1/32)ALE. Организация пауз вне данного диапазона осуществляется с помощью программных циклов. Более короткие паузы можно также получить в режиме счетчика с T1, равным (1/3)ALE.
Система прерываний. Встроенная в ВЕ48 одноуровневая система прерываний с двумя источниками запросов, имеющими фиксированные векторы прерываний и приоритеты, представлена на рис. 7. Одноуровневость системы означает, что никакие новые запросы не воспринимаются до тех пор, пока не будет обслужен текущий.
Рис. 7. Система прерываний ВЕ48
В системе определены два источника: вход (стартовый адрес программы обслуживания 003H) и переполнение T (адресом программы обслуживания служит 007H). Каждый источник может быть замаскирован независимо от других специальными флажками EX и ET, управляемых командами
EN I ; Разрешение внешнего прерывания INT
DIS I ; Запрет внешнего прерывания INT
EN TCNTI ; Разрешение внутреннего прерывания от T
DIS TCNTI ; Запрет внутреннего прерывания от T
Флажки также сбрасываются при подаче сигнала RS. В случае одновременной фиксации двух запросов приоритет отдается внешнему.
Внешнее прерывание по входу воспринимается, когда на нем появляется напряжение низкого уровня. Линия контролируется во время ALE в последнем машинном цикле каждой команды. Результат тестирования запоминается во внутреннем триггере внешнего прерывания IX, установка которого инициирует формирования аппаратного эквивалента команды CALL 003H. При выполнении данной команды текущее содержимое PC и флажки PSW запоминаются в стеке, обеспечивая возможность возврата в точку прерывания. Программа обслуживания прерывания должна завершаться командой RETR, восстанавливающей PC и PSW. В начале второго цикла команда RETR разрешает прием новых запросов на прерывание. К этому моменту сигнал запроса должен быть снят внешними средствами. Обычно это делается автоматически в момент обслуживания устройства, выставившего запрос.
Сигнал переполнения от T фиксируется в триггере запроса IT. Он может быть замаскирован программно-управляемым флажком ET. При возникновении разрешенного прерывания генерируется аппаратная команда CALL 007H, сбрасывающая флажок IT.
Устройство управления и синхронизации. Устройство предназначено для выработки сигналов, обеспечивающих управление выполнением команд, и реализовано на кристалле микроконтроллера, за исключением источника опорной частоты, в качестве которого можно использовать кварцевый резонатор, LC-цепь или внешний источник синхроимпульсов. Устройство управления и синхронизации состоит из генератора, формирователей тактовых сигналов и формирователей сигналов состояний и режимов работы.
Частота генератора делится на три (рис. 8) в счетчике состояния для получения тактовой частоты (CLK), которая определяет временные соотношения в микроконтроллере. Сигналы CLK могут быть выведены на внешний вывод T0 по команде ENT0 CLK.
Рис. 8. Система синхронизации ВЕ48
Частота CLK делится на пять в счетчике циклов для получения частоты, определяющей машинный цикл. Полученный в результате такого деление опорной частоты синхросигнал назван ALE и используется при работе микроконтроллера с внешней памятью. Этот сигнал выдается в каждом машинном цикле на выводе ALE независимо от того, выполняется или нет в данном машинном цикле обращение к внешней памяти.
Общий системный сброс осуществляется подачей сигнала низкого уровня на вывод SR. Подача импульса на вход системного сброса производит следующие действия:
– сбрасывает счетчик команд и указатель стека;
– устанавливает порт BUS в высокоимпедансное состояние (при EMA=0), а порты P1 и P2 – в режим ввода;
– выбирает банк регистров 0 и банк памяти программ 0;
– запрещает прерывания;
– останавливает таймер/счетчик и выдачу синхросигналов на вывод T0;
– сбрасывает триггер флага таймера/счетчика TF и флаги пользователя F0 и F1.