Copyright: Copyright © 1993-1999 WinWare Incorporated.


Содержание справки "Таймер"
Компьютерная обучающая программа "Таймер"

Содержание справки

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

 Введение - содержит информацию о применении, составе и функциях таймера, его блок-схему, назначение входов и выходов БИС и информацию о используемых  в программе сокращениях.

 Программирование таймера - содержит подробную информацию о программировании таймера, форматах управляющих слов, регистрах состояния и методах чтения счётчиков.

 Режимы работы - содержит информацию о  всех режимах работы таймера.

 Правила работы с программой - содержит указания по выполнению заданий и изучению демонстрационных материалов.


Блок-схема таймера
Структурная схема таймера

Структурная схема ПТ включает:
- буфер шины данных BD и логические схемы управления чтением / записью:
- дешифратор DS, с помощью которого выбирается один из трех каналов либо формируется признак загрузки управляющих слов или команд;
- три идентичных канала COUNT2-COUNTO, реализующих запрограммированную функцию.

Каждый канал включает:
- 16-разрядный буферный регистр OL, служащий для запоминания и хране-ния мгновенного значения счетчика СЕ, которое в любое время может быть записано командой CLC или RBC канала. После выполнения этих команд содержимое OL может быть считано в ЦП без остановки дальней-шего счета в регистре СЕ;
- 16-разрядный счетчик/таймер СЕ, работающий в режиме вычитания. Из-менение содержимого СЕ осуществляется по срезу сигнала CLK при GATE=1;
- 16-разрядный регистр констант пересчета CT, служащий для хранения констант пересчета. Содержимое CR загружается в СЕ для счета в зависимости от запрограммированного режима;
- 8-разрядный регистр состояния канала ST, содержимое которого можно считывать в ЦП с помощью команды RBC. Содержимое этого регистра является словом состояния канала.
- 8-разрядный регистр управляющего слова RCW, предназначенный для его хранения. Слово загружается в RCW командой OUT с адресом, формирующим на входах АО, А1 код 11. Выбор конкретного канала осуществляется с помощью двух старших разрядов самого управляющего слова.
- Схема управляющей логики канала CL осуществляет управление вхо-дом/выходом   счетчика/таймера в зависимости от запрограммированного режима.

 Блок-схема таймера (смотреть рисунок):


Назначение входов и выходов БИС

Для получения необходимой информации о каком-либо входе или выходе БИС щёлкните мышью на название данного элемента, выделенного в тексте подчёркиванием.

1   D7                  13 OUT1
2   D6                  14 GATE1
3   D5                  15 CLK1
4   D4                  16 GATE2
5   D3                  17 OUT2
6   D2                  18 CLK2
7   D1                  19 A0
8   D0                  20 A1
9   CLK0              21 CS
10 OUT0              22 RD
11 GATE0            23 WR
12 GND               24 Ucc


WR

Запись. Сигнал WR=0 ориентирует входной буфер BD на ввод. Таймер принимает информацию с шины данных D7-D0.


Ucc

Вывод питания.


Untitled
             Блок-схема таймера


Назначение блоков и сокращения, используемые
в окне иммитационной модели таймера

BD/DS - буфер шины данных и дешифратор выбора канала;
0 - 2 - каналы таймера, реализующие запрограммированную функцию;
OL - регистр хранения мгновенного значения счетчика/таймера (16 разрядов);
CL - схема управляющей логики канала;
CE - счетчик/таймер (16 разрядов);
CR - регистр константы пересчета (16 разрядов);
RS - регистр состояния канала (8 разрядов);
RCW - регистр управляющего слова (8 разрядов).


Режимы работы таймера

           Каналы таймера независимо друг от друга могут быть запрограммированы на работу в одном из шести режимов:

•	 РЕЖИМ 0 - прерывание терминального счета;

•	 РЕЖИМ 1 - программируемый ждущий мультивибратор;

•	 РЕЖИМ 2 - импульсный генератор частоты;

•	 РЕЖИМ 3- генератор меандра;

•	 РЕЖИМ 4 - программно-формируемый строб;

