Мегаобучалка Главная | О нас | Обратная связь


Организация общесистемных средств счета времени



2016-01-26 278 Обсуждений (0)
Организация общесистемных средств счета времени 0.00 из 5.00 0 оценок




Программируемый интервальный таймер ВИ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

Требуемая скорость V, Гц Параметр х Действительная скорость V, Гц Отклонение от стандарта, Гц
104(112) 52(56) 26(28) 13(14) 7(7) + 2 +4 + 8 + 16 -1343

 

 

Контроллер прерываний ВН59 фиксирует запрос на прерывание по фронту с предварительным удержанием низкого уровня напряжения на входе не менее 120 нс. Поэтому СТО можно запрограммировать для работы как в режиме 2, так и в режиме 3. Остановимся на режиме 2:

MVI OUT

А.00110100В PIT+3

;Код команды ;для ПИТ

 

Процедура установки частоты следования меток реального времени подобна 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%. В тех случаях, когда они не удовлетворяют пользователя, их можно снизить, за счет уменьшения частоты генерации системных меток, отказа от счета суточного времени с преобразованием в часы и перехода к счету в периодах системных меток, расширения аппаратурных средств поддержки часов или перехода к их полной аппаратной реализации.

 



2016-01-26 278 Обсуждений (0)
Организация общесистемных средств счета времени 0.00 из 5.00 0 оценок









Обсуждение в статье: Организация общесистемных средств счета времени

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Как распознать напряжение: Говоря о мышечном напряжении, мы в первую очередь имеем в виду мускулы, прикрепленные к костям ...
Модели организации как закрытой, открытой, частично открытой системы: Закрытая система имеет жесткие фиксированные границы, ее действия относительно независимы...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (278)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.006 сек.)