Построение измерительных систем на основе беспроводных сенсорных сетей

№ 1’2010
PDF версия
В статье рассматривается пример проектирования измерительной системы с применением современных беспроводных технологий, осуществленного в рамках учебного процесса на кафедре ИУ3 «Информационные системы и телекоммуникации» МГТУ им. Н. Э. Баумана. Для беспроводной передачи данных используется технология MeshLogic — программно-аппаратная платформа для построения беспроводных сенсорных сетей.

Введение

отладочная плата MeshLogic MLM-DB и модуль ML-Module-Z

В современном мире технологии беспроводной передачи данных получают все большее и большее распространение. Они востребованы в промышленности, обеспечении безопасности, бытовом обслуживании, медицине, автоматизации и др. Сегодня основным стандартом в сфере беспроводных сенсорных сетей (Wireless Sensor Network, WSN) является технология ретранслируемой ближней радиосвязи 802.15.4/ZigBee [1]. Разработками в этой области занимаются такие компании, как Crossbow, Grape, DEXMA, SkyControl [2, 3, 4, 5]. Несколько в стороне стоит отечественная разработка MeshLogic [6], реализующая собственные протоколы и алгоритмы передачи и маршрутизации данных. Важной характеристикой подобных решений является простота реализации конкретной сети на универсальных беспроводных модулях. В данной статье описывается процесс разработки БСС на отладочных платах MeshLogic MLM-DB, предназначенных для быстрого освоения радиомодулей ML-Module-Z и макетирования беспроводных устройств на основе технологии MeshLogic (рис. 1).

Беспроводная сеть состоит из множества оконечных устройств с автономными элементами питания и одной базовой станции, которая соединена с ПК и имеет стационарное питание. Функция оконечных узлов заключается в периодическом опросе подключенных к ним датчиков и передаче результатов измерения базовой станции, которая транслирует их на ПК по интерфейсу USB для отображения и последующего анализа.

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

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

 

Аппаратная часть

Принципиальная схема сопряжения

На отладочной плате MLM-DB установлен микроконтроллер MSP430F1611 с интегрированным 12-разрядным АЦП, все 8 входов которого выведены на 20-контактный штыревой разъем расширения X1. Поскольку этих возможностей недостаточно для подключения тензорезисторов, для сопряжения с датчиками необходимо разработать мезонинную плату, устанавливаемую на разъемы X1 и X2.

Данная плата должна содержать многоразрядный малошумящий АЦП с низким энергопотреблением, а также силовой ключ для управления питанием тензодатчика. При выборе АЦП стоит обратить внимание на устройства с сигма-дельта архитектурой, поскольку они обеспечивают высокую разрешающую способность (16–24 разряда), а особая скорость работы в данном случае не требуется. В плате используется сигмадельта АЦП AD7799 фирмы Analog Devices [7], так как в нем имеется встроенный фильтр и усилитель входного сигнала, что является существенно важным для решения поставленной задачи. Это 24-битный сигмадельта АЦП, работающий в диапазоне частот 4,17–470 Гц. Важными его особенностями являются низкий потребляемый ток (380 мкА в активном режиме, 1 мкА в «спящем»), программируемый коэффициент усиления (1–128), а также наличие трех дифференциальных входов. Для взаимодействия АЦП и МК используется интерфейс SPI, сигналы которого также доступны на разъеме расширения X1.

Далее необходимо подобрать силовой ключ для управления питанием датчика. Выбранный ранее АЦП уже имеет в своем составе такой ключ, но его допустимый ток (30 мА) слишком мал. Кроме того, требуется ключ с минимальным сопротивлением открытого перехода, сравнительно малым временем открытия-закрытия, низким энергопотреблением и максимальным управляемым током 150–200 мА. В итоге было принято решение использовать ключ фирмы Analog Devices ADG819, который позволяет управлять током до 200 мА, имеет сопротивление открытого перехода 0,8 Ом, а скорость переключения составляет 10–26 нс. Управление ключом выполняется с помощью цифрового выхода микроконтроллера MSP430.

Так как в процессе эксплуатации вероятна установка датчика на значительном расстоянии от узла БСС, для повышения точности предполагается использование датчиков с интегрированным измерительным мостом и 6-проводная схема их подключения к плате. Для уменьшения шумов и наводок особое внимание уделялось правильному расположению цепей питания и заземления. В итоге была получена достаточно простая принципиальная схема (рис. 2), реализованная в виде двухслойной печатной платы.

 

