|
Реализация GPS приемника, не работает |
|
|
|
Nov 18 2008, 09:28
|
Участник

Группа: Новичок
Сообщений: 19
Регистрация: 30-10-08
Из: Казань
Пользователь №: 41 291

|
Вопрос состоит вот в чем: собирается ГПС приемник, для этого имеется свч часть в виде микросхемы MAX2769, ПЛИС и небольшого имитатора сигналов, который выдает реальный сигнал одного из спутников. Так как у меня точно известно какой спутник принимается и то, что он без доплера, то я делаю упрощенную схему: 1. Понижаю частоту Maxом в 0! Типа сразу должен выделить кодовую последовательность. 2. ПЛИС ее считывает с частотой 2,046МГц и пишет в память первые 4096 отсчетов. 3. Пропускаю данную последовательность через КИХ, настроенный на тот же спутник. (C/A код №1) 4. Должен выделиться пик. 5. Я его фиксирую и говорю, что нашел спутник.
Проблема в том, что пика нет... Может кто подскажет в чем дело... Или же нельзя конвертировать все сразу в 0?.. Или может еще чего?.. Дело осложняетс тем, что нет СВЧ аппаратуры, которой можно было бы проверить правильность работы MAX...
|
|
|
|
|
 |
Ответов
(60 - 74)
|
Nov 22 2008, 09:16
|
Гуру
     
Группа: Свой
Сообщений: 3 439
Регистрация: 29-12-04
Пользователь №: 1 741

|
Станислав, спасибо за схемы и даташиты, а то читал про это чудо МАХ и немог понять, из-за чего такой шум. Обычный квадратурный фронтенд, разве что малошумящий. Ничего военного. Но вот по поводу приема GPS с нулевой ПЧ я что-то непонял. На какой канал нуль настраивать? Летит куча спутников, у всех допплер разный, работают 6-12 корреляторов, пытаются найти сигналы. А если обьект еще и подвижный (свой допплер относительно альманаха)? На нулевой ПЧ такая каша будет.. Может все таки лучше низкую ПЧ и прямую оцифровку, а потом сдвигать частоты (учитывать допплер) в цифре?
Может кто-нибудь привести ссылку на оптимальный алгоритм поиска сигнала при колд-старте? Чтобы не перебором частоты, а как-то более научно и быстрее?
|
|
|
|
|
Nov 22 2008, 12:48
|

Гуру
     
Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987

|
Цитата(khach @ Nov 22 2008, 12:16)  Станислав, спасибо за схемы и даташиты, а то читал про это чудо МАХ и немог понять, из-за чего такой шум. Обычный квадратурный фронтенд, разве что малошумящий. Ничего военного. Но вот по поводу приема GPS с нулевой ПЧ я что-то непонял. На какой канал нуль настраивать? Летит куча спутников, у всех допплер разный, работают 6-12 корреляторов, пытаются найти сигналы. А если обьект еще и подвижный (свой допплер относительно альманаха)? На нулевой ПЧ такая каша будет.. Может все таки лучше низкую ПЧ и прямую оцифровку, а потом сдвигать частоты (учитывать допплер) в цифре? А чем лучше низкая ПЧ и "прямая оцифровка"? Или думаете, что на ней "каши" не будет? Цитата(khach @ Nov 22 2008, 12:16)  ...Может кто-нибудь привести ссылку на оптимальный алгоритм поиска сигнала при колд-старте? Чтобы не перебором частоты, а как-то более научно и быстрее? "Просто" оптимальных не бывает. Бывают только оптимальные в каком-то смысле. Я бы сначала, методами несинхронного приёма, засинхронизировался по коду, потом снял бы его с сигнала, а потом в сигнале появилась бы "палка", частота которой и будет равна дельте генераторов+допплер, т.е., несущая. Конкретных реализаций может быть множество.
--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
|
|
|
|
|
Nov 22 2008, 13:50
|
Гуру
     
