Einsatz anwenderprogrammierbarer Schaltkreise zur Steuerung eines Roboterfahrzeuges
Der Versuch basiert auf einem batteriebetriebenen, durch PLD-Schaltkreise gesteuerten Roboterfahrzeug (ASIC-Auto). Er vervollkommnet anhand eines Komplexbeispieles die Kenntnisse und Fertigkeiten im Umgang mit den gegebenen Entwurfssystemen und stellt bei der Synthese der Schaltungen und Automaten gehobene Ansprüche an den Entwerfer. Neben den erforderlichen Kenntnissen beim Schaltungsentwurf wird anwendbares Wissen auf den Gebieten der Schaltungstechnik, Regelungstechnik, Automatentheorie, Sensortechnik sowie Meßtechnik verlangt.
Anleitungsheft
Aufbau
Die Grundlage des Komplexversuches bildet das im folgenden vorgestellte fahrspurerkennende Modellfahrzeug. Hierbei handelt es sich um ein vorderachsgelenktes Automodell im Maßstab 1:10. Die mit dem eingebauten Elektromotor und einem 5:1-Getriebe erreichbare Höchstgeschwindigkeit beträgt ca. 1 m/s. Das Fahrzeug verfügt über sechs Sensoren (IRED-Reflexkoppler) zum Abtasten bzw. Erfassen einer schwarzen Fahrspur. Weiterhin existieren zwei Sensoren zum Erfassen eines Strichcodes, welcher neben der Fahrbahn aufgebracht werden kann. Ein weiterer Sensor erfasst die Drehzahl des linken Hinterrades, welches über ein Differentialgetriebe entkoppelt ist. Das Fahrzeug wird über einen Servo, wie er in Modellfernsteueranlagen üblich ist, gelenkt. Als Antrieb dient ein Elektromotor, welcher durch eine Leistungsstufe angesteuert wird.
Die optische Kontrolle der aktuell erfassten Fahrspur (ca. 5 mm breite schwarze Linie) erfolgt über sechs im Rückfenster angeordnete Leuchtdioden. Eine rote LED signalisiert durch Warnblinken die Erschöpfung der Akkumulatoren (Unterspannungsanzeige). Durch ein dreistelliges Sieben-Segment-Display ist eine Drehzahl-, Geschwindigkeits-, Zeit-, Weg,- oder Strichcodeanzeige möglich.
Die Stromversorgung wird über 5 NiCd-Akkus gewährleistet. Da die Zellenspannung abhängig vom Entladezustand ist, wurde die Betriebsspannung der elektronischen Baugruppen stabilisiert. Die Elektronik des ASIC-Autos befindet sich auf zwei Platinen:
- auf einer sogenannten Grundleiterplatte, welche fest im Modell eingebaut ist
- auf mehreren austauschbaren Anwenderleiterplatten
Die Grundplatine enthält neben allen erforderlichen analogen Baugruppen (AD-Wandler, Treiberstufen, Spannungsstabilisierung und Taktgeneratoren) PLD-Schaltkreise, welche die Ansteuerung der IRED-Reflexkoppler zur Fahrspurabtastung und deren Grobauswertung übernehmen sowie Untertakte zur Verfügung stellen. Dieser digitale Teil der Grundleiterplatte wurde mit zwei Zero-Power-IC vom Typ PALCE 22V10Z realisiert. Die Anwenderleiterplatte ist mit der Grundleiterplatte über zwei 26-polige indirekte Steckverbinder C1 und C2 verbunden und damit austauschbar. So wird der Einsatz verschiedener ASIC's ermöglicht, z.B. Realisierungsvarianten mit SPLD-, CPLD- oder auch FPGA/LCA-Schaltkreisen. Die Anwenderleiterplatten vom Typ "SPLD1" und "SPLD2" (GAL-Version) sind mit Schwenkhebelfassungen zur Aufnahme von 24-poligen PLD-Typen bestückt, zum Beispiel für PALCE 22V10, 20V8 und GAL 20RA10. Der Einsatz von FPLA-Schaltkreisen (GAL 6002) ist auf diesen Anwenderleiterplatten ebenfalls möglich. Diese Platinen gestatten außerdem eine Modifikation der Sockel-Anschlußbelegung über setzbare DIP-Schalter. Die Belegung der Steckverbinder sowie die Konfigurationsmöglichkeiten der Anwenderleiterplatten sind im Anhang ersichtlich.
Die Übersicht des gesamten Systems wird im folgendem Blockschaltbild dargestellt:
Bild 1: Blockschaltbild
Takterzeugung und Power-On-Reset
Für die synchronen Baugruppen ist ein Systemtakt (Clk) von 20 kHz ausreichend. Er wird auf der Grundleiterplatte durch einen Oszillator (B 556) generiert. Ein Teiler (PALCE 22V10) erzeugt die symmetrischen Untertakte UT_1 bis UT_9, welche auf den Steckerleisten C1 und C2 zur Verfügung stehen (siehe Anhang B). Beim Einschalten der Betriebsspannung wird ein Power-On-Reset aktiv, welches die Takte synchronisiert und alternativ zur Reset-Taste ein User-Reset auf der Anwenderplatine auslöst. Der 20 kHz-Systemtakt wird gegenüber den Untertakten (UT) um einige Mikrosekunden verzögert, um ein sicheres Einschwingen der Signale bei synchronen Schaltungen zu gewährleisten
Lenkservo
Ein in der Modellbaubranche übliches Servo besteht aus einem Getriebemotor mit Rückkopplung des Stellwinkels zu einer entsprechenden Auswerte- bzw. Regelelektronik, welche mit im Servogehäuse untergebracht ist. Näheres zum Aufbau und der Funktionsweise von Servos findet sich in [2] oder ausführlich in [6].
Es findet das Prinzip der Pulslängenmodulation Anwendung: Der Sollwert wird über die Pulsbreite codiert. Das über den Steckverbinder C2 zur Verfügung gestellte Signal "Gr_tkt" entspricht dem im Bild 2 dargestellten Servoimpuls mit t=1,6 ms.
Bild 2: Servo-Ansteuerimpuls
Um eine Zerstörung des Servos zu vermeiden, darf bei einer Periodendauer von T=12,8 ms die Impulsbreite den Bereich von 1,2 ± 0,4 ms nicht überschreiten, das heißt:
Vollausschlag rechts: | 0,8 ms |
Mittelstellung: | 1,2 ms |
Vollausschlag links: | 1,6 ms |
Das Servo ist eine mechanische Baugruppe und reagiert deshalb nicht trägheitslos. Die Stellzeit des eingesetzten Servos von der Stellung "Vollausschlag links" bis "Vollausschlag rechts" beträgt ca. 150 .. 200ms. Bei maximalem Lenkausschlag beträgt der Wendekreis des Modellautos ca. 120 cm.
Fahrspurabtastung
Die Sensorik bildet einen sehr wichtigen Teil des fahrspurerkennenden Automodells. Sie besteht aus sechs unter der Vorderachse angeordneten IRED-Reflexkopplern.
Bild 3: Anordnung der Sensoren
zur Fahrspurabtastung
Ein Reflexkoppler bietet den Vorteil, dass Sender und Empfänger sowohl spektral als auch geometrisch aufeinander abgestimmt sind. Den Sender des Reflexkopplers bildet eine Infrarotleuchtdiode und den Empfänger ein Fototransistor.
Die Ansteuerung der Sender sowie die Auswertung bzw. Digitalisierung der empfangenen Signale wird im Zeitmuliplexbetrieb realisiert. Um die Reichweite der IRED-Sender zu vergrößern und somit eine sichere Fahrspurerkennung zu gewährleisten, werden die IRED mit dem doppelten Maximalstrom betrieben (Pulsung). Außerdem wird durch die multiplexe Ansteuerung ein Übersprechen der Nachbarempfänger verhindert.
Dies geschieht durch ein 4-Bit-Schieberegister mit nachgeschalteten Stromverstärkerstufen (Bild 4). Dabei wird die Fahrspur im Normal-Modus einmal und im Doppel-Modus zweimal innerhalb eines Servogrundtaktes von 12,8 ms abgetastet, was einem Durchschieben einer '1' entspricht.
Bild 4: Ansteuerung der IRED-Sendedioden zur Fahrspurabtastung
Die Modi können mittels eines DIP-Schalters auf der Grundleiterplatte eingestellt werden. Weiterhin läßt sich auch die Fahrspur unter der Hinterachse abtasten, indem die zwei mittleren Sensoren manuell umschaltbar sind (Schiebeschalter am Chassis).
Um eine optimale Anpassung an die verwendete Fahrspur bzw. an die Reflexionseigenschaften des verwendeten Papiers zu gewährleisten, wurde der Arbeitspunkt der Fototransistoren einstellbar gestaltet. Das Empfängersignal wird über einen AD-Wandler (Triggerschaltkreis) geführt und mit den entsprechenden Sendersignalen des Schieberegisters verknüpft, um Fremdlicht- und Übersprecheinflüsse auszuschalten. Dies geschieht über eine Torschaltung deren Ausgang mit der jeweiligen Fahrspuranzeige-LED verbunden ist und außerdem auf den Steckverbinder C2 (siehe Anhang B) führt. Bild 5 zeigt die Schaltung des Empfängerteils der inneren Fahrspurerkennung. Das Ausgangssignal ist Low-aktiv, d.h. die Kontroll-LED leuchtet bei Schwarzerkennung.
Bild 5: Empfängerschaltung der Fahrspurabtastung
Die von der Grundleiterplatte generierten und über die Steckverbinder C1 und C2 geführten Signale werden durch ein LOG/iC-Testprogramm "TEST.DTP" nachgebildet, und können somit als Eingabevektoren für die Simulation des geforderten Schaltungsentwurfes verwendet werden. Das als Grundvariante gegebene Testprogramm ist noch erweiterungsfähig.
Fahrmotoransteuerung
Das Automodell soll durch das Schalten von entsprechenden Gängen verschiedene Geschwindigkeiten fahren. Die Steuerung der Fahrmotordrehzahl wird über ein getastetes Ab- und Anschalten des Elektromotors realisiert (Prinzip eines elektronischen Fahrtreglers). Eine Treiberstufe zur Leistungsverstärkung ist auf der Grundleiterplatte vorhanden. Über drei bzw. vier auf der Anwenderleiterplatte vorhandene Schalter "Gang 1" bis "Gang 3" (diese sind mit S_Code1..3 verbunden) ist eine Geschwindigkeits- bzw. Gangeinstellung möglich. Für die jeweiligen Gänge ist ein geeignetes Tastverhältnis erforderlich. Dabei soll eine Periodendauer T von 6,4 ms eingehalten werden. Die Motordrehzahl ist jedoch nichtlinear abhängig von der Pulsbreite. Die Motor-Impulsbreiten sollten zwischen 1,2 und 6,4 ms liegen.
Die Gänge sind binär kodiert, wobei die Schalterstellung 000 als Leerlauf genutzt wird. Durch die äußere Verdrahtung der SPLD-Anwenderleiterplatten wird in dieser Schalterstellung eine Umschaltung auf Strichcodesteuerung realisiert, falls ein entsprechender Strichcode-PLD entworfen wurde. D.h. max. 16 Geschwindigkeitsstufen können über die Strichcodeauswertung realisiert werden.
Ein Fahrtrichtungswechsel (rückwärts) ist ebenfalls möglich. Mit dem H-aktiven Ausgangssignal "Rueck" wird der Elektromotor umgepolt. Dabei leuchtet eine rote LED am Heck des Automodells. Eine wirkungsvolle Wirbelstrom-Kurzschluss-Bremse, welche durch das Signal "Brake" ausgelöst wird, ist vorgesehen. "Brake" unterbricht dabei das Ansteuersignal "Motor" und schließt die Motorwicklung kurz. Das eingebaute 5:1-Getriebe gewährleistet stabile Fahrgeschwindigkeiten und eine geringe Stromaufnahme des Motors.
Strichcode
Der Strichcodeleser dient zum Bereitstellen zusätzlicher Steuerinformationen. Sie können sowohl der Beeinflussung der Lenkung als auch der Fahrmotorsteuerung dienen. Zum Beispiel gestattet die Strichcodeauswertung 8 Geschwindigkeitsstufen und weitere 8 binäre Verkehrszeichen zur Vervollkommnung der Eigenschaften des Roboterfahrzeuges.
Im gegebenen Beispiel (Bild 6) besteht der Strichcode aus einer inneren Taktspur und einer äußeren Informationsspur. Die Taktspur dient zur geschwindigkeitsunabhängigen Erfassung der Information. Die Informationsspur enthält eine 4-Bit-Binärzahl, wobei ein schwarzer Strich eine logische "1" darstellen könnte. Im gezeigten Beispiel wurde ein Start- und Prüfbit zur Fehlersicherung hinzugenommen. Es können auch eigene Strichcodes entworfen, gedruckt und gelegt werden. "Private S-Codes" müssen dann anstatt der Vorgabe-Codes an den gleichen Stellen der Fahrstrecke liegen. Spezielle Hinweise in den Aufgabenstellungen sind jedoch zu beachten.
Bild 6: Strichcode mit Takt- und Datenspur
Die auf der rechten Seite des Fahrzeuges angebrachten IRED-Reflexkoppler (MB 125) zur Abtastung der Takt- bzw. Informationsspur werden mit dem doppelten des maximal zulässigen Stromes betrieben, um Nebenlichtbeeinflussung zu unterdrücken und um die Reichweite zu erhöhen. Deshalb dürfen diese Sensoren nur im Impulsbetrieb angesteuert werden, wobei ein Tastverhältnis von mindestens 1:1 eingehalten werden muß. Dabei ist zu beachten, daß die Pulsfrequenz nicht zu klein gewählt wird, weil ansonsten ein Überfahren der Informationsspur innerhalb der Abtastpause nicht mehr ausgeschlossen ist. Der Abstand der IRED-Koppler beträgt 40mm innen und 80mm außen, gemessen vom Rand der schwarzen Fahrspur. Daraus ergibt sich der Abstand Fahrspurrand - Strichcode von ca. 3 cm. Der Schalter SW 12 dient zum Umschalten zwischen Parallelbetrieb und Einzelansteuerung der zwei IRED-Sender.
Siebensegmentanzeige
Durch die Verwendung einer über Steckverbinder C3 aufsteckbaren dreistelligen LED-Siebensegmentanzeige lassen sich folgende Parameter darstellen:
- Geschwindigkeit
- Drehzahl
- aktueller Gang
- Strichcode
- Weglänge
- Zeit
Bild 7: Anzeigemodul mit Stecker C3
Auf den SPLD- und CPLD-Anwenderleiterplatten ist ein PLD (GAL) als Siebensegment-Decoder vorgesehen. Für die Anzeige von mehr als einem Digit mit nur einem Siebensegment-Decoder muß die Ansteuerung im Multiplexbetrieb erfolgen. Die Freischaltung der einzelnen Stellen erfolgt durch die L-aktiven Ausgangssignale "Digit1..3". Die Umschaltung zwischen Geschwindigkeits-/Weganzeige und Strichcodedarstellung erfolgt über Untertakt_4 (siehe Anhang A und C). Bei Verwendung der Anwenderleiterplatte vom Typ "SPLD2" ist die Anzeige fest mit Anwenderleiterplatte verbunden.
Anwenderleiterplatte vom Typ "SPLD2"
Geschwindigkeits-, Weg- und Zeitmessung
Die Meßsignalgewinnung für die Geschwindigkeit bzw. den Weg erfolgt über eine am linken Hinterrad angebrachte Geberscheibe, die durch einen Reflexkoppler abgetastet wird. Das Empfängersignal "Rad-Imp" wird durch einen auf der Anzeigebaugruppe befindlichen einstellbaren Triggerschaltkreis digitalisiert (Bild 7).
Beachte: Die Anzeigebaugruppe ist steckbar - falls der Radimpuls benötigt wird, muß die Anzeigeplatine über Stecker C3 auf den Anwenderleiterplatten aufgesteckt sein !
Der Reflexkoppler arbeitet statisch, das heißt die Sendediode leuchtet permanent (falls der DIP-Schalter "Rad_Send" eingeschaltet ist). Die Tachoscheibe hat 32 symmetrische Markierungen, der Hinterraddurchmesser beträgt 52 mm.
Die Maximalgeschwindigkeit des Autos liegt bei 1 m/s = 3,6 km/h. Da die Geschwindigkeitsanzeige dem Modellcharakter des Fahrzeugs Rechnung tragen soll, erfolgt die Darstellung in Zehntel km/h. Um eine bessere Auslastung der Anzeige zu gewährleisten kann dieser Wert noch verdoppelt werden. Somit beträgt die größte darzustellende Zahl 3,6 x 10 x 2 = 72.
Als Meßverfahren bietet sich die Zählung der Radimpulse in einem definierten Zeitfenster an. Dafür existiert auf den Anwenderleiterplatten ein Zeitgeber mit dem Timerschaltkreis B555, welcher eine Zeitbasis von 365 ms bei einer Periodendauer von ca. 450 ms erzeugt. Außerdem ist zur Steuerung von Zeitabläufen und Pausen ein einstellbares Zweifach-Monoflop V4538 vorhanden, welches durch eine HL-Flanke der Ausgänge MF1 bzw. MF2 von "Motor" ausgelöst wird.
Monoflop 1: einstellbar von 0,2...2,5 sek (Standard: T1=1,0 sek).
Monoflop 2: einstellbar von 0,2...5 sek (Standard: T2=2,0 sek).
Das Zeitverhalten ist durch Leuchten der jeweiligen grünen Kontroll-LED ersichlich. Die MF-Ausgangssignale T1/T2 sind High-aktiv und liegen mittels DIP-Schalter alternativ zu Code_OK/S_Code4 am Motorschaltkreis und Weg/Tacho-GAL an. Zusätzlich ist Pin 8 mit Pin 5 des Weg/Tacho-Schaltkreis verbunden (siehe Anlage C und Bild 8). Beide Monoflops sind retriggerbar, d.h. die Ausgangsimpulse lassen sich verlängern. Zur Zwischenspeicherung der Tacho- oder Wegsignale dient ein Buffer-PLD, welcher durch einen DIP-Schalter "Buf_En" aktivert bzw. ausgeschaltet werden kann.
Bild 8: Monoflopschaltung
Anordnung der Baugruppen und Signale am Beispiel einer SPLD-Platine
Auf den Anwenderleiterplatten befinden sich alle notwendigen Schaltkreisfassungen für die zu realisierenden digitalen PLD-Bausteine. Hier müssen DIP-Schalter zur Konfiguration gesetzt werden. Die Verbindug mit der Grundleiterplatte erfolgt über zwei 26-polige indirekte Steckverbinder C1 und C2. Ihre Belegung befindet sich im Anhang B. Die Anordnung und Funktion der IC-Fassungen sowie der DIP-Schalter geht aus folgenden Bildern und Tabellen hervor :
Bild 9: Anordnung der Bauelemente auf der Anwenderleiterplatte SPLD1
PLD / Part | Funktionsbeschreibung |
---|---|
Status | Aufbereitung der empfangenen Fahrpursignale für die Weiterleitung an die Lenkung, Fehlererkennung und Statusverarbeitung über Stat1..4 möglich |
Lenkung | Generierung eines optimalen Servo-Ansteuerimpulses, Reaktion bei Spurfehlern, (Stat1..4 als Ein- oder Ausgänge verwendbar) |
Motor | Geschwindigkeits-, Fahrtrichtungs- und Zeitablaufsteuerung in Abhängigkeit von Gangschaltern, Strichcodes und/oder Statussignalen |
S_Code | Ansteuerung der Strichcodesender, Empfangssignalaufbereitung, Einlesen und Pufferung des Strichcodes, evtl. Erkennung falscher Codierungen |
Sound | Erzeugung von Geräuschen, z.B. Fahrgeräusch und Alarm, Bereitstellung diverser Takte bzw. Erzeugung größerer Zeitfenster |
Weg/Tacho | Zählung von Ereignissen, z.B zur Geschwindigkeitsermittlung des Autos über den Rad-Impuls der Geberscheibe oder zur Zeit-Weg-Messung |
Buffer | Zwischenspeicherung der Zählerstände, Anpassung an den Decoder |
Decoder | Siebensegmentdecoder mit Muliplexing der Eingänge und Digits |
Bezeichnung | Funktion |
---|---|
SW1-1 | Umschaltung UT_2 / UT_3 für 'Motor', Pin 1 |
SW1-2 und 1-3 | Umschaltung CLK / UT_1 für 'Lenkung' und 'Status', Pin 1 |
SW2-1 | Umschaltung Gr_tkt / RESET für 'Motor', Pin 13 |
SW2-2 | Umschaltung Gr_tkt / RESET sowie GAL 6002 I.-Clk / 22V10, 'Lenkung' |
SW2-3 | Umschaltung Gr_tkt / RESET für 'Status', Pin 13 |
SW3 und SW4 | Zuschalten des Servomotors / Fahrmotors ( on / off) |
SW5 | Umschaltung Stat1, UT_1, UT_6, UT_9 nach Pin 1, 'Sound' |
SW6 | Setzen von Pin 6 'Motor' auf Low/High |
SW7 | Umschalten von Pin 7 'Motor' auf Code_OK/Monoflop1- Ausgang (T1) |
SW8 | Umschalten von Pin 8 'Motor' auf S_Code_4/Monoflop2- Ausgang (T2) |
SW9 | Umschaltung CLK / Rad-Imp. für 'Tacho', Pin 1 |
SW10 | Einschalten des IRED-Senders "Rad_S" an der Hinterrad-Geberscheibe |
SW11 | Setzen von Pin 13 am 'Buffer' zum enablen/disablen |
SW12 | Umschalten: Einzel- (Pin 22/23) und Parallelmode (23) der S_Code-Sender |
Ta 1 | RESET-Taster |
Gang 20... 23 | Schalter zur Gangeinstellung für 'Motor' |
MP1, MP2, MP3 | Meßpunkt: Masse, Servoimpuls, Motorimpuls |
Die Anzeigeleiterplatte mit den drei Siebensegmentanzeigen kann über C3 aufgesteckt werden.
Achtung Auf dieser Platte befindet sich die Triggerung für die Radimpulsgenerierung, d. h. falls der Weg/Tacho- PLD eingesetzt wird muß die Anzeige gesteckt sein Die Schaltkreisfassungen sind sowohl untereinander, als auch mit den entsprechenden Steckverbindersignalen verdrahtet, wobei sich die elektrische Verbindung aus der Zuordnung der Signalnamen ergibt (siehe Anhang).
Anordnung der Baugruppen und Signale der CPLD-Platine
Die CPLD-Anwenderleiterplatte ist für AMD-CPLD vom Typ MACH 220 bzw. 221 mit insgesamt 2x48 konfigurierbaren Makrozellen ausgelegt. Die bisherigen, kleineren und einfachen Funktionsbaugruppen werden nun (mit Ausnahme des Siebensegmentdecoders) in einem CPLD integriert. Im MACH 220 sind Mehrtaktsysteme realisierbar - max. 4 verschiedene Takte an Pins 15, 16, 49, 50. Dadurch kann die Zeitablaufsteuerung für bestimmte Entwürfe besser abgestimmt werden. Mittels der Schalter UM7 und UM8 können 5 Taktzeiten selektiert werden. Testpunkte (Aus-/Eingänge TP1 .. TP4) zur Anzeige diverser nutzereigener Zwischen- oder Ausgangssignale sind an den E/A-Pins 21, 22, 23, 24 vorhanden. Diese Pins können auch zur Eingabe von Stimuli verwendet werden.
Anlage D zeigt die Schaltungsübersicht dieser austauschbaren Platte.
Zusätzlich existiert eine Hinderniserkennungselektronik nach dem Radarprinzip. Die Reichweite ist auf ca. 35 cm eingestellt. Bei erkanntem Hindernis wird ein Signal "Hind" zur weiteren Verarbeitung generiert, welches optisch und akustisch feststellbar ist. Somit lassen sich Ausweichmanöver im CPLD implementieren. Nachteilig beim Mach220 ist der hohe Eigenstromverbrauch (ca. 200mA). Um Strom zu sparen, läßt sich die Hinderniserkennungsbaugruppe abschalten.
Die FPGA-Platinen
Die größte Komplexität der Gesamtschaltung wird durch den Einsatz von FPGAŽs erreicht, was jedoch mit erheblich vielfältigeren Entwurfsproblemen verbunden sein kann. Vorteilhaft ist hierbei, daß der FPGA zum Umprogrammieren nicht mehr aus der Fassung gezogen werden muß, denn als Konfigurationsspeicher dient ein EEPROM. Der bei der FPGA1"-Platine verwendete AT 29C256 mit der Organisation 32k x 8 bit kann sogar 8 verschiedene Designs zugleich speichern. Durch Anwählen der gewünschten Konfiguration über DIP-Schalter ist ein schneller Designwechsel und damit eine gute Testbarkeit möglich. Ein weiterer Vorteil für das batteriebetriebene ASIC-Auto ist der sehr geringe Eigenstrombedarf des FPGA. Da die Schaltungsdaten beim Abschalten der Betriebsspannung "vergessen" werden, muß man den FPGA nach dem Einschalten durch Drücken der Taste "Prog" neu laden. Der Ladevorgang wird durch die rote LED angezeigt (ca. 0,5 sek.).
Bei der Realisierung mit entsprechenden Anwenderleiterplatten kommen die XILINX-LCA vom Typ XC3042PC84 und XC3195APC84 zur Anwendung (siehe Anhang E und F).
Bild 10 zeigt die Anordnung der Bauelemente auf der Anwenderleiterplatte "FPGA1" und Bild 11 die Adressierungsmöglichkeiten des Flash-EPROMS.
Zu beachten ist, daß keine Monoflops (MF1, MF2) zur Verfügung stehen, d.h. die in den Aufgabenstellungen geforderten Zeiten sollten nun über die entsprechende Anzahl von “Timer“-Takten generiert werden.
Die LCA-Platine "FPGA2" enthält einen XC3195A mit großer Gatterkapazität und kann entweder über einen seriellen EPROM (AT17C128) oder direkt über eine PC-Schnittstelle geladen werden. Auf dieser Anwenderleiterplatte sind verschiedene Hindernissensoren aufsteckbar. Durch Umschalten (XC3195/XC3042) ist die "FPGA2"-Anwenderleiterplatte
auch für den Einsatz von XC3042-LCA geeignet.
XC3042PC84: 3000 Gatter, 480 FF, 96 IOB, 144 CLB
XC3195APC84: 7500 Gatter, 1320 FF, 176 IOB, 484 CLB
Testpunkte (Aus-/Eingänge TP1 .. TP5) zur Anzeige diverser nutzereigener Zwischen- oder Ausgangssignale sind an den E/A-Pins 5, 8, 9, 10 und 11 vorhanden und mit einer Kontroll-LED verbunden. Diese Anschlüsse sind auch zur Eingabe von Stimuli geeignet, indem man Input-Pins konfiguriert.
Ziel des Entwurfes mit LOG/iC ist es, ein gültiges XNF-File zu erzeugen, welches die Schnittstelle zur Entwurfssoftware XACCT bildet.
Dieses XNF-File wird folgendermaßen weiterbearbeitet:
Ablauf mit XACCT für File *.XNF (hier TEST.XNF):
- z.B. PC 8 nutzen; unter MSDOS arbeiten
- File *.XNF in ein extra angelegtes Dir. unter C:\D\USER\... kopieren
- Abarbeitung folgender XACCT-Programmschritte:
- xnfmerge TEST
- xnfprep TEST
- xnfmap -p 3042PC84-50 TEST.xtf
- map2lca TEST
- apr -w TEST.lca TEST.lca (ohne *.cst-file, d.h. Pinbelegung im *.ddv-File)
- makebits -c -t TEST
- makeprom -u 0 TEST
- File TEST.mcs nach LW T: kopieren
- Programmer für EEPROM AT29C256 auf Programmer-PC aktivieren
- TEST.mcs als Intel-Format laden und "brennen"
Bild 10: Anordnung der Baugruppen der Anwenderleiterplatte FPGA1
Bezeichnung | Funktion |
---|---|
MP1, 2, 3 | Meßpunkt: Servo, Motor, Masse |
S1 | Zuschalten des Servomotors ( on / off ) |
S2 | Zuschalten des Fahrmotors ( on / off ) |
S3 | Setzen von Pin 6 des LCA auf Low/High |
S4 | Setzen von Pin 53 des LCA auf Low/High |
S5 | Zuschalten des Senders für Radsensor 'Rad_S'/'Tacho_S' |
A12 | Setzen von Pin 2 des Flash-PEROM ('A12') auf Low/High |
A13 | Setzen von Pin 26 des Flash-PEROM ('A13') auf Low/High |
A14 | Setzen von Pin 27 des Flash-PEROM ('A14') auf Low/High |
SW10-12 | Schalter für Gänge - Bitstelle 20..22 und 'Rueck' (H-aktiv) |
SW13 | z.B. Rückwärtsschalter, Setzen von Pin 27 des LCA (H-aktiv) |
LED | rote LED zur Konfigurationsanzeige |
TP1-5 | Anzeige und Testpin des Signals vom Pin 10, 8, 11, 9, 5 des LCA (diese Pins sind frei verfügbar, auch als Eingänge) |
Ta1 | RESET - setzt LCA-Reset auf L bzw. Reset (C2:A11) auf H |
Ta2 | Taste setzt D//P-Eingang auf Low; Rekonfiguration des LCA |
Bild 11: Flash-PROM-Adressumschaltung
Um die Entwürfe nach der Simulation auch im Echtzeitverhalten zu testen bzw. Signalmessungen vorzunehmen, existiert eine elektronische Schaltung, welche die Sensorsignale, Taktimpulse und Aktoren der im ASIC-Auto vorhandenen Grundleiterplatte emuliert. Es lassen sich alle Anwenderplatten mit ihren Konfigurationen aufstecken. Technisch gesehen ist das EMU-Board ein 2. Fahrzeug, jedoch ohne Chassis, Radantrieb und Lenkungsmechanik mit folgenden Vorteilen:
- Der Strichcodeleser lässt sich wesentlich einfacher und sicherer bedienen, d.h. man kann die gewünschten Strichcodes unter dem Leser vorbeiziehen, wobei ein hinterer Anschlag und der richtigem Abstand zum IRED-Sende/Empfangssystem gewährleistet ist
- Gut zugängliche Messpunkte der Signale 'Servo', 'Motor', 'Rück', S-Code-Empfänger d.h. die Messung wird einfacher und übersichtlicher
- Die Fahrspur-IRED-Sensoren wurden durch Schalter ersetzt; die gelben Kontroll-LEDs sind vor den Schaltern angeordnet.
- Die Impulse der auf dem EMU-Board nicht vorhandenen Radgeberscheibe werden durch einen mit Potentiometer verstellbaren Taktgenerator erzeugt; angezeigt mittels einer gelben 'Speed-LED'
- Die aktuelle Stromaufnahme wird ständig angezeigt (ohne Anwenderplatte ca. 0,23 A)
- Die Spannungsversorgung erfolgt durch ein kurzschlussfestes Netzteil (keine Akkus)
EMU-Board
Tips und Tricks beim Entwurf, Messen, Testen und Fahren
Man sollte stets einen Blick auf die Stromaufnahme werfen, um Signal-Crashs rechtzeitig zu erkennen.
Bei Messungen mit dem Oszillographen darf der Masseanschluss nicht vergessen werden.
Bilder
Vorderansicht
Seitenansicht
Nur Fliegen ist schöner.
...und Tschüss.