Подписка на новости

Опрос

Нужно ли ввести комментарии к статьям? Комментировали бы вы?

Реклама

2011 №1

Расширение возможностей беспроводных сетей ZigBee: измерение координат узлов

Еркин Александр


Беспроводные сети ZigBee могут использоваться в задачах сбора информации от датчиков с неизвестным заранее расположением, но с необходимостью оперативного получения их координат. В данной статье рассматриваются методы определения местоположения узлов беспроводных сетей ZigBee без использования дополнительных технических средств типа GPS, а только на основе измерений мощности (RSSI) и задержки (ToF) сигналов. Показано, что при расстояниях между узлами порядка десятков и сотен метров практическое значение имеет метод на основе измерения времени пролета сигнала между узлами (ToF). Отмечается, что этот метод аппаратно поддерживается только в беспроводных микроконтроллерах JN5148.

еспроводные сети ZigBee малого радиуса действия с низким потреблением энергии часто используются для сбора информации от множества датчиков, размещенных в здании или на открытой территории. В некоторых приложениях требуется знать координаты датчика, от которого поступил определенный сигнал. Это становится непростой задачей, если при установке датчиков не было возможности точно измерить их координаты либо датчики устанавливались на подвижных объектах. В таких случаях возникает задача оперативного определения координат узла. Конечно, каждый узел может быть снабжен датчиком координат на основе GPS, однако такое стандартное решение сильно усложняет и удорожает систему. Вполне естественно было попытаться реализовать измерения средствами самой сети. В результате для сетей ZigBee были разработаны два метода измерения координат — RSSI, основанный на определении мощности принятого сигнала, и ToF, базирующийся на измерении времени прохождения сигнала между узлами. Рассмотрим эти подходы подробнее.

Метод RSSI

Наиболее простым методом определения дальности до узла является индикация уровня принятого сигнала (Received Strength Signal Indication). Любой беспроводной канал по стандарту IEEE 802.15.4 имеет протокольную функцию оценки качества связи (Link Quality Indicator), действие которой сводится к определению мощности принятого сигнала. Результат этого измерения можно вывести, откалибровать по известному расстоянию и оценить дальность до источника. Измерение расстояния производится следующим образом. Приемник с логарифмической амплитудной характеристикой принимает сигналы, по которым встроенный индикатор RSSI формирует 8-разрядный код RSSIVAL. Этот код получается в результате усреднения по восьми периодам (128 мкс) принятого сигнала и снабжается битом состояния, указывающим, когда RSSIVAL является валидным (т. е. приемник имел возможность принять по крайней мере восемь периодов). Мощность принятого сигнала Р (дБм) вычисляется по формуле:

P = RSSIVAL+RSSIOFFSET,

где RSSIOFFSET — эмпирически подбираемая постоянная (порядка -45 дБм). Поскольку в идеальных условиях мощность обратно пропорциональна квадрату расстояния, то логарифм мощности просто пропорционален расстоянию с некоторым коэффициентом, который устанавливается также эмпирически. Данный подход реализован в микроконтроллерах ZigBee фирмы TI серии CC2431 [3].

Однако этому методу присущ ряд существенных ограничений, поскольку уровень сигнала является весьма изменчивым параметром из-за влияния следующих факторов:

  • быстрые и медленные замирания сигналов на трассе из-за изменения условий распространения радиоволн;
  • многолучевое распространение вследствие отражений от различных металлических предметов;
  • разброс выходной мощности передатчиков и чувствительности приемников;
  • влияние ориентации антенн из-за неравномерности диаграммы направленности.

Из-за воздействия указанных факторов реальная зависимость мощности от расстояния оказывается нелинейной и непостоянной во времени, вследствие чего точность измерений быстро падает с ростом расстояния. Как показано ниже, практическая применимость этого метода сетях в ZigBee ограничена дистанциями примерно до 10 м, при этом расстояние измеряется с точностью около 3 м.

Метод ToF

