Фоновый модулятор: беспроводная связь из ничего (перевод)


4   Конструкция сетевого стека

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


4.1 Физический уровень

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

Модуляция и кодирование данных: В связи с тем, что фоновый модулятор работает, переключаясь между отражающим и поглощающим состоянием, естественной для него будет амплитудная манипуляция (ON-OFF keying). Но, как обсуждалось выше, отражённый сигнал будет интерферировать с телесигналом и, таким образом, в зависимости от положения, единице может соответствовать как увеличение, так и уменьшение мощности. Для разрешения данной проблемы на физическом уровне используется кодирование FM0 [17], которое превращает каждый бит в два символа и кодирует данные, используя переходы между этими символами. При FM0 переход есть в начале каждого битового промежутка и, кроме того, для единичного бита есть переход посередине битового интервала, а для нулевого нет. Таким образом, биты передаются перепадами уровней мощности, а не самими уровнями, и гарантируется равенство числа единичных и нулевых символов.


Рисунок 7. Формат пакета. Передача начинается с последовательности из нулей и единиц и преамбулы, далее идут заголовок и данные.
Рисунок 7. Формат пакета

Обнаружение начала пакета: В начале каждого пакета передаётся вводная часть (преамбула) определённого вида, которая отлавливается цифровой частью приёмника (в данном проекте - микроконтроллером) по известным сочетаниям уровней сигнала. В отличие от RFID систем, в которых пассивные метки отзываются только после "накачки" считывателем, фоновый переотражатель "не знает", когда соседнее устройство начнёт передачу, и поэтому должно постоянно находиться в состоянии поиска начала пакета, что затратно с энергетической точки зрения и потому нетипично для малопотребляющих устройств.

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

Чтобы накопить достаточную для "пробуждения" цифровой части разницу уровней, перед самой преамбулой передаётся длинная последовательность (в данном проекте восемь) нулей и единиц (см. рис. 7). После пробуждения микроконтроллер использует традиционные методы обнаружения границ полей и разделения пакета на части.

4.2 Канальный уровень

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

На рисунке 7 паказан формат используемого пакета. Посылка начинается с преамбулы, несколько первых бит которой используются для пробуждения аппаратуры приёмника, а остальная часть - для обнаружения приёмником начала пакета. За преамбулой следует заголовок, содержащий признак типа пакета (данные/ACK), адреса источника и приёмника и длину. Сразу за заголовкам идёт блок данных. Для обнаружения ошибок и в заголовок, и в блок данных включены поля CRC. Кроме того, данные могут защищаться простыми кодами коррекции ошибок, например, Хэмминга, кодами с повторениями и т.п. [33]. Пакет считается принятым, если обе контрольные суммы сходятся. Если данные приняты правильно, то до истечения периода таймаута они должны быть подтверждены пакетом ACK. Таймаут определяется временем декодирования формата и скоростью переключения из приемного состояния в передающее. Ниже будет представлен метод контроля несущей, позволяющий распределять среду передачи между отдельными устройствами.


4.2.1 Контроль несущей

До настоящего момента обсуждались только вопросы связи одной пары передатчик - приёмник, но если в пределах зоны приёма находится несколько таких пар, то требуется механизм распределения канала между ними. В классических RFID системах эту задачу выполняет считыватель, подключённый к внешнему питанию. Фоновое переотражение не может использовать данный метод и требует иных механизмов управления доступом к среде передачи.

В отличие от RFID переотражение имеет возможность декодировать данные других участников. Это, в свою очередь, позволяет в перспективе реализовать контроль несущей: надо найти начало пакета (обнаружение преамбулы) и измерить энергию в середине пакета (измерение мощности). Сравнение заголовка в шаблоном для контроля несущей ничем не отличается от обычного распознавания пакетов при приёме, а вот оценка энергии - нетривиальная задача, потому что имеющаяся аппаратура не может её измерять.

Чтобы понять проблему, взглянем на систему связи, подобную WiFi, где уровень сигнала вычисляется по среднему значению мощности, а пакет обнаруживается по более высокому, чем пороговый, уровню мощности. Такая операция требует наличия классического АЦП, выполняющего измерения для последующей обработки. Фоновый переотражатель не имеет АЦП и, соответственно, данные об уровне излучаемой мощности ему недоступны.

Рассмотрим способ оценки мощности с помощью компаратора. В отличие от обычных приёмников, которые даже в отсутствие передатчика имеют на выходе хаотичные изменения, вызванные посторонним шумом, выход аналогового компаратора в отсутствие передачи стабилен. Это происходит благодаря имеющемуся у компаратора пороговому уровню, ниже которого изменения сигнала не регистрируются (см. §4.1). Из-за того, что фильтр сглаживает изменения входного сигнала, его вариации не могут обычно вызвать изменений, достаточных для преодоления входного порога. Это означает, что в отсутствие переотражателя на выходе компаратора постоянно находится или единица, или нуль. Передатчик вызывает изменения, превышающие входной порог, и приводят к изменению состояния выхода компаратора. Благодаря кодированию FM0 число нулей и единиц во входном потоке одинаково и равно числу нулей и единиц на выходе. Сравнением числа нулей и числа единиц можно выявить наличие передачи. То есть приёмник детектирует энергию с помощью следующего выражения:

eq_4

