Entwicklung eines MMI und Host-PC-Interface



Ähnliche Dokumente
CU-R-CONTROL. Beschreibung zur Schaltung ATMega16-32+ISP MC-Controller Steuerung auf Basis ATMEL Mega16/32. Autor: Christian Ulrich

Quanton Manual (de) Datum: URL: )

Bedienungsanleitung Version 1.0

AVR Experimentierboard

PicKit 3. Programmierung mit dem USB-Programmer PICkit3 (Microchip) AB

Microcontroller Kurs Microcontroller Kurs/Johannes Fuchs 1

tensiolink USB Konverter INFIELD 7

Pflichtenheft. Projektteam. Rexford Osei - Frey Michael Weichert Thomas Thutewohl. Pflichtenheft Seite 1 von 7

Ablaufsteuerung Sequenzer, als Schaltstufen für den Amateurfunk.

BitRecords FPGA Modul XC6SLX25_V2.0, Mai2013 1

Simulation LIF5000. Abbildung 1

10. Elektrische Logiksysteme mit

Kommunikation mehrerer PCs über Hubs

trivum Multiroom System Konfigurations- Anleitung Erstellen eines RS232 Protokolls am Bespiel eines Marantz SR7005

M a i l C r e d i t. \\Burt\user\Soutschek\FP\Technik\Frankiermaschinen\00_PC Software\MailCredit\Anleitung MailCredit Installation.

Elektrische Logigsystem mit Rückführung

Local Control Network

AVT Spartan-3E Development Kit AVT DK S3E-500 (V1.0)

easyident Türöffner easyident Türöffner Art. Nr. FS-0007 FS Fertigungsservice

Aufbau und Bestückung der UHU-Servocontrollerplatine

Vierfach-Bluetooth Relais PL0051

ATMega2560Controllerboard

Spannungsversorgung für Mikrocontroller-Schaltungen DH1AAD, Ingo Gerlach, , Ingo.Gerlach@onlinehome.de

Auto-Provisionierung tiptel 30x0 mit Yeastar MyPBX

Local Control Network Technische Dokumentation

serielle Schnittstelle/USB-Schnittstelle für das Velbus-System

Kurzanleitung. Kurzanleitung. Version.

Einfache Computersteuerung für Modellbahnen

Einführung in die Welt der Microcontroller

Handbuch B4000+ Preset Manager

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

EasyWk DAS Schwimmwettkampfprogramm

HYPERCOM MEDHYBRID EINRICHTUNG UNTER DAMPSOFT

Mikrocontroller Grundlagen. Markus Koch April 2011

Baubericht für den AX81-GKR Einleitung

INES-Webserver. Damit gehen Ihre Geräte und Anlagen online. 1 Inhalt

Projekt 3kW 50V Netzteil

Serielladapter SerCon V1.1

Anleitung zum Erstellen einer Library (Altium)

Konfiguration VLAN's. Konfiguration VLAN's IACBOX.COM. Version Deutsch

Digital Web-Monitoring Digitales Web-Monitoring

1 Registrieren Sie sich als Benutzer auf dem Televes. 2 Sobald ein Konto erstellt ist, können Sie auf das Portal

Verbindung zwischen PC und Mikrokontroler Blue-Tooth-Modul Schaltung Parametrierung kein zusätzliches LF

TBE332 Controller. Produktbeschreibung

Sensor board EB

Touchsteuerung 335 und 335/1

Schnittstellen des Computers

Bedienungs- & Installationsanleitung COMMPACT / COMMPACT Audio V2.0

Dokumentation IBIS Monitor

Pos. Bestandteile Stck Bestellbezeichnung Groundplane (Aussparung 100 x 100 mm) 1 GND 25

ICCS SSP 10. Merkmale. Anwendungsbeispiele

Datenblatt GIOD.1 Ein-Ausgabe Modul mit CAN-Bus. ERP-Nr.: Datenblatt GIOD.1 V_3.0

Digital Web-Monitoring Digitales Web-Monitoring

Umwandelung einer Physikalischen Größe in eine Elektrische

Praktikum Mikrocomputertechnik

USB-Driver: Download-Link:

Easy-Monitoring Universelle Sensor Kommunikations und Monitoring Plattform

s.beat DAP-10X White Paper USB Stromversorgung am Apple Macintosh und deren Auswirkung

Inhaltsverzeichnis. Getting Started with TRM416/816 System Beispiel: TRM816 Open Frame mit RFID an COM2

Anleitung TempCW 2011

Tapps mit XP-Mode unter Windows 7 64 bit (V2.0)

Stepperfocuser 2.0 mit Bootloader

Windkraft-Ersatzlastregler bzw. Heizungsversion

DF PROFI II PC/104-Plus

Versuch 3. Frequenzgang eines Verstärkers

Mediumwechsel - VR-NetWorld Software

LabView7Express Gerätesteuerung über LAN in einer Client-Serverkonfiguration. 1. Steuerung eines VI über LAN

A.u.S. Spielgeräte GmbH A-1210 Wien Scheydgasse 48 Tel.+43-(0) Fax. +43-(0)

NuVinci Harmony Software und Firmware. Anleitung in deutscher Sprache

Mediumwechsel - VR-NetWorld Software

Datensicherung. Beschreibung der Datensicherung

Wir wünschen Ihnen viel Freude und Erfolg mit Ihrem neuen X-PRO-USB-Interface. Ihr Hacker-Team

T est of 1GBit/s Fiber optical communication interfaces based on FlexRIO R Series

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Swisscom TV Medien Assistent

32-Bit Microcontroller based, passive and intelligent UHF RFID Gen2 Tag. Zürcher Fachhochschule

Projekt 2HEA 2005/06 Formelzettel Elektrotechnik

Bedienungsanleitung TIME IT. a Look Solutions 1 product

IOBoard. Bedienungsanleitung. Version 1.2. November IOBoard-Bedienungsanleitung Neobotix GmbH alle Rechte vorbehalten 1 von 11

Nutzung von GiS BasePac 8 im Netzwerk

Elexis - Afinion AS100 Connector

Benutzerhinweise: IGW/920-SK/92 COM Port Redirector

COM-1 Anleitung zur Installation und Inbetriebnahme

9 Multiplexer und Code-Umsetzer

Urlaubsregel in David

Grundlagen der Technischen Informatik. Sequenzielle Netzwerke. Institut für Kommunikationsnetze und Rechnersysteme. Paul J. Kühn, Matthias Meyer

Synchronisierung. Kommunikationstechnik, SS 08, Prof. Dr. Stefan Brunthaler 73

Bojendaten Übertragung mit UMTS

LED DMX Modul MIDI / MAXI. Produktblatt Bestellnummer: /

Hier ist die Anleitung zum Flashen des MTK GPS auf der APM 2.0. Prinzipiell funktioniert es auch auf der APM 2.5 und APM 1.

WLAN Konfiguration. Michael Bukreus Seite 1

Wie in der Skizze zu sehen ist, bleibt die Periodendauer / Frequenz konstant und nur die Pulsweite ändert sich.

Network Controller TCP/IP

Facharbeit Informatik. Thema:

Agentur für Werbung & Internet. Schritt für Schritt: Newsletter mit WebEdition versenden

2-Draht Netzwerkübertrager-Set mit POE

XY-Plotter. Hardware. Software µp. Software PC. von Thomas Wagner

Professionelle Seminare im Bereich MS-Office

Transkript:

Entwicklung eines MMI und Host-PC-Interface für einen HF/ZF-Transceiver Diplomarbeit von Martin Schönfeld an der Fachhochschule Konstanz, Fachbereich Nachrichten- und Informationstechnik Betreuung: Herr Prof. Dr. R. Reiß.

2 Inhalt 1 Inhalt 1.1 Kapitelübersicht 1 INHALT... 2 1.1 Kapitelübersicht... 2 1.2 Verzeichnis der Abbildungen... 5 1.3 Verzeichnis der Tabellen... 6 2 EINLEITUNG... 7 2.1 Gesamtkonzept... 7 2.2 Aufgabenstellung... 8 2.2.1 Funktionsanforderungen...8 2.2.1.1 Spannungsversorgung...8 2.2.1.2 Mikrokontroller als zentrale Steuereinheit...8 2.2.1.3 DMA-Kontroller für Baseband-Audio...8 2.2.1.4 Vorgaben für die Leiterplatte...8 2.2.2 Schnittstellendefinitionen...9 2.2.2.1 Host-PC-Schnittstellen...9 2.2.2.2 Man Maschine Interface...9 2.2.2.3 Andere Schnittstellen...10 2.3 Vorgehensweise und Durchführung... 10 2.3.1 Arbeitsablauf und Zeitplan...10 2.3.2 Schaltungsentwicklung...12 2.3.3 Platinenentwurf / Layout...13 2.3.4 Firmware- / Softwareentwicklung...14 2.3.4.1 Mikrokontroller-Firmware...14 2.3.4.2 FPGA-Firmware...15 2.3.5 Hardwareaufbau und -test...15 2.3.6 Dokumentation...17 3 HARDWARE... 18 3.1 Hardwareumgebung und Hardwarekonzept... 18

Kapitelübersicht 3 3.2 Schaltungsbeschreibung... 18 3.2.1 Spannungsversorgung...19 3.2.2 Taktversorgung des Moduls...20 3.2.3 Beschaltung des Mikrokontrollers...22 3.2.3.1 Grundbeschaltung...22 3.2.3.2 Serielle Schnittstellen...22 3.2.3.3 In-System-Programmierung...23 3.2.3.4 Quadratur Decoder...24 3.2.3.5 Netzwerk-Kontroller...24 3.2.4 Beschaltung des FPGA...24 3.2.5 Beschaltung des Display-Kontrollers...25 3.3 Platinen-Layout... 26 3.3.1 Revision A...27 3.3.2 Revision B...29 3.4 Hardware-Aufbau und -Test... 30 3.4.1 Widerstände, Kondensatoren und Induktivitäten...30 3.4.2 Spannungsregler...31 3.4.3 Reset-Schaltung und Serielle Schnittstelle A...31 3.4.4 Oszillatoren...31 3.4.5 Mikrokontroller, SRAM und Flash...31 3.4.6 Quadraturdecoder / Inkrementale Drehgeber...32 3.4.7 Ethernet-Controller...32 3.4.8 USB-Kontroller...32 3.4.9 SPDIF...32 3.4.10 FPGA, Flash und JTAG-Programmierport...33 3.4.11 SRAM, Display-Kontroller, Erzeugung der Display- Kontrastspannung...33 4 SOFTWARE... 34 4.1 Mikrokontroller-Firmware... 34 4.1.1 Hauptprogramm...34 4.1.2 Taktversorgung...35 4.1.3 Serielle Schnittstellen...35 4.1.4 Ethernet-Schnittstelle...35 4.1.4.1 NetBIOS...36 Entwicklung eines MMI und Host-PC-Interface

4 Inhalt 4.1.4.2 Telnet...36 4.1.5 Command Parser...36 4.1.6 Slaveport...37 4.1.7 Quadratur-Decoder...37 4.1.8 Display-Kontrastspannung...38 4.2 FPGA-Firmware... 38 4.2.1 Masterport...38 4.2.1.1 Timing-Generator...38 4.2.1.2 Control-Logic...39 4.2.2 Kommando-Bus...39 4.2.2.1 Kommando-Struktur...39 4.2.2.2 FPGA-interne Geräte (Destination Devices) und deren Register...40 4.2.2.3 Bus-Arbitrierung...41 4.2.2.4 Datenübertragung...42 4.2.3 SRAM-/Display-Controller-Port...42 4.2.3.1 Timing-Generator...42 4.2.3.2 Control-Logic...43 4.2.4 FPGA-Testsoftware...43 4.3 Windows-Software... 43 5 MÖGLICHKEITEN DER WEITERENTWICKLUNG... 44 6 LITERATURVERZEICHNIS... 45 7 SOFTWARE-QUELLCODE... 47 7.1 Mikrokontroller-Firmware... 47 7.1.1 Hauptprogramm...47 7.1.2 Taktgenerator-Treiber...50 7.1.3 Slave-Port-Treiber...51 7.1.4 Echtzeit-Uhr-Funktionsbibliothek...54 7.1.5 Treiber für die serielle Schnittstelle A...56 7.1.6 Netzwerk-Treiber...58 7.1.6.1 Telnet-Funktionsbibliothek...60 7.1.6.2 NetBIOS-Funktionsbibliothek...63 7.1.6.3 Netzwerk-Konfiguration...66 7.1.7 Kommando-Parser...68

