Forum: Mikrocontroller und Digitale Elektronik state machine v Zustandsmaschine


von Stephan Schwarz (Gast)


Lesenswert?

Hallo Jungs


Ich bin auf der Suche, nach einer Beschreibung einer solchen.
Wie ist sowas aufgebaut und welche Aufgaben, kann ich damit erledigen?
Wäre nett, wenn jemand einen Link hat.
Im WWW finde ich zwar viele Dokumente, die den Begriff benutzen, aber
niemand erklärt den Aufbau.
Ist wahrscheinlich alles Basic Know-How, aber mir leider unbekannt.

Danke

von Markus (Gast)


Lesenswert?

Eine Zustandsmaschine (als Software) hat einfach verschiedene Zustände
und eine große Schleife mit vielen if-Abfragen, in denen steht, unter
welchen Bedingungen sie von einem Zustand in den nächsten wechseln
darf.
Der Zustand selber wird einfach in einer Variablen gespeichert.

Tank befüllen:

Zustand = Warten
do
  wenn Taste_Start = gedrückt und Tank nicht voll dann
      Wasser marsch und Zustand = befuellen.
  wenn Zustand = befuellen und Taste_Stop = gedrueckt,
      dann Zufluß abschalten und Zustand = Warten
  wenn Zustand = befuellen und Tank = voll, dann
      Zufluß abschalten und Zustand = voll.
loop


Das Ganze kann man auch noch grafisch darstellen, damit kann man schön
sehen wann was passieren darf und was nicht.

Benutzt wird das z.B. bei Steuerungen, bei Signalauswertung usw. usf.

Markus

von Stephan Schwarz (Gast)


Lesenswert?

Danke Markus

Ich hatte mir das etwas komplizierter vorgestellt.
Aber ist ja auch schön, wenn mal was einfach ist.

von Peter Fleury (Gast)


Lesenswert?

Eine professionelle Beschreibung über State-Machines inklusive
Source-Beispielen findet sich hier:

http://www.embedded.com/shared/printableArticle.jhtml;jsessionid=UIDLBWV1415MWQSNDBCSKHY?articleID=10700829

von Jim (Gast)


Lesenswert?

"Ich hatte mir das etwas komplizierter vorgestellt.
Aber ist ja auch schön, wenn mal was einfach ist."

Das ist relativ. In der Informatik wird eine Zustandsmaschine sehr wohl
formal mathematisch behandelt und dann ist das nicht mehr ganz so
trivial.
Es hängt halt davon ab, wofür Du das brauchst. Für eine
Controller-Anwendung ist das sicherlich nicht notwendig.

von Achim Walther (Gast)


Lesenswert?

Hallo,

man kann sowas auch in Hardware bauen. Haben wir vor 14 Jahren im
Studium noch gemacht und wurde Zustandsautomat genannt. Das Prinzip:
Mittels Flip-Flops oder anderen diskreten Speichern merkt sich die
Maschine den Zustand (als Bitset). Im Zustandsdiagramm sind die
zulässigen Übergänge definiert - diese werden mittels diskreten
Logikbausteinen geschaltet. Was dabei herauskommt lässt sich ähnlich
wie das Beispiel von Markus umgangssprachlich beschreiben:
    wenn Zustand=0100 und Eingang_x=1 und Eingang_y=0
        Wechsle in Zustand 0101

Über den Zustand kann man die Ausgänge beschalten, also z.B. eine
Anzeige oder einen Motor steuern. Seit es Mikrocontroller zu
erschwinglichen Preisen gibt, hat sich das Aufbauen mit diskreten
Logikbausteinen aber wohl erledigt...

Achim.

von Uwe Nagel (Gast)


Lesenswert?

Der diskrete Aufbau hat sich garantiert nicht erledigt. Was meinst Du
wozu die ganzen programmierbaren Logikbausteine gut sind?
Allerdings werden für "langsame" Aufgaben heute sicher
Mikrocontroller eingesetzt, wo früher diskrete Logik oder vielleicht
ein PAL unumgänglich waren.

von Jörn (Gast)


Lesenswert?

Das ist eine gute Methode, um in VHDL "Programme" auf einem FPGA zu
programmieren.

Ein gutes State-Machine-Beispiel für Mikrokontroller (AVR) ist das
Programm, das auf dem AVR-Butterfly-Board läuft. Sourcen sind frei
verfügbar.

jörn

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.