Entwurf und Realisierung eines Single-Chip Broadcast Mischers auf einem FPGA
←
→
Transkription von Seiteninhalten
Wenn Ihr Browser die Seite nicht korrekt rendert, bitte, lesen Sie den Inhalt der Seite unten
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
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
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
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
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
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
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
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
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
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