Verzeichnis der Abbildungen 5 7.1.8 Treiber für den LCD-Kontrastspannungs-DAC...71 7.2 FPGA-Firmware... 73 7.2.1 Haupt-Entity der FPGA-Testsoftware...73 7.2.2 Digital Clock Managers...77 7.2.3 Display/SRAM-Port Control Logic...80 7.2.4 Display/SRAM-Port Timing Generator...85 7.2.5 Masterport Control Logic...89 7.2.6 Masterport Timing Generator...93 8 DIAGRAMME UND SCHEMATA... 95 1.2 Verzeichnis der Abbildungen Abbildung 1 Abbildung 2 Herstellungsfehler auf der Leiterplatte: verschobene innere Massefläche...14 Bottomlayer der fertig bestückten Platine...16 Abbildung 3 Toplayer der fertig bestückten Platine...16 Abbildung 4 Zentrale ICs der Schaltung auf der fertigen Platine...19 Abbildung 5 Konfiguration des Taktgenerator-PLL-ICs CY22393...21 Abbildung 6 Abbildung 7 Abbildung 8 Abbildung 9 Abbildung 10 Abbildung 11 Schema der Zusatzplatine zur Unterbringung aller Stecker bei 19 -Rack-Einbau...27 Revision A - Top Layer der Command Unit...27 Revision A - Bottom Layer der Command Unit...28 Revision A - Ground- und Split-Power-Plane der Command Unit...28 Revision B - Layout des Command Unit Connector Boards28 Revision B - Top Layer der Command Unit...29 Abbildung 12 Revision B - Bottom Layer der Command Unit...29 Abbildung 13 Abbildung 14 Revision B - Ground- und Split-Power-Plane der Command Unit...30 Revision C - Layout des Command Unit Connector Boards30 Abbildung 15 Gegenseitige Abhängigkeiten der Mikrokontroller- Software-Module...34 Abbildung 16 Hardwareumgebung der Command Unit, Gesamtkonzept 95 Abbildung 17 Schema der "Command Unit" mit MMI und Host PC Interface Rev. B...96 Entwicklung eines MMI und Host-PC-Interface

6 Inhalt Abbildung 18 Abbildung 19 FPGA-Test-Firmware - Datenflussdiagramm...97 FPGA-Firmware - Datenflussdiagramm...98 1.3 Verzeichnis der Tabellen Tabelle 1 Arbeitsplan: Aufgaben (Tasks) mit Zeitplan...12 Tabelle 2 Strombedarf des Moduls bei den vier internen Spannungen19 Tabelle 3 Erforderliche Taktfrequenzen und deren Einsatzort...20 Tabelle 4 SRAM- und Flash-Konfiguration...32 Tabelle 5 FPGA-interne Kommando-Struktur auf dem Kommando- Bus...39 Tabelle 6 FPGA-interne Geräte und deren Geräte-Nummern...40 Tabelle 7 Geräteinterne Register und deren Bedeutung/Funktion...41

Gesamtkonzept 7 2 Einleitung Dieses Kapitel gibt einen Überblick über die Thematik des Projekts und die genaue Aufgabenstellung dieser Arbeit. Im letzten Abschnitt wird die Vorgehensweise und die Durchführung der Arbeit näher erläutert. 2.1 Gesamtkonzept Das Projekt beinhaltet die Entwicklung eines modularen Sende-Empfängers (Transceivers, kurz TRX) bestehend aus Hard- und Software. Der Transceiver stellt eine Experimental-Plattform dar, mit der nicht nur die üblichen Funktionen eines Sende-Empfängers genutzt werden können. Es bestehen vielfältige Experimentier- und Entwicklungsmöglichkeiten in den Bereichen der digitalen Signalverarbeitung, der Softwareentwicklung für Mikrokontroller und Personal Computer (Treiber für Remote Control u.ä.) sowie der Übertragungstechnik. Der TRX besteht aus möglichst vielseitig nutzbaren Modulen, sodass er modulweise der technischen Entwicklung angepasst werden kann: Ein Empfängermodul arbeitet nach dem Prinzip des Software Radio bzw. genauer Software Defined Radio, d.h. alle Empfangsparameter (Filterung, Demodulation,...) werden durch Software festgelegt. Dazu wird das hochfrequente Original- bzw. Zwischenfrequenzsignal mit einem schnellen Analog/Digital-Wandler (ADC) digitalisiert. Ein sogenannter Receive Signal Processor (RSP) implementiert alle Funktionen eines Direktmischempfängers auf digitaler Ebene. Er mischt mehrere Kanäle aus dem breitbandigen Quellsignal in das Basisband und sorgt für die Dezimierung und Filterung. Für die Signal-Konditionierung (Pegelanpassung und Vorfilterung) vor dem Empfängermodul sorgen analoge Front-Ends, die zur Erweiterung des Eingangsfrequenzbereichs auch analoge Mischstufen beinhalten können. Das Sendemodul setzt das (die) Basisband-Sendesignal(e) in der digitalen Ebene auf eine höhere Frequenz um, wandelt das Summensignal in ein analoges Signal (DAC) und verstärkt es soweit, dass eine Endstufe oder ein Sendemischer nachgeschaltet werden kann. Endstufen- und Transverter-Module verstärken die Sendesignale und mischen sie ggf. zur Erweiterung des Ausgangsfrequenzbereichs. Entwicklung eines MMI und Host-PC-Interface

