Skip to content

News Arts and Science Teaching Media Library Services IEM - intern Contact
  You are not logged in Link icon Log in
You are here: Home » Kunst & Forschung » Signalverarbeitung » DSP MADI ALSA Linux Treiber » Entwicklung von ALSA-Driver fr DSP-MADI der Firma RME Karte

Entwicklung von ALSA-Driver fr DSP-MADI der Firma RME Karte

HDSP-MADI PCI-Karte

Bei der DSP-MADI-Audiokarte handelt es sich um einen PCI-Karte der Firma RME (Deutschland) mit der Bezeichnung "Hammerfall DSP MADI" oder kurz "DSP MADI", mit einen Zusatzslotstecker.

MADI, das Multichannel Audio Digital Interface, bietet bis zu 64 Kanäle 24 Bit Audio bei bis zu 48 kHz Samplefrequenz, und 32 Kanäle bei bis zu 96 kHz. Die Übertragung erfolgt dabei über eine einzige Leitung, entweder koaxial mit BNC Steckern oder Lichtleiterkabel. In beiden Fällen können weit mehr als 100 Meter Kabellänge erzielt werden.

Die Entwicklung erfolgt mittels Verwendung von Coaxial-Verbindern dieser Karte mit dem ADI-648 Interface von RME, welche die das MADI-Signal in bis zu 8 ADAT-In und ADAT-Out TOS-Link Schnittstellen konvertiert.

ALSA - Linuxtreiber

ALSA Linuxtreiber sind zur Zeit der Standard für Mehrkanalbetrieb von Audiokarten. ALSA steht für "Advanced Linux Sound Architecture" und bezeichnet eine System das aus Lowlevel-Device-Driver und Midlevel-Device-Driver den ALSA-Driver, einer Bibliothek von Funktionen der ALSA-Lib und Hilfsprogramme die ALSA-Tools und ALSA_Utils.

ALSA ist unter GPL (GNU General Public license) und LGPL (GNU Lesser General Public License) lizensiert, was bedingt, dass der neue Treiber auch unter dieser Lizenz veröffentlicht werden muss.

Hier wird der Low-Leveldriver für die DSP-MADI Karte entwickelt, welche mit vorhandenen den MidLevel-Driver das Linux Deviceinterface bilden. Auf diese Deveices kann direkt oder über die ALSA-Lib zugegriffen werden.

Entwicklungshost

Entwickelt wird auf einen PC mit einen Athlon 1900+ Prozessor und einen MSI Mainboard unter Debian-Linux-System unter dem Linuxkernel 2.4.21.

Funktionen des Drivers in mehreren Teilen:

1) Es wird die Audiofunktionalität für 32Khz, 44.1KHz und 48kHz sichergestellt. Es wird ein Device angeboten das 64 In und Outkanäle bereitstellt.

Dabei wird diese Funktion mittels eines Testprogrammes festgestellt, welches dafür geschrieben wird, da aplay für die grosse Kanalanzeahl nicht eignet.

2) Controlinterface zur Einstellung folgender

  • Latency von 64 bis 8152 Samples - Clock Mode Master/Slave - Frequenz 32KHz, 44.1 KHz, 48 KHz (und jeweils DoubleSpeed-MODE) - Transmit 64/56 Kanäle - AutoInput on/off - InputSelect Optical/Coax - Preferred SyncRef Word/Optical/Coax
  • AudiomatrixMixer 128in64 Kanäle

3) Statusinterface

  • 56/64 KanalMode am Input, - Verwendeter Input - MADI Lock/Sync - WordClock Lock/Sync - Input Freq. - Sync. Referenz WordClock/MADI

4) MIDI Interface

MIDI Input/Output and den Zwei MIDI/Ins und Outs über Standard ASLA-MIDI Devices.

5) Proc Interface

Es wird eine Statusseite über den Betrieb und Zustand der Karte in einen File im /proc Filesystem erstellt.

Entwicklungsphasen

1) Erkennung der Hardware und erstellen des /proc Interface (siehe d5)

2) Impelmentation der Steuer- und Statusfunktionen (siehe d2,d3.)

3) Bereitstellen des Erforderlichen DMA-Speichers im neuen Scatter-Gather Algorithmus.

4) Implementation der Audiofunktionen Ein- und Ausgabe im SingleSpeed Modus (siehe d1)

5) Schreiben eines Testprogrammes um Unittests durchzuführen.

6) Implementation des MIDI-Treiber (siehe d4)

7) Übergabe des Treibers an ALSA (Sourcforge und für den 2.6.x Kernel)

8) Implementation des Double- und Quadspeedmodus (sobald RME dies freigibt).

9) Übergabe oder Weiterführung der Betreuung und Debuuging des Treibers.


Last modified 29.06.2004