От создателей современных систем радиосвязи и радионавигации требуют поразительных пользовательских характеристик. Всем подавай субметровую точность и мизерные энергопотребление и стоимость при вхождении в связь. И тут на помощь разработчику приходят последние достижения заграничной техники. И как только они нам такое продают!
Точные время и частота — одна из основ характеристик радиотехники. В разностно-дальномерной системе (TDoA) она напрямую определяет точность позиционирования. В связи она определяет временные, энергетические и другие затраты на первичный поиск сигнала по частоте и по времени.
Существующие системы позиционирования, в частности, спутниковые (GPS, ГЛОНАСС) используют настолько хорошие источники частоты и времени, что в число факторов, ограничивающих стандартную точность позиционирования они не входят. Современные сотовые сети (5G) также имеют некоторые требования к точности частоты и времени, хотя и не такие жесткие, как в спутниковой навигации.
Даже в практике простого инженера иногда встречаются задачи, требующие времени и частоты повышенной точности. К примеру, вам нужно изобрести систему позиционирования TDoA с точностью лучше метра. Или необходимо находить длинную широкополосную преамбулу по времени и частоте за приемлемое время и в осмысленном объеме аппаратуры.
Недорогим источником времени является сам спутниковый навигационный сигнал. Уже много лет доступны приемники времени с выводом секундной метки времени UTC (Universal Time, Coordinated). Техника дошла до того, что в характеристиках приемника F9T декларируется точность лучше 2.5 наносекунд (одна сигма). За такое время свет не успевает пролететь и одного метра. И это все за какие-то 155 евро в розницу. И за что такое счастье нам, голодранцам?!
Но на этом все только начинается. Источник-то есть, но он очень маленькой частоты, а радиосистеме нужны большие частоты, и не одна, а лучше несколько. Зачастую эти частоты должны быть строго синфазны или иметь заранее известную разность фаз. Также не будет лишним обеспечить защиту от кратковременного пропадания навигационного сигнала и переключение на резервный источник времени.
Мы должны получить из входной секундной метки опорную частоту. Опорная частота радиосистемы (например, 10 МГц) должна "держаться" за эталон времени, но не настолько, чтобы "гнаться за любым его чихом", иначе частота приема/передачи будет меняться. Фазовый шум — основная характеристика опорного генератора. Естественно, нужно усреднить, отфильтровать входную метку времени, а чтобы усреднить ее нужно много времени. Ведь она приходит только раз в секунду.
Секундные метки также нужны разнесенной системе синхронного сбора цифровых отсчетов. Но эти секундные метки, чтобы быть распознанными правильно, должны иметь определенные фазовые соотношения с тактовым сигналом АЦП. Поэтому исходные, входные метки с приемника спутникового времени не подходят. В среднем они правильные, но в каждую отдельную секунду синфазность входных меток и воссозданной по ним частоты не гарантируется. Нам нужно создать свои метки, синфазные с опорной частотой радиосистемы.
При этом, такая техника должна стоить недорого, воспроизводиться легко и занимать мало места.
К сожалению, в нашем Отечестве пока такое не изобрели, хотя ничего сложного. А вот у наших "вероятных партнеров" такое уже есть.
Из первой страницы даташита на чип AD9545 от Analog Devices мы понимаем, что с его помощью можно синхронизироваться с сигналом 1PPS и получать на выходе минимальный фазовый шум. И еще много чего интересного.
У нас было несколько проектов, требующих точных времени и частоты, и мы решили сделать две платы со следующими характеристиками:
- вход 1PPS, 4 выхода частоты 38.4 МГц и 4 выхода 1PPS;
- вход 1PPS, выходы 1PPS, 10МГц, 120МГц.
Все выходы каждой платы синхронизированы по фазе друг с другом.
В первом случае нам было необходимо синхронизировать разнесенную систему с четырьмя одинаковыми устройствами на каждой точке установки. Во втором – требовалось подстроить сигналы 10МГц и 120МГц под 1PPS и подать их, соответственно, на приемник, АЦП и систему сбора отсчетов сигнала LoRa, собираемых с целью позиционирования.
Основной трудностью при работе с чипом AD9545 было определить конфигурацию, в которой следовало его использовать, так как Analog Devices предлагает множество вариантов подачи сигналов и их обработки:
- 2 дифференциальных входа (4 single-ended)
- 5 дифференциальных выходов (10 single-ended)
- 2PLL + дополнительный (PLL0-1, AuxDPLL)
- 3 варианта компенсации системного клока
- мультифунциональные пины (M1-M6)
Помимо этого, для достижения сверхточных результатов требовалось использование точных и стабильных внутренних генераторов. Конечно, не таких точных, как получаемых в результате работы устройства.
Первым шагом в разработке платы на базе чипа AD9545 был выбор его "сердца" — генератора, тактирующего базовые элементы схемы(SYS_IN).
Analog Devices предоставили возможность использования, как кварцевого резонатора, так и кварцевого генератора в качестве системного клока. В первом случае можно подавать частоты от 25МГц до 60МГц; или от 16МГц до 300МГц во втором случае.
Для простых проектов можно не обращать особого внимания на этот пункт и выбирать максимально подходящий по параметру цена/качество генератор. Но для нашей задачи требовалась как высокая точность и стабильность по частоте, так и малый уровень фазовых шумов. Поэтому мы воспользовались функцией от Analog Devices — System Clock Compensation.
Разработчики создали целых 3 способа компенсации возможных неточностей и нестабильностей тактового сигнала чипа AD9545. Компенсационные коэффициенты, получаемые в ходе их работы, можно подавать на один или несколько следующих элементов:
- DPLL0, DPLL1;
- AuxDPLL;
- AuxNCO0, AuxNCO1;
- TDCs.
Compensation Method 1
Open-loop метод, который работает исходя из данных температурного датчика (внутреннего или внешнего). Значение температуры и полиномиальные коэффициенты (определенные заранее в процессе калибровки) подаются на цифровой фильтр, который вычисляет компенсационный коэффициент.
Compensation Method 2
Closed-loop метод, в котором компенсационный коэффициент генерируется с выхода одного из DPLL. При этом на его вход подается очень стабильный внешний источник.
Такой подход наиболее популярен и надежен. Можно использовать этот метод для повышения точности системного клока на несколько порядков, когда на самом деле физически используется нестабильный VCXO или даже кварцевый резонатор.
Compensation Method 3
Closed-loop метод, во многом повторяющий Compensation Method 2, за тем исключением, что используется дополнительный PLL вместо одного из основных. В этом случае расширяются возможности по использованию двух основных PLL + дополнительного, в случае необходимости использования всех выходов по двум каналам.
Следует отметить, что возможно использование нескольких компенсационных методов вместе. Это должно повысить стабильность работы чипа AD9545.
В нашем случае был использован компенсационный метод №3. Внешним стабильным источником был выбран 20МГц OCXO (20ppb). Такая точность позволила выбрать более дешевый 52МГц кварцевый резонатор (10ppm). Заметьте. резонатор! Его использование придало схеме AD9545 сверхнизкие уровни фазовых шумов, нежели вместо него был бы использован генератор, порождающий значительно больше помех и ненужных эффектов.
Так, была решена основная задача — обеспечить и точность по частоте, и стабильность фазы и малый уровень фазовых шумов выходного набора частот.
Сверяясь, попутно, со средой конфигурации чипов от Analog Devices ACE и представляя, как будет выглядеть финальная настройка параметров AD9545, было решено подавать сигнал 1PPS на тот же вход, что и сигнал от OCXO. В таком случае использовался только 1 канал по линии PLL0 чипа AD9545, что позволяет не использовать лишние ресурсоемкие элементы и понижает энергопотребление. Также не имеет смысла использовать DPLL1 и компенсационный метод №2 из-за того, что на один канал и так подается 2 сверхточных сигнала: 1PPS и 20МГц (20ppb).
Картинка выше и есть среда конфигурации ACE, с которой мы уже практически стали лучшими друзьями за время разработки плат для наших проектов.
Из нее видно, что вход SYS_IN и single-ended входы REFA и REFAA соответствуют нашим прошлым выкладкам. Используется только 1 канал, по линии PLL0. И включены 3 дифференциальных выхода: два на нужные нам частоты (10МГц и 120МГц) и один на 1PPS.
Осталось разобраться, как правильно настроить PLL.
Здесь тоже ребята из Analog Devices не поленились и реализовали возможность использования шести различных профилей PLL с ручным или автоматическим переключением между ними (по приоритетам). При желании можно создать систему подстраховки от потери опорного сигнала и настроить несколько профилей под разные входные сигналы (например, REFA, REFB, AuxNCO0).
Различают 3 вида работы PLL:
-
Phase Buildout Mode;
-
Internal Zero Delay Mode;
-
External Zero Delay Mode.
Пару слов о каждом из них.
Phase Buildout Mode
В режиме фазовой подстройки при смене опорного сигнала у PLL на выходе не будет возникать фазовых возмущений. Это возможно благодаря тому, что чип AD9545 способен определять смещение фазы между старым и новым референсом.
Internal Zero Delay Mode
В режиме нулевой внутренней задержки PLL подстраивает фазу одного из Q-делителей под фазу опорного сигнала, добиваясь того, что и заявлено в названии. В отличие от Phase Buildout это происходит не мгновенно, а постепенно. Пользователь может управлять амплитудой фазовых колебаний подстройки.
External Zero Delay Mode
Режим нулевой внешней задержки очень похож на режим нулевой внутренней задержки. За тем исключением, что путь обратной связи идет через внешнее соединение одного из выходов с некоторым опорным входом. Исходный и полученный таким образом вход выравниваются по фазе.
Так как на вход PLL мы подаем сигнал 1PPS с GPS-приёмника, то мы рассчитываем на их синфазность на нескольких несвязанных физически AD9545. Таким образом для синхронизации нескольких устройств, работающих от AD9545, достаточно использование Int Zero Delay и гарантия того, что время передачи сигнала с выхода AD9545 на вход этих девайсов будет одинаковым. Это благополучно реализуется, так как разводка выпускаемых плат будет совпадать.
Пожалуй, остался последний важный момент, который стоило бы выделить в конфигурации AD9545. Это DPLL Fast Acquisition.
Эта функция, как можно понять из названия, позволяет быстрее добиться результата работы PLL — частотного и фазового захвата (frequency/phase lock).
Основой этой опции является эффективное, запрограммированное пользователем, поведение петлевого фильтра (loop filter). Задается первоначальная ширина полосы фильтра, равная от х2 до х1024 от той ширины, которой требуется добиться. На каждом шаге алгоритма PLL должна дождаться обоих захватов и затем перейти на следующий уровень, более узкий (текущая ширина полосы делится на 2). И так до тех пор, пока не будет достигнута желаемая ширина полосы фильтра (для 1Гц это 50мГц или ниже).
Еще задается длительность захвата и таймаута. Они задают условия перехода на следующий уровень. Так, он происходит при стабильном захвате указанной длительности или, наоборот, его отсутствии на протяжении значения таймаута.
Эта функция очень полезна при малых ширинах полосы фильтра. При работе с сигналом 1PPS очень рекомендуется её использование, так как на практике она в разы снижает скорость получения частотного и фазового захвата.
Основные моменты работы с AD9545 были освещены и можно перейти к результатам, которых мы смогли достичь.
Так, в нашу первую попытку мы не достигли успеха:
- копирование схемы управления Evaluation Board не принесло плодов, пришлось остановиться на классическом варианте с управлением чипа от STM;
- разработанная схема оказалась недостаточно продуманной и требовала добавления патчей;
- не обошлось и без ошибок разводки.
Финальный вариант «подопытного» можно видеть на картинке ниже.
Справившись с горечью поражения, мы не опустили руки, учли предыдущие ошибки, и уже совсем скоро на столе лежала новенькая плата, готовая к нашему пристальному исследованию.
Как видно из рисунка выше, мы использовали связку резонатор+генератор для обеспечения стабильного системного клока с малыми фазовыми шумами, несколько клоковых буферов для получения на выходе 4 идентичных сигналов и прочие мелочи жизни для исправной работы платы.
Для того, чтобы вдохнуть в нее жизнь, был использован наш старый друг — среда разработки ACE от Analog Devices, в которой очень удобно выставлять все необходимые настройки и конфигурационные значения.
После чего можно создавать прошивку для STM и наблюдать упорную работу нашей платы по подстройке частоты и фазы выходных сигналов! Ах да, просто так запустить плату не получится. Нам же нужен источник сигнала 1PPS и, желательно, довольно точный. Ведь от его качества зависит точность и стабильность выходов – наша основная цель.
В качестве источника 1PPS мы использовали Trimble Thunderbolt E GPS-receiver, а также антенну собственной разработки, направленную к далеким спутникам с нашего питерского подоконника.
Точность получаемого сигнала PPS была около 20ns, что на данный момент нас устраивало. К слову, мы уже разрабатываем собственную плату на базе чипа F9T, выдающую сигнал PPS с точностью 5ns, но это тема для другого поста на Хабре.
Вот теперь всё. Все необходимые сигналы подаются на AD9545, можно запускать и лицезреть результат.
Не будем лукавить, с первого раза получить нужный результат не удалось, требовалось оптимизировать конфигурацию AD9545. Но, путем проб и ошибок, мы добились того, чего хотели!
Из видео можно заметить – фазовые колебания выходных сигналов не превышают 1нс!
С такой точностью можно решать множество навигационных и связных задач, в которых требуется подстройка частоты под сигнал 1PPS.
Так, например, с помощью комплекса разработанных плат можно решать задачу позиционирования с достаточно точными результатами. Ранее, с использованием проводной системы синхронизации, в которой фазовые смещения между тактовым и синхросигналом много превышали 1нс и могли доходить до 20нс, были получены следующие результаты:
Эти 2 облака точек воспроизводят координаты, полученные в ходе решения задачи позиционирования на приемниках, улавливающих сигналы от нескольких передатчиков, которые синхронизированны друг с другом. Если принять центр облака за ноль, то можно говорить о точности позиционирования около 15-20см, так как диаметры красного и зеленого облаков примерно одинаковы и равны 30-40см.
Теперь, с системой синхронизации, способной удерживать фазовые колебания меньше 1нс, результаты обещают быть еще точнее и, вероятно, совпадут с заявленными в даташите приемопередатчиков — 10 см!
Спасибо за ваше время и интерес к данной теме!
Развивайте системы точного времени вместе с нами!
Эта статья написана мной в соавторстве с нашим бессменным Мастером систем локального позиционирования и Повелителем времени и частоты — dmitry_syr .
Автор: Игорь Царик (Igor Tsarik)