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

Блок 11. Интегрированный SDR-проект

Назначение

Блок собирает ранее изученные элементы в единую систему: модель, DSP-цепочку, аппаратную платформу, инструменты анализа и документацию.

Почему блок важен

Здесь студент учится не отдельным операциям, а системной инженерной сборке, где все подсистемы должны согласованно работать.

Основные темы

  • декомпозиция интегрированного проекта;
  • архитектура сигналов и интерфейсов;
  • совмещение DSP, RF и управляющей логики;
  • план верификации и тестирования;
  • структура репозитория и документации проекта;
  • критерии готовности системы.

Практическая часть

  • сборка end-to-end цепочки;
  • описание интерфейсов между модулями;
  • подготовка верификационных сценариев;
  • проведение интеграционных испытаний.

Как читать этот блок: карта лабораторных

В блоке больше сорока работ, потому что он фиксирует реальный запуск QPSK-модема в fabric на плате Zynq-7020 + AD9361. Не каждая работа это упражнение, которое нужно повторять. Часть из них это рабочая хроника отладки настоящего железа: они показывают, как сужается поиск проблемы, что пробовали и отвергли и как менялся диагноз. Читайте их как разборы случаев (case studies). Карта ниже подскажет, что делать, а что читать.

Этап Работы Чему учит Что нужно
1. Определить и смоделировать 11.1 требования и архитектура, 11.2 сквозной пакет симуляции, 11.3 чек-лист интеграции FPGA/RF и безопасности, 11.5 модель задержки/джиттера DMA, 11.6 бюджет неопределённости превращать цель в требования, воспроизводимой симуляции, безопасному пути к RF и честной отчётности по измеренным числам только ПО
2. Измерить готовый модем (ядро) 11.27 BER цифрового loopback QPSK, 11.29 кампания BER при холодной загрузке, 11.4 итоговый измерительный отчёт как «модем декодирует» превращается в число с доверительным интервалом и как выглядит полный отчёт плата (иначе только чтение)
3. Офлайн-приём и пакеты 11.38 TX, запись IQ, офлайн-приёмник, 11.46 сообщение между двумя платами полный приёмник на Python по записанному захвату и кадрирование пакетов ПО (самотест 11.38), две платы (11.46)
4. Хроника запуска 11.7–11.19 (запуск AXI-Lite, overlay gpreg, RF-разведка, IIO-снимок по таймеру, проверка конкуренции, сравнение stock и runtime, пробы re-init, самотактируемый запуск) разобранный пример того, как сужается поиск «приёмный тракт ничего не видит»; решено в 11.26 плата (разбор случая)
5. Независимый мониторинг RTL-SDR 11.14 и 11.20–11.25, 11.28 проверка передатчика вторым, независимым приёмником плата + RTL-SDR
6. История несущей и тайминга на двух платах 11.30–11.35 (оценщик грубого CFO на реальном канале, стресс-развёртка, захват в fabric, отвергнутая гипотеза о тайминге, восстановление тайминга Гарднера, парный A/B) восстановление несущей и тайминга, проверенное на железе, включая опровергнутую гипотезу две платы (разбор случая)
7. Последние проценты 11.41 (DC-блокер следил за данными), 11.42 (ложный захват frame-sync), 11.45 (дифференциальный QPSK и более длинная преамбула) как остаточный пол ошибок прослеживается до причины, слой за слоем две платы (разбор случая)

Если у вас нет железа, выполняйте этапы 1 и 3 (самотест 11.38 работает офлайн), а этапы 2 и 4–7 читайте как разборы случаев; результаты, о которых они сообщают, закоммичены как JSON-доказательства в docs/assets/. Если у вас одна плата, добавьте этап 2. Для этапов с двумя платами нужны две платы и контролируемый ослабленный кабельный тракт; перед передачей прочитайте правила RF-безопасности в Lab 11.3.

Перевод на русский: почти все работы блока переведены. Два самых объёмных журнала, Lab 11.8 и 11.26, имеют русское краткое изложение в начале страницы; их подробная хронология пока только на английском.

Инструменты блока

Основной набор инструментов: Simulink, Vivado, MATLAB, Python, KiCad.

Что должно получиться на выходе

  • архитектурная схема проекта;
  • таблица интерфейсов;
  • протокол интеграционных проверок;
  • интегрированный отчёт.

Структура папки блока

block_11_integrated_sdr_project/
├── README.md
├── README_ru.md
├── README_en.md
├── CONTENTS_ru.md
├── CONTENTS_en.md
├── assets/
├── images/
├── kicad/
├── simulink/
├── matlab/
├── python/
├── cpp/
├── gnuradio/
└── reports/
  • assets/: справочные данные и вспомогательные материалы;
  • images/: диаграммы, скриншоты и фотографии;
  • kicad/: схемы и электрические пояснения;
  • simulink/, matlab/, python/, cpp/, gnuradio/: модели и инструменты анализа;
  • reports/: отчёты и шаблоны оформления.

Рекомендуемый порядок работы

  1. разбить проект на подсистемы.
  2. согласовать интерфейсы и данные.
  3. прогнать интеграционные тесты.
  4. оформить системную документацию.

Следующий шаг

После завершения блока студент должен быть готов использовать его результаты как основу для следующего этапа курса и связанного практического эксперимента.