В вычислительных машинах
Программируемый интервальный таймер является устройством широкого назначения. На его основе могут быть построены разнообразные времязадающие устройства, имеющие общесистемное значение: системные часы, тактовые генераторы скорости передачи последовательных данных, средства контроля за длительностью обращения к системной магистрали, средства измерения длительности импульсных сигналов, генераторы звуковых сигналов и т.п.
Для реализации счета (измерения) времени на базе таймера на его входы CLK подают импульсные сигналы, частота Fsysclk которых известна и стабильна. Это обычно одна из системных частот, например, системная частота шины, формируемая в компьютере с высокой точностью.
Подсчитывая число n импульсов за измеряемый временной интервал Tи, можно определить его длительность как .
Осуществляя в таймере деление частоты Fsysclk на заданный коэффициент, можно получить генератор меток реального времени для построения системных часов и сервиса реального времени, в функции которого входит управление выполнением последовательности заданий в строгом соответствии со временем.
Системные часы компьютера устроены следующим образом /13-15/.
В качестве генератора меток реального времени используется счетчик СТ0 программируемого таймера с базовым адресом 40. На вход CLK этого счетчика подается системная частота Fsysclk=1,19318 МГц, на вход GATE подается напряжение логической 1, а выход OUT используется в качестве сигнала запроса на прерывание высшего приоритета IRQ0. Такая схема обеспечивает своевременную обработку меток реального времени через систему прерываний. Счетчик СТ0 запрограммирован для работы в режиме 3 и формирует запросы на прерывание на IRQ0 с частотой 18,2 Гц. По каждому запросу запускается программа обработки прерывания с вектором прерывания 08h, по которой инкрементируется текущее значение 4-х байтовой переменной, располагающейся в области памяти по адресу 0000:046Сh (счетчик системных часов). Программа ведет счет астрономического времени в формате «часы, минуты, секунды, доли секунды». Начальное время записывается в область памяти астрономического времени при включении компьютера из энергонезависимых часов реального времени. Кроме этого в программу обработки прерывания включен вызов некоторой программы с вектором прерывания 1Ch. В исходном виде эта программа «пустая» и содержит лишь команду возврата IRET, т.е. обработчик прерывания INT 1Ch ничего не делает.. Но при необходимости на вектор прерывания 1Сh может быть установлена некоторая пользовательская программа, функционирующая синхронно с астрономическими часами.
Для получения текущего времени необходимо прочитать текущее значение 4-х байтовой переменной, располагающейся в области памяти по адресу 0000:046Сh (счетчик системных часов).
Системные часы являются основой для построения сервиса реального времени, в функции которого входит управление выполнением последовательности заданий в строгом соответствии со временем. Сервис реального времени сверяет текущее время с временем начала обслуживания и при достижении последнего осуществляет запуск процедуры обслуживания. Для этого удобно применять программируемый таймер, у которого вход CLK одного из счетчиков, работающего в режиме 0, подключается к выходу OUT генератора меток реального времени, а выход используется в качестве запроса прерывания, но более низкого уровня, чем IRQ0. Таким образом сервис реального времени является системной процедурой, в функции которой входит запуск обслуживания очередного запроса из очереди и установка нового интервала ожидания до начала обслуживания следующего запроса.
Организация счета событий от счета времени отличается тем, что вместо времязадающего генератора на вход таймера подают сигналы с датчиков событий, например, импульсных датчиков перемещения, рельсовой педали, фиксирующей прохождение колесной пары, фотоэлементов, фиксирующих изделия, сходящие с конвейера и т.п. Если таймер запрограммирован для работы в режиме 0, то считывая последовательно во времени состояние его счетчиков, можно подсчитать число событий на том или ином объекте управления.
Контрольные вопросы и задания
1.Разработать систему измерения временных параметров последовательности прямоугольных импульсов.
2.Разработать на базе ПИТ схему подсчета числа осей в проходящем поезде.
3.Разработать программу формирования на выходе динамика звукового сигнала с плавно увеличивающейся и плавно уменьшающейся частотой.
4.На основе ПИТ разработать схему и программу устройства для измерения пути и скорости подвижной единицы. Датчик перемещения формирует импульсный сигнал через каждый метр пройденного пути.
5.Как зависит погрешность измерения скорости (см. задание 4) от величины скорости? Как уменьшить погрешность измерения малых скоростей?
6.На основе ПИТ разработать систему генерации прямоугольных импульсов заданной длительности и периода следования.
|
Дата добавления: 2016-06-13; просмотров: 949;