8 Einleitung Ein DSP-Modul übernimmt die weitere Verarbeitung der Basisbanddaten, wie Filterung, Demodulation usw. Die gesamte Steuerung des TRX sowie die Weiterleitung der Basisbanddaten an die verarbeitenden Module übernimmt die sogenannte Command Unit, welche im Rahmen dieser Arbeit entwickelt wurde. Sie beinhaltet die logischen Blöcke MMI (Man Maschine Interface, d.h. die Schnittstelle von Mensch zur Maschine) und Host PC Interface, welches verschiedenste Standardschnittstellen zu einem Personal Computer zur Verfügung stellt (siehe Abschnitt 2.2.2). Ein Frontpanel umfasst alle Bedienelemente für den Standalone- Betrieb des TRX. Dazu gehören insbesondere ein Display, Drehgeber und eine Tastatur. Insbesondere die Command Unit ist ein vielseitig einsetzbares Modul, dessen Einsatz keinesfalls auf dieses Projekt beschränkt ist. 2.2 Aufgabenstellung Im Rahmen dieser Arbeit wurde das in Abschnitt 2.1 erwähnte Modul Command Unit entwickelt. Die genauen Anforderungen an die Funktion und die Schnittstellen (Pflichtenheft) sind in den folgenden Unterabschnitten definiert. 2.2.1 Funktionsanforderungen 2.2.1.1 Spannungsversorgung Alle modulinternen Spannungen sollen von einer einzigen positiven Versorgungsspannung im Bereich zwischen 7V und 15V abgeleitet werden. 2.2.1.2 Mikrokontroller als zentrale Steuereinheit Die zentrale Steuerung des gesamten MMI und Host PC Interfaces übernimmt ein In-System-Programmierbarer (ISP) Mikrokontroller. Er übernimmt insbesondere auch die Ansteuerung der MMI-Elemente wie Display und Tastatur bzw. Drehgeber, bereitet die Parameter der Empfänger- und Sendemodule grafisch auf und steuert diese Module. 2.2.1.3 DMA-Kontroller für Baseband-Audio Die Basisband-Signale sollen über einen eigenen DMA-Kontroller an die entsprechenden Schnittstellen weitergeleitet werden. Durch den Einsatz eines DMA-Kontrollers wird der Mikrokontroller nicht unnötig belastet und kann jederzeit auf Benutzereingaben reagieren. 2.2.1.4 Vorgaben für die Leiterplatte Die gesamte Schaltung soll auf einer Europakarte (Leiterplatte mit den Abmessungen 160 100mm) untergebracht werden. Alle Steckverbinder für den Anschluss von Projekt-externen Geräten (z.b. Host-PC) müssen an einer kurzen Seite des PCB (Printed Circuit Board) untergeracht werden, sodass die Platine zusammen mit anderen Modulen des Gesamt-Projekts in einem 19 -

Aufgabenstellung 9 Einschub-Gehäuse untergebracht werden kann. An den langen Seiten des PCB müssen für die entsprechenden Führungsschienen mindestens 2mm unbenutzte Leiterplatte vorhanden sein. Ferner dürfen keine Steckverbinder in Richtung der langen Platinen-Seiten ausgerichtet sein. 2.2.2 Schnittstellendefinitionen 2.2.2.1 Host-PC-Schnittstellen Folgende Standard-Schnittstellen zum Anschluss eines Host-PCs sollen zur Verfügung stehen: Serielle Schnittstelle RS232C mit den üblichen Baudraten bis mindestens 115.2 kbd. Serielle Schnittstelle nach IrDA-Standard 1.2 ( bis 115.2 kbd), wobei der Optische IrDA-Transceiver nicht auf der Command-Unit sondern auf dem Front-Panel sitzt. Ethernet-Schnittstelle nach IEEE 802.3 100BaseTX und 10BaseT USB 1.1 und/oder USB 2.0 Fullspeed-Schnittstelle (12MBit/s) mit Connector Typ B für Hot-Plugging Digital Audio-Schnittstellen (Ein- und Ausgänge) nach IEC958 (auch bekannt als S/PDIF), optisch mit TOSLINK-Anschluss und elektrisch mit RCA-Steckverbinder (Chinch-Buchse). 2.2.2.2 Man Maschine Interface Das Man Maschine Interface (MMI) sorgt für die Kommunikation zwischen Mensch und Maschine, indem es Schnittstellen für Ein- und Ausgabegeräte zur Verfügung stellt. Folgende Schnittstellen sollen hierfür zur Verfügung stehen: PS/2-Tastatur-Schnittstelle zum Anschluss einer handelsüblichen PC-Tastatur LC-Display-Schnittstelle (schwarz/weiss, Graustufen, Farbe), für passive und aktive Displays S-Video- und Composite-Video-Ausgang (4Pol Mini-DIN und RCA) zur Ansteuerung eines Fernseh-Gerätes Analoger Monitor-Anschluss (15Pol High Density D-SUB) zur Ansteuerung eines Farb-PC-Monitors mit einer Auflösung von mindestens 800x600 Pixel (SVGA) mit 16 oder mehr Farben Zwei Anschlüsse für Inkremental-Drehgeber mit jeweils zwei um 90 versetzten Puls-Ausgängen mit wahlweise TTL- oder LVCMOS-Pegel (+5V oder +3.3V für HIGH-Pegel, 0V für LOW- Pegel) Zwei Taster zum Zurücksetzen des Mikrokontrollers in den Normalmodus bzw. in den Programmiermodus zur In-System- Programmierung (ISP) Entwicklung eines MMI und Host-PC-Interface

10 Einleitung 2.2.2.3 Andere Schnittstellen Zur Steuerung von anderen Modulen des Zielsystems sollen außerdem folgende Signale und Schnittstellen über geeignete Pin-Header verfügbar gemacht werden: Spannungsversorgung über einen 2-Pin-Header 8Bit-Address/Daten-Bus zum Anschluss der Empfänger- und Sender-Module und möglicher weiterer Module Eingang für den synchronen Systemtakt der Sende- und Empfangsmodule (SMB-Verbinder, männlich) Linkport zum Anschluss eines DSP-Moduls, kompatibel zum Linkport des SHARC Fliesskomma-DSPs ADSP21160M der Firma Analog Devices Inc. (siehe [1]). IIC-Schnittstelle (siehe [2]) zur Steuerung verschiedenster Module, z.b. Vorselektion und Vorverstärker SPI-Schnittstelle mit Chip-Select-Signalen zur schnellen Ansteuerung anderer Module und Bausteine (z.b. EEPROM) Reset-Eingang zum Zurücksetzen des Mikrokontrollers im Normalund Programmiermodus mit Hilfe von Open-Drain-Active-Low- Treibern. Ggf. unbenutzte serielle Schnittstellen des Mikrokontrollers JTAG-Port zur In-System-Programmierung des FPGA- Configuration-PROM und zum Debuggen der FPGA-Firmware (DMA-Kontroller) 2.3 Vorgehensweise und Durchführung In den folgenden Abschnitten werden die Systematik des Arbeitsablaufs sowie die bei der Durchführung der einzelnen Schritte aufgetretenen Probleme und deren Lösungen aufgezeigt. 2.3.1 Arbeitsablauf und Zeitplan Die meisten Schritte bei der Durchführung dieser Arbeit waren vom Abschluss anderer Schritte abhängig, sodass die Reihenfolge der Schritte gegeben ist. Um die Arbeit möglichst zielgerichtet durchführen zu können wurde der folgende Arbeitsplan erstellt: Task-Name Project Plan Hardware Concept Hardware Preparations Setup Hardware Development Environment Dauer 2 Tage 5 Tage 5 Std.

