Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Основы микропроцессорной техники 3 страница




 

Рисунок 9 – Внешние элементы тактового генератора (а) и формирование синхросигналов (б) в микропроцессоре К1821ВМ85А

 

Синхронизация и последовательность действий МП К1821ВМ85А

 

Командный цикл КЦ (рисунок 10, а) начинается с выборки команды (Opcode Fetch, OF). Первый машинный цикл М1 всегда OF, в нем МП получает первый байт команды. После этого могут быть еще один или два машинных цикла типа MR (Memory Read), поскольку команда может быть однобайтной, двухбайтной или трехбайтной.

Если команда трехбайтная, то она хранится в памяти, как показано на рисунке 10, б. Первый байт содержит код операции (КОП), сведения о способе адресации, а если команда однобайтная, то и адрес операнда. Наличие адреса возможно для операций типа «регистр-регистр» с короткими адресами. Для адресации восьми регистров общего назначения достаточны трехразрядные адреса, а для адресации регистровых пар даже двухразрядные. Второй байт содержит младший полуадрес операнда или младший байт операнда, если команда трехбайтная, или непосредственный операнд либо адрес ВУ, если команда двухбайтная. Третий байт содержит старший полуадрес операнда или старший байт непосредственных данных при загрузке пары регистров. Адреса регистров и регистровых пар указаны в таблице 2.

 

КЦ   b1 N – 2
М1 М2 М3   b2 N – 1
Т1 Т2 Т3 Т4 Т1 Т2 Т3 Т1 Т2 Т3   b3 N
а)   б)  
                         

 

Рисунок 10 – Циклы и такты микропроцессора К1821ВМ85А (а) и пример размещения команды в памяти микропроцессорной системы (б)

 

Таблица 2 – Адреса регистров и регистровых пар МП К1821ВМ85А

 

Регистры Пары регистров
B C D E H L A B D H SP
                     

 

После выборки и декодирования команды могут понадобиться дополнительные машинные циклы для ее выполнения. Всего в командном цикле может быть от одного до пяти машинных циклов.

Машинный цикл состоит из тактов, в которых выполняются типовые действия, рассмотренные ниже. Число тактов в различных машинных циклах – 3…6. Большинство машинных циклов содержат три такта. В командном цикле может содержаться от 4 до 18 тактов.

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

Проиллюстрируем сказанное примером выполнения команды STA b3b2 (Store Accumulator Direct), передающей содержимое аккумулятора в ячейку памяти при прямой адресации, т.е. указании адреса ячейки в самой команде. Для передачи трехбайтной команды в МП требуются три машинных цикла, в первом из которых байт b1 передается в регистр команд IR, в последующих байты b2 и b3 передаются в регистры временного хранения W и Z. После получения всей команды МП выполняет ее, передавая байт из аккумулятора в ячейку памяти, адрес которой поступил в МП. Таким образом, командный цикл состоит из четырех машинных циклов, выполняемых в следующем порядке: OF-MR-MR-MW.

Каждый машинный цикл делится на такты (состояния) – интервалы между одноименными фронтами тактовых импульсов CLK.

Типовые действия, выполняемые в тактах различных машинных циклов:

T1 адрес памяти или ВУ выставляется на АD7…0 и А15…8, генерируется сигнал ALE для фиксации битов АD7…0. На линиях , S1 и S0 выставляется информация, определяющая тип цикла. Проверяется флаг HALT;

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

Tw появляется при неготовности памяти или ВУ к обмену (на линии READY низкий уровень напряжения). Состояния линий адресов, данных и управления остаются теми же, что и в конце такта. Сигнал READY проверяется в каждом такте ожидания;

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

T4 декодируется содержимое регистра команд;

T5,6 используются при необходимости для завершения некоторых команд. Системные шины не используются.

Машинный цикл всегда содержит такты T1…T3, иногда имеет большее число тактов, но для чтения или записи требуется только три такта. Временные диаграммы цикла чтения с тактом ожидания приведены на рисунке 11.

 

Система прерываний

 

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

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

 

Рисунок 11 – Временные диаграммы цикла чтения микропроцессора К1821ВМ85А

 

Микропроцессор К1821ВМ85А имеет пять входов запросов прерывания и один выход управления им . Прерывание должно ввести в действие команду CALL, согласно которой состояние программного счетчика PC передается в стек, а в PC загружается адрес подпрограммы, подлежащей выполнению. Инициатива ввода команды CALL принадлежит аппаратным средствам микропроцессорной системы. Если прерывания разрешены, то они осуществляются микропроцессором в конце выполнения текущей команды.

Входы МП, связанные с прерываниями, называются TRAP; RST 5,5; RST 6,5; RST 7,5; INTR. При организации прерываний решаются задачи маскирования запросов и определяются их уровни приоритета при конфликтах из-за одновременного поступления нескольких запросов.

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

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

Начальный адрес подпрограммы обслуживания прерывания TRAP размещен в фиксированной ячейке памяти с адресом 24 H. Таким образом, появление запроса прерывания по входу TRAP независимо ни от чего вызовет соответствующее прерывание после завершения выполнения текущей команды.

Обозначение входов RSTn (n = 5,5; 6,5; 7,5) происходит от слова Restart. Прерывания по этим входам маскируемые, т.е. могут быть разрешены или запрещены командами EI (Enable Interrupt) и DI (Disable Interrupt), действующими на все три входа одновременно. Начальный сброс микропроцессора запрещает обслуживание этих запросов, для их последующего разрешения следует подать команду EI. Имеется также возможность раздельного маскирования запросов RSTn с помощью специальной команды SIM (Set Interrupt Mask), по которой маски устанавливаются в соответствии со значениями битов А0…А2 содержимого аккумулятора. Загрузив предварительно 1 в соответствующий бит, можно запретить (замаскировать) тот или иной вход. Приоритеты входов RSTn фиксированы, они снижаются в порядке RST 7,5; RST 6,5; RST 5,5. Начальные адреса подпрограмм обслуживания прерываний типа RSTn заканчиваются загрузкой в программный счетчик числа 8n. Цифры 5,5; 6,5 и 7,5 определяют начальные адреса 002C H, 0034 H и 003C H. Иными словами, для входов этого типа векторы прерывания определяются автоматически, и их не требуется передавать в МП из внешних устройств.

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

Вход RST 7,5 является динамическим, реагирует на положительный фронт сигнала, а входы RST 6,5 и RST 5,5 – статические, реагируют на уровень сигнала и, следовательно, автоматически снимаются при исчезновении запросов по этим входам. Запрос RST 7,5, принимаемый триггером с динамическим входом, после снятия сигнала запроса не снимается и сохраняется, пока не будет обработано прерывание или до команды SIM или RESET.

При поступлении запроса по входу INTR (Interrupt Request) вектор прерывания должен быть передан в МП извне. К этому входу, в частности, подключают контроллер прерываний – блок, который воспринимает несколько запросов от внешних устройств, решает задачу приоритетности и маскирований и вырабатывает для МП единственный сигнал INTR, с пересылкой в МП соответствующего вектора прерывания. В данном случае также выполняется команда RSTn, но n зависит от источника прерываний. Появление запроса INTR при разрешенных прерываниях ведет к ответу микропроцессора сигналом , во время действия которого на шине АD7…0 появляется вводимый байт начального адреса подпрограммы. Сигнал при этом поступает на входы разрешения выхода буферных усилителей и обеспечивает передачу вектора прерывания в МП (рисунок 12).

 

 

Рисунок 12 – Аппаратная реализация пересылки байта при выполнении операции рестарта

 

Во время обработки прерываний, пока не выполнится команда EI, запрещаются другие прерывания, кроме TRAP. Немаскируемое же прерывание TRAP блокирует другие прерывания, но сохраняет состояние разрешения поступившего уже сигнала прерывания.

 

Последовательный ввод-вывод

 

Микропроцессор имеет два вывода для передач последовательных данных SOD и SID (Serial Output Data и Serial Input Data).

Вывод SOD управляется командой SIM, а сигнал с вывода SID считывается командой RIM. Эти команды упоминались ранее как команды установки и сброса масок для входов прерываний RSTn, они же используются и для управления последовательным вводом-выводом.


При выводе до выполнения команды SIM в аккумуляторе формируется слово, биты которого интерпретируются, как показано в таблице 3.

 

