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.
Übung3.1 Befehle zum Steuern des Transceivers
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-, EmpfangsmodusVideo: Daten senden und empfangen
3.2 Aufgabe 1: Frequenzscanner
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: Frequenzscan3.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:
- Die Sendeleistung erhöhen,
- die Entfernung des Empfängers zum Sender verkleinern oder
- 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- 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.
- 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?).
- 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ängersGranularitä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 RSSISampling 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 FrequencyTrennschä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- Modulccconfig -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.
Wird das Scannen mit ccconfig -SC durch Strg+C unterbrochen, wird die Freqenz nicht auf die Ausgangsfrequenz zurückgesetzt. Durch den Operator '>' ist es möglich die Standartausgabe in eine bestimmte Datei umzulenken.
Bsp.: ccconfig -SC 200 4 1 > messung1.txt
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:
- die gesuchte Frequenz,
- die Kanalbandbreite,
- der minimaler und maximaler RSSI sowie
- die minimale und maximale BER.
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:
- Welche Aufgaben hat der Scrambler? Nennen Sie mindestens 2.
- Was passiert, wenn ein Bitfehler auftritt und würden Sie empfehlen bei einer hohen oder einer niedrigen BER den Scrambler auszuschalten? Begründen Sie ihre Antwort.
- Wie synchronisiert sich der Scrambler im Empfänger auf den Sender? Es gibt mindestens 2 Möglichkeiten.
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:
- Stellen Sie zwei Transceiver im Abstand von etwa 1 Meter auf.
- Initialisieren Sie
- den Sender durch Aufrufen des Skripts CCTX.sh <freq> und
- den Empfänger durch Aufrufen des Skripts CCRX.sh <freq> <freq> steht dabei für die verwendete Trägerfrequenz (z. B. 855, 865, 880 oder 890 MHz).
- Es ist hilfreich, wenn in einem weiteren Fenster auf Empfängerseite die empfangenen Daten mittels des Befehls cat /dev/cc1020 ausgeben werden.
- Der Befehl
ccconfig -ls [T ms] [T-abort ms]- startet am Empfänger die periodische Ausgabe von Empfangsparametern (z.B. der BER) mit der Periodendauer [T ms].
- Der zweite optionale Parameter [T-abort ms] gibt die Messdauer an. Alternativ kann ccconfig -ls auch mit STRG+C abgebrochen werden.
Im folgenden soll nun die Wirkungsweise des Scrambler analysiert werden:
- Deaktivieren Sie zunächst bei beiden Modulen
- den PN9-Scrambler durch den Aufruf des Skripts pn9_0.sh.
- und setzen Sie mittels des Skripts power.sh 12 die Sendeleistung auf 12.
- Aktivieren Sie nun der Scrambler am Sender durch das Skript pn9_1.sh.
- Aktivieren Sie nun den Scrambler am Empfänger durch das Skript pn9_1.sh.
- Deaktivieren Sie nun den Scrambler beim Sender.
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:
- Initialisieren Sie Sender und Empfänger jeweils mit der Grundeinstellung (Shell-Scripte: CCTX.sh und CCRX.sh).
- Schalten Sie den Sender mittels des Befehls ccconfig -code 1 auf Manchester-Kodierung um und
- den Empfänger mittels des Befehls ccconfig -code 0 auf NRZ-Codierung.
- Geben Sie den empfangenen Bitstrom mit dem Befehl cat /dev/cc1020 in einem eigenen Fenster aus.
- Wiederholen Sie den Versuch, wenn der Sender mit der NRZ-Codierung Daten sendet.
- Schalten Sie nun den Empfänger auf Manchester-Codierung und den Sender jeweils auf NRZ- oder Manchester-Codierung.
- Erklären Sie Ihre Beobachtungen.