- •Основы микропроцессорной техники
- •В.И. Енин
- •В.И. Енин
- •Введение
- •После изучения дисциплины необходимо знать
- •После изучения дисциплины необходимо уметь
- •В.1. Роль и место курса “Микропроцессорная техника” в учебном процессе
- •1. Микропрограммные автоматы
- •После изучения главы необходимо знать
- •1.1. Автомат без памяти
- •1.2. Микропрограммный автомат
- •1.2.1. Автомат с памятью
- •1.2.2. Микропрограммный автомат в системе управления
- •1.2.3. Структурный автомат
- •1.3. Схемная реализация микропрограммных автоматов
- •2. МикропрограмМируемые контроллеры и микропроцессоры
- •После изучения главы необходимо знать
- •2.1. Блок микропрограммного управления
- •2.2. Блок обработки цифровых данных.
- •3. Принципы организации эвм
- •После изучения главы необходимо знать
- •3.1. Выполнение команд в эвм
- •Система команд и методы адресации
- •Подпрограммы
- •3.2. Общие принципы организации ввода-вывода
- •3.2.1. Программный режим ввода-вывода
- •3.2.2. Обмен информацией в режиме прерывания программы
- •3.2.3. Прямой доступ к памяти
- •3.2.4. Подключение внешних устройств
- •4. Архитектура однокристального микропроцессора
- •После изучения главы необходимо знать
- •4.1. Архитектура микропроцессора к580ик80а
- •4.1.1. Формат команд микропроцессора к580ик80а
- •4.1.2. Методы адресации микропроцессора к580ик80а
- •4.1.3. Команды безусловной и условной передач управления
- •4.1.4. Примеры команд процессора к580ик80а
- •4.2. Организация обмена в однокристальных микроЭвм
- •4.2.1. Функционирование микропроцессора
- •4.2.2. Подключение озу и регистров внешних устройств
- •5. Системы счисления и арифметические операции над числами
- •После изучения главы необходимо знать
- •5.1. Системы счисления для представления чисел в эвм
- •5.2. Представление в эвм целых двоичных чисел без знака
- •5.3. Представление в эвм целых чисел со знаком
- •5.3.1. Представление чисел со знаком в прямом коде
- •5.3.2. Представление чисел со знаком в дополнительном коде
- •5.3.3. Особенности выполнения сложения двоичных чисел без знака и со знаком
- •1. Примеры сложения чисел без знака.
- •2. Примеры сложения чисел со знаком.
- •5.4. Двоично-десятичная система представления чисел
- •5.5. Представление чисел в формате с плавающей точкой
- •Примеры представления чисел типа single
- •Примеры представления чисел типа real
- •6. Семейство процессоров х86
- •После изучения главы необходимо знать
- •6.1. Архитектура процессора 8086
- •Регистры процессора
- •Инструкции процессора
- •Сегментация памяти
- •Методы адресации
- •Распределение памяти
- •Прерывания
- •Функционирование
- •6.2. Процессоры 80286
- •Реальный режим
- •Защищенный режим
- •Прерывания
- •Регистр состояния задачи
- •Некоторые особенности функционирования
- •Функциональная схема pc at
- •7. Шина isa и интерфейсы сопряжения с устройствами управления
- •После изучения главы необходимо знать
- •7.1. Конструкция шины isa
- •Выводы шины isa
- •Распределение адресов на системной плате ат
- •Циклы магистрали
- •Прямой доступ к памяти
- •Регенерация памяти
- •Основные электрические характеристики линий isa
- •7.2. Проектирование устройств сопряжения для шины isa
- •7.2.1. Селекторы (дешифраторы) адреса
- •7.2.2. Операционная часть интерфейса
- •7.2.3. Микросхемы для построения интерфейсов Условные графические обозначения элементов цифровой техники
- •7.2.4. Микросхемы приемопередатчиков сигналов магистрали
- •Микросхемы селекторов адреса выходных регистров
- •8. Интерфейс centronics
- •После изучения главы необходимо знать
- •8.1. Порядок обмена по интерфейсу Centronics
- •8.2. Программируемый параллельный интерфейс ( ппи)
- •9. Обмен данными по интерфейсу rs-232
- •После изучения главы необходимо знать
- •9.1. Назначение линий связи rs-232
- •9.2. Подключение модема к rs-232
- •9.3. Подключение терминалов к rs-232
- •9.4. Подключение удаленных объектов управления
- •9.5. Назначение портов rs-232
- •10. Отсчёт реального времени в эвм
- •После изучения главы необходимо знать
- •10.1. Программируемый таймер
- •10.1.1. Режимы работы таймера
- •10.1.2. Таймер на системной плате ibm pc
- •10.2. Программируемый контроллер прерываний
- •10.2.1. Режимы работы пкп
- •10.2.2. Программирование пкп
- •10.3. Прерывания в ibm pc
- •10.3.1. Векторы прерывания
- •10.3.2. Прерывания bios и dos
- •10.3.3. Написание собственных прерываний
- •10.4. Отсчёт реального времени в эвм
- •10.5. Процедуры и функции для работы с прерываниями
- •После изучения главы необходимо знать
- •11.1. Архитектура 32-разрядных процессоров
- •11.1.1. Регистры процессора
- •11.1.2. Организация памяти
- •11.1.3. Режимы адресации
- •11.1.4. Ввод и вывод
- •11.1.5. Прерывания и исключения
- •11.1.6. Процессоры Pentium
- •11.2. Страничное управление памятью
- •11.3. Кэширование памяти
- •Кэш прямого отображения
- •Ассоциативный кэш
- •12. Однокристальные микроконтроллеры
- •После изучения главы необходимо знать
- •12.1. Однокристальный микроконтроллер к1816
- •12.2. Avr микроконтроллеры
- •12.3. Процессоры обработки сигналов
- •12.3.1. Однокристальный цифровой процессор обработки
- •12.3.2. Цифровые процессоры обработки сигналов (цпос)
- •13. Промышленное оборудование для цифровых систем управления
- •После изучения главы необходимо знать
- •13.1. Оборудование для централизованных систем управления
- •13.1.1. Персональные компьютеры для целей управления
- •13.1.2. Промышленные рабочие станции
- •13.1.3. Шасси для ibm совместимых промышленных компьютеров
- •13.1.4. Модульные промышленные компьютеры mic-2000
- •13.1.5. Процессорные платы
- •13.1.6. Устройства для сбора данных и управления
- •13.2. Оборудование для распределенных систем сбора данных и управления
- •13.2.1. Модули удаленного сбора данных и управления adam-5000
- •13.2.2. Модули удаленного сбора данных и управления adam-4000
- •13.3. Прикладное программное обеспечение
- •Заключение
- •Список использованных источников
- •Оглавление
- •Системы счисления и арифметические
10.3. Прерывания в ibm pc
Для управления аппаратными прерываниями в IBM PC AT используется два контроллера прерывания, которые соединены иерархически. Каждая микросхема имеет 8 входов прерываний. Поэтому имеется 16 типов прерываний поступающих по соответствующим линиям IRQ контроллеров прерывания. Сигналы IRQ0-IRQ7 относятся к ведущему контроллеру, IRQ8-IRQ15 – к ведомому. Для каскадирования второго контроллера прерываний задействован вход IRQ2. Тогда распределение приоритетов в порядке убывания будет: IRQ0-IRQ2, IRQ8-IRQ15, IRQ3-IRQ7. Сигналы IRQ0-IRQ2, IRQ8 и IRQ13 используются в системной плате и недоступны платам расширения.
Назначение некоторых прерываний представлено в таблице 10 2.
Назначение векторов прерывания Таблица 10.2
Номер прерывания IRQ |
Вектор INT |
Назначение |
0 |
08h |
Программируемый таймер |
1 |
09h |
Контроллер клавиатуры |
3 |
0Bh |
Последовательный порт COM2 |
4 |
0Ch |
Последовательный порт COM1 |
5 |
0Dh |
Параллельный порт LPT2 |
6 |
0Eh |
Контроллер гибкого диска |
7 |
0Fh |
Параллельный порт LPT1 |
13 |
75h |
Математический сопроцессор |
14 |
76h |
Контроллер жесткого диска |
Напомним, что каждая микросхема контроллера прерываний имеет 3 однобайтных регистра, которые управляют 8 линиями аппаратных прерываний. Регистр запроса на прерывание (IRR) устанавливает соответствующий бит, когда линия прерывания IRQ сигнализирует о запросе. Затем микросхема автоматически проверяет, не обрабатывается ли другое прерывание. При этом она запрашивает информацию регистра обслуживания (ISR). Дополнительная цепь отвечает за схему приоритетов. Далее, перед вызовом прерывания проверяется регистр маски прерываний (IMR), чтобы узнать разрешено ли прерывание данного уровня в данный момент времени. Обычно программисты обращаются только к регистру маски прерывания через порт 21Н и командному регистру прерываний через порт 20Н. Программы на ассемблере могут запретить аппаратные прерывания перечисленные выше. Другие аппаратные прерывания, возникающие при некоторых ошибках (деление на 0) не могут быть маскированы.
Имеются две причины запрета аппаратных прерываний.
Прерывания маскируются для того, чтобы критическая часть кода была выполнена, прежде чем машина произведёт какое-либо другое действие. Например, прерывания запрещают при изменении вектора аппаратного прерывания, избегая выполнения прерывания, когда вектор изменён только наполовину.
Маскируются только определённые прерывания, когда некоторые определённые прерывания могут взаимодействовать с операциями, критичными к временам. Например, точно рассчитанная по времени процедура ввода/вывода не должна быть прервана длительным дисковым прерыванием.
Выполнение прерываний зависит от значения флага прерывания (9 бит) в регистре флагов процессора. Когда этот бит равен 1, то разрешены все прерывания, которые разрешает маска. Когда бит равен 0, то все аппаратные прерывания запрещены. Чтобы запретить прерывания используется инструкция (команда процессора) CLI, для восстановления прерываний – инструкция STI. Заметим, что машина автоматически запрещает аппаратные прерывания при вызове программных прерываний и автоматически разрешает их при возврате. Можно начинать программу обработки прерывания с инструкции STI, если допускаются аппаратные прерывания. Однако если за инструкцией CLI не следует STI, это может привести к остановке машины, т. к. ввод с клавиатуры будет заморожен. Для маскирования определённых аппаратных прерываний посылается требуемая цепочка битов (байт) в порт с адресом 21h (для ведущего контроллера), который соответствует регистру маски прерываний (IMR). Для маскирования устанавливают те биты регистра маски, которые соответствуют маскируемым номерам линий запросов прерывания. Регистр маски на второй микросхеме контроллера прерываний имеет адрес порта А1h. Для возобновления прерывания необходимо очистить соответствующий бит регистра маски.
Например: блокирование дискового прерывания. Контроллер дискет имеет прерывание IRQ6. Поэтому необходимо установить 6-й бит регистра маски первого контроллера прерывания.
mov AL, 01000000B; маскируем бит 6 пересылкой в регистр маски прерываний
out 21H, AL ;
. . . . .
. . . . . ; программа
. . . . .
mov AL, 0 ;
out 21H, AL ; очистка маски
. . . . .