Настал второй за 10лет случай, когда в профессии программист‑микроконтроллеров понадобилась математика. Она нужна чтобы решить задачу из радиотехники.
Могут ли радио трансиверы определять дальность между собой? Можно сказать: «Да, конечно. Можно отправлять пакеты со своими GNSS координатами». Но что если нет GNSS приемников в составе оборудования? Пусть это вообще indoor оборудование. В чём сложность технологии радио определения дальности? Всё, что есть в распоряжении это возможность пулять и ловить пакеты.

Допустим, что у нас есть возможность точно запоминать моменты времени отправки и приема радио пакетов. После этого сразу жизнь становится намного веселее.

Тогда формально можно вычислить интервалы t_fly, t_delay, t_loop. Итак, дано:
Переменная | Комментарий | Единица измерения |
t_tx | Время отправки на трансивере A | с |
t_rx | Время приема на трансивере А | с |
T_tx | Время отправки на трансивере B | с |
T_rx | Время приема на трансивере B | с |
с | Скорость света в воздухе | м/c |
Найти расстояние R между трансиверами и выразить его в метрах.

Tак как радиоволны распространяются со скоростью света, то получается, что зная t_fly можно вычислить расстояние между трансиверами. R=c*t_fly.

Называется эта технология Time Of Flight (ToF). Всё на бумаге кажется ровным. Даже нет нужды в синхронизации начала счета часов двух трансиверов. Кажется что всё прекрасно. Однако нет. Тут же возникают неприятные вопросы: Какая нужна точность измерения времени отправки? Как добиться одинакового периода увеличения разрядов в двух таймерах? Каков механизм регистрирования TimeStamp(ов)?
Какое должно быть разрешение таймера измерения времени?
Допустим мы хотим измерять расстояние с точностью +-5см. Сколько времени нужно свету чтобы пройти 5см?

Свету надо 166ps, чтобы пролететь 5см. Это значит, что аппаратный таймер должен тактироваться на частоте более 5995849160 Hz =5995849.16 kHz=5995.84916 MHz=5.99584916 GHz.

Нужен всего‑то таймер на 6+GHz. И можно начинать говорить про radio ranging. Есть ли такие аппаратные таймеры в ASIC радио чипах? Ответ: да.
Как добиться одинакового периода увеличения разрядов в двух таймерах?
Можно поменять местами initiator и responder и повторить процесс, а затем взять среднее арифметическое от двух рассчитанных расстояний.
Акроним | Расшифровка |
ps | picoseconds |
DS-TWR | Double-sided Two-way Ranging |
ASIC | application-specific integrated circuit |
PLL | phase lock loop |
SS-TWR | Single-sided Two-way ranging |
с | скорость света 299,792,458 м/c |
ToF | time of flight |
GNSS | Global navigation satellite system |
Вывод
Если присутствует механизм точного измерения моментов времени приема и отправки радио пакетов, то можно определять дальность между трансиверами. При этом синхронизация часов не требуется. Однако важна высокая скорость счета часов (+1 за 166ps), высокое разрешение такого таймера и высокая воспроизводимость технологии изготовления стабильных кварцевых резонаторов с PLL. При выполнении этих условий можно делать измерение расстояния между радио трансиверами.
Links
Система обнаружения сближения на базе технологии UWB
Запись сверх-широкополосных сигналов стандарта 802.15.4 UWB на почти санкционной технике
Online LaTeX Equation Editor - create, integrate and download
Fira Presents: Understanding UWB Ranging Techniques