Teaching Real-Time Communication System Design – A New Holistic and Modular Approach

Prof. Dr.-Ing. Holger Stahl, Hochschule Rosenheim

"Das dargestellte Protokollgerüst ist ein modulares Baukastensystem für ein drahtloses Kommunikationssystem unter LabVIEW. Es ermöglicht Studie-renden, die Echtzeit-Kommunikation im Schichtenmodell zu verstehen sowie einzelne Funktionalitäten innerhalb der Protokollschichten weiterzu-entwickeln – auch in anderen Programmiersprachen wie MATLAB oder C."

- Prof. Dr.-Ing. Holger Stahl, Hochschule Rosenheim

Die Aufgabe:

Moderne Kommunikationssysteme sind größtenteils zu komplex, als dass sie ganzheitlich im Rahmen einer Lehrveranstaltung behandelt werden könnten. Die derzeitige Ingenieurausbildung im Fachgebiet „Kommunika-tionssysteme” konzentriert sich daher meist auf algorithmische Details in-nerhalb der Protokollschichten, ohne auf deren Zusammenspiel in Echtzeit einzugehen.

Die Lösung:

Dieser Artikel beschreibt die Struktur eines einfachen, modularen SDR (Software Defined Radio), welches in den Labors für Kommunikationssys-teme und Nachrichtenübertragung der Hochschule Rosenheim genutzt wird

Autor(en):

Prof. Dr.-Ing. Holger Stahl - Hochschule Rosenheim
Prof. Dr.-Ing. Markus Stichler - Hochschule Rosenheim

 

Diese Kundenlösung wurde im Tagungsband 2016 des Technologie- und Anwenderkongresses „Virtuelle Instrumente in der Praxis“ veröffentlicht.

 

Eingesetzte Produkte: LabVIEW, TestStand

Kurzfassung

Moderne Kommunikationssysteme sind größtenteils zu komplex, als dass sie ganzheitlich im Rahmen einer Lehrveranstaltung behandelt werden könnten. Die derzeitige Ingenieurausbildung im Fachgebiet „Kommunikationssysteme” konzentriert sich daher meist auf algorithmische Details innerhalb der Protokollschichten, ohne auf deren Zusammenspiel in Echtzeit einzugehen. Dieser Artikel beschreibt die Struktur eines einfachen, modularen SDR (Software Defined Radio), welches in den Labors für Kommunika-tionssysteme und Nachrichtenübertragung der Hochschule Rosenheim ge-nutzt wird. Das echtzeitfähige Grundgerüst wurde in LabVIEW realisiert: Dabei wurde besonderer Wert auf die exakte Definition von Protokollschichten, Threads und Schnittstellen gelegt. Test- und Simulationsfunktionen ermöglichen isolierte Tests jeder einzelnen Protokollschicht.

 

In der vorgestellten Grundversion wird die Standard-PC-Soundkarte zum Senden und Empfangen akustischer Signale genutzt. So können die Studierenden SDR-Verfahren erkunden, ohne das Gesamtsystem aus den Augen zu verlieren. In den Masterstudiengängen dient dasselbe Gerüst dann als Spielwiese, für die Forschung an weiterführenden drahtlosen Technologien.

 

Motivation

Lehrveranstaltungen zum Thema Kommunikationssysteme beginnen übli-cherweise mit einer groben Erläuterung des ISO/OSI-Referenzmodelles, bevor dann in spezielle Funktionen einzelner Schichten abgetaucht wird. Die Autoren unterrichten seit dem Jahr 2000 die Fächer Kommunikations-protokolle und Nachrichtenübertragung an der Hochschule Rosenheim. Inspiriert durch die Arbeiten konkretisierte sich der Wunsch nach einem einfachen Beispielsystem, das sowohl Demonstrator als auch Spiel-wiese für studentische Experimente darstellt.


Die vorgeschlagene Struktur eines Kommunikationssystems unterscheidet derzeit vier Schichten, die in Echtzeit miteinander kommunizieren. Für die Implementierung wurde LabVIEW ausgewählt, weil das nötige Multi-Threading die Studierenden nicht davon ablenkt, das Gesamtsystem zu begreifen. Innerhalb der einzelnen Schichten können die Funktionen dann wahlweise mit LabVIEW oder auch mit MATLAB oder C implementiert sein. Das Gerüst wird den Studierenden als „Walking Skeleton” präsentiert, mit einem einfachen CSMA-MAC-Layer (CSMA = Carrier Sense Multiple Access), und einem OFDM-PHY (Orthogonal Frequency Division Multiplex). Ein Funkkanal mit Mehrwege-Echos verhält sich sehr ähnlich wie die Akustik eines Raums. Somit können die Studierenden den Lautsprecher und das Mikrofon des PCs verwenden, um aktuelle Übertra-gungsverfahren in einer realen Umgebung zu testen – sei es im Labor oder als Vor- oder Nachbereitung zu Hause. Denn Echtzeitverarbeitung akusti-scher Signale wird von einem Standard-PC ohne spezielle Hardware unterstützt.

 

 

Aufbau des Protokollgerüsts

Bild 1 zeigt den Protokollstack. Das Gerüst besteht aus vier Schichten, die über SAPs (Service Access Points) miteinander kommunizieren können. Neben den eigentlichen Instanzen APP.vi, MAC.vi, PHY.vi und TRX.vi gibt es zu jeder der Instanzen auf den unteren drei Schichten zusätzlich:
• eine Testfunktion (z. B. Test_PHY.vi) zur Ansteuerung der Instanz vom oberen SAP
• und eine Simulation (z. B. PHY__DUMMY.vi), welche einerseits die Schnittstelle der Instanz nach oben vollständig korrekt bedient und an-dererseits deren Dienste zumindest teilweise mittels Loop-Back simu-liert.
Bild 2 zeigt beispielhaft den Test einer PHY-Instanz, ohne Anwesenheit einer lauffähigen MAC- oder TRX-Schicht. Somit lässt sich die Funktiona-lität einer Schicht isoliert entwickeln, bevor alle Bausteine anschließend zu einem kompletten Kommunikationssystem zusammengefügt werden.

 

Die Umschaltung zwischen Instanz und Simulation geschieht auf Datei-ebene und ist in Bild 3 verdeutlicht.

 

Innerhalb einer Schicht gibt es ein Haupt-VI (z. B. PHY.vi im Bild 3), das als FGV (Functional Global Variable) alle Funktionen der jeweiligen Schicht bündelt. Ein weiteres VI (PHY_DUMMY.vi) beinhaltet die Simu-lation der Instanz. Durch einen Mausklick auf eine Batchdatei lässt sich zwischen Instanz und Simulation hin- und herschalten, indem die beiden Dateien einfach umbenannt werden (Bild 3).

 

In der Grundversion sind derzeit folgende Funktionalitäten lauffähig:

MAC (Medium Access Control):

• Instanz: Adressierung von Geräten am akustischen Medium; Zugriffs-steuerung mittels CSMA, Fehlerbehebung durch ARQ (Automatic Retransmission Query)
• Die MAC-Simulation (MAC__DUMMY.vi) empfängt die gesendeten Daten mittels einer Loop-Back-Funktion, die auch Kollisionen und Feh-ler simulieren kann.


PHY (Physical Layer):
• Instanz: alle Signalverarbeitungsschritte für Basisband-OFDM (auch Discrete Multitone genannt), d. h. Scrambling, FEC, Interleaving, (I)FFT, Cyclic Prefix & Rahmensynchronisation. Außerdem findet in dieser Schicht das Carrier Sensing für den MAC-Layer statt.
• Die PHY-Simulation implementiert ein Loop-Back mit Rahmen- und Bitfehlerraten.


