Forum: FPGA, VHDL & Co. Bitstream vom Sensor triggern


von Massi (Gast)


Lesenswert?

Hallo zusammen,
ich wollte euch fragen, ob jmd mir Tipps geben möchte und zwar. Ich will 
eigentlich eine UART-Schnittstelle machen, ich hab einen Sensor, der 99 
bit sequentiell sendet und eine Takt von 40 kHz braucht. Meine Frage 
ist, wie kann ich das Bitstream ausm Sensor rausholen und dann triggern 
und danach in ASCII (Zahlen 0-9) umwandeln mit anderen Wörtern wie 
schreibe ich einen buffer.
Es wäre wirklich nett wenn jmd mir dabei beim verstehen helfen oder 
einpaar Tipps geben würde.

MfG

Massi

von Peter II (Gast)


Lesenswert?

Hast du mal eine Datenblatt von dem Sensor?

von Massi (Gast)


Lesenswert?

Peter II schrieb:
> Hast du mal eine Datenblatt von dem Sensor?

ja hab ich, der Sensor braucht 40 kHz wenn er es kriegt dann sendet er 
die Bitfolge. Die Bitfolge besteht aus 99 bits , so sehen aus 
(1-8databits-0-0)

von Massi (Gast)


Lesenswert?

ich will eigentlich verstehen, womit ich anfragen muss. ich weiß nicht 
genau wie es so Signal triggert werden sollte.

von chris (Gast)


Lesenswert?

Peter II schrieb:
> Hast du mal eine Datenblatt von dem Sensor?

die Frage zielte darauf ab, dass du uns das Datenblatt auch 
nennst/hochlädst.
Sonst kann dir niemand helfen

von Massi (Gast)


Angehängte Dateien:

Lesenswert?

chris schrieb:
> Peter II schrieb:
>> Hast du mal eine Datenblatt von dem Sensor?
>
> die Frage zielte darauf ab, dass du uns das Datenblatt auch
> nennst/hochlädst.
> Sonst kann dir niemand helfen

Ich hab nur eine alte Seite und darauf steht handschriftlich, dass er 
nur 40 kHz und 99 bits sendet (Bitfolge). ich hab aber eine Aufnahme vom 
Oszi die kann ich hochladen aber den zettel muss ich erst einscannen und 
dann hochladen. Das Signal ist nicht invertiert aber man kann es in VHDL 
invertieren lassen, das kann kein problem sein.

von René D. (Firma: www.dossmatik.de) (dose)


Lesenswert?

>ich will eigentlich verstehen, womit ich anfragen muss. ich weiß nicht
>genau wie es so Signal triggert werden sollte.

Getriggert wird auf das Start bit.

http://www.dossmatik.de/mais-cpu.html
lade den den Quellcode herrunter.
Im Verzeichnis rtl/device/uart/UART_RX_8N1.vhd

ist der Quellcode für den typischen UART Empfänger.

von Massi (Gast)


Lesenswert?

René D. schrieb:
>>ich will eigentlich verstehen, womit ich anfragen muss. ich weiß
> nicht
>>genau wie es so Signal triggert werden sollte.
>
> Getriggert wird auf das Start bit.
>
> http://www.dossmatik.de/mais-cpu.html
> lade den den Quellcode herrunter.
> Im Verzeichnis rtl/device/uart/UART_RX_8N1.vhd
>
> ist der Quellcode für den typischen UART Empfänger.


ich dank dir, aber kannst du nur kurz erklären, wie es funktioniert,,, 
ganz grob ;)

von René D. (Firma: www.dossmatik.de) (dose)


Lesenswert?

> ich dank dir, aber kannst du nur kurz erklären, wie es funktioniert,,,
> ganz grob ;)

-Grundzustand high.
-Dann kommt ein Start bit. Das ist Low.
-Dann kommen 8 Datenbits. (normalerweise das niederwertigste Bit zu 
erst)
-Dann geht es auf High und wartet mindestens eine Bitlänge, das ist das 
Stopbit

Das Stopbit ist geleichzeitig der Grundzustand für die nächste 
Übertragung.


Deine Angabe (1-8databits-0-0) könnte bedeuten
1 Startbit, 8 Datenbits, zwei Stopbits ist nur eine Vermutung.

Der VHDL code wartet 1,5Baud. Das ist die Mitte des ersten Bits. Der 
Zustand wird übernommen und 1Baud gewartet und so 8bit eingefangen.
Dann ist es wieder im Urzustand und wartet auf das Startbit.

von Massi (Gast)


Angehängte Dateien:

Lesenswert?

René D. schrieb:

> -Grundzustand high.
> -Dann kommt ein Start bit. Das ist Low.
> -Dann kommen 8 Datenbits. (normalerweise das niederwertigste Bit zu
> erst)
> -Dann geht es auf High und wartet mindestens eine Bitlänge, das ist das
> Stopbit
>
> Das Stopbit ist geleichzeitig der Grundzustand für die nächste
> Übertragung.
>
> Deine Angabe (1-8databits-0-0) könnte bedeuten
> 1 Startbit, 8 Datenbits, zwei Stopbits ist nur eine Vermutung.
>
> Der VHDL code wartet 1,5Baud. Das ist die Mitte des ersten Bits. Der
> Zustand wird übernommen und 1Baud gewartet und so 8bit eingefangen.
> Dann ist es wieder im Urzustand und wartet auf das Startbit.

Vielen Dank für deine Erklärung. Aber das Start-bit ist oder muss immer 
High sein. da im Hang eine Aufnahme von der Bitfolge. ich hab versucht 
aber im Terminal kommen blöde zeichen. sollte ich die 8bits in ascii 
konvertieren ??

von Massi (Gast)


Lesenswert?

Übrigens, ich verwende keine Rs232-schnittstelle bei Data-empfangen nur 
wenn ich die data an PC senden möchte (also als TX) für RX benutze ich 
ein normales I/O.

von Massi (Gast)


Lesenswert?

Ach ja ich habs verstanden. einfach dumm. Startbit ist low aber bei der 
Aufnahme ist High ;)

von Easylife (Gast)


Angehängte Dateien:

Lesenswert?

Dein Oszi Screenshot zeigt, dass das Startbit 0 ist (entspricht dem 
Standard), und du zwei Stopp-Bits hast (high - auch Standard).

Dazwischen liegen die 8 Datenbits.
Ich habe deinen Screenshot mal vergrößert, und anhand von Byte 4 siehst 
du ganz gut, wie die Bits liegen.

von Easylife (Gast)


Lesenswert?

Und zur Übung habe ich noch einen kleinen Fehler in die untere Bitfolge 
eingebaut ;-) Fröhliches Suchen wünsche ich.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Easylife schrieb:
> Fröhliches Suchen wünsche ich.
Naja, das war ja einfach. Die Parität stimmt nicht, weil offenbar ein 
Bit umgekippt ist...

von Easylife (Gast)


Lesenswert?

Ganz heiss, aber falsch ;-)

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.