Другой подход основан на измерении времени прохождения (пролета) сигнала (Time of Flight). Роутер посылает запрос на другой узел, получает ответный сигнал и определяет время его задержки. Полная задержка складывается из аппаратных задержек при обработке принятого и формировании ответного сигналов и времени распространения между узлами. Поскольку технические задержки известны с хорошей точностью, то их можно вычесть из полного значения, и оставшаяся величина будет характеризовать время пролета сигнала туда и обратно. Умножив половину времени задержки на скорость света, получим расстояние между узлами сети. В этом методе обеспечивается линейная связь между расстоянием и измеряемой величиной, и абсолютная точность измерения не зависит от расстояния. Для повышения точности используют многократные повторения процедуры измерения. Реально этот метод эффективен в полном диапазоне дальности работы сети (обычно сотни метров). На рис. 1 приведены экспериментальные результаты измерений расстояния методами RSSI и ToF [2], полученные в сети из микроконтроллеров JN5148. Каждая точка на графике определена путем усреднения 25 измерений.

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

Реализация алгоритма измерения

Для измерения времени пролета сигнала между узлами любой сети ZigBee можно просто использовать один из периферийных таймеров. Перед посылкой запросного пакета таймер запускается, а после приема ответа останавливается. Можно использовать таймер vAHI из оболочки API. Поскольку в большинстве сетей ZigBee отсутствует прямой доступ к регистру микроконтроллера, то vAHI следует ввести в режим повторения и использовать получаемые при этом такты прерывания для получения нужного счета. В качестве варианта реализации такого метода можно использовать следующую программу на языке C:

PUBLIC void vTimer1ISR (uint32 u32DeviceId, uint32 u32ItemBitmap);
PUBLIC void vMeasureResponse(void);
PRIVATE uint32 u32ResponseTimeInMs = 0;
PUBLIC void vMeasureResponse(void)
{
/* set up timer 0 for count */
vAHI_TimerEnable(E_AHI_TIMER_1,
0,
FALSE,
TRUE,
FALSE);
vAHI_TimerClockSelect(E_AHI_TIMER_1,
FALSE,
TRUE); // gate input pin active high
vAHI_TimerStartRepeat(E_AHI_TIMER_1,
0x0000, // null value
16000); // 16000 with no prescaler is 1ms
/* register Timer0 interrupt */
vAHI_Timer1RegisterCallback(vTimer1ISR);
}
PUBLIC void vTimer1ISR(uint32 u32DeviceId, uint32
u32ItemBitmap)
{
u32ResponseTimeInMs++;
}

Запуск этого кода обеспечивает получение задержки в 1 мс, имеющийся параметр 16000 задает период следования прерываний 1 мс при тактовой частоте 16 МГц. При желании этот параметр можно изменить и получить другую частоту прерываний. Возможно также использовать функцию u16AHI_TimerReadCount(), дающую лучшую точность при задержках менее 1 мс.

Метод ToF реализован аппаратно в микроконтроллерах Jennie JN5148 и является исключительной особенностью сетей на этих МК. Функциональная схема микроконтроллера JN5148 приведена на рис. 2. Блок — исполнительный элемент аппаратной реализации ToF. Алгоритм измерения является стандартной функцией программного обеспечения протокола IEEE 802.15.4 микроконтроллеров JT5148.

Подробное описание характеристик МК JN5148 дано в [1], а также приведено на сайте производителя [2]. Текст программы на языке C алгоритма ToF имеется в пакете JN-SW-4043, который доступен для скачивания с веб-страницы [2] всем зарегистрированным разработчикам. В сетях на JN5148 имеются уникальные управляющие пакеты для проведения измерений по методу ToF, в частности, модуль AppApiTof.h на языке С в составе пакета JN-SW-4043. Специальные MAC-патчи для стека позволяют распознать эти пакеты. Цикл измерений занимает не более 10 мс, для индикации используется посылка сигналов с частотой импульсов 16 МГц. Процесс измерения иллюстрирует рис. 3. Сначала отправляется первичный запрос, на него приходит ответ, идентифицирующий узел. Затем посылается запрос с частотой импульсов 16 МГц и запускается счетчик для фиксации времени посылки, после получения ответа счетчик останавливается. Время пролета определяется как половина разности показаний счетчика. Все вычисления с измеренными задержками целесообразно проводить в единицах времени (микросекундах) и только при окончательном выводе пересчитывать в метры умножением на скорость света (300 м/мкс).

Точность измерений в методе ToF

Точность измерений определяется рядом факторов:

  • стабильностью частоты задающих генераторов;
  • задержками фронтов импульсов при приеме и излучении;
  • отношением сигнал/шум;
  • ошибками из-за многолучевого распространения.

