02. Подготовка программного окружения¶
Цель раздела¶
Подготовить программное окружение для первого блока курса и понять роль каждого инструмента.
1. Общий подход¶
В курсе используется несколько программ. Они нужны не «для количества»: каждая решает конкретную инженерную задачу.
- Python это опорный язык курса: им создаются все скрипты лабораторных, графики и метрики;
- RTL-SDR: недорогой внешний приёмник для первых экспериментов;
- программа просмотра спектра (HDSDR, SDR#, SDR++ или GQRX): быстрое наблюдение спектра и водопада;
- MATLAB / Simulink: необязательный параллельный маршрут для моделирования и подготовки к fixed-point;
- C/C++: быстрые утилиты и инструменты обработки сигналов;
- GNU Radio: наглядная сборка SDR-цепочек;
- Icarus Verilog: симуляция RTL курса начиная с блока 5;
- Vivado / Vitis: путь к реализации на платформе Xilinx;
- KiCad: чтение схем и подготовка аппаратной части курса;
- VS Code: основная рабочая среда проекта.
2. Минимальный набор ПО для старта¶
Для первой лабораторной работы достаточно установить:
- Python 3 и зависимости курса;
- драйвер RTL-SDR;
- программу просмотра спектра (HDSDR или SDR# в Windows, SDR++ в любой системе, GQRX в Linux);
- VS Code (или любой редактор).
Этого уже достаточно, чтобы:
- принять сигнал;
- увидеть спектр;
- записать данные;
- выполнить базовый анализ.
MATLAB и Simulink не обязательны: каждая лабораторная курса выполняется на Python, а страницы о MATLAB это параллельный маршрут для тех, у кого есть лицензия.
3. Расширенный набор ПО¶
Для следующих этапов курса рекомендуется установить:
- Icarus Verilog (блок 5 и далее);
- GNU Radio;
- Vivado / Vitis (только для синтеза и работы с платой);
- KiCad;
- компилятор C/C++;
- MATLAB / Simulink с Fixed-Point Designer и HDL Coder, если есть.
4. Установка Python-окружения курса¶
Назначение¶
Скрипты курса читают IQ-файлы, строят графики и записывают метрики, на которые ссылаются страницы лабораторных. Всё, что нужно лабораторным, зафиксировано в requirements.txt.
Что сделать¶
git clone https://github.com/Lay007/zynq-sdr-course.git
cd zynq-sdr-course
python tools/tasks.py install
python tools/tasks.py labs
install ставит зафиксированные пакеты (numpy, matplotlib и инструменты документации); labs запускает представительные скрипты лабораторных. Если labs завершился без ошибок, Python-часть окружения готова.
Примеры задач блока 1¶
- загрузить запись комплексных отсчётов;
- вычислить FFT;
- найти частоту максимального пика;
- построить спектр.
5. Установка RTL-SDR¶
Назначение¶
RTL-SDR используется как простой внешний приёмник для наблюдения сигнала учебной SDR-платы.
Что сделать¶
- подключить RTL-SDR к компьютеру;
- установить драйвер устройства:
- Windows: запустить Zadig, выбрать interface 0 устройства (Bulk-In) и установить WinUSB (экраны показаны в Lab 1.0);
- Linux: установить пакет
rtl-sdrи не дать ядерному драйверу DVB-T захватить приёмник (blacklist dvb_usb_rtl28xxuв/etc/modprobe.d/); - проверить, что система видит устройство (
rtl_testпечатает тип тюнера); - проверить, что приёмник доступен в программе просмотра спектра.
Важные замечания¶
- лучше использовать USB-порт без перегруженного хаба;
- рядом с передатчиком следите за уровнем сигнала;
- при прямом кабельном подключении при необходимости ставьте аттенюатор.
6. Установка программы просмотра спектра¶
Назначение¶
Программа просмотра спектра нужна, чтобы наблюдать:
- спектр;
- водопад;
- частоту сигнала;
- уровень сигнала;
- поведение сигнала во времени.
HDSDR и SDR#: программы для Windows; SDR++ работает в Windows, Linux и macOS; в Linux распространён GQRX. В примерах курса используется HDSDR, но подойдёт любая из них.
Что проверить после установки¶
- программа запускается без ошибок;
- в качестве источника сигнала выбран RTL-SDR;
- спектр меняется при перестройке частоты;
- виден уровень шума и принимаемые сигналы;
- программа умеет записывать baseband IQ, а не только демодулированный звук.
7. MATLAB и Simulink (необязательно)¶
Назначение¶
MATLAB и Simulink используются для:
- моделирования сигналов;
- построения тестовых цепочек;
- спектрального анализа;
- подготовки к fixed-point;
- последующего перехода к аппаратной реализации.
В первом блоке они нужны для¶
- анализа записанного IQ-файла;
- вычисления FFT;
- оценки частоты и уровня тона;
- связи модели с будущей аппаратной реализацией.
Рекомендуемые компоненты¶
- Simulink
- тулбоксы для DSP
- Fixed-Point Designer
- HDL Coder
8. Установка компилятора C/C++¶
Назначение¶
C/C++ нужен для:
- быстрых утилит;
- офлайн-обработки больших файлов;
- подготовки настоящих DSP-инструментов;
- последующей интеграции в проекты реального времени.
В первом блоке¶
C/C++ используется в облегчённом виде:
- чтение IQ-файлов;
- простой спектральный анализ;
- собственная утилита обработки.
9. Установка GNU Radio¶
Назначение¶
GNU Radio позволяет быстро собрать SDR-цепочку из готовых блоков и наглядно отладить поток сигнала.
В первом блоке¶
GNU Radio можно использовать для:
- чтения записанного файла;
- отображения спектра;
- сравнения результатов с программой просмотра спектра и Python;
- интуитивного понимания цепочки.
10. Установка Vivado / Vitis¶
Назначение¶
Vivado / Vitis используются для работы с платформой Xilinx:
- сборка проекта;
- конфигурация аппаратуры;
- взаимодействие с SoC;
- подготовка маршрута от модели к аппаратуре.
В первом блоке¶
Эти инструменты рассматриваются только обзорно, без глубокого использования. Vivado: большой дистрибутив; RTL-лабораторные блоков 5 и 8 работают в Icarus Verilog и без него.
Главная цель:
- понять, что аппаратная реализация не появляется «сама собой»;
- увидеть место инструментов Xilinx в общем учебном маршруте.
11. Установка KiCad¶
Назначение¶
KiCad используется как инженерный инструмент для:
- чтения схем;
- подготовки схемотехнических лабораторных;
- создания простых вспомогательных плат;
- понимания электрических соединений учебного стенда.
В первом блоке¶
KiCad в основном нужен, чтобы:
- познакомиться с интерфейсом;
- открыть готовые схемы;
- читать цепи питания, сигнальные линии и разъёмы.
12. Установка VS Code¶
Назначение¶
VS Code: основная рабочая среда проекта.
В ней удобно:
- редактировать Markdown;
- запускать Python-скрипты;
- работать с C/C++;
- сопровождать репозиторий курса;
- готовить материалы лабораторных.
13. Рекомендуемый порядок установки¶
Минимальный старт¶
- Python и
python tools/tasks.py install - Драйвер RTL-SDR
- Программа просмотра спектра
- VS Code
Следующий этап¶
- Icarus Verilog
- GNU Radio
- KiCad
- Компилятор C/C++
- MATLAB / Simulink (необязательно)
- Vivado / Vitis
14. Проверка готовности¶
Перед лабораторной студент должен ответить «да» на вопросы:
- Завершается ли
python tools/tasks.py labsбез ошибок? - Видит ли система RTL-SDR (
rtl_testили программа просмотра спектра)? - Запускается ли программа просмотра спектра, видно ли уровень шума, пишет ли она baseband IQ?
- Установлен ли VS Code (или другой редактор)?
- Запускается ли KiCad?
15. Минимальный чек-лист перед первой лабораторной¶
- репозиторий курса склонирован, Python-зависимости установлены;
- RTL-SDR установлен и проверен;
- установлена программа просмотра спектра;
- подготовлено место для IQ-файлов и скриншотов.
16. Выводы¶
Программное окружение блока 1 должно быть не максимально полным, а достаточным для первого реального эксперимента.
На этом этапе важно не перегрузить студента, а обеспечить:
- рабочий набор инструментов;
- понимание роли каждого инструмента;
- готовность перейти к аппаратной части и первой лабораторной работе.