System-on-chip Car. Übungsblatt 1. Bearbeitung bis spätestens 9. Mai 2008, Demonstration im Labor Bearbeitungszeit: 3 Wochen

Ähnliche Dokumente
Laborübung 2. Teil 1: Latches, Flipflops, Counter. Abbildung 1: Schaltkreis eines Gated D-Latch

Laborübung 4. Zustandsautomaten (Finite State Machines)

Übungen zu Architektur Eingebetteter Systeme. Teil 1: Grundlagen. Blatt 5 1.1: VHDL 28./

Mögliche Praktikumsaufgaben

Computergestützter IC- Entwurf

Versuch 4 M_Dongle Servotester. Labor Mikrocontroller mit NUC130. Prof. Dr.-Ing. F. Kesel Dipl.-Ing. (FH) J. Hampel Dipl.-Ing. (FH) A.

Schülerseminar Programmieren einer Ampelsteuerung

Eine blinkende LED mit Xilinx ISE 13: das Hello World! der Hardware.

Einführung in die technische Informatik

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

FPGA-Entwurf mit VHDL. Serie 3

Semestralklausur Einführung in Computer Microsystems

Name: DT2 Klausur

Übung Hardwareentwurf

Hardware Praktikum 2008

Versuch 3: Sequenzielle Logik

Servo-Modul Version

GAL 16V8. 4. Laboreinheit - Hardwarepraktikum SS 2002 VCC / +5V. Eingang / Clock. 8 konfigurierbare Ausgangszellen. 8 Eingänge GND / 0V.

Erzeugen von PWM-Signalen mit dem Atmel AVR-Mikrocontroller

Praktikum Systementwurf mit VHDL HDL Design Lab

9. Elektronische Logiksysteme ohne Rückführung, kombinatorische Schaltungen

Messsysteme für den SwissFEL

Anwendungen der Prozessdatenverarbeitung (Liste V) Leitung: Prof. Dr. Linn. Microcontroller Programmierung

Ultraschallsensoren von Alexandra Bauer

Zwergmodellbau. Drehregler in Siku 2,4GHz Traktoren nutzen ModControl V1.1.x Version

Ampelsteuerung Merkblatt 1 Wie werden die Bauteile angeschlossen?

Einführung in die Arduino-Programmierung II

Quanton Manual (de) Datum: URL: )

1. Apple - Design, Kult und faszinierende Technik.

Computergestützter IC- Entwurf

Klausur zur Vorlesung. Grundlagen der Technischen Informatik (GTI) und. Grundlagen der Rechnerarchitektur (GRA)

Übungsblatt 2 Entwicklung und Test sequentieller Logik Abgabefrist: Mittwoch , 14:00 Uhr

Research & Development Ultrasonic Technology / Fingerprint recognition DATA SHEETS OPKUD.

Outline Schieberegister Multiplexer Zähler Addierer. Rechenschaltungen. Marc Reichenbach und Michael Schmidt

Diplomarbeit. FIR-Filter für Ultra Wide Bandwidth Beamformer

Versuchsreihe 7. Registerfile. Registerfile + Programmzähler. HaPra Versuchsreihe 7 - Registerfile + Programmzähler. 32 Register à 32 Bit

Arbeiten mit XILINX - ISE - WebPACK

Elektrische Schnittstelle Signal

2. Aufgabenblatt

Hardware PC DDC JP Elektronik GmbH

ALLNET Art ALLNET Starter Kit Light UNO R.3

IHS2 Seminar CFG. Steffen Ostendorff Zusebau, R2078, Tel: -1788

LEGO MINDSTORMS NXT MIT LABVIEW 2009 PROGRAMMIEREN

Aufbau und Dokumentation einer Experimentierplattform für automotive Softwareentwicklung

Arduino Grundkurs. 3. Schreibe eine Funktion für das Morsezeichen S und eine für O

