- •Основы микропроцессорной техники
- •В.И. Енин
- •В.И. Енин
- •Введение
- •После изучения дисциплины необходимо знать
- •После изучения дисциплины необходимо уметь
- •В.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.1.2. Таймер на системной плате ibm pc
В IBM PC тактовая частота всех каналов таймера равна 1.19318 Мгц, т. е. период тактовых импульсов 0.84 мксек. Каналы таймера имеют следующее назначение. Входы GATE нулевого и первого каналов всегда имеют высокий уровень и следовательно, счет всегда разрешен.
Нулевой канал предназначен для работы системных часов. Его выход подключен к нулевому входу контроллера прерываний (IRQ0). При начальной загрузке BIOS инициализирует этот канал для работы в режиме 3 со счетчиком 0 (т. е. 65536 тактов на период). Поэтому частота прерываний для системных часов равна 1.19Мгц/65536=18.2Гц и прерывание IRQ0 с вектором INT 8 происходит с этой частотой, т. е. каждые 55мсек.
Первый канал таймера используется для регенерации памяти. С него поступает запрос на 0 канал контроллера прямого доступа к памяти для проведения регенерации. Канал работает в режиме 2 со счетчиком 18, поэтому регенерация памяти происходит каждые 18мсек.
Второй канал таймера используется для генерации звука. Для этого используется режим 3 с подходящим начальным значением счетчика. Значение счетчика вычисляется по формуле N=1193181/f=1234DDh/f, где f- требуемая частота звука. В схему звукогенератора входит логический элемент «И» и выходной регистр (РВ) программируемого параллельного интерфейса (ППИ), имеющего базовый адрес 60h. BIOS инициализирует порт 61h на вывод информации при загрузке системы. Нулевой бит этого порта поступает на вход GATE второго канала таймера, разрешая его работу. Выход второго канала таймера поступает на один из входов элемента “И”, другой вход которого подключен к первому биту порта РВ, разрешая прохождение звукового сигнала. Таким образом, управление генерацией звука осуществляется 0 и 1 битами регистра с адресом 61h.
10.2. Программируемый контроллер прерываний
Большое значение для микропроцессорных систем, работающих в реальном масштабе времени, имеет обеспечение экстренного обслуживания внешних устройств по их запросам. По принятию запроса процессор прерывает выполнение своей программы и переходит на программу обслуживания ВУ, пославшего запрос. Для организации системы прерываний от различных устройств предназначены БИС программируемых контроллеров прерываний. Задача контроллеров состоит в приеме запросов прерывания от ВУ, сравнении их приоритетов, посылки в процессор запроса на прерывание и информации о месте расположения соответствующей программы обслуживания.
В ЭВМ на базе процессоров INTEL*86 используется система векторных прерываний. Система векторных прерываний наиболее эффективно реализуется с помощью специальной БИС Intel 8259А (отечественный аналог КР580ВН59А) или ее модификаций. Заметим, что микросхема 8259 (КР580ВН59) может быть использована только совместно с процессором Intel 8080 (КР580ИК80А) из-за отличий в протоколе обмена. Для управления аппаратными прерываниями в PC на базе процессоров INTEL*86 используется микросхема программируемого контроллера прерываний Intel 8259А или она входят в состав специализированной БИС наряду с другими контроллерами. Так как контроллер 8259 хорошо описан в технической литературе, рассмотрим архитектуру и принцип действия контроллера 8259А.
Микросхема выполняется по n-МОП технологии, совместима по уровням с ТТЛ-схемами, размещается в 28-выводном корпусе и имеет единственный источник питания +5в. На основе ПКП формируется 8-уровневая приоритетная система прерывания. Для расширения числа уровней прерывания до 64 несколько ПКП соединяются каскадно.
Структурная схема, поясняющая логику работы ПКП, приведена на рисунке 10.3. Схема управления чтением/записью осуществляет прием команд от микропроцессора и передачу ему информации о состоянии контроллера. Обмен с микропроцессором ведется через 8-разрядный буфер данных. Схема управляется входами CS (выбор кристалла), RD (чтение), WR (запись), A0 (нулевой разряд адреса). В состав блока входят не показанные на рисунке регистры управляющих слов, содержимое которых определяет режим работы контроллера.
Запросы на прерывание от внешних устройств (в том числе и от таймера) поступают на входы IR0-IR7 и запоминаются в регистре запросов IRR (Interrupt Request Register) путем установки соответствующего бита. Регистр обслуживания ISR (In Service Register) содержит все запросы, которые в данное время находятся в стадии обработки. Регистр маски IMR (Interrupt Mask Register) используется для маскирования отдельных уровней (входов) прерываний. Запрет некоторого уровня соответствует единице в соответствующем разряде IMR.
Приоритетная логика выбирает разрешенный запрос на прерывание с наивысшим приоритетом из числа поступивших и сравнивает его с текущим приоритетом запросов, находящихся на обслуживании. Если приоритет поступившего разрешенного запроса на прерывание превышает приоритет запроса, находящегося на обслуживании, ПКП генерирует сигнал INT. Если флаг разрешения прерывания IF регистра признаков процессора установлен (прерывания разрешены), микропроцессор подтверждает прием запроса INT генерацией строба INTA. Под воздействием строба INTA запрос с высшим приоритетом из IRR фиксируется в соответствующем разряде ISR. Принятый к обслуживанию IRR-бит сбрасывается и прием нового запроса разрешается. После получения второго сигнала подтверждения от процессора по линии INTA , ПКП передает в шину данных 8-битовый номер прерывания (вектор). По вектору процессор определяет положение программы обработки прерывания в оперативной памяти машины.
Установленный в ISR бит остается в состоянии 1 до окончания процедуры обслуживания. В конце процедуры в ПКП должна быть передана специальная команда окончания прерывания EOI, которая сбрасывает соответствующий ISR-бит.
До тех пор, пока некоторый ISR-бит установлен, все запросы с равным или меньшим приоритетом игнорируются. В то же время запросы с более высоким приоритетом приводят к генерации сигнала INT, инициируя вложенные прерывания МП.
Каскадное соединение нескольких БИС типа ВН59 позволяет довести число приоритетных уровней до 64. В данном случае одна БИС действует как ведущая ( , низкий уровень), а другие как ведомые ( ).
В каскадном режиме генерация сигнала требования прерывания INT возлагается на ведущую БИС, а генерация вектора прерывания - на ведомую.
При подключении ведомых контроллеров их выходы требования прерывания INT соединяются, каждый со своим, входом запроса на прерывание IR* ведущего контроллера, а одноименные выходы каскадирования CAS всех контроллеров соединяются, образуя шину. Каждой ведомой БИС присваивается идентификационный код, соответствующий номеру линии запроса на прерывание ведущей БИС, к которой она подключена. При появлении запроса на входе ведомого ПКП, он вырабатывает сигнал INT, поступающий на вход запроса прерывания IR* ведущего, который и вырабатывает сигнал INT, поступающий на процессор через шину управления.
Когда процессор возвращает сигнал INTA, ведущий контроллер не только устанавливает бит в ISR и сбрасывает бит в IRR, но и выдает на шину CAS номер уровня прерывания, к которому подключен пославший запрос ведомый. Вместо генерации вектора ведущая БИС посылает по трехразрядной шине CAS номер уровня, принятого к обслуживанию на второй строб INTA. Этот номер сравнивается компараторами ведомых БИС с присвоенными им номерами. В результате выбирается один из них. Выбранная БИС отвечает на второй строб INTA генерацией своего вектора в шине данных.