Ein Bericht aus der HTL-Hollabrunn
Die digitale Signalverarbeitung ist in der modernen Kommunikationstechnik nicht mehr wegzudenken, deshalb sollte sie in einer Elektronik-Abteilung im Theorie- und Laborunterricht nicht fehlen.
Bisher verwendeten wir das ADSP2181-EZ-Kit Lite Board von Analog Devices. Die Schüler konnten im Laborunterricht einfache Programme wie einen Echo- oder Hallgenerator in Assembler selbst programmieren. Auch digitale Filter konnten mit der Unterstützung von Matlab und den Programmen von Daniel von Grünigen [1] sehr leicht entworfen, programmiert und durchgemessen werden. Bildverarbeitung ist mit diesem Board aber nicht möglich.
Vor einem Jahr bekam ich über das Donation-Programm von Analog Devices das ADSP-BF533 EZ-KIT Lite Board (Bild 1). Mit der Entwicklungsumgebung VisualDSP++ (Bild 2), welche über USB auf das Blackfin Board zugreift, kann man Programme in Assembler und C erstellen, kompilieren und debuggen. Der Blackfin Prozessor ist vielseitiger und mächtiger als der ADSP2181, aber auch viel komplexer, trotzdem kann man ihn sehr gut im Unterricht einsetzen.
Auf dem Bord befindet sich ein Videodecoder (ADV7183), der ein PAL Videobild in ein ITU-656 Format umwandelt. Über das PPI (Parallel Peripheral Interface) kann man die Bilddaten über den DMA-Controller ins SDRAM schreiben (Bild 1). Da das mitgelieferte Beispielprogramm kein ganzes Bild (720 x 625) einliest, musste „nur“ der DMA Transfer zweidimensional erweitert werden. Die Ausgabe des Videobildes erfolgt vom SDRAM über den DMA-Bus und PPI zum Videoencoder (ADV7171), und über die Videobuchse zu einem Fernsehgerät. Der Videoencoder ist allerdings nach einem Reset auf NTSC-Format eingestellt und muss vorher über eine serielle Schnittstelle auf PAL-Format umprogrammiert werden.
Leider gibt es beim BF533 nur ein PPI, das nur halbduplex betrieben werden kann, d.h. wenn man gleichzeitig ein Bild einlesen, verarbeiten und ausgeben möchte, bekommt man kein synchrones Bild auf dem Fernseher zu sehen. Eine erste Lösung ist, nur bei einem Tastendruck ein Bild einzulesen, zu verarbeiten und dann immer wieder auszugeben. Damit kann man einfache Standbildverarbeitung mit einem BF533 im Labor zeigen.
Das Programm ist unter http://www3.htl-hl.ac.at/homepage/IP_microcar im Downloadbereich zu finden.
Der neue Prozessor BF561 aus der Blackfin Familie hat 2 PPI eingebaut und kann gleichzeitig einlesen und ausgeben, aber den hatte ich vor einem Jahr noch nicht zur Verfügung.
Die Audioverarbeitung mit dem BF533 ist ebenso einfach wie beim ADSP2181, aber der Audiocodec ist viel besser. Leider hat Daniel von Grünigen [1] seine Programme nicht für den Blackfin umgeschrieben, deshalb konvertierten wir die digitale Filterstruktur von Matlab in „C“ selbst.
Im Schuljahr 2004/05 wurde der Blackfin BF533 auch für das Diplomarbeitsprojekt „Automatic Microcar Racing“ verwendet. Bei diesem Projekt fährt ein ferngesteuertes Modellauto (3 x 6 cm) auf einem Tisch (ca. 1 x 1,3 m) automatisch eine Rennstrecke ab.
Das Modellauto wird dabei von einer Kamera erfasst (Bild 3), die über der Rennstrecke montiert ist.
Zur leichteren Positionserkennung des Modellautos, wird dieses an Front und Heck durch Farbpunkte markiert (Bild 4). Dabei wurde darauf geachtet, dass sich die Farben der Punkte sehr stark von einander unterscheiden und sich auch von der Farbe der Rennstrecke abheben. Dadurch können die Koordinaten des Autos durch die Bildverarbeitung leichter ermittelt und Störungen vermieden werden.
Das Videobild der Kamera wird vom ADSP-BF533 (DSP 1) eingelesen und als digitales Bild im Speicher abgelegt. Danach wird ein Bildverarbeitungsalgorithmus durchgeführt, welcher die Koordinaten der beiden Farbpunkte ermittelt.
Der Steuerbefehl für das Auto (vorwärts, links, rechts,…) wird von einem Steueralgorithmus unter Berücksichtigung des anzufahrenden Zielpunktes ermittelt.
Der Steuerbefehl wird über eine RS232 zum DSP 2 gesendet, welcher den Direct-Digital-Synthesizer (DDS AD9951) programmiert. Der DDS (Bild 5) erzeugt eine Trägerfrequenz von 27 oder 40 MHz für das Modellauto. Als Modulationsverfahren wird das on/off shift-keying mit unterschiedlichen Pulsfolgen mit einem Takt von 1 kHz verwendet. Das Signal wird verstärkt, gefiltert und über eine Antenne abgestrahlt.
Das Auto empfängt das Funksignal und führt den Befehl aus.
Damit die Bildverarbeitung im Blackfin gezeigt werden kann, wird das Bild vom DSP 1 über die SPORT-Schnittstelle zum DSP 3 übertragen. Dort werden noch einige Markierungen ins Bild eingetragen und auf einen Fernseher ausgegeben. Die aufgestapelten Blackfin Boards sieht man in Bild 6.
Der gesamte Aufbau dieser Diplomarbeit ist für den Tag der offenen Tür der HTL-Hollabrunn als Ausstellungsstück gedacht, und soll die Lehrinhalte unserer Abteilung den Eltern und zukünftigen Schülern anschaulich näher bringen.
[1] Daniel Ch. von Grüningen, Digitale Signalverarbeitung, 3. Auflage, Hanser Verlag
http://www3.htl-hl.ac.at/homepage/IP_microcar, Projekthomepage „Automatic microcar racing“
http://www.analog.com, Hersteller Analog Devices International
http://www.blackfin.org, weltweites Forum für Blackfin-Probleme
http://blackfin.subnet.dk, fertige I2C-Routinen für Videoencoder
Bilder:
BSB_ezlite.jpg
Bild 1: Blockschaltbild des ADSP-BF533 EZ-KIT Lite
VisualDSP.jpg
Bild 2: Entwicklungsumgebung VisualDSP++
blockschaltbild_gesamt.jpg
Bild 3: Blockschaltbild von „Automatic Microcar Racing“
microcar.jpg
Bild 4: Microcar mit Farbpunkten
DDS.jpg
Bild 5: DDS AD9951 Platine
Blackfin_stack.JPG
Bild 6: Blackfins gestapelt
Projektanten.jpg
Bild 7: Projektanten (v.l.n.r): Andreas Schöndorfer, Martin Schüller, Sebastian Weinmayr, Christian Pruckner, Stefan Liebl und Stefan Wiesinger
Autor:
Dipl.- Ing. Wilfried Trollmann
HTL-Hollabrunn
Elektronik
Lehrer für Telekommunikations- und Hochfrequenztechnik TKHF und Labor
A2020
Geb.Jahr: 1967
25.6.2005 V0