Лабораторная 11.9 — Разведочная RF-развёртка AD9361 для overlay gpreg BPSK¶
Цель¶
Подготовить воспроизводимую процедуру RF-поиска, которую нужно повторить, когда тракт пакета в домене отсчётов будет восстановлен вокруг проверенного стокового загрузочного shell.
Инженерный вопрос¶
Если плоскость управления уже жива, какой небольшой набор RF-параметров и параметров тайминга нужно перебрать первым, чтобы получить первые биты пакета?
Текущие ворота¶
Не интерпретируйте нулевые RECEIVED_BITS в текущем закоммиченном overlay gpreg_only как RF-результат.
Прежде чем использовать эту развёртку как содержательный аппаратный эксперимент, должно быть верно всё перечисленное:
- пользовательский загрузочный образ PL проходит
validate_clean_boot_overlay.pyс инициализированным AD9361 и всеми ожидаемыми живыми устройствами IIO; - помощник
lab_11_8снова видит живой путь статуса в домене отсчётов, а не только урезанную безопасную базовую линию; - RX-захват по-прежнему работает после этой чистой загрузки.
Скрипт¶
| Файл | Назначение |
|---|---|
blocks/block_11_integrated_sdr_project/python/lab_11_9_rf_discovery_sweep.py |
перебирает START_OFFSET, ручное усиление RX и ослабление TX по SSH, запускает помощника пакета gpreg и записывает один JSON-отчёт |
Текущая стратегия развёртки¶
Когда мост вернётся, первый поиск по воздуху должен менять только те параметры, которые с наибольшей вероятностью блокируют детерминированное восстановление, сохраняя при этом безопасность эксперимента:
- держать AGC выключенным;
- держать LO TX включённым, а ослабление TX консервативным;
- перебирать усиление RX в ручном режиме;
- перебирать
START_OFFSETвокруг текущего значения синтетического эталона; - записывать лучший набор сначала по
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 = ______ дБ.
Пакет восстановил ______ бит, следующий шаг — ______.