Vorgehensweise und Durchführung 11 Hardware Development Schematic Entry MCU incl. SRAM, Flash and POR/Backup ISP-Circuitry and RS232-Interface Ethernet-Controller Incremental Encoders and Serial Ports FPGA Spartan 3 FPGA Configuration Memory with JTAG TAP Display Controller DSP Link Port USB Controller incl. EEPROM Generic AD-Port for RX/TX modules Keyboard PS/2 Port SPDIF Output SPDIF Input FPGA FIFO and Userdata SRAM Clocking Circuit Power Supply Nonvolatile Memory for the Rabbit3000 MCU Schematic Review Visible Errors Check Logic Check Electrical Roule Check (ERC) Schematic Documentation Layout PCB Specify Footprints in Schematic Generate Netlist Place Components Layout Power Supply Layout USB Circuitry Layout Ethernet-Controller Layout Display-Controller Layout MCU Layout Connectors attached to FPGA Layout Component-Group connections Layout Review Layout Documentation PCB assembly Hardware Testing Hardware Testing Documention Administration Bill of Materials BOM Order or Request BOM Components Manufacture PCB Sofware Concept 3 Tage 1 Tag 12 Std. 4 Std. 3 Tage 3 Std. 12 Std. 1 Std. 4 Std. 1 Std. 30 mins 5 Std. 5 Std. 6 Std. 1 Tag 1 Tag 2 Tage 6 Std. 1 Tag 1 Tag 4 Tage 2 Tage 5 Std. 3 Tage 1 Tag 6 Std. 2 Tage 2 Tage 1 Tag 1 Tag 3 Tage 2 Tage 3 Tage 5 Tage 5 Tage 3 Tage 1 Tag 10,45 Tage 15 Tage 5 Tage Entwicklung eines MMI und Host-PC-Interface

12 Einleitung Software Preperations Setup Software Development Environment Software Development Firmware Development MCU Firmware Test MCU In System Programmability Get MCU OS running PLL-Circuitry driver Serial Port A driver Command Parser module Real Time Clock function library LCD Contrast DAC funtion library Ethernet driver with configuration file NetBIOS driver Telnet driver Slave port driver Firmware debugging Firmware Documentation FPGA Firmware main entity with pin association Master Port logic Display/SRAM Logic FPGA Firmware debugging Firmware Documentation Write/Finish Documentation Tabelle 1 Arbeitsplan: Aufgaben (Tasks) mit Zeitplan 1 Tag 5 Std. 3 Std. 4 Std. 1 Tag 2 Tage 4 Std. 2 Std. 1 Tag 2 Tage 2 Tage 3 Tage 7 Tage 3 Tage 2 Tage 3 Tage 3 Tage 7 Tage 3 Tage 20 Tage Die Reihenfolge der Tasks in Tabelle 1 gibt auch weitgehend den zeitlichen Ablauf der Projektdurchführung wieder. Ausnahmen sind die Aufgaben der Gruppe Administration. Die Stückliste der benötigten Komponenten (BOM, bill of materials ) kann nach Abschluss der Schaltungsentwicklung erstellt werden. Liegt der BOM vor, so können die Komponenten natürlich schon bestellt werden. Demgegenüber kann die Herstellung der Platine natürlich erst nach dem Abschluss der Layout-Arbeiten erfolgen. Eine weitere Ausnahme stellte der Test der Hardware dar, welcher erst nach Vorliegen der Firmware möglich war. Mit diesem Zeitplan war noch etwas Zeit-Reserve zu erwarten. Bis zum Abschluss des Layout-Reviews konnte der Zeitplan mit etwa ±1Tag eingehalten werden. Auf Grund der in den folgenden Abschnitten erläuterten Probleme traten dann Verzögerungen auf, so dass der Zeitplan nicht mehr eingehalten werden konnte. 2.3.2 Schaltungsentwicklung Um die Lieferzeit der benötigten Bauteile so klein wie möglich zu halten, wurde bereits beim Schaltungsentwurf darauf geachtet, möglichst nur gut verfügbare Bauteile zu verwenden. Aus Kostengründen sollten ausserdem für

