Entwurf und Realisierung eines Single-Chip Broadcast Mischers auf einem FPGA

Die Seite wird erstellt Daniel Oswald
 
WEITER LESEN
Entwurf und Realisierung eines Single-Chip Broadcast Mischers auf einem FPGA
Entwurf und Realisierung eines Single-Chip Broadcast
             Mischers auf einem FPGA
                                Diplomarbeit

                              durchgeführt von

                       Voraberger Roland

                     Institut für Breitbandkommunikation
                       der Technischen Universität Graz

             Leiter: Kubin Gernot Univ.-Prof. Dipl. Ing. Dr.techn.

Betreuer: Graber Gerhard Ao. Univ.-Prof. Dipl. Ing. Dr.techn.

                            Graz, im August 2007
Entwurf und Realisierung eines Single-Chip Broadcast Mischers auf einem FPGA
Diplomarbeit   Entwurf und Realisierung eines Single-Chip Broadcast Mischers

                             Zusammenfassung

Diese Arbeit zeigt die Implementierung einer digitalen Audiomatrix auf einem
einfachen FPGA Baustein. Ausgehend von einer Rundfunkanwendung werden
die Grundfunktionen „Fader“ und „Summe“ in der für den gewählten Baustein
geeignetsten Variante realisiert und mit bekannten Lösungen verglichen. Ein
besonderes Hauptaugenmerk liegt bei der Synchronisierung auf das
Eingangsformat. Zur praktischen Überprüfung der entworfenen Designs wurde
eine Testplatine angefertigt. Audiosignale werden mittels ADAT® Schnittstellen
angebunden und zur Steuerung der          Audiomatrix wird das MIDI Format
verwendet. Die Decoder der Schnittstellen sind im Baustein zu einer Single-
Chip Lösung integriert. Die Funktionseinheit „Fader“ erwies sich sowohl zeitlich
als auch im Platzbedarf am aufwändigsten und wird deshalb in mehreren
Bausteinfamilien verschiedener Generationen simuliert und mit einer bit-
seriellen Lösung verglichen. Neuere Bausteine mit integrierten Hardware-
multiplizierern werden simuliert und es zeigt sich die Leistungsfähigkeit selbst
kleinster FPGA Bausteine. Der verwendete Baustein ist nicht voll ausgelastet,
trotzdem ist das Ergebnis für ein kleines Abwickelpult im Rundfunkbereich
ausreichend leistungsfähig.

                                      Abstract

The aim of this thesis is the implementation of a digital audiomatrix on a
simple FPGA. The main functions „fading“ and „summing“ based on the
functionality of a broadcast mixing desk are realized. The solution for the FPGA
is compared with other known possible solutions. One major point was the
synchronization to the incoming audioformat. Audio is connected to the device
via ADAT interfaces. Control data is provided by a MIDI input. These interfaces
are integrated into the FPGA as a single-chip solution. The fading element
needs most of the computing time and hardware resources. The fading
function is simulated in several FPGA devices of different generations. Also a
bitserial solution is also shown. The integrated hardware multipliers scale up
the performance of newer generation FPGAs. The shown solution does not
require full capacity of the device. The remaining hardware could be used for
expanding the input channel number and/or could be used for an integration of
hardware controls like rotary encoders. This would be enough to realize a
simple broadcast mixing desk.

                            Institut für Breitbandkommunikation                2
Entwurf und Realisierung eines Single-Chip Broadcast Mischers auf einem FPGA
Diplomarbeit   Entwurf und Realisierung eines Single-Chip Broadcast Mischers

                                  Danksagung

Ich möchte mich bei folgenden Personen recht herzlich für ihre Unterstützung
bedanken. Ich danke Herrn Ao. Univ.-Prof. Dipl. Ing. Dr.techn. Graber für die
Betreuung während des Studiums und im Speziellen für die Betreuung dieser
Arbeit. Messgeräte lieh mir dankenswerterweise die Firma Acousta. Ein Dank
geht auch an Herrn Peter Fasser für die Hilfe bei der Printplattenerstellung.
Einen herzlichen Dank an meine Familie und Freunde für die stetige
Unterstützung und Ermunterung zum Abschließen dieser Arbeit. Besonders
bedanken möchte ich mich in diesem Sinn bei Kerstin Klein. Für die
unermüdlichen Ermunterungen danke ich Herrn Markus Noisternig, für ihre
nette Hilfe Markus Sigmund und Claudia Polanski.

                            Institut für Breitbandkommunikation                3
Entwurf und Realisierung eines Single-Chip Broadcast Mischers auf einem FPGA
Diplomarbeit              Entwurf und Realisierung eines Single-Chip Broadcast Mischers

Inhaltsverzeichnis
1. Einleitung, Beweggrund................................................................................................................... 7
2. Überblick und Funktionsumfang des Mischers.............................................................................. 11
   2.1. Das Pflichtenheft des Mischers...............................................................................................11
   2.2. Beschreibung der Testplatine..................................................................................................12
   2.3. Chronologischer Entwicklungsablauf.....................................................................................15
3. FPGA und Entwicklungsumgebung............................................................................................... 18
   3.1. Der verwendete FPGA............................................................................................................18
   3.2. Die verwendete Entwicklungsumgebung............................................................................... 22
   3.3. Der Test- und Messaufbau...................................................................................................... 24
4. Synchronisation und Systemclock..................................................................................................28
   4.1. Allgemeines über Synchronisation in der Digitalen Audiotechnik........................................ 28
   4.2. Synchronisation über PLL und VCXO................................................................................... 29
   4.3. Synchronisation über ADAT® Eingang.................................................................................32
5. Verwendete Audioformate und das Steuerformat.......................................................................... 37
   5.1. Audioschnittstelle ADAT®.................................................................................................... 37
   5.2. Audioschnittstelle SPDIF....................................................................................................... 43
   5.3. Steuerschnittstelle MIDI......................................................................................................... 45
6. Audiosignalverarbeitung ............................................................................................................... 51
   6.1. Parallele Realisierung der Testplatine, zeitlich seriell ..........................................................51
      6.1.1. Parallele Funktionsblöcke Summe und Fader ................................................................51
      6.1.2. Ablaufsteuerung der Audiosignalverarbeitung............................................................... 54
   6.2. Vergleich verschiedener Faderrealisierungen.........................................................................61
7. Zusammenfassung und Ausblick....................................................................................................67
Literaturverzeichnis............................................................................................................................ 73
Anhang: Source Code und Datenblätter............................................................................................. 74

                                              Institut für Breitbandkommunikation                                                                4
Entwurf und Realisierung eines Single-Chip Broadcast Mischers auf einem FPGA
Diplomarbeit               Entwurf und Realisierung eines Single-Chip Broadcast Mischers