•	 РЕЖИМ 5 - аппаратно-формируемый строб;

           Когда управляющее слово записывается в счетчик , немедленно устанавливаются все управляющие логические устройства и OUT принимает определенное начальное состояние, сигнала  CLK на это не требуется. В режимах 0, 4 вход GATE чувствителен к логическому уровню, а в режимах 1,5  вход  GATE чувствителен к переднему фронту. В режимах 2 и 3 вход GATE чувствителен и к фронту и к уровню. В следующей таблице приведены операции, выполняемые счетчиком при различных состояниях сигнала GATE.

•	 Смотреть таблицу "Операции, выполняемые счётчиком":

          При загрузке нового счета счетчики декрементируются по заднему фронту CLK.
          Счетчик не выполняет останов, когда его значение достигает нуля. В режимах 0, 1,4 и 5  счет продолжается и счетчик продолжает считать до максимального значения: FFFF в двоичном счете или 9999 в десятичном счете.  Режимы 2 и 3 периодические: по окончании счета счетчик перезагружается первоначальным значением либо вновь загруженным и продолжает счет дальше.


РЕЖИМ 0 - прерывание терминального счета

 	После того как записано управляющее слово, OUT устанавливается низким.
Загрузка константы не оказывает влияния на OUT. Счет разрешается сигналом GATE=1 и запрещается GATE=0. По GATE=1 и фронту первого CLK начинается счет. OUT остается низким, пока содержимое счетчика не станет равным нулю, т.е. через (N+1) CLK. По достижении счетчиком нуля OUT становится высоким и остается до загрузки нового счета или нового управляющего слова в счетчик,  Изменение полярности GATE не оказывает влияния на  OUT, но по  GATE=0 счет приостанавливается, а по  GATE=1 продолжается без перегрузки  CE. Загрузка новой константы во время счета при записи младшего байта приводит к остановке текущего счета, а при записи старшего байта - к запуску нового цикла счета.
            Контроль счетчика (по командам CLC (чтение "на лету ") и RBC  (обратное чтение)) в этом режиме возможно только после хотя бы одного цикла счета, так как счетчик может быть еще не загружен.

 Функционирование таймера в режиме 0 (смотреть рисунок)


Функционирование таймера в режиме 0 (рисунок)
Функционирование таймера в режиме 0


Функционирование таймера в режиме 1 (рисунок)
    Функционирование таймера в режиме 1


РЕЖИМ 1 - программируемый ждущий мультивибратор

            На выходе OUT формируется сигнал низкого уровня длительностью T=Tclk*N  (N- константа счета,   Tclk- период тактовых импульсов).OUT=0 вырабатывается по положительному  фронту  GATE, и только по завершении счета OUT =1. Режим 1 - это режим  с перезапуском, т.е. по каждому фронту GATE CR передается в  CE и запускает или перезапускает его, даже если счет не  завершен до конца. Если во время счета в таймер загружается новая константа, это не влияет на длительность текущего импульса ждущего мультивибратора до следующего запуска.

 Функционирование таймера в режиме 1 (смотреть рисунок):


Функционирование таймера в режиме 2 (рисунок)
     Функционирование таймера в режиме 2


D7-D0

Трехстабильные входы/выходы шины данных.


РЕЖИМ 2 - импульсный генератор частоты

 	В этом режиме канал выполняет функцию программируемого делителя входной частоты Fclk. Сразу же после загрузки RCW выход OUT становится равным 1 и при GATE=1 на OUT с частотой Fclk/N устанавливается нуль на время Tclk (т.е. OUT=1 при (N-1)Tclk, а  OUT=0 при  Tclk , где N- константа счета). Это режим с автозагрузкой CE , т.е. по окончании счета CE  автоматически перезагружается и счет повторяется. Причем, если в процессе работы счетчика осуществить загрузку новой константы, то текущий период генерации частоты не изменяется, а следующий будет определяться новым значением N. При подаче GATE=0 на  OUT устанавливается 1, счет останавливается и возобновляется при подаче GATE=1, но уже с начала . Это позволяет использовать вход  GATE   для синхронизации работы канала с внешними событиями.

 Функционирование таймера в режиме 2 (смотреть рисунок):


Функционирование таймера в режиме 3 (рисунок)
    Функционирование таймера в режиме 3


