Настал второй за 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 |
ASIC |
application-specific integrated circuit |
PLL |
phase lock loop |
с |
скорость света 299,792,458 м/c |
ToF |
time of flight |
GNSS |
Global navigation satellite system |
Вывод
Если присутствует механизм точного измерения моментов времени приема и отправки радио пакетов, то можно определять дальность между трансиверами. При этом синхронизация часов не требуется. Однако важна высокая скорость счета часов (+1 за 166ps), высокое разрешение такого таймера и высокая воспроизводимость технологии изготовления стабильных кварцевых резонаторов с PLL. При выполнении этих условий можно делать измерение расстояния между радио трансиверами.
Links
https://habr.com/ru/company/realtrac/blog/282698/
https://habr.com/ru/post/478140/
http://latex.codecogs.com/eqneditor/editor.php
https://www.youtube.com/watch?v=NrSfeQoOvqg
https://www.youtube.com/watch?v=zA27p0Pj30U
ссылка на оригинал статьи https://habr.com/ru/post/719542/
Добавить комментарий