Группа: Свой
Сообщений: 3 439
Регистрация: 29-12-04
Пользователь №: 1 741

|
Цитата(Stanislav @ Nov 22 2008, 15:48)  А чем лучше низкая ПЧ и "прямая оцифровка"? Или думаете, что на ней "каши" не будет?  Отражений от нуля небудет. Цитата "Просто" оптимальных не бывает. Бывают только оптимальные в каком-то смысле. Я бы сначала, методами несинхронного приёма, засинхронизировался по коду, потом снял бы его с сигнала, а потом в сигнале появилась бы "палка", частота которой и будет равна дельте генераторов+допплер, т.е., несущая. Конкретных реализаций может быть множество. Палок то 6-8 штук бывает. Сколько спутников видим, столько и палок. А вообще без указания типа применяемого коррелятора тема несколько расплывчатая. Если применять старый хардверный коррелятор типа GP2021 или GP4020 то там мы жестко привязанны к структуре коррелятора и нечто новое выдумать сложно. А если эта прямая оцифровка и софтовый коррелятор, то тут возможны варианты. Вплоть до десятков-сотен виртуальных корреляторов, каждый из которых ищет сигнал со сдвигом. Вариант с хардверным коррелятором на ПЛИС рассматривать небудем- жрет много. А вот сотворить проектик типа МАХ плюс мелкий АРМ общего назначения, коррелятор софтовый- было бы интересно. К сожалению современные коммерческие GPS приемники упаковались в автономные модуля, практически недоступные извне для модификации. А иногда хочется странного- например кросс-корреляция двух приемников GPS для подавлнеия направленной помехи или система управления УЛА на основе 2-3 антенн GPS на концах крыльев с когерентным приемом. Кстати, надеюсь никто не предлагает использовать МАХ по принципу- на каждый спутник свой фронтенд?
|
|
|
|
|
Nov 22 2008, 14:22
|

Йа моск ;)
     
Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610

|
Цитата А вот сотворить проектик типа МАХ плюс мелкий АРМ общего назначения, коррелятор софтовый- было бы интересно. А я нечто такое и хочу попробовать. Вот посему и интересуюсь максовским сериалайзером - мне бы, с точки зрения софта и железа, было бы лучше, если бы ко мне влетело 16 однобитовых семплов I, потом 16 однобитовых семплов Q. Я бы выгреб их, ну скажем, через один SPI, и при помощи банального XOR перемножил бы сразу всех на нужные опорные сигналы по коду (дальше бы посчитал количество единиц в регистре и прибавил их к интегратору, ну и т.д., конечно, все с учетом каналов опережения и отставания ну и т.д.). Если просто биты ловить, то нужно 2 SPI использовать.
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
|
Nov 22 2008, 14:45
|

Гуру
     
Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987

|
Цитата(Rst7 @ Nov 22 2008, 17:22)  А я нечто такое и хочу попробовать. Вот посему и интересуюсь максовским сериалайзером - мне бы, с точки зрения софта и железа, было бы лучше, если бы ко мне влетело 16 однобитовых семплов I, потом 16 однобитовых семплов Q. Я бы выгреб их, ну скажем, через один SPI, и при помощи банального XOR перемножил бы сразу всех на нужные опорные сигналы по коду (дальше бы посчитал количество единиц в регистре и прибавил их к интегратору, ну и т.д., конечно, все с учетом каналов опережения и отставания ну и т.д.). Если просто биты ловить, то нужно 2 SPI использовать. Для приёма сигналов навигационных спутников софтверные методы не пляшут - частота дискретизации нужна большая, минимум мегагерца 3-4 для квадратур (в дорогих приёмниках - до 30), а обработка довольно сложная. Думаю, мелкого ARMа для сопровождения даже одного спутника не хватит.
--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
|
|
|
|
|
Nov 22 2008, 15:22
|

Йа моск ;)
     
Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610