РЕЖИМ 3- генератор меандра

            Этот режим  аналогичен режиму 2 за исключением того, что на выходе OUT формируются импульсы с длительностью полупериодов, равной N/2*Tclk  при четном N,  (N+1)/2*Tclk для положительного и (N-1)*Tclk  для отрицательного полупериодов при нечетном N . Генератор  меандра не работает при загрузке в счетчик константы N=3.

 Функционирование таймера в режиме 3 (смотреть рисунок):


Функционирование таймера в режиме 4 (рисунок)
    Функционирование таймера в режиме 4


РЕЖИМ 4 - программно-формируемый строб

            В этом режиме OUT становится равным 1 сразу после загрузки RCW. По  окончании отсчета числа, загруженного в счетчик, на выходе OUT устанавливается нуль на период, равный  Tclk, а затем  OUT вновь принимает исходное значение (т.е. OUT=0 через период времени  (N+1)*Tclk). Возможна перезагрузка константы во время  счета,  при этом загрузка младшего  байта не оказывает влияния на текущий счет, а загрузка старшего байта инициирует новый цикл счета. По действию сигнала GATE работа таймера в режиме 4 аналогична режиму 0, при GATE=0  счет приостанавливается, при GATE=1   продолжается.

 Функционирование таймера в режиме 4 (смотреть рисунок):


Функционирование таймера в режиме 5 (рисунок)
   Функционирование таймера в режиме 5


РЕЖИМ 5 - аппаратно-формируемый строб

        Работа таймера в режиме 5 по выходному сигналу аналогична его работе в режиме 4 (OUT=0 в течение Tclk после отсчета константы счета), а по действию  GATE - режиму 1,  в котором запуск счета выполняется по переднему фронту сигнала GATE. Счетчик в этом режиме перезапускаемый, т.е. каждый  положительный фронт  GATE  запускает счет или перезапускает его с начала, если счет не завершен до конца. Перезагрузка счетчика новой константой во время счета не влияет на длительность текущего цикла, но следующий цикл ( по фронту GATE) будет уже с новой константой.

 Функционирование таймера в режиме 5 (смотреть рисунок):


Операции, выполняемые счетчиком (таблица)
                                         Операции, выполняемые счетчиком


Программирование таймера

             После включения питания состояние таймера неопределенное. Режим работы каждого счетчика определяется при его программировании. Каждый счетчик должен быть запрограммирован, прежде чем он будет использоваться. Неиспользуемые счетчики не нуждаются в программировании.
             При программировании счетчика сначала записывается управляющее слово, а затем константа счета. Формат управляющего слова показан на следующем рисунке:

•	 Формат управляющего слова CW (смотреть рисунок)

             Запись управляющего слова происходит при записи в порт 43 (А1, А0=11), а запись констант счета в каналы 0, 1, 2 - при записи в порты 40, 41, 42 (А1, А0=00, 01, 10) соответственно при активных сигналах СS и VR (CS=0, VR=0).
             Процедура программирования таймера очень гибкая. Необходимо запомнить два правила:
             1) в каждый счетчик управляющее слово должно быть записано перед загрузкой счета;
             2) счетчик должен загружаться тем количеством байтов значения счета, которое указано в управляющем слове (младший байт, старший байт, младший байт и старший байты). Так как RCW каждого канала имеет свой адрес (SC1, SC0) и загружаемый в CVR код хранится до следующего программирования, то не требуется специальной последовательности программирования. Приемлема любая последовательность, следующая приведенным выше правилам.
             Новая константа счета может быть записана в счетчик в любой момент времени и должна соответствовать запрограммированному формату счета. Следует помнить , что при записи констант счета они поступают в CR,  а непосредственно в счетчик попадают по входному сигналу GATE.
             Если  счетчик запрограммирован для чтения/записи двух байтов счета, программа загрузки не должна передавать управление между записью первого и второго байтов другой программе, которая тоже записывает данные в этот счетчик.
             В следующей таблице приведены операции, выполняемые при различных комбинациях на входах CS, RD, VR, A0, A1  таймера:

•	 Операции, выполняемые на входах таймера (смотреть таблицу):

    Часто желательно читать содержимое счетчика без нарушения процесса счета. Имеется три метода чтения счетчиков:
1)  Простое чтение;
2)  Чтение "на лету" командой CLC (защелкивание содержимого счетчиков);
3)  Обратное чтение командой RBC (защелкивание содержимого счетчиков и/или RSTAT).


Формат управляющего слова CW (рисунок)
                                         Формат управляющего слова CW


CLK0, CLK1, CLK2

Входы тактовых сигналов для управления счетчиками/таймерами. По фронту 1/0 сигнала на входе CLK уменьшается на единицу содержимое соответствующего счетчика/таймера CE.


Опрерации, выполняемые на входах таймера (таблица)
        Операции, выполняемые на входах таймера


Простое чтение

           Этот метод чтения счётчика реализуется простой операцией чтения. При чтении счетчика , выбираемого А1, А0, работа счетчика должна быть приостановлена подачей GATE=0 либо внешним логическим устройством, блокирующим подачу CLK на выбранный счетчик. В противном случае счет может быть изменен в процессе чтения и его результат будет неопределенным.


Чтение "на лету" командой CLC (защёлкивание содержимого счётчиков)

     Формат управляющего слова соответствующей команды показан следующем рисунке:

•	 Формат команды CLC - чтение "на лету" (смотреть рисунок):

            Эта команда позволяет прочитать текущее значение счетчика в любой момент времени без останова счета. Команда  "Чтение"  на лету" не влияет на содержимое регистра RCW. При выполнении этой команды текущее значение счета защелкивается в выходной защелке OL и находится там до начала выполнения первой команды считывания этого счетчика.
Адрес защелкиваемого счетчика определяется разрядами SC1, SC0 команды. Если в таймер поступает несколько команд "Чтение "на лету" для одного и того же счетчика без последующих  считываний, то результатом чтения будет счет, защелкнутый первой командой "Чтение "на лету".
           При любом методе значение счета должно читаться согласно формату программирования: если счетчик программируется на два байта считывания, два байта и должны быть прочитаны. Необходимо помнить , что если операция считывания выполнена не до конца, новая команда "Чтение "на лету" не воспринимается, а пока константа счета не загружена в CE, она не может быть прочитана. Два байта не обязательно считывать сразу один за другим, между их считываниями могут быть выполнены операции чтения или записи других счетчиков.
           Другая особенность таймера: чтение может прерываться записью в тот же счетчик. Например, если счетчик программируется на два байта счета, возможна следующая последовательность:
     1)  читать младший байт,
     2)  записать новый младший байт,
     3)  читать старший байт
     4)  записать новый старший бай.


Формат команды CLC - чтение "на лету" (рисунок)
Формат команды CLC - чтение "на лету"


Обратное чтение командой RBC (защелкивание содержимого счетчиков и/или RSTAT)

          Этот метод предполагает использование команды RBC - "Обратное чтение". Формат управляющего слова для этой команды показан на следующем рисунке:

•	 Формат команды RBC - "Обратное чтение" (смотреть рисунок):

          По этой команде могут выполнятся две операции: защелкивание текущего значения счетчика (ов) и/или защелкивание текущего значения RS канала(ов). Эти операции выполняются либо независимо либо совмещаются.
          Эта команда эквивалентна нескольким командам "Чтение "на лету" CLC (по одной на каждый счетчик).
          При COUNT=0 содержимое счетчика (ов) защелкивается в OL и сохраняется там до его считывания или перепрограммирования. Считываемый счетчик автоматически "отщелкивается", когда будет полностью прочитан, но другие счетчики остаются защелкнутыми, пока не будут прочитаны.
          При STATUS=0 содержимое RS указанного канала (ов) защелкивается в STATL и сохраняется там до его  считывания. Если до считывания в таймере поступит еще одна или несколько команд "Обратное чтение" для защелкивания RS, они будут игнорироваться, пока не будет прочитано состояние таймера по первой команде "Обратное чтение". Формат RS показан на следующем рисунке:

•	 Формат регистра состояния RS (смотреть рисунок):

          Разряды D5-D0 соответствуют текущему значению регистра CVR, разряд D7 (OUT) - текущему состоянию выхода OUT, разряд D6 (NULL COUNT)индуцирует, произошла загрузка константы счета из CR в CE  или нет. Если NULL  COUNT=0 , то это означает, что ранее загруженная в CR константа передана  в CE. В этом случае  можно выполнить загрузку новой константы, не нарушая счета. Изменение NULL COUNT при работе и программировании показано в следующей таблице:

