Организация общесистемных средств счета времени
Программируемый интервальный таймер ВИ53/ВИ54 является прибором широкого назначения. На его основе могут "быть построены разнообразные времязависимые устройства, имеющие общесистемное значение: генераторы скорости передачи последовательных данных, часы суточного времени, средства контроля за длительностью обращения к системной магистрали и др. Учитывая широкий интерес к средствам такого типа, рассмотрим примеры их конкретной реализации для МС на базе ВМ80. Генератор скорости. Генератор скорости передачи данных через последовательные каналы может быть построен на базе одного из счетчиков ПИТ. Например, адаптера ИРПС используется счетчик СТ2, который должен быть запрограммирован для работы в режиме генератора прямоугольных импульсов. На вход GATE счетчика необходимо подать напряжение высокого уровня, а вход CLK соединить с линией системной частоты CCLK. При перезапуске системы (включении питания или нажатии клавиши RESET) генератор скорости должен быть проинициализирован. Это делается с помощью специальной процедуры инициализации VELINI, переводящий СТ2 в режим 3 с обменом словами в двоичном коде:
VELINI:PUSH PSW MVI A, 10110110B; Код команды OUT PIT+3 POP PSW RET Процедуру установки скорости передачи удобно оформлять в виде отдельной подпрограммы VEL, принимающей через регистровую пару ВС 16-разрядный фактор скорости в двоичной форме:
VEL: PUSH PSW MOV А, С ; Младший байт фактора OUT PIT+2 ;скорости MOV А, В ; Старший байт фактора OUT PIT+2 ; скорости POP PSW RET С учетом дополнительного деления частоты на К внутренними средствами ПСА параметр х для подпрограммы VEL рассчитывается по формуле: x=CCLK/KV, где V—скорость передачи информации. Значения переменной х для стандартных скоростей передачи при CCLK =2 МГц и К =16 приведено в табл. 14.3. Очевидно, что с помощью данной схемы скорость передачи 19200 Гц с достаточной точностью не может быть получена. Для решения данной задачи необходим специальный подбор значений частоты CCLK, которая для ВМ80 связана с частотой выхода 02TTL ГТИ. Если использовать CCLK = 1,9384 МГц, то можно получить все стандартные частоты. Для этого потребуется кристалл с частотой OCS = 17,4456 МГц и параметр х, который представлен выше в скобках. Часы суточного времени. Если функцию счета времени возложить на программные средства, то для реализации часов достаточно построить генератор меток реального времени. Для этой цели резервируется счетчик СТО программируемого таймера, вход CLK которого соединяется с CCLK, на вход GATE подается напряжение высокого уровня, а выход OUT используется в качестве сигнала запроса на прерывание высшего приоритета IRO. Такая схема обеспечивает своевременную обработку меток реального времени через систему прерываний.
Таблица 14.3
Контроллер прерываний ВН59 фиксирует запрос на прерывание по фронту с предварительным удержанием низкого уровня напряжения на входе не менее 120 нс. Поэтому СТО можно запрограммировать для работы как в режиме 2, так и в режиме 3. Остановимся на режиме 2:
Процедура установки частоты следования меток реального времени подобна VEL: CLK: PUSH PSW MOV А,С ;Младший байт OUT PIT MOV А,В ;Старший байт OUT PIT POP PSW RET Обычно эти метки следуют с частотой 50 Гц. Предполагая, что CCLK = 2 МГц, получаем стандартную процедуру инициализации генератора системного времени: CLKINI: PUSH PSW MVI А,00110100В ;Код команды OUT PIT+3 ;для ПИТ LXI B,40000 ;Слово данных ПИТ CALL CLK ;Вывод слова данных POP PSW RET Скорость счета может быть изменена в любой момент вызовом подпрограммы CLK. Счет суточного времени может быть организован специальной программой, запускаемой по прерыванию IRO. Подпрограмма ведет счет в формате «часы, минуты, секунды, доли секунд» и использует 8 байт данных: MODUL: DB 50 ;Число системных меток ;в секунде DB 60 ;Число секунд в минуте DB 60 ;Число минут в часе DB 24 ;Число часов в сутках TIME: DS 1 ;Доли секунд DS 1 ;Секунды DS 1 ;Минуты DS 1 ;Часы Предполагается, что метки следуют с частотой 50 Гц: CLOCK: PUSH PSW ;Сохранить PUSH В ;состояние регистров ;МП PUSH D PUSH Н LXI H,MODUL ;Установить начальные LXI D,TIME ;значения указателей MVI В,4 ;Установить счетчик ;циклов NEXT: LDAX D ;Выбрать текущее ;значение времени INR А ;Увеличить его на 1 CMP M ;Сравнить с максимальным JNZ ОК ;Конец счета, если меньше XRA А ;Иначе- STAX D ;сброс ячейки памяти INX Н Модифицировать INX D указатели DCR В ;Уменышить значение ;счетчика циклов на 1 JNZ NEXT ;Переход, если цикл ;не последний OK: STAX D ;Сохранить модифи- ;цированное значение ;текущего времени POP H восстановить POP D ;состояние регистров ;МП POP В CALL EOI ;Конец прерывания POP PSW EI ;Разрешить прерывание RET Для получения текущего времени хранения в четырех соседних байтах с базой TIME необходимо просто прочитать их содержимое, например, с помощью процедуры:
TGET: DI ;Запретить прерывания LDA TIME+1 ;Секунды LHLD TIME+ 2 ;Часы и минуты EI ;разрешить прерывания RET
Программа возвращает в регистре А секунды, в L минуты, в Н часы. Установка времени выполняется обратной процедурой, при этом доли секунд игнорируются:
TSET: DI ;Запретить прерывания STA TIME+1 ;Секунды SHLD TIME+ 2 ;Часы и минуты EI ;разрешить прерывания RET
Подпрограммы используются при запрещенных прерываниях, что обеспечивает монопольный доступ к разделяемому двумя параллельными процессами CLOCK и TGET/TSET блоку данных TIME. В противном случае могут быть ошибки, связанные с одновременностью доступа. Временные затраты, необходимые для поддержки рассмотренных выше часов суточного времени при тактовой частоте ВМ80, равной 2 МГц, и частоте системных меток 50 Гц составляют 1,2%. В тех случаях, когда они не удовлетворяют пользователя, их можно снизить, за счет уменьшения частоты генерации системных меток, отказа от счета суточного времени с преобразованием в часы и перехода к счету в периодах системных меток, расширения аппаратурных средств поддержки часов или перехода к их полной аппаратной реализации.
Популярное: Организация как механизм и форма жизни коллектива: Организация не сможет достичь поставленных целей без соответствующей внутренней... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (300)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |