Jürgen Hasch, DG1SCR@DB0RBS
1. Das DSP56002EVM
Bis vor ein paar Jahren mußte man noch recht tief in die Tasche greifen, wollte man Echtzeit-Signalverarbeitung mit Digitalen Signalprozessoren betreiben. Mit den Fortschritten in der Mikroprozessortechnik wurden auch die Signalprozessoren immer billiger und als erster Hersteller entschloß sich Texas Instruments, eine wirklich preiswerte Testplatine mit entsprechender Entwicklungssoftware anzubieten, den DSK26.
Seit etwas über einem Jahr bietet nun auch Motorola eine fertig aufgebaute Platine mit dem 56002-Signalprozessor an, das DSP56002EVM:
Zwei serielle Anschlüsse klingen ein wenig nach Verschwendung, entpuppen sich jedoch als sehr clevere Idee. Der DSP56002 besitzt nämlich eine sog. OnCe-Schnittstelle, was für 'On-Chip Emulation' steht. Damit läßt sich von außen direkt in die Internas des Prozessor eingreifen, ohne daß ein spezieller Debugger auf dem Signalprozessor ablaufen müßte. Jetzt kann man sich ganz bequem vom PC aus anschauen, was auf dem DSP gerade passiert. Die Ansteuerung des OnCE wird von einem 68HC705 Microcontroller übernommen, der die Befehle auf die serielle Schnittstelle umsetzt.
Der zweite serielle Anschluß geht direkt zur SCI-Schnittstelle des DSP56002 und kann vom eigenen Programm benutzt werden. Die Übertragung der Sende- und Empfangsdaten bei den vorgestellten Modems geschieht ebenfalls über den SCI-Port.
Weitere Eigenschaften des 56002:
2. Modems
Als Beispiele für die Leistungsfähigkeit des EVM, möchte ich verschiedene Modems vorstellen. Die hier gezeigten Packet Radio-Modems wurden von Pawel Jalocha SP9VRC entwickelt, das 9K6 PAM-Modem stammt von Jarkko Vuori OH2LNS.
Die Zeitsignale und Frequenzspektren der Modems wurden mit einer DSP-Karte mit 320C25-Prozessor gemessen.
2.1 Leonid
Ein Software-Modem besteht nicht nur aus dem Code für Modulator und Demodulator, sondern benötigt auch Funktionen für die weitere Verarbeitung der Sende- und Empfangsdaten,z.B. für die CRC-Prüfung.
Ursprünglich als Lader für eine eigenständige Signalprozessor-Karte entwickelt [2], stellt Leonid alle benötigten Funktionen zur Verfügung und fungiert quasi als Zwischenschicht zwischen dem eigentlichen Modem und dem PC.
So gibt der Demodulator das aktuell dekodierte Datenbit einfach an Leonid weiter, dort findet dann die Dekodierung des kompletten Frames statt. Entsprechend bekommt auch der Modulator die aufbereiteten Datenbits und erzeugt daraus das Sendesignal. Als Protokoll für die Kommunikation zwischen PC und DSP-Karte wird Kiss verwendet, ein PC-Flexnet-Treiber ist in Vorbereitung.
Das Grundgerüst einer Modem-Anwendung kommt mit wenigen Programmzeilen aus:
waitblk ;
jsr demodulator ; putbit ; getbit ; jsr modulator ; jmp loop ; |
Makro, wartet auf neue Werte vom Codec
Demodulator aufrufen schickt empfangenes Bit an Leonid holt neues Bit von Leonid Modulator aufrufen zurück |
Die 'Standard'-Modulationsart für Packet Radio ist natürlich
1K2 AFSK, wegen der kontinuierlichen Phase auch CPFSK genannt.
Die Abbildung zeigt ein typisches CPFSK-Signal, bei dem zwischen einem
1200Hz und einem 2200Hz-Ton umgetastet wird:
Das Empfangssignal gelangt nach der Amplitudenregelung auf einen Mischer, dort wird es mit der Mittenfrequenz von 1700Hz gemischt. Das Ergebnis, als I- und Q-Signal, wird mit den I- und Q-Werten des vorigen Samples verglichen und die daraus ermittelte Phasendifferenz gelangt auf das Tiefpassfilter vor dem Entscheider. Der Entscheider legt schließlich fest, welcher der beiden Töne erkannt wurde.
Der Modulator ist recht einfach aufgebaut. Die Oszillatorfrequenz wird je nach zu sendendem Ton umgetastet und am Ausgang noch über einen Bandpaß geführt.
Die ebenfalls sehr verbreitete FSK-Modulation nach G3RUH entspricht im Basisband (d.h. als NF-Signal) einer Puls Amplituden Modulation (PAM). Je nach Wertigkeit des zu sendenden Bits wird ein cos²-förmiger Impuls gesendet oder weggelassen.
Das Eingangssignal wird mit 48kHz abgetastet. Es gelangt zuerst auf einen Dezimierer (als Polyphasefilter ausgeführt), der eine Änderung der Abtastrate auf 19,2kHz bewirkt. Darauf folgen der Eingangstiefpaß, um unerwünschte Signalanteile zu eliminieren und eine AGC zur Amplitudenregelung.
Anschließend folgt ein Adptives Filter zur Entzerrung der Empfangsimpulse, eine weitere Dezimierungsstufe und schließlich der Entscheider, der die Wertigkeit des empfangenen Bits festlegt. Danach wird der empfangene Bitwert zum Descrambler geschickt.
Der Modulator ist wieder recht einfach aufgebaut, nach dem Scrambler wird ein '1' Bit mit einem Tiefpaß zu einem cos²-Impuls geformt.
2.5 BPSK
Eine weitere Modulationsart ist BSPK, binary phase shift keying. Dabei wird ein Trägersignal, beispielsweise mit einer Frequenz von 1200Hz,ausgesendet. Soll ein '0'-Bit übertragen werden wird der Träger um 180° in der Phase gedreht, bei einem '1'-Bit bleibt die Phase gleich. Die Abbildung zeigt ein solches BPSK-Signal:
Das Eingangssignal gelangt nach der AGC auf einen Bandpaß mit Hilbert-Transformator, wo es in ein komplexes Signal umgewandelt wird. Danach gelangt es auf den Mischer, wird die Nullage herunter gemischt und gelangt auf den Entscheider.
Abbildung 12 zeigt das Konstellationsdiagramm am Entscheider, der Punkt auf dem Kreis stellt das gerade empfangene Symbol dar:
Da der Empfänger keine PLL zur Phasenstarren Synchronisation auf das Trägersignal besitzt, ergibt sich eine langsame Drehung des Punktes auf einem Kreis im Konstellationsdiagramm.
2.6 Multiton-QPSK
Das Multiton-QPSK-Modem ist das bei weitem aufwendigste der vorgestellten Modems. Die Übertragung geschieht mit Hilfe 15 diskreter Träger im Abstand von 125Hz. Die einzelnen Träger werden mit 4-DPSK phasenmoduliert.
Die Übertragung geschieht jeweils in kurzen Datenbursts von 12ms Länge, was eine Schrittgeschwindigkeit von 83,3Baud ergibt Rechnet man jetzt für 15 Träger und je 2 Bit pro Träger für die 4-DPSK, ergibt sich eine Übertragungsgeschwindigkeit von 2500bps.
|
|
|
|
Die Abtastfrequenz beträgt 8000Hz. Das Empfangssignal gelangt nach der AGC auf einen Dezimator, danach erhält man eine neue Abtastfrequenz von 2666Hz. Jetzt wird das Eingangssignal in ein komplexes Signal umgewandelt und in die Nullage gemischt. Nach der Fensterung des Datenbursts wird eine FFT ausgeführt, da die weitere Auswertung im Frequenzbereich stattfindet. Mit Hilfe der Phaseninformation aus der FFT kann für die einzelnen Träger die PSK-Demodulation durchgeführt werden.
Der Modulator funktioniert analog zum Demodulator. Zuerst wird die inverse FFT vorbereitet, indem Amplituden- und Phasenwerte der Träger in den IFFT-Speicher eingetragen werden. Nach der IFFT steht dann ein 12ms lange Datenstrom zur Verfügung, der über eine Fensterfunktion geglättet wird und anschließend aus der Nullage in den Übertragungskanal gemischt wird.
Bevor in einem Sendevorgang die eigentliche Datenübertragung stattfinden kann, muß noch eine Trainingsphase absolviert werden. Das Training ist notwendig, damit sich Empfänger auf den Sender synchronisieren kann, d.h. die empfangenen Töne auch richtig ausgewertet werden.
Beim QPSK-Modem besteht der Trainingsmodus aus zwei Phasen:
Die zweite Phase dient dazu, den Empfängertakt auf den Sender zu synchronisieren, dazu werden die vier ausgesendeten Töne phasenmoduliert.
Anhang A: Literatur