|
|
Ultraschallentfernungsmessung mittels FPGAvon Thomas Eichstetter, Nicole Elsner ; Mentor: Dr.Ing. MBA Thomas Fuhrmann Dieser Artikel ist ein Anfängerprojekt.
[Bearbeiten] EinleitungZugegeben, das Projekt „Ultraschall-Entfernungsmessung“ findet sich in diversen Variationen an einigen Stellen im Netz. Warum haben wir nun das gleiche Ziel, aber wollen es wieder in einer abgewandelten Form vorstellen? Als Studenten im Bereich Elektro- und Informationstechnik ist es uns besonders wichtig, die teilweise sehr theoretisch aufgebauten Vorlesungen durch praktische Aufgaben zu vertiefen. Neben den grundsätzlichen Dingen wie Erstellen einer Platine und Anwendung deren Bausteine, lag es uns auch am Herzen die bisher sehr rudimentären VHDL-Kenntnisse auszubauen und in einem praktischen Projekt anzuwenden. Damit ist ein neues Projekt geboren, das zwar ähnlich bereits existiert, aber nur in unserer Form angemessen auf unser Studium eingeht.
Um das hier beschriebene Projekt nachzustellen, wird folgende Ausrüstung benötigt:
[Bearbeiten] Präbeginn[Bearbeiten] IdeeEine Sendekapsel erzeugt Schall, der an einem beliebigen Objekt reflektiert und von einer Empfängerkapsel aufgenommen wird. Durch Messung der Laufzeit, Dauer von Senden bis zum Empfangen, kann unter Berücksichtigung der Schallgeschwindigkeit die Entfernung des Objektes bestimmt werden. Diese zeitliche Differenz wird durch das FPGA und die selbst erstellte Platine aufgenommen und weiterverarbeitet.
[Bearbeiten] Schnittstellen festlegenUm verschiedene Teilprojekte erfolgreich miteinander zu verknüpfen, wird zu Anfang die Schnittstelle festgelegt, die sich hier zwischen der selbsterstellten Platine und dem FPGA befindet. An der Schnittstelle liegen zwei zu definierende Signale an, Sendeimpuls und Empfangssignal, die wie folgt aus Sicht des FPGAs festgelegt sind:
[Bearbeiten] Essentielle Bausteine[Bearbeiten] Sender-, EmpfängerkapselBei dem Ultraschallempfänger bzw. -sender wird der piezoelektrische Effekt genutzt. Der sogenannte Piezokristall wechselwirkt mit Spannung, beginnt dadurch seine Form zu ändern und sende Schallwellen aus. Wird hingegen Schall empfangen, so tritt eine Änderung der elektrischen Polarisation auf und Spannung wird erzeugt.
Bei der Ultraschallentfernungsmessung benötigen wir beide Fälle, sowohl die
Erzeugung von Schall, als auch Detektion.
[Bearbeiten] FPGADie CMOS Komponenten im konfigurierbaren Logikbaustein erhalten durch das Programm den Befehl sich auf bestimmte Weise zu verschalten. Damit werden unterschiedliche Gatter (AND, NOR, usw.) realisiert, die zusammen die Hardware des Programmes darstellen.
Ein großer Vorteil des FPGA gegenüber Mikrocontrollern ist die Unabhängigkeit der Anzahl der Messungen vom Timer, da im mehrere Messungen parallel laufen können. Dadurch ist es einfacher das Projekt weiter auszubauen.
[Bearbeiten] OperationsverstärkerDieses Bauteil kann auf simple Weise sämtliche Verstärkungseigenschaften entwickeln. So ist eine Verwendung als Komparator, Filter, Verstärker, Integrator usw. möglich. Im vorgestellten Projekt werden invertierende Verstärker und Komparatoren benötigt.
[Bearbeiten] Aufteilung in Module - BaukastenprinzipUm die Übersicht besonders bei großen Projekten nicht zu verlieren, ist es ratsam das Netzwerk in einzelne Module zu unterteilen und diese Stück für Stück zu entwickeln. Erst wenn das einzelne Teilprojekt einsatzbereit ist, wird es mit den Übrigen verknüpft. So wird gewährleistet, dass Fehler im Modul nicht in andere Bereiche einfließen und damit schwer festzustellende Störungen verursacht. [Bearbeiten] SpannungsversorgungDiese Schaltungsteile sind zuständig für die Spannungsversorgung der Bauteile. Mit den Kondensatoren C5 und C6 wird sichergestellt, dass die Betriebsspannung durch kurze Stromimpulse nicht zusammenbricht. Als Ursache dieses Problems ist ein evtl. hoher Innenwiderstand der Spannungsversorgung zu nennen. Die Diode D2 schützt die Schaltung vor falscher Polung. Mit den zwei Widerständen R7 und R8 wird die Versorgungsspannung VCC halbiert und als neues Bezugspotential VCC/2 verwendet. Die Schwingung der Eingangssignale bewegt sich damit um dieses Potential. Der damit entstandene Offset von VCC/2 kann später durch den Kondensator C3 wieder entfernt werden. Nachdem die Versorgungsspannung festgelegt ist, wird der Komparator IC2A (vgl. Bild 12) als Ausgangsbauteil für die Funktionalität verwendet. Mit dem korrekten Verlauf der RC-Kurve werden die unerwünschten Signale gefiltert und das auszuwertende Signal weitergeleitet. Im Folgenden werden die beiden Signale getrennt betrachtet. [Bearbeiten] Verstärkung des Senders[Bearbeiten] Prinzip des ModulsMehrere kurz aufeinander folgende Impulse gewährleisten ein ausreichendes Aufladen des Kondensators. Da das FPGA aber nur mit 3,3 V und kleinen Strömen arbeitet, werden die Impulse mit Transistoren verstärkt um die Sendekapsel ausreichend versorgen zu können.
[Bearbeiten] Realisierung im SchaltplanEs werden pro Entfernungsmessung sieben Sendeimpulse vom FPGA geliefert und mit den beiden Transistoren T1 und Q1 verstärkt. Damit ist gewährleistet, dass die Intensität ausreicht um die Senderkapsel zum Senden zu bewegen. Außerdem wird der Kondensator C1 geladen. Weil nur Impulse verstärkt werden, können die Transistoren im Sättigungsbereich betrieben werden, um die größtmögliche Verstärkung zu erreichen. Nachdem aus dem Datenblatt der Transistoren die Stromverstärkungsfaktoren entnommen sind, wird der Basisstrom so dimensioniert, dass die Transistoren im übersteuerten Bereich arbeiten. Es hat sich gezeigt, dass durch die Diffusionskapazitäten der Transistoren jeder Impuls verlängert wird. Um diesen Effekt zu verringern, werden die Transistoren nicht zu weit im Sättigungsbereich betrieben.
[Bearbeiten] Verstärkung des Empfängers[Bearbeiten] Prinzip des ModulsErste Probemessungen an der Empfängerkapsel zeigen am Oszilloskop nur sehr geringe Ausschläge. Da es während der Signalverarbeitung zum Rauschen durch besonders hochohmige Widerstände innerhalb der Schaltung kommt, wird das Signal verstärkt um es in einen Spannungsbereich zu bringen, der sich deutlich von ungewollten Nebeneffekten abhebt. Zur Veranschaulichung einer weiteren Variante zur Verstärkung, wird am Empfänger ein Operationsverstärker, statt eines einfachen Transistors, verwendet.
[Bearbeiten] Realisierung im SchaltplanTrotz dem optimalisierten Sender-Empfangssystem mit gleicher Resonanzfrequenz von 40 kHz muss das nach der Reflexion des Ultraschalls nur schwache Echo verstärkt werden, um weiterverarbeitet werden zu können. Die Ersatzschaltbilder von Ultraschallsender und –empfänger sind identisch. Die Stromquelle des Senders bleibt jedoch auf Null, während die des Empfängers bei Empfang aktiv wird. Um Störungen durch Rauschen am hohen Innenwiderstand der Ultraschallkapsel zu vermeiden, wird an beiden Anschlüssen des Empfängers das gleiche Potential angelegt. Der Operationsverstärker IC1A dient als Vorverstärker und Filter. In dieser invertierenden Beschaltung verstärkt er die Eingangssignale um das zehnfache und filtert alle Schwingungen ab 48 kHz. heraus. Um die empfangenen Signale weiterzugeben und gleichzeitig jeden Gleichanteil abzutrennen wird der Kondensator C3 eingesetzt. Die zweite Stufe mit IC1B ist ebenfalls als invertierender Verstärker aufgebaut und kann erneut um Faktor zehn verstärken. Dies läst sich über das Potentiometer R12 stufenlos einstellen. Zudem lässt sich der Gleichanteil mit R14 in geringen Bereichen um VCC/2 variieren, um die Empfangskurve exakt mit der RC-Kurve abzugleichen. Das Audio-Signal am Ausgang des Operationsverstärkers IC1B, schwingt um nahezu dasselbe Potential, wie das Signal am nichtinvertierenden Eingang. [Bearbeiten] Erzeugung einer RC-Kurve zur Filterung[Bearbeiten] Prinzip des ModulsAus der Richtcharakteristik ist zu entnehmen, wie stark der Ultraschall neben der Hauptrichtung auch in andere Richtungen abstrahlt. Auf ähnliche Weise empfängt auch der Empfänger aus dem gesamten Raum Signale. Da Sender- und Empfängerkapsel dicht nebeneinander verbaut sind und der ausgesendete Schall nicht nur durch Reflexion zum Empfänger gelangt, sondern auch auf direktem Wege durch seitliche Abstrahlung während der Messung, ist es notwendig die bei der Sendung seitlich abgestrahlten Impulse herauszufiltern. Das wird durch den Vergleich mit einer RC-Entladungskurve erreicht. Während die Senderkapsel die Impulse erhält, wird parallel dazu ein Kondensator aufgeladen. Ist der Sendevorgang abgeschlossen, entlädt sich dieser Kondensator über einen Widerstand. In einem Operationsverstärker wird diese Entladekurve mit dem Signal des verstärkten Ultraschalleingangs verglichen. Seitlich emittierter Ultraschall fällt beim Empfangen unter die RC-Kurve und wird dadurch nicht verwertet. Beim Auftreffen des senkrecht reflektierten Schalls ist die RC-Kurve ausreichend abgefallen um einer komplikationslosen Messung nicht mehr im Wege zu stehen.
[Bearbeiten] Realisierung im SchaltplanDer Fluss der Ladung in den Kondensator legt die Spannungserhöhung gegenüber der anderen Kondensatorplatte fest. Wie viel Ladung in den Kondensator fließt wird mit dem Potentiometer R5 eingestellt. Das Potential an der unteren Kondensatorseite liegt bei der halben Betriebsspannung. Beim Entladevorgang, also nach den 7 Sendeimpulsen, wird die erhöhte Ladungsansammlung auf der oberen Kondensatorplatte über den Widerstand R6 zur unteren Platte geleitet. Die Diode D1 verhindert ein zusätzliches Entladen durch R4 und den Ultraschallsender. Da der Eingangswiderstand des Operationsverstärkers sehr groß ist, findet auch darüber kaum eine Entladung statt. Dadurch ergibt sich eine typische Entladekurve mit der Zeitkonstante τ=R6*C1. Diese Kurve nähert sich asymptotisch der halben Betriebsspannung an.
Der Operationsverstärker IC2A dient als Komparator zwischen RC-Kurve und dem Audio-Signal. Sobald das Potential des Audio-Singals höher ist als das der RC-Kurve, schaltet der Ausgang nahezu auf Betriebsspannung.
[Bearbeiten] Anpassung der Spannung für das FPGA[Bearbeiten] Prinzip des ModulsDa das FPGA im CMOS-Pegel von 0 – 3,3 V arbeitet und im Normalfall eine
höhere Spannung am Ausgang es Komparators anliegt, ist eine Reduzierung
der Spannung nötig. Eine parallel zum FPGA - Eingang geschaltete Z-Diode
reduziert die Spannung auf die gewünschten 3,3 V.
[Bearbeiten] Realisierung im SchaltplanDie Spannung am FPGA muss auf 3,3 V reguliert werden. Deshalb wird das
Ausgabepotential des Operationsverstärkers verwendet, um einen PNP-
Transistor zu schalten. Der Operationsverstärker IC2A kann nicht bis zur
oberen und unteren Betriebsspannung (0V und VCC) aussteuern. Hat der
Operationsverstärker auf maximales positives Potential geschalten, kann der
Transistor BC328 noch teilweise Strom durchlassen. Um den Transistor sicher
zu sperren, wird mit dem Widerstand R16 das Potential auf nahezu VCC
gebracht. Der andere Fall, dass der Operationsverstärker gegen GND schaltet,
veranlasst das Öffnen des PNP-Transistors und lässt damit genügend Strom
durch die Zener-Diode fließen, welche das Potential am FPGA_EINGANG auf
3,3V beschränkt.
[Bearbeiten] Gesamter Schaltplan und Aufbau
[Bearbeiten] Hardwarebeschreibungssprache VHDL[Bearbeiten] VHDL EinleitungVHDL ist eine hardwarebeschreibende Sprache. Damit wird dem FPGA vorgegeben, welche Verkettung der CMOS Bauteile freigegeben wird um die in VHDL eingegebenen Befehle in Hardware umzusetzen. Alle Signaldurchläufe durch das FPGA werden parallel ausgeführt, das macht das FPGA sehr leistungsstark. Es ist jedoch auch möglich Prozesse mit sequenzieller Struktur in VHDL zu realisieren. In unserem Fall wurden beide Arten der Signallaufstrukur gewählt. Um verschiedene externe Signale miteinander zu verbinden, werden interne Signale definiert. [Bearbeiten] VHDL ModuleinteilungEin komplettes VHDL-Programm setzt sich aus einzelnen Modulen zusammen, welche miteinander verknüpft sind. Diese Art von Programm ist für Teamarbeiten sehr gut geeignet, da die Aufteilung von Modulen an verschiedene Entwickler einfach möglich ist. Ein besonderes Augenmerk sollte dabei auf die Festlegung der Schnittstellen und Übergabewerte gelegt werden. Für das Ultraschallprojekt wurden die Module wie folgt festgelegt: Die externen Signale sind blau markiert und wurden schon beschrieben. [Bearbeiten] VHDL Modulschnitstellen
[Bearbeiten] VHDL-CODE
[Bearbeiten] PinbelegungNET "clk" LOC = AA12; [Bearbeiten] FunktionstestNatürlich ist es am einfachsten die Einstellung des Ultraschallsenders mit dem Oszilloskop nachzuvollziehen. Diese Anleitung soll aber vor allem dazu dienen, den Leuten eine Inbetriebnahme zu ermöglichen, die kein Oszilloskop zur Hand haben. Ganz allgemein ist jedem anzuraten, der Geräte neu einstellen will, wie auch bei der Modulentwicklung eine Reihenfolge zu verfolgen und Schritt für Schritt vorzugehen. Zur Vorbereitung sollten die Sensoren einigermaßen frei liegen und in ca. 30 cm Abstand ein flacher, parallel zu den Sensoren liegende Fläche stehen. Zu Anfang alle drei Potentiometer gegen den Uhrzeigersinn auf Anschlag drehen. Anschließend wird die Quelle (Netzgerät oder Batterien sind möglich) angeschlossen. Um die Bauteile nicht zu stark zu belasten und sie damit zu zerstören, ist eine Spannung von 5-20 V empfehlenswert. In der Testphase wurden 10 V verwendet, damit der Ultraschallimpuls ausreichend stark war. Die Potentiale am Eingang des Verstärkers IC2A liegen nah beieinander. Deshalb verändert man das Potentiometer R14 so lange, bis das FPGA das erste Mal einen Wert anzeigt. Damit ist der Offset des Signals knapp unterhalb des Spannungsendwertes der RC-Kurve. Vorsicht: Bitte darauf achten, dass man nicht zu weit dreht, denn das System ist diesbezüglich sehr empfindlich und größere Entfernungen nicht mehr einwandfrei gemessen werden können. Dann Poti R5 langsam im Uhrzeigersinn drehen, bis der zu erwartende Messwert stabil angezeigt wird. Nun sollte der Ultraschallentfernungsmesser eingestellt sein um Entfernung messen zu können. Jetzt kann der Ultraschallentfernungsmesser auf ein zu messendes Objekt ausgerichtet werden. Mit R12 lässt sich die Verstärkung von um Faktor 10 variieren. Das ermöglicht es Hindernisse, welche neben der Messstrecke sind und schwache Signale zurücklaufen lassen, auszublenden.
[Bearbeiten] FazitDieses Projekt der Ultraschallentfernungsmessung eignet sich hervorragend um verschiedene Grundschaltungen innerhalb eines Netzwerkes besser zu verstehen. Auch erste Schritte mit VHDL sind hiermit leicht zu realisieren. Erfolge sind bereits während dem Projekt nach den einzelnen Abschnitten zu erkennen. Durch die 7-Segment-Anzeigen ist die Funktionalität auch für Anfänger leicht ersichtlich und der Ultraschallentfernungsmesser eignet sich deshalb hervorragend als Vorführprojekt. Die Entfernungsmessung funktioniert bis zu 4 m zuverlässig.
[Bearbeiten] Siehe auch
|