Программная часть

Встроенное программное обеспечение должно реализовать алгоритмы сбора, нормализации и передачи данных с различных аналоговых датчиков, распределенных в пространстве. Особо важными аспектами работы встроенного ПО являются:

  • Наличие системы нормализации сигнала, включающей подсистемы фильтрации и линеаризации, а также подсистему приведения кода АЦП к измеряемой величине.
  • Низкое энергопотребление.
  • Возможность работы ПО как в режиме базовой станции, так и в режиме оконечного устройства, выбор между которыми выполняется с помощью джампера на контактах 3-4 разъема X2.

Блок-схема беспроводной системы измерения

Несмотря на то, что АЦП выдает результат в 24-разрядном коде, считать все разряды на сто процентов достоверными не представляется возможным, так как в системе присутствует внутренний шум АЦП, а также случайные внешние наводки различного происхождения. Гарантированная точность АЦП сильно зависит от скорости его работы и установленного коэффициента усиления. Для повышения точности измеряемой величины было решено использовать фильтр «скользящее среднее» с буфером на десять отсчетов, при этом предполагается, что максимальное и минимальное значения в буфере являются ложными.

Основной недостаток подобной фильтрации — длительность установки фильтра вследствие продолжительного заполнения конвейера новыми значениями. Поэтому для увеличения скорости реакции системы на изменение измеряемой величины перед фильтром был реализован алгоритм проверки с учетом анализа ложных выбросов АЦП [8].

Для уменьшения энергоемкости вычислений на базовой станции приведение кода АЦП к измеряемой величине осуществляется также на оконечном устройстве. Для этого выход фильтра умножается на полученный в результате калибровки коэффициент приведения к весу.

Экспериментально было выяснено, что, в связи с достаточной линейностью сигнала, полученной с помощью системной калибровки АЦП, использование аппроксимационного полинома не требуется. Полученное значение веса передается в модуль MeshLogic ML-Module-Z, который сам осуществляет передачу и маршрутизацию пакета до базовой станции (рис. 3).

Обеспечение низкого энергопотребления характерно для режима работы в качестве оконечного устройства, так как по топологии сети базовая станция подключается к ПК и питается от нее по USB-интерфейсу. В режиме оконечного устройства реализован переход платы в режим пониженного энергопотребления между измерениями (T = 2 c). Для этого МК переводится в режим LPM3, АЦП переводится в дежурный режим, выключается питание датчика. Средний ток, потребляемый оконечным устройством, приблизительно равен 0,5 мА. Для устранения наводок во время работы АЦП модуль MLModule-Z переводится в дежурный режим. Стоит отметить, что делать это на продолжительное время недопустимо, так как может возникнуть изменение топологии сети.

Интерфейс с модулями ML-Module-Z достаточно прост и представляет собой набор команд, реализуемых по схеме «запрос-ответ», при которой последующая команда должна передаваться модулю только после получения ответа на предыдущую. Команды могут быть различной длины, но первый байт — это всегда код команды, а последующие — данные. Ответы модуля имеют такой же формат, с одним лишь отличием: в случае успешного выполнения код ответа равен коду команды, а иначе он равен коду команды с единицей в старшем бите. Так как команды переменной длины, используется алгоритм кадровой синхронизации Consistent Overhead Byte Stuffing (COBS) [9], суть которого заключается в том, что кадр не содержит байт 0x00, поэтому символ 0x00 используется в качестве признака конца кадра. Набор команд, поддерживаемых модулем ML-Module-Z, является одновременно простым и достаточно функциональным (табл.).

Для получения первоначальных результатов важно правильно настроить последовательный интерфейс UART для работы с модулем (данные — 8 бит, скорость — 115 200 бит/с, один стоп-бит, без контроля четности). Затем нужно настроить для базовой станции и оконечного устройства соответствующие режимы (код команды 0х05, далее — номер и приоритет базовой станции; если номер равен 0xFF — режим оконечного устройства). После этого можно передавать данные (код команды 0х09). Однако здесь существует свой «подводный камень». По крайней мере, на период отладки необходимо установить небольшие периоды передачи сигнальных пакетов (параметры LinkPeriod и RoutePeriod, код команды 0x06), иначе после включения питания модулю потребуется продолжительное время для сбора информации о текущей конфигурации сети, и может показаться, что передача не осуществляется из-за ошибки разработчика.

