Датчик движения с низким энергопотреблением на основе MSP430F2013
Данная статья начинает цикл материалов по использованию MSP430, в которых будут рассмотрены основные принципы построения приложения. Исходные тексты программ и подробное описание можно найти на сайте Texas Instruments.
Аппаратная часть
В системе для оценки движения используется сдвоенный пироэлектрический пассивный инфракрасный (PIR) датчик и микроконтроллер MSP430F2013 (рис. 1). Микроконтроллер имеет встроенный 16-битный сигма-дельта АЦП, обеспечивающий интерфейс с датчиком. Благодаря наличию аналоговой части, 16-мегагерцовому 16-битному RISC ядру, MSP430F2013 обеспечивает необходимую производительность и низкую стоимость системы в целом.
Рис. 1. Система оценки движения
На рисунке 1 показана упрощенная схема подключения датчика к микроконтроллеру. Внешние компоненты включают резистор смещения RB, необходимый для датчика, и два RC-фильтра, образованные R1/C1 и R2/C2.
Фильтры выполняют две разные функции. Так как вход сигма-дельта АЦП, SD16_A, - дифференциальный, нужно обеспечить положительный и отрицательный входы. R1/C1 работает как низкочастотный фильтр для устранения зубчатых искажений (anti-aliasing) на входе Ax+. Второй фильтр, R2/C2, создает смещение на входе Ax- аналого-цифрового преобразователя. Это нужно из-за большого сдвига между выходным сигналом датчика и сигналом Vss. Рисунок 2 отображает ключевые сигналы системы в момент определения движения.
Рис. 2. Сигналы системы в момент определения движения
анал 1 отображает выходной сигнал датчика. При напряжении на датчике 3 В выходное смещение составляет приблизительно 500 мВ. Ax- подключен к Vss, а выход датчика - к Ax+, при этом коэффициент усиления SD16_A PGA равен единице. Из-за малого динамического диапазона выходного сигнала датчика (рис. 2, канал 2), требуется его усиление, что препятствует возможности прямого подключения Ax- к Vss.
Канал 2 отображает выходной сигнал датчика после фильтрации. Кроме фильтрации, выходной сигнал датчика также подвергается смещению для соответствия динамическому диапазону SD16_A.
Прямое напряжение смещения также подается на вход Ax-. Для этой цели служит фильтр низких частот R2/C2. Канал 3 отображает выходной сигнал R2/C2 фильтра. Математическая разность второго и третьего каналов отображается каналом M1. Это дифференциальное напряжение входов сигма-дельта АЦП.
В приложении устанавливается коэффициент усиления PGA, равный 4, и коэффициент передискретизации, равный 256. Если требуется повысить чувствительность системы, можно задавать коэффициенты усиления и передискретизации равными 32 и 1024 соответственно.
Порт ввода/вывода используется для управления светодиодом. Светодиод излучает при обнаружении движения. Этот же сигнал может использоваться для управления аналогового переключателя или реле для включения осветительной или другой системы.
В качестве последнего аспекта разработки аппаратной части можно использовать линзу Френеля для вычисления направления на движущийся объект. Внутренняя архитектура двойного датчика обеспечивает хорошую помехоустойчивость и защиту от ложного срабатывания, но также создает ограничения по углу обзора. Использование линз позволяет уменьшить эти ограничения.
Программное обеспечение
Для достижения низкого энергопотребления аналого-цифровое преобразование и обработка оцифрованных данных сводится к минимуму, достаточному для определения движения. На рисунке 3 показана структура программного обеспечения приложения.
Рис. 3. Структура программного обеспечения приложения
Программный код состоит из трех элементов: основной программы, обработчика прерываний сторожевого таймера и обработчика прерываний аналого-цифрового преобразователя. Для синхронизации используется сигнал внутреннего низкочастотного малопотребляющего VLO осциллятора. Частота этого сигнала составляет приблизительно 12 кГц, и он подается на линию ACLK. Частота этого сигнала затем делится на 8 и подается на сторожевой таймер, чтобы «будить» ядро каждые 32768 циклов/12 кГц/8 = 341 мс. После инициализации периферийных устройств, ядро входит в режим LPM3 и ожидает прерывания сторожевого таймера.
Каждые 341 мс сторожевой таймер генерирует прерывание. В обработчике этого прерывания выполняются две основные функции: инициируется новая выборка АЦП и включается светодиод, если зафиксировано движение. Если во время предыдущей выборки движение не было зафиксировано (светодиод выключен), включается опорный сигнал SD16_A и производится новое аналогово-цифровое преобразование. Перед тем как выйти из обработчика прерывания, изменяются значения регистра статуса так, что DCO и SMCLK, использующиеся для тактирования АЦП, остаются активными. Это означает, что ЦПУ переходит из режима LPM3 в режим LPM0 после выполнения функции RETI.
Сигма-дельта АЦП, SD16_A, выполняет преобразование за 256 циклов/1 МГц DCO*4 = 1,024 мс. В регистре начальной задержки INTDLYx устанавливается значение 4. Эта установка позволяет АЦП выполнить 4 преобразования перед прерыванием ядра для того, чтобы предотвратить появление неправильных значений после фильтрации с децимацией. Для более подробной информации можно обратиться к документу MSP430x2xx Family Users Guide.
После завершения преобразования запускается процедура обработки прерывания от SD16_A и отключается внутренний источник опорного напряжения. Вычисляется абсолютная разница между новым и предыдущим значением и сравнивается с порогом. Превышение порога означает обнаружение движения. В этом случае включается светодиод. При выходе из обработчика прерываний ЦПУ входит в режим LPM3 (DCO и SMCLK выключены) и снова ожидает прерывания от сторожевого таймера WDT+.
Используя этот алгоритм, можно добиться энергопотребления, достаточного низкого для того, чтобы подключать устройство к стандартной батарейке на 3 В. Средний ток составляет приблизительно 9,4 мкА. В таблице 1 приведены данные по длительности и энергозатратности функций системы.
Таблица 1. Длительность и энергозатратность функций системы
Функция | Длительность | Активный ток, мкА | Средний ток, мкА |
---|---|---|---|
Датчик PIR325 | 1 с | 6 | 6 |
SD16_A и VREF+DCO | 1,024 мс, ~2,94 раз в сек. | 895 | 2,69 |
Активное ядро (1 МГц@3 В) | 262 MCLK в сек.: 262 мкс | 300 | 0,08 |
MSP430 Standby (LPM3) | 996,7 мс | 0,6 | 0,598 |
Алгоритм, реализованный в этом примере, достаточно прост. 2 кБ Flash и 16 MIPS вычислительной мощности микроконтроллера MSP430F2013 позволяет реализовать алгоритмы более высокого уровня с более сложной обработкой.
Подробные схемы устройства, списки компонентов, исходные тексты программ можно найти на сайте производителя.
Литература
1. Ultra-Low Power Motion Detection using the MSP430F2013 (SLAU283).
2. MPS430x2xx Family User's Guide (SLAU144)
3. MSP430F20xx Mixed Signal Microcontroller Datasheet (SLAS491)
4. "Infrared Parts Manual: PIR325&FL65", GLOLAB Corporation, http://www.glolab.com/ , 2003.
Ваш комментарий к статье | ||||