Abbildungsverzeichnis
Abb. 1: Testplatine von der Bestückungsseite aus gesehen............................................................... 12
Abb. 2: Ursprünglicher Schaltplan nach dem die Testplatine aufgebaut ist...................................... 14
Abb. 3: Signalflussplan der Audiosignale.......................................................................................... 17
Abb. 4: Pin Planner: Übersicht und Konfiguration der Ein- und Ausgangspins des Bausteins,
Screenshot aus der Quartus II Entwicklungsumgebung, Altera Corp................................................ 19
Abb. 5: Ein Logisches Element der Cyclone Familie [Cyclone Device Handbook, S. 2-5] .............20
Abb. 6: Clock Netzwerk Cyclone Familie und Verbindung mit der PLL (verwendeter Baustein
besitzt nur PLL 1), [Cyclone Device Handbook, S. 2-30] ................................................................ 21
Abb. 7: Quartus Entwicklungsumgebung, Verschaltung einzelner Funktionsblöcke in der ersten
Ebene.................................................................................................................................................. 22
Abb. 8: Verbindungen zwischen Hostrechner und Testplatine ......................................................... 24
Abb. 9: Mischpult und Routingoberfäche der Emu 1212m Soundkarte, Screenshot ........................25
Abb. 10: PD Patch als Testoberfläche zur Einstellung der Faderparameter...................................... 26
Abb. 11: Maximaler Jitter, den ein AES-3 Empfänger ausgleichen können muss, [AES-3, S.22]....29
Abb. 12: Altera PLL Baustein beschreibt OnChip Hardware PLL.................................................... 30
Abb. 13: Funktionsblock PLL, Phasenkomparator aus einer PLL..................................................... 31
Abb. 14: Schaltungsvorlage des Phasenkomparators [Tietze/Schenk, S. 1161]................................ 31
Abb. 15: Funktionsblöcke zur Generierung der Syncsignale............................................................. 32
Abb. 16: Vergleichssimulation eines Zählers down/up, Verhalten der Flanken................................ 33
Abb. 17: Schaltbild D-Flip Flop, flankengetriggert mit Enableeingang als Frequenzteiler...............35
Abb. 18: Simulation Enable gesteuertes Flip Flop mit 3,072 MHz................................................... 35
Abb. 19: ADAT® Frame Aufbau und Orientierung.......................................................................... 38
Abb. 20: Funktionsblock ADAT_In2.................................................................................................39
Abb. 21: Aussortierung ADAT® Format zu Audiowort....................................................................40
Abb. 22: Funktionsblock ADAT_send2, ADAT® Ausgang............................................................. 41
Abb. 23: Ablaufsteuerung des Funktionsblockes ADAT_send2....................................................... 41
Abb. 24: Simulation des NRZI Enkoders...........................................................................................42
Abb. 25: Funktionsblock S/PDIF Ausgang in 24,576 MHz Technik.................................................43
Abb. 26: Steuerungsteil bestehend aus Funktionsblock MIDI_dekode und Steuerramblock............ 46
Abb. 27: Dekodierung des 3 Byte MIDI Befehls............................................................................... 47
Abb. 28: Faderkennline, Aufteilung der 128 linearen Wegpunkte in Rechenwerte...........................48
Abb. 29: Konfiguration eines lpm Operators aus der internen Bibliothek: Dual Port Ram...............49
Abb. 30: Funktionsblock 24bitPsum: 24 Bit breite durchlaufende Summe mit Reset Eingang ....... 51
Abb. 31: Timingdiagramm einer 24 Bit breiten Summe, Baustein Altera EPC1T144C8................. 52
Abb. 32: Funktionsblock Fader: kombinatorischer Multiplizierer mit 24 Bit Multiplikand (Audio)
und mit 16bit Multiplikator ............................................................................................................. 53
Abb. 33: Division durch Weglassen niederwertiger Bits................................................................... 53
Abb. 34: Timingdiagramm eines 24 Bit mal 16 Bit Faders, Baustein Altera EPC1T144C8............. 54
Abb. 35: Eingangspuffer 2 mal 8 24 Bit Audiowörter....................................................................... 55
Abb. 36: Ablaufsteuerung für Audiosignalverarbeitung berechnungscnt.......................................... 56
Abb. 37: Ablaufdiagramm Audiosignalverarbeitung: die erste Summe ist vollständig aufgelistet,
danach nur mehr der Zählerstand bei Events......................................................................................57
Abb. 38: Ablaufdiagramm Audiosignalverarbeitung: Zählerstand bei Events................................. 58
Abb. 39: Ablaufdiagramm Audiosignalverarbeitung: Zählerstand bei Events.................................. 59

                                                Institut für Breitbandkommunikation                                                                     5
Entwurf und Realisierung eines Single-Chip Broadcast Mischers auf einem FPGA
Diplomarbeit            Entwurf und Realisierung eines Single-Chip Broadcast Mischers

Abb. 40: Hardwarebedarf der bitparallelen, zeitlich seriellen Lösung, Screenshot aus der Quartus II
Entwicklungsumgebung..................................................................................................................... 61
Abb. 41: 24 x 16 Bit Fader parallel Cyclone EP1C3T144-8, 499 Logische Elemente ..................... 62
Abb. 42: 24 x 16 Bit Fader parallel EP2C5F256C8, 4/26 Embedded Multiplier............................. 62
Abb. 43: 24 x 16 Bit Fader parallel EP1K100FC256 -3, 531 logische Elemente.............................. 62
Abb. 44: Beispiel eines 8 Bit mal 3 Bit seriellen Mulitplizierers.......................................................64
Abb. 45: Laufzeitsimulation einer 17 Bit parallelen Summe............................................................. 65
Abb. 46: AES Frame 24 Bit LSB-First.............................................................................................. 65
Abb. 47: Verschiedene Stufen der digitalen Verzerrung bis zur Unkenntlichkeit der Kurvenform.. 70
Abb. 48: Schaltplan mit integrierter PLL und Fehlerkorrekturen...................................................... 72

                                            Institut für Breitbandkommunikation                                                           6
Entwurf und Realisierung eines Single-Chip Broadcast Mischers auf einem FPGA
Diplomarbeit      Entwurf und Realisierung eines Single-Chip Broadcast Mischers

1. Einleitung, Beweggrund

Hardware digitaler Mischpulte

Die ersten Überlegungen Mischpulte digital statt analog aufzubauen, führten zu
2 Ansätzen die Audiosignale zu bearbeiten:
•  Digitale Signalprozessoren (DSP) übernehmen die Rechenaufgaben der
   Signalverarbeitung
•  Rechenwerke werden diskret in Hardwareschaltungen aufgebaut

Die DSP Welt entwickelte sich sehr schnell, während die diskreten
Rechenwerke schnell an die Grenzen der Machbarkeit stießen. Eine Variante
der diskreten Audiosignalverarbeitung, die Rechenwerke in FPGAs (Field
Programmable Gate Array) aufzubauen, hält sich bis heute und erfährt aus
mehreren Gründen gerade eine Renaissance. Die Verwendung von FPGAs
erhält dem Entwickler die Flexibilität und hält die Bauteilkosten durch erhöhte
Integrationsdichte, im Gegensatz zu wirklich diskreten Rechenwerken in
74HCXX1 Logik, in Grenzen.
Auch haben Hersteller von FPGAs den Einsatzbereich Multimedia/Professional
Audio in ihr Interessengebiet aufgenommen, sie bieten Unterstützung bei
neuen Designs und so genannte IP Cores (Intelectual Properties) an. IP Cores
sind vorprogrammierte Elemente, die in ein Design in beliebiger Anzahl
integriert werden können (zum Beispiel ein AES3 Empfangsteil).

Die rasant steigende Entwicklung der Integrationsdichte der FPGAs bei
gleichzeitig sinkenden Kosten macht diese Lösung für digitales Audio
interessant. Selbst die kleinsten Bausteine (EP2C5, EP3C5) enthalten schnelle
„Embedded Multiplier“, das sind integrierte schnelle Multiplizierer als
Hardwareelemente für Rechenanwendungen. Logische Elemente sind die
Grundbausteine der FPGAs und werden von einer Entwicklungssoftware zu den
jeweilig gewünschten Funktionen des Bausteins parametriert und zusammen
geschaltet.

1 74HCXX Logik: High Speed CMOS Bausteine, aus denen digitale Schaltwerke zusammengesetzt sind

                                 Institut für Breitbandkommunikation                             7
Entwurf und Realisierung eines Single-Chip Broadcast Mischers auf einem FPGA
Diplomarbeit       Entwurf und Realisierung eines Single-Chip Broadcast Mischers

