Контроль времени в микропроцессорных средствах
5.4.1. Способы контроля времени
Во взаимодействии с объектами окружающего мира часто обращаются к контролю времени, объединяя процессы развивающиеся и в пространстве и времени. Для МП средств реализующих функции взаимодействия с объектами внешней среды задача контроля и «привязка» процессов ко времени является актуальной.
В практике применяются два подхода к контролю времени. В одном из них используются электронные часы абсолютного или относительного времени (под абсолютным временем понимается астрономическое время, а под относительным – время, отсчитываемое от «произвольно» устанавливаемого начала отсчета). В электронных часах присутствует стабильный источник временных интервалов (тактов). В одних технических решениях электронные часы через систему прерываний «напоминают» процессору о текущем времени. В других решениях МП по определенным состояниям процесса обращается за «справкой» о времени к часам. Весьма полезным свойством, связанным с применением часов является освобождение МП для выполнения иных задач между очередными обращениями за временем к часам.
Другой подход применяется преимущественно в контроллерах при относительно слабой загрузке МП задачами взаимодействия с объектами внешней среды.
В этом случае контроль времени осуществляет микропроцессорное устройство. Такому подходу способствует применение стабилизированных кварцевыми резонаторами тактовых генераторов динамического питания микропроцессоров и строго обусловленное время выполнения каждой из команд микропроцессором. С учетом названных обстоятельств в рамках второго подхода микропроцессор может быть задействован на формировании временных пауз разделяющих очередные его обращения к объектам окружающей среды для контроля и (или) управления. Во время формирования пауз МП преимущественно не взаимодействует с объектами внешней среды. Если взаимодействие по контролю и управлению объектами не связано с условными передачами управления в программе обслуживания, то счет времени пауз может совмещаться с функциями контроля и управления. Программирование контроллеров в этом случае усложняется, требует повышенной квалификации и внимания от проектантов программ обслуживания.
В выполняемой лабораторной работе планируется осуществлять контроль времени пауз по второму варианту, так как функция управления включением или выключением связана с ничтожными по сравнению с длительностью пауз затратами времени, а при необходимости может быть учтена соответствующим сокращением длительности паузы.
Отработка приемов работы контроллера с внешними электронными часами заданием по работе не предусматривается.
5.4.2. Алгоритм и программные средства отработки паузы
В основу алгоритма формирования временных пауз положены циклические повторы команд, каждая из которых выполняется фиксированное время. Время выполнения команд в тактах для МП лабораторного стенда приведены в таблице П1 руководства к работе 2. Для контроля числа повторов команд в алгоритме и соответствующей программе организуется накапливающий или вычитающий счетчик с использованием команд inx RP, inr Ri или dcx RP, dcr Ri. По окончанию счета (переполнению/обнулению счетчика) циклы повторов счёта прекращаются. Осуществляется переход к действиям за пределами цикла. Передача управления по завершению счета предполагает, что признаки в регистре F МП по завершению счета будут соответствующим образом установлены. Схема укрупненного алгоритма формирования одной паузы изображена на рис. 5.2. Использование для счетчика регистра размером в один байт позволяет осуществить 28 = 256 повторов. Двухбайтовые регистры позволяют осуществить счет 216 = 65536 повторов.
Для схемы алгоритма, изображенной на рисунке 5.2, длительность паузы, измеренной в командных циклах, определятся по выражению
N = Nз + П*Nс + Nок, (1)
где Nз – совокупность команд загрузки регистра-счетчика числа повторов П; Nc – совокупность команд повторяющегося цикла; Nок – совокупность команд завершения программы паузы (за пределами циклов повтора).
При известных длительностях командных циклов выражение (1) может быть преобразовано к форме абсолютной длительности паузы. При длительности периода тактовой частоты генератора МП стенда УМК 0,5 мкс в зависимости от значения числа повторов на восьмиразрядном регистре-счетчике можно образовать временные паузы в диапазоне
(10 ÷ 3845) мкс,
применив следующий программный фрагмент:
mvi Ri, Data8 ; Команда загрузки регистра-счетчика Ri
M0: dcr Ri ;Счет
jnz M0 ; и проверка
; Продолжение после обнуления счетчика Ri.
Аналогично на регистровой паре при тех же обстоятельствах число повторов для фрагмента программы
lxi RP, Data 16; Загрузки регистровой пары RP (это пары BC, DE, HL, SP).
M0: dcx RP ; Счет
mov A, RPH ; и проверка
ora RPL ; счетчика RP на
jnz M0 ; обнуление
…. ; Выход из цикла паузы по обнулению пары RP
может достигать 216 и длительность паузы до выхода из цикла соответствует диапазону
(17÷786442) мкс < 1 сек.
Рис. 5.2. Алгоритм формирования паузы
Паузы большей длительности образуются установкой «пустых» (nop) команд в совокупность Nс или введением команд безусловного контроля и управления в пределах цикла паузы. Дальнейшее увеличение размера пауз достигается увеличением числа повторов, присоединением дополнительных циклов, переходом к вложенным или охватывающим дополнительным циклам, при одном общем выходе по завершению счета. Например, обеспечив паузу длительностью (0.1-0.5) секунд (или единицы мС), далее организуют счет этих пауз на дополнительном регистре-счетчике.