|
Цитата Для приёма сигналов спутников софтверные методы не пляшут Возражаю я  Точнее, кажется мне, что можно асилить. Сразу говорю - это никакой не коммерческий проект, а так, "конструкция выходного дня". Давайте я расскажу ход своих мыслей, а Вы меня поправите. Для упрощения будем делать одноканальный приемник (в смысле, в данный момент времени будем следить только за одним спутником). Более того, мы можем, скажем, производить корреляцию в течении 1мс (период кода), потом заниматься своими вычислениями, потом опять производить корреляцию. Единственно что, необходимо будет аккуратно писать соответствующий код (ну, в частности, нужно будет обеспечить точно детерминированное время начала процедуры корреляции. Но это все тонкости реализации, они нас пока не трогают). Пусть приемник будет с нулевой ПЧ. При этом слежение по частоте будем осуществлять достаточно медленно, используя для перестройки именно синтезатор макса. На самом деле, даже неточность установки частоты в 500Гц будет равносильна, грубо говоря, потери чувствительности на 3дБ (это если время накопления в корреляторе будет 1мс, т.е. один период кода, грубо говоря, полоса 500Гц по уровню 0.7). Реально мы сможем обеспечить куда более точную установку. Т.е. с этой стороны мы особо не лимитированны. Теперь, есть предложение не менять частоту местного генератора кода (только выбирать нужную фазу в начале корреляции, это то, о чем я говорил выше, упоминая про точность входа в процедуру), что позволит упростить коррелятор (генератор будет представлять из себя заранее расчитанную табличку для каждого спутника длинной 1ms/Fдискр семплов). Теперь давайте посмотрим, что у нас есть по требуемой производительности. Выберем частоту дискретизации 4*Fкода. Да, забыл, пусть семплы будут однобитные. Один канал коррелятора представляет из себя следующий код Код integrator+=bits_in_byte[sample^*generator++]; integrator - собственно накопитель bits_in_byte - таблица длинной 256 байт, которая содержит количество бит в индексе. sample - байт, который содержит 8 семплов по одному биту generator - указатель на табличку с кодом. Для ARM7 один такой канал будет весить примерно 8 тактов Код // 4 integrator+=bits_in_byte[(sample^*generator++)]; LDRB R4,[R2, #+0] EORS R4,R4,R3 LDRB R4,[R1, R4] ADDS R0,R0,R4 Нужно нам будет, ну скажем, для простоты 4 канала (по науке надо 6, но обойдемся только отстающим и опережающим) Итого имеем 32 такта, за которые мы обрабатываем 8 семплов в 4х каналах. Ну пусть будет 40 тактов с накладными расходами. Итого, 5 тактов на семпл. Необходимая тактовая частота - 20МГц. Даже если не 40 тактов, а 64 - все равно производительности валом. После того, как мы миллисекунду понакапливали значения, мы производим другие необходимые нам расчеты и опять накапливаем (а по какому-то таймеру узнаем точное время входа в коррелятор и подстраиваем указатель на таблицу согласно требуемому вычисленному фазовому сдвигу и собственно поправки на время вычислений). Вот как-то так мне все это видится...
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
|
Nov 22 2008, 16:34
|

Гуру
     
Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987

|
Цитата(Rst7 @ Nov 22 2008, 18:22)  Возражаю я  Точнее, кажется мне, что можно асилить. Сразу говорю - это никакой не коммерческий проект, а так, "конструкция выходного дня". Что ж, попробуйте. Только, сдаётся, за один выходной день справиться будет тяжко. Цитата(Rst7 @ Nov 22 2008, 18:22)  ...Давайте я расскажу ход своих мыслей, а Вы меня поправите. ................................. Вот как-то так мне все это видится... Честно, говоря, считать сейчас лень... С корреляцией, вроде, всё правильно. Если заложиться на подстройку синтезатора MAX-а - выигрыш, конечно будет. Но тогда больше одного спутника не видать, как своих ушей. Но это ладно. На замыкание петель ФАП не должно уйти слишком уж много времени. Только сообщение (50 бит/с) нужно не забыть снять кроме C/A кода. Кстати, количество корреляторов можно и уменьшить, по-моему. В любом случае, не забудьте обнародовать достигнутые результаты - они могут оказаться весьма интересными и поучительными.
--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
|
|
|
|
|
Nov 22 2008, 17:13
|

Йа моск ;)
     
Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610

|
Цитата Только, сдаётся, за один выходной день справиться будет тяжко. За выходной день должен справиться тот, кто попробует повторить то, что я хочу сделать  Цитата Но тогда больше одного спутника не видать, как своих ушей. Но это ладно. Ну так на это и закладываемся изначально. Зато в корреляторе не надо будет умножать на несущую. Цитата Только сообщение (50 бит/с) нужно не забыть снять кроме C/A кода. Дык безусловно. Цитата Кстати, количество корреляторов можно и уменьшить, по-моему. Давайте обсудим - как. Потому как от количества корреляторов напрямую зависит количество мегагерцев  В классической схеме имеется 6 корреляторов - по 3 в каждой квадратуре. Два из трех - опережающая и отстающая ПСП для организации S-образной характеристики в канале слежения за кодом. Плюс к этому собственно ПСП со сдвигом 0 для вытаскивания информационных битов. Без этого канала можно обойтись, взяв вместо него сумму результатов опережающего и отстающего коррелятора (для слежения по коду используется разность). Я не готов навскидку сказать, что там будет с шумами при выбрасывании одного коррелятора, но интуитивно вроде кажется, что большого проигрыша не будет. Ну разве что могу предложить одну миллисекунду накапливать только опережение, следующую - только отставание. Тогда будет всего 2 коррелятора. Или Вы предлагаете как-то по другому? Цитата В любом случае, не забудьте обнародовать достигнутые результаты - они могут оказаться весьма интересными и поучительными. Конечно обнародую. В полном объеме. Кстати, я надеюсь на то, что Вы (да и другие профессионалы, обитающие на Электрониксе) не откажете мне в консультациях по вопросам, которые могут возникнуть в процессе работы?
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
|
Nov 22 2008, 18:59
|

Гуру
     
Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987

|
Цитата(Rst7 @ Nov 22 2008, 20:13)  Давайте обсудим - как. Потому как от количества корреляторов напрямую зависит количество мегагерцев Один коррелятор делаем "честным", т.е., сворачиваем сигнал с опорной ПСП. Другой же нужно сделать хитрее - сворачивать сигнал не с ПСП, а с early-late стробом. Вот иллюстрация.  Сверху - принимаемая или опорная ПСП (+/-). Внизу - early-late стробирующий сигнал (трёхуровневый вариант). Устроен таким образом, чтобы в окрестностях нарастающего фронта принимаемой ПСП строб был положительным, спадающего - отрицательным, а при отсутствии перехода на границе чипа и в остальное время - равным 0. Для однобитного варианта стробы нужно сооружать только в окрестностях перехода одного знака. В остальных случаях стробирующий сигнал должен быть равен 0. Можно, правда, придумать и другой эквивалентный вариант, но суть будет та же. Таким образом, получаем с первого коррелятора оценку пика КФ, а со второго - величину, пропорциональную временнОму сдвигу (всё это после НЧ фильтрации, или интегрирования, ессно). В канале Q (и почему ему не везёт всегда - вроде, идеологически равноправный  ) величину тактового сдвига вычислять не нужно. Правда, это верно только если есть фазовая синхронизация по несущей. В результате, имеем лишь 3 коррелятора против 6. Если что непонятно - не стесняйтесь спросить. ЗЫ. Без фазовой синхронизации по несущей не слишком хорошо получится, по-моему... Цитата(Rst7 @ Nov 22 2008, 20:13)  ...Конечно обнародую. В полном объеме. Кстати, я надеюсь на то, что Вы (да и другие профессионалы, обитающие на Электрониксе) не откажете мне в консультациях по вопросам, которые могут возникнуть в процессе работы? Постараюсь, если время будет. Сам я конкретно приёмниками не занимаюсь, так что буду писать весчи по собственному разумению.
Сообщение отредактировал Stanislav - Nov 22 2008, 20:19
--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
|
|
|
|
|
Nov 23 2008, 01:53
|
Участник