Таблица 3 – Описание разрядов регистра-аккумулятора при последовательном

выводе

 

Номер бита                
Обозначение SOD SOE X R 7,5 MSE M 7,5 M 6,5 M 5,5

 

Номер бита Обозначение бита Назначение бита
  SOD (Serial Output Date) Данные для последовательного вывода из МП с выхода SOD
  SOE (Serial Input Enable) Единичное значение бита передает последовательные данные SOD на соответствующий выход МП
  X Не используется
  R 7,5 Сбрасывает вход RST 7,5
  MSE (Mask Set Enable) Единичное значение бита разрешает действие битов 2…0
2…0 M 7,5…M 5,5 Единичное значение бита маскирует запросы прерывания RST 7,5…RST 5,5

Например, установка SOD = 1, разрешение RST 6,5, сброс триггера RST 7,5 и маскирование RST 5,5 будут выполнены двумя командами по программе:

MVI A, b2; установка битов аккумулятора

SIM; изменение масок и бита SOD

Команда MVI A, b2 пересылает в аккумулятор байт b2, который в данном случае имеет вид 1 1 ´ 1 1 1 0 1.

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

 


Таблица 4 – Описание разрядов регистра-аккумулятора при последовательном

вводе

 

Номер бита                
Обозначение SID I 7,5 I 6,5 I 5,5 IE M 7,5 M 6,5 M 5,5

 

Номер бита Обозначение бита Назначение бита
  SID (Serial Input Date) Последовательные данные на входе SID
6…4 I 7,5; I 6,5; I 5,5 Логические уровни на выводах RST 7,5; RST 6,5 и RST 5,5 соответственно
  IE (Interrupt Enable) Значение бита показывает, какая из команд EI и DI выполнялась последней, на него влияет также наличие в данное время режима прерывания, поскольку он сопровождается сбросом триггера IE, запрещая другие прерывания
2…0 M 7,5…M 5,5 Индицирует текущее состояние масок прерывания

 

Система команд МП К1821ВМ85А

 

Команды МП приведены в таблице 5. В первой графе таблицы даны мнемокоды команд с обозначениями регистров через r, пар регистров через rp, ячеек памяти через M, третьего и второго байтов команды через b3b2, адресов ВУ через port. Ссылки на ячейки памяти M подразумевают косвенную регистровую адресацию: адреса этих ячеек берутся из регистровой пары H (регистров H и L) и, следовательно, не нуждаются в указании в самой команде.

 

Таблица 5 – Система команд МП К1821ВМ85А

 

Мнемокод Код Флажки Число Содержание
байтов тактов циклов
             
Команды пересылки
MOV r1, r2 01ПППИИИ       Пересылка из регистра r2 в регистр r1
MOV M, r 01110ИИИ       Пересылка из регистра в память
MOV r, M 01ППП110       Пересылка из памяти в регистр
MVI r, b2 00ППП110       Пересылка непосредственных данных в регистр

Продолжение таблицы 5

 

Мнемокод Код Флажки Число Содержание
байтов тактов циклов
             
Команды пересылки
MVI M, b2         Пересылка непосредственных данных в память
LXI rp,b3b2 00ПР0001       Загрузка непосредственных данных в пару регистров
LDA b3b2 3A       Прямая загрузка аккумулятора
STA b3b2         Прямая запись аккумулятора в память
LHLD b3b2 2A       Прямая загрузка пары регистров H
SHLD b3b2         Прямая загрузка пары регистров H в память
LDAX rp 00ПР1010       Косвенная загрузка аккумулятора посредством пары регистров B или D
STAX rp 00ПР0010       Косвенная запись аккумулятора в память посредством пары регистров B или D
XCHG EB       Обмен между парами регистров H и D
Команды арифметических и логических операций
ADD r 10000ИИИ +       Сложение регистра и аккумулятора
ADD M   +       Сложение памяти и аккумулятора
ADI b2 C6 +       Сложение непосредственных данных и аккумулятора
ADC r 10001ИИИ +       Сложение регистра и аккумулятора с переносом

Продолжение таблицы 5

 

Мнемокод Код Флажки Число Содержание
байтов тактов циклов
             