где "#ones" и "#zeros" обозначают число единиц и нулей, принятых за один и тот же промежуток времени. При наличии передачи число нулей и единиц будет почти одинаковым, а значение "D" будет близко к единице, а в отсутствие передачи на выходе компаратора будет в основном какое-то одно значение и "D" будет близко к нулю. Результаты, приведённые в части 6, показывают, что данная идея работает даже в меняющемся окружении и в движении.

Следует отметить, что передатчик контролирует несущую, только непосредственно перед передачей (если у него есть данные). Обнаружив постороннее излучение микроконтроллер может заблокировать прерывания по изменению сигнала и "заснуть" на всемя передачи одного пакета, минимизируя расход энергии. (*3)


4.3 Направление возможного развития

До настоящего момента обсуждались вопросы функционирования (контроль несущей, обнаружение пакетов и т.д.), необходимые для построения сети, но есть и другие направления оптимизации, которые могут поднять общую производительность системы, как то:

(a) Разная скорость передачи: Прототип работает на фиксированной скорости из набора 100 bps, 1 kbps или 10 kbps, но в общем случае можно построить единое устройство, которое сможет переключать скорость передачи. Более того, возможно построение системы, использующей подстройку скорости под условия канала и повышающей тем самым эффективность.

(b) Предупреждение столкновений: контроль несущей позволяет создать подобный CSMA протокол канального уровня, который позволит разделение среды передачи между многими устройствами. Возможно дальнейшее снижение числа столкновений, через механизм предупреждения коллизий. В этом может помочь работа [12], в которой рассматривается генерация случайных чисел в RFID устройствах.

(c) механизм косвенного подтверждения связи: устройства могут использовать механизм RTS-CTS подтверждения непосредственно, но дополнительные затраты на передачу этих сигналов можно снизить, заменив их на уникальные преамбулы пакетов, обозначающих RTS пакет и CTS отзыв. Посторонние узлы, принявшие такие сообщения, должны сохранять молчание в течение времени, необходимого на передачу данных и возврат подтверждения.

5   Реализация прототипа

Прототип собран на четырёхслойной печатной плате с использованием широко распространённых компонентов. Топология платы делалась в среде Altium и изготавливалась фирмой Sunstone Circuits. 20 печатных плат обошлись в $900. Схемы паялись вручную и проходили индивидуальную проверку. Вся работа заняла 50 человеко-часов. Как видно на рисунке 2 в прототипе используется дипольная антенна из двух пятидюймовых 2x5.08in (258мм) отрезков провода клибра 16 AWG. Схема и компоненты настроены на UHF телесигнал с центральной частотой 539 MHz с шириной полосы 50 MHz. (*4)

В передатчике используется RF переключатель ADG902 [3], подсоединённый прямо к антенне. Формат передаваемого пакета представлен на рисунке 7. Данные могут пересылаться со скоростями 0.1, 1 и 10 кбит в секунду. С помощью цифровой логики проверяется соответствие преамбулы и оценка мощности, нужная для контроля несущей. Текущая версия не использует коды коррекции ошибок и рассчитана на пакет фиксированного формата: 64 бита преамбула и 96 бит данных.

Схема, описанная в §3.3, использует малопотребляющий компаратор TS881 [8]. Его выход заводится на микроконтроллер MSP430, выполняющий сравнение преамбулы, декодирование пакета и проверяющий контрольную сумму. Номиналы компонентов R1, R2, C1 и C2 (рис. 6) под нужную скорость передачи берутся из таблицы 1. [* номинал "1µF**" (так в оригинале) вероятнее всего следует читать "1nF" ]


Таблица 1. Номиналы компонентов для разных скоростей передачи
  R1 R2 С1 С2
100 bps 150k    10M    27nF    200nF   
1 kbps 150k 10M 4.7nF 10nF
10 kbps 150k 10M 680pF 1µF**

[* Универсальный вариант может состоять из трёх схем под разные скорости, подключенных к трём разным выводам микроконтроллера. Выбор скорости передачи сводится к выбору конкретной ноги в качестве источника данных]

В таблице 2 представлены сравнительные данные потребления аналоговых частей прототипа и WISP, построенного по традиционной RFID схеме [33]. Числа в таблице показывают, что экспериментальная схема потребляет значительно меньшую мощность, чем WISP. Это происходит, потому что переотражатель работает на скорости 10 kbps, в то время как соперник - на 256 kbps. Низкая скорость позволила оптимизировать потребление и уменьшить абсолютные цифры.


Таблица 2. Мощность, потребляемая аналоговыми компонентами
  Tx Rx
Фоновый модулятор 0.25µW 0.54µW
Традиционная схема (WISP [33]) 2.32µW 18µW

Прототип имеет три ёмкостных сенсора, выполненных в виде печатных проводников, и двух светодиодов для демонстрации возможностей концепта. Конечно, датчики и микроконтроллер заметно увеличивают энергопотребление. В демонстрационном приложении "транспортная-карта" передатчик тратит менее 1% общей мощности, ещё 1% забирает демодулятор, 8% - схема управления питанием, 26% - мигающие светодиоды. Оставшиеся 64% уходят микроконтроллеру. (*5)

Отметим, что в условиях слабого внешнего сигнала, режим работы устройства меняется. В промежутках сна энергия телесигнала запасается в конденсаторе фильтра. Рабочий цикл задаётся аппаратно схемой контроля питания. Когда напряжение на конденсаторе превысит 1.8 V, схема выводит микроконтроллер в активный режим, чтобы он выполнил необходимые действия.

ПредпросмотрAttachmentSize
comm153_liu.zip395.04 КБ