Группа: Новичок
Сообщений: 18
Регистрация: 25-05-06
Пользователь №: 17 435

|
Интересная тема, равно как и сама 2769. Зажал вот только MAXIM все доки по поводу использования в глонасс-приемнике. Как видится навскидку реализация на одной макс для всего созвездия?
|
|
|
|
|
Nov 23 2008, 11:16
|
Участник

Группа: Новичок
Сообщений: 18
Регистрация: 25-05-06
Пользователь №: 17 435

|
Цитата(Rst7 @ Nov 23 2008, 13:02)  Ну так все каналы Глонасса помещаются в фильтр ПЧ с полосой 18МГц (это которая самая широкая у макса). Как раз и максимальная частота дискретизации около 50МГц (так в даташите  ). Дальше в цифре для каждого спутника умножаете на несущую и на код с необходимой фазой. Сколько каналов асилите - столько Ваши. Да, это один из подходов, первым приходящим на ум, но даже боюсь представить себе цифровую часть  А что, если пожертвовать скоростью, и единицу времени перебирать поочередно каждый из 12 каналов, оперативно перестраивая макса? зы. Вышеупомянутый EV KIT от MAXIM не подходит для глонасс вообще, я сгородил плату , но , с моими скудными познаниями в области СВЧ , накосячил с разводкой ... + пришлось сгородить квадрифиллярную антенну, т.к. в здании до ближайшего окна 5 м по прямой , всякие passive patch не помогут вообще на этапе конструирования и отладки + опять же пришлось сделать МШУ на BFP640 по аппноуту от инфинеона.... Результатом всег потуг является отсутствие желаемого результата Первые выводы такие - без грамотно разведенной ПП РЧ, "ловить" ( в прямом и переносном смысле ) нечего, и сперва хорошо бы обсудить именно железо  , т.к. совершенно справедливо заметил Stanislav, уровень сигнала есть Исчезающе малая величина... Вообще хотелось бы спросить топикстартера, на чём он прототипирует ? Использовать всякие имитаторы реального сигнала конечно гуд, но этот имитатор по сложности не уступает приемнику, а даже превосходит.
|
|
|
|
|
Nov 23 2008, 11:58
|
Гуру
     
Группа: Свой
Сообщений: 3 439
Регистрация: 29-12-04
Пользователь №: 1 741

|
По поводу конструкции Глонасс-ГПС "на коленке" есть старинная конструкиця s53mv http://lea.hamradio.si/~s53mv/navsats/theory.html и далее по ссылкам в заголовке. Если бы не доисторический процессор, то можно было бы рекомендовать к повторению. Софтверный коррелятор GPS существует. например http://ccar.colorado.edu/gnss/ там исходники USB драйвера глубоко в файле GN3Sv2.rar закопаны. Но фронтенд другой- SE4110L А само софтовое ядро выколупывается из проектов OpenSourceGPS http://sourceforge.net/projects/osgps из последних релизов, там где SoftGPS есть в названии.
|
|
|
|
|
Nov 23 2008, 12:34
|

Гуру
     
Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987

|
Цитата(BADC0DE @ Nov 23 2008, 14:16)  Вышеупомянутый EV KIT от MAXIM не подходит для глонасс вообще... Почему не подходит? Очень даже подходит. Фильтры РЧ только заменить нужно. Цитата(BADC0DE @ Nov 23 2008, 14:16)  ...+ пришлось сгородить квадрифиллярную антенну, т.к. в здании до ближайшего окна 5 м по прямой , всякие passive patch не помогут вообще на этапе конструирования и отладки А не проще ли готовую купить?
--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|