Blackfin ADSP-BF533 im Unterricht

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