13.12.2021 Формирование навигационного сигнала GPS CA с помощью gps-sdr-sim и HackRF

Материал из SRNS
Перейти к: навигация, поиск

Формирование навигационного сигнала GPS L1 C/A c помощью GPS-SDR-SIM и HackRF One

GPS-SDR-SIM — программа позволяющая выводить двоичный файл сигналов в соответствии с указанным файлом спутниковой информации, информацией о координатах, частоте дискретизации и другими параметрами.

HackRF One — программно-определяемое радио, способное передавать / принимать радиосигналы на частотах от 1МГц до 6 ГГц. Использует технологию, позволяющую с помощью программного обеспечения устанавливать / изменять рабочие радиочастотные параметры.

Введение

Данная статья является инструкцией по формированию навигационного сигналы GPS L1 C/A для неподвижного потребителя. Для реализации подмены GPS сигнала будет использоваться программа GPS-SDR-SIM, которая позволяет формировать выборку навигационного сигнала (НС) в соответствии с указанным файлом спутниковой информации. Полученный файл будет импортироваться в радиочастотное устройство для трансляции НС в эфир.

В качестве приемопередатчика будет выступать программно-определяемое радио HackRF One. Из основных характеристик, это диапазон частот: от 1 МГц до 6 ГГц, полоса пропускания: 20 МГц, 8-разрядный АЦП/ЦАП.

В данном случае будет рассматриваться конфигурация HackRF One c расширяющей платой Portapack H2, которая позволяет, не теряя функционала, работать HackRF One автономно: без подключения к компьютеру.

В сборе HackRf One + Portapack H2 + металлический корпус, SDR выглядит следующим образом:

Photo 2021-12-13 17-08-01.jpg

На изображении ниже можно увидеть два SMA разъема CLKIN (ближний) и CLKOUT – вход и выход для синхронизации. На этой же стороне присутствует разъем micro-USB для подключения платы к компьютеру.

Photo 2021-12-13 16-51-13.jpg

С противоположной стороны плата имеет антенный разъем SMA и две кнопки: Reset – для перезагрузки HackRF по питанию и DFU – для восстановления заводской прошивки. Над кнопками разъем для карты памяти.

Photo 2021-12-13 16-48-52 (2).jpg

Экспериментальные шаги

Шаг 1. Подключение

  • Подключите антенну к SMA разъему на плате.
  • Подключите плату к ПК (micro-USB/USB кабель).

Шаг 2. Установка драйверов и пакетов на ПК (ОС: Linux)

  • Команды в консоль:
 sudo apt update; sudo apt upgrade
 sudo apt install hackrf libhackrf-dev libhackrf0 gnuradio gnuradio-dev gr-osmosdr gqrx-sdr

Шаг 3. Отклик HackRF

  • Включить плату, в открывшемся меню выбрать и нажать кнопку HackRF.
Меню HackRF
  • Соглашаемся на HackRF mode для управления платой через ПК.
  • Команда в консоль:
 hackrf_info
  • Ожидаемый ответ:
 hackrf_info version: unknown
 libhackrf version: unknown (0.5)
 Found HackRF
 Index: 0
 Serial number: 0000000000000000048866dc348258c3
 Board ID Number: 2 (HackRF One)
 Firmware Version: local-57ed3eb (API:1.04)
 Part ID Number: 0xa000cb3c 0x00614368

Шаг 4. Загрузить и скомпилировать код GPS-SDR-SIM

  • Команды в консоль:
 git clone https://github.com/osqzss/gps-sdr-sim.git
 cd gps-sdr-sim && gcc gpssim.c -lm -O3 -o gps-sdr-sim

Шаг 5. Формированию выборки сигнала GPS

  • Открыть консоль внутри скомпилированной программы.
  • Консольная команда для формирования 8-разрядного бинарный файла сигнала по эфемеридному файлу brdc3540.14n:
./gps-sdr-sim -e brdc3540.14n -l 31.603202,120.466576,100 -b 8 -d 300

где

brdc3540.14 — файл эфемерид 32-х спутников GPS; -e — файл является общим форматом ГНСС-данных RINEX; -l 31.603202,120.466576,100 — координаты позиции приемника; -b 8 — разрядность чисел в выходном файле; -d 300 — длительность в секундах (1с = 5Мбайт).

Указан неподдерживаемый язык.

Вы должны указать язык следующим образом: <source lang="html4strict">...</source>

Поддерживаемые языки:

4cs, 6502acme, 6502kickass, 6502tasm, 68000devpac, abap, actionscript, actionscript3, ada, algol68, apache, applescript, apt_sources, asm, asp, autoconf, autohotkey, autoit, avisynth, awk, bascomavr, bash, basic4gl, bf, bibtex, blitzbasic, bnf, boo, c, c_loadrunner, c_mac, caddcl, cadlisp, cfdg, cfm, chaiscript, cil, clojure, cmake, cobol, coffeescript, cpp, cpp-qt, csharp, css, cuesheet, d, dcs, delphi, diff, div, dos, dot, e, ecmascript, eiffel, email, epc, erlang, euphoria, f1, falcon, fo, fortran, freebasic, fsharp, gambas, gdb, genero, genie, gettext, glsl, gml, gnuplot, go, groovy, gwbasic, haskell, hicest, hq9plus, html4strict, html5, icon, idl, ini, inno, intercal, io, j, java, java5, javascript, jquery, kixtart, klonec, klonecpp, latex, lb, lisp, llvm, locobasic, logtalk, lolcode, lotusformulas, lotusscript, lscript, lsl2, lua, m68k, magiksf, make, mapbasic, matlab, mirc, mmix, modula2, modula3, mpasm, mxml, mysql, newlisp, nsis, oberon2, objc, objeck, ocaml, ocaml-brief, oobas, oracle11, oracle8, oxygene, oz, pascal, pcre, per, perl, perl6, pf, php, php-brief, pic16, pike, pixelbender, pli, plsql, postgresql, povray, powerbuilder, powershell, proftpd, progress, prolog, properties, providex, purebasic, pycon, python, q, qbasic, rails, rebol, reg, robots, rpmspec, rsplus, ruby, sas, scala, scheme, scilab, sdlbasic, smalltalk, smarty, sql, systemverilog, tcl, teraterm, text, thinbasic, tsql, typoscript, unicon, uscript, vala, vb, vbnet, verilog, vhdl, vim, visualfoxpro, visualprolog, whitespace, whois, winbatch, xbasic, xml, xorg_conf, xpp, yaml, z80, zxbasic


[ Хронологический вид ]Комментарии

(нет элементов)

Войдите, чтобы комментировать.

Персональные инструменты
Пространства имён

Варианты
Действия
SRNS Wiki
Рабочие журналы
Приватный файлсервер
QNAP Сервер
Инструменты