Folgende Tabelle zeigt eine kleine Übersicht von Bausteinen aus fünf
Generationen der Firma Altera2:

  Typenbezeichnung Logische Speicher PLL Integrierte                            Ca.       Preis
                   Elemente in           Multiplier                             erhältlich seit
                             Bits
  Flex10K         2880                      20480        N/A N/A                > 250€
  EPF10K50RC240-4                                                               seit 1996
  Acex                        4992          49152        1       N/A            ca. 40€
  EP1K100FC256-3                                                                seit 2001
  Cyclone                     2910          59904        1       N/A            ca. 13€
  EP1C3T144C-8                                                                  seit 2003
  Cyclone                     20060         294912       2       N/A            ca. 90€
  EP1C20F324C-6                                                                 seit 2003
  Cyclone       II 68416                    1152000 4            150 18*18bit ca. 350€
  EP2C70F672C-6                                                               seit 2005
  Cyclone                III 119088         3888kBit 4           288            ca. 400€
  EP3C120                                   s                    18*18bit       seit 2007
  Cyclone III                 5136          414kBits 2           23             Erhältlich ab
  EP3C5                                                          18*18bit       Quartal      3,
                                                                                2007
 Cyclone II          4608                   119808k 2            13             Ab ca. 12€
 EP2C5                                      Bits                 18*18bits      seit 2005
Quelle: www.altera.com

Spezielle Funktionen im Broadcastbereich

Bei Verwendung digitaler Audiosignalverarbeitung im Rundfunkbereich geht es
um komplexe Steuerbarkeit einfacher Grundelemente, da meist so genannte
„Selbstfahrertische“ eingesetzt werden. Das heißt, der Moderator wickelt auch
gleichzeitig die Sendung ab und ersetzt den Tonmeister. Das Hauptaugenmerk
des DJs liegt in der Moderation. Die Bedienung der Audioanlage beschränkt
sich auf wenige Bedienelemente mit dahinter liegenden hochautomatisierbaren
Vorgängen. Die Komplexität der Audioanlage besteht hauptsächlich aus einer
großen Anzahl von Pegelstellern und Summen. Wichtig ist deren
Anpassungsfähigkeit und vielfache Verfügbarkeit und weniger fein auflösende
Signalbearbeitung. Diese ist mehr dem Geschmack der Personen und der Zeit
unterworfen und wird oft mit externen Prozessoren durchgeführt. Die fertig
bearbeiteten Audiosignale werden über analoge oder digitale Schnittstellen an
die Anlage angebunden.
2 ALTERA: FPGA Anbieter, www.altera.com, weitere Firmen: Xilink, Lattice usw.

                                  Institut für Breitbandkommunikation                             8
Entwurf und Realisierung eines Single-Chip Broadcast Mischers auf einem FPGA
Diplomarbeit      Entwurf und Realisierung eines Single-Chip Broadcast Mischers

Hauptaufgaben eines Broadcastmischers sind somit Pegelstellen und
verschiedenste Summierungen der angebotenen Signale. Anders als im
Produktions- oder Beschallungsbereich gibt es mehr als eine Ausgangssumme.
Es werden noch n-m Summen (die selbe Summe wie die Hauptsumme ohne
das zuspielende Signal, um Rückkopplungen an der zuspielenden Seite zu
vermeiden) für Rückprogramme und Telefonanbindungen, Off-Air Summen für
gleichzeitiges Vorproduzieren während der Sendung, Studioeinspielsummen für
angebundene Studioräume oder Intercom- bzw. Kommandowege gebraucht.

Prinzipielle Audiosignalbearbeitung und Weg zum FPGA

In der Audiosignalverarbeitung entwickelten sich zwei verschiedene
Berechnungsverfahren,      bitseriell und    bitparallel. Gerade  für    die
Hardwarelösung bot sich anfangs die bitserielle Berechnung an, da nur so
Multiplikationen in brauchbarer Rechenzeit mit den verfügbaren Bausteinen
möglich waren. Im Acousta System D5003 wurde durch die bitserielle
Verarbeitung und den hohen Parallelisierungsgrad durch Verwendung von
FPGAs eine gute Integrationsdichte, hohe Modularität und Anpassungsfähigkeit
erreicht. Leider erlaubten die Packungsdichten der damals verfügbaren
Bausteine kein durchgängig bitserielles Design. Der Übertragungsweg machte
eine Teilparallelisierung notwendig. Die Zubringung zu den Übertragungs-
bausteinen musste aufgrund hoher Frequenzen auf Platinenlevel parallel
stattfinden. Mittlerweile sind schnelle Hardwaremultiplikatoren (Embedded
Multiplier) in die FPGAs integriert, welche in hoher Anzahl und mit hohen
Taktfrequenzen betreibbar, eine serielle Verarbeitung ersetzen. Außerdem
besitzen manche Schnittstellenbausteine keine Möglichkeit das Signal LSB-
First (Least Significant Bit) anzubieten, was einem durchgängig seriellem
Design zuwider läuft.

Dafür bieten FPGAs die Möglichkeit, diese Empfangsbausteine in den Chip zu
integrieren und je nach Bedarf anzupassen, was den Kostenfaktor des FPGA
Bausteins etwas relativiert. Die hohe erhältliche Anzahl multifunktionaler I/O
Pins ist ein weiterer Pluspunkt zugunsten der FPGA Architektur verglichen mit
DSPs. Auch die Anbindung externer Bausteine wie A/D Konverter ist technisch
einfach zu realisieren. Dabei muss lediglich die Schnittstelle in Software
entworfen werden und kann nach belieben angepasst werden.
Höhere Integrationsdichte, integrierte Hardware Elemente wie DSP Cores,
integrierter schneller Speicher, Hard- als auch Softwarecontroller On-Chip
machen      den   FPGA    auch   im   Bereich    der    Audiosignalverarbeitung
konkurrenzfähig zur DSP Architektur. Aufgrund kurzer Latenzzeiten durch
hohen Parallelisierungsgrad werden FPGAs seit geraumer Zeit auch in
semiprofessionellen Soundkarten verwendet. Durch vermehrten Einsatz von
FPGAs hauptsächlich in Computernetzwerkelementen und Kommunikations-
anlagen sinkt auch der Preis und die Verfügbarkeit steigt.

3 Modulares Audiosystem der Firma Acousta www.acousta.at

                                 Institut für Breitbandkommunikation              9
Entwurf und Realisierung eines Single-Chip Broadcast Mischers auf einem FPGA
Diplomarbeit   Entwurf und Realisierung eines Single-Chip Broadcast Mischers

Aufgabenstellung und Zielsetzung der Arbeit

Als Beispiel wird ein kleiner Mischer auf einem sehr einfachen und günstigem
FPGA realisiert, um zu ermitteln, welche Möglichkeiten auch Bausteine der
kleinsten Klasse in der Audiosignalverarbeitung bieten. Der Baustein soll
folgende Funktionen auf dem Chip vereinen und mit möglichst wenig externen
Bauelementen auskommen:

•   Eingansformatdekoder eines ADAT® Signals
•   Synchronisation auf Eingangsformat oder Wordclock
•   Ausgangsformatenkoder
•   Steuerschnittstelle (MIDI)
•   Sinnvolle Anzahl von Audiofunktionen
•   Platz für zusätzliche Funktionen, wie zum Beispiel Aussteuerungsanzeige
    oder Überwachungsausgänge (zum Beispiel pegelabhängige GPIOs, normale
    GPIOs)

Punkte für die Wahl eines FPGAs anstatt eines DSPs sind:

•   Kurze Ladezeiten, verschiedene Konfiguration für zB. Selbsttests im Betrieb
    umschaltbar
•   Einfache    Anpassungsfähigkeit,    zB.  auf    neue   Audioformate   oder
    Steuerschnittstellen
•   Single-Chip Realisierung erleichtert das Printplattendesign (zB. HighSpeed
    passiert innerhalb des Chips)
•   Möglichkeit zur einfachen Integration eines μControllers im FPGA für
    Steueraufgaben (zB. NIOS)
•   Konstante Durchlaufzeiten im Audioweg, da Rechenwerk real vorhanden ist
•   integrierter Speicher und mittlerweile Hardware Multiplier für schnelle
    Rechenoperationen
•   gute Programmierbarkeit durch Unterstützung komplexer Hardware-
    beschreibungssprachen
