Блок 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/: отчёты и шаблоны оформления.
Рекомендуемый порядок работы¶
- разбить проект на подсистемы.
- согласовать интерфейсы и данные.
- прогнать интеграционные тесты.
- оформить системную документацию.
Следующий шаг¶
После завершения блока студент должен быть готов использовать его результаты как основу для следующего этапа курса и связанного практического эксперимента.