Также не стоит пытаться постоянно в цикле передавать данные, так как тогда модуль будет всегда занят этими безуспешными попытками, у него просто не останется времени на отправку сигнальных пакетов и он не будет «знать» о конфигурации сети. Дополнительно необходимо сконфигурировать АЦП и USART-USB мост на оконечных устройствах и базовой станции соответственно. Отдельно отметим, что для устранения возможности потери данных и работы модуля «вхолостую» очень важно проверять и обрабатывать коды ошибок, полученных от модуля.

Визуализация и накопление информации, полученной с датчиков, производится на персональном компьютере. ПО получает данные от базовой станции MeshLogic через интерфейс USB, реализованный на UART-USB мосте CP2102 фирмы Silicon Laboratories, и обрабатывает их нужным конечному пользователю образом (рис. 4). Для корректной работы пользовательского приложения необходима установка в системе пакета драйверов для плат MeshLogic.

Таблица. Набор команд модуля ML-Module-Z
Код команды (ID) Название
0x01 Чтение/установка частотного канала
0x02 Чтение/установка идентификатора сети и адреса модуля
0x03 Установка выходной мощности передатчика
0x04 Чтение серийного номера
0x05 Чтение/установка параметров базовой станции
0x06 Чтение/установка периодов передачи сигнальных пакетов
0x07 Чтение информации о сетевом окружении
0x08 Сканирование частотного диапазона
0x09 Передача адресного пакета
0x0A Передача широковещательного пакета
0x0B Чтение принятого пакета
0x0C Переход в дежурный режим
0x0D Чтение/установка параметров монитора питания
0x0E Установка скорости последовательного интерфейса
0x20 Сохранение параметров во флэш-памяти
0x51 Чтение номера версии программного обеспечения

 

Испытания

Испытания системы производились с тензометрическим датчиком нагрузки PW6K фирмы HBM [10], который обладает чувствительностью 2,0±0,1 мВ/В, диапазоном измеряемой величины от 5 г до 20 кг и нелинейностью 0,0150%. Исследование точности системы показало, что на выходе получено около 18 «чистых» разрядов, а нелинейность измерений составила порядка 3 г, чего вполне достаточно для поставленной задачи.

Также было рассчитано среднее энергопотребление оконечного устройства — 0,5 мА, что дает около 400 суток бесперебойной работы от 4 щелочных батарей типоразмера AA со средней емкостью 2400 мА·ч.

 

Заключение

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

В данной статье было наглядно показано, что создание подобной БСС на модулях MeshLogic является вполне доступной задачей для обучающихся разработке электронных устройств и разработчиков, не имеющих большого опыта. При этом в процессе проектирования были получены практические навыки в следующих областях:

  • современные беспроводные технологии связи;
  • проектирование аналого-цифровых измерительных систем;
  • разработка принципиальных схем и трассировка печатных плат в САПР;
  • методы цифровой обработки сигналов;
  • разработка встроенного ПО для микроконтроллеров и прикладного ПО для ПК.

Таким образом, отладочные комплекты MLM-DK могут найти широкое применение в учебном процессе на профильных кафедрах технических вузов.

Литература
  1. http://www.ieee802.org/15/pub/TG4.html
  2. http://www.xbow.jp/ecowiz-e.files/frame.htm /ссылка утрачена/
  3. http://www.grapenetworks.com/ /ссылка утрачена/
  4. http://www.dexmatech.com/
  5. http://www.skycontrol.com/ /ссылка утрачена/
  6. http://www.meshlogic.ru/
  7. http://www.analog.com/ru/index.html
  8. Слаттери К., Най М., Ларионов Д. Высокоточные электронные весы на основе AD7799 и ADUC847 // Компоненты и технологии. 2006. № 5.
  9. Cheshire S., Baker М. Consistent Overhead Byte Stuffing. IEEE/ACM Transactions on Networking, Volume 7. 1999.
  10. http://www.hbm.ru/

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *