13.12.2021 Формирование навигационного сигнала GPS CA с помощью gps-sdr-sim и HackRF
Roslyakov (обсуждение | вклад) |
Roslyakov (обсуждение | вклад) |
||
Строка 87: | Строка 87: | ||
-b 8 — разрядность чисел в выходном файле; | -b 8 — разрядность чисел в выходном файле; | ||
-d 300 — длительность в секундах (1с = 5Мбайт). | -d 300 — длительность в секундах (1с = 5Мбайт). | ||
+ | |||
+ | <source lang="">папапапап</source> |
Версия 16:39, 23 декабря 2021
Формирование навигационного сигнала 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 выглядит следующим образом:
На изображении ниже можно увидеть два SMA разъема CLKIN (ближний) и CLKOUT – вход и выход для синхронизации. На этой же стороне присутствует разъем micro-USB для подключения платы к компьютеру.
С противоположной стороны плата имеет антенный разъем SMA и две кнопки: Reset – для перезагрузки HackRF по питанию и DFU – для восстановления заводской прошивки. Над кнопками разъем для карты памяти.
Экспериментальные шаги
Шаг 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 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
[ Хронологический вид ]Комментарии
Войдите, чтобы комментировать.