Как сделать домашный GPS приемник?
Я был мотивирован, чтобы разработать этот приемник после прочтения работы [1] Матьяж Видмар, S53MV, который разработал приемник GPS с нуля, используя в основном дискретные компоненты, более 20 лет назад.
Я был мотивирован, чтобы разработать этот приемник после прочтения работы [1] Матьяж Видмар, S53MV, который разработал приемник GPS с нуля, используя в основном дискретные компоненты, более 20 лет назад. Его использование DSP после жестких предельных ПЧ и 1-битный АЦП меня интересовало. Приемник описанные здесь работает по тому же принципу. Его 1-битный АЦП 6-контактный IC возле разъема для, LVDS-выхода компаратора. Скрытые под шум, но не уничтожен в двухуровневой квантованной кашу, которая возникает являются сигналы от всех спутников в поле зрения.
Все GPS спутники передают на той же частоте, 1575, 42 МГц, с использованием прямого спектра распространения последовательности (DSSS). L1 перевозчика распространяется на 2 МГц и свои силы на поверхности Земли -130 дБм. Тепловая мощность шума в той же пропускной способностью -111 дБм, так сигнал GPS на приемную антенну ~ 20 дБ ниже уровня шума. Это любой настоящей сигналы накладываются друг на друга и похоронен в шум, подлежат возмещению после двухуровневое квантование кажется нелогичным! Но магия DSSS позволяет, конечно.
GPS основана на авто-и кросс-корреляционные свойства псевдослучайных последовательностей называется Золотой коды для разделения сигнала от сигнала и сигнала от шума. Каждый спутник имеет уникальную последовательность. Обнаружение можно выше минимального сигнал-шум (SNR). Все некоррелированных сигналов шума, в том числе других спутников и квантования ошибки. Жесткий ограничитель (1-битный АЦП) на самом деле только ухудшает SNR менее чем на 3 дБ, цена, которую стоит платить, чтобы избежать аппаратных АРУ.
Архитектура
Мой домашний приемник GPS состоит из двух печатных плат: внешний описанных выше и платы FPGA от предыдущего проекта синтезатором частоты, который не предназначен для повторного использования, таким образом. FPGA находится под контролем"C"программное обеспечение, работающее на ПК подключен к FPGA Xilinx с помощью кабеля USB Платформа JTAG. JTAG медленно, но то и GPS скорость передачи данных. FPGA в режиме реального времени обработки сигнала автономно. Его роль принципа являются: синтез первого гетеродина и ПЧ DSP. Вычислительная «тяжелой атлетике», такие как БПФ на основе поиска и решения для пользователя положение выполняются на компьютере.
Это четырех-канальный GPS-приемник, который означает, что он может отслеживать четырех спутников одновременно. Минимум четыре должны решить для пользователя положение и смещение часов приемника. Внутри FPGA, отслеживание модуль создается в четыре раза. В принципе, больше каналов могут быть легко добавлены, просто изменяя размер массива например Verilog, однако Spartan 3 XC3S400 почти на 100%. Можно было бы отслеживать больше спутников на мультиплексирования каналов между спутниками, но это еще не изучены.
L1 1575, 42 МГц перевозчик вниз преобразуется в первой ПЧ (промежуточной частоты), 22, 5 МГц и усиливается аналог средств. Впоследствии все IF и обработки полосы сигнала DSP на FPGA. Каждый из четырех каналов имеет цифровой PI контроллеры для отслеживания носителей и код фазы. 50 бит NAV данные собраны в четырех воспоминания FIFO. Они опрошенных через JTAG на"C"программное обеспечение на компьютер, который выполняет проверку четности, идентификации и расшифровки подрамники. После того, необходимо эфемерид собирается, снимка некоторые внутренние счетчики в FPGA. Исходя из этого, в четыре раза передачи вычисляется с точностью ± 0, 1 мкс.
Фронтальный
Сигнал обработке вплоть до жесткого ограничителя:
LMH7220 компаратор имеет максимальное напряжение смещения на 9. 5mV. Усиленный тепловой шум должен превышать это удобно держать его переключения. Слабые сигналы GPS только влиять на компаратор около нуля переходы! Они"пробы"шумом! Чтобы оценить уровень шума на вход компаратора мы табличной форме прибыли, вносимых потерь и шума цифры:
LNA ПАВ Коаксиальный RF Смесители Если общий коэффициент шума системы
Получить +28, 5 -1, 5 -3, 9 +19, 0 -6
NF 0, 8 1, 5 3, 9 3, 3 6 7 1 дБ
В диапазоне шум на выходе смесителя является -174 +1 +28. 5-1. 5-3. 9 +19-6 +10 * log10 (2. 5e6) = -73 дБм или 51μV RMS. Смеситель резистором прекращено в 50-ом, и после этого этапа работы на более высокий импеданс. Дискретным, если полоса имеет общий коэффициент усиления по напряжению 800, так что уровень компаратором вход 40 мВ RMS.
LMH7220 добавляет 59 дБ усиления что в общей сложности 116 дБ на весь IF. Развертывание столько усиления на одной частоте был риск. Чтобы свести его к минимуму, сбалансированная схема по твердой земле самолет был использован и экранированная витая пара осуществляет выход на FPGA. Мотивация была простота, избегая второго преобразования. На практике схема устойчива, так что игра выплачивается-офф.
Активное Q1 развязки обеспечивает 5В для удаленного МШУ. MMIC усилитель U2 обеспечивает 19 дБ усиления (не ЕСЛИ!) И обеспечивает низкий общий коэффициент шума системы, даже если длинный кабель антенны используются. L1 и L2 с ручным заводом дроссели микроволновой печи с очень высокой собственная резонансная частота, установленная перпендикулярно друг к другу и от земли самолет. Ветер 14 витков, с воздушным сердечником, 1 мм в диаметре от 7 см длиной 32swg эмалированной медной проволоки. Проверено с ГКЧ на Marconi 2383 SA, они были хорошими до 4 ГГц.
Mini-Circuits MBA-15L DBM был выбран из-за его низкой 6 дБ потерь преобразования на частоте 1, 5 ГГц и низким 4 дБм требование диска LO. R9 завершает Если порт.
Три полностью дифференциальные УПЧ этапы следуют в смеситель. Низкий Q параллельный колебательный цепи нанизаны между коллекционерами установить -3 дБ полоса пропускания 2, 5 МГц и предотвратить наращивание смещения постоянного тока. L4, L5 и L6, проверяются Токо 7мм катушек. BFS17 был выбран из-за его высокой (но не слишком высоко) с частотой 1 ГГц FT. То есть это 2 мА на самый низкий уровень шума и разумной βre.
1-й ПЧ цифрового понижающего преобразования до 2, 5 МГц при дискретизации 10 МГц в ПЛИС. 2, 5 МГц лежит в центре полосы пропускания 5 МГц Найквиста. Альтернативные первый IF частоты 12, 5, 17, 5 и 27, 5 МГц. Существует компромисс между образом проблемы при более низких и доступных BFS17 усиления на высоких частотах. Оба 22, 5 МГц и 27, 5 МГц были опробованы успешно. 17, 5 и 27, 5 МГц спектр продуктов инверсии на 2-й ПЧ.
Поиск
Сигнал обнаружения предполагает решение трех неизвестных: то, что спутники с учетом их доплеровского сдвига фаз и код. Последовательный поиск этого трехмерного пространства от так называемого"холодного старта"может занять несколько минут. "Теплый старт", используя данные альманаха для прогнозирования положения и скорости по-прежнему требует поиска кода. Все фазы код 1023 должны быть проверены, чтобы найти максимальный пик корреляции. Расчет 1023 интегралы корреляции во временной области является очень дорогим и излишним. Этот приемник GPS использует БПФ на основе алгоритма, который проверяет весь код фазы параллельно. От холода, она занимает 2, 5 секунды, на 1, 7 ГГц Pentium для измерения силы сигнала доплеровского сдвига фаз и код каждого видимого спутника.
Более бар обозначающие сопряжения, кросс-корреляционная функция у (Τ) в комплексный сигнал S (T) и код С (Т) сдвигается на смещение Τ является:
Корреляция теорема гласит, что преобразование Фурье корреляционного интеграла равна произведению комплексно-сопряженное преобразование Фурье от первой функции и преобразование Фурье второй функции:
FFT (у) = сопряженных (FFT (ы)) * FFT (с)
Корреляция осуществляется в полосе частот. 1, 023 Мбит C / A код 1023 чипсы или 1 мс долго. БПФ длина должна быть кратна этому. Частота дискретизации и БПФ длины выбрана дать 500 Гц бен размера. 21 доплеровский сдвиг, проверяются вращающихся в частотной области данных, один Бен в то время, до ± 10 ячеек = ± 5 кГц. Вращение может быть применен к любой функции.
22, 5 МГц первого, если с 1-битный АЦП по-пробы по 10 МГц в ПЛИС, вниз-превращающего его 2-ой ПЧ 2, 5 МГц. Хотя это и не показано выше, образцы хранятся в памяти FIFO до передачи JTAG. В ПК, 2-й ПЧ преобразуется в комплекс полосы (IQ) с использованием квадратурной местных осцилляторов. Смесители просты ворота XOR, так как сигналы всех би-уровня. Комплекс полосы превращается в частотной области вперед БПФ, которые должны быть рассчитаны только один раз.
БПФ вперед также необходим для C каждого спутника / код. Память разрешений, они могут быть заранее рассчитаны, но поколение по требованию не так дорого. 1, 023 Мбит скорость кода генерируется с ЧПУ-генератор (НКО) аккумулятора фазы. В отличие от 2. 5, которая как раз в квартал, 1, 023 МГц не является суб-гармоники частоты дискретизации. Следовательно, выход НКО имеет дробный шпоры. Количество сэмплов на микросхеме, содержит код сильного возбуждения между 9 и 10.
Время преобладает внутреннее, большинство которых выполняет цикл передач, сопряжения, комплексного умножения и одного обратного БПФ-на спутник доплеровский тест. Существует значительный потенциал для оптимизации текущего кода. На 10 МГц частота дискретизации, код этапа будет решен до ~ 100 нс, которая кажется немного экстравагантно. Типичные выходные СРС показано ниже:
Расчет пик средняя мощность на этих данных дает хорошую оценку SNR и используется, чтобы найти самый сильный сигнал (ы). Следующие были получены в 20: 14 GMT 4 марта 2011 года в Кембридже, Великобритания с антенной на за пределами Северной обращенных подоконнике:
PRN NAVSTAR Доплера (Гц) Код фазы SNR
9 33 1500 2, 4 95, 3
17 57 500 364, 5 98, 4
22 53 1000 844, 7 54, 1
27 27 0 770, 0 53, 8
28 48 -3000 103, 9 99, 1
В северных широтах, больше спутников GPS обычно можно найти в южном небе, т. е. по направлению к экватору.
Отслеживание
После сканирования неба и выбран самый сильный сигнал, то следующим шагом будет блокировка на, отслеживая ее и демодуляции 50 б. п. NAV данными. Это требует двух взаимозависимых фазы автоподстройки частоты (PLL) для отслеживания кода и фазы несущей. Эти ФАП должен работать в режиме реального времени и реализованы в виде функции DSP на FPGA. Программное обеспечение имеет надзорные функции: решить, какие спутники для отслеживания, мониторинга состояние блокировки и обработки полученных данных NAV.
Отслеживание ФАП хорошо на поддержание замка, потому что они имеют очень узкую полосу пропускания петля, однако эта же особенность делает их бедными на приобретение замок без посторонней помощи. PLL не может"видеть"за цикл пропускной способности, чтобы захватить все дальше. Начальные фазы и частоты должны быть установлены к измеряемой фазы кода и доплеровского сдвига целевого спутника. Это организовано под контролем компьютера. Петли должны быть в замок с самого начала и так и останется. НКО смятение, казалось бы, не проблема.
Время обработки зависит ПК и есть задержки в связи JTAG, однако код фазы измеряется по отношению к 2 мс образца. Чтобы отметить это точка отсчета, код НКО в FPGA сбрасывается на начало отбора и накопления фазы при фиксированной 1, 023 МГц. Я предполагал, НКО в дальнейшем могут быть приведены в соответствие с полученным кодом простым вычитанием измеренного фазы код, но он не работает. Доплеровский сдвиг на 1575, 42 МГц перевозчик ± 5 кГц или ± 3 промилле. Это также влияет на 1, 023 Мбит скорость кода на ± 3 фишки в секунду. К счастью, код Допплера пропорционально носитель Доплера, который, как известно, и код фазы доплеровского коррекция может быть рассчитана на прошедшее время.
Тонкие следы 1-бит, условно представляющий ± 1. 2, 5 МГц перевозчик сначала despread путем смешивания с раннего, позднего и пунктуальный код. Я и Q сложных продуктов полосе со второго ранга XOR смесители ворот складываются более 10000 образцов или 1 мс. Этот низкочастотный фильтр повышает SNR 34 дБ, уменьшая шум пропускная способность от 2, 5 МГц до 1 кГц. Понижение разрешения до 1 кГц требует широкого далее данные пути.
Цикл код отслеживания используется обычный рано-поздно ворот. Власть в раннем и позднем каналов рассчитывается P = I2 + Q2 которые нечувствительны к фазе несущей θ. Ранние и поздние коды одном чипе, кроме т. е. ½ чип-вперед и за пунктуальным. Эта схема позволяет получить сообщение об ошибке смысле правильно:
Костас Loop используется для отслеживания носителей и восстановления данных NAV в пунктуальный канала. θ является фазовой ошибки от полученного носителя (без модуляции) и местных НКО. Я * Q продукт на самом деле ½. K2. d2 (г). Грех (2θ), что примерно k2θ для малых θ, так как D (T) равна ± 1. NAV данными, D (T), с обычным 180 ° фазу неопределенности, берется из рук I-бит знака. Loop фильтр F (г) является дискретным временем пропорционального интеграла (PI) контроллер. Тот же К. и К. в настоящее время используется как для петель. Ниже Боде открытым контуром усиления и шаг ответ:
Цикл полосы пропускания ~ 3 Гц. Мощность шума в этом пропускная способность крошечных и петли могут отслеживать очень слабые сигналы. Поскольку у нас нет программного обеспечения AGC, усиление петли и пропускную способность меняться в зависимости от силы сигнала. Потому что поиск использует 500 Гц БПФ бункеров, первоначальный носитель НКО может быть до 250 Гц от частоты, потенциально ставит перевозчика за понимание цикла. Некоторые GPS приемники имеют"тянуть в"режиме, когда полоса частот сужается только после блокировки обнаружено.
Код цикл всегда блокирует, но носитель цикла иногда нуждается в помощи. Я заметил, носители близко к оригиналу Если центральная частота 2, 5 МГц были наиболее проблематичными и понял, что это было связано с дробным делителем шпоры на НКО. Огромный шаг вперед был получен путем сдвига ПЧ до 100 кГц. Будучи дробно-N синтезатор, первый гетеродин был легко изменено на 1552, 82 МГц перемещения первой и второй IF частот 22, 6 МГц и 2, 6 МГц соответственно.
Эти спектры показывают, перевозчик НКО установить 50 Гц выше, если центры 2. 5 и 2. 6 МГц. Оригинальная центральная частота была одной четверти частоты дискретизации. Шпоры безопасно дальше, когда частоты не находятся в простое соотношение. Несмотря на это улучшение, есть еще время, когда петли Костаса не в состоянии блокировать или, скорее, как"C"код моделирование показало, приобретает ложный замок. С главной целью решения для пользователя положение в поле зрения и не желая застревали вниз с этой проблемой, я решил для полуавтоматической (или полуавтоматический, если ваш стакан наполовину пуст) процедура, при которой частота НКО может быть"подтолкнул"ключом-прессы, если NAV поток данных не восстанавливается сразу.
NAV данные
Следующий фрагмент NAV данные были получены в 21: 46: 45 по Гринвичу вторник, 1 февраля 2022:
10001011 00001001010101 01010001110001111 00 110100 01 001 11 1011 00
10001011 00001001010101 01010001110010000 00 110100 01 010 01 1000 00
10001011 00001001010101 01010001110010001 00 110100 01 011 11 1010 00
10001011 00001001010101 01010001110010010 00 110100 01 100 01 0101 00
10001011 00001001010101 01010001110010011 00 110100 01 101 11 0111 00
10001011 00001001010101 01010001110010100 00 110100 01 001 10 0101 00
10001011 00001001010101 01010001110010101 00 110100 01 010 11 1111 00
10001011 00001001010101 01010001110010110 00 110100 01 011 10 0011 00
10001011 00001001010101 01010001110010111 00 110100 01 100 11 0010 00
10001011 00001001010101 01010001110011000 00 110100 01 101 00 1111 00
Выше 2 последовательных кадров из 5 подрамники каждый. Подрамники в 300-бит и взять 6 секунд, чтобы передать. Колонка 1 преамбулы 10001011. Это появляется в начале каждого подрамника, но может произойти в любой точке данных. 17-разрядный счетчик в колонке 5 время-недели (TOW) и сбрасывается до нуля в полночь в воскресенье. 3-х разрядный счетчик в колонке 7 подрамник ID от 1 до 5. Подрамники 4 и 5 subcommutated в 25 страниц каждый и полное сообщение данных, содержащей 25 полных кадров занимает 12. 5 минут для передачи. Я только на основе данных в подрамники 1, 2 и 3 в настоящее время.
Решение для пользователя положение
Каждый спутник GPS передает свои позиции и времени. Вычитая время отправки от времени получения и умножением на скорость света, как приемник измеряет расстояние между собой и спутниках. Это с трех спутников даст три одновременных уравнений с тремя неизвестными (пользователь положение: X, Y, Z), если точное время не было. На практике, приемник часы не являются достаточно точными, точное время является четвертым неизвестным, четырех спутников связи необходимы и четырех одновременных уравнений должны быть решены:
Итерационный метод используется потому, что уравнения не являются линейными. Использование центра Земли (0, 0, 0) и приблизительное время в качестве отправной точки, алгоритм сходится только пять или шесть итераций. Решение будет найдено, даже если ошибки пользователя часы велика. Спутниках установлены атомные часы, но они тоже есть ошибки и поправочных коэффициентов в подрамником 1 должна применяться ко времени передачи. Типичные изменения могут быть сотни микросекунд.
Неисправленных время передачи формируется путем расширения и добавления нескольких счетчиков. Время-недели (TOW) в секундах, прошедших с полуночи воскресенья отправляется каждые подрамника. Данные края выделить 20 мс интервалами в пределах 300-битным подрамники. Код повторяется 20 раз в расчете на бит данных. Код длиной 1023 чипов и чипов скорости 1, 023 Мбит. Код НКО фазовой автоподстройки к сигналу и накопленных на частоте 10 МГц. Все это фиксирует время передачи ± 0, 1 мкс. Быстрее НКО могли бы улучшить разгон на этом.
Спутниковое позиции на исправлены время передачи рассчитываются эфемериды в подрамники 2 и 3. Орбитальная позиция в t_oe отсчета времени (время эфемериды) предоставляется вместе с параметрами, позволяющая (х, у, г) позиции рассчитывается с точностью до нескольких часов до или после. Эфемериды регулярно обновляются и спутников передает только свои собственные. Долгосрочные орбиты всего созвездия можно прогнозировать менее точно, используя данные альманаха в подрамники 4 и 5, однако это не является существенным, если быстро БПФ на основе поиска используется.
Решения рассчитаны на земле в центре, земля-фиксированным (ECEF) координатах. Фактический адрес преобразуется в широту, долготу и высоту, с поправкой на эксцентриситет Земли, которая выпирает на экваторе. Разброс Диаграммы ниже иллюстрируют повторяемость, в пользу усреднения и влияния плохой выбор спутника. Сетка квадратов 0, 001 ° или ~ 111 метров с каждой стороны. Голубые точки отмечать 1000 исправлений. Желтый кругах отмечают среднем каждые 1000:
(Я) Северо-стоящих подоконнике (II) крыше антенна (III), Восток-стоящих подоконнике
Тесная кластера (II) был получен с помощью спутников в четырех разных сторон неба. Только антенна крыши было видно во всех направлениях. Но одинаково хорошо исправления были получены путем усреднения, даже если половина неба была скрыта. Крыша фиксирует также проявляют распространяется как (I) и (III), если неправильно выбраны спутники.
Эти решения были построены без компенсации ионосферной задержки распространения с помощью параметров на странице 18 подрамника 4, которая должна применяться, потому что это один приемник частоты. Ионосферной рефракции увеличивается длина пути между пользователями и спутников.
Я благодарен Дэн Doberstein для отправки мне первый вариант своего GPS книге [2], от которого я получил алгоритм решения. Официальное правительство США GPS Interface Specification [3] является важным ссылки.
Сигнал монитора
Такое расположение схемы, в основном, осуществляется в ПЛИС, де-распространяются, принимая продукт 1-бит, если и пунктуальный код, в результате чего 50 бит данных модуляции. Небольшой надрез в связи с подавлением носитель BPSK можно просто рассматривать:
Эти спектры показывают те же де распространение передач на разных пролетов и разрешение полосы пропускания (RBW). Доплеровский сдвиг был -1, 2 кГц. Шума является антенна тепловой шум усиливается и фильтруется Если полосы. -3 ДБ полоса пропускания выглядит примерно 3 МГц, немного шире, чем планировалось. Де распространенный носитель 5 дБ выше шум на 30 кГц полоса пропускания до 25 дБ выше 300 Гц, полоса пропускания. Принимаемого сигнала на антенну можно оценить как -174 +1 +10 * log10 (30e3) +5 = -123 дБм.
Он все еще поражает меня, как и информация частотной области сохраняется через жесткий ограничитель! Передатчик LVDS имеет постоянный выходной ток 3 мА ~ которого составляет ~ 1 мВт на 100 Ом. Пиковая мощность увидеть в SA не может превышать 0 дБм. Здесь мы видим, это доступно власть распространилась по всему диапазону частот. Широкополосный интегрированной спектральная плотность мощности должна быть ~ 1 мВт.
Первый гетеродин
Я строил экспериментальный дробно-N синтезаторы использования общего назначения программируемой логики в течение нескольких лет:
Проект Дата технологии частота (МГц)
FracN 2004 Altera MAX 7000 CPLD 4, 3
Frac2 2005 Altera MAX 7000 CPLD 15 - 25
Frac3 2009 Xilinx Spartan 3 FPGA 38 - 76
Frac4 2009 Xilinx Spartan 3 FPGA 38 - 76
Frac5 2010 Xilinx FPGA Spartan 3 800 - 1600
Frac5 борту не только синтезирует 1552, 92 МГц первый местный генератор, но также содержит DSP приемника GPS в функции в FPGA. Я понятия не имел Frac5 будет использоваться в приемнике GPS, когда я первоначально разработан он. На фото ниже видно, как РОС-1455 VCO выход резистором разделена между SMA производства и Хеттского HMC363 деление на 8 делителя. 200 МГц делитель выход направляется (дифференциально) в FPGA какой фазе блокирует его мастер ссылку, используя методы описаны в моих предыдущих проектов.
Высокая стабильность и низкий уровень фазового шума достигается, как это можно видеть в VCO спектров результат, показанный ниже. При этом плата была первоначально разработана как специальный синтезатор частоты, одновременное переключение логики на частотах, не гармонично связаны удалось избежать, чтобы свести к минимуму интермодуляционных шпоры. FPGA был статическим, когда тактовых импульсов, которые переключаются выхода фазового детектора пересек ткани. Нет такой роскоши практических теперь FPGA почти на 100% использован приемник GPS, однако местные выход генератора по-прежнему более чем достаточно:
50 Marconi 2383 анализатор спектра в стандартный вывод МГц используется в качестве источника мастер ведения Frac5 и все встроенным приемником GPS часы. GPS приемники нужны точность лучше 1 промилле (частей на миллион) для измерения ± 5 кГц доплеровские сдвиги на носителе L1 1575, 42 МГц. Любая неопределенность частоты потребует широкого диапазона поиска.
Техпром: бытовая и цифровая техника
Модератор 24.09.2021 13:22Восьмое небо
Модератор 11.03.2021 17:42Восьмое небо
Модератор 11.03.2021 17:41Замок Ласточкино гнездо
Михаил Петелев 27.03.2019 13:58Замок Ласточкино гнездо
Михаил Петелев 27.03.2019 13:52