Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
51
Добавлен:
20.05.2015
Размер:
391.17 Кб
Скачать

2. Использование прерываний для работы с устройствами

Аппаратные средства измерения времени

В IBM PC/AT имеются аппаратные средства для измерения времени. Трехканальный счетчик-таймер, выполняющий следующие функции:

канал 0 – генерация аппаратных прерываний (IRQ0) каждые 54,936 мс (частота 18,206 Гц), вызывающих инкремент системного таймера (счетчика в ячейке 40:006Е BIOS Data Area);

канал 1 – генерация запросов на регенерацию памяти;

канал 2 – генерация звуковых сигналов или измерение времени.

Внутренние счетчики микросхемы имеют разрядность 16 бит, но общение с ними возможно только 8-битными операциями. При этом можно задавать значение только младшего байта счетчика (LSB), только старшего (MSB) или обоих (LSB/MSB), причем сначала передается младший, а потом старший байт. Программирование микросхемы осуществляется записью байт в управляющий регистр по отдельности для каждого канала. Назначение регистров счетчиков-таймеров приведено в табл. 2. Входная частота для всех каналов 1,19318 МГц. Штатно все каналы работают в режиме генерации импульсов. Счет для каналов 0 и 1 разрешен постоянно. В канале 2 используется управляющий вход GATE, разрешающий счет, который управляется битом 0 (T2G, R/W) системного порта AT (061h). Выходной сигнал канала 2 может быть программно считан (Т20, бит 5 того же порта). При использовании канала 2 для измерения времени необходимо отключить формирование звука (обнулив бит SPK, R/W, бит 1 порта 061h).

Таблица 2

Регистры счетчиков-таймеров

Порт, R/W

Назначение

040 RW

Счетчик 0 – системные часы. Режим 011, LSB/MSB, Binary, константа счетчика равна 0 (соответствует коэффициенту деления 65 536)

041 RW

Счетчик 1 – регенерация памяти. Режим 010, LSB, Binary, константа счетчика равна 12h (18)

042 RW

Счетчик 2 – генератор звука, измерение времени. Вход GATE от бита 0 порта В 8255 (061). Режим 011, LSB/MSB, Binary, значение счетчика определяет высоту тона

043 W

Управляющий регистр. Биты 7,6 – выбор счетчика 0,1,2. Биты 5,4 – режим, обращения: 00 – защелка текущего значения; 01 – LSB – только младший байт; 10 – MSB – только старший байт; 11 – LSB/MSB – сначала младший, затем старший байты. Биты 3-1 – режим счетчика: 000 – прерывание по счетчику; 001 – ждущий мультивибратор (одновибратор, у 8254 несколько отличается от 8253); х10 – генератор коротких импульсов заданной частоты; х11 – генератор меандра; 100 – счетчик событий с разрешением; 101 – счетчик событий с перезапуском. Бит 0 – 0=Bin (двоичный счет), 1 =BCD – (двоично-десятичный счет)

Часы-колендарь CMOS RTC являются частью комбинированной микросхемы МС146818 с батарейным питанием, используемой в IBM PC/AT для хранения ряда аппаратных настроек. Часы синхронизируются от собственного генератора (32,768 кГц), они содержат:

часы-календарь (год, месяц, число, час, минута, секунда);

будильник, подающий сигнал в назначенный час, минуту и секунду;

генератор меандра, позволяющий формировать запросы прерываний с заданной частотой (как правило, 1024 Гц).

CMOS RTC является источником аппаратных прерываний (IRQ8). Прерывания могут возникать от будильника, генератора меандра и после смены времени в часах. Отдельные источники прерывания идентифицируются чтением ячейки 0Сh и разрешаются записью в ячейку 0Bh.

Доступ к ячейкам CMOS RTC осуществляется через порты ввода-вывода 070h (индекс ячейки) и 071h (данные). При этом бит 7 порта 70h используется и для блокировки NMI, в связи с чем диапазон адресов памяти CMOS ограничен пределами 0-7Fh. Поскольку эта память имеет быстродействие порядка единиц микросекунд, между командами записи адреса и чтения-записи данных необходима программная задержка. Во время изменения состояния часов данные, считываемые из ячеек 0-9, могут оказаться некорректными. Признаком этой ситуации является единичное значение бита 7 ячейки 0Ah. Для определения момента окончания смены состояния часов можно пользоваться и разрешением соответствующего источника прерывания. Назначение ячеек CMOS RTC, относящихся к таймерной части, приведено в табл. 3.

Таблица 3

Соседние файлы в папке УМК_Орг_ЭВМ