- •А. В. Поздняков, б. Я. Цилькер микропроцессоры и микропроцессорные системы
- •Часть 1
- •(Учебное пособие)
- •Содержание
- •1. Микропроцессорные системы
- •1.1. Историческая справка
- •1.2. Архитектура мпс с магистрально-модульной организацией
- •1.3. Режимы работы мпс
- •2.1. Центральный процессор
- •2.1.1. Классификация микропроцессоров
- •2. Микропроцессорный модуль
- •2.1.2. Структура центрального процессора
- •2.1.2.1. Краткая характеристика микропроцессора Intel 8086
- •2.1.2.2. Архитектура микропроцессора Intel 8086
- •2.1.2.3. Программная модель микропроцессора Intel 8086
- •2.1.2.4. Представление информации в мп Intel 8086
- •2.1.2.5. Способы адресации операндов в мп Intel 8086
- •2.1.2.6. Система команд мп Intel 8086
- •2.1.2.7. Содержание цикла команды, типовые машинные циклы мп Intel 8086
- •2.1.2.8. Входные и выходные сигналы мп Intel 8086
- •2.2. Сопроцессор
- •2.3. Генератор тактовых импульсов
- •2.4. Системный контроллер
- •2.5. Согласующие элементы микропроцессорных систем
- •2.5.1. Шинные формирователи
- •2.5.2. Буферные регистры
- •2.6. Контроллер прерываний
- •2.7. Контроллер прямого доступа к памяти
- •2.8. Программируемый таймер
- •3. Модуль памяти
- •3.1. Организация модуля памяти
- •3.2. Распределение адресного пространства зу
- •3.3. Декодирование старших разрядов адреса.
- •3.3.1. Декодирование адресов методом линейной выборки
- •3.3.2. Декодирование адресов с помощью логических компараторов
- •3.3.3. Декодирование адресов с применением комбинационных логических схем
- •3.4. Выбор типа зу
- •3.5. Функциональная схема модуля памяти
- •3.6. Обеспечение необходимой емкости зу
- •3.6.1. Увеличение разрядности зу
- •3.6.2. Увеличение адресного пространства зу
- •4. Модуль ввода-вывода
- •4.1. Интерфейс ввода-вывода
- •4.2. Параллельные порты
- •4.2.1. Параллельный порт вывода
- •4.2.2. Параллельный порт ввода
- •4.2.3. Параллельные порты ввода-вывода
- •4.3. Последовательные порты
- •4.3.1. Последовательный асинхронный порт вывода
- •4.3.2. Последовательный асинхронный порт ввода
- •4.3.3. Программируемый последовательный интерфейс
- •4.4. Организация обращения к портам ввода/вывода
- •4.4.1. Обращение к портам ввода/вывода с помощью специальных команд
- •4.4.2. Обращение к портам ввода/вывода с помощью команд пересылок
- •4.5. Способы организации ввода/ вывода информации в мпс
- •4.5.1. Организация ввода/вывода информации под управлением основной программы
- •4.5.2. Организация ввода/вывода в режиме прерывания программы
- •4.5.3. Организация ввода/вывода в режиме прямого доступа к памяти
- •Система команд микропроцессора Intel 8086 Команды пересылки данных
- •Арифметические команды
- •Логические команды
- •Команды передачи управления
- •Команды управления процессором
- •Команды обработки строк
- •Литература
2.1.2.6. Система команд мп Intel 8086
Микропроцессор Intel 8086 относится к микропроцессорам с макропрограммным управлением с CISC системой команд. Система команд включает 133 базовые команды и позволяет обрабатывать как 8-разрядные, так и 16-разрядные данные. Команды можно разделить на следующие типы:
команды пересылки данных;
арифметические команды;
логические команды и команды сдвига;
команды передачи управления;
команды управления процессором;
команды обработки строк.
Перечень команд микропроцессора Intel 8086 приведен в приложении [ПИЛЬ98].
2.1.2.7. Содержание цикла команды, типовые машинные циклы мп Intel 8086
Время выполнения одной команды называется циклом команды. Цикл команды складывается из машинных циклов. Машинный цикл – временной интервал, в течение которого выполняется одно обращение к памяти или устройству ввода-вывода.
Микропроцессор Intel 8086 имеет 7 типовых машинных циклов:
выборка кода команды;
чтение из памяти;
запись в память;
чтение из порта ввода;
запись в порт вывода;
подтверждение прерывания;
останов.
Выполнение любой команды начинается с выполнения машинного цикла «Выборка кода команды».
Машинные циклы, в свою очередь, состоят из машинных тактов. Машинный такт – временной интервал, в течение которого выполняется одна микрооперация. Длительность машинного такта в МП Intel 8086 равна периоду следования тактовых импульсов, поданных на вход CLK (частота 4,77–10 МГц). Машинный цикл микропроцессора состоит по крайней мере, из четырех тактов: T1, T2, T3 и T4 (см. рис. 2.15, 2.16).
На первом
машинном такте T1 микропроцессор выдает
20-разрядный адрес на мультиплексированную
шину AD0–AD15 и выводы A16–A19. Внешние
устройства требуют наличия адреса на
ША в течение всего машинного цикла.
Микропроцессор формирует сигнал STB, по
срезу которого вначале машинного такта
T2, необходимо зафиксировать адрес в
формир
ователях
шины адреса.
Рис. 2.15. Цикл чтения
Р
ис.
2.16. Цикл записи
На втором такте T2 на выводах A16–A19 выдается информация о состоянии микропроцессора.
В машинном цикле записи информации микропроцессор выдает и поддерживает данные на шине AD0–AD15 на интервале T2, T3, T4.
В машинном цикле чтения на интервале T2 шины AD0–AD15 переводятся в Z-состояние. На тактах T3, T4 микропроцессор принимает данные по магистрали AD0-AD15.
В такте T3 микропроцессор анализирует состояние информации на входе READY. Если на нем присутствует сигнал логического «0», то после такта T3 микропроцессор переходит в состояние ожидания, формируя такт ожидания Tw. В такте ожидания Tw микропроцессор вновь проверяет сигнал на выводе READY. При нулевом значении сигнала МП выполняет еще один такт ожидания Tw, а при единичном значении сигнала МП переходит к выполнению такта T4 машинного цикла.
2.1.2.8. Входные и выходные сигналы мп Intel 8086
Корпус микросхемы Intel 8086 имеет сорок выводов, которые используются следующим образом (см. рис. 2.2б):
AD0–AD15 – тристабильная 16-разрядная двунаправленная мультиплексированная шина адреса-данных. В такте T1 по ней передается адрес ячейки памяти или устройства ввода-вывода, а в тактах T2, T3, TОЖ и T4 – данные;
A16/ST3–A19/ST6 – тристабильная 4-разрядная выходная шина микропроцессора. В такте T1 по ней передаются четыре старших разряда адреса памяти. В тактах T2–T4 при выполнении операций обращения к памяти и устройствам ввода-вывода – признаки состояния микропроцессора: ST4 и ST3 кодируют номер одного из четырех сегментных регистров, который в данном цикле участвует в формировании адреса (см. табл. 2.1.); ST5 указывает на состояние бита разрешения прерывания IF регистра флагов; ST6=0;
B
HE/ST7
–
тристабильный выход разрешения передачи
данных по старшей половине шины AD.
Нулевой сигнал в такте T1 обозначает,
что 8-разрядное слово данных передается
по линиям AD8–AD15.
В тактах T2, T3, T4 на выходе присутствует
признак ST7
состояния микропроцессора. ST7
постоянно равен 0, а при переключении
микропроцессора в режим захвата ST7
переходит в режим высокого сопротивления;
Таблица 2.1. Кодировка номера сегментного регистра
ST4 |
ST3 |
Тип регистра |
0 |
0 |
ES |
0 |
1 |
CS или никакой |
1 |
0 |
SS |
1 |
1 |
DS |
R
– тристабильный выход сигнала чтения.
Нулевой сигнал указывает на то, что
микропроцессор принимает информацию
из памяти или устройства ввода;RDY – вход сигнала готовности. Используется для синхронизации работы микропроцессора с устройствами, имеющими меньшее быстродействие;
T
EST
– вход сигнала проверки. Информация
на входе анализируется командой WAIT.
Если сигнал на входе равен “0”, то
выполнение программы продолжается, в
противном случае микропроцессор
переводится в состояние ожидания до
прихода нулевого сигнала ;INT – вход маскируемого запроса прерывания;
NMI – вход немаскируемого запроса прерывания (по положительному перепаду на входе);
CLR – вход сигнала начальной установки микропроцессора. По фронту сигнала МП прекращает выполнение всех внутренних операций, по срезу сигнала – МП продолжает работу с новым содержанием регистров, указанных в табл. 2.2;
CLK – вход тактовых сигналов синхронизации;
M
N/MX
– вход сигнала управления режимом
работы МП. При “1” обеспечивается
минимальная конфигурация МПС, при “0”
– максимальная;
Таблица 2.2. Содержание регистров после сигнала начальной установки
Регистры |
Содержание |
IP |
0000 |
CS |
FFFF |
DS |
0000 |
SS |
0000 |
ES |
0000 |
Флаги |
Обнулены |
Конвейер команд |
Пуст |
Ucc – вход для подачи напряжения питания +5 В;
GND – вход для подключения отрицательного вывода источника питания (используются два вывода микросхемы).
Ф
ункциональное
назначение остальных 8 выводов МП
определяется значением сигнала на входе
MN/MX.
П
ри
MN/MX=1 обеспечивается минимальная
конфигурация МПС и микропроцессор
имеет:
W
– тристабильный выход сигнала записи.
Низкий уровень сигнала указывает
на то, что МП выдает информацию для
записи в память или вывода через УВВ;M /IO – тристабильный выход сигнала обращения к памяти или УВВ. Сигнал позволяет отличить передачу информации между МП и памятью (”1”) от передачи между МП и УВВ (“0”);
O
P/IP
– тристабильный выход направления
передачи информации между МП и ЗУ или
УВВ. При ”1” микропроцессор выдает
информацию, а при “0” – принимает
информацию. Этот сигнал обычно
используется для управления шинными
формирователями;D E – тристабильный выход сигнала разрешения передачи данных. Низкий уровень сигнала выдается в каждом цикле обращения к ЗУ или УВВ и в циклах подтверждения прерывания;
STB – выход строба адреса. Сигнал в такте T1 стробирует передачи адресной информации с шины AD0–AD15 на другие устройства.
I
NTA
– выход сигнала подтверждения прерывания.
Низкий уровень сигнала стробирует ввод
в МП информации из источника, вызвавшего
прерывание;HLD – вход сигнала запроса режима захвата;
HLDA – выход сигнала подтверждения захвата. Сигнал сопровождает перевод шин МП в высокоимпедансное состояние.
П ри MN/MX=0 обеспечивается максимальная конфигурация МПС и микропроцессор имеет:
ST0–ST2 – тристабильные выходы состояния МП. Сигналы на выходах формируются в тактах T4, T1 и T2 и указывают на тип машинного цикла (см. табл. 2.3.). Во время такта T3 на этих выходах выставляется комбинация 111;
Таблица 2.3. Кодирование типов машинных циклов
ST2 |
ST1 |
ST0 |
Тип машинного цикла |
0 |
0 |
0 |
Подтверждение прерывания |
0 |
0 |
1 |
Чтение из порта ввода |
0 |
1 |
0 |
Запись в порт вывода |
0 |
1 |
1 |
Останов |
1 |
0 |
0 |
Выборка кода команды |
1 |
0 |
1 |
Чтение из памяти |
1 |
1 |
0 |
Запись в память |
1 |
1 |
1 |
Не используется |
R
1/E1,
R0/E0 – двунаправленные выводы сигналов
запроса/разрешения доступа к шинам МП.
Предназначены для обеспечения захвата
шин другими устройствами. Выводы
функционально однотипны, но нулевой
вывод имеет более высокий приоритет;
L
OCK
– тристабильный выход сигнала блокировки
системного канала. При “0” другие
устройства не могут захватить шины МП;
QS1, QS0 – выходы сигналов состояния памяти конвейера команд (см. табл. 2.4.).
Таблица 2.4. Кодирование состояния конвейера команд
QS1 |
QS0 |
Текущая операция с конвейером |
0 |
0 |
Нет операции |
0 |
1 |
Конвейер очищен |
1 |
0 |
Извлекается первый байт команды из конвейера |
1 |
1 |
Извлекается очередной байт команды из конвейера |