I EINLEITUNG SYNTAX SPEZIELLE PROBLEME BEISPIEL AUSBLICK

Anleitung zu ChipScope Pro

Konfiguration des MIG für DDR2-SDRAM Ansteuerung

Übungsblatt 1. Einführung in die Xilinx Vivado FPGA Design Plattform

Hardware Praktikum 2008

ND556. Ausgangsstrom 1,4-5,6 A. Isolationsfestigkeit 500 M. Mechanische Spezifikationen (Einheit: mm, 1 inch = 25,4 mm)

Manuelle Konfiguration

Jan Monsch. Donnerstag, 2. Mai 13

Application Note. PiXtend mit Hilfe der Control- & Status-Bytes konfigurieren und überwachen. Stand , V1.06

IHS2 Praktikum. Zusatzfolien. Integrated HW/SW Systems Group. IHS2 Praktikum Zusatzfolien 2012 Self-Organization 20 April

Elektronikpraktikum - SS 2014 H. Merkel, D. Becker, S. Bleser, M. Steinen Gebäude (Anfängerpraktikum) 1. Stock, Raum 430

Praktikum: VLSI-Entwurf. VHDL Standardzell Entwurf Entwurf einer Weckuhr

SPKC. Inhalte der Vorlesung. Signalprozessoren und Kommunikationscontroller. Prof. Dr.-Ing. Peter Schulz. Signalprozessoren

1. Beschreibung der Aufgabe

Die Robo-TX RS-485 Schnittstelle

Kennenlernen der Laborgeräte und des Experimentier-Boards

Modernes Schaltungsdesign. FPGA Praktikum

Übungsblatt 8 Lösungen:

Microcontroller Programmierung. Ein PDV-Vertiefungsprojekt von: Chr. Schulz, P. Simon und D. Stein Sommersemester 2005 Version 1.0

EHP Einführung Projekt A

Bericht. Digitallabor. Hochschule Karlsruhe N1. Aufgabe 5.6 Stoppuhr. Teilnehmer: Natalia Springer, Tong Cha. Datum:

IHS2 Seminar. Einführung Zusatzfolien A. Integrated HW/SW Systems Group. IHS2 Seminar 06 November 2009 Self-Organization 19 November

ATmega169 Chip: Pin-Layout

ALLNET 4duino Starter Kit LIGHT

HSD FB E I. Hochschule Düsseldorf Fachbereich Elektro- und Informationstechnik. Datum: WS/SS Gruppe: S Q. Teilnehmer Name Matr.-Nr.

Ausarbeitung zum ETI Praktikum

ME742 Mikroschritt-Endstufe

6. Aufgabenblatt mit Lösungsvorschlag

Xilinx ISE Tutorial. Abbildung 1: FPGA auswählen

Aufgaben zum Elektronik - Grundlagenpraktikum

D.9 Versuchsreihe 9: Gesamtsystem, Interrupts, Synthese

LED Skalenbeleuchtung mit einem Arduino

Research & Development Ultrasonic Technology / Fingerprint recognition DATA SHEETS OPBOX. optel@optel.

Experimentierplatine LC4128

Hardware Beschreibung

UART und Interrupts. Versuch Nr. 7

Einführung in das Programmieren in der Sekundarstufe 1. mit einem Arduino und der Physical-Computing-Plattform

2. Praktische Übung zur Vorlesung Grundlagen der Technischen Informatik. Entwurf eines digitalen Weckers

Einführung in die Netzwerkanalyse

18 Schieberegister. Serieller Serieller Eingang 5 Stufen Ausgang. 1. Takt. 2. Takt

3. Hardware CPLD XC9536 von Xilinx. CPLD / FPGA Tutorial

Institut für Angewandte Mikroelektronik und Datentechnik Fachbereich Elektrotechnik und Informationstechnik Universität Rostock.

Klasse, Name : Datum : Rad l/r Linienfolger l/r Laderaum ATMEGA 128

