Teil 2: Wie Gateware den COHIRADIAStreamer ins Kurzwellenband katapultiert
Vor wenigen Wochen haben wir an dieser Stelle vorgestellt, wie das Trio aus smiSDR, parlioSDR und COHIRADIAStreamer historische Lang- und Mittelwellensender für kleines Geld wieder zum Leben erweckt. Kaum war die Tinte trocken, hat die Entwicklergruppe radiolab81 nachgelegt: Ein neues Gateware-Release verlagert die Digital-Up-Conversion direkt in die FPGA-Hardware – und reißt damit eine Bandbreitenmauer ein, die bislang selbst Kurzwelle auf preiswerten Setups praktisch unmöglich machte.
Rückblende: Wo die Reise stehen geblieben war
Im ersten Teil hatten wir gezeigt, wie smiSDR (Raspberry Pi, Secondary Memory Interface) und parlioSDR (ESP32-P4, PARLIO-Bus) als preiswerte „Network-to-DAC"-Streamer den ausgestorbenen fl2k-Hack ablösen und dabei die alte 8-Bit-Grenze sprengen. Das Software-Bindeglied dazu, der COHIRADIAStreamer, übernahm bislang die komplette Digital-Up-Conversion (DUC) auf der Host-Seite: Aus den COHIRADIA-Archivdaten wurden fertige, hochgetaktete RF-Samples berechnet und dann über das Netzwerk zum DAC-Knoten geschoben. Genau das war der Flaschenhals. Wer eine Mittelwellenaufnahme brauchbar in ihre Ziellage schieben wollte, produzierte bereits ordentlich Netzwerklast – wer aber Richtung Kurzwelle (HF) wollte, brauchte praktisch zwingend einen Raspberry Pi 4 mit Gigabit-Anschluss. Alles andere lief entweder gar nicht oder nur mit Aussetzern.
Die Lösung: DUC wandert von der Software in die Gateware
Mit dem aktuellen Update kehrt sich dieses Prinzip um. Der COHIRADIAStreamer überträgt jetzt wahlweise direkt die unveränderten I/Q-Basisbanddaten aus der WAV-Datei – mit einem neuen 16-Bit-Modus samt In-Band-Signaling – und lässt die eigentliche Hochmischung von der FPGA-Gateware der smiSDR/parlioSDR-Plattform erledigen. Der Effekt ist drastisch: Statt der bisher nötigen Datenrate für fertige RF-Samples genügt jetzt die native Dateisamplerate der Aufnahme. Um ein COHIRADIA-Archiv beispielsweise ins 15-m-Band bei rund 19 MHz zu heben, werden dadurch nur noch etwa 8 MBit/s Netzwerkbandbreite benötigt – ein Bruchteil dessen, was eine Gigabit-Verbindung hergeben müsste. Damit wird Kurzwellenbetrieb auf einmal auch auf älteren 100-MBit-Raspberry-Pi-Modellen oder sogar direkt auf dem ESP32-P4 von parlioSDR realistisch, ganz ohne High-End-Netzwerkinfrastruktur.
Möglich macht das ein cleveres Protokoll: Da der parallele 16-Bit-Bus (SMI respektive PARLIO) ohnehin breiter ist als die von den meisten DACs unterstützten 14 Bit, nutzt das Team die zwei übrigen Bits als Tag. 00 und 01 markieren I- beziehungsweise Q-Abtastwerte, 10 und 11 leiten Konfigurationskommandos ein. Damit lassen sich Frequenzverschiebung und Interpolationsrate live in denselben Datenstrom einbetten, der auch die eigentlichen Samples trägt – ganz ohne zusätzliche Steuerleitung oder separaten I²C/SPI-Bus. Auf dem COHIRADIAStreamer selbst genügt dafür ein simpler Klick auf die neue Option „I/Q Mode: SW or FPGA DUC (16 Bit with In-Band Signaling)" in der Oberfläche; Samplerate und Bittiefe werden dann automatisch aus den Metadaten der WAV-Datei übernommen.
Blick unter die Haube: Die neue DUC-Pipeline im Detail
Wer wissen will, wie aus ein paar hunderttausend I/Q-Samples pro Sekunde am Ende ein sauberes 50-MHz-Signal am DAC wird, findet im begleitenden Gateware-Repository eine detaillierte Dokumentation der kompletten Verarbeitungskette.
Der Reihe nach passiert Folgendes:
Am Bus-Eingang übernimmt das Modul smi_rx_16bit das Auspacken der In-Band-Kommandos und dehnt die eingehenden 14-Bit-Samples vorzeichenrichtig auf 16 Bit. Eine Zustandsmaschine sammelt dabei mehrbytige Parameter ein, ein digitaler Glitchfilter unterdrückt Störungen und ein eingebauter Watchdog verhindert, dass die Gateware nach Störungen oder einem Absturz der Host-Software in einem inkonsistenten Zustand hängen bleibt. Die Daten wandern anschließend durch eine Dual-Port-Block-RAM FIFO-Stufe, bevor ein zweigleisiger multirate_upsampler übernimmt: Für die volle Datenrate von 1,25 MSample/s kommt eine zeitmultiplexte MAC-Architektur mit festem Interpolationsfaktor zum Einsatz, für die niedrigeren Raten von 250 respektive 500 kSample/s eine Kaskade aus Halfband- und Polyphasenfiltern. Anschließend sorgt ein als „Sharpener" bezeichnetes FIR-Filter, das auf sechs parallele Block-RAM-Bänke verteilt ist, für Kanal-Shaping, bevor ein CIC-Interpolator dritter Ordnung mit Interpolationsfaktor 10 die Rate final auf einheitliche 50 MSample/s hebt.
Den eigentlichen Frequenzversatz übernimmt danach ein zweiphasiger NCO: Ein Viertelwellen-Sinus-ROM mit 1024 Werten wird per Bit-Spiegelung und Vorzeichenumkehr zu einer vollen Sinusperiode ausgebaut, die Kosinuskomponente entsteht durch einen exakten 90-Grad-Versatz im Phasenzähler. Ein komplexer Mischer multipliziert I- und Q-Pfad schließlich mit diesem Lokaloszillatorsignal, wobei eine sorgfältige Bit-Wachstumsbetrachtung (bis zu 34 Bit Zwischenergebnis) und eine Rundungskorrektur vor dem Herunterskalieren auf die native DAC-Auflösung dafür sorgen, dass weder Rauschboden noch Gleichspannungsoffset das Signal massiv verschlechtern. Am Ende steht ein Offset-Binary-kodiertes Signal exakt in der Auflösung, die der jeweils angeschlossene DAC verlangt.
Für welche Hardware das Ganze gedacht ist
Bemerkenswert ist, dass radiolab81 bei alldem konsequent auf teure Entwicklungsboards verzichtet. Getestet wurde die Gateware unter anderem auf günstigen Intel/Altera-Boards wie Cyclone IV, Cyclone 10 und dem kompakten MAX-1000-Board, auf diversen Mittelklasse-Boards von Lattice sowie auf den beliebten Sipeed-Tang-Nano- und Tang-Primer-Boards von Gowin – Preisklassen also, die sich locker mit dem eingangs erwähnten Boards für rund 40 Euro vergleichen lassen.
Der Praxistest: Von Langwelle bis Kurzwelle
Wie gut das Ganze in der Praxis funktioniert, zeigen reale Spektralaufnahmen aus dem COHIRADIA-Archiv. Im dichten Mittelwellenszenario mit zahlreichen synthetisierten historischen Sendern zwischen 783 kHz und 1359 kHz zeigen sich messerscharfe, symmetrische Träger ganz ohne sichtbaren LO-Leck – ein Beleg dafür, dass NCO und Mischer sauber arbeiten.
Sowohl am Messplatz, als auch live am Radio konnten wir nochmals deutlich bessere Ergebnisse sehen, als mit dem Softwaremodus der ersten Version von COHIRADIAStreamer auf Basis der liquid-DSP Bibliothek. Die Netzwerk und CPU Belastung unseres Streaming-PCs blieb dabei im einstelligen Prozentbereich und war kaum von anderen Hintergrundprozessen des Linux-Betriebssystems unterscheidbar!
Blick nach vorn: Ganz ohne Host-Rechner – und ein neuer Kandidat für die Pi-4-Nachfolge
Wie konsequent radiolab81 den eingeschlagenen Weg weiterdenkt, zeigt ein Blick auf die aktuell laufenden Tests der Gruppe. In Erprobung befindet sich derzeit eine FPGA-only-Variante, die selbst auf den Raspberry Pi respektive den ESP32-P4 als Zwischenstation verzichtet: Statt den I/Q-Datenstrom über SMI oder PARLIO an einen Host-Chip zu geben, der ihn erst per Ethernet weiterreicht, würde das FPGA-Board dann direkt per eigenem Ethernet-MAC/PHY am Netzwerk hängen und die Daten unmittelbar vom COHIRADIAStreamer entgegennehmen. Der Host-Baustein entfiele damit vollständig, und aus dem bisherigen Dreiklang aus Streamer-PC, SMI/PARLIO-Bridge und FPGA würde eine reine Zweier-Kette aus PC und FPGA-Board. Für die Praxis bedeutet das ein noch kompakteres, noch günstigeres und vor allem noch robusteres Setup, das sich prinzipiell auch autark im Feld betreiben ließe, ganz ohne SD-Karten-Betriebssystem oder Linux-Unterbau, der gepflegt werden müsste.
Spannend ist außerdem, dass mit dem kürzlich von Espressif vorgestellten ESP32-S31 ein Chip am Horizont steht, der als Nachfolgeoption für den bisher genutzten Raspberry Pi 4 gehandelt wird. Der neue RISC-V-Doppelkerner taktet mit bis zu 320 MHz und bringt als erster ESP32-Baustein überhaupt einen waschechten Gigabit-Ethernet-MAC mit – genau jene Eigenschaft, die den Raspberry Pi 4 für hohe COHIRADIA-Symbolraten so attraktiv gemacht hatte, künftig aber eben auch auf einem deutlich kleineren und sparsameren Mikrocontroller-Board verfügbar wäre. Ob und in welcher Form sich damit ein PARLIO-artiges paralleles Businterface für die DAC-Anbindung realisieren lässt, wird radiolab81 erst mit ersten verfügbaren Modulen verifizieren können. Sollte sich das bestätigen, wäre der ESP32-S31 aber ein naheliegender Kandidat, um die Gigabit-Klasse der COHIRADIA-Wiedergabe von der Einplatinencomputer- auf die Mikrocontroller-Ebene zu heben – bei entsprechend geringerem Stromverbrauch und Platzbedarf.
Fazit für das Elektronik-Labor
Was im ersten Artikel als Versprechen stand – dass FPGA-gestütztes DUC die exklusive Domäne teurer RedPitaya-Systeme verlässt –, ist mit diesem Update eingelöst. Indem die Frequenzumsetzung auf die Silizium-Ebene wandert, sinkt der Bandbreitenbedarf um Größenordnungen, während gleichzeitig die Einstiegshürde weiter fällt: Ein 40-Euro-FPGA-Board reicht jetzt aus, um historische Kurzwellensender über einen einfachen 100-MBit-Pi oder sogar über einen vernetzten ESP32-P4 wieder zum Leben zu erwecken. Und weil die Gateware standardmäßig mit 50 MHz Takt läuft, sich aber je nach FPGA-Board per PLL auch auf 250 MHz oder mehr hochtakten lässt, ist schon jetzt absehbar, dass UKW (FM) oder DAB in zukünftigen Ausbaustufen ebenfalls in Reichweite rücken. https://github.com/radiolab81/smisdr/tree/main/gateware
Das Elektor Magazine gehört seit 65 Jahren zu den führenden Informationsquellen für Elektronikingenieure, Entwickler, Start-ups und Unternehmen. Unser Magazin wird von einer aktiven Community aus Elektronikingenieuren – von Studenten bis zu Profis – getragen, die mit Leidenschaft innovative Ideen entwickeln und teilen.
Für diese veröffentlichen wir jedes Jahr Hunderte von Beiträgen in Formaten wie Artikeln, Videos, Webinaren und weiteren Lernformaten. Unsere Mission ist es, Wissen auf jede mögliche Weise zu teilen und die Leser mit den neuesten Entwicklungen im Bereich der Elektrotechnik zu inspirieren.
Vielen Dank für Ihre Bewertung!
Kommentar hinzufügen
Vielen Dank für Ihre Bewertung!
Möchten Sie einen Kommentar mit Ihrer Bewertung hinterlassen? Bitte melden Sie sich unten an. Nicht gewünscht? Dann schließen Sie einfach dieses Fenster.
Diskussion (0 Kommentare)