Как собрать широкополосный SDR-фронтенд: тракт сигнала от АЦП до FPGA
Суть программно определяемого радио (SDR): оцифровать радиочастотный сигнал как можно раньше, а обработку передать FPGA. Типовая цепь широкополосного SDR-фронтенда: антенна → УВЧ → смеситель → АЦП → FPGA (DDC + БПФ + демодуляция). В этой цепи полоса пропускания трансиверов FPGA, буферизация DDR и вычислительная мощность DSP определяют, какую мгновенную полосу вы сможете обработать.
1. Тракт сигнала SDR-фронтенда
Полная цепь приёма широкополосного SDR:
1. Антенна + ВЧ-фронтенд: приём эфирных сигналов, усиление через УВЧ, полосовой фильтр.
2. Смешивание / прямое преобразование: либо понижение частоты до ПЧ с последующей выборкой, либо прямое ВЧ-преобразование (широкополосный АЦП выбирает DC~6 ГГц).
3. Выборка АЦП: оцифровка аналогового сигнала, вывод последовательных данных JESD204B.
4. Обработка на FPGA: приём JESD204B → DDC (цифровое понижение частоты) → БПФ / демодуляция → передача на хост по PCIe.
FPGA в этой цепи делает три вещи: принимает высокоскоростные последовательные данные, выполняет цифровое понижение частоты в реальном времени и передаёт данные на хост по PCIe. Эти три задачи определяют выбор FPGA.
2. Как рассчитать мгновенную полосу
Ключевой показатель SDR — мгновенная полоса (Instantaneous Bandwidth, IBW) — полоса, которую FPGA обрабатывает в реальном времени после выборки АЦП.
| Показатель | Формула | Пример (AD9680 14 бит 1 Гвыб/с) |
|---|---|---|
| Частота выборки АЦП | f_s | 1 Гвыб/с |
| Теоретическая полоса Найквиста | f_s / 2 | 500 МГц |
| Полоса на выходе DDC | f_s / децимация | dec=4 → 125 МГц |
| Скорость линии JESD204B | f_s × 14 бит × накладные расходы кадра | ≈ 10,24 Гбит/с на дорожку |
| Пары трансиверов FPGA | дорожки на АЦП | AD9680 → 4 дорожки |
Пример бюджета полосы
Требование проекта: мгновенная полоса 100 МГц, двухканальный АЦП.
- АЦП: AD9680 (14 бит, 1 Гвыб/с, JESD204B), 4 дорожки на канал @ 10,24 Гбит/с.
- Два канала АЦП: нужно 8 пар трансиверов.
- Скорость данных после DDC: 100 МГц × 2 канала × 16 бит (I/Q) = 3,2 ГБ/с.
- Теоретическая полоса PCIe Gen2 x8 ≈ 3,2 ГБ/с → полная загрузка, нужен запас.
- Вывод: выбрать DUK7410T (8× GTP + PCIe Gen2 x8) — впритык, но требуется буферизация DMA ping-pong.
3. Требования к ресурсам FPGA
Ресурсы, необходимые FPGA для SDR-фронтенда:
| Ресурс | Назначение | Типичная потребность (2×100 МГц IBW) |
|---|---|---|
| Высокоскоростные трансиверы | приём JESD204B + передача по PCIe | 8 (АЦП) + 4 (PCIe) = 12 пар |
| DSP-слайс | DDC NCO + КИХ-фильтр + БПФ | ~500~800 |
| BRAM | FIFO-буфер + ping-pong | ~20~40 МБ |
| Полоса DDR | большой буфер + PCIe DMA | ≥ 5 ГБ/с |
| Логические ячейки | IP JESD204B + DDC + PCIe DMA | ~100K~150K LC |
4. Выбор платы по сценарию
Начальный уровень: DUK7410T (¥9,999) — одноканальный SDR 100 МГц
8× GTP хватает на одну мезонинную плату AD9680 (4 дорожки), оставшиеся 4 пары работают по PCIe Gen2 x8. 4 ГБ DDR3 для ping-pong буферизации. Подходит для обучения, одноканального спектрального мониторинга.
Основной уровень: DUF7690T (¥24,999) — двухканальный SDR 200 МГц
36× GTH @10,3G, два FMC HPC для двух АЦП-мезонинов. 3600 DSP-слайсов легко обрабатывают 8-канальный DDC. PCIe Gen3 x8 удваивает полосу. Подходит для широкополосного спектрального мониторинга, прототипов радиоэлектронной борьбы.
Высокий уровень: XCKU15P (¥15,999) — SDR с прямым преобразованием ВЧ
Трансиверы GTY 28G поддерживают скорость линии JESD204C 24 Гбит/с. 8 ГБ DDR4 ECC 19,2 ГБ/с. Подходит для прямого ВЧ-преобразования (6 ГГц АЦП), многоканального MIMO, прототипов фазированных антенных решёток.
5. Три типичные ошибки
Ошибка 1: скорость линии JESD204B превышает возможности трансиверов
AD9680 на полной скорости 1 Гвыб/с имеет скорость линии ≈ 10,24 Гбит/с. Трансиверы GTP DUK7410T ограничены 6,6 Гбит/с — подключить невозможно! Нужно понизить частоту выборки до 250 Мвыб/с (скорость линии ≈ 2,5 Гбит/с). Или перейти на DUF7690T (GTH @10,3G).
Ошибка 2: недостаточная полоса DDR приводит к потере данных
Данные 3,2 ГБ/с после DDC нужно записать в DDR и считать оттуда для передачи по PCIe. DDR3 14,9 ГБ/с хватает теоретически, но реальная эффективность при переключении чтение/запись составляет лишь 60 % — ≈ 9 ГБ/с. При двухканальной работе рассчитывайте внимательно; если не хватает — переходите на DDR4.
Ошибка 3: рассинхронизация тактов, JESD204B не захватывает синхронизацию
JESD204B требует выравнивания Device Clock + SYSREF. Такт мезонинной платы АЦП должен проходить через вывод FMC CLK0 на глобальные тактовые входы MRCC/SRCC FPGA. Если разводка PCB выполнена неверно, самая дорогая микросхема не поможет.
SDR-фронтенд — это не покупка самого дорогого FPGA, а правильный расчёт скорости линии АЦП, мгновенной полосы, буферизации DDR и передачи по PCIe. Три расчёта — пары трансиверов, DSP, полоса DDR — и выбор платы становится очевидным.