•	 Изменение состояния NULL COUNT (смотреть таблицу):

          Счет и состояние выбранного счетчика (ков) могут быть одновременно защёлкнуты при COUNT=0 и STATUS=0. Это функционально то же самое , что и выполнение двух команд "Обратное чтение" последовательно одна за другой.
          Если счет и состояние счетчика защелкнуты, по первой операции чтения будет считываться защелкнутое состояние счетчика независимо от того, что защелкнуто первым. Следующие одна или две операции (один или два байта счета) реализуют считывание защелкнутого счета.


Формат команды RBC - "Обратное чтение" (рисунок)
      Формат команды RBC - "Обратное чтение"


Формат регистра состояния RS (рисунок)
               Формат регистра состояния RS


Изменение состояния NULL COUNT (таблица)
   Изменение состояния NULL COUNT


Введение

Программируемый интервальный таймер К1810ВИ54

             Программируемый таймер (ПТ) К1810ВИ54 предназначен для генерации времязадающих функций, программно-управляемых временных задержек с возможностью программного контроля их выполнения.
             Программируемые таймеры применяются в МПС, выполненных на базе МПК, БИС К580, К1810, К1821, используемых в задачах управления и измерения в реальном масштабе времени с тактовой частотой до 8 МГц. Конструктивно эти ПТ совместимы с ПТ типа К580ВИ53 и отличаются от них повышенным быстродействием и рас-ширенными функциональными возможностями.
             Программируемый таймер К1810ВИ54 включает три независимых канала, каждый из которых может быть запрограммирован на работу в одном из шести режимов для двоичного или двоично-десятичного счета.
             Возможна работа в режиме однократного выполнения функций, повторения запрограммированных функций без нового перепрограммирования или в режиме автозагрузки.
             Состояние любого из каналов может быть прочитано в любой момент времени как с остановкой счёта, так и без.

         - Структурная схема таймера;
         - Назначение входов и выходов БИС;
         - Назначение блоков и используемые сокращения.


Правила работы с программой

            Занятие состоит из 3х этапов: изучение программной настройки, изучение протоколов работы, комплексное изучение работы БИС. Количество и порядок выполнения этапов определяется преподавателем или самим учащимся.
             При работе в режиме "с контролем" задания и контрольные вопросы задаются обучающей программой, в режиме "без контроля" задания формулируются преподавателем или самим учащимся.
             Работа с БИС таймера осуществляется на ее функционально-логической модели, отображаемой на экране в виде структурной схемы с индикацией значений входных управляющих сигналов и данных, состояний внутренних регистров и выходных сигналов.
             Значения управляющих сигналов и данных задаются с помощью мыши в управляющих панелях, имеющихся в поле экрана. Изменение значения достигается щелчком левой кнопкой по нужному значению. Значение данных задается щелчком по полю D7-D0 в панели "Программируемый интервальный таймер". При этом появится новое окошко "Ввод D7-D0", в котором следует задать значение каждого бита данных. Значение сигналов WR, RD, CS, A0, A1 задается щелчком по соответствующим полям в панели "Программируемый интервальный таймер". Сигналы GATE и CLK для каждого из каналов задаются в панели "Применение БИС" щелчком по кнопке CLK или GATE под соответствующей каналу цифрой.
             После задания управляющих сигналов и данных следует нажать кнопку "Следующий" такт на панели "Применение БИС". Будет обработано только значение сигналов на момент нажатия этой кнопки. Например, чтобы задать фронт сигнала GATE 0/1, если GATE=1, нужно нажать кнопки GATE соответствующего канала, "Следующий такт", затем снова GATE и "Следующий такт".
              В панели "Программируемый интервальный таймер" подробно расписаны значения регистров всех трех каналов. На диаграмме показаны сигналы только одного канала. Чтобы вывести диаграмму нужного Вам канала, следует щелкнуть по кнопке с соответствующим каналом в правой части окна диаграммы.

Выберите предмет изучения:

•	 Программная настройка

•	 Протокол обмена БИС

•	 Применение БИС


OUT0, OUT1, OUT2
OUT0, 0UT1, OUT2

Выходы соответствующих счетчиков/таймеров.


