Перейти к содержанию

Лабораторная 11.9 — Разведочная RF-развёртка AD9361 для overlay gpreg BPSK

Цель

Подготовить воспроизводимую процедуру RF-поиска, которую нужно повторить, когда тракт пакета в домене отсчётов будет восстановлен вокруг проверенного стокового загрузочного shell.

Инженерный вопрос

Если плоскость управления уже жива, какой небольшой набор RF-параметров и параметров тайминга нужно перебрать первым, чтобы получить первые биты пакета?

Текущие ворота

Не интерпретируйте нулевые RECEIVED_BITS в текущем закоммиченном overlay gpreg_only как RF-результат.

Прежде чем использовать эту развёртку как содержательный аппаратный эксперимент, должно быть верно всё перечисленное:

  1. пользовательский загрузочный образ PL проходит validate_clean_boot_overlay.py с инициализированным AD9361 и всеми ожидаемыми живыми устройствами IIO;
  2. помощник lab_11_8 снова видит живой путь статуса в домене отсчётов, а не только урезанную безопасную базовую линию;
  3. RX-захват по-прежнему работает после этой чистой загрузки.

Скрипт

Файл Назначение
blocks/block_11_integrated_sdr_project/python/lab_11_9_rf_discovery_sweep.py перебирает START_OFFSET, ручное усиление RX и ослабление TX по SSH, запускает помощника пакета gpreg и записывает один JSON-отчёт

Текущая стратегия развёртки

Когда мост вернётся, первый поиск по воздуху должен менять только те параметры, которые с наибольшей вероятностью блокируют детерминированное восстановление, сохраняя при этом безопасность эксперимента:

  1. держать AGC выключенным;
  2. держать LO TX включённым, а ослабление TX консервативным;
  3. перебирать усиление RX в ручном режиме;
  4. перебирать START_OFFSET вокруг текущего значения синтетического эталона;
  5. записывать лучший набор сначала по RECEIVED_BITS, затем по поведению таймаутов/ошибок.

Так развёртка остаётся объяснимой, а первый поиск не превращается в слепую оптимизацию.

Пример запуска

python blocks/block_11_integrated_sdr_project/python/lab_11_9_rf_discovery_sweep.py \
  --ssh-host 192.168.40.1 \
  --ssh-user root \
  --ssh-password analog \
  --start-offsets 48,54,58,62,66,70,74 \
  --rx-gains-db 10,20,30 \
  --tx-attenuations-db -80,-70,-60 \
  --json-out docs/assets/lab119_rf_discovery_sweep_live.json

Запускайте эту развёртку только после выполнения трёх условий выше.

Контракт отчёта

JSON-отчёт должен содержать:

  • RF-состояние платы до развёртки;
  • RF-состояние платы после развёртки;
  • каждый испробованный набор параметров;
  • поведение busy/done/timeout для каждой попытки;
  • RECEIVED_BITS, TOTAL_ERRORS и PAYLOAD_ERRORS;
  • лучшую попытку, выбранную скриптом.

Интерпретация

Первый хороший исход: не обязательно нулевой BER. Первый критерий успеха скромнее:

  • RECEIVED_BITS > 0, пусть и частично;
  • повторяемый лучший набор при повторных запусках;
  • отсутствие явной перегрузки или небезопасных настроек усиления.

Только после этого курс переходит к настройке под BER и более длинным кампаниям.

Шаблон инженерного вывода

Разведочная развёртка проверила ______ комбинаций параметров.
Лучший набор: START_OFFSET = ______, усиление RX = ______ дБ, ослабление TX = ______ дБ.
Пакет восстановил ______ бит, следующий шаг — ______.