· Основная, или тело обработчика – непосредственная процедура обработки прерывания (инкрементирование счетчиков, изменение статусных байтов и т.д.).
Такты от запроса на прерывание до первой инструкции обработчика прерываний – 6
Такты на возвращение из обработчика прерываний (RETI) – 5
Итого: 11 тактов
При включении питания МК, fMCLK по умолчанию выставляется равной 1.048 MHz, т.е. период 1 такта CPU равен 0.95 мкс (в активном режиме). Положим, что на тело обработчика прерываний от Basic Timer необходимо примерно 10 тактов, а для порта Port0 – 30 тактов. Тогда суммарное время обработки прерываний будет равно:
(10 + 11 + 30 + 11) * 0.95 мкс = 58.9 мкс
Очевидно, что для сигналов в частотном диапазоне 10 – 1000 Гц, т.е. с периодом 0.1 – 0.001 с, обработчики прерываний не вызывают потери данных и не вносят погрешностей в измерения.
Полезно определить, какую часть времени CPU будет работать в активном режиме, и на какую часть времени его можно перевести в режим малого энергопотребления, например LPM3. Рассматриваем худший случай, когда оба входных сигнала имеют частоту 1000 Гц. Basic Timer настроен на частоту 0.5 Гц.
Ucpu = 1 / fMCLK * sum (Nint * frep) ,
где fMCLK – частота тактирования CPU, Гц
Nint – количество тактов для обработчика прерываний
Frep – частота срабатывания прерывания, Гц
Ucpu = 1 / 1.048 MHz * (21 * 0.5 + 41 * 1000) = 0.0391
Итак, максимальная загрузка процессора составляет 3.91%, т.е. 96.09% времени работы прибора CPU можно перевести в режим малого энергопотребления.
Методическая погрешность – это неотъемлемая часть измерений частоты и вносит самый существенный вклад в общую погрешность измерений. Этот вид погрешности можно минимизировать, выбрав адекватный метод измерения с учетом требуемого диапазона частот и частоты тактирования используемой аппаратной части прибора (в данной работе это микроконтроллер MSP430).
Частота – количество импульсов или тактов данного сигнала зарегистрированных за 1 секунду. Существует два основных метода измерения частоты:
1. Обратный способ – измерение периода сигнала T (f=1/T)
2. Подсчет числа импульсов сигнала в течение известного интервала времени
Проанализируем каждый из этих методов и выберем наиболее оптимальный для нашего прибора.
1 метод. Обратный способ – измерение периода сигнала T (f=1/T)
Самый простой способ измерить частоту сигнала – это найти его период. Чтобы измерить период, нужно подсчитать, сколько приходится импульсов N некоторого сигнала с известной частотой Fk между двумя последовательными нарастающими или спадающими фронтами измеряемого сигнала. Тогда искомый период T равен:
Tx = N / Fk
Оценим погрешность измерений данным методом:
Fk = частота известного сигнала
Fx = измеряемая частота с нулевой погрешностью
Fm= измеренная частота с некоторой погрешностью
Fk должна быть >> Fx.
N = Fk / Fx, Fk / Fx +/- 1
Так как мы не можем контролировать соотношение фаз между измеряемым сигналом и сигналом с известной частотой, то расхождение в счете N может быть +/- 1.
Fm = Fk / N
Fm = Fk / (Fk / Fx + 1), Fk / (Fk / Fx), Fk / (Fk / Fx - 1)
Упрощаем и получаем: Fm = Fk * Fx / (Fk + Fx), Fx, Fk * Fx / (Fk - Fx)
Погрешность будет следующая: error = abs(Fm – Fx) / Fx
Если Fm = Fx, то error = 0.
Если Fm > Fx, то error = Fx / (Fk - Fx).
Если Fm < Fx, то error = Fx / (Fk + Fx).
Итак, error = max ( Fx / (Fk - Fx), Fx /(Fk + Fx) ) = Fx / (Fk – Fx)
Для Fx = 10 Hz и погрешности не более 0.1%, получаем, что Fk должна быть больше или равна 10010 Hz.
Для Fx = 1000 Hz и погрешности не более 0.1%, получаем, что Fk должна быть больше или равна 1001000 Hz, или чуть больше 1 MHz.
Итак, описанный метод измерения периода достаточно прост в реализации, но имеет очевидные достаточно серьезные недостатки. Так как нам требуется два параллельных измерительных канала, то нам потребуется два таймера, тактируемых частотой примерно 1 MHz. Микроконтроллеры MSP430 имеют базовый генератор, который тактируется внешним кварцевым резонатором и вырабатывает f ACLK, равную 32768 Hz. Из этого следует, что мы не можем отключить умножитель частоты. Умножитель частоты является самым энергоемким блоком, и также с ростом частоты функционирования возрастает энергопотребление, что приводит к лишним экономическим затратам и поэтому не желательно.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.