MATURAPROJEKT - EIBLER, EDTINGER - DSP

Index

 

1. Blockschaltbild

Genaues Blockschaltbild vom Matura Projekt - DSP Stimmenverzerrer

Das Projekt besteht im Grunde aus 2 Einheiten, die miteinander gekoppelt werden:


Der DSP 56000 sitzt auf dem EVM56k Entwicklungsboard, welches bereits alle notwendigen Komponenten für den Betrieb des DSP's enthält. Dazu gehört Spannungsstabilisierung, der DSP selbst, Verstärker für den Anschluß von Kopfhörern (Audio Out), Vorverstärker für den Eingang, Serielle Schnittstelle (für die Programmierung des DSP) und die Möglichkeit eine Eprom Erweiterung hinzuzufügen, für den Standalone Betrieb (das gesamte Programm, muss momentan nach dem Einschalten des DSP von einem Computer hineingeladen werden - mit der Eprom Erweiterung wäre dies nicht mehr nötig, da sich das Programm dann fest im Eprom befindet). Weiters sind die Schnittstellen und der Bus des DSP mittels Stiftleisten nach außen geführt für eventuelle externe Beschaltung oder Erweiterungen.

Die PIC Steuerplatine besteht aus mehreren Komponenten:

 

2. Schnittstelle zwischen DSP und Steuerplatine

Um die Kopplung der beiden Einheiten DSP und Steuerplatine zu ermöglichen wurde eine Schnittstelle und ein Protokoll für den Datenaustausch entwickelt. Wobei zu beachten ist, dass die PIC Steuerplatine keine Daten empfangen muss, sondern nur für die Steuerung des DSP zuständig ist.

Die Schnittstelle zwischen DSP und Steuerplatine besteht aus einem 4 Bit breiten Bus (bei dem PIC: Port A, Leitung RA0 bis RA3; DSP: Port B, Leitung 0-3) und einer 1 Bit breiten Interrupt Steuerleitung (PIC: Port A, Leitung RA4; DSP: Leitung IRQA).

Die Software Realisierung des Datenaustauschs: Vom PIC wird eine 4 Bit Zahl über diesen Bus geschickt, die gleichzeitig der Delta Wert für die Verschiebung des Signals ist. Somit muss im DSP nur mehr der Wert (eine Zahl zwischen 0 und 15 = 4 Bit) eingelesen werden und kann direkt ohne Umwandlung verwendet werden.

 

3. Ansteuerung des LC Displays

Um möglichst viele Port Leitungen des PIC freizuhalten, wird eine serielle Ansteuerung des Displays verwendet. Hierzu sind insgesamt 4 Portleitungen nötig:


Die Dekodierung des seriellen Datenstroms erfolgt mittels eines 8 Bit Schieberegisters. Hierzu sendet der PIC die einzelnen Bits des auszugebenden Zeichens/Steuercodes hintereinander auf Port B, Leitung RB0. Dies ist gleichzeitig der serielle Eingang des Schieberegisters. Nach jedem angelegtem Bit wird eine positive Taktflanke vom PIC an Port B, Leitung RB1 (Clock Input vom Schieberegister) erzeugt.. Hiermit wurde das Bit in das Schieberegister übernommen. Nachdem alle 8 Bits übertragen wurden, wird das LCD-Enable Signal erzeugt (positive Flanke an Port B, Leitung RB3). Bei der Datenausgabe zum LCD gibt es weiters 2 verschiedene Modis:
  1. Es handelt sich tatsächlich um Daten - sprich um Zeichen, die auf dem Display angezeigt werden sollen. Hierbei wird Port B, Leitung RB2 auf High gesetzt. Dies ist der Datenmodus.
  2. Es werden Steuercodes gesendet (beispielsweise Positionswahl des Cursors, Display löschen, usw. ...). Dazu wird Port B, Leitung RB2 auf Low gesetzt. Nun befindet sich das Display im Steuermodus.

 

4. Benutzerwunsch Auswertung

Die PIC Steuerplatine besitzt 2 Tasten zur Eingabe. Hierbei wird über einen Taster der jeweilige Portanschluss (es stehen in dieser Konfiguration 4 freie Portanschlüsse zur Verfügung - Port B, Leitungen RB4 bis RB7 - im Moment sind 2 Stück ausgeführt - RB4 und RB5) auf High gesetzt. Ist der Taster nicht gedrückt wird der Portanschluss über einen Widerstand auf Low gezogen.

Sobald ein Taster gedrückt ist, also der Port Anschluss auf High liegt, wird ein Interrupt ausgelöst und in diesem wird dann ausgewertet, welcher Taster es war und die jeweilige Aktion ausgeführt.

 

5. Software im PIC

Nach dem Einschalten der PIC Steuerplatine, wird ein © Text auf dem Display angezeigt. Nachdem eine Taste betätigt wurde, sieht man die Status Anzeige des DSP. Es gibt momentan 2 verschiedene Anzeigen bzw. Einstellungen zur Auswahl:


Die Steuerung der kompletten PIC Platine (und auch des DSP) erfolgt über 2 Tasten. Mit einer Taste kann man das Menü auswählen, welcher Wert angezeigt werden soll bzw. geändert werden soll. Die 2te Taste dient zum Ändern des Werts.

  1. Delta Wert:
    Der Delta Wert kann zwischen 1 und 15 gewählt werden. Hierzu kann man mit der 2ten Taste die Werte durchsteppen. Ist man bei 15 angelangt, springt der Wert beim nächsten Druck auf die Taste wieder auf 1 zurück. Die Ausgabe des Wertes am Display und das Senden zum DSP wird in der Interrupt Service Routine erledigt. Nachdem überprüft wurde, ob sich der PIC gerade im Modus Delta-Wert-Ändern befindet, und weiters überprüft wurde, ob bereits der Wert 15 ausgewählt ist und dann gegebenenfalls dieser wieder auf 1 gesetzt wird, wird auf Port A des PIC der Wert angelegt. Zu beachten ist, dass aber Port Pin RA4 immer auf High sein muss, da dies der Low-Aktive Interrupt Eingang des DSP's ist. Nachdem der Wert an Port A (RA0-RA3) anliegt, wird Port Pin RA4 kurz auf Low gesetzt, um dem DSP den neuen Wert mitzuteilen. Danach wird die Menüroutine aufgerufen, um den aktualisierten Wert wieder am Display anzuzeigen.
  2. Hilbert On/Off
    Dies ist die 2te wählbare Einstellung. Mit ihr ist es möglich den Hilbertfilter komplett auszuschalten. Wird dieser Punkt ausgewählt und der Hilbert Filter ausgeschalten, liegt am Port A der Wert 0 an. Durch eine Verschiebung um den Delta Wert 0 tritt keine Änderung des Signals auf. Nach ändern des Hilbert On/Off Flags wird wieder die Menüroutine ausgeführt und der Status am Display angezeigt. Sobald man den Deltawert ändert (siehe Punkt 1), wird der Hilbertfilter automatisch aktiviert.

 

6. Software im DSP

Der DSP wird komplett Software gesteuert. Angefangen von der Auswahl der Samplingtiefe und der Samplingrate, über die Eingangs- und Ausgangsverstärkung des Signals bis hin zur kompletten Veränderung und Bearbeitung des Signals.

In diesem Fall hat das DSP Programm folgendes zu tun:

 

7. Anschluesse fuer den User sichtbar

Der Benutzer hat in der fertigen Version folgende Anschlüsse zur Verfügung:
   Strom (der DSP und die Steuerplatine kann von ein und derselben Spannungsquelle versorgt werden - ca. 7V, 300 mA)
   Line Eingang (Klinkenstecker 3,5mm)
   Line Ausgang (Klinkenstecker 3,5mm)
   Kopfhörerausgang (Klinkenstecker 3,5mm)
   Zur Bedienung werden nur das LC-Display und die beiden Taster benötigt.

 

X. Anhang

 

X.A. Quellenangabe

 

X.B. Fachklausurpruefung

Dies ist die Dokumentation für die Fachklausurprüfung 14.5.2001 bis einschliesslich 18.5.2001.

Es wurde am 1. Tag eine Aufgabe gestellt:


Am 2.&3. Tag:

Am 4. Tag:

Am 5. Tag:

 

X.C. Diese Dokumentation

Diese Dokumentation basiert auf Scripts von view->source[Nico Edtinger] um sie sowohl online verfügbar als auch druckbar zu machen. In nächster Zeit wird der Code unter der GPL auf http://viewsource.web.ag/ zur Verfügung stehen.

Das Copyright für den gesamten Inhalt liegt bei Leo Eibler und Nico Edtinger. Wir sind per Mail zu ereichen falls jemand größere Auszüge aus dieser Dokumentation verwenden will.

Valid HTML 4.01!

Valid CSS!