Muxwright

Прошивка и технология

По USB Pluto стабильно держит лишь около 7 MS/s, а DVB-T 8 MHz требует 9,14 MS/s. Поэтому модулятор работает на самом устройстве.

  1. PC / WSLffmpeg + TSDuck: видео, звук, таблицы SI, постоянный битрейт
  2. UDPТранспортный поток до 32 Mbit/s через сеть по USB
  3. ARM в PlutoЯдро 0: RS, перемежитель, свёрточный код, маппер · ядро 1: NEON IFFT
  4. DAC → HFAD9364, 70 MHz–6 GHz, ослабление 0–89,75 dB

Фиксированная точка + NEON

Кодер, перемежитель, маппер и IFFT работают с фиксированной точкой. IFFT Stockham radix-4 использует NEON и побитно совпадает с эталоном на C (одинаковая контрольная сумма на x86 и ARM).

Реальное время на 2 ядрах

8k/64-QAM/7/8 работает с коэффициентом реального времени 1,00 и без underrun при нагрузке 55–67 % на ядро Cortex-A9. DVB-S при 22 MBd использует 42–63 % одного ядра; DVB-S2 QPSK достигает 27 MBd на одном ядре.

Прошивка на базе v0.31

Buildroot 2019.02, Linux 4.14 и битстрим FPGA идентичны заводским, плюс libiio/iiod 0.25, настройка реального времени и DMA и агент устройства с HTTP API.

Проверено по эталону

Пилоты, TPS и несущие данных совпадают с gr-dtv. Собственный приём через вход RX декодируется побитно точно. Прошивку можно сначала проверить из ОЗУ, не меняя флеш.

Полезные битрейты DVB-T в Mbit/s (8 MHz, защитный интервал 1/32)
Созвездие1/22/33/45/67/8
QPSK6,038,049,0510,0510,56
16-QAM12,0616,0918,1020,1121,11
64-QAM18,1024,1327,1430,1631,67

Изнутри

Мониторинг, протокол испытаний и медиа