Настал второй за 10лет случай, когда в профессии программист‑микроконтроллеров понадобилась математика. Она нужна чтобы решить задачу из радиотехники.
Могут ли радио трансиверы определять дальность между собой? Можно сказать: «Да, конечно. Можно отправлять пакеты со своими GNSS координатами». Но что если нет GNSS приемников в составе оборудования? Пусть это вообще indoor оборудование. В чём сложность технологии радио определения дальности? Всё, что есть в распоряжении это возможность пулять и ловить пакеты.
![](https://habrastorage.org/getpro/habr/upload_files/803/50c/ace/80350caceb4bf74154a8ef10b37f2f0e.png)
Допустим, что у нас есть возможность точно запоминать моменты времени отправки и приема радио пакетов. После этого сразу жизнь становится намного веселее.
![](https://habrastorage.org/getpro/habr/upload_files/282/100/ab6/282100ab686ca35b5642075635233e78.png)
Тогда формально можно вычислить интервалы t_fly, t_delay, t_loop. Итак, дано:
Переменная | Комментарий | Единица измерения |
t_tx | Время отправки на трансивере A | с |
t_rx | Время приема на трансивере А | с |
T_tx | Время отправки на трансивере B | с |
T_rx | Время приема на трансивере B | с |
с | Скорость света в воздухе | м/c |
Найти расстояние R между трансиверами и выразить его в метрах.
![](https://habrastorage.org/getpro/habr/upload_files/43d/513/5ab/43d5135abfcd72bd77908f5a6348c98d.png)
Tак как радиоволны распространяются со скоростью света, то получается, что зная t_fly можно вычислить расстояние между трансиверами. R=c*t_fly.
![](https://habrastorage.org/getpro/habr/upload_files/9ee/4a6/99b/9ee4a699b1aeb9503187e88b068048a1.png)
Называется эта технология Time Of Flight (ToF). Всё на бумаге кажется ровным. Даже нет нужды в синхронизации начала счета часов двух трансиверов. Кажется что всё прекрасно. Однако нет. Тут же возникают неприятные вопросы: Какая нужна точность измерения времени отправки? Как добиться одинакового периода увеличения разрядов в двух таймерах? Каков механизм регистрирования TimeStamp(ов)?
Какое должно быть разрешение таймера измерения времени?
Допустим мы хотим измерять расстояние с точностью +-5см. Сколько времени нужно свету чтобы пройти 5см?
![свету надо 166ps чтобы пролететь 5см свету надо 166ps чтобы пролететь 5см](https://habrastorage.org/getpro/habr/upload_files/9b5/789/6be/9b57896be94d55262550b4f7595f7c1a.png)
Свету надо 166ps, чтобы пролететь 5см. Это значит, что аппаратный таймер должен тактироваться на частоте более 5995849160 Hz =5995849.16 kHz=5995.84916 MHz=5.99584916 GHz.
![](https://habrastorage.org/getpro/habr/upload_files/aae/eb6/2eb/aaeeb62eb8d9e1055edd617b5ff2bc36.png)
Нужен всего‑то таймер на 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