Программно-аппаратные методы измерения расстояния по времени распространения радиосигнала при помощи приемопередатчика nanoLOC
Основные характеристики приемопередатчика nanoLOC
Большинство предлагаемых сегодня цифровых беспроводных приемопередатчиков используют для кодирования данных различные методы цифровой манипуляции: амплитудную, частотную или фазовую (ООК, FSK, GFSK, PSK). Компания Nanotron запатентовала технологию цифровой манипуляции линейно-частотными импульсами, которая получила название Chirp Spread Spectrum (CSS), и реализовала ее на практике в своей микросхеме nanoLOC.
Применение внутриимпульсной линейно-частотной модуляции, как известно [1], позволяет оптимальным образом использовать частотную полосу и добиваться наилучших показателей по сравнению с другими видами модуляции с точки зрения помехоустойчивости и скорости передачи данных. Кроме того, линейно-частотная модуляция позволяет более точно определять время поступления радиосигнала, что широко используется в локационных системах.
С помощью приемопередатчика nanoLOC можно передавать данные на скорости до 2 Мбит/c в условиях с повышенным уровнем помех и одновременно измерять расстояние между приемником и передатчиком. Поскольку измерение расстояния осуществляется во время обычной пересылки данных, реализация этой функции не ведет к увеличению энергопотребления, не требует дополнительных аппаратных средств и дополнительной пропускной способности канала передачи данных. Основные характеристики приемопередатчика nanoLOC приведены в таблице 1.
Частотный диапазон, ГГц |
2,4 |
|
Метод модуляции |
Chirp Spread Spectrum (CSS) |
|
Мощность передатчика (программируемая), дБм |
–33… 0 |
|
Чувствительность приемника, дБм |
–97 |
|
Скорость передачи данных (программируемая) |
125 кбит/c… 2 Мбит/c |
|
Отношение сигнал/шум |
От 0 до 3 дБ при уровне сигнала –65 дБм |
|
Погрешность определения расстояния, м |
внутри помещения |
2 |
на открытом пространстве |
1 |
|
Ток потребления приемника, мА |
33 |
|
Ток потребления передатчика |
30 мА @ 0 дБм |
|
Ток потребления в спящем режиме, мкА |
1,2 |
|
Напряжение питания, В |
2,3–2,7 |
|
Рабочий температурный диапазон, °С |
–40… +85 |
Приемопередатчик демонстрирует характерную для диапазона 2,4 ГГц дальность передачи, которая составляет десятки метров (30–50 м) внутри помещения и сотни метров (200–300 м) вне помещения и может быть увеличена при помощи внешнего усилителя мощности.
Встроенный контроллер MAC-уровня приемопередатчика nanoLOC формирует передаваемые данные в пакеты, поддерживает механизм случайного доступа к среде (CSMA/CA) и механизм временного разделения (TDMA), реализует функцию коррекции ошибок передаваемых данных (FEC-Forward Error Correction) и обеспечивает аппаратное 128-битное шифрование. Для того чтобы уменьшить требования к программному обеспечению и управляющему микроконтроллеру, приемопередатчик nanoLOC также поддерживает скрэмблирование, автоматическую фильтрацию адресов и ретрансляцию пакетов.
Для задания режимов работы и буферизации передаваемых данных приемопередатчик nanoLOC содержит 128 встроенных регистров и оперативную память 512 байт.
Схема включения
Схема включения приемопередатчика nanoLOC представлена на рис. 1. Для связи с управляющим микроконтроллером используются интерфейс SPI, одна линия прерывания и сигнал сброса.
Приемопередатчик nanoLOC имеет два встроенных тактовых генератора, требующих подключения внешних кварцевых резонаторов. Высокочастотный генератор работает на частоте 32 МГц и предназначен для тактирования цифровой части кристалла во всех рабочих режимах. Второй генератор, использующий часовой кварцевый резонатор, является основой системы реального времени и служит источником тактового сигнала в энергосберегающих режимах. Приемопередатчик nanoLOC содержит также встроенный RC-генератор, который нужен для формирования выходного ЛЧМ-импульса. Этот генератор периодически калибруется приемопередатчиком по высокочастотному кварцевому генератору в автоматическом режиме или по запросу приложения. Частота калибровки зависит от стабильности окружающей температуры. В демонстрационных приложениях эта операция выполняется с интервалом три секунды. В приложениях, в которых устройства переводятся в спящий режим на более длительный срок, рекомендуется выполнять калибровку сразу после выхода из энергосберегающего режима перед посылкой данных. В случае если вы уверены в стабильности температуры, можно увеличить интервал между калибровками до нескольких минут.
Приемопередатчик nanoLOC имеет четыре цифровых программируемых входа/выхода со встроенными конфигурируемыми цепями подтяжки к шине питания или к шине «земля». Эти выводы можно использовать для опроса состояния контактов, управления внешними устройствами и индикации состояния приемопередатчика.
ВЧ-выводы приемника и передатчика симметричны и раздельны, есть также сигнал для управления ВЧ-ключом, подключающим антенну поочередно к выходу передатчика или ко входу приемника. Разработчик может добавить в тракт передатчика усилитель мощности, а в тракт приемника — малошумящий входной усилитель. В случае использования несимметричной антенны потребуется симметрирующий трансформатор.
Схема кодирования Chirp Spread Spectrum и выбор параметров ЛЧМ-импульса
На рис. 2 показаны два вида ЛЧМ-импульсов, или chirp-импульсов, используемых приемопередатчиком nanoLOC для передачи данных в эфир. Импульсы с линейно нарастающей и спадающей частотой получили соответственно названия “upchirp” и “downchirp”. При помощи программирования конфигурационных регистров приемопередатчика nanoLOC можно задавать параметры chirp-импульсов в следующих пределах:
- ширина полосы Df: 80; 22 МГц;
- длительность chirp-импульса tsymbol: 0,5; 1; 2; 4 мкс;
- период следования chirp-импульсов tsperiod:
- 0,5; 1; 2; 4 мкс (при полосе 80 МГц);
- 2; 4 мкс (при полосе 22 МГц).
Приемопередатчик nanoLOC позволяет строить различные схемы кодирования (рис. 3) как с использованием одновременно двух типов chirp-импульсов (рис. 3а) (импульс upchirp — «лог. 1», импульс downchirp — «лог. 0»), так и с использованием только одного вида импульсов и логики включен/выключен (рис. 3б, в). Второй способ кодирования позволяет иметь два физических канала передачи данных, разделяющихся по виду используемых chirp-импульсов.
Chirp-импульсы служат для передачи сигнала в эфир. На выходе передатчика и на входе приемника применяются согласованные с сигналом фильтры, которые преобразуют chirp-импульсы в sync-импульсы и наоборот (рис. 4). Вместе с первыми приемопередатчиками компании Nanotron для этого преобразования применяли внешнюю керамическую дисперсионную линию задержки, использующую частотозависимые свойства распространения акустических волн. Таким образом, первые приемопередатчики Nanotron имели аналоговый согласованный фильтр. Разработчикам приемопередатчика nanoLOC удалось перейти к цифровому согласованному фильтру и встроить его в микросхему, что позволило снизить количество внешних компонентов.
Sync-импульс представляет собой автокорреляционную функцию chirp-импульса. Ширина основного лепестка sync-импульса, согласно теории радиотехники [1], составляет 2/Df, где Df — девиация частоты в chirp-импульсе. Таким образом, наиболее узкий по времени sync-импульс получается при максимально широкой полосе частот chirp-импульса Df. Поэтому для более точного определения времени поступления радиосигнала приемником nanoLOC необходимо при его конфигурировании выбирать более широкую полосу 80 МГц. Как было отмечено выше, есть возможность сузить полосу приемопередатчика до 22 МГц программным способом. Это необходимо делать только в тех приложениях, в которых требуется иметь несколько частотных каналов, понимая при этом, что введение дополнительных частотных каналов достигается ценой увеличения погрешности определения расстояния между приемником и передатчиком.
Амплитуда основного лепестка sync-импульса пропорциональна длительности сhirp-импульса. Поэтому для увеличения помехоустойчивости желательно выбирать максимально возможную длительность импульса — 4 мкс, но при этом скорость передачи данных будет наименьшей. Таким образом, на практике длительность chirp-импульса необходимо подбирать таким образом, чтобы соответствовать поставленным требованиям по скорости передачи данных и при этом все еще иметь достаточный запас помехоустойчивости в планируемой помеховой обстановке.
Методы измерения расстояния
Приемопередатчики nanoLOC осуществляют измерение расстояния по времени распространения радиосигнала. При этом в программном обеспечении компании Nanotron реализованы два различных метода измерения расстояния: TOA (Time Of Arrival) и TDOA (Time Difference Of Arrival) [4]. В первом случае измеряется непосредственно время распространения радиосигнала между приемником и передатчиком. Во втором случае мобильный узел, местоположение которого необходимо определить, регулярно излучает широковещательное сообщение-маяк, а стационарные синхронизированные узлы определяют разницу времени поступления к ним сигнала-маяка.
Метод TOA реализован в отладочном комплекте KN200L [6] и программном обеспечении, поставляемом с этим комплектом. Схема измерения, реализующая метод TOA предложенная компанией Nanotron, получила название SDS-TWR (Symmetrical Double Sided — Two Way Ranging) (рис. 5). Она позволяет обойтись без синхронизации часов приемника и передатчика и осуществлять измерение с погрешностью, не превышающей 2 м, при использовании стандартных кварцевых резонаторов, уход частоты которых не превышает 40 ppm.
На рис. 5 показано, что узел А, запрашивающий измерение расстояния до узла B, посылает на удаленный узел сообщение. Узел B формирует подтверждающий пакет (Ack) на физическом уровне, не обращаясь к уровню приложения. Первый узел измеряет время Т1 прохождения сигнала от первого узла ко второму и обратно. Поскольку начало и конец интервала измерения фиксируются таймером одного и того же устройства, не требуется заботиться о синхронизации часов. Узел В тоже участвует в измерении. Он измеряет время обработки Т2, которое ему потребовалось, чтобы сформировать подтверждающий пакет. Узел B выполняет измерение на физическом уровне, но при этом сообщает на верхний уровень приложения о том, что поступил запрос на измерение расстояния от удаленного узла. Только после того как верхний уровень предоставит разрешение на измерение, процесс измерения продолжится и повторится еще один раз в противоположном направлении. Теперь узел В первым посылает сообщение и измеряет время Т3 прохождения сигнала туда и обратно, а узел А измеряет время Т4, потребовавшееся для формирования пакета подтверждения. Вычисление расстояния затем осуществляется по формуле:
S = 0,25С × (T1–T2+T3–T4), (1)
где C — скорость распространения электромагнитной волны.
Чтобы применить эту формулу, очевидно, необходимо иметь все четыре результата измерения — Т1, Т2, Т3 и Т4 — на одном узле. Программный драйвер, предлагаемый компанией Nanotron, поддерживает три возможных режима измерения: 3W-A, 3W-B, 2W-PP. В первых двух случаях требуется еще одна пересылка данных, которая собирает все результаты измерения соответственно на узле А или В. В последнем случае третьей пересылки не требуется, так как при вычислениях используются результаты, полученные в предыдущем цикле измерений и переданные во время пересылки сообщений в текущем цикле измерений.
На базе описанной схемы измерения SDS-TWR было разработано демонстрационное приложение LocationDemo, входящее в состав отладочного комплекта KN200L компании Nanotron [6]. Это приложение позволяет осуществлять мониторинг мобильной метки, перемещающейся между стационарно расположенными опорными узлами (рис. 6).
Мобильная метка для определения своей координаты поочередно измеряет расстояние до нескольких опорных узлов и сообщает результаты измерения через базовую станцию-шлюз на локализационный сервер, который осуществляет вычисление координаты мобильной метки и отображает ее перемещения при помощи графического интерфейса.
Метод измерения TDOA реализован в системе nanoPAL [7] локализации мобильных устройств компании Nanotron (рис. 7). Эта система также содержит стационарные опорные узлы с известными координатами. Однако мобильный узел теперь сам не выполняет измерений. Он только периодически рассылает широковещательное сообщение-маяк, которое принимают все опорные узлы, находящиеся в зоне радиовидимости мобильного узла. Опорные узлы фиксируют моменты времени поступления радиосигнала T1, T2, T3, T4… Tn и передают эту информацию на локализационный сервер. Поскольку все опорные узлы синхронизированы и их координаты известны, сервер может вычислить координаты мобильного узла и момент времени, когда широковещательный сигнал был послан в эфир.
Компания Nanotron предоставляет описание протокола обмена данными между мобильным узлом и опорными узлами для того, чтобы пользователи могли добавлять в систему nanoPAL свои мобильные метки.
Каждый из представленных методов измерения имеет свои достоинства и недостатки. Достоинство метода TOA заключается в том, что он не требует синхронизации узлов. Однако при использовании этого метода мобильная метка очень сильно загружает эфир, так как для измерения расстояния она должна много раз связываться с каждым из опорных узлов. Это не позволяет иметь в системе большое количество мобильных меток и приводит к быстрому истощению батарей мобильного узла.
В системе nanoPAL мобильная метка, послав широковещательное сообщение-маяк, сразу переходит в энергосберегающий режим, в котором и находится большую часть времени, не загружая эфир и сохраняя ресурс батарей. Использование метода TDOA позволяет иметь в системе nanoPAL до 1000 мобильных узлов, которые могут работать без смены батарей до шести месяцев. Недостатком системы nanoPAL можно считать необходимость резервного высокоскоростного канала связи между опорными узлами и локализационным сервером. В настоящее время этот канал реализован при помощи проводной сети Ethernet, но теоретически можно реализовать сбор данных от опорных узлов и беспроводным способом.
Программное обеспечение для приемопередатчика nanoLOC
Компания Nanotron в составе отладочного комплекта KN200L предоставляет разработчикам каркас приложения (Framework), который базируется на драйвере nanoLOC. Структура драйвера представлена на рис. 8. Нижний уровень IC соответствует операциям, выполняемым приемопередатчиком nanoLOC. Все остальные уровни представляют собой программное обеспечение, реализованное на хост-процессоре, которым обычно является встраиваемый микроконтроллер. Самый верхний уровень — это уровень приложения, то есть та программа, которую пишет конечный пользователь. Компания Nanotron предоставляет два уровня, которые соответствуют физическому уровню передачи данных стандартной семиуровневой модели взаимодействия устройств OSI. При этом для удобства пользователей все программы, зависимые от типа используемого микроконтроллера, выделены в отдельный уровень аппаратной абстракции Hardware Adaptation Layer. Драйвер реализован для микроконтроллеров ATmega1284P. При необходимости использовать другой тип процессора потребуется внести изменения только в уровень аппаратной абстракции.
Интерфейс между уровнем аппаратной абстракции и уровнем приемопередатчика представляет собой физический интерфейс между хост-процессором и приемопередатчиком nanoLOC. Он включает скоростной последовательный интерфейс SPI, сигнал прерывания от приемопередатчика и сигнал сброса от микроконтроллера.
Взаимодействие между программными уровнями осуществляется при помощи запросов-заданий, которые верхние уровни посылают нижним при помощи функций SAP (Service Acsses Point) и функций обратного вызова (callback-функций) для передачи информации снизу вверх. На рис. 8 показаны функции, которые уровень приложения использует для взаимодействия с драйвером nanoLOC. Функция PDSAP(MsgT *msg) предназначена для передачи на нижний уровень данных, функция PLMESAP(MsgT *msg) — конфигурационной информации. При помощи функции обратного вызова APLCallback() драйвер nanoLOC передает на уровень приложения входные сообщения. Параметрами всех перечисленных функций являются указатели на структуры данных, передаваемых между уровнями. Ниже приведено описание такой структуры.
typedef struct { uint8_t prim; //имя примитива AddrT addr; //MAC-адрес узла-получателя (6 байт) uint8_t len; //длина сообщения uint8_t *pdu; //указатель на начало буфера данных uint8_t data[CONFIG_MAX_PACKET_SIZE]; //передаваемые данные (не более 128 байт) uint8_t status; //используется в сallback-функциях uint16_t value; //значение атрибута uint8_t attribute; //имя атрибута } MsgT;
Разнообразие выполняемых запросов, которые можно послать драйверу, определяется набором операций, называемых примитивами. Имя примитива указывается в описанной выше структуре в поле prim. Перечень основных примитивов приведен в таблице 2. Видно, что конфигурирующая функция PLMESAP() может выполнять всего две операции — установить или считать значение атрибута. Под атрибутами понимаются конфигурационные настройки приемопередатчика nanoLOC, наиболее важные из которых приведены в таблице 3.
Имя примитива |
Используется в функции |
Описание операции |
PD_DATA_REQUEST |
PDSAP() |
Запрос передачи данных |
PD_RANGING_REQUEST |
PDSAP() |
Запрос на измерение расстояния |
PD_DATA_CONFIRM |
APLbackCallback() |
Подтверждение передачи данных от аппаратной части |
PD_DATA_INDICATION |
APLCallback() |
Прием сообщения от удаленного узла |
PD_RANGING_CONFIRM |
APLCallback() |
Подтверждение старта измерения от аппаратной части |
PD_RANGING_INDICATION |
APLCallback() |
Прием ответа на запрос измерения расстояния |
PLME_GET_REQUEST |
PLMESap() |
Запрос значения атрибута |
PLME_SET_REQUEST |
PLMESap() |
Запрос на установку значения атрибута |
Имя атрибута |
Описание |
PHY_LOG_CHANNEL |
Установка ширины полосы, скорости передачи символа и ID частотного канала |
PHY_CHANNEL |
Установка центральной частоты для канала c заданным ID |
PHY_TX_POWER |
Установка мощности передачи от –33 до 0 дБм |
PHY_ARQ |
Разрешение/запрещение автоматической ретрансляции |
PHY_FEC |
Разрешение/запрещение функции Forward Error Correction |
PHY_ADDR_MATCHING |
Разрешение/запрещение автоматической фильтрации адресов |
NTRX_RTC |
Доступ к системе подсчета реального времени |
PHY_PWR_DOWN_MODE |
Переход в режим пониженного энергопотребления |
PHY_RECALIBRATION |
Разрешение/запрещение автоматической циклической калибровки локального RC-генератора |
PHY_MAC_ADDRESSl |
Установка локального MAC-адреса |
Каркас приложения предоставляется в виде проекта в исходных кодах, подготовленного в среде AVRSTUDIO для компилятора GCC.
Весь код, который создается конечным пользователем для уровня приложения, должен размещаться в одном файле app.c. Этот файл должен содержать как минимум код для функций APLInit(), APLPoll(), APLCallback(). Подпрограмма APLInit() вызывается основной программой каркаса приложения во время инициализации и должна содержать код, выполняющий инициализирующие действия, необходимые конечному пользователю. Подпрограмма APLPoll() будет циклически вызываться из основного цикла приложения. С ее помощью пользователь задает алгоритм своего приложения. При помощи функции обратного вызова APLCallback() драйвер nanoLOC передает на уровень приложения полученные сообщения и дает возможность пользователю задать код для обработки этих сообщений.
В качестве примера пользователю предоставляется исходный код нескольких демонстрационных проектов, которые показывают, как организовать пересылку сообщений и одновременно измерить расстояния по схеме SDS-TWR между беспроводными узлами, построенными на базе приемопередатчика nanoLOC.
В заключение хочется отметить, что компания Nanotron успешно разрабатывает на базе своих приемопередатчиков системы мониторинга мобильных объектов в реальном времени. В качестве примера уже реализованных и функционирующих систем можно назвать системы мониторинга детей в детских садах, системы контроля перемещения людей и машин в шахтах, системы отслеживания скота. В настоящее время становятся также популярными системы оповещения о выходе определенных объектов из заданной зоны. Такими контролируемыми объектами могут быть дети, пожилые люди, животные. Таким образом можно отследить и передвижение каких-то ценных вещей. Сейчас инженеры компании Nanotron работают над беспроводной системой локализации с топологией «рой» (swarm), в которой все узлы будут подвижными.
- Баскаков С. И. Радиотехнические цепи и сигналы. 2000.
- Артеев В., Долгушин С. Беспроводные сети nanoNET // Беспроводные технологии. 2005. № 1.
- Аникин А. Определение местоположения мобильного объекта с помощью приемопередатчиков nanoLOC фирмы Nanotron // Беспроводные технологии. 2007. № 3.
- Real Time Location Systems. A White Paper from Nanotron Technologies GmbH.
- nanoLOC TRX Transceiver (NA5TR1). User Guide. Vesion 2.00
- nanoPAN 5375 Development Kit. UserGuide. Version 1.1
- nanoPAL RTLS Toolbox. UserGuide. 4
- wless.ru