Программная настройка

  1) Ознакомьтесь со справочным материалом (пункт "Программирование таймера"), обратите   внимание на рисунок "Формат слова управления" и на таблицу "Операции, выполняемые на входах таймера";
  2) Получите новое задание по настройке режима работы таймера, нажав кнопку "новое";
  3) Ознакомьтесь с содержанием полученного задания;
  4) Обратите внимание на тип счета - если он двоичный, следует перевести константу в двоичное представление; если же он двоично-десятичный, следует перевести константу в двоично-десятичное представление. Посмотрите, сколько байтов требует для своей передачи константа - один или два - от этого зависит процедура настройки таймера;
  5) Сформируйте управляющее слово. При его составлении следует учесть следующие данные из задания: адрес канала, код режима канала и тип пересчета. Код чтения/записи константы счета выбирается из следующих соображений: если константа занимает один байт, то выбирают режим пересылки младшего байта; если же константа занимает два байта, то возможны два варианта: посылка старшего и младшего байтов один за другим (при этом только одно управляющее слово), либо раздельная посылка байтов, когда пересылка каждого байта предваряется своим управляющим словом.
  6) Занесите полученное управляющее слово в окошко "D7-D0" модели таймера;
  7) Проследите за тем чтоб были выставлены следующие данные: CS=0 - выбран чип таймера; RD=1; WR=0 - происходит запись; A1=1, A0=1 - что означает передачу управляющего слова;
  8) Нажмите кнопку "Такт->";
  9) Проследите, записалось ли управляющее слово в RCD;
10) Занесите младший бит константы в окошко "D7-D0" модели таймера;
11) Выставьте на А1, А0 адрес нужного канала;
12) Нажмите кнопку "Такт->";
13) Проследите, записался ли байт в младшую половину CR;
14) Если константа состоит из двух байтов и выбран режим - старший байт за младшим, то повторите процедуру для старшего байта с 10 пункта по 13, если же старший байт записывается отдельно и предваряется своим управляющим словом, повторите для него процедуру с 5 пункта по 13;
15) Нажмите кнопку "Решение". Если решение было верным, то количество выполненных заданий увеличится на 1.

КОНТРОЛЬНЫЕ ВОПРСОЫ

1) Нажмите кнопку "Получить новый";
2) Ознакомьтесь с содержанием вопроса;
3) Укажите один из пяти ответов и нажмите кнопку "Да". Если ответ верен, количество правильных ответов увеличится на 1.


Протокол обмена БИС

1) Ознакомьтесь с справочным материалом "Режимы работы таймера";
2) Пометьте один из режимов;
3) Нажмите кнопку "Вызов режима" - появится диаграмма одного из вариантов работы таймера в данном режиме;
4) Нажимая кнопку "Вызов режима", выберите интересующий вас вариянт;
5) Нажимайте кнопку "Такт", наблюдая синхронные изменения данных, представленных на диаграмме и в окне модели таймера.


Применение БИС

1) Получите задание от преподавателя, либо нажмите кнопку "Задание";
2) Ознакомьтесь с заданием;
3) Определите по содержанию задания режимы работы каналов;
4) Сформируйте управляющие слова для каналов, указанных в задании. Определите их константы пересчета;
5) Запрограммируйте таймер:
6) Управляя сигналами GATE, CLK и выставляя необходимые данные в окне модели таймера, добейтесь соответствия получаемых диаграмм выданному вам заданию;
7) Покажите результаты преподавателю.


GATE0, GATE1, GATE2

Входы разрешения счета. При GATE=1 для некоторых режимов работы разрешается поступление тактовых сигналов на вход счетчика/таймера, для других (импульсный генератор и генератор меандра) открывается выходной буфер OUT.


A0, A1

Адресные входы, по которым осуществляется адресация к одному из каналов:
· 00 - адрес канала 0;
· 01 - адрес канала 1;
· 10 - адрес канала 2;
· 11 - признак загрузки управляющего слова или команд.


GND

Вывод "Общий".


CS

Выборка кристалла. При CS=0 разрешается работа входного буфера BD.


RD

Чтение. Сигнал RD=0 ориентирует входной буфер BD на выход. Таймер выдает информацию на шину данных D7-D0.