•   Große Anzahl an Pins für Erweiterung und Kommunikation
•   Fertige IP Cores für gängige Formate/ Bauteile
•   einfache Anbindung zB. A/D bzw. D/A Konverter verschiedenster Formate

Nach der allgemeinen Vorstellung des Projektes soll nun im folgenden Kapitel
der Funktionsumfang genauer definiert und die Testplatine vorgestellt werden.
Kapitel 3 beschreibt den verwendeten FPGA und die zugehörige Entwicklungs-
umgebung näher. In Kapitel 4 wird die Synchronisierung digitaler Audio-
systeme und speziell die Realisierung der implementierten Lösung beschrieben,
im Kapitel 5 folgen die Funktionsblöcke und die Beschreibung der verwendeten
Audio- und Steuerformate. Kapitel 6 beschreibt die auf der Platine getestete
Lösung der Audiosignalverarbeitung und stellt Vergleiche mit anderen
möglichen Varianten her. Die Source Codes zu den Funktionsblöcken und
wichtige Datenblätter sind dem Anhang zu entnehmen.

                            Institut für Breitbandkommunikation                10
Diplomarbeit        Entwurf und Realisierung eines Single-Chip Broadcast Mischers

2. Überblick und Funktionsumfang des Mischers

Es wird im folgenden ein Single-Chip Broadcastmischer auf einem einfachen
FPGA realisiert und dessen Mindestfunktionen definiert. Die dazu entwickelte
Testplatine wird vorgestellt und die Vorgehensweise als chronologischer
Entwicklungsablauf aufgeführt.

2.1. Das Pflichtenheft des Mischers

Der Mischer muss folgende Aufgaben mindestens erfüllen:

•   Audioanbindung des Mischers über ADAT®
•   8 Audiobusse mit unabhängiger Aufschaltung der Eingänge
•   8 Hauptpegelsteller
•   Steuerung des Audiocores über MIDI
•   Synchronisation auf ein Wordclock Signal oder auf                                             das   Audio
    Eingangsformat

Folgende Bauteile sind zur Erfüllung der Funktionen notwendig:

•   FPGA
•   Der zugehörige Konfigurationsbaustein für den FPGA (EEProm)
•   Wandler optisch auf elektrisch TORX 141 und elektrisch auf optisch TOTX
    141
•   Elektrische   Formatwandlung          zB.    Stromschnittstelle    MIDI  auf
    Spannungsschnittstelle inklusive Schutzschaltung durch Optokoppler
•   VCXO4 zur Taktgewinnung        f iclk =48kHz∗512=24,576 MHz    mit +- 70ppm
    Ziehbereich zur Synchronisierung an den Systemtakt der Umgebung
•   Analoger Filter der PLL zur Filterung und Jitterreduktion bei der
    Taktanpassung
•   Spannungsversorgung für die I/O Elemente VCCIO=3,3V und die so genannte
    Corespannung zur Versorgung des inneren Kerns des FPGAs VCC_CORE=1,5V

4 VCXO: Voltage Controlled Crystal Oscillator, spannungsgesteuerter Schwinger auf Kristallbasis

                                   Institut für Breitbandkommunikation                                     11
Diplomarbeit      Entwurf und Realisierung eines Single-Chip Broadcast Mischers

2.2. Beschreibung der Testplatine

Es wurde eine zweiseitige Platine mit dem Layout Programm Eagle5 erstellt.
Eine Massefläche auf der Unterseite sorgt für Stabilität, eine VCC Plane auf der
Oberfläche ist im ursprünglichen Entwurf durch mehrere verschiedene
Spannungen nicht durchgehend möglich. Die in Abb. 1 dargestellte Platine
wurde in Eigenregie geätzt und bestückt.

                                                     1

 Abb. 1: Testplatine von der Bestückungsseite aus gesehen

Als FPGA (1) wurde der Baustein Altera EP1C3T144 – 8 aus der ersten Cyclone
Familie verwendet, da gezeigt werden soll, dass mit einem Low-End Baustein
die Anforderungen erfüllt werden können. Dieser Baustein ist einfach zu
beziehen und aufgrund der TQFP (Thin Quad Flat Pack) Bauform auch einfach
manuell zu verarbeiten. Dazu gehört der Konfigurationsbaustein (1a) EPCS1
und der JTAG6 Stecker (1b) um den Konfigurationsbaustein zu programmieren.
5 Eagle 4.16: www.cadsoft.de mit eingeschränktem Funktionsumfang als freie Version downloadbar
6 Joint Test Action Group nach IEEE Standard 1149.1, wird hier nur zur Übertragung des Programms in den
  Konfigurationsbaustein verwendet

                                Institut für Breitbandkommunikation                                 12
Diplomarbeit       Entwurf und Realisierung eines Single-Chip Broadcast Mischers

Die optische Umsetzung des ADAT® Signals übernehmen die Bausteine des
Typs Toshiba TORX 141 (2a) als Receiver und TOTX 141 (2b) als
Sendebaustein. Jeweils darunter ist noch ein freier Platz für ein zweites TOT/RX
Paar. Diese sind 3,3V Bausteine mit einer Maximalübertragungsrate von
15MBit/sec. Das Datenblatt ist dem Anhang (S. 100 bis 110) zu entnehmen.

Die Steuerschnittstelle MIDI wird über einen Standard Optokoppler (3) vom
TYP CNY17 (siehe [fairchildsemi]) angebunden und sekundär mit 3,3V
versorgt. Das Stromsignal wird in ein für den FPGA geeignetes
Spannungssignal umgesetzt.

Der VCXO (4) ist ein durch eine Steuerspannung verstellbarer (= ziehbarer),
hoch präziser Quarz mit der Normalfrequenz 24,576 Mhz und einer
Frequenzstabilität von +-25ppm. Wird der Baustein mit 3,3V versorgt, so
reduziert sich der Ziehbereich von 100ppm auf ca. +- 70ppm. Das Datenblatt
ist im Anhang (S. 111 bis 112) aufgeführt.

Ein analoger PLL Baustein des Typs 4046AD (5) „Phase-locked-loop with VCO“
ist vorgesehen. Aufgrund von Pegelanpassungproblemen zwischen der 5V und
der 3,3V Domäne und der Möglichkeit den Phasendetektor in den FPGA zu
integrieren ist dieser nicht mehr notwendig. Übrig bleibt davon nur mehr der
analoge Filterteil (5a) auf der Platine.

Die Spannungsversorgung der gesamten Elektronik auf der Platine ist über
eine Steckerleiste (6) verbunden und wird mit zwei LDO7 Spannungsreglern auf
3,3V (6a) für die I/O Versorgung des FPGAs und die angeschlossenen Bauteile
und 1,5V (6b) für die Corespannung des FPGAs erzeugt.

Die LEDs (7) werden für Zustandsanzeigen verwendet:
Rot für nicht synchron zum ADAT® Signal, Grün1 für Spannungsversorgung ist
in Ordnung, Grün2 für MIDI Signal gültig erkannt.

Die Testpins (8) sind für Messzwecke und Erweiterungsmöglichkeiten beliebig
beschaltbar.

Abb. 2 zeigt den ursprünglichen Schaltplan, der der Testplatine zugrunde liegt.

Der FPGA ist hier in 4 Blöcke, so genannte Bänke, aufgeteilt. Gut sichtbar sind
die Vielzahl der Pins für die Spannungsversorgung und die Masseverbindungen.
Um die Platine einfach und selbst herstellbar zu halten, wurde versucht, die
Anzahl der Durchkontaktierungen für Masseverbindungen und Wechsel auf eine
andere Plane zu vermeiden.

7 LDO: Low Drop Out Voltage, linearer Spannungsregler mit niedriger Differenzspannung

                                  Institut für Breitbandkommunikation                   13
Abb. 2: Ursprünglicher Schaltplan nach dem die Testplatine aufgebaut ist
Diplomarbeit                                          Entwurf und Realisierung eines Single-Chip Broadcast Mischers

