VHDL Projekt 12 - Benutzerdokumentation

 

Gliederung

  1. Funktion des Bausteins
  2. Umgebung des Bausteins
  3. Schnittstellen des Bausteins
  4. Verhalten bei fehlerhaften Eingangssignalen


Projektüberblick VHDL Frames anzeigen
Zurück zur Homepage

Funktion des Bausteins

Der hier vorgestellte Spitzenwertdetektor ist ein Baustein einer Digital Audio - Pegelanzeige. Er ermittelt die kurzfristigen und langfristigen absoluten Spitzenwerte für den linken und den rechten Audiokanal. Die kurzfristigen Spitzenwerte haben eine Lebensdauer von 0.05 Sekunden und dienen dazu, ein übermäßiges Flackern der anzuschließenden LED - Anzeige zu vermeiden. Die langfristigen Spitzenwerte haben eine Lebensdauer von maximal 2 Sekunden.

Er erhält als Eingangssignale logarithmisierte Audio - Pegelwerte, wobei insgesamt 16 verschiedene Werte unterschieden werden. Diese logarithmisierten Pegelwerte müssen an den die vier Bit breiten Eingängen LOG_L, für den linken Audiokanal, und LOG_R, für den rechten Audiokanal, anliegen. Die Daten werden parallel übertragen. Weiterhin erhält der Baustein das mit 44,1kHz gepulste Eingangssignal FLAG. LOG_L und LOG_R sind auf FLAG synchronisiert, eine fallende Flanke des FLAG Signals zeigt an, daß neue Werte an diesen Eingängen anliegen.

Die kurzfristigen Spitzenwerte werden über einen Zeitraum von 0.05s aus den jeweiligen Maxima der eingehenden Pegelwerte des linken und rechten Kanals getrennt bestimmt. Anschließend werden sie über die Ausgänge MAX_L (für den Linken Kanal) und MAX_R (für den Rechten Kanal) ausgegeben. Dann werden die kurzfristigen Spitzenwerte für die nächsten 0,05s ermittelt und ausgegeben.

Die langfristigen Spitzenwerte werden ebenfalls alle 0,05s gleichzeitig mit den kurzfristigen Spitzenwerten ausgegeben. Auch sie werden für den linken und den rechten Kanal getrennt bestimmt. Allerdings haben sie eine maximale Lebensdauer von 2s. Tritt innerhalb dieser 2s ein größerer oder gleich großer Spitzenwert auf wird der alte Spitzenwert durch den neuen überschrieben, der dann wieder eine Lebensdauer von 2s hat. Existiert ein Spitzenwert 2s ohne das er durch einen größeren oder gleich großen Spitzenwert ersetzt wurde, so wird er durch den Spitzenwert der letzten 0,05s ersetzt. Als zusätzliche Einschränkung müssen die Spitzenwerte einen Absolutwert größer -12 db verfügen. Werden innerhalb der letzen 0,05s, der maximalen Lebensdauer von 2s, eines Spitzenwertes keine Absolutwerte größer -12 db festgestellt, so wird der Spitzenwert auf logisch Null gesetzt. Das gleiche gilt für den Fall das noch kein Absolutwert größer -12 db festgestellt wurde. Die Ausgabe der langfristigen Spitzenwerte erfolgt über die Ausgänge PEAK_L (für den Linken Kanal) und PEAK_R (für den Rechten Kanal).



Projektüberblick VHDL Frames anzeigen Zum Seitenanfang
Zurück zur Homepage

Umgebung des Bausteins

Wie bereits erwähnt, ist der Spitzenwertdetektor Teil einer Gruppe von Bausteinen, die eine Digital Audio Pegelanzeige Realisieren. Zum besseren Verständnis sei kurz auf diese Baugruppe eingegangen. Die Schaltung umfaßt insgesamt 4 Baugruppen:

  1. Seriell/Parallel-Konverter
  2. Logarithmisierer
  3. Spitzenwertdetektor
  4. Anzeigentreiber

Eine schematische Darsellung der Schaltung:

Blockschaltbild der Digital-Audio-Pegelanzeige

Die Eingabedaten für die Schaltung müssen dem Protokoll zur Übertragung der Digital Audio Daten entsprechen. In den Grundzügen gestaltet sich dieses Protokoll wie folgt. Zur Übermittlung der Audiodaten werden drei Leitungen verwendet: Daten (SDATA, serial data), Bittakt (SCLK, shift clock) und Worttakt (FSYNC, frame sync). Dabei wird ein Stereosignal mit jeweils 18Bit pro Sample mit einer Samplefrequenz von 44.1kHz übertragen.. Die Audiodaten sind vorzeichenbehaftet, sie können Werte zwischen -131072 und 131071 annehmen. Vom Zeitverhalten her ist nur FSYNC direkt mit der Samplefrequenz gekoppelt (FSYNC=44.1kHz). Ein FSYNC-Zyklus umfaßt 64 SCLK-Takte.

Der eingehende serielle Audiodatenstrom wird vom Seriell/Parallel-Konverter eingelesen und als je ein 18Bit Wert für den Linken und den rechten Kanal (LEFT und RIGHT) ausgegeben. Bei jedem ausgegebenen Samplepaar wird FLAG auf den Wert 1 gesetzt und einen halben FSYNC-Zyklus später wieder auf 0. Da die Samplefrequenz 44,1kHz beträgt ist auch FLAG mit 44,1kHz gepulst.

Die Logarithmisierungseinheit hat die Aufgabe, die 262144 möglichen Pegel der Signale LEFT und RIGHT auf eine sinnvolle Unterteilung in db umzurechnen, wobei 16 Werte unterschieden werden sollen.

Die Anzeige stellt die kurzfristigen Spitzenwerte (normale Pegel) als Leuchtband und den langfristigen Spitzenwert als zusätzlichen Leuchtpunkt dar. Die Anzeige umfaßt jeweils 16 Segmente für den linken und den rechten Kanal.

Um nähere Informationen über die anderen Bausteine der Schaltung zu erhalten wenden Sie sich bitte an den Verantwortlichen der entsprechenden Projektgruppe:

Seriell/Parallel-Konverter: Gruppe 21
Logarithmisierer: Gruppe 30
Anzeigentreiber: Gruppe 1


Projektüberblick VHDL Frames anzeigen Zum Seitenanfang
Zurück zur Homepage

Schnittstellen des Bausteins

Signalname Signalbreite MSB Beschreibung
Eingänge
FLAG 1 Bit (0) - Eine fallende Flanke dieses Signals zeigt an, das Daten an den Eingängen LOG_L und LOG_R anliegen. Werden keine Daten geliefert muß das Signal den Wert logisch Null haben. Bei ununterbrochener Datenübertragung weist dieses Signal eine Frequenz von 44,1 kHz auf (entspricht der Samplerate).
LOG_L 4 Bits (0 bis 3) 3 LOG_L enthält codiert die logarithmisch skalierten Audio- Pegelwerte für den linken Kanal. Es sind 16 Werte möglich. Werden keine Werte geliefert muß LOG_L den Wert "0000" haben.
LOG_R 4 Bits (0 bis 3) 3 LOG_R enthält codiert die logarithmisch skalierten Audio-Pegelwerte für den rechten Kanal. Es sind 16 Werte möglich. Werden keine Werte geliefert muß LOG_R den Wert "0000" haben.
Ausgänge
MAX_L 4 Bits (0 bis 3) 3 MAX_L enthält die kurzfristigen Maxima für den linken Kanal. Die Werte enthalten codiert die logarithmisch skalierten Audio-Pegelwerte. Es werden 16 Werte unterschieden. Werden keine Werte geliefert hat MAX_L den Wert "0000".
MAX_R 4 Bits (0 bis 3) 3 MAX_R enthält die kurzfristigen Maxima für den rechten Kanal. Die Werte enthalten codiert die logarithmisch skalierten Audio-Pegelwerte. Es werden 16 Werte unterschieden. Werden keine Werte geliefert hat MAX_R den Wert "0000".
PEAK_L 4 Bits (0 bis 3) 3 PEAK_L enthält die langfristigen Maxima für den rechten Kanal. Es werden insgesamt y Werte zwischen "xxxx" und "1111" unterschieden. Werden keine Werte geliefert hat PEAK_L den Wert "0000". "xxxx" steht für den kleinsten Wert der für einen Absolutbetrag größer -12db steht.
PEAK_R 4 Bits (0 bis 3) 3 PEAK_R enthält die langfristigen Maxima für den rechten Kanal. Es werden insgesamt y Werte zwischen "xxxx" und "1111" unterschieden. Werden keine Werte geliefert hat PEAK_R den Wert "0000". "xxxx" steht für den kleinsten Wert der für einen Absolutbetrag größer -12db steht.


Projektüberblick VHDL Frames anzeigen Zum Seitenanfang
Zurück zur Homepage

Verhalten bei fehlerhaften Eingangssignalen

Fehlerart Auswirkungen
Die Werte von LOG_R und LOG_L liegen außerhalb des spezifizierten Bereiches. Nicht möglich, da sowohl LOG_R und LOG_L vier Bit breit sind und insgesamt 16 Werte für jeden der beiden Eingänge spezifiziert sind.
Gekippte Bits an den Eingängen LOG_R und LOG_L. Es wird mit den falschen Werten gearbeitet, daher kann es zu einer Verfälschung der Ausgangswerte kommen. Dies ist immer dann der Fall, wenn der veränderte Wert eigentlich das kurzfristige Maximum gewesen wäre oder der falsche Wert größer als das richtige kurzfristige Maxima ist.
Die Signale LOG_L und LOG_R liegen zu spät an oder stabilisieren sich zu spät. Es wird mit den alten Werten weitergearbeitet oder es werden, wenn die Signale gerade in der Stabilisierungsphase sind, Phantasiewerte verwendet. Als Folge kann es zu einer Verfälschung der Ausgangswerte kommen.
Das Signal FLAG zeigt Aussetzer. Dies führt zu einer ungenauen Zeitmessung. Die Zeiträume, über welche die Maxima bestimmt werden verlängern sich. Damit erfolgt auch die Ausgabe der Ergebnisse über MAX_L, MAX_R, PEAK_L und PEAK_R später. Die Werte die während des fehlenden Taktes an LOG_L und LOG_R anliegen werden beider Ermittlung der Maxima nicht berücksichtigt. Als Folge kann es zu einer Verfälschung der Ausgangswerte kommen.


Projektüberblick VHDL Frames anzeigen Zum Seitenanfang
Zurück zur Homepage