Vorgehensweise und Durchführung 13 die Prototypen möglichst kostenlose Muster zur Verfügung stehen. Dies bieten glücklicherweise viele Chip-Hersteller mittlerweile an (teilweise direkt per online-bestellung im Internet, teilweise bei Anfrage z.b. per email). Nicht immer konnten Standardbauteile verwendet werden: Insbesondere beim Ethernet-Stecker (RJ-45 mit integrierten Breitbandübertragern) musste aus Platzgründen eine reine SMD-Version gefunden werden, welche ausserdem auch die Link- und Activity-LEDs eingebaut haben sollte. Nur damit konnte der Netzwerkstecker ebenfalls platzsparend an der kurzen Leiterplattenseite untergebracht werden (USB-Stecker, ebenfalls reine SMD-Version auf der anderen Platinenseite), wie in Abschnitt 2.2 gefordert. Die Wahl viel bei den zentralen integrierten Bausteinen auf einen Rabbit3000 Mikrokontroller (siehe [3]) und einen Xilinx-FPGA der neusten Generation Spartan-3 (siehe [7]). Der Mikrokontroller R3000 bietet einen grossen Umfang an integrierter Peripherie, insbesondere gehören Quadraturdecoder und mehrere asynchrone Schnittstellen (durch geeignetes Setup auch IrDA-kompatibel) zum Funktionsumfang. Desweiteren ist für diesen Kontroller eine Software- Entwicklungsumgebung für eine Variante der Hochsprache C erhältlich, die sowohl kooperatives Multitasking unterstützt als auch den kompletten TCP/IP-Stack mit Netzwerkkartentreibern im Quellcode enthält. Diese Entwicklungsumgebung kannte ich bereits aus dem 2. Praxissemester (Einsatz des Mikrokontrollers Rabbit2000), sodass sich die Einarbeitung auf das Kennenlernen der neuen Funktionen und der Änderungen auf Grund des Versionswechsels beschränken konnte. Wie gefordert kann dieser Mikrokontroller im Zielsystem programmiert werden, und das mitgelieferte BIOS enthält ein kleines Monitorprogramm, mit dem der Mikrokontroller im System debugged werden kann (incl. Single-Stepping im C- und Assembler-Quellcode). Der FPGA XC3S50 war erste Wahl, da er ein gutes Preis/Leistungsverhältnis bietet und ausserdem einer der wenigen FPGA ist, der trotz grosser Anzahl an Logikzellen mit relativ geringer Pinzahl (unter 200) im TQFP-Gehäuse (Thin Quad Flat Pack) erhältlich ist. Die meisten ähnlich komplexen FPGA haben mehr als 200 Anschlüsse und sind meist nur im BGA-Gehäuse (Ball Grid Array) lieferbar, dessen Bestückung eine umfangreiche Ausrüstung erfordert. Ausserdem sollte für die Ableitung des SPDIF-Taktes vom zu den Empfangsmodulen synchronen Takt ein neues Feature des XC3S50 genutzt werden: die sogenannten DCM (Digital Clock Manager). Zu guter Letzt ist der XC3S50 pinkompatibel zu zwei weiteren Typen der Spartan-3-Familie, sodass eine Aufrüstung bei unverändertem Platinenlayout möglich ist. 2.3.3 Platinenentwurf / Layout Sehr zeitaufwändig war das geschickte Platzieren der Komponenten auf der Platine, da relativ viele Vorgaben zu erfüllen waren und der Platz auf der Eurokarte nicht gerade üppig war. Der Autorouter war nicht zu gebrauchen - er ging nach kurzer Zeit in eine Endlosschlaufe über, was sich auch durch das Umplatzieren der Bauteile, das Einfügen von Layoutdirektiven oder das teilweise manuelle Routen nicht verhindern liess. So wurde die Platine manuell geroutet. Nur wenige quasistatische Signale führen über drei oder vier Vias. Entwicklung eines MMI und Host-PC-Interface

14 Einleitung Ansonsten konnten mehrfache Durchkontaktierungen weitgehend vermieden oder reduziert (meist nur ein Via pro Net) werden. Leider schlich sich in der ersten Revision des Layouts ein Fehler im Footprint des FPGA ein, sodass die Platine teilweise neu geroutet werden musste. Ausserdem war die Qualität der Leiterplatte nicht sehr gut, sodass sich einzelne Pads insbesondere beim Footprint des Mikrokontrollers trotz kurzer Lötdauer bei niedrigstmöglicher Temperatur ablösten. Dies erschwerte die Arbeit deutlich. Die neue Leiterplatte der überarbeiteten Revision B war dann gar völlig unbrauchbar: Ein Kurzschluss zwischen den Signalen +3.3V und GND sorgte dafür, dass nur noch die +5V-Spannungsversorgung funktionierte. Ich versuchte, den Kurzschluss mit Hilfe der Impulsreflektrometrie zu orten, doch die Distanz zum nächsten Kurzschluss betrug an nahezu jeder Stelle der Platine nur wenige Millimeter bis maximal 2cm. Der Versuch, die Kurzschlussstelle durch einen grossen Stromfluss zu erwärmen und so zu lokalisieren, schlug ebenfalls fehl die Platine erwärmte sich erst bei Strömen jenseits von 10A an wenigen Stellen. Damit war klar: es handelte sich um einen sehr grossflächigen Kurzschluss. In starkem Gegenlicht zeigte sich der genaue Grund für den Fehler: die innere Massefläche war verschoben (siehe Abbildung 1). Dieser Fehler kostete leider viel Zeit nicht nur zum Suchen des Fehlers, sondern auch, weil eine neue Leiterplatte hergestellt werden musste. In der Zwischenzeit wurde an der Software weitergearbeitet. Die Garantieplatine war dann fehlerfrei, sodass mit dem Bestücken und Testen fortgefahren werden konnte. Abbildung 1 Herstellungsfehler auf der Leiterplatte: verschobene innere Massefläche 2.3.4 Firmware- / Softwareentwicklung 2.3.4.1 Mikrokontroller-Firmware Die Mikrokontroller-Software konnte relativ schnell fertiggestellt werden. Da die Garantie-Leiterplatte und damit das Zielsystem noch nicht verfügbar war, wurde die Software - soweit möglich - auf einem RCM2100-