2.3. Chronologischer Entwicklungsablauf

Zum besseren Verständnis, wie es zur gezeigten Lösung kam, wird der
Entwicklungsablauf chronologisch angeführt.

                                                                        Sinusgenerator (1)
               Platine ist Clockmaster

                                                                                                          Stabilitäts-
                                                                                                          überprüfung
                                                                                                          der Platine
                                                                       S/PDif Ausgang (2)

                                                                                                          Überprüfung
                                                                        ADAT Eingang (3)                  ADAT Format

                                                                        Externe PLL PC1

                                                                                                           Synchronisation
                                                                                                           PLL Problematik
                                                                                                           24kHz auf 48kHz
                                                                    Eigene PLL Typ PC II (4)               Sync Wordclock
                                                                                                           kompatibel
               Hostrechner ist Clockmaster, Platine ist Slave

                                                                    Überarbeitung Syncpuls (5)

                                                                  Überarbeitung ADAT Eingang
                                                                                                           System stabil
                                                                                                           Überarbeitung
                                                                                                           Eingang und
                                                                                                           stabiler Ausgang
                                                                       ADAT Ausgang (6)

                                                                                                           MIDI Eingang
                                                                        MIDI Eingang (7)                   und Steuerspeicher

                                                                                                           Aufbau Pufferspeicher
                                                                     Audiosignalverarbeitung
                                                                                                           Test von Fader/ Summe
                                                                       Fader/ Summen (8)

                                                                   Institut für Breitbandkommunikation                             15
Diplomarbeit        Entwurf und Realisierung eines Single-Chip Broadcast Mischers

Zur Inbetriebnahme der Testplatine ist nach Überprüfung der Spannungs-
versorgungen ein Sinusgenerator (1) (Funktionsblock SinGen) in Form eines
Table Look Up Generators entworfen. Es ist mit der Frequenz f test =1kHz ein
Standardmesston der Audiotechnik gewählt worden. Die Tabelle besteht aus 48
gerechneten Stützpunkten eines Sinussignals mit 24 Bit Wortbreite, die mittels
eines Modulo 48 Zählers zu jedem 48 kHz Zeitpunkt ausgelesen werden.
Dieser Ton wurde zuerst in S/PDif8 (2) kodiert, auf den optischen Ausgang
(TOTX141) aufgebracht und mit dem Messrechner aufgezeichnet. Die
Testplatine liefert zugleich den Takt als Clockmaster. Die optische Überprüfung
der Kurvenform eines digital aufgezeichneten Signals dient zur Überprüfung
der Stabilität der betroffenen Bauteile. Der so als funktionierend bestätigte
S/PDif Ausgang dient dazu um das ADAT® Signal zu messen und den
Eingangsformatdekoder (3) zu entwerfen.

Nach erfolgter Dekodierung des ADAT® Formats wurde der Messrechner als
Clockmaster umgeschaltet und die Testplatine als Slave synchronisiert.
Der gewählte Phasendetektor der analogen externen PLL verhielt sich bei
Versorgung mit 3,3V entgegen den Angaben des Datenblattes (siehe [Philips
Semiconductors S.9]) nicht stabil (siehe Kapitel 3.1). Als Lösung des Problems
wurde der Phasendetektor (4) ähnlich des Typ II9 aus dem Philips
74HC4046AD in den FPGA integriert.

Nach Stabilisierung und gründlicher Überarbeitung des Synchronisations-
algorithmuses (5) wurde ein ADAT® Ausgang (6) implementiert. Die Eingangs-
signale wurden dazu direkt auf den Ausgang durchgeschliffen.

Zur Steuerung der wird das MIDI Eingangssignal (7) dekodiert und auf den
Systemclock der Platine synchronisiert.

Nach einigen Simulationen ergab sich, dass ein Pegelsteller (8) auf dem
Baustein mit einem 7 Bit Parameter und 24 Bit Audiowert eine Durchlaufzeit
von ca. 25 ns benötigt. Der Hardwareaufwand des Pegelstellers war zu hoch,
um ihn achtfach parallel zu verwenden und es wurde eine achtfach zeitserielle
Lösung verwendet. Um eine vernünftige Bedienbarkeit und Auflösung zu
erreichen, wurde der Pegelsteller auf 24 Bit mal 16 Bit erweitert und eine
Faderkennlinie eingeführt.

Für eine störungsfreie Audiosignalverarbeitung ist ein Empfangs- und ein
Sende-Ram als Puffer eingeführt. Diese Pufferspeicher trennen die
Audioverarbeitung von den Ein- und Ausgangsfunktionsblöcken. Der Baustein
ist in der Lage, innerhalb eines 48 kHz Taktzyklus 64 Fader (= Pegelsteller)
und acht Summenbusse, denen jeweils acht Pegelsteller für die acht Eingänge
zugeordnet sind, zu verarbeiten. In Abb. 3 ist der Signalflussplan dargestellt.

8 S/PDif = Sony/ Philips Digital Interface, eine vereinfachte Variante des AES-3 Digital Audiosignals
9 Siehe Datenblatt 74HC4046AD, Link im Anhang

                                     Institut für Breitbandkommunikation                                16
Diplomarbeit   Entwurf und Realisierung eines Single-Chip Broadcast Mischers

                Abb. 3: Signalflussplan der Audiosignale

Durch Einsparen der analogen PLL reduziert sich der Hardwareaufwand weiter.
Es konnten alle ursprünglich notwendigen 5V auf 3,3V Anpassungen zum FPGA
weggelassen werden. Auch die vorgesehene PLL wird nicht mehr benötigt. Der
im FPGA integrierte Schwinger ist nicht Teil der Synchronisations- PLL, da
dieser erst ab ca. 20 MHz verwendbar ist und die interne PLL keine Möglichkeit
bietet, einen analogen Filter zur Reduzierung tieffrequenten Jitters
einzuhängen. Die interne PLL wird aber verwendet, um die dreifache Frequenz
zum Abtasten des Eingangsstromes zu erzeugen. Der Systemclock aus dem
VCXO wird ebenfalls durch die chipinterne PLL geführt, um eventuell
auftretenden Phasenjitter zu beruhigen.

Die Testplatine wurde nun vorgestellt und die Entwicklung und ihre Auswirkung
auf den Prototypen gezeigt. Im folgenden Kapitel wird die Entwicklungs-
umgebung und der verwendete Baustein vorgestellt.

                            Institut für Breitbandkommunikation                17
Diplomarbeit   Entwurf und Realisierung eines Single-Chip Broadcast Mischers

3. FPGA und Entwicklungsumgebung

Im folgenden Kapitel werden die wichtigsten Werkzeuge und Eigenschaften des
Bausteins vorgestellt. Die verwendete Hardwarebeschreigungssprache wird
vorgestellt um den Source Code lesen zu können und um die Herangehens-
weise an die Problemlösung zu verstehen.

3.1. Der verwendete FPGA

Auf der Testplatine wird ein Baustein der Cyclone Familie der Firma Altera
verwendet. Die Cyclone Familie ist die erste Low-Cost Baureihe dieses
Unternehmens. Der Typ EP1C3T144-8 besitzt 144 Pins in einem TQFP
Gehäuse, davon 104 als I/O Pins entweder als Ein- oder Ausgang verwendbar.
Die übrigen 40 Pins sind für die Spannungsversorgung der I/O Pins (3,3V, 2,5V
oder 1,8V je nach gewähltem I/O Standard, hier 3,3V), der
Spannungsversorgung des FPGA Logikkerns (Corespannung) von 1,5V, den
Masseverbindungen und der Spannungsversorgung für die integrierte PLL
notwendig. Einige Ein- und Ausgänge können zusätzlich noch differentielle
LVDS Signale (Low Voltage Differential Signal) senden bzw. empfangen. Einige
Eingänge haben besondere Funktionen, wie zum Beispiel ein Takteingang mit
direkter Verbindungen zur internen PLL und/oder zu den internen
Clocknetzwerken (clk0 wird für den systemweit verwendeten Clock aus dem
VCXO verwendet).
Die I/O Pins können komfortabel im Pin Planner (Abb. 4) der Entwicklungs-
umgebung belegt werden.

                            Institut für Breitbandkommunikation                18
Diplomarbeit   Entwurf und Realisierung eines Single-Chip Broadcast Mischers

      Abb. 4: Pin Planner: Übersicht und Konfiguration der Ein- und Ausgangspins des
      Bausteins, Screenshot aus der Quartus II Entwicklungsumgebung, Altera Corp.

Dem Programmierer muss die genaue Struktur (siehe Abb. 5) des verwendeten
Bausteins nicht unbedingt geläufig sein. Die Entwicklungsumgebung analysiert
die beschriebene Hardware. Der geschriebene Code wird reduziert, vereinfacht
und optimiert auf entweder Platzbedarf oder Verarbeitungsgeschwindigkeit.
Danach versucht die Entwicklungsumgebung das Programm mit den Logischen
Elementen des jeweiligen Bausteins zu realisieren.

                            Institut für Breitbandkommunikation                        19
Diplomarbeit    Entwurf und Realisierung eines Single-Chip Broadcast Mischers

Abb. 5: Ein Logisches Element der Cyclone Familie [Cyclone Device Handbook, S. 2-5]

Die Speicherbits sind in kleinen Blöcken realisiert und vielfältig verwendbar.
Eine häufig verwendete Speicherart ist hier das Dual Port RAM, das zwei
unabhängige Ports zur Verfügung stellt und gleichzeitigen Zugriff von zwei
unterschiedlichen Domains erlaubt (siehe Kapitel 5.3. MIDI).
Ein wichtiger Punkt sind die schnellen Clocknetzwerke, die alle Logischen
Elemente des ganzen Chips physikalisch mit beliebigen Taktsignalen versorgen
(siehe Abb. 6). Diese sorgen für synchrones Schalten der Flip Flops am
gesamten Baustein.
Diese sind auch mit der integrierten PLL verbunden und über dezidierte
Eingängen von außen direkt erreichbar.

                             Institut für Breitbandkommunikation                      20
Diplomarbeit    Entwurf und Realisierung eines Single-Chip Broadcast Mischers

   Abb. 6: Clock Netzwerk Cyclone Familie und Verbindung mit der PLL (verwendeter
   Baustein besitzt nur PLL 1), [Cyclone Device Handbook, S. 2-30]

Ein FPGA benötigt noch ein externes Speicherelement, das seine Konfiguration
dauerhaft hält. Dieses ist hier in der einfachsten Lösung ein passender Altera
Baustein EPCS1, der als EEProm mit einem Programmer (hier mittels parallel
angebundenem ByteBlaster 2 der Firma Altera) vom Hostrechner über einen
JTAG Stecker von extern beschrieben und seriell über eine Startlogik vom
FPGA ausgelesen wird.
Diese Bootphase dauert ca. 20 ms. Mit komplexeren Konfigurationsbausteinen
oder über kleine Mikrocontroller lässt sich ein FPGA auch während des Betriebs
in kürzester Zeit umladen und kann komplett andere Funktionen übernehmen.
Meistens wird dies zum Updaten von Funktionen oder für Selbsttests, bzw.
Tests der Peripherie verwendet.

                             Institut für Breitbandkommunikation                    21
Diplomarbeit    Entwurf und Realisierung eines Single-Chip Broadcast Mischers

3.2. Die verwendete Entwicklungsumgebung

Ein FPGA ist ein programmierbarer Baustein. Das Programm, weiterhin die
Firmware oder das Design genannt, kann auf mehrere Arten erstellt werden.
Eine Methode ist klassisches digitales Schaltungsdesign mit bekannten
Logikbausteinen wie AND, NAND XOR usw., die grafisch zusammengesetzt
werden wie auf einem Experimentierboard. Diese Methode hat den Nachteil,
dass das Programm bei komplexen Designs unübersichtlich und sehr aufwändig
zu erstellen ist. Die wesentlich elegantere Methode besteht in der Verwendung
von Hardwarebeschreibungssprachen. Die bekanntesten Sprachen sind VHDL
und Verilog. Diese sind standardisiert und firmenübergreifend einsetzbar. Sie
wurden nicht nur für FPGAs entworfen, sondern dienen allgemein dazu, um
digitale Schaltungen zu beschreiben. VHDL ist sehr mächtig und komplex und
daher für nicht Geübte schwer verständlich. Altera bietet eine einfachere
Variante an, um die Bausteine der Firma zu beschreiben, genannt AHDL (Altera
Hardware Description Language). Diese Sprache ist einfacher zu schreiben, zu
lesen und auch in der Programmierung relativ zeitsparend. Diese Arbeit wurde
in AHDL geschrieben vorwiegend, um die Lesbarkeit einfach zu halten.

Abb. 7: Quartus Entwicklungsumgebung, Verschaltung einzelner Funktionsblöcke in der ersten
Ebene

                             Institut für Breitbandkommunikation                             22
Diplomarbeit    Entwurf und Realisierung eines Single-Chip Broadcast Mischers

Der Aufbau des Designs ist in Blöcken auf erster Ebene grafisch, der Inhalt der
Blöcke ist in AHDL als so genannte Subdesigns beschrieben. Die Ein- und
Ausgänge auf der ersten Ebene entsprechen den physikalischen I/O´s, die
Ports der Funktionsblöcke dienen zur Verbindung untereinander. Diese Blöcke
lassen sich, wenn sie sich als stabil erwiesen haben, als Bibliotheksbausteine
ablegen und in weiteren Designs verwenden. Sie werden, da sie jeweils eine
bestimmte Funktion erfüllen, weiterhin als Funktionsblöcke bezeichnet.
Das erste Blatt im Anhang Seite 75 zeigt die erste Ebene mit den
zusammengeschalteten Funktionsblöcken. Die Funktionsblöcke sind in den
anschließenden Kapiteln in ihrer Funktion näher erläutert.
Die wichtigsten Elemente eines Subdesigns soweit hier verwendet:

include Sektion:
        Einbindung von fertigen parametrierbaren Bausteinen zum
        Beispiel „lpm_shiftreg.inc“ ist ein Schieberegister von Altera
subdesign Sektion:
        Hier werden alle Ein- und Ausgänge des Blocks (sind keine
        physikalischen   I/O Pins) definiert. Diese sind im Funktionsblock
        sichtbar und können in     der ersten Ebene mit anderen Blöcken
        verbunden werden.
variable Sektion:
        Hier werden Variablen angelegt, hauptsächlich Flip Flops, Register,
        Rechenelemente wie Addierer oder Multiplizierer. Funktionen, die nicht
        Standard sind, müssen in der include Sektion inkludiert werden und
        können dann beliebig oft verwendet werden. Eine Sonderform sind
        Hilfsvariablen, so genannte NODES, sie dienen als Zwischenspeicher
        ähnlich Variablen in Programmiersprachen.
begin
        Ab hier wird die Hardware beschrieben. Nützlich ist am Anfang eine
        default Sektion, in der Zustände, die nicht explizit beschrieben sind auf
        Standardwerte gehalten werden. Hier werden Bauelemente beschalten,
        miteinander verbunden, Register verglichen, Zähler gebildet und so
        kombinatorische und sequentielle Logik aufgebaut. Zu beachten ist, dass
        hier kein zeitlicher Ablauf gegeben ist wie bei einer seriellen
        Programmiersprache. Die zeitlichen Zusammenhänge müssen selber
        aufgebaut werden. In den vorliegenden Designs sind hauptsächlich
        Ablaufzähler verwendet, auf deren Zählerstand abgefragt wird und
        Funktionen ausgelöst werden (zum Beispiel if (zähler[].q == 18) then...)
end;

                             Institut für Breitbandkommunikation                23
Diplomarbeit        Entwurf und Realisierung eines Single-Chip Broadcast Mischers

Die so programmierten Designs werden in einen Baustein kompiliert und
simuliert. Der Kompilationsvorgang überprüft das beschriebene Baustein-
verhalten, reduziert mehrfach vorhandene Elemente und passt sie dem
gewählten Baustein an.

Die Simulation ist ein wichtiger Bestandteil einer Hardwarebeschreibung. Der
Funktionsblock kann sowohl funktionell simuliert werden, als auch in seinem
zeitlichen Verhalten im Baustein, abhängig von Gatterlaufzeiten und seiner
jeweiligen vom Kompilat abhängigen geographischen Lage im Chip.

Die Firma Altera stellt dazu eine Entwicklungsumgebung namens Quartus II10
auch als freie Webedition zur Verfügung. Diese beinhaltet Projektmanagement,
vorgefertigte Bauteile, Grafik und Texteditoren zum Erstellen von Code, einen
Pin Planner, um die Zuordnung und Einstellung der I/O Pins des Bausteins zu
verwalten, und einen einfachen Simulator. Weitere Tools sind vorhanden, um
den Stromverbrauch des Bausteins im aktuellen Design abzuschätzen,
Taktfrequenzen und Laufzeiten innerhalb des Chips festzustellen und ein Tool
zum Schreiben und Überprüfen der Konfigurationsbausteine.

3.3. Der Test- und Messaufbau

Die Testplatine wird sowohl mit Ton- als auch mit Steuersignalen von einem
Hostrechner versorgt (siehe Abb. 8).

                                                ADAT Out                               ADAT In
                                                           Toslink optisch
                                                ADAT In                                ADAT Out

                                    Emu 1212m
                                                           MIDI elektrisch 2 polig
                                                MIDI Out                               MIDI In

                                                            Spannungsversorgung +5V und GND

                   Hostrechner PC

                  Abb. 8: Verbindungen zwischen Hostrechner und Testplatine

10 Quartus II ist auf http://www.altera.com/products/software/products/quartus2web/sof-quarwebmain.html erhältlich

                                       Institut für Breitbandkommunikation                                       24
Diplomarbeit       Entwurf und Realisierung eines Single-Chip Broadcast Mischers

Der Hostrechner ist ein normaler PC mit einer semiprofessionellen Soundkarte
des Typs Emu11 1212m. Diese steckt in einem PCI Slot und bietet vielfältige
Anschlussmöglichkeiten:

    ●   Analoger Stereo Ein- und Ausgang
    ●   ADAT® oder S/PDif Ein- und Ausgang umschaltbar
    ●   MIDI Ein- und Ausgang
    ●   ASIO: Streaming Ein- und Ausgänge für PC-interne Verarbeitung (zum
        Beispiel Mehrspuraufnahme und Wiedergabe)

Zusätzlich bietet die Karte ein integriertes Mischpult mit einer Misch- und einer
Monitorschiene und mehrere Insertpunkte in den Kanalzügen. Als Inserts
werden Pegelmesser, Asio Sends zum Aufzeichnen der von der Testplatine
bearbeiteten Eingangssignale und ein Testtongenerator zum Bespielen der
Testplatine verwendet.

               Abb. 9: Mischpult und Routingoberfäche der Emu 1212m Soundkarte,
               Screenshot

11 www.emu.com, Hersteller semiprofessioneller Audiohardware für PCs

                                  Institut für Breitbandkommunikation              25
Diplomarbeit       Entwurf und Realisierung eines Single-Chip Broadcast Mischers

Die Abb. 9 zeigt eine typische Messsituation. Im Fenster Output Assignment ist
die Beschaltung der physikalischen ADAT® Ausgänge mit dem Mix Bus zu
sehen. Auf diesen Bus spielt ein Testtongenerator im Insert des „Wave“
Eingangs.
Die Eingänge „PCI Card ADAT 1/2“ bis „PCI Card ADAT 7/8“ (Input 2-5) sind
mit den Summen 1-8 der Testplatine beschalten. Die Kanalregler der ADAT ®
Eingänge sind zugezogen, um eine Rückkopplung auf den Mischbus zu
vermeiden. In den Insertwegen ist der ankommende Pegel auf der
Aussteuerungsanzeige grob ablesbar. Darunter werden die Signale an ein
Mehrspuraufnahmeprogramm weitergeleitet, aufgenommen und optisch auf
Stabilität und Konsistenz überprüft. Mittels Aufnahmen werden Langzeit-
stabilitätstests durchgeführt. Aufnahmefehler sind durch Peaks oder
Unterbrechungen im Sinussignal einfach zu erkennen.

Die Testplatine wird mit einem PD12 (Pure Data, Anleitung siehe [PD]) Patch
gesteuert und getestet. Dieser generiert MIDI Befehle, um die Fader zu stellen.
Die Fader der Testplatine werden mit „0“ als Multiplikand initialisiert, das heißt,
sie sind gemutet und die Summen erhalten kein Signal. Es wird lediglich ein
Testpatch zur Verfügung gestellt, der alle Funktionen der Testplatine
einstellbar und somit testbar macht.

                       Abb. 10: PD Patch als Testoberfläche zur Einstellung
                       der Faderparameter

Der Patch bietet die Möglichkeit, mittels dem Slider rechts den Pegel
einzustellen, der erstens mit den Buttons 0 bis 7 dem jeweiligen Eingang und
zweitens mit der Channel Box des jeweiligen Summenausgangs definiert wird.

12 PD, Pure Data, datenstromorientierte Programmiersprache von Miller Pukette und Firma entwickelt bei IRCAM,
   www.puredata.org

                                  Institut für Breitbandkommunikation                                     26
Diplomarbeit   Entwurf und Realisierung eines Single-Chip Broadcast Mischers

Ein Fader ist mit zwei Parametern lokalisierbar: Fader (0/1) bedeutet
Eingangskanal 0 auf Summe 1, die am Ausgang 1 anliegt.
Der Block „noteout“ sendet am eingestellten MIDI Device des Rechners ein
„Note On“ Signal. Damit sind alle 64 Pegelsteller nach Summen getrennt
stellbar.

Eine ergonomische Benutzeroberfläche ist nicht Bestandteil dieser Arbeit. Sie
ist frei gestaltbar. Die Realisierung kann eine reine Softwarelösung, die ihre
Steuerinformation über die MIDI Schnittstelle sendet, sein. Weiters ist ein
Hardwarecontroller ebenfalls über die Steuerschnittstelle denkbar. Eine dritte
Möglichkeit besteht darin, direkt inkrementelle Drehgeber oder analoge Geber
über A/D Konverter an den FPGA anzubinden. Dazu sind noch genug Logische
Elemente (LE) und I/O Pins vorhanden.

Die Umgebung des Bausteins ist nun sowohl elektrisch (Kapitel 2) als auch
systematisch beschrieben. Im folgenden Kapitel wird eines der wichtigsten
Themen sowohl in der digitalen Audiotechnik, als auch im FPGA Design
beschrieben, die Synchronisation.

                            Institut für Breitbandkommunikation                27
Diplomarbeit   Entwurf und Realisierung eines Single-Chip Broadcast Mischers

4. Synchronisation und Systemclock

Im folgenden Kapitel wird eines der zeitaufwändigsten Themen dieser Arbeit
beschrieben. Die Synchronisation auf ein digitales Audiosignal oder einen
Wordclock steht hier im direkten Zusammenhang mit der internen Synchronität
der einzelnen Funktionsblöcke.

4.1. Allgemeines über Synchronisation in der Digitalen Audiotechnik

Ein wichtiges Thema in der digitalen Audiotechnik ist die Synchronität aller
Teilnehmer an einem Audionetzwerk. Ein Gutes Beispiel, ein Funkhaus, hat
viele Geräte verschiedenster Hersteller mit verschiedenen Formaten, welche
miteinander Audiosignale störungsfrei austauschen müssen. Dazu wird
meistens von einem Videosignal ein sogenanntes Wordclocksignal abgeleitet.
Das Wordclocksignal ist ein Rechtecksignal mit Tastverhältnis 50% und der
Frequenz fWClk=48 kHz und besitzt zu jedem Wort eines abgetasteten Audio-
signals eine steigende Flanke.
Dieses wird im Haus verteilt und gilt sowohl für die Frequenz-, als auch für die
Phasenbeziehung aller Teilnehmer zueinander.
Dieses Rechtecksignal, genannt Wordclock (1 Word = 1 Audiosample), wird
meist sternförmig von einem Clock- Master als möglichst jitterfreie Quelle
verteilt.
Bei kleineren Anwendungen ist es auch möglich, den Takt aus dem digitalen
Audiosignal selber abzuleiten. Vermieden werden sollte eine serielle
Clockverteilung über mehrere Geräte, da diese den Takt mit Jitter versehen
und dieser von jedem Gerät verstärkt wird. Ein schlechter Fall ist etwa, wenn
ein Analog- Digital Konverter mit einem stark jitterbehafteten Clock versorgt
wird. Dies führt zu verschiedenen Zeitabständen bei der Abtastung und somit
zu Störsignalen bei der Wiederherstellung des Audiosignals.
Rein digitale Geräte müssen nur dafür sorgen, dass jedes Audiowort fehlerfrei
empfangen und ebenso wieder gesendet wird.
Langsamer Jitter kann durch Nachführen der Systemtaktfrequenz oder durch
FIFO Puffer (First-In First-Out) ausgeglichen werden, hochfrequenter Jitter darf
nicht dazu führen, dass es zur Verletzung von Datenlaufzeiten in den
Bausteinen kommt. Die Abb. 11 zeigt den erlaubten Jitter über die Frequenz,
die ein AES-3 Empfänger tolerieren muss. Bis 200 Hz darf der Jitter deutlich
höher sein und kann durch etwa eine langsame PLL ausgeglichen werden.

                            Institut für Breitbandkommunikation                28
Diplomarbeit    Entwurf und Realisierung eines Single-Chip Broadcast Mischers

     Abb. 11: Maximaler Jitter, den ein AES-3 Empfänger ausgleichen können muss, [AES-3,
     S.22]

4.2. Synchronisation über PLL und VCXO

Die gesamte Signalverarbeitung im Chip wird über einen 48kHz Wordclock
synchronisiert. Das Wordclock Signal kann entweder an einem I/O Pin
physikalisch anliegen, oder aus dem ADAT® Eingangssignal gewonnen werden.

Das ADAT® Format erlaubt zwei verschiedene Synchronisationsmethoden.

Es ist einerseits möglich aus den einzelnen Synchronisationsbits (jedes fünfte
Bit nach 4 Bit Daten, siehe Kapitel 5.1) ein Vergleichssignal abzuleiten.
Dies entspricht einem durch die Codeverletzung am Blockstart lückenden
              12.288MHz
  f ADATsync=           Signal und es müssten zwei verschiedene Mechanismen
                   5
für die Synchronisation via ADAT® Clock und Wordclock realisiert werden. Dies
würde zusätzlichen Hardwareaufwand mit ungeraden Teilern bedeuten.
Die zweite und hier realisierte Variante benutzt das Blockstart Symbol, um
daraus ein Vergleichssignal für eine PLL mit hoch genauem verstellbarem
Quarz, einem VCXO zu erzeugen.
An dieser PLL kann das Vergleichssignal, also ein externes Wordclocksignal, ein
48kHz Signal aus dem ADAT® Strom oder wenn die Platine Clockmaster ist, das
Signal selber sein.

                             Institut für Breitbandkommunikation                           29
Diplomarbeit         Entwurf und Realisierung eines Single-Chip Broadcast Mischers

An einem speziellen I/O Pin, einem Clockeingang (clk0 PIN 16), ist der
Ausgang des VCXOs angeschlossen (clk).
Die Mittenfrequenz f VCXO beträgt die 512-fache Frequenz des Wordclocks
  f Wclk , f VCXO= f Wclk ∗512=48kHz∗512=24,576 MHz .

                         Abb. 12: Altera PLL Baustein beschreibt OnChip
                         Hardware PLL

Das Taktsignal wird durch die interne PLL des Bausteins geführt, um eventuell
ausbleibende Flanken aufgrund elektrischer Störungen oder Jitter durch
unsaubere Flanken aufzufüllen, und ergibt den Systemclock iclk. Mit dieser
Frequenz werden alle Funktionsblöcke und Register chipintern getaktet.
Ausbleibende 24,576 MHz Pulse würden die Ablaufzähler, deren Clock ebenfalls
iclk ist, stören und zu einem kompletten Ausfall eines Audioframes und
schlimmstenfalls zum Verlust der Synchronität führen.

Es wird von den 24,576 MHz ein Dreifaches der ADAT® Trägerfrequenz
(fADAT=12,288 MHz) über den Teiler 3/2 abgeleitet und als Dclk zum Abtasten
des ADAT® Einganssignales zur Verfügung gestellt.

             f ADAT ∗3
  f Dclk =
                 2

Die Steuerspannung des VCXOs wird durch einen Phasenkomparator (siehe
Abb. 13) erzeugt.
Die Erstimplementierung verwendete einen bewährten analogen PLL Baustein
des Typs 74HC4046AD. Entgegen den Angaben im Datenblatt zeigte der
Baustein bei Verwendung des      Phasenkomparators vom Typ PC213 bei
Versorgungspannungen mit 3,3V Instabilitäten.

13 Siehe Datenblatt 74HC4046AD, Verweis im Anhang

                                  Institut für Breitbandkommunikation                30
Diplomarbeit   Entwurf und Realisierung eines Single-Chip Broadcast Mischers

Deshalb ist der Phasenkomparator in der Implementierung in den FPGA als
Funktionsblock integriert worden. Dieses Design des Funktionsblockes PLL_2
ist allgemein gehalten und steht als Bibliotheksbaustein weiter zur Verfügung.

                          Abb. 13: Funktionsblock PLL,
                          Phasenkomparator aus einer PLL

                    Abb. 14: Schaltungsvorlage des Phasenkomparators
                    [Tietze/Schenk, S. 1161]

Dieser Phasenkomparator besteht aus zwei flankengetriggerten D-Flip Flops,
die sich gegenseitig über den Reset Eingang zurücksetzen. Das Vorzeichen des
Ausgangssignals der Schaltung gibt an, welche der beiden anliegenden
Frequenzen höher ist. Der Detektor benötigt kein exaktes Tastverhältnis der zu
vergleichenden Frequenzen, da die Signale an den Clock Eingängen der Flip
Flops angeschlossen sind. Der analoge Summierer in obiger Schaltung wird
durch einen digitalen Addierer mit einem Tri-State Ausgang, der extern
hochohmig auf VCC/2 über einen Spannungsteiler gehalten wird, ersetzt.
Bei Frequenzgleichheit ist der Ausgang des FPGAs hochohmig und wird durch
den Spannungsteiler auf VCC/2 gehalten. Bei Frequenzungleichheit schaltet der
Ausgang entweder gegen Masse oder VCCIO (3,3V). Dieses Signal liegt über
einen I/O Pin des FPGAs am Spannungseingang des VCXO´s an und regelt die
Frequenz dieses Quarzes innerhalb seines Ziehbereiches. So ist die Schaltung
auch auf den Spannungbereich des VCXO´s angepasst. Dieser beträgt 0 bis
VCCIO = 3,3V.

Ein weiterer Grund für die Wahl dieses Phasenkomparators ist der theoretisch
unendlich große Fangbereich durch die immer vorzeichenrichtige Messung, da
die Genauigkeit des Zuspielers nicht bekannt ist.

                            Institut für Breitbandkommunikation                31
Sie können auch lesen