Команды арифметических и логических операций
ADC M 8E +       Сложение памяти и аккумулятора с переносом
ACI b2 CE +       Сложение непосредственных данных и аккумулятора с переносом
SUB r 10010ИИИ +       Вычитание регистра из аккумулятора
SUB M   +       Вычитание памяти из аккумулятора
SUI b2 D6 +       Вычитание непосредственных данных из аккумулятора
SBB r 10011ИИИ +       Вычитание регистра из аккумулятора с заемом
SBB M 9E +       Вычитание памяти из аккумулятора с заемом
SBI b2 DE +       Вычитание непосредственных данных из аккумулятора с заемом
INR r 00ППП100 (+)       Инкремент регистра
INR M   (+)       Инкремент памяти
DCR r 00ППП101 (+)       Декремент регистра
DCR M   (+)       Декремент памяти
INX rp 00ПР0011       Инкремент пары регистров
DCX rp 00ПР1011       Декремент пары регистров
DAD rp 00ПР1001 C       Сложение регистровой пары H с регистровой парой

Продолжение таблицы 5

 

Мнемокод Код Флажки Число Содержание
байтов тактов циклов
             
Команды арифметических и логических операций
DAA   +       Преобразование аккумулятора в двоично-десятичный код
ANA r 10100ИИИ +       Логическое И регистра и аккумулятора
ANA M A6 +       Логическое И памяти и аккумулятора
ANI b2 E6 +       Логическое И непосредственных данных и аккумулятора
XRA r 10101ИИИ +       Исключающее ИЛИ регистра и аккумулятора
XRA M AE +       Исключающее ИЛИ памяти и аккумулятора
XRI b2 EE +       Исключающее ИЛИ непосредственных данных и аккумулятора
ORA r 10110ИИИ +       Логическое ИЛИ регистра и аккумулятора
ORA M B6 +       Логическое ИЛИ памяти и аккумулятора
ORI b2 F6 +       Логическое ИЛИ непосредственных данных и аккумулятора
CMP r 10111ИИИ +       Сравнение регистра и аккумулятора
CMP M BE +       Сравнение памяти и аккумулятора

Продолжение таблицы 5

 

Мнемокод Код Флажки Число Содержание
байтов тактов циклов
             
Команды арифметических и логических операций
CPI b2 FE +       Сравнение непосредственных данных и аккумулятора
CMA 2F       Инвертирование аккумулятора
STC   C       Установка флажка переноса
CMC 3F C       Инвертирование флажка переноса
RLC   C       Циклический сдвиг аккумулятора влево
RRC 0F C       Циклический сдвиг аккумулятора вправо
RAL   C       Циклический сдвиг аккумулятора влево через разряд переноса
RAR 1F C       Циклический сдвиг аккумулятора вправо через разряд переноса
Команды управления
JMP b3b2 C3       Безусловный переход
Jусл b3b2 11УУУ010       Условный переход
CALL b3b2 CD       Безусловный вызов подпрограммы
Cусл b3b2 11УУУ100   11/18 3/5 Условный вызов подпрограммы
RET C9       Возврат
Rусл 11УУУ000   5/11 1/3 Возврат при условии
RST n 11nnn111       Повторный запуск
SPHL F9       Пересылка пары регистров H в SP

Окончание таблицы 5

 

Мнемокод Код Флажки Число Содержание
байтов тактов циклов
             
Специальные команды
PUSH rp 11РП0101       Пересылка пары регистров в стек
PUSH PSW F5       Пересылка аккумулятора и регистра флажков в стек
POP rp 11РП0001       Загрузка регистровой пары из стека
POP PSW F1 +       Загрузка аккумулятора и регистра флажков из стека
XTHL E3       Обмен между регистровой парой H и стеком
PCHL E9       Пересылка регистровой пары H в PC
IN port DB       Ввод
OUT port D3       Вывод
EI FB       Разрешение прерывания
DI F3       Запрещение прерывания
HLT         Останов
NOP         Нет операции
RIM         Чтение маски прерывания
SIM         Запись маски прерывания

 




Поделиться с друзьями:


Дата добавления: 2015-03-29; Просмотров: 1057; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.035 сек.