- •Основы микропроцессорной техники
- •В.И. Енин
- •В.И. Енин
- •Введение
- •После изучения дисциплины необходимо знать
- •После изучения дисциплины необходимо уметь
- •В.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.2.1. Режимы работы пкп
Отличительной чертой БИС типа 8259А является ее программируемость. Путем программирования ПКП может быть установлен на разные режимы работы.
Режим фиксированных приоритетов. В этом режиме контроллер находится сразу после инициализации. Запросы прерывания имеют жесткое распределение приоритетов от 0 (высший) до 7. Запросы с низшим приоритетом не будут обрабатываться, пока обрабатываются запросы с высшим приоритетом.
Автоматический сдвиг приоритетов. После обработки текущего прерывания ему автоматически присваивается низший приоритет. При этом приоритеты всех остальных уровней циклически сдвигаются и прерывание следующего уровня (входа запроса) приобретает наивысший приоритет. В этом режиме приоритеты прерываний всех уровней оказываются равны.
Программно-управляемый сдвиг. В команде контроллеру задается вход с наивысшим приоритетом. Приоритеты остальных входов сдвигаются циклически. Например, при присвоении наивысшего приоритета входу 4, вход 3 будет иметь наименьший приоритет.
Автоматическое завершение обработки прерывания. В обычном режиме процедура обработки аппаратного прерывания должна при своем завершении очистить свой бит в ISR специальной командой. Иначе новые прерывания не будут обрабатываться. В режиме автоматического завершения соответствующий бит в ISR автоматически сбрасывается в тот момент, когда начинается обработка прерывания. В этом режиме не нужно посылать в контроллер команду завершения обработки прерывания.
Режим специальной маски. В этом режиме отменяется приоритетное упорядочивание обработки запросов и запросы обрабатываются по мере поступления.
Режим опроса (поллинг). В этом режиме аппаратные прерывания не вызываются автоматически. Появление запросов на прерывание должно определяться считыванием IRR. Чтение этого регистра позволяет получить информацию о наличии запросов на прерывание и номер уровня с максимальным приоритетом, по которому есть запрос.
10.2.2. Программирование пкп
Программирование ПКП осуществляется двумя типами управляющих слов: командами инициализации ICW (Initialization Command Word) и командами управления OCW (Operation Command Word). Для вывода информации в контроллер используются 2 регистра: порт с четным адресом А0=0 (обычно порт 20h) и порт с нечетным адресом А0=1 (порт 21h).
Четыре команды инициализации ICW1-ICW4 загружаются перед началом работы и служат для установки БИС в исходное состояние. Команды управления OCW1—OCW3 могут быть переданы в ПКП в любое время после окончания инициализации. Они предназначены для оперативного управления работой контроллера. При каскадном включении каждая БИС программируется независимо от других. В порт с четным адресом выводятся ICW1,OCW2 и OCW3. OCW2 отличается от OCW3 тем, что бит3 в OCW2 равен 0, а в OCW3 равен 1.
Порт с нечетным адресом используется для вывода ICW2, ICW3, ICW4 и OCW1. Неоднозначности в интерпретации данных в этом случае не возникает, поскольку слова инициализации ICW2 - ICW4 должны непосредственно следовать за ICW1, выведенным в порт с четным адресом .
Инициализация контроллера начинается с вывода ICW1 в порт 20h. Отличительным признаком ICW1 является наличие 1 в 4-ом бите (счет идет от 0) команды инициализации. В процессе инициализации контроллер последовательно принимает управляющие слова ICW2 - ICW4 с нечетного порта. При наличии в системе одного контроллера ICW3 не выводится. Наличие ICW4 определяется содержанием ICW1. При наличии каскада из нескольких ПКП каждый из них инициализируется отдельно.
Формат ICW1следующий:
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
- |
- |
- |
1 |
LTIM |
ADI |
SNGL |
IC4 |
При D4=l и А0 = 0 входной байт интерпретируется как ICW1.
Бит 3 (LTIM), равный 0, задает установку запросов в IRR фронтом, при значении бита равным 0 запрос устанавливается уровнем.
Бит 2 (АDI) игнорируется; он используется только в ПЭВМ на базе микропроцессоров Intel 8080.
Бит 1 указывает на наличие одного контроллера (SINGL=1) или каскада контроллеров (SINGL=0). Если этот бит равен 1, то ICW3 не выводится в процессе инициализации и следом за ICW2 должно следовать с ICW4.
Бит 0 (IC4) определяет, будет ли выводиться ICW4. Если бит равен 0, то ICW4 не выводится, и оно автоматически заполняется нулями. Для Intel *86 обязательно задается значение бита равное 1 и, следовательно, ICW4 обязательно выводится.
Управляющее слово ICW2 задает номер вектора прерывания для прерываний уровня 0. Например, вектор 8 задается для IВМ РС, у которого по уровню 0 происходит прерывание от таймера. Вектора аппаратных прерываний располагаются подряд друг за другом и, следовательно, вывод во втором слове инициализации числа 8 не только задает восьмой вектор для таймера, но и девятый для прерываний уровня 1, десятый (0Ah) для прерываний уровня 2 и т. д.
Управляющее слово ICWЗ выводится только при наличии каскада. Оно имеет разные форматы для ведущего и ведомых контроллеров. ICWЗ ведущего контроллера указывает, к каким входам (IR0 - IR7) подключены ведомые контроллеры. При этом соответствующие биты устанавливаются в 1. Остальные биты равны 0.
ICWЗ ведомого (slave) ПКП в трех младших битах задается номер уровня, на котором работает ведомый контроллер, т.е. номер входа ведущего, к которому подключен выход INT ведомого. Например, для ведомого контроллера, работающего на уровне 2 ICWЗ равно:
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
ICW4 имеет 0 в 5-7 разрядах. Нулевой бит определяет тип процессора: 0 – 8080, 1 – 8086. Первый бит определяет режим завершения процедуры обработки прерывания: 1 – автоматическое завершение, 0 – процедура обработки аппаратного прерывания должна сама сбрасывать свой бит в ISR. Второй бит игнорируется, если третий бит (BUF-устанавливающий режим буферизации) равен 0. При наличии одного контроллера и BUF=1, второй бит устанавливается в 1. При каскадировании этот бит должен быть равен 1 только для ведущего контроллера. При единичном значении третьего бита устанавливается режим буферизации. Четвертый бит устанавливает специальный вложенный режим, применяемый при каскадировании для определения приоритетов запросов от разных контроллеров.
После инициализации ПКП готов к работе в заданном режиме и можно ввести 3 командных слова.
Первое командное слово OCW1 передается по нечетному адресу (21h) и является байтом маски. Единичное значение битов маски означает, что прерывания соответствующего уровня маскируются и не будут обрабатываться контроллером.
Второе слово рабочих приказов OCW2 (адрес 20h) предназначено для вывода команды завершения обработки аппаратного прерывания (ЕOI), циклического сдвига и явного изменения приоритета уровней. Назначение битов OCW2 следующее:
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
R |
SL |
EOI |
0 |
0 |
L2 |
L1 |
L0 |
Три младших бита L0 – L2 указывают уровень прерывания, если это необходимо в команде. Установленный пятый бит (EOI) является признаком команды обычного завершения обработки прерывания, при котором сбрасывается в ISR бит, соответствующий прерыванию с максимальным приоритетом. Назначение седьмого и шестого битов:
00 – обязательно используется при установке в единицу бита нормального завершения EOI;
01 - команда специального завершения, при которой в ISR сбрасывается, независимо от приоритета, бит с номером указанным разрядами L0- L2;
10- бита команды циклического сдвига приоритетов влево на одну позицию;
11 – биты команды назначения низшего приоритета уровню с номером, указанным битами L0 – L2, при этом приоритеты остальных уровней сдвигаются циклически.
Отсюда видно, что команда обычного завершения имеет код 20h и должна быть послана по адресу 20h.
Третье слово команды OCW3 устанавливает или отменяет режим специальной маски и переводит контроллер в режим опроса регистров. Формат командного слова
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
0 |
E SMM |
SMM |
0 |
1 |
P |
RR |
RIS |
10- отменить режим
специальной маски,
11 - установить режим специальной маски.
010 –чтение IRR,
011 – чтение ISR,
1** - установка режима опроса.
При p=0 (команда выбора порта для чтения) можно передать в контроллер команду чтения IRR или ISR (порт 20h) и затем считать содержимое соответственно регистров IRR или ISR из порта с нечетным адресом (21h). Если бит опроса (поллинга, Polling) в команде установлен, ПКП переводится в режим опроса. Прерывания в этом случае вызываться не будут. Для получения данных о наличии запросов необходимо чтение порта с четным адресом. При этом считанные данные из порта с четным адресом (20h) будут иметь вид
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
I |
0 |
0 |
0 |
0 |
L2 |
L1 |
L0 |
Единица в старшем бите (I=1) указывает, что имеются запросы на прерывания, а три младших разряда дают номер уровня с наивысшим приоритетом, по которому имеется запрос.
В режиме специального маскирования каждый бит в регистре ISR запрещает только собственный уровень, но разрешает все остальные. Во время инициализации режим специального маскирования аннулируется.