TRX (Transceiver):
• Instanz: kümmert sich um das Senden und Empfangen von Signalen auf dem Medium, beispielsweise mittels Soundkarte. Wichtigste Funktionalität ist das kontinuierliche Auslesen des A/D-Wandlers in einen Ringpuffer, aus dem die digitalisierten Signale anschließend vom PHY abgeholt werden können. Der TRX-Instanz kommt außerdem eine zentrale Bedeutung als Zeit- und Frequenzreferenz zu, da alle Schichten letztendlich vom Takt des A/D-Wandlers gesteuert werden.

• Die TRX-Simulation implementiert einen Kanalsimulator. Einstellbar sind beispielsweise Dämpfung, AWGN (Additive White Gaussian Noi-se) und Fading.

 

Implementierung des Gerüsts in LabVIEW: Instanzen & Threads

Bild 4 zeigt alle Module, die für die Bereitstellung der Schnittstellen (SAPs) zwischen den 4 Protokollschichten nötig sind.

 

Die Instanzen MAC.vi, PHY.vi und TRX.vi sind als FGV organisiert, unter LabVIEW ein bewährtes Design-Pattern zur Kapselung von Daten und Funktionalität mithilfe vordefinierter Actions. Diese Instanzen dienen jeweils zum Senden von Daten oder Signalen und sind darüber hinaus für die Initialisierung und das Herunterfahren der jeweiligen Schicht am Ende der Laufzeit verantwortlich.
Damit der Sende- und der Empfangspfad (rechte Seite von Bild 4) jeweils in Echtzeit reagieren können, laufen auf jeder Schicht zusätzlich ein bis zwei ‚forever‘-Schleifen, jeweils in einem eigenen Thread. Zwischen den Threads repräsentiert eine Kombination aus FGVs, Queues und Notifiers jeweils die Schnittstellen (SAPs) zwischen zwei Schichten. Die Synchronisation des Empfangspfades erfolgt vollständig ereignisgesteuert, d. h., außer der Soundkarte gibt es keine weiteren Zeitgeber oder gar Warteschleifen, mit denen Variablen oder andere Ressourcen ‚gepollt‘ würden.

 

Bild 5 verdeutlicht die Schnittstellen und die Synchronisation im Detail am Beispiel des PHY:

 

Zusammenfassung und Ausblick

Das dargestellte Protokollgerüst ist ein modulares Baukastensystem für ein drahtloses Kommunikationssystem unter LabVIEW. Es ermöglicht Studierenden, die Echtzeit-Kommunikation im Schichtenmodell zu verstehen sowie einzelne Funktionalitäten innerhalb der Protokollschichten weiterzu-entwickeln – auch in anderen Programmiersprachen wie MATLAB oder C. Die Grundversion benötigt zum Betrieb außer einem PC keine weitere Hardware, weil die akustische Datenübertragung über die Soundkarte ge-schieht. Eine prinzipielle obere Grenze für die Leistungsfähigkeit dieser Protokollstruktur gibt es jedoch nicht: Für die Zukunft ist geplant, mithilfe der LabVIEW Communications System Design Suite Teile der Struktur auf USRP-RIO-Plattformen auszulagern, um extrem hohe Datenraten mit Echtzeit-MIMO (Multiple In Multiple Out) auszutauschen.

 

Informationen zum Autor:

Prof. Dr.-Ing. Holger Stahl
Hochschule Rosenheim
Hochschulstraße 1
83024 Rosenheim
Tel: 49 (0)8031 805-2711
Fax: 49 (0)8031 805-2773
holger.stahl@fh-rosenheim.de

Bild 1: Das Protokollgerüst: Instanzen, Test- und Simulationsmodule
Bild 2: Beispielszenario zum Test der PHY-Instanz ohne MAC und TRX
Bild 3: Umschaltung der aktiven Instanz durch Umbenennen von Dateien
Bild 4: SDR-Programmgerüst mit Instanzen, Threads und Schnittstellen
Bild 5: Schnittstellen der PHY-Instanz