Исследование модуля Менеджера Событий
Цель работы: изучить аппаратные и программные возможности Менеджера Событий (Event Manager) DSP TMS320F2812.
Теоретические сведения
Структура Менеджера Событий
Менеджер Событий (EV) включает в себя таймеры общего назначения (GP), устройства сравнения/ШИМ, устройства захвата, схему квадратурного анализа (QEP).
В сигнальном процессоре TMS320F2812 имеется два Менеджера Событий (EVA и EVB), которые выполняют аналогичные функции. EVA и EVB имеют идентичные регистры, расположенные по разным адресам.
Рис. 4.1. Менеджер Событий
Каждый Менеджер Событий управляется своей собственной логикой. Она может запрашивать прерывания. Менеджер Событий позволяет запускать встроенный либо внешний аналого-цифровой преобразователь. Для запуска внешнего АЦП на выводах EVASOC или EVBSOC (которые мультиплексируются с сигналами и ), вырабатывается строб начала преобразования (SOC).
На рис. 4.1 представлена функциональная схема модуля Менеджера Событий (EVA).
Рассмотрим блоки EVM подробнее.
Таймеры общего назначения
В каждом модуле EVM имеется по два GP (General Purpose) таймера общего назначения. В отличие от таймеров CPU, которые имеют разрядность 32-бита, таймеры Менеджера Событий являются независимыми 16-разрядными устройствами, c расширенной системой ввода/вывода. Они могут работать независимо друг от друга или быть синхронизированными.
Рис. 4.2. Таймер общего назначения модуля EVM
Центральным блоком GP таймера является блок сравнения. Здесь происходит сравнение значения 16-битного счетчика (TxCNT) с двумя другими регистрами: регистром сравнения (TxCMPR) и регистром периода (TxPR). Если значения счетчика и регистра сравнения равны, то выходной формирователь устанавливает в «1» выходной сигнал (TxPWM). При достижении счетчиком значения регистра периода TxPWM сбрасывается.
Особенностью DSP TMS320F2812 является наличие буферов регистров TxCMPR и TxPR которые позволяют обновлять значения по заранее заданным событиям:
а) достижение GP таймером-счетчиком нуля;
б) достижение GP таймером-счетчиком значения, равного значению в регистре периода;
в) немедленная загрузка после записи в буфер.
Наличие буферов позволяет записывать новые значения в регистры в любой момент времени, не дожидаясь окончания цикла. Загрузка значения из буфера в регистр периода происходит только при достижении GP таймером-счетчиком нуля.
Источником тактирования счетчика может являться: внешний сигнал (TCLKIN), тактовые импульсы от схемы квадратурного анализа (QEP) или тактовый сигнал от высокоскоростного предделителя (HSPCLK).
В регистрах EVAIFRA, EVAIFRB, EVBIFRA, EVBIFRB имеются биты, отражающие флаги прерывания GP таймеров. Каждый из 4-х GP таймеров может вырабатывать прерывание на следующие события:
а) достижение GP таймером-счетчиком нуля 0000h (TxUFINT);
б) достижение максимального значения FFFFh (TxOFINT);
в) достижение заданного значения сравнения (TxCINT);
г) достижение значения, равного значению в регистре периода (TxPINT).
Каждый GP таймер может работать в одном из 4-х режимов.
1) СТОП/Хранение. В этом режиме GP таймер останавливается и удерживает текущее значение, при этом таймер-счетчик, выходы сравнения и значение предделителя остаются без изменения. Если же остановить таймер, просто запретив его работу, то счетчик будет сброшен и значение предделителя установится в х/1.
2) Непрерывный режим счета вверх. В этом режиме значение счетчика увеличивается до тех пор, пока не достигнет значения, равного значению в регистре периода (рис. 4.3). После этого счетчик сбрасывается в ноль и начинает считать сначала. При этом вырабатывается флаг прерывания, который остается установленным в течение одного такта. Если флаг не был маскирован, то вырабатывается запрос прерывания от периферийного устройства.
Рис. 4.3. Режим непрерывного счета вверх GP таймера
Продолжительность периода равна (TxPR)+1, за исключением первого периода, который может быть произвольным, так как начальное значение в счетчике может быть любым от 0000h до FFFFh.
Если исходное значение больше, чем значение в регистре периода, то таймер досчитает до FFFFh, сбросится в ноль и продолжит работать так, как если бы исходное значение было равно нулю. При достижении счетчиком значения, равного значению в регистре периода, устанавливается флаг прерывания по периоду, происходит сброс в ноль и устанавливается флаг прерывания по нулю.
Если исходное значение в счетчике находится между нулем и значением в регистре периода, то таймер сначала досчитает до значения в регистре периода, а затем будет работать так, как был запрограммирован.
3) Управляемый режим счета вверх/вниз. В этом режиме направление счета зависит от состояния входа TDIRA/B: вверх, если сигнал на TDIRA/B высокого уровня; вниз – низкого.
Рис. 4.4. Режим управляемого счета вверх/вниз GP таймера
4) Непрерывный режим счета вверх/вниз. В отличие от предыдущего режима, направление счета изменяется при достижении нуля или значения в регистре периода. Продолжительность периода в этом режиме равна 2∙(TxPR).
Рис. 4.5. Непрерывный режим счета вверх/вниз
Устройство захвата(Capture Unit) предназначено для определения временных параметров внешних сигналов. Значение выбранного GP таймера захватывается и запоминается в 2-уровневом стеке FIFO, когда на соответствующих выводах фиксируется заданный перепад уровней. Устройство захвата состоит из 3-х цепей CAPx (x=1, 2 или 3 для EVA; x=4, 5 или 6 для EVB).
Устройство захвата обладает следующими особенностями:
1) имеется один 16-разрядный регистр управления захватом (CAPCONx);
2) имеется один 16-разрядный регистр статуса FIFO (CAPFIFOx);
3) в качестве тактирования можно использовать любой GP таймер;
4) все входы синхронизируются таймерами CPU;
5) пользователь сам устанавливает, по какому уровню осуществлять захват;
6) имеется 3 маскируемых флага прерывания.
Входы CAP 1/2 и CAP 4/5 также могут быть использованы как входы схемы квадратурного анализа.
Устройство сравнения.В каждом EVM предусмотрено по 3 устройства сравнения (Compare Unit). Эти устройства используют GP таймер 1 в качестве синхронизатора, и могут вырабатывать до 6 выходных сигналов сравнения (ШИМ-сигналов). Все 6 выходов работают независимо друг от друга. Регистры сравнения дублируются, позволяя фиксировать изменения ширины импульсов. Они позволяют снизить до минимума программную загрузку ядра при операциях измерений длительности, периодических выборок и генерации сигналов ШИМ.
Схема квадратурного анализаиспользуется для подключения энкодера – оптического преобразователя направления и скорости вращения. Выходными сигналами энкодера являются два сигнала типа меандр, по частоте и фазовым сдвигам которых можно определить направление и скорость вращения. Схема QEP по этим сигналам формирует два сигнала: логический сигнал направления вращения (DIR) и частотный сигнал скорости вращения (CLK)