5 VHDL Einführung (I)

Versuchsanleitung. Labor Mechatronik. Versuch BV_2 Grundlagen der Sensortechnik. (induktive, optische und Ultraschallsensoren)

Teil 1: Digitale Logik

mit wenig Hard- und Software mißt der BASIC-Tiger die Drehzahl verschiedenster Objekte

Digitale Steuerung. Hardwarepraktikum für Informatiker Matr. Nr.:... Versuch Nr.5. Vorkenntnisse: Universität Koblenz Landau Name:...

LED Skalenbeleuchtung mit einem Arduino

4.Vorlesung Rechnerorganisation

Installation der Entwicklungsumgebung

Teil 1: Digitale Logik

MH - Gesellschaft für Hardware/Software mbh

Versuch D3: Busse, Speicher und Ampelsteuerung mit Speicher

Transkript:

System-on-chip Car Übungsblatt 1 Bearbeitung bis spätestens 9. Mai 2008, Demonstration im Labor Bearbeitungszeit: 3 Wochen Die folgenden Quellen sind für die Bearbeitung der Aufgaben hilfreich. Gunther Lehmann, Bernhard Wunder, Manfred Selz - Schaltungsdesign mit VHDL http://mikro.ee.tu-berlin.de/~kds/text_all.pdf R. Walker, D. Thomas - A Model of Design Representation and Synthesis http://portal.acm.org/citation.cfm?id=317825.317928 Peter Asheden - The VHDL Cookbook http://tams-www.informatik.uni-hamburg.de/vhdl/doc/cookbook/ VHDL Online Tutorial http://www.vhdl-online.de ISE Tutorial http://www.xilinx.com/support/techsup/tutorials/ Spartan-3E Starter-Kit User Guide http://www.xilinx.com/support/documentation/boards_and_kits/ug230.pdf Arbeiten Sie sich in die Hardwarebeschreibungssprache VHDL und in das Entwicklungswerkzeug ISE (Integrated Software Environment) von Xilinx ein (siehe Quellen). Im Modelbaubereich werden kleine Elektromotoren (Servos) für Steuerung von Flugzeugen, Autos oder Booten eingesetzt. Die Ansteuerung eines Servos erfolgt durch periodische Impulse (siehe Abbildung 1). Die Frequenz beträgt dabei 50 Hz und die Länge des Impulses (Pulsweitenmodulation) koreliert linear mit der Stellung des Servos: 1 ms = Linksanschlag, 1.5 ms = Mittelstellung und 2 ms = Rechtsanschlag. Aufgabe 1. Ansteuerung eines Modellbau-Servos a) Beschreiben Sie ein Hardwaremodul pulse_generator zur Ansteuerung eines Servos in VHDL mit dem Eingang control_value, dem vorzeichenbehaftete Stellwert, und dem Ausgang pulse für das PWM-Signal: ENTITY p u l s e g e n e r a t o r IS GENERIC( CLOCK TICKS FOR 250KHZ : p o s i t i v e ) ; c o n t r o l v a l u e : IN signed (0 to 7) ; p ulse : OUT s t d l o g i c ) ; END p u l s e g e n e r a t o r ; Übungskoordination: Dipl.-Inf. Felix Mühlbauer, Dipl.-Ing. Philipp Mahr 1

Abbildung 1: Pulsweitenmodulation control_value = 0 soll der Mittelstellung des Servos entsprechen, negative Werte einer Drehung nach links bzw. positive Werte nach rechts. Verwenden Sie für die Implementierung einen 250 khz Zähler. Für diesen soll CLOCK_ TICKS_FOR_250KHZ die Anzahl der Zyklen vom Systemtakt (hier: 50 MHz) clk angeben. Hinweis: Der Wertebereich von control_value wird auf diese Weise nicht vollständig ausgenutzt! Warum? b) Schreiben sie eine Testbench in VHDL und überprüfen Sie die Funktionalität Ihrer pulse_generator Komponente durch Simulation des Verhaltens vor der Synthese UND nach der Platzierung und Verdrahtung. Erst wenn die Funktionalität in beiden Simulationen identisch ist, ist Ihre Implementierung auch auf einem FPGA lauffähig. c) Beschreiben Sie eine Top-Komponente mit VHDL, die als Eingabe die Stellung der Schalter (slide switches) des Spartan3E-Boards bekommt und als Ausgabe das Signal pulse erzeugt. Instanziieren Sie dazu Ihre pulse_generator Komponete und schließen Sie für einen einfachen Test die vier Schalter an control_value an (z. B. an Bit 6-3). Benutzen Sie folgende Schnittstelle: ENTITY t o p s e r vo IS s w i t c h e s : IN s t d l o g i c v e c t o r (0 to 3) ; p ulse : OUT s t d l o g i c ) ; END t o p s e r vo ; d) Schreiben Sie analog zu Aufgabenteil b) eine Testbench und überprüfen Sie die Funktionalität Ihrer Implementierung. e) Praktische Übung zum Anschließen eines Servos an das FPGA-Board. Mehr Details später... f) Überprüfen Sie nun Ihre Schaltung mit einem Oszilloskop und einem Servo. Dazu müssen Sie die Ein- und Ausgangspins des Spartan3E-Board mit den Ein-und Ausgängen Ihrere Komponeten verknüpfen (siehe UCF-Datei). Übungskoordination: Dipl.-Inf. Felix Mühlbauer, Dipl.-Ing. Philipp Mahr 2

Aufgabe 2. Abtasten eines Servo-Steuersignals a) Beschreiben Sie eine Komponete pulse_analyser, die das inverse Verhalten zur Komponente pulse_generator besitzt. ENTITY p u l s e a n a l y s e r IS GENERIC( CLOCK TICKS FOR 250KHZ : p o s i t i v e ) ; p ulse : IN s t d l o g i c ; s e r v o v a l u e : OUT signed (0 to 7) ) ; END p u l s e a n a l y s e r ; b) Schreiben Sie eine Testbench und überprüfen Sie die Funktionalität der Pulsanalyse analog zur Aufgabe 1b. c) Schreiben Sie eine neue Top-Komponete top_analyser_test, die als Eingabe die Werte der Schalter bekommt (äquivalent zu Aufgabe 1c) und als Ausgabe den abgetasteten Wert an die LEDs des Spartan3E Starter-Kits übergibt. Verbinden Sie dazu die pulse_generator Komponente mit der pulse_analyser Komponente. ENTITY t o p a n a l y s e r t e s t IS s w i t c h e s : IN s t d l o g i c v e c t o r (0 to 3) ; l e d : OUT s t d l o g i c v e c t o r (0 to 7) ) ; END t o p a n a l y s e r t e s t ; d) Schreiben Sie eine Testbench und überprüfen Sie die Funktionalität der Top-Komponete. e) Test Sie Ihre Implementierung auf dem Spartan3E-Board. Übungskoordination: Dipl.-Inf. Felix Mühlbauer, Dipl.-Ing. Philipp Mahr 3

Aufgabe 3. Abstandsmessung mit Ultraschallsensoren Zur Erfassung seiner Umgebung ist das SoCar mit fünf Distanzmessern (Ultraschallsensoren) ausgestattet (siehe Abbildung 2). Abbildung 2: SoCar mit Ultraschallsensoren (symbolische Abb.) Ein Ultraschallsensor sendet Schallimpulse aus und misst die Zeit bis zum Empfang eines Echos (Reflektion des Schalls an einem Objekt). Die Zeit ist proportional zum Abstand zwischen dem Sensor und einem Objekt. Wegen dieser Funktionsweise können mehrere Sensoren nicht simultan betrieben werden. Beim SoCar sind sie deshalb in einer Kette (daisy chain) verschaltet und zur Vereinfachung die Ausgänge der Sensoren zu einem einzigen Signal zusammengefasst (siehe Abbildung 3). Nachdem ein Startimpuls an den ersten Sensor geschickt wurde, werden die Sensoren der Reihe nach automatisch aktiviert. Erst wenn der letzte Sensor seine Messung abgeschlossen hat, kann erneut ein Messzyklus angestoßen werden. Abbildung 3: Daisy Chain der Ultrschallsensoren a) Studieren Sie das Datenblatt des MaxSonar-EZ3 Ultraschallsensors (siehe SoCar- Internetseite). b) Für die Komponente ultrasonic_sensors soll folgende Schnittstelle verwendet werden: Übungskoordination: Dipl.-Inf. Felix Mühlbauer, Dipl.-Ing. Philipp Mahr 4

ENTITY u l t r a s o n i c s e n s o r s IS GENERIC( NUM SENSORS : p o s i t i v e must be g r e a t e r than 1 CLOCK TICKS FOR xxxhz : p o s i t i v e ) ; enable : IN s t d l o g i c ; d i s t a n c e ( per sensor ) in cm d i s t a n c e v e c t o r : OUT s t d l o g i c v e c t o r (0 to (NUM SENSORS 10 1) ) ; impulse i f a new v a l u e ( per sensor ) i s a v a i l a b l e new value : OUT s t d l o g i c v e c t o r (0 to (NUM SENSORS 1) ) ; s t a r t u l t r a s o n i c d i s t a n c e measurement u s s t a r t : OUT s t d l o g i c ; sensor output u s p u l s e : IN s t d l o g i c ) ; END u l t r a s o n i c s e n s o r s ; Ein Messzyklus sieht wie folgt aus: 1. Aktivierung von Signal enable abwarten. 2. Startimpuls an Sensoren senden (siehe Datenblatt). 3. Für jeden Sensor: us_pulse abtasten und Zeit messen; Ausgangsregister distance_vector aktualisieren und einen Impuls (1 clk) über den Ausgang new_ value[current_sensor] senden. Beschreiben Sie die Komponente ultrasonic_sensor. Die gemessenen Abstände (in cm; Genauigkeit: 10 Bit) aller Sensoren sind in dem Vektor distance_vector zusammengefasst. Bestimmen Sie eine geeignete Taktfrequenz für Ihre Komponente und passen Sie CLOCK_TICKS_FOR_xxxHZ entsprechend an. Hinweis: Es ist hilfreich für die Beschreibung der Komponete einen Zustandsautomat zu verwenden. c) Schreiben sie eine Testbench und überprüfen Sie die Funktionalität der ultrasonic_ sensors Komponente. d) Testen Sie Ihre Komponente mit dem FPGA-Board. Beschreiben Sie hierzu eine Top- Komponete top_ultrasonic_sensors_test und instantiieren Sie Ihre ultrasonic_sensors Komponente mit zwei Ultraschallsensoren (NUM_SENSORS = 2). Geben Sie einen gemessenen Distanzwert über die LEDs aus, wobei mit Hilfe von Schalter SW0 zwischen den beiden Sensoren umgeschaltet werden soll. Verbinden Sie zum Starten von Messvorgängen das enable Signal mit einer Oder-Verknüpfung von Schalter SW3 und Taster BTN WEST. Benutzen Sie den Taster BTN SOUTH für das Reset-Signal. Der Testaufbau von zwei kaskadierten Ultraschallsensoren steht zur Verfügung und muss an Pfostenleiste J4 angeschloßen werden (auf Polung achten!). Hinweis: Der Wertebereich von distance_vector wird auf diese Weise nicht vollständig ausgenutzt. Kommentieren Sie Ihren Code! Übungskoordination: Dipl.-Inf. Felix Mühlbauer, Dipl.-Ing. Philipp Mahr 5