Часы, таймер и генерация звука.

10/12/94 09:00am taymer.lek
П.Нортон, Р.Уилтон "IBM PC и PS/2 руководство по программированию" перевод В.Н.Григорьева М "Радио и связь" 1994
Роберт Журден "Справочник программиста на компьютере фирмы IBM"

Часы, таймер и генерация звука.

Компьютер имеет возможность отслеживать временные интервалы и генерировать звуковые сигналы в широком диапазоне частот. Эта возможность используется:

  1. Для ведения учета работы с файлами (время и дата модификации);

  2. Для учета затрат процессорного времени (в многопользовательских системах);

  3. Для организации чередования процессов (в многопрограммных системах);

  4. Для синхронизации программ с внешнеими событиями (системы реального времени);

  5. Для синхронизации работы внутреннего оборудования вычислительной системы (регенерация памяти, тактовое питание процессора и контроллеров).

Основные частоты.

Для работы многих микросхем требуется наличие внешних импульсов синхронизации, частота которых определяет скорость работы устройства. Реальные микросхемы могут работать при условии, что питающая частота лежит в некотором диапазоне. Конструктор выбирает реальную частоту исходя из соображений быстродействия и надежности.

На машинах IBM PC и PC/XT тактовая частота принята равной 4772727 Гц (около 4.77 МГц). Эта частота выбрана исходя из соображений удобства:

  1. Базовая частота 14.31818 МГц используется в телевизионных сетях;

  2. Делением ее на три получают базовую частоту процессора;

  3. Делением на четыре получают 3.57955 МГц - частоту импульсов цветового сигнала в цветном телевидении и адаптере CGA.

  4. Делением на двенадцать получают частоту достаточную для работы системных таймеров PC - 1.19318 МГц.

Более поздние модели процессоров могут работать на большей частоте, но основные частоты остались неизменными для сохранения совместимости.

Программируемый тактовый генератор.

Служит для отработки временнных интервалов заданной длительности. В компьютерах PC/XT/AT интервальный таймер имеет три 16-ти разрядных канала:

КАНАЛ 0 используется в качестве системных часов. Счетчик делит исходную частоту на 2^16 и на выходе получает пиблизительно 18.2 Гц. Сигнал поступает на контроллер прерываний (IRQ0) и вызывает прерывание 08h. Программа обслуживания прерывания подсчитывает сигналы в ячейке данных BIOS по адресу 0040:006Ch (четыре байта); кроме этого она уменьшает содержимое байта, отслеживающего время работы двигателя дисковода (0040:0040h).

КАНАЛ 1 определяет моменты регенерации динамической памяти компьютера. Период регенерации, обычно, равен 2..8 mС. Соответствующий выходной сигнал поступает на контроллер прямого доступа к памяти. Прикладными программами канал не используется. Уменьшение периода регенерации замедляют работу ВС, увеличение делает работу компьютера невозможной.

КАНАЛ 2 используется для управления динамиком компьютера. Загружаемое в него число определяет коэффициент деления исходной частоты (см. выше).

Поскольку любое загруженное число является коэффицинентом деления, педусмотрена возможность выключения звука (счет начинается при установке в единицу разряда 0 порта 61h). Канал может быть использован для генерации "случайных" чисел. Помимо этого канал может использоваться для синхронизации внешних устройств (выходной сигнал передается на динамик при установке в единицу разряда 1 порта 61h).

Машины серии PS/2 моделей 50, 60 и 80 имеют дополнительный КАНАЛ 3, связанный с немаскируемым прерыванием. Его сигналы используются в качестве "сторожа" для контроля состояния ВС в целом.

Часы реального времени.

Современные машины имеют часы реального времени с отдельным питанием. При загрузке ОС показания этих часов переводятся в "тикания" таймера и записываются в область данных BIOS. Микросхема хранит и текущую дату.

Возможно использование режима "будильника" микросхемы.


Stay-at-home