mikrocontroller.net

Forum: FPGA, VHDL & Co. Steuerbit-Erkennung


Autor: Tobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Zusammen!

Ich würde gerne eine Zustandsmaschine in VHDL erstellen die folgendes 
tut:

1. Erkennen von drei seriellen Steuerbits.
2. Zustand umschalten anhand der erkannten Steuerbits
3. Solange im Zustand verbleiben, bis eine bestimmte Zeit (in Takten) um 
ist oder ein Signal gegeben wird wieder in den Zustand zum erkennen der 
Steuerbits zurückzukehren.

Steuerbits und zu verarbeitende Daten kommen hierbei über die gleiche 
Leitung.

Ich habe es bisher so gelöst, dass ich die Steuerbits in ein Register 
schiebe diese und dann mit Hilfe eines Zählers bei definiertem Zählwert 
auslese. Das klappt soweit wunderbar.

Mein Problem ist nun:

Wie kann ich elegant realisieren, dass der Zustand nur dann gewechselt 
wird, wenn ich das auch will. Oder anders: Wie kann ich bestimmen: "Lese 
jetzt wieder Steuerbits und schalte dann in diesen und jenen Zustand um" 
?

Beispiel:
Es soll so aussehen: Eine Bit-Kette kommt herein, die ersten 3 Bits sind 
die Steuerbits, daran anschließend eine "Leerstelle" und dann z.B. 16 
Bits die Auf einen Ausgang geleitet werden sollen. (Ausgabezustand). 
Anschließend soll der Automat wieder zurück in einen Modus schalten bei 
dem er die Steuerbits erkennt....am besten sogar noch ein Reset vorher 
ausführen...


Hoffe die Problematik ist klar geworden. Für Vorschläge und Ideen wäre 
ich sehr dankbar!

Gruß Tobi

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Eine Bit-Kette kommt herein, die ersten 3 Bits sind die Steuerbits
Ist das eine asynchrone Übertragung (wie RS232)
oder eine synchrone (wie SPI)?

> und dann z.B. 16 Bits die Auf einen Ausgang geleitet werden sollen.
Sollen die seriell auf 1 Ausgang ausgegeben werden,
oder auf 16 parallele Ausgänge?

Wie erkennst du den Beginn und das Ende der Bitstroms?

Autor: Tobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die schnelle Antwort!

Die Übertragung soll synchron sein, also ein Bit pro Taktperiode. Es 
soll später über die gleiche Leitung auch eine SPI Kommunikation laufen.
Die Bits sollen parallel auf 16 Ausgänge. Das mache ich mit einem 
Multiplexer und einem Zähler mit dessen Hilfe ich die CE-Eingänge der 
Ausgangs-FF ein und aus schalte.

Die letzte Frage ist eigentlich Teil meines Problems. Der Einfachheit 
halber gehe ich aber davon aus:
Einmal Steuerbits erkennen dauert 4 Takte.
Einmal Ausgabemodus dauert 16 Takte.
Dann geht alles wieder von vorne los. Letztendlich wird es aber 
natürlich noch mehr Zustände geben die auch verschieden lang sein 
können. Ich habe mir etwas vorgestellt, wie ein Signal, dass am Ende des 
Prozesses, also wenn die Arbeit innerhalb eines Zustands sozusagen 
abgeschlossen ist, signalisiert, dass jetzt wieder in den 
Erkennungsmodus umgeschaltet werden kann.

Gruß Tobi

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.