Лабораторная работа "Программируемый интервальный таймер" Цель лабораторной работы: Лабораторная работа предназначена для изучения принципов и режимов работы таймера, получение навыков его инициализации и программирования. Введение: Таймер предназначен для формирования временных интервалов и генерации импульсов, используемых различными устройствами компьютеров. В лабораторной работе рассматривается таймер типа Intel 8254. Таймер содержит три 16-разрядных счетчика, образующих три канала, работающих автономно. Счетчики работают на вычитание и настраиваются на определенный коэффициент пересчета, задаваемый с помощью специальной константы, имеющей величину в один (младший или старший) или два байта. Каждый канал содержит счетчик (СЕ), 16-разрядный выходной бу-ферный регистр (OL), 16-разрядный регистр константы (CR), 8-разрядный регистр состояния (RS) и 8-разрядный регистр управляющего слова (RCW). Таймер взаимодействует с шиной расширения (ввода-вывода) компьютера посредством 8-разряднного буфера шины данных (D7-D0), сигналов чтения (RD#), записи (WR#), выбора кристалла (CS#), адреса (А0, А1). Каждый канал (0,1 и 2) имеет вход для подачи импульсов синхрони-зации (CLK), идущих с периодом t, управляющий вход GATE, разрешающий (GATE=1) или запрещающий (GATE=0) работу счетчика и выход (OUT) принимающий значение 0 или 1 (в зависимости от режима ра-боты) при переходе счетчика в нулевое состояние. Адрес канала 0 - 00, ка-нала 1 - 01, канала 2 -10. Адрес при записи управляющего слова (RCW) в любой канал равен 11. Таймер работает в 6 режимах. Режим 0 - программируемая задержка, Режим 1 - одновибратор, Режим 2 - импульсный генератор частоты , Режим 3 - генератор меандра, Режим 4 - программно-формируемый строб, Режим 5 - аппаратно-формируемый строб. Перед началом работы таймер необходимо инициализировать, т.е. настроить его на заданный режим работы с соответствующими параметрами - константой пересчета и системой счисления (двоичная, десятичная). Инициализация проводится в строгой последовательности: сначала записывается управляющее слово (RCW) режима работы по адресу 11, затем один или два байта константы (CR), При двухбайтной константе запись производится за два цикла записи, сначала младший байт, затем старший, по адресу соответствующему данному каналу. Счетчики могут инициализироваться в любом порядке. После инициализации счетчик включается в работу, либо программно по фронту последнего сигнала записи (WR) при GATE=1, либо с помощью сигнала GATE, при переводе его из 0 в 1. При работе счетчика до-пускается запись в него новой константы без его остановки. Величина временного интервала на выходе счетчика измеряется ко-личеством периодов "t" импульсов CLK. Управляющее слово режима работы RCW имеет 8 разрядов (D7-D0): D7,D6 - номер канала, D5,D4 - величина константы пересчета, D3,D2,D1 - режим работы, D0 - система счисления. Считывание информации со счетчика производится тремя способами. Обычной командой чтения (RD#), но при этом GATE=0. Командой "чтения на лету" (CLC). Эта команда рассматривается как управляющее слово. В разрядах D7, D6 - записывается номер счетчика, а в D5, D4 код этой коман-ды - 00. По этой команде значение счетчика без его останова защелкивается в буферном регистре (OL), а затем считывается обычной командой RD# в любой момент времени. После подачи команды CLC необходимо обязатель-но произвести команду чтения, в противном случае последующие команды СLC работать не будут. Командой чтения состояния RBC. По этой команде может производиться защелкивание состояния каналов в регистре состояния (RS) и (или) значений счетчиков в буферных регистрах (OL). Затем произво-дится чтение обычной командой RD, причем сначала считывается состояние регистра состояния, а затем значение счетчика. Команда RBС рассматривается как управляющее слово, имеет 8 раз-рядов: D7, D6 - код команды 11, D5 - признак чтения содержимого счетчика (D5=0), D4 - признак чтения регистра состояния (D4=0); D3, D2, D1- указы-вают унитарным кодом номер счетчика, D0=0. При подаче команды RBС, требуется обязательная операция чтения, как и при команде CLC. Методика выполнения работы: При выполнении лабораторной работы студент работает с моделью таймера, состояние которого отображается на экране монитора с помощью структурной схемы таймера, где отображаются все регистры и управляющие сигналы с соответствующими значениями. Студент выполняет два задания, а затем отвечает на контрольные во-просы. Первое задание и контрольные вопросы выдает и проверяет компьютер. Второе задание выдает и проверяет преподаватель. При выполнении второго задания на экране появляется специальное окно, где отображается временная диаграмма работы таймера при подаче на него импульсов CLK. Импульсы CLK подаются вручную при нажатии на соответствующую кла-вишу клавиатуры. Первое задание посвящено процессу инициализации (программной настройке) таймера, второе - исследованию работы таймера в заданном режиме с выполнением операции чтения информации из таймера. Для перехо-да ко второму заданию студент должен выполнить как минимум три первых задания. Индивидуальные задания: Все задания однотипны, но имеют разные параметры: номер канала, константа, режим работы, система счисления счетчика, способ чтения ин-формации из канала.. Пример первого задания. Настроить канал 1 на работу в режиме 3, с константой пересчета 310, счетчик двоичный. Пример второго задания. Настроить канал 0 на работу в режиме 1, с константой пересчета 8, счетчик десятичный. Выполнить 3 цикла работы счетчика. После чего считать его содержимое с помощью команды CLC. Контрольные вопросы: При ответе на контрольные вопросы необходимо по приведенным вариантам временных диаграмм на выходе счетчика с указанием кодов управ-ляющих слов (CRW) и констант пересчета (CR), определить правильную временную диаграмму режима работы, соответствующего заданным CRW и CR.