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
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)
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
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.
>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.
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 ;)
> 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.
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 ??
Ü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.
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.