- •Введение
- •1. Структура курса, отчетность.
- •2.Литература: Конспект лекций ( Электронное пособие)
- •Краткая история развития микропроцессорных систем
- •Архитектурные признаки контроллеров
- •Тема 1. Базовая структура микроконтроллерной (мк) системы управления
- •Тема 2. Модель микроконтроллера
- •Режимы обмена информацией
- •Тема 3. Структура базового мк
- •Тема 4. Организация и функционирование базового цпу
- •Устройство управления и синхронизации
- •Тема 5. Языки программирования контроллера
- •Основные группы команд контроллера
- •2. Команды арифметических операций.
- •3. Команды логических операций
- •4. Команды передачи управления
- •Этапы реализации логических функций
- •Реализация логических функций ( вариант 2)
- •Управление пуском – остановом электродвигателя
- •Тема 7. Управление параметром в заданных пределах
- •Алгоритм управления температурой
- •Тема 8. Формирование временных интервалов таймером
- •Тема 9. Обработка прерываний в контроллере
- •Настройка контроллеров прерывания
- •Тема 9. Последовательный интерфейс в мк
- •Принцип организации последовательного адаптера
- •Тема 10. Организация параллельного интерфейса
- •Основные характеристики адаптера
- •Структурная схема параллельного периферийного адаптера
- •Программирование адаптера
- •Тема 11. Аналого-цифровые и цифро-аналоговые преобразователи
- •Тема 12 .Разработка и отладка программ в симуляторе adsim812
- •Симулятор adSim812
Тема 8. Формирование временных интервалов таймером
Как правило, в задачах управления необходимо обеспечивать режим реального времени, т.е. за определенный временной цикл контроллер должен обеспечить ввод входных сигналов, обработку и выдачу управляющих сигналов с ИМ.
Для максимальной разгрузки ЦПУ МК содержат таймеры, которые работают независимо от ЦПУ. Количество таймеров в контроллере 2-5.
Пример:
запуск отдельных подзадач алгоритма управления, через требуемые интервалы времени ∆t, называемые метками реального времени;
формирование выходных управляющих сигналов требуемой длительности;
подсчет внешних импульсов, поступающих в контроллер;
формирование сигнала заданной частоты.
Все эти функции может выполнять и ЦПУ, но это приводило бы к его неэффективному использованию в системе. Ниже рассмотрим оба варианта.
Аппаратная реализация таймера. В основе таймера используется счетчик, в который поступают импульсы от генератора.
Счетчик TF
На рис. показан таймер для формирования временного интервала.
ГТИ - генератор тактовых импульсов;
TF – сигнал завершения формирования временного интервала, продолжительность которого определяется частотой ГТИ и разрядностью счетчика.
Сигнал старт обеспечивает разрешение начала работы счетчика. Если счетчик 8-разрядный, то максимальный интервал при частоте ГТИ в 1МГц равен: TF = 1мкс * 28 = 256 мкс. Если требуется меньшая длительность, то необходимо вначале в счетчик загрузить константу.
Программная реализация таймера. Программное формирование временной задержки может быть реализовано при использовании любого регистра ЦПУ, например R2:
MOV R2, #34 ;загрузка константы
REP: DJNZ R2, REP ;программный цикл таймера
*
Временной интервал определяется как: T= 34* T DJNZ . Таким образом, константа 34 и время выполнения DJNZ R2, REP определяет временной интервал. В этом случае ЦПУ выполняет функцию таймера, так как оно не может выполнять в этот момент другие команды. Рассмотрим пример формирования требуемой длительности импульса 40 мкс при условии, что T DJNZ = 5мкс.
*
MOV R2, #8
SETB P1.3
REP: DJNZ R2, REP
CRL P1.3
*
Тема 9. Обработка прерываний в контроллере
В качестве сигналов прерывания, поступающих в контроллер прерывания, могут быть сигналы, формируемые модулями, входящими в контроллер (модуль таймера, последовательные и параллельные порты, АЦП и др.) и могут быть внешние сигналы, поступающие в контроллер из устройств, подключенных к нему. Первая группа сигналов называется – внутренними прерываниями, а вторая – внешними. Структурная схема контроллера прерываний приведена на рис.
IR0 – IRn-1 - сигналы запросов прерываний, IR0 – имеет высший приоритет;
IRR – регистр запросов прерываний. В этом регистре фиксируются поступившие запросы.
После поступления в КП одного или более запросов IR, КП выделяет самый приоритетный из них. Для назначения приоритетных запросов в КП имеется регистр приоритетов (IP).
IE – регистр разрешения запросов прерывания. Он позволяет временно запрещать поступление одного или более запросов IR. В некоторых контроллерах такие регистры обозначаются MR – маскирование.
После определения запроса с максимальным приоритетом контроллер прерывания формирует в ЦПУ сигнал прерывания INT. После получения сигнала прерывания INT ЦПУ завершает выполнение текущей команды, прерываемой программы и формирует сигнал подтверждения INTA. После получения INTA КП формирует команду вызова подпрограммы Call ADRi (i = 0… (n-1)). После этого она обрабатывается как обычная команда . Выполнение команды Call ADRi в ЦПУ обеспечит обращение соответствующему адресу памяти программ для вызова подпрограммы обработки запроса прерывания .
В базовом микроконтроллере MCS-51 имеется 5 входов запросов прерывания: два внешних ( INT0, INT1) поступают через линии порта Р3 и три внутренних прерывания: TF0, TF1(от таймеров/счетчиков) и TI/RI – прерывание от последовательного адаптера.
С точки зрения приоритетов все 5 прерываний могут быть распределены только по двум уровням приоритетов (0 – высший приоритет и 1 – низший приоритет).
Имеется внутренняя схема, которая решает, как должны обрабатываться запросы с одним уровнем приоритета, пришедших одновременно:
Ранжирование приоритетов
Hi INT 0
TF 0
INT 1
TF 1
Low TI/RI
Распределение областей РПП под определенные запросы прерываний показано на рис.
В резидентной памяти программ выделено 5 областей для каждого из 5 прерываний, каждая область - 8 байт для вектора прерывания. Таким образом, первые 43 байта программ имеют специальное назначение.
ORG 30H – это 48 ячейка, программу рекомендуется начинать с этого адреса.
Подпрограммы обработки прерывания обязательно завершаются командой RETI, в соответствии с которой в программный счетчик из стека загружается адрес ранее сохраненный командой CALL, сохраненной в стеке, для возврата в прерванную программу. Команда RET также возвращает управление прерванной программе, но не снимает при этом блокировку прерываний.
Рис. Распределение прерываний