Если использовать простейшую обработку без предварительной фильтрации сигналов, то ошибки могут быть весьма большими в первую очередь из-за многолучевого распространения сигналов. Такие условия чаще всего возникают при работе в помещениях или вблизи любых строений. Например, при работе в здании на расстоянии 24 м были получены следующие результаты [3]:

  • измерения дальности путем передачи сигналов по кабелю дали точность 0,75 м (при погрешностях измерения задержек сигнала 5 нс);
  • средняя точность измерения дальности по воздуху составила 5,6 м, при этом максимальные ошибки в 90% случаев не превышали 12,1 м;
  • точность определения координат на основе попарных измерений дальности составила 3,5 м с максимальной ошибкой в 90% случаев более 6,2 м.

При измерениях на местности с той же аппаратурой на дальности 180 м были получены следующие результаты:

  • средняя ошибка измерения дальности составила 3,9 м при максимальной ошибке в 90% случаев до 9,1 м;
  • ошибка определения координат узлов в пределах участка 20x35 м составила 2,2 м при максимальной ошибке в 90% случаев до 4,6 м.

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

Дальнейший путь повышения точности измерений в сетях ZigBee (более чем на порядок) возможен путем усложнения алгоритма обработки. Такой подход был практически реализован и описан в материалах конференции [4]. Для получения высокой точности даже в условиях многолучевого распространения использовался синтез когерентных сигналов в нескольких каналах и применялся специальный метод оценки фазы сигнала, при этом полоса спектра сигнала была расширена до 80 МГц. Использовались стандартные посылки пачек импульсов. Согласно полученным в [4] экспериментальным результатам, при использовании обычных кварцевых генераторов в сети с несущей частотой 2,4 ГГц максимальные ошибки измерения не превышали 16 см, а среднеквадратичная точность определения координат узлов составила 3 см. При замене на высокостабильный термокомпенсированный кварцевый генератор максимальная ошибка и среднеквадратичная точность составили соответственно 9 и 1 см.

Определение расстояния — это только первая часть задачи локализации узла. Для нахождения координат необходимо измерить расстояние из двух разнесенных точек с известным местоположением (рис. 4).

Если при измерениях расстояния из двух узлов 1 и 2 до узла 3 были получены значения R12, R13 и R23 между ними, то угол направления а на узел 3 относительно базовой линии 1-2 можно найти по формуле:

cos α = (R12²+R13²-R23²)/(2R12R13).

Для повышения точности измерений следует многократно повторить процедуру измерений и усреднить результат.

Измерение расстояний — не единственная возможность сетей ZigBee. При использовании высокоточных алгоритмов измерения можно также определять скорость перемещения узла. Оценку скорости можно делать по изменению расстояния при нескольких последовательных измерениях. По измерениям из двух точек можно найти только проекцию скорости на направление на известный узел. Если же измерять дальность из трех или более точек, то можно определить проекции скорости на направление на эти узлы и по ним уже найти полный вектор (величину и направление) скорости. Цикл измерения расстояния в сетях Jennie не превышает 10 мс при работе со смежным узлом, поэтому можно делать измерения десятки раз в секунду. При времени измерения 1 с можно определить скорость с точностью около 2-3 м/с, а в системе с высокоточным алгоритмом — на порядок точнее.

Выводы

  • Метод определения расстояния между узлами на основе RSSI пригоден для измерений на небольших расстояниях (до 10 м).
  • Метод ToF обладает рядом преимуществ перед RSSI, особенно при измерениях на больших расстояниях (порядка сотен метров).
  • При использовании метода ToF возможно определение координат и вектора скорости движения узлов сети ZigBee.
  • Серия беспроводных микроконтроллеров JN5148 обладает уникальными встроенными возможностями для определения расстояния между узлами сети ZigBee.
  • Для разработчиков сети ZigBee на микропроцессорах Jennie имеются готовые системные функции ToF API на языке C.

Литература

  1. Еркин А. Н. Особенности проектирования беспроводных ZigBee-сетей на базе микроконтроллеров фирмы Jennie // Беспроводные технологии. 2010. № 2.
  2. http://www.jennic.com
  3. Описание микроконтроллера CC2431 // http://focus.ti.com/docs/prod/folders/print/cc2431.html.
  4. Материалы конференции 22-24 января 2008 г. (доступны только по подписке) // http://ieeexplore.ieee.org/xpl/mostRecentIssue. jsp?reload=true&punumber=4456902.

Скачать статью в формате PDF  Скачать статью Беспроводные технологии PDF


Другие статьи по данной теме:

Сообщить об ошибке