1. Einleitung

Dieser Themenblock des Praktikums Kommunikationsnetze beschäftigt sich mit den Auswirkungen der physikalischen Schicht auf die Wirkungsweise von Kommunikationsprotokollen in höheren Schichten des ISO-/OSI-Referenzmodells. Die physikalische Schicht ist aus der Sichtweise der Kommunikationsprotokolle hauptsächlich durch 3 Parameter charakterisiert:

  1. Die Wahrscheinlichkeit dafür, dass ein Bitfehler auftritt,
  2. die Verzögerungszeit eines Bits vom Sender zum Empfänger und
  3. den Durchsatz.

Nur, wenn die Charakteristiken dieser drei Basisparameter bekannt sind, ist es möglich, effiziente Protokolle angepasst an das jeweilige physikalische Medium zu entwickeln. Insbesondere das Design von MAC-Protokollen und Data-Link-Protokollen ist eng mit den Charakteristiken der physikalischen Schicht verbunden. Deshalb ist es auch nicht verwunderlich, dass es eine Vielzahl von MAC- und Data-Link-Protokollen gibt, die an die Eigenschaften des physikalischen Kanals angepasst sind. Höhere Protokolle in höheren Ebenen, wie etwa Transportprotokolle, sind in ihrer Anzahl wesentlich geringer, da sie die Eigenschaft haben, möglichst unabhängig von der physikalischen Schicht eine “End-to-End”-Kommunikation zu ermöglichen.

Tabelle. 1-1 gibt eine Übersicht über einige Varianten des IEEE 802 Standards, in dem sowohl das Ethernet als auch Wireless LAN spezifiziert sind. Wie zu erkennen ist, werden abhängig von der jeweiligen Variante des Standards unterschiedliche physikalische Medien verwendet. Während beim IEEE Standard 802.11 das drahtlose Medium verwendet wird, verwendet der Standard IEEE 802.3 Kabel. In Abhängigkeit vom verwendeten Kabel (Glasfaserkabel, Koaxialkabel oder Kupferdoppeladern (engl. Twisted Pairs (TP))) ergeben sich unterschiedliche Leistungsparameter der Protokolle wie z. B. die maximal erreichbare Bandbreite. Nähere Informationen zu den Kabeleigenschaften können Sie dem Kapitel "Zusatzliche Literatur" entnehmen.


Tabelle 1-1: Übersicht über häufig verwendete MAC Protokolle

2. Verwendete Geräte

Für die Untersuchungen an der physikalischen Schicht stehen Transceiver der Firma Texas Instruments vom Typ CC1020 zur Verfügung. Diese Art von Transceiver gehört zur Familie der "Single Chip Low Power RF Transceiver for Narrow Band Systems" und operiert im 400 MHz-Bereich (US-Variante) und 800 MHz-Bereich (europäische Variante). In der Regel werden mindestens zwei Transceiver benötigt. Ein Transceiver wird als Sender verwendet und der andere Transceiver operiert als Empfänger. Kommunizieren mehr als zwei Transceiver miteinander, so bilden sie ein Netzwerk, wie es n Abb. 1-1 skizziert ist.


Abb. 1-1: Versuchsaufbau dieses Blocks

Wie in Abb. 1-1 zu sehen ist, wird ein Transceiver über die parallele Schnittstelle (Printer Interface) an einen Computer angeschlossen. Eine genauere Beschreibung der parallelen Schnittstelle ist Kapitel "Zusätzlich Literatur" zu entnehmen. Der Computer ist mit dem Betriebssystem Linux ausgestattet und verfügt über einen Treiber zur Steuerung des Transceivers. Pro Versuchsaufbau werden bis zu 2 Transceiver gleichzeitig verwendet. Da in einem Termin mehrere Versuchsaufbauten parallel betrieben werden, muss gewährleistet werden, dass sie sich nicht gegenseitig stören.

In den folgenden Abschnitten werden die einzelnen Komponenten der Transceiver beschrieben.


2.1 Transceiver CC1020

Der Transceiver bietet die Möglichkeit an, Daten drahtlos zu einem anderen Transceiver zu senden oder von einem entfernten Transceiver zu empfangen. Dafür besitzt ein Transceiver eine Vielzahl von Funktionsblöcken, die beim CC1020 in einer "single chip"-Lösung implementiert sind.


Abb. 1-2: Blockschaltbild eines Transceivers

Abb. 1-2 zeigt prinzipiell den Aufbau des CC1020, der dem Aufbau heutiger Transceiver entspricht. Der Empfangsteil (Receiver) des Transceivers verstärkt zunächst das von der Antenne empfangene hochfrequente Signal mittels eines Vorverstärkers. Dies ist notwendig, damit für die weitere Verarbeitung des Signals der Signalpegel möglichst einen Schwellwert nicht unterschreitet und damit eine möglichst fehlerfreie Signalerkennung gewährleistet ist. Da die Signalstärke des hochfrequenten Signals Schwankungen unterliegt, passt sich der Verstärker adaptiv an die Signalstärke an, um möglichst einen konstanten Pegel einzustellen. Das so verstärkte hochfrequente Signal wird anschließend in ein niedrigeres Frequenzband, in die sogenannte "Immediate Frequency (IF)" wI transformiert. Diese Aufgabe erledigt der "IF Konverter". Manchmal wird zusätzlich nicht nur ein Signal der Frequenz wI erzeugt, sondern auch ein Signal mit der quadratischen Frequenz wQ. Hierdurch ist die weitere Verarbeitung des Signals unabhängig von der Trägerfrequenz des hochfrequenten Signals. Dies ist besonders vorteilhaft, wenn sich die Trägerfrequenz variabel einstellen lässt. Die Signalverarbeitung ist bei niedrigen Frequenzen in der Regel einfacher und robuster zu implementieren als bei hohen Frequenzen. So produziert der IF-Empfänger ein geringeres Rauschen als der HF-Empfänger. Das IF-Signal wird anschließend gefiltert und nochmals verstärkt.

Zuletzt wird das gefilterte und verstärkte IF-Signal mit einem A/D-Wandler digitalisiert und steht als binäres Signal nach der digitalen Demodulation zur Verfügung. Sowohl für den Empfänger als auch für den Sender steht ein Oszillator (Osc) zur Verfügung, der in der Regel durch einen externen Quarz angetrieben wird. Der Oszillator erzeugt alle notwendigen Takte für den Empfänger und Sender. Hierfür enthält er Frequenzteiler und Multiplexer, die jeweils den gewünschten Takt zum richtigen Zeitpunkt erzeugen. Für die Synchronisation der Takte an die Taktfrequenz des empfangenen Signals wird in der Regel eine "Phased-Locked Loop, PLL"-Schaltung verwendet. Da die PLL eine zentrale Komponente des Transceivers ist, wird auf sie näher in Kapitel "Zusätliche Literatur" eingegangen. Der Sender (Transmitter) eines Transceiver ist in der Regel sehr einfach aufgebaut. Das binäre Signal wird zunächst moduliert und anschließend einem HF-Verstärker zugeführt.

Der Verstärker ist regelbar, sodass eine gewünschte Sendeleistung eingestellt werden kann. Abschließend wird das so entstandene HF-Signal von der Antenne abgestrahlt.

Der Modulator und Demodulator kann wahlweise verschiedene Modulationen erzeugen. Neben dem "Amplitude Shift Keying (ASK)" oder auch "On Off Keying (OOK)" genannt, beherrscht er "Frequency Shift Keying (FSK)" und "Gaussian FSK (GFSK)". Neben dem Senden und Empfangen von Daten bietet der CC1020 eine Vielzahl von zusätzlichen Funktionen an:

  1. Leitungscodierung: Das binäre Signal wird einer Kodierung unterzogen, bevor es moduliert wird. An Kodierungen stehen die "Non Return to Zero (NRZ)"- und die Manchester-Kodierung zur Verfügung.
  2. Scrambling: Zusätzlich kann das binäre Signal durch einen Scrambler verwürfelt werden. Hierdurch wird die Synchronisation (vor allem bei andauernden 0- oder 1-Folgen) beim Empfangssignal erleichtert und ein für die Übertragung günstigeres Spektrum des Signals erreicht.
  3. Frequenzmultiplex: Die Trägerfrequenz kann im Bereich von 804 MHz bis zu 940 MHz variiert werden. Durch das Frequenzmultiplex können mehrere Transceiver, ohne sich gegenseitig zu stören, betrieben werden. Um die Robustheit einer Übertragung zu erhöhen, können die Transceiver zum Aufbau eines "Frequency Hopping"-Systems verwendet werden.
  4. Anzeige der Empfangsqualität: Beim Empfang von Daten wird die Empfangsqualität von einem "Receive Signal Strength Indicator (RSSI)" gemessen. Der RSSI dient jedoch nicht nur zur Beurteilung der Empfangsqualität, sondern er kann auch als "Carrier Sense (CS)"-Signal zur Implementierung von Mehrfachzugriffsprotokollen verwendet werden.

2.1.1 RSSI

Das RSSI-Signal dient dazu, die Signalstärke zu ermitteln. Der Wert kann einen Wert von 0 bis 63 annehmen und wird im digitalen Teil des IF-Empfängers gemessen. Da der RSSI mitunter starken Schwankungen unterliegt, wird dieser intern durch den CC1020 über mehrere Messungen gemittelt.

Der Messwert wird nach folgender Gleichung ermittelt:

$$ RSSI = 4 \cdot log_2 (Signalamplitude) \tag{1.1} $$

Als Signalamplitude wird der Wert am Ausgang eines adaptiven Verstärkers verwendet, des "Variable Gain Amplifier (VGA)". Um einen Zusammenhang zwischen dem RSSI und der HF-Leistung PHF herzustellen, kann grob die folgende Gleichung verwendet werden:

$$ P_{HF}=1.5 \cdot RSSI - 3 \cdot K_{VGA} \ [dBm] \tag{1.2} $$

In Gl. (1.1) ist die Variable "RSSI" der gemessene RSSI-Wert und KVGA symbolisiert den Verstärkungsfaktor des VGA. Gl. (1.2) ist jedoch unvollständig, weil nicht die frequenzabhängigen Komponenten des CC1020 berücksichtigt werden (z.B. Filter und Verstärker in den Komponenten des Transceivers). Durch sie ergibt sich ein Abweichung des RSSI-Werts RSSIoffset vom realen RSSI-Wert des hochfrequenten Signals an der Antenne. Beispielsweise ergeben sich für unterschiedliche Verstärkungsfaktoren KVGA unterschiedliche RSSI-Werte. Dementsprechend ist dieser RSSIoffset in Gl. (1.2) von PHF abzuziehen. Somit ergibt sich der Zusammenhang zwischen dem RSSI und PHF zu:

$$ P_{HF}=1.5 \cdot RSSI - 3 K_{VGA} - RSSI_{offset} \ [dBm] \tag{1.3} $$

Da sich die Berechnung von RSSIoffset aufgrund der Schaltungseigenarten nicht allgemein ausdrücken lässt und darüber hinaus äußerst komplex ist, stellt der Hersteller Messdaten über den Zusammenhang zwischen RSSI und PHF bereit (siehe Datenblatt des CC1020, Seite 34, auf ISIS verfügbar). Der für die Transceiver verwendete Treiber approximiert selbstständig die Eingangsleistung aus den in der obigen Gleichung vorkommenden Parametern.

2.1.2 Schnittstelle zum Mikroprozessor

Die Schnittstelle zum Mikroprozessor bietet die folgenden Funktionen an:

  1. Abfragen des Controller-Status
  2. Programmieren des Controllers
  3. Senden und Empfangen von Daten

Programmieren des Bausteins

Der CC1020 wird über eine serielle Schnittstelle programmiert. Die serielle Schnittstelle setzt sich aus den Signalen "Programming Select (PSEL)", "Programming Data Input (PDI)" und "Programming Clock (PCLK)" zusammen: Das Signal PSEL dient dazu, dem Transceiver mitzuteilen, dass er programmiert werden soll. Wird das Signal aktiv, muss der Mikroprozessor zuvor ein Taktsignal (PCLK) bereitstellen. An jeder steigenden Flanke von PCLK liest der Transceiver die Daten, die am Signal PDI aktiv sind. Diese zeitliche Abfolge der Signale ist in Abb.1-3 dargestellt.


Abb. 1-3: Programmierung des CC1020

Abb. 1-3 deutet darüber hinaus an, dass die zu programmierenden Daten eine Semantik besitzen. Um sie zu verstehen, muss man wissen, dass heutige Controller eine Vielzahl von Registern besitzen, deren Werte angeben, welche Funktion des Controllers aktiviert werden soll und welche nicht. Beispielsweise wird über ein Register eingestellt, welche Modulation der CC1020 verwenden soll. Eine ausführliche Beschreibung der Register ist im Datenblatt des CC1020 enthalten. Die Werte der Register können im Praktikum gelesen und geschrieben werden. Bei der Programmierung des Chips muss angegeben werden, welches Register programmiert werden soll. Dies wird mit den ersten 7 Bits des PDI-Signals dem Controller bekannt gegeben. Das 8. Bit muss eine "1" sein. Dies signalisiert, dass Daten in das betreffende Register geschrieben werden. Bei einer "0" wird das entsprechende Register gelesen. Die nachfolgenden 8 Bits geben den Wert an, der in das Register geschrieben bzw. gelesen werden soll.

Abfragen des Controller Status

Der Status des Controllers wird in den internen Registern des Controllers gespeichert. Um den Status des Controllers zu ermitteln, werden die Register mittels der Programmier-Schnittstelle gelesen. In Analogie wird zusätzlich zu den Signalen PSEL, PDI und PCLK das Signal "Programming Data Output (PDO)" verwendet. Wie Abb. 1-4 zeigt, ist das Timing-Diagramm nahezu identisch mit dem Programmieren der Register.

Zuerst wird das Signal PCLK eingeschaltet, anschließend wird mittels der ersten 7 Bit des Signals PDI angegeben, welches Register gelesen werden soll. Auf der Leitung PDO schreibt der Controller die Werte des entsprechenden Registers. Der Mikroprozessor kann an jeder steigenden Flanke des Signals PCLK ein Bit des Registers lesen. Zusätzlich sind einige Controller Status-Informationen direkt über ein Pin des Chips zugänglich. Dies ist immer dann notwendig, wenn Informationen möglichst schnell verfügbar sein sollen und keine Zeit zum Lesen von Registern übrig bleibt. Wegen der niedrigen Datenübertragungsgeschwindigkeit sind solche Status-Pins im CC1020 kaum notwendig. Lediglich für Testzwecke ist das Pin LOCK verfügbar. Es zeigt an, ob die PLL sich synchronisiert hat oder nicht.


Abb. 1-4: Lesen des CC1020-Status

Senden und Empfangen von Daten

Nachdem der Controller initialisiert wurde, kann er Daten senden oder empfangen. Der Controller kann nicht gleichzeitig Daten senden und empfangen. Mittels der Programmierschnittstelle wird er in den Empfangs- oder Sendemodus geschaltet. Die Datenübergabe an den Controller erfolgt über eine serielle Schnittstelle. Die serielle Schnittstelle besteht aus den Signalen "Data Clock (DCLK)" und "Data Input/Output (DIO)". Das Signal DCLK wird vom Controller bereitgestellt. Bei einer positiven Flanke des Signals DCLK kann der Mikroprozessor empfangene Daten übernehmen, die der Controller am Signal DIO bereitgestellt hat. In Analogie hierzu werden vom Controller bei einer steigenden Flanke des DCLK Daten gesendet, die der Mikroprozessor am Signal DIO bereitgestellt hat. Dieses Prozedere ist grafisch in Abb. 1-5 dargestellt.


Abb. 1-5: Senden und Empfangen von Daten

2.1.3 Kodierung

Wie in Abb. 1-5 dargestellt, sendet der CC1020 die Daten NRZ-codiert zum Empfänger. Diese Art der Datenübertragung hat einen Nachteil. Die Synchronisation am Empfänger wird erschwert, wenn die Daten hauptsächlich aus "Nullen" oder Einsen bestehen, also keine Änderungen im Signalpegel erkennbar sind. Aus diesem Grund bietet der Controller die Möglichkeit an, dass die Daten vor dem Senden in die Manchester-Kodierung umgewandelt werden und am Empfänger von der Manchester-Kodierung wieder in die NRZ-Kodierung gewandelt werden. Die Vorschrift der Manchester-Kodierung besagt, dass eine binäre "0" durch den Wechsel von einem Signal mit einem "Null"-Pegel gefolgt von einem Signal mit einem "1"-Pegel codiert wird. In Analogie wird eine logische "1" durch einen Wechsel eines Signals mit einem "1"-Pegel gefolgt von einem Signal mit einem "0"-Pegel codiert. Wie in Abb. 1-6 zu erkennen ist, erfolgt bei jedem zu sendenden Bit ein Pegelwechsel. Insofern detektiert der Empfänger die Pegelwechsel von einem "0"- zu einem "1"-Pegel bzw. von einem "1"- zu "0"-Pegel. Die Synchronisation zwischen Sender und Empfänger wird erheblich erleichtert.


Abb. 1-6: Manchester-Kodierung

2.1.4 Scrambling

"Scrambling" bezeichnet den Vorgang des "Verwürfelns" von Daten. Dies hat hauptsächlich den Zweck, binäre Folgen zu erzeugen, die möglichst keine aufeinanderfolgende identische - "0"- oder "1"-Signale - enthalten. Um Daten zu "scramblen", werden "Pseudo Noise, (PN)"-Sequenzen generiert. Wie in Abb. 1-7 dargestellt, wird eine solche Zufallsfolge durch Rückkopplungen des zu sendenden Signals mit Hilfe eines Schieberegisters erzeugt.

$$ y(n) = x(n) \oplus \sum\limits_{k=1}^{m} h_k \cdot y(n-k) \tag{1.4} $$

Gl. (1.4) beschreibt das Verhalten des Scramblers. Zu sendende binäre Daten werden nach jedem Takt in ein Schieberegister geschoben. Die Ausgänge D des Schieberegisters werden mittels "XOR"-Verknüpfungen mit dem Eingang des Schieberegisters multipliziert. Die Koeffizienten \(h(k)\) entsprechen entweder der Multiplikation mit "1" oder mit "0". Insofern beschreiben die Koeffizienten \(h(k)\) einen Polynom der Ordnung m. Je größer m ist, desto größer wird die PN-Folge und desto geringer ihre Autokorrelation. Beispielsweise verwendet der CC1020 das Polynom \(x^9+x^5+1\). Damit die Ordnung m sofort erkennbar ist, werden die Folgen \(PN_m\) bezeichnet. Die PN-Folge des CC1020 wird dementsprechend \(PN_9\)-Folge genannt.


Abb. 1-7: Aufbau eines Scramblers

3. Termin 1: Die Komponenten des Transceivers

Vorbereitung:

Bevor Sie den Labortermin absolvieren, bereiten Sie sich bitte vor. Lernen Sie die benötigten Befehle, damit nicht durch unnötiges Suchen kostbare Zeit vergeht. Die relevanten Befehle sind im Menü „Befehlsübersicht“ rechts zu finden. Zu den Befehlen und dem Inhalt dieses Kapitels sind die Kapitel 1 und 2 für den Präsenztest relevant. Empfehlenswert sind auch die Folien der Vorlesung der Unit 3 (Elements of data transmission).

Sie sollten außerdem die Übung zur Steuerung des Transceivers durchführen.

Übung



3.1 Befehle zum Steuern des Transceivers

Fast alle relevanten Hardwareparameter des CC1020-Transceivers sind mit Hilfe des Kommandozeilen-orientierten Programms ccconfig steuerbar. Die Hardwareparameter werden durch Schreiben von Registern im Transceiver verändert und der Status der Komponenten kann durch Auslesen von Registern ermittelt werden. Das Programm ccconfig ermöglicht die Steuerung auch ohne Kenntnis der einzelnen Register. Soll beispielsweise die Trägerfrequenz variiert werden, so schreibt das Programm alle notwendigen Werte in die entsprechenden Register

Da man hier aufgrund der Vielzahl der Optionen des Kommandos ccconfig leicht den Überblick verliert, werden einzelne Kommandos zu kleinen Shells-Skripten zusammengefasst. Dadurch wird das Setzen verschiedener Einstellungen erleichtert. Shell-Skripte werden im Praktikum häufig verwendet. Vor dem ersten Verwenden eines Skriptes sollte immer dessen Wirkungsweise analysiert werden.

Video: Wechseln Sende-, Empfangsmodus
Video: Daten senden und empfangen

3.2 Aufgabe 1: Frequenzscanner

Um eine Vielzahl von parallelen Datenübertragungen über die Luft zu ermöglichen, werden Signale unter anderem mittels Frequenzmodulation (Frequency Shift Keying (FSK)) oder Amplitudenmodulation (Amplitude Shift Keying (ASK)) moduliert. Die dabei eingesetzten Modulationen wurden in der Vorlesung besprochen. Im Praktikum werden Modulationen eingesetzt, um zu verhindern, dass Praktikumsgruppen das selbe Frequenzband benutzen und sich damit die Sender der einzelnen Praktikumsgruppen gegenseitig durch Interferenzen stören. Bevor eine Gruppe ein bestimmtes Frequenzband verwendet, muss sie überprüfen, ob dieses Band bereits benutzt wird. Wenn ja, muss sie ein anderes Band verwenden.

Ihre Aufgabe ist es nun, zu bestimmen, ob aktive Sender vorhanden sind. Wird ein aktiver Sender gefunden, protokollieren Sie die Größe der Kanalbandbreite und welchen Wert der RSSI bei jeder Frequenz innerhalb des Bandes hat. Bevor Sie mit der Messung beginnen, beschreiben Sie den Versuchsaufbau und die Versuchsdurchführung.

Video: Frequenzscan

3.2.1. Identifikation eines Senders

Um einen Sender zu lokalisieren, wird ein Empfänger an einem beliebigen Ort in Reichweite des Senders positioniert. Um zu ermitteln, ob in einem bestimmten Frequenzband ein Sender aktiv ist, wird am Empfänger gemessen, ob ein Signalpegel des Senders detektiert werden kann.

Hierbei ergibt sich das Problem, dass eigentlich immer ein Signalpegel in Form von Rauschen vorhanden ist, auch wenn eigentlichkein Sender in der Nähe ist. Es ist äußerst schwierig zwischen Rauschen und einem “sinnvollen” Signal zu unterscheiden, wenn keine weiteren Informationen über den Sender bekannt sind (z.B Modulation, Codierung etc.).

Auf der anderen Seite kann durchaus ein Sender in der Umgebung des Empfängers sein. Weil aber sein Pegel kleiner als die Rauschleistung ist, kann er vom Empfänger nicht detektiert werden. Erst wenn der Signalpegel größer als die Rauchleistung ist, dann ist ein Signalpegel in Form eines RSSI oder SNR messbar. Abb. 1-9 zeigt beispielhaft eine RSSI Messung im 800MHz Band

Geht ein Sender im Rauschen “unter”, gibt es drei Möglichkeiten den Sender trotzdem zu erkennen:

  1. Die Sendeleistung erhöhen,
  2. die Entfernung des Empfängers zum Sender verkleinern oder
  3. die Sensitivität der Empfängers erhöhen.

Genau auf diese Möglichkeiten wird zurückgegriffen um einen Sender zu orten oder zu detektieren.


Abb. 1-9: Spektrum in 800MHz Band gemessen am Fachgebiet TKN

Im Praktikum werden folgenden Annahmen getroffen, um einen Sender zu detektieren:
  1. Der Sender und die Empfänger sind im selben Raum und der Sender verwendet seine maximale Sendeleistung (3dBm). Damit ist sichergestellt, dass jeder Empfänger im Raum die Möglichkeit besitzt den Sender zu detektieren.
  2. Die Empfänger haben Informationen über den Sender. Sie wissen, welche Modulation und welchen Leitungskode der Sender verwendet. Zusätzlich ist die Bitfolge bekannt, die der Sender verwendet. Insbesondere die Bitfehlerrate kann zusätzliche Informationen über den Sender geben (Überlegen Sie sich welche Informationen das sind?).
  3. Der Empfänger verwendet seine maximale Empfindlichkeit. Die Empfangsempfindlichkeit kann künstlich herunter gesetzt werden, um bestimmte Sender “auszublenden”.

3.2.2 Anforderungen an die Hardware

Es wird ein Empfänger benötigt, der in der Lage ist, Signale im betrachteten Frequenzband zu empfangen und zu erkennen. Außerdem muss der Empfänger programmierbar sein, um ihn auf einzelne bestimmte Frequenzen einstellen zu können.

Normalerweise verwendet man hierzu einen Spektrumanalysator. Im Praktikum stehen solche Geräte nicht zur Verfügung. Daher werden handelsübliche Empfänger verwendet. Die Qualität der Messung wird durch die folgenden Parameter des Transceiver bestimmt:

Sensitivität

Die Sensitivität gibt die Größe des kleinsten messbaren Signalpegels an. Je größer die Sensitivität des Empfängers ist, desto kleinere Signale können detektiert werden.

Ist die Sensitivität zu gering (siehe Abb. 1-10), werden nur Teile des Nutzsignals erkannt, was die Ergebnisse der Messung stark verfälschen kann. Damit genaue Messungen durchgeführt werden können, sollte die Sensitivität ungefähr der Größe des Rauschsignals entsprechen.


Abb. 1-10: Sensitivität eines Empfängers

Granularität des RSSI

In der Regel wird der analog gemessene Signalpegel in ein digitales Signal (z.B. das RSSI Signal) umgewandelt. Hierbei entstehen Quantisierungsfehler. Dies bedeutet, dass der RSSI nicht alle gemessenen Werte widerspiegelt. Die Stufen ergeben sich aus der Darstellung des RSSI und seinem maximalen und minimalen Wert. Die im Praktikum verwendeten Transceiver werden durch eine 8 Bit Wert repräsentiert. Die minimalen Größe ist 0 und die maximale Größe ist 63.

Im Transceiver wird der RSSI eines empfangenen Signals mit dem “Carrier Sense (CS)” Threshold verglichen (siehe Abb. 1-11). Ist der CS-Threshold größer als der RSSI, werden die Daten verworfen. Aus diesem Grund sollte bei den Messungen imPraktikum immer sichergestellt werden, dass der CS-Threshold ausgeschaltet ist.


Abb. 1-11: Empfänger Sensitivität und Granularität des RSSI

Sampling Frequenz des RSSI

Der RSSI wird nicht kontinuierlich gemessen, sondern in äquidistanten zeitlichen Abständen. Die Abstände werden durch die "RSSI Sampling Rate" angegeben. Hierbei wird der Mittelwert über mehrere Samples des RSSI gebildet und anschließend in einem Register des Controllers gespeichert. Die Anzahl der RSSI Samples, die beim Mitteln berücksichtigt werden, bestimmen die “RSSI Update Frequency”. Sie gibt letztendlich an, in welchen zeitlichen Abständen ein neuer RSSI Wert berechnet wird. Wie in Abb. 1-12 dargestellt, können durch falsches Setzen der Parameter stark unterschiedliche Ergebnisse auftreten.


Abb. 1-12: RSSI Sampling Rate und RSSI Update Frequency

Trennschärfe des Empfängers

Ein Empfänger kann nie den Pegel für genau eine Frequenz bestimmen, sondern nur für ein Frequenzband. Dieser Parameter gibt an, wie groß dieses Frequenzband ist und wie die Abgrenzung gegenüber dem Nachbarband ist.

Neben diesen Parametern sollte berücksichtigt werden, dass die Signalstärke normalerweise nicht direkt an der Antenne gemessen wird, sondern meistens nach dem AD-Wandler im IF Teil des Empfängers. Die Größe des IF Signals wird von einem adaptiven Verstärker(Variable Gain Amplifier (VGA)) gesteuert, damit der nachfolgenden AD-Wandler immer im optimalen Arbeitsbereich arbeitet.

Vor dem VGA ist außerdem ein Bandpass geschaltet, der das Signal von den benachbarten Kanälen trennt. Der Bandpass kann natürlich icht verlustfrei filtern, sondern dämpft das Signal zusätzlich. Und nun die gute Nachricht! Zur Durchführung der Messung werden Shell-Skripte und Programme/Funktionen bereitgestellt, die bereits alle Parameter so setzen, dass dieMessungen durchgeführt werden können.

3.2.3 Versuchsdurchführung

Zunächst wird ein Transceiver (siehe Abb. 1-13) an den Rechner angeschlossen und durch Aufrufen des Skriptes CCBinaryMode.sh 874 initialisiert in den Empfangsmodus gebracht. Die Parameter die durch den Aufruf des Skripts im Transceiver gesetzt werden, sollten nun beim Aufrufen von ccconfig aus der Programmausgabe ersichtlich werden.


Abb. 1-13: Transceiver- Modul

Zum Ermitteln der gesuchten Trägerfrequenz stehen die folgenden Funktionen von ccconfig zur Verfügung. ccconfig -f setzt die Trägerfrequenz für den gerade eingestellten Kanal auf den Wert <freq> in MHz. Der insgesamt zur Verfügung stehende Frequenzbereich ist ca. 848 bis 893 MHz. Der gerade eingestellte Kanal ist durch Eingabe des Befehls ccconfig -r sichtbar. Durch den Befehl ccconfig -qs kann zwischen Kanal 0 und 1 gewechselt werden.

ccconfig -SC <f start in MHz> <f end in MHz> <step size in kHz> <time in ms>
durchläuft das Intervall [f start, f end] mit Schritten der Größe step size kHz und gibt die jeweils über time gemessenen Bitfehlerrate und den RSSI-Wert aus.

Beispiel: ./ccconfig -SC 850 855 200 scannt zwischen 850 MHz und 855 MHz in 200 kHz Schritten, wobei jeweils 200 ms auf einer Frequenz verweilt wird.

Nachdem die Trägerfrequenz feststeht, muss jede Gruppe eine eigene, von den anderen nicht verwendete Trägerfrequenz benutzen. Diese wird Ihnen vom Betreuer zugewiesen.

Folgende Parameter sollen in jedem Fall im Protokoll enthalten sein:


3.3 Aufgabe 2: Scrambler

Die Funktionsweise des Scramblers ist in Kapitel 2.1.4 beschrieben. Um Ihnen ausgehend von dieser Beschreibung die Funktionsweise anschaulich zu vermitteln, soll ein Modell des Scramblers verwendet werden. Mit dem Modell wird die Wirkungsweise des Scramblers nachgebildet. Das Modell ist unter ISIS verfügbar.

Mit diesem Modell und den Informieren über den PN9 Testmustergenerators (Scrambler) des Transceivers (siehe CC1020 Datenblatt, S. 60) sollten Sie nun in der Lage sein die folgenden Fragen zu beantworten:

3.3.1 Versuchsdurchführung

Sammeln Sie nun Erfahrungen mit dem Verhalten des Scramblers in der Praxis. In diesem Versuch sollen sie die Bitfehlerrate bei ein,- und ausgeschalteten Scrambler sowohl beim Sender als auch beim Empfänger ermitteln. Bei diesem Versuch ist zu bemerken, dass der sendende Transceiver nach dem Einschalten immer Nullen sendet. Dies tut er so lange bis andere Daten gesendet werden sollen. Durch das kontinuierliche Senden von Nullen wird die Berechnung der Bitfehlerrate erleichtert. Die Bitfehlerrate ist in diesem Fall das Verhältnis der empfangen Einsen zur Anzahl aller empfangenen Bits. Die Ausgabe der Bitfehlerrate erfolgt durch den Aufruf des Befehls ccconfig mit entsprechende Parametern. Gehen Sie folgendermaßen vor:

Im folgenden soll nun die Wirkungsweise des Scrambler analysiert werden:

Protokollieren Sie bei jedem Schritt den die durchführen die Ausgabe des Befehl ccconfig -ls an und die Ausgabe des Befehls cat /dev/cc1020 zu und erklären Sie das beobachtete Verhalten.

3.4 Aufgabe 3: Leitungscodes

Um die Funktionsweise eines Leitungscodes darzustellen, wird der zu untersuchende Code mit der NRZ-Codierung verglichen. Dies ist natürlich nur dann sinnvoll, wenn es sich um unipolare Kodierungen handelt und nicht um bipolare Kodierungen wie etwa der AMI oder der HBDI-Codierung.

In diesem Versuch wollen wir den Manchester-Codierung betrachten. Um die Kodierung sichtbar zu machen, wird deshalb einen Sender verwendet, der Bitfolgen mit der Manchester-Codierung erzeugt. Der Empfänger wird so programmiert, dass er Daten im NRZ-Code empfängt. Nun wird am Empfänger die Charakteristiken der Manchester-Codierung sichtbar. Protokollieren Sie die Bitmusterdie am Empfänger sichtbar sind.

3.4.1 Versuchsdurchführung

Folgend wird beschrieben, wie sie die Codierung des CC1020 ändern können:

4. Termin 2: Paketfehlerrate vs. Präambellänge

Vorbereitung:

Zur Vorbereitung auf den Termin lesen Sie sich bitte dieses Kapitel die Folien der Vorlesung der Unit 6 (Framing, Error Detection, Forward Error Correction (FEC)) und die zusätzliche Literatur zu PLL durch. Diese Kapitel sowie die Befehle und Skripte sind relevant für den Präsenztest.


Im ersten Termin wurden einige Aspekte der Bit-Übertragung untersucht. In diesem Versuchstermin werden nun mehrere Bits zu Rahmen (“Frames”) zusammengefasst und von einem Sender zu einem Empfänger übertragen. Durch die Rahmenbildung können erstmals rudimentäre Mechanismen eines Protokolls benutzt werden. Hierzu gehört die Fehlererkennung. Allerdings bereitet die Rahmenbildung auch Probleme:

Zusammenfassend besteht ein Rahmen in diesem Termin aus einer Präambel mit variabler Länge, einem SFD-Feld (16Bit), einem Längen-Feld (16Bit), das die Größe der Nutzdaten angibt, und einer Prüfsummemit entweder 8, 16 oder 32 Bit Größe. Als Prüfsumme steht eine CRC für die Nutzdaten und eine Paritätsprüfung (als Bestandteil) des Längenfeldes im Rahmenkopf zur Verfügung. Die Länge der Präambel und des Nutzdatenfeldes kann eingestellt werden. Somit hat der Header eine Größe von 4 Byte ohne Präambel.

Das bei der Übertragung verwendete Protokoll ist recht einfach:
Ein Sender sendet Rahmen nach dem oben beschriebenen Aufbau mit Nutzdaten mit einer festgelegten Länge. Während der Übertragung über den Kanal können einzelne Bits verfälscht werden. Zusätzlich gehen einzelnen Bits durch fehlende Bit-Synchronisationen zwischen Sender und Empfänger verloren. Wird z.B. das SFD-Feld verfälscht, dann wird der Rahmen gar nicht erkannt.

Der Empfänger filtert nicht erkannte Rahmen und nicht fehlerfreie Rahmen, die durch eine falsche Prüfsumme erkannt werden. Die korrekt übertragenen Rahmen werden am Bildschirm ausgegeben. Mit diesem einfachen Protokoll sollen nun folgende Abhängigkeiten untersucht werden:

Präambellänge: Welche Länge muss sie haben, um Rahmenverluste aufgrund fehlender Bit-Synchronisation zu minimieren?

5.1 Versuchsaufbau

Um diesen Versuch durchzuführen wird ein Lastgenerator benötigt, der Rahmen mit einer festen Länge erzeugt. Die Rahmen werden anschließend mittels eines Transceivers vom sendenden Rechner zu einem Transceiver übertragen, der am empfangene Rechner angeschlossen ist. Beim Empfänger wird eine Datensenke benötigt, um die empfangenen Daten zu verarbeiten.

Als Lastgenerator und Datensenke wird das Programm iperf verwendet, wobei im sendenden Rechner ein iperf-Client und im empfangenen Rechner ein iperf-Server installiert wird.

Damit der iperf-Client und auch der iperf-Server mit einem Transceiver kommunizieren kann, wird das Programm plccd benötigt. Das Programm plccd empfängt IP Pakete über die Socket-Schnittsteller vom iperf-Client und übergibt die Nutzdaten des IP Pakets an den Transceiver, der sie anschließend sendet. Daten, die von einem Transceiver empfangenen werden, sendet das Programm plccd an den iperf-Server. Auch hier wird die Socket-Schnittstelle zur Kommunikation zwischen dem Programm plccd und dem iperf-Server verwendet.

Die Konfiguration (verwendete IP Adressen und Portnummern, Paketgröße etc.) für den iperf-Client und iperf-Server sind in den Skripten iperfB2client und iperfB2server enthalten.

Mittels dieses Versuchsaufbaus soll die Größe der Präambel bestimmt werden ab der eine nahezu fehlerfrei Übertragung garantiert werden kann. Dies bedeutet, es sollen nicht die Rahmenverluste gemessen werden, die durch Bitfehler im Übertragungsmediument stehen, sondern durch fehlende Bit-Synchronisation zwischen Sender und Empfänger.

Dazu müssen die folgenden Voraussetzungen geschaffen werden:

Wie kann nun dafür gesorgt werden, dass sich der Empfänger nur beim Empfang eines Rahmen mit dem Sender synchronisiert, aber sonst nicht ?

Wenn die PLL, die für die Synchronisation zuständig ist, beim Empfang eines Rahmens eingeschaltet wird und nachdem der Rahmen empfangen wurde wieder eingeschaltet wird, dann wäre das Problem gelöst. Leider kann die PLL nicht beeinflusst werden.

Die einzige Alternative ist, dann man eine gewisse Zeit wartet und hofft, dass Sender und Empfänger nicht mehr synchronisiert sind. Nach unendlicher Wartezeit wird dies der Fall sein. Um die Wartezeit zu verkürzen, muss ein Kriterium gefunden werden, von dem abgeleitet werden kann, dass die beiden Transceiver nicht mehr synchron sind. Und diese Kriterium ist die Rahmenverlustrate selbst:

Wir gehen davon aus, dass keine Präambel vorhanden ist. Nun werden Rahmen mit einer konstanten Rate gesendet und die Rahmenverlustrate bestimmt. Anschließend wird die Zeit zwischen zwei Paketen vergrößert und nochmals die Rahmenverlustrate gemessen. Die Verlustrate sollte nun gestiegen sein. Die Zeit wird solange vergrößert, bis nahezu alle Rahmen verloren gehen. Dieser Paketabstand wird bei der Messung eingestellt.


5.2 Versuchsdurchführung

Für den Versuch hat sich die folgende Vorgehensweise bewährt: