Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы на экзам.вопр..ОМПТ.doc
Скачиваний:
7
Добавлен:
24.09.2019
Размер:
279.04 Кб
Скачать

21. Структура, назначение таймерного модуля tim08 микроконтроллера hc908gp32.

22. Режимы работы таймерного модуля tim08 микроконтроллера hc908gp32. Режим захвата.

23. Режимы работы таймерного модуля tim08 микроконтроллера hc908gp32. Режим сравнения/совпадения

. ПРОЦЕССОР СОБЫТИЙ TIM08

Модуль TIM08, хотя и носит дословное название «модуль таймерного интерфейса», по сути, является одним из лучших процессоров событий в 8-разрядных МК.

Модуль TIM08 состоит из 16-разрядного таймера-счетчика и некоторого количества связанных с ним полностью идентичных каналов захвата/сравнения. Каждый из каналов в процессе инициализации может быть настроен на один из пяти режимов работы:

  1. входного захвата;

  2. небуферированного выходного сравнения;

  3. буферированного выходного сравнения;

  4. небуферированной широтно-импульсной модуляции (ШИМ);

  5. буферированной ШИМ.

Каждый канал захвата/сравнения связан с одним из выводов МК. Функция входного или выходного сигнала модуля процессора событий является альтернативной функцией линий порта Port D. МК MC68HC908GP32 имеет в своем составе два модуля процессора событий - TIM1 и TIM2. Каждый из модулей имеет по два канала захвата/сравнения.

Структурная схема модуля двухканального процессора событий представлена на рис. 3.1. Шестнадцатиразрядный таймер-счетчик служит временной базой для модулей захвата/сравнения. Он подсчитывает импульсы тактовой частоты, поступающие на его вход. Все интервалы времени, которые генерируются или измеряются МК, измеряются числом периодов этой тактовой частоты.

В общем случае (модули TIM08 других МК семейства НС08) таймер-счетчик имеет два источника тактирования:

  1. внутренний генератор, выполненный на основе программируемого делителя час­ тоты шины МК fBUS;

  2. внешний генератор, подключаемый к выводу TxCLK МК.

Выбор между внутренним и внешним генераторами, а также выбор коэффициента деления программируемого делителя частоты шины КТ|Мх определяется комбинацией битов PS2 - PS0 регистра управления таймера-счетчика TxSC. Коэффициент деления КТ|Мх может принимать семь различных значений: 1, 2, 4, 8, 16, 32, 64. Максимальная частота сигнала внешнего генератора, подключаемого ко входу TxCLK, составляет 4 МГц при условии, что МК работает на предельной частоте внутренней шины fBUS- 8 МГц. Про­цессоры событий TIM! и TIM2 в составе МК MC68HC908GP32 не имеют выводов T1CLK и T2CLK в перечне выводов корпуса и, следовательно, могут использовать для тактиро­вания только встроенный генератор.

Таймер-счетчик временной базы допускает программную установку периода работы. Если не предпринимать специальных действий при инициализации процессора собы­тий, то коэффициент счета счетчика временной базы будет равен 216, т. е. счетчик прохо­дит полный цикл от начального состояния кода $0000 до конечного состояния кода SFFFF. Если таймер-счетчик находится в состоянии $FFFF, то при поступлении на его вход оче­редного тактового импульса наступает переполнение таймера-счетчика. Счетчик пере­ходит в состояние $0000, одновременно устанавливается флаг переполнения TOF. Переполнение счетчика не оказывает влияния на его работу: при поступлении следую­щих тактовых импульсов код в счетчике продолжает нарастать. Коэффициент счета тай­мера-счетчика может быть изменен посредством записи кода желаемого Ксч в двухбай­товый регистр периода TxMOD (TxMODH и TxMODL - старший и младший байты этого регистра, х - номер таймерного модуля, для TIM1 х = 1, для TIM2 х = 2). Вход сброса счетчика подключен к выходу цифрового компаратора (см. рис. 3.1), на один из входов которого поступает код текущего состояния таймера-счетчика, а на другой - код Ксч, записанный в регистре TxMOD. Если эти коды равны, то при поступлении следующего так­тового импульса счетчик сбрасывается в «О», и флаг переполнения TOF устанавливает­ся в «1». Диапазон допустимых значений Ксч составляет от 1 до (2-1). Таким образом, дискретность регулирования периода таймера-счетчика, который в режиме ШИМ обра­зует период ШИМ-сигнала, составляет 16 бит.

Предусмотрена возможность пуска и останова таймера-счетчика под управлением программы (бит TSTOP в регистре управления таймером-счетчиком TxSC). Кроме того, счетчик и программируемый делитель частоты могут быть одновременно сброшены по­средством установки в «1» бита TRST в регистре TxSC. При этом все триггеры таймера-счетчика установятся в «О», а программируемый делитель частоты будет настроен на режим единичного коэффициента деления частоты внутренней шины МК. Заметьте, что бит TRST не останавливает работу таймера-счетчика, с приходом очередного тактового импульса состояние счетчика станет равным $0001. Сброс таймера-счетчика рекомен­дуется проводить в следующем порядке:

  • остановите таймер-счетчик (бит TSOP = 1);

  • выполните операцию сброса таймера-счетчика (бит TRST = 1);

  • переинициализируйте биты PS2-PS0 регистра TxSC, которые определяют источник и частоту тактирования;

  • разрешите счет таймера-счетчика.

Код таймера-счетчика в процессе счета может быть считан прикладной программой при обращении к регистрам текущего кода TxCNTH и TxCNTL. При обращении к регистру старшего байта код таймера-счетчика автоматически копируется в указанную регистро­вую пару. Поэтому, несмотря на то, что операции чтения старшего и младшего байтов разнесены во времени, вы прочитаете состояние таймера-счетчика в момент обращения к регистру старшего байта TxCNTH. Такое решение предотвращает получение ложной информации в случае, если частота тактирования таймера-счетчика высока, и по этой причине в моменты обращения к регистрам TxCNTH и TxCNTL состояния счетчика раз­личаются. Однако нельзя допускать ситуацию, при которой после прочтения старшего байта младший прочитан не будет. Повторное чтение старшего байта не сопровождается защелкиванием текущего кода таймера-счетчика в регистрах TxCNTH и TxCNTL.

При переполнении таймера-счетчика устанавливается флаг переполнения TOF в ре­гистре управления TxSC (таб. 3.1) и генерируется запрос на прерывание, если бит разрешения прерывания TOIE установлен в «1», т. е. прерывания по переполнению тай­мера-счетчика разрешены.

Для управления таймером-счетчиком модуля TIM08 предусмотрены пять регистров специальных функций:

TxSC - регистр управления таймером-счетчиком «х», где «х» - имя модуля процессора событий МК (для TIM1 х=1, для TIM2 х=2 );

TxMODH - регистр периода таймера-счетчика (старший байт );

TxMODL - регистр периода таймера-счетчика (младший байт);

TxCNTH - регистр текущего значения таймера-счетчика (старший байт);

TxCNTL - регистр текущего значения таймера-счетчика (младший байт).

. Структурная схема процессора событии ТIМ08 МК MC68H0908GP32

Каждый канал захвата/сравнения в составе процессора событии связан с одним выво­дом МК (см. рис. 3.1). Вывод обозначают TxCHi, где i – порядковый номер канала захвата/ сравнения в составе процессора событии х. Например, T1СНО – вывод канала 0 процес­сoра событий ТIМ1. В режиме захвата аппаратные средства канала захвата/сравнения фиксируют моменты времени, когда логический сигнал на входе TxCHiК изменяет свое со­стояние. В режимах выходного сравнения и широтно-импульсной модуляции (ШИМ) канал захвата/сравнения формирует импульсный сигнал с заданными временными параметрами на выходе TxCHi. Направление передачи сигнала по линии TxCHi (вход или выход) определяется инициализацией каналов захвата/сравнения на тот или иной режим. Несмотря на то, что работа линии ТхСНi в составе процессора coбытий является альтернативной функцией линии одного из портов ввода/вывода МК, состояние регистра направления пе­редачи порта DDRx в этом случае значения не имеет.

Программно-логическая модель каждого канала захвата/сравнения включает три ре­гистра: 16-разрядный регистр данных канала i (TxCHiH и TxCHiL – старший и младший байты этого регистра) и регистр управления каналом i – ТХSС1. Функция регистра данных определяется режимом работы канала захвата/сравнения, регистр управления TxSCi служит для выбора этого режима и для обслуживания прерываний по запросам модуля

захвата/сравнения.

В режиме входного захвата аппаратные средства модуля следят за уровнем сигнала на входе TxCHi микроконтроллера (рис. 3.2).

При изменении уровня логического сигнала с «0» на «1» или наоборот вырабатыва­ется строб записи, и текущее состояние таймера-счетчика временной базы копируется в 16-разрядный регистр данных TxCHi. канала захвата/сравнения. Событие захвата от­мечается установкой в п1» флага CHiF в регистре управления каналом с номером i. Этот флаг может быть считан программно, а если прерывания по событию канала i разрешены (флаг СНi1Е в регистре управления установлен), то модуль процессора событий выс­тавляет запрос на прерывание. Предусмотрены три типа изменения сигнала на входе TxCHi МК, которые воспринимаются модулем захвата/сравнения, как событие захвата:

1)передний (нарастающий) фронт сигнала;

2)задний (падающий) фронт сигнала;

3)любое изменение логического уровня сигнала.

Выбор типа события захвата для модуля определяется битами ELSiB:ELSiA регистра

управления каналом TxSCi.

В режиме выходного сравнения аппаратные средства модуля непрерывно сравнива­ют изменяющийся во времени код таймера-счетчика с кодом, который записан в 16-раз-рядный регистр данных TxCHi модуля захвата/сравнения i (рис. 3.3).

В момент равенства кодов аппаратные средства модуля устанавливают на выходе микроконтроллера TxCHi заданный уровень логического сигнала либо изменяют этот уровень на противоположный. При наступлении события выходного сравнения в регист­ре управления канала TxSCi устанавливается в «1» флаг CHiF, тот же, что и при настyп­лении события захвата. Аналогично предыдущему случаю этот флаг вызывает форми­рование запроса на прерывание, если прерывания от модуля i разрешены. Предусмот­рены три типа изменения сигнала на выходе TxCHi МК в момент события выходного

сравнения:

1)инвертирование сигнала на выходе;

2)установка низкого логического уровня;

3)установка высокого уровня.

Выбор типа изменения выходного сигнала для модуля определяется битами ELSiB:ELSiA регистра управления каналом TxSCi

20. Организация ввода/вывода в микроконтроллере HC908GP32.