Vorgehensweise und Durchführung 15 Mikrokontrollerboard (von Rabbit Semiconductors) auf Basis des Rabbit2000-Mikrokontrollers getestet (dieses stand mir noch von früheren privaten Projekten zur Verfügung). Die Fernsteuerung über die serielle Schnittstelle und über Telnet funktionierte einwandfrei und auch die NetBIOS-Funktion konnte verifiziert werden. Nur die Programmierung des PLL-Bausteins (siehe [14]) sowie die Funktion der Quadratur-Dekoder und des LCD-Spannungs- DACs konnten zu diesem Zeitpunkt noch nicht getestet werden. Nach dem Aufbau der Hardware zeigten sich Probleme mit der Treiberbibliothek für den Asix-Netzwerkchip (Bestandteil von [32]), sodass die Netzwerkfunktion noch nicht gegeben ist. Da dies jedoch nachweislich nicht an den von mir programmierten Bibliotheken/Treibern lag (Funktion auf RCM2100 getestet), wurde die Fehlersuche im Rahmen dieser Arbeit aus Zeitgründen abgebrochen. 2.3.4.2 FPGA-Firmware Zur Entwicklung der FPGA-Firmware wurde die von Xilinx kostenlos verfügbare Entwicklungsumgebung ISE WebPACK 6.1i (siehe [33]) verwendet. Diese beinhaltet auch ein Synthesetool, sodass die Firmware komplett als Verhaltensmodell in VHDL geschrieben werden konnte. Da ich vorher noch keinen Kontakt mit der Hardware-Beschreibungssprache VHDL hatte, war die Einarbeitung hier entsprechend aufwändiger als für die Mikrokontrollersoftware. Das Erlernen der Sprache VHDL erfolgte mit Hilfe des Buches [37] bereits parallel zum Platinenentwurf. Das Debuggen mit Hilfe des mit [33] mitgelieferten Simulators verlief weitgehend problemlos. Erst beim Testen der Hardware zeigte sich eine weitere kleine Hürde: Die Angabe des Herstellers der Entwicklungsumgebung Xilinx auf seiner Webseite, die Version 6.1i würde alle Bausteine der Spartan-3-FPGA- Familie unterstützen, trifft leider nicht zu. Nach weiteren Recherchen fand ich heraus, dass die von mir verwendeten Engineering Samples des Modells XC3S50J C ES nur in der Version 5.2SP3 unterstützt werden. Die FPGA- Software wurde daher im Rahmen dieser Arbeit nicht in der Hardware getestet. 2.3.5 Hardwareaufbau und -test Der Hardwareaufbau erfolgte stufenweise wie in Abschnitt 3.4 beschrieben. Jede Aufbaustufe wurde so weit wie möglich getestet, bevor die nächste Stufe in Angriff genommen wurde. Der Aufbau und die Tests erfolgten - abgesehen von einigen Verzögerungen wegen schlechter Lötpaste und ähnlichem reibungslos. Das Löten der vielbeinigen ICs war mit guter Lötpaste, einer feinen Pinzette und Heissluft relativ problemlos (unter Berücksichtigung der Beinfreiheit von etwa 0.2mm beim Mikrokontroller, Pitch = Beinchenabstand = 0.4mm). In einigen Details musste die Schaltung ergänzt oder verbessert werden. Diese Änderungen sind in Abbildung 17 daran zu erkennen, dass die hinzugefügten Bausteine einen Designator, d.h. eine Bezeichnung ohne Nummer ha- Entwicklung eines MMI und Host-PC-Interface

16 Einleitung ben (z.b. IC?). Diese Änderungen sollten in einer nächsten Revision berücksichtigt werden. FPGA und Display-Kontroller wurden auf Grund der in Abschnitt 2.3.4.2 beschriebenen Umstände nur elektrisch, d.h. durch Messen der an den Pins anliegenden Signale getestet. Wegen der Treiberprobleme wurde auch der Netzwerkkontroller (siehe [6]) nur auf diese Weise getestet. Damit ist sichergestellt, dass die entworfene Schaltung korrekt/funktionsfähig ist, auch ohne die Softwareprobleme gelöst zu haben. Abbildung 2 und Abbildung 3 zeigen die fertig bestückte Platine mit aufgesetztem Connector-Board (siehe Abschnitt 3.3 und Abbildung 14). Abbildung 2 Bottomlayer der fertig bestückten Platine Abbildung 3 Toplayer der fertig bestückten Platine

Vorgehensweise und Durchführung 17 2.3.6 Dokumentation Die Dokumentation in Form dieses Berichtes wurde so weit wie möglich parallel zur eigentlichen Arbeitsdurchführung erledigt, um alle wichtigen Punkte zu berücksichtigen. Mit etwas zeitlichem Abstand fällt außerdem die Ü- berarbeitung nach Beendigung der Entwicklungs- und Testarbeiten deutlich leichter. Auch bei der Dokumentation wurde wie bei der gesamten Arbeit die sog. Top-Down-Methode angewandt, d.h. es wurde zuerst eine Einteilung in logische Funktionsgruppen (beim Schaltungsentwurf) bzw. die Gliederung (der Dokumentation) vorgenommen und diese erst danach mit Inhalt gefüllt. Im Gegensatz dazu würden bei Anwendung der Bottom-Up-Methode zuerst die Details implementiert und diese danach zu einem Gesamtwerk (Schaltung oder Dokumentation,...) zusammengefügt. Entwicklung eines MMI und Host-PC-Interface

18 Hardware 3 Hardware Die folgenden Abschnitte beschreiben die Hardwarelösung des MMI und Host-PC-Interfaces im Detail. 3.1 Hardwareumgebung und Hardwarekonzept Ein Blockschaltbild des Gesamtsystems und damit die Hardwareumgebung der Command Unit ist in Abbildung 16 (Kapitel 8) zu sehen. Es spiegelt im wesentlichen die Schnittstellendefinitionen vom Abschnitt 2.2.2 wider, wobei hier auch die Verbindungen mit den anderen Modulen des Zielsystems ersichtlich sind. 3.2 Schaltungsbeschreibung Die beiden zentralen Bausteine der Schaltung sind der Mikrokontroller des Typs Rabbit 3000 (siehe [1]) von Rabbit Semiconductor (siehe B6 bis C7, Abbildung 17) sowie der FPGA des Typs XC3S50 (bzw. dessen pinkompatible größere Brüder XC3S200 und XC3S400, siehe [4]) aus der Reihe der Spartan-3-FPGA der Firma Xilinx (siehe C9 bis D10, Abbildung 17). Abbildung 4 zeigt diese zusammen mit dem Flash-Speicher und dem Display-Kontroller auf der fertig bestückten Platine. Beim Mikrokontroller R3000 handelt es sich um ein sehr schnelles Z80- Derivat, das sich mit der Entwicklungsumgebung DynamicC (siehe [32]) des Herstellers relativ komfortabel in C programmieren lässt. Die Kommunikation des Mikrokontrollers und des DMA-Kontrollers (implementiert im Xilinx FPGA, siehe [7]) erfolgt über einen 8Bit breiten Parallel-Port, den sog. Slave-Port des Mikrokontrollers. Der Mikrokontroller kann auf diesen Port über drei interne Register zugreifen. Wird vom Master (FPGA) das Register 0 beschrieben, löst dies einen internen Interrupt im Mikrokontroller aus. Schreibt der Mikrokontroller seinerseits Daten in das Register 0, wird von der Slave-Port-Peripherie eine externe Interruptleitung (/SLAVEATTN) aktiviert, um dem Master mitzuteilen, dass neue Daten vorliegen. Dies erlaubt eine ereignisorientierte Kommunikation der beiden zentralen Einheiten MCU und FPGA. Findet kein Datenaustausch statt, kann somit der Mikrokontroller in einen stromsparenden Schlafmodus versetzt werden oder ohne Verlust von Rechenleistung durch Abfrageroutinen anderen Aufgaben wie der Netzwerkkommunikation und der Aufbereitung des Betriebszustands für dessen Anzeige nachkommen.

Schaltungsbeschreibung 19 Abbildung 4 Zentrale ICs der Schaltung auf der fertigen Platine 3.2.1 Spannungsversorgung Die Schaltung benötigt vier geregelte Spannungen. Tabelle 2 zeigt den Strombedarf der Schaltung bei den verschiedenen internen Spannungen. Spannung Maximaler Strombedarf der Schaltung excl. der I/O-Ströme zum Treiben von externen Modulen +5V 87 ma +3.3V +2.5V +1.2V Tabelle 2 800 ma 7 ma 10 ma Strombedarf des Moduls bei den vier internen Spannungen Der Forderung nach der Möglichkeit einer Spannungsversorgung mit nur einer positiven Spannung zwischen +7V und +15V wurde mit Hilfe von Low- Drop-Out Spannungsreglern nachgekommen. Die Speisespannung und die Ausgangsspannungen werden, wo erforderlich, mit Tantal-Kondensatoren gestützt bzw. gesiebt (diese sorgen ausserdem für die Stabilität der Regel- Entwicklung eines MMI und Host-PC-Interface

20 Hardware schleifen). +5V und +3.3V werden mit Hilfe der Spannungsregler LM2930-5.0 (siehe [8]) und LM1086-3.3 (siehe [11]) direkt aus der Versorgungsspannung gewonnen. Die niedrigeren Spannungen (+2.5V und +1.2V) werden jeweils aus der nächst höheren geregelten Spannung abgeleitet, um den Spannungsabfall an den LDO-Spannungsreglern (siehe [12] und [13]) möglichst gering zu halten (Minimierung der Verlustleistung). Dies ist hier ohne weiteres möglich, da der Strombedarf der Schaltung bei den Spannungen von 2.5V und 1.2V nur gering ist (siehe Tabelle 2). Eine stabile Spannungsregelung ist bereits ab einer Versorgungsspannung von 5.6V gewährleistet (siehe [10] und [11]); Bei höheren Spannungen wird jedoch prinzipbedingt die Verlustleistung in den LDO-Spannungsreglern relativ groß, sodass Kühlkörper erforderlich werden. Zu bevorzugen ist in solchen Fällen daher eine Lösung mit externen DC/DC-Wandlern, welche die Eingangsspannung mit hohem Wirkungsgrad auf 5.6V bringen. 3.2.2 Taktversorgung des Moduls Da auf dem Modul für das Host PC Interface viele Standard-Schnittstellen realisiert werden sollten, welche alle unterschiedliche, quarzgenaue Taktfrequenzen benötigen, wurde eine Möglichkeit gesucht, nicht für jeden Schnittstellenbaustein einen eigenen Quarz einsetzen zu müssen. Tabelle 3 zeigt die erforderlichen Taktfrequenzen des Moduls. Frequenz Einsatzort 25.8048 MHz Haupttakt für R3000 MCU (siehe [1]), Serielle Schnittstellen mit Standard-Baudraten bis 115.2kBaud 6.0000 MHz USB-Schnittstellenbaustein FT245BM (siehe [9]) 25.0000 MHz Ethernet-Schnittstellenbaustein AX88796 (siehe [6]) 50.000 MHz Maximaler Bustakt für internen Bildspeicher des Display-Treibers S1D13806 (siehe [8]) 17.734475 MHz PAL-kompatibler Compositevideo- und S-Video- Ausgang des Display-Treibers S1D13806 (siehe [8]) Ca. 35 MHz bis 65 MHz 6.144 MHz oder 4.096 MHz LCD-Takt für Display-Treiber S1D13806 (siehe [8]) SPDIF-Schnittstelle, FPGA-intern abgeleitet vom synchronen Systemtakt 80 MHz Synchroner Systemtakt (extern eingespeist) Tabelle 3 Erforderliche Taktfrequenzen und deren Einsatzort

Schaltungsbeschreibung 21 Der zu den Sende- und Empfangsmodulen synchrone Systemtakt wird von einer externen Quelle über einen Koaxial-Eingang eingespeist. Er gelangt an den FPGA, der alle synchronen Aufgaben erledigt. Dank der sogenannten DCM des FPGA (Digital Clock Manager, siehe [4]) können die Taktfrequenzen für die SPDIF-Schnittstelle vom synchronen Systemtakt FPGA-intern abgeleitet werden. Alle anderen Frequenzen müssen on board erzeugt werden. Eine Takterzeugung auf Basis von PLLs bot sich an. Der Baustein CY22393 (siehe [14]) beinhaltet einen Quarz-Oszillator und drei PLLs, die sechs Ausgänge mit unabhängigen Teilern treiben können. Damit können alle erforderlichen Frequenzen von einem 25.0000 MHz-Quarz abgeleitet werden. Außerdem bietet diese Lösung die Möglichkeit, die Frequenzen während des Betriebs über die IIC-Schnittstelle des PLL-Bausteins zu ändern (z.b. LCD-Taktanpassung für eine andere Auflösung am externen Monitor). Abbildung 5 zeigt die mit Hilfe des kostenlosen Programms CyberClocks (siehe [35]) erstellte Konfiguration. Wie in Abbildung 5 zu sehen ist, treten beim MCU-Takt und beim PAL-TV-Takt systematische Fehler auf. Die systematischen Fehler liegen mit -5.6ppm deutlich unter der Genauigkeit des Quarzes und können daher vernachlässigt werden. Die PLL3 steht damit frei programmierbar zur Generierung des LCD-Takts zur Verfügung. Abbildung 5 Konfiguration des Taktgenerator-PLL-ICs CY22393 Das Programm erzeugt an Hand der eingegebenen Daten eine JEDEC- Konfigurations-Datei, deren Inhalt von Hand ausgelesen und in Form von Entwicklung eines MMI und Host-PC-Interface