- •К.А. Палагута Микропроцессоры и интерфейсные средства транспортных средств
- •Москва 2011
- •Глава 1. Микропроцессор (мп), микропроцессорная система (мпс), основные понятия 11
- •Глава 2 Режимы работы мпс 33
- •Глава 3. Реализация и организация памяти мп 57
- •Глава 4. Микропроцессор кр580вм80а (Intel 8080) 77
- •Глава 5. Микропроцессор к1810вм86 (Intel 8086) 138
- •Глава 6. Микропроцессоры Intel от 80186 до Pentium 4 159
- •Глава 7. Микропроцессор к1801вм1, магистраль q-bus 209
- •Глава 8. Понятие и задачи интерфейса 239
- •Глава 9. Интерфейсные блоки для магистралей isa и q-bus 255
- •Глава 10. Промышленные интерфейсы. Сетевые протоколы в автомобиле 308
- •Глава 11. Интегральные схемы программируемой логики (ис пл) 326
- •Предисловие
- •Введение
- •Глава 1. Микропроцессор (мп), микропроцессорная система (мпс), основные понятия
- •1.1 Определение микропроцессора, классификация мп
- •1.2 Микропроцессорный комплект (мпк)
- •1.3 Микропроцессорная система
- •1.4 Линия, шина, магистраль
- •1.5 Типы магистралей
- •1.6 Шина адреса, раздельные и объединенные адресные пространства памяти и устройств ввода-вывода
- •1.7 Шина данных
- •1.8 Шина управления
- •1.9 Архитектура и структура микропроцессора
- •1.10 Cisc и risc процессоры, конвейерное выполнение команд программы
- •1.11 Конвейерная обработка данных
- •1.12 Контрольные вопросы и задания
- •Глава 2 Режимы работы мпс
- •2.1 Режим обмена данными под управлением процессора
- •2.2 Режим пдп
- •2.3 Режим прерывания
- •2.4 Контрольные вопросы и задания
- •Глава 3. Реализация и организация памяти мп
- •3.1. Виды запоминающих устройств (зу)
- •3.2. Кэш-память
- •3.3. Когерентность, механизмы сквозной и обратной записи
- •3.4. Алгоритмы обновления содержимого заполненных строк, снуппинг
- •3.5. Организация памяти
- •3.6. Внешние зу
- •3.7. Контрольные вопросы и задания
- •Глава 4. Микропроцессор кр580вм80а (Intel 8080)
- •4.1 Структура мп к580вм80
- •4.2 Основные технические характеристики мп кр580вм80а
- •4.3 Регистровая модель мп к580вм80
- •4.4 Классификация команд мп кр580вм80а
- •4.5 Команды пересылки (перемещения) данных
- •4.5.1 Пересылка из регистра в регистр
- •4.5.2 Непосредственная пересылка
- •4.5.3 Непосредственная загрузка пары регистров
- •4.5.4 Запоминание/загрузка аккумулятора и пары hl
- •4.5.5 Ввод из пары регистров в стек
- •4.5.6 Ввод а и f в стек
- •4.5.7 Выбор из стека пары регистров
- •4.5.8 Выбор (a) и (f) из стека
- •4.5.9 Обмен данными
- •4.5.10 Пересылка нl
- •4.6 Приращение / отрицательное приращение
- •4.6.1 Приращение/отрицательное приращение регистра
- •4.6.2 Приращение пары регистров
- •4.6.3 Отрицательное приращение пары регистров
- •4.7 Арифметические и логические операции
- •4.7.1 Арифметические операции над (a) и (r)
- •4.7.2 Арифметические операции с непосредственной адресацией
- •4.7.3 Сложение содержимого пар регистров
- •4.7.4 Логические операции над (а) и (r)
- •0800) Ora c
- •4.7.5 Логические операции с непосредственной адресацией
- •4.7.6 Операции сравнения
- •4.7.7 Операции циклического сдвига (а).
- •4.7.8 Дополнение аккумулятора
- •4.8 Команды перехода и вызова подпрограмм
- •4.8.1 Команды переходов
- •4.8.2 Команды вызова подпрограмм и возврата из подпрограмм
- •4.9 Команды ввода – вывода
- •4.9.1 Ввод данных из входного порта
- •4.9.2 Вывод данных в выходной порт
- •4.10 Команды управления
- •4.10.1 Рестарт (повторный запуск)
- •4.10.2 Изменение (Тс)
- •0800) Stc
- •0800) Cmc
- •4.10.3 Управление прерываниями
- •4.10.4 Двоично-десятичная коррекция
- •4.10.5 Пустая операция
- •4.10.6 Останов
- •4.11 Микропроцессор intel8085
- •4.11.1 Архитектура мп intel8085
- •4.11.2 Регистры мп Intel 8085
- •4.11.3 Ввод и вывод последовательных данных
- •4.12 Контрольные вопросы и задания
- •Глава 5. Микропроцессор к1810вм86 (Intel 8086)
- •5.1. Устройство и работа микропроцессора Intel 8086 (k1810bm86)
- •5.1.1. Структура микропроцессора Intel 8086
- •5.1.2. Режимы работы микропроцессора
- •5.1.3. Структура минимально укомплектованной системы на базе микропроцессора к1810вм86
- •5.1.4. Структура системы средней сложности на базе микропроцессора к1810вм86
- •5.2. Программная модель микропроцессора Intel 8086
- •5.2.1. Пользовательские регистры
- •5.2.2. Регистры общего назначения
- •5.2.3. Сегментные регистры
- •5.2.4. Регистры состояния и управления
- •5.3. Формирование физического адреса в микропроцессоре Intel 8086
- •5.4 Способы адресации микропроцессора
- •5.5 Контрольные вопросы и задания
- •Глава 6. Микропроцессоры Intel от 80186 до Pentium 4
- •6.1. Архитектура микропроцессоров 80186/80188
- •6.2. Микропроцессор 80286
- •6.2.1 Аппаратные особенности
- •6.2.2 Система команд
- •6.2.3. Виртуальная память
- •6.3. Микропроцессоры 80386 и 80486
- •6.3.1. Микропроцессор 80386
- •6.4. Микропроцессоры Pentium и Pentium Pro
- •6.5. Специальные регистры микропроцессора Pentium
- •6.6. Управление памятью микропроцессора Pentium
- •6.7. Новые команды микропроцессора Pentium
- •6.8. Специальные особенности микропроцессора Pentium Pro
- •6.9. Микропроцессоры Pentium II, Pentium III и Pentium 4
- •6.9.1. Сопряжение с памятью
- •6.9.2. Набор регистров
- •6.11 Контрольные вопросы и задания
- •Глава 7. Микропроцессор к1801вм1, магистраль q-bus
- •7.1 Микропроцессор к1801вм1
- •7.1.1 Структурная схема микропроцессора к1801вм1
- •7.1.2 Основные технические характеристики
- •7.1.3 Регистровая модель микропроцессора
- •7.1.4 Адресное пространство
- •7.1.5 Формат команд
- •7.1.6 Методы адресации
- •7.2. Системная магистраль q-Bus
- •7.2.1 Временная диаграмма цикла ввод
- •7.2 2 Временная диаграмма цикла вывод
- •7.2.3 Цикл ввод-пауза-вывод
- •7.2.4 Временная диаграмма предоставления прямого доступа к памяти
- •7.2.5 Временная диаграмма прерывания
- •7.3 Контрольные вопросы и задания
- •Глава 8. Понятие и задачи интерфейса
- •8.1 Интерфейс
- •8.2 Селекция магистралей
- •8.2.1 Схемы централизованной селекции
- •8.2.2 Схемы децентрализованной селекции
- •8.3 Синхронизация обмена по магистрали
- •8.4 Координация взаимодействия устройств на магистрали
- •8.5 Контрольные вопросы и задания
- •Глава 9. Интерфейсные блоки для магистралей isa и q-bus
- •9.1 Isa
- •9.2. Порядок обмена по системной магистрали isa
- •9.2.1. Особенности магистрали isa
- •9.2.2. Сигналы магистрали isa
- •9.2.3. Циклы магистрали isa
- •9.3 Разработка устройств сопряжения для isa
- •9.3.1. Проектирование аппаратуры для сопряжения с isa
- •9.4 Разработка устройств сопряжения для q-bus
- •9.5 Контрольные вопросы и задания
- •Глава 10. Промышленные интерфейсы. Сетевые протоколы в автомобиле
- •10.1 Промышленные Fieldbus (полевые) сети
- •10.1.1 Модель osi (Open System Interconnection) (iso/osi) для стандартов.
- •10.1.2 Локальная сеть на основе интерфейса rs-485, объединяющая несколько приемо-передатчиков.
- •10.2 Этапы развития fieldbus технологий
- •10.3 Сетевые протоколы в автомобиле
- •10.4 Контрольные вопросы и задания
- •Глава 11. Интегральные схемы программируемой логики (ис пл)
- •11.1. Классификация ис программируемой логики
- •11.2. Конструктивно-технологические типы современных программируемых элементов
- •11.3. Области применения микросхем с программируемой логикой
- •11.4 Системные свойства ис пл
- •11.5 Типовые схемотехнические решения
- •11.6 Приемы дополнительной обработки сигнала
- •11.7 Организация двунаправленных выводов
- •11.8 Схема программирования типа выхода ячейки (введение триггера)
- •11.9 Fpga (программируемые пользователем вентильные матрицы)
- •11.10. Полные ресурсы межсоединений в микросхемах cpld
- •11.11 Контрольные вопросы и задания
- •Заключение
- •Глоссарий
- •Список литературы
4.8.2 Команды вызова подпрограмм и возврата из подпрограмм
С помощью команд переходов последовательность выполнения команд программы может быть изменена путем перехода к новой последовательности. Однако команда перехода сама по себе не позволяет вернуться в то место главной программы, откуда был осуществлен переход. Это можно легко сделать с помощью команды вызова подпрограммы. Подпрограмма представляет собой фрагмент программы, обращение к которой может иметь место в любой точке главной программы. Когда происходит вызов подпрограммы, то в начале своего выполнения она реализует действия по запоминанию текущего содержимого счетчика команд (точка возврата) Когда выполнение подпрограммы заканчивается, то с помощью команды возврата микропроцессору указывается, что исходное содержимое счетчика команд должно быть извлечено из памяти. Этой информации микропроцессору достаточно, чтобы осуществить возврат в прерванную последовательность команд главной программы. Для запоминания точки возврата используется стек, куда записывается адрес команды, следующей за командой вызова подпрограммы.
Команды данной группы не изменяют содержимого регистра признаков.
а) Вызов подпрограммы безусловный
CALL Адрес |
[SP-1] [SP-2] (PC) <B1> |
11001101 |
|
SP (SP) -2 <B2> |
Мл. байт адреса |
|
PC <B3><B2> <B3> |
Ст. байт адреса |
|
|
7 0 |
При выполнении этой команды никаких проверок не производится, т.е. вызов подпрограммы производится в любом случае. Команда занимает три байта и выполняется за 5 машинных циклов (17 тактов).
б) Условный вызов подпрограммы
Переход к подпрограмме происходит только в том случае, если выполняется проверяемое условие. При этом:
[SP-1] [SP-2] (PC); SP (SP) –2; PC <B3><B2>
В этом случае команда выполняется за 5 циклов (17 тактов).
Если проверяемое условие не выполняется, то переход к подпрограмме не происходит и выполняется следующая команда программы с адресом PC = (PC) +3. В этом случае команда выполняется за 3 цикла (11 тактов).
Формат команды условного вызова |
B1 |
11 |
ССС |
100 | |
B2 |
Мл. байт адреса | ||||
B3 |
Ст. байт адреса | ||||
|
|
7 0 |
Значение разрядов ССС выбирается в зависимости от проверяемого условия:
Команда вызова |
Проверяемое условие |
Значение ССС |
СNZ Адрес |
(Tz) = 0 |
000 |
СZ Адрес |
(Tz) = 1 |
001 |
СNC Адрес |
(Tc) = 0 |
010 |
СC Адрес |
(Tc) = 1 |
011 |
СPO Адрес |
(Tp) = 0 |
100 |
СPE Адрес |
(Tp) = 1 |
101 |
СP Адрес |
(Ts) = 0 |
110 |
СM Адрес |
(Ts) = 1 |
111 |
в) Возврат из подпрограммы безусловный
RET |
PC [SP] [SP+1]; SP (SP) + 2 <B1> |
11001001 |
|
|
7 0 |
Команда выполняется за три машинных цикла (10 тактов).
г) Возврат из подпрограммы условный
Команда условного возврата из подпрограммы <B1> |
11 |
CCC |
000 | ||
|
7 |
0 |
Если проверяемое условие выполняется, то PC [SP] [SP-1]; SP (SP) + 2 и происходит выход из подпрограммы в точку, адрес которой записан в стеке. В этом случае команда выполняется за три машинных цикла (11 тактов). Если это условие не выполняется, то возврата не происходит и выполняется следующая команда подпрограммы, т.е.
PC = (PC) + 1
В этом случае команда выполняется в течение одного машинного цикла (5 тактов).
Значение разрядов ССС команды определяется проверяемым условием:
Команда возврата |
Проверяемое условие |
Значение ССС |
RNZ |
(Tz) = 0 |
000 |
RZ |
(Tz) = 1 |
001 |
RNC |
(Tc) = 0 |
010 |
RC |
(Tc) = 1 |
011 |
RPO |
(Tp) = 0 |
100 |
RPE |
(Tp) = 1 |
101 |
RP |
(Ts) = 0 |
110 |
RM |
(Ts) = 1 |
111 |
При выполнении команд возврата в) и г) МП извлекает из стека значение программного счетчика, при котором произошел переход из программы предыдущего уровня и загружает это значение в счетчик команд. Команде «возврат из подпрограммы» ничего не сообщается относительно того, какого уровня вложения выполняется подпрограмма и сколько раз происходил вызов этой подпрограммы. Выполняя эту команду, МП просто возвращается к тому значению программного счетчика, которое было последним загружено в стек.
Примеры:
0AF3) CALL BEEP
BEEP: 0BC0)
Адрес/ регистр |
Код до выполнения операции |
Код после выполнения операции |
0AF3 |
CD |
CD |
0AF4 |
C0 |
C0 |
0AF5 |
0B |
0B |
PC |
0AF3 |
0BC0 |
SP |
0BB0 |
0BAE |
0BAE |
00 |
F6 |
0BAF |
00 |
0A |
FL |
02 |
02 |
0BD4) RET
Адрес/ регистр |
Код до выполнения операции |
Код после выполнения операции |
0BD4 |
C9 |
C9 |
SP |
0BAE |
0BB0 |
0BAE |
F6 |
F6 |
0BAF |
0A |
0A |
PC |
0BD4 |
0AF6 |
FL |
02 |
02 |
0A12) CPO L1
L1: 0AFE)
Адрес/ регистр |
Код до выполнения операции |
Код после выполнения операции |
0A12 |
E4 |
E4 |
0A13 |
FE |
FE |
0A14 |
0A |
0A |
SP |
0BAE |
0BAC |
0BAD |
00 |
15 |
0BAC |
00 |
0A |
PC |
0A12 |
0AFE |
FL |
02 (TP=0) |
02 |
0800) CP L1
L1: 0C54)
Адрес/ регистр |
Код до выполнения операции |
Код после выполнения операции |
0800 |
F4 |
F4 |
0801 |
54 |
54 |
0802 |
0C |
0C |
SP |
0BAC |
0BAC |
PC |
0800 |
0803 |
FL |
82 (TS=1) |
82 |
3456) CC M0
M0: 0807)
Адрес/регистр |
Код до выполнения операции |
Код после выполнения операции |
3456 |
DC |
DC |
3457 |
07 |
07 |
3458 |
08 |
08 |
SP |
0BB0 |
OBAE |
0BAF |
00 |
59 |
0BAE |
00 |
34 |
PC |
3456 |
0807 |
FL |
03 (TC=1) |
03 |