Схемы и конкретные режимы использования каналов 0, 1 и 2 системного интервального таймера

В ПЭВМ каналы таймера имеют следующее назначение:

Канал 0 - системные часы (IRQ0), режим 3, счетчик n=0 (65536)

Тактовая частота каждого канала равна 1,19318 МГц, т.е. каждый такт имеет длительность 0,84 мксек.

Вход GATE канала 0 всегда имеет высокий уровень, поэтому счет на этом канале разрешен всегда.

При начальной загрузке BIOS инициализирует этот канал для работы в режиме 3 со счетчиком 0 (т.е. 65536 декрементов на цикл счета).

Поэтому частота системных часов равна 1193182 / 65536 = 18.2 Гц, а сигнал на выходе канала 0 – Out 0, воспринимаемый контроллером прерываний, как сигнал прерывания IRQ0, инициирует вектор прерывания Int8 18,2 раз в секунду (т.е. каждые 55 мсек).

Канал 1 - Регенерация памяти, режим 2, значение счетчика n = 18.

Вход GATE канала 1 также, как и канала 0 всегда имеет высокий уровень, поэтому счет на этом канале также разрешен всегда.

Выход счетчика связан со входом DRQ0 контроллера прямого доступа к памяти на захват канала 0 в режиме блочного приема-передачи данных из памяти в память.

Сигнал DRQ0 имеет приоритет над другими запросами прямого доступа к памяти.

Сигнал GATE представляет собой подтверждение контроллера прямого доступа к памяти на захват канала 0 – DACK0

Канал 1 работает в режиме 2 со счетчиком 18, поэтому регенерация памяти происходит каждые 18 мксек или 66288 раз в секунду.

Перепрограммировать счетчик канала 1 не рекомендуется, т.к. это приведет к потере данных в ОЗУ и зависанию ПЭВМ.

Канал 2 - генератор звука системного динамика или другое назначение пользователя (например, генерация псевдослучайных чисел), режим 3, значение счетчика n задается пользователем при программировании.

При генерации звука значение счетчика n канала 2 вычисляется по формуле n = 1193181 / f, где f - требуемая частота звука в герцах.

Системный таймер имеет следующие программно доступные регистры:

Адрес порта Операция Назначение

0040h запись Загрузка счетчика канала 0

чтение Чтение счетчика канала 0

0041h запись Загрузка счетчика канала 1

чтение Чтение счетчика канала 1

0042h запись Загрузка счетчика канала 2

чтение Чтение счетчика канала 2

0043h запись Запись управляющего слова

в регистр режима канала

Программирование канала осуществляется путем ввода управляющих слов в регистр режима каналов и начального значения в его счетчики.

Назначение битов управляющего слова показано на следующем экране.

Существует два способа чтения текущего значения счетчика канала.

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

2. Чтение "на лету ". Для считывания счетчика без остановки процесса счета используется посылка в порт 43h управляющего слова в режиме "защелкивания". Это управляющее слово фиксирует текущее значение счетчика в буфере, а затем считывается младший байт, потом старший.

Управляющее слово имеет следующий формат:

в порт 43h

бит 0 – режим кодирования значения n

0 - двоичный код, 1 - двоично-десятичный код

биты 1-3 - режим работы канала:

000 - режим 0; 001 - режим 1; X10 - режим 2; X11 - режим 3; 100 - режим 4

101 - режим 5

биты 4-5 - вид загрузки и чтения счетчика:

00 - "защелкивание" (биты 0-3 безразличны);01 - только младший байт

10 - только старший байт; 11 - младший байт, затем старший

биты 6-7 - номер канала:

00 - канал 0; 01 - канал 1; 10 - канал 2; 11 – запрещенная комбинация



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: