Die Anwendung des AES-24 ID Entwurfs auf Audiogeräte

Vortrag zur Tonmeistertagung 1994

Das Message Format

Das allgemeine Aussehen eines AES-24 Befehls lautet wie folgt:

AES-24 Befehl
AES-24 Befehl

(Dieses Format entspricht der sogenannten „Amber“-Version der SC-10-2, vereinbart auf der letzten AES-Sitzung in Dallas, April 1994)

NB.: Nachstehend werden wir versuchen, die englischen Begriffe weitgehend einzudeutschen. Allerdings gelingt dies heutzutage nur noch in eingeschränktem Maße. Wir bitten Sie, uns die manchmal gleichzeitige Verwendung beider Sprachen nachzusehen.

Der Network Header

Dieser Datenblock ist den Datensequenzen angehängt, die den Netzwerkebenen der AES-24 Applikation zu Grunde liegen. Die Daten variieren von Netzwerk zu Netzwerk und auf Grund des Umfanges soll hier nicht weiter darauf eingegangen werden.

Sequence Number

Jede Nachricht wird mit dieser Nummer zu Identifikationszwecken gekennzeichnet. Sie ist besonders hilfreich um korrespondierende Abfragen (Query-messages = „Get…“) und Antworten („Set…“) zusammenzufügen. Die Sequence Numbers müssen nicht notwendigerweise in der entsprechenden Reihenfolge übertragen werden (da sie „willkürlich“ sind). Es ist aber darauf zu achten, daß jedem „Set…“ Befehl/Nachricht, welcher auf einen entsprechenden „Get…“ Befehl folgt, die entsprechende „Get…“ Sequence Number beigeordnet ist, um beide miteinander zu verknüpfen bzw. richtig zu interpretieren.

Object Method Handle

Das sogenannte Object Method Handle (OMH) spezifiziert das Ziel der Nachricht. Es enthält sowohl den Objekt Index als auch die Befehls-ID (Method ID). Dem OMH entspricht ein 1, 2 oder 3-Byte Datenwort, welche im sogenannten ASN.1 Format dargestellt wird.

Das allgemeine ASN.1 Format

Nachstehend finden Sie das allgemeine ASN.1 Format für 1-, 2- und 3-Byte Datenwörter:

ASN.1 Format
ASN.1 Format

Grundsätzlich legt das MSB (Most Significant Bit) fest, ob das nachfolgende Byte das letzte des Datenblocks darstellt. D. h., wurde das MSB auf eine logische „0“ gesetzt, so handelt es sich um das letzte Byte des Datenblocks. Ist das MSB auf „1“ gesetzt, folgen noch weitere Datenbytes. Um ein vollständiges Datenwort zu bilden, werden alle Bytes innerhalb eines Block miteinander verkettet, nachdem die MSB Flags eliminiert wurden.

Die ASN.1 Kodierung des Object Method Handle (OMH)

Das Object Method Handle beschreibt, um welche Art Nachricht es sich handelt und welches Objekt gemeint ist. Es handelt sich dabei um einen einfachen Block mit zwei Feldern: Dem Objekt Index des angesprochenen Objektes und der Befehls-ID (Method ED) der entsprechenden Anweisung. Die Aufteilung der Bits zwischen Objekt Index und Befehls-ID lauten für die jeweiligen Formate wie folgt:

1-Byte-Format:

Objekt Index Befehls-ID
d6 – d2 d1 – d0
Werte: 0-31 Werte: 0-3

2-Byte-Format:

Objekt Index Befehls-ID
d13 – d5 d4 – d0
Werte: 0-511 Werte: 0-31

3-Byte-Format:

Objekt Index Befehls-ID
d20 – d8 d7 – d0
Werte: 0-8191 Werte: 0-255

Für kleine Werte ist das 1-Byte-Format das effizienteste, da es als kürzeste Version auch den geringsten „Overhead“ mit sich führt. Daher ist es angebracht, den niedrigsten Werten die am häufigsten gebrauchten Objektindizes und Befehls-IDs zuzuweisen. Diese Maßnahme veringert den notwendigen Datenfluß im Netzwerk außerordentlich.

Die Parameter-Werte (Parameter Value)

Das Parameter-Wertefeld beinhaltet die Werte des Befehls. Der Datentyp des Wertefeldes variiert mit dem beigeordneten Befehl (im vorhergehenden Byte enthalten). Das AES-24 ID Informationsdokument spezifiert die entsprechenden Datentypen.

Der Network Trailer

Dieser Datenblock ist den Datensequenzen angehängt, die den Netzwerkebenen der AES-24 Applikation zu Grunde liegen. Die Daten variieren von Netzwerk zu Netzwerk und auf Grund des Umfanges soll hier nicht weiter darauf eingegangen werden.

Die Kommunikation mit dem Terzband-Entzerrer

In dieser Sektion wollen wir versuchen, mit Hilfe einiger Beispiele die Befehlstruktur zu dokumentieren. Auch hier sind wir durch die Kürze der Zeit gezwungen, auf Vollständigkeit zu verzichten.

Beispiel 1: Einstellung eines Entzerrer-Bandes

Befehl: „Stelle im Kanal 1 das 1 kHz-Band auf +6 dB“

Ein Entzerrer-Band wird dadurch eingestellt, daß dem KFO ein „SetRelGain“-Befehl gesandt wird. Die Kodierung dieser Befehlssequenz lautet:

OMH (Object Method Handle)

Objekt Index des 1 kHz Bandes im Kanal 1: 16
Befehls-ID (Method ID) von „SetRelGain“: 1

Wir können nun das ASN.1 1-Byte-Format verwenden, um das OMH zu kodieren, da der Objekt-Index dieses Entzerrer-Bandes kleiner als 32 ist und die Befehls-ID (Method ID) kleiner als 4. Daher lautet das OMH:

OMH = (Objekt Index) * 4 + Befehls-ID = (16 * 4) + 1 = 65 (hex $41)

Parameter-Value

Das Parameter-Value für den „SetRelGain“ ist vom Typ „Dezibel“ (siehe auch Sektion 10.5.6 des AES-24 ID Entwurfes). Der dezimale Datentyp kann durch 8- oder 16-Bit Wörter dargestellt werden. Die Werte bewegen sich dabei zwischen +28/-100 dB (8 Bit) oder +/- 256 dB (16-Bit). Für unser Beispiel soll das 8-Bit Format genügen.

+6 dB im 8-Bit Dezimaltyp entspricht Hexadezimal: $0C (siehe auch Sektion D.4 im AES-24 ID Entwurf).

Sequence Number

Diese Nummer kann willkürlich zugeteilt werden. In unserem Beispiel wollen wir Hexadezimal 255 = hex $FF benutzen.

Die vollständige Befehlssequenz

Die vollständige Befehlssequenz wird durch Aneinanderreihung von Network Header, Sequence Number, OMH, Parameter Value und Network Trailer gebildet.

Vollständige Befehlssequenz

Befehl: „Stelle im Kanal 2 das 1 kHz-Band auf +6 dB“

Dieser Befehl gleicht dem vorhergehenden mit der Ausnahme, daß diesmal der Objekt Index größer als 31 ist, und daher das ASN.1 2-Byte-Format zur richtigen Kodierung notwendig ist. Die Kodierung gestaltet sich wie folgt:

OMH

Objekt Index des 1 kHz Bandes im Kanal 2: 58
Befehls-ID (Method ID) von „SetRelGain“: 1
Der Objekt Index liegt innerhalb der Bits d13 – d5
Die Befehls-ID (Method ID) liegt innerhalb der Bits d4 – d0

Das komplette, 2-Byte OMH lautet: $8E $41

Parameter Value

Der Parameter-Wert ist der gleiche wie im vorhergehenden Beispiel: $0C

Sequence Number

Diese Nummer darf willkürlich festgelegt werden. In unserem Beispiel wiederum: $FF

Die vollständige Befehlssequenz

Vollständige Befehlssequenz

Beispiel 2: Einstellung der Verstärkung

Befehl: Stelle im Kanal 1 die Verstärkung auf -10 dB

Die Verstärkung wird eingestellt, indem man dem Verstärkungsobjekt (Gain Object) einen „SetRelGain“ Befehl sendet. Die Kodierung gestaltet sich wie folgt:

OMH

Objekt Index der Verstärkungseinstellung im Kanal 1: 31
Befehls-ID (Method ID) von „SetRelGain“: 1

Wir können das ASN. 1 1-Byte-Format verwenden:

OMH = (Objekt Index) * 4 + Befehls-ID = (31 * 4) + 1 = 125 (hex $7D)

Parameter Value

Das Parameter-Value für den „SetRelGain“ ist vom Typ „Dezibel“ (siehe auch Sektion 10.5.6 des AES-24 ID Entwurfes). Der dezimale Datentyp kann durch 8- oder 16-Bit Wörter dargestellt werden. Die Werte bewegen sich dabei zwischen +28/-100 dB (8-Bit) oder +/- 256 dB (16-Bit). Für unser Beispiel soll das 8-Bit Format genügen.

-10 dB im 8-Bit Dezimaltyp entspricht Hexadezimal: $EC (siehe auch Sektion D.4 im AES-24 ID Entwurf).

Sequence Number

Diese Nummer darf willkürlich festgelegt werden. Hier: $FF

Die vollständige Befehlssequenz

Vollständige Befehlssequenz

Schlußbemerkung

Wie bereits eingangs erwähnt, handelt es sich bei dem AES-24 ID Informationsprotokoll um einen Entwurf. Dieser Entwurf ist längst noch nicht in allen Punkten geklärt. Sinn dieses Vortrages ist es, diesen lobenswerten Ansatz einem möglichst breiten Fachpublikum zu präsentieren, um so viele Verbesserungsvorschläge wie möglich zu erhalten. Hier bietet sich die Gelegenheit, anders als in vielen bekannten Beispielen, einen Standard von Anfang an kennenzulernen und eigene aus der Erfahrung gewachsene Vorschläge zu unterbreiten.

Dieser Vortrag soll und kann keine vollständige Information über das sehr umfangreiche Protokoll geben. Vielmehr erhoffen wir uns eine fruchtbare Zusammenarbeit, bei der es vielleicht endlich gelingen könnte, proprietären Insellösungen aus dem Weg zu gehen.

Unterlagen