UART Empfang ohne Stopbit

Gast #3419316
Lesenswert?

Guten Tag

Ich will den Ursprung meines Problemes garnicht lange geschreiben, da es 
ziemlich kompliziert wäre.

Kurz gesagt:
Ich arbeite an einem M-Bus Master und habe ein kleines Problem beim 
Empfang der Antwort.

Eine Antwort eines M-Bus Slaves sieht folgendesmassen aus:

Startbit: 1
Gefolgt von 8 Datenbits
Stopbit: 0

Genau dieses Stopbit wird mir beim Empfang zum Problem. Wie bereits 
erwähnt ist dieses Stopbit im Gegensatz zu vielen anderen arten der 
Kommunikation eine Logische 0, und nicht eine 1.

Im Anhang findet ihr ein Bild von der Anwort welche ich zurzeit Empfange 
beziehungsweise eben nicht Empfange, denn mein Master interpretiert das 
fehlende Stopbit als Leitungsbruch.

Nun meine Frage:
Gäbe es eine möglichkeit, mit einem uC über UART die Daten einzulesen 
ohne Stopbit? Dass ich sogesehen von Slave -> uC -> Steuerung Empfange.

Das ganze hört sich etwas verwirrend an, ich möchte an der Stelle auch 
nicht gross weiter drauf eingehen. Meine frage ist es lediglich, ob es 
möglich wäre diese Daten in einen uC einzulesen ohne das Stopbit.

Sprich dieses:
Start "1" | 8 Datenbit | Stopbit "0"

Soweit ich mich einlesen konnte, erwartet ja auch die UART Schnittstelle 
eines uC's ein Stopbit "1".

Ich hoffe, die frage ist verständlich formuliert, leider nicht ganz 
einfach mein Problem in Worte zu fassen.

Ich danke bereits jetzt für jeden Tipp den ich erhalte und stehe 
natürlich für Fragen zur Verfügung.

Freundliche Grüsse
Elolehrling
Angehängte Dateien:
Gast #3419502
Lesenswert?

Dann habt ihr wohl die Frage falsch verstanden.

Das Empfangene Telegramm von:
Startbit: "1"
8 Datenbit
Stopbit: "0"

kommt NICHT von einer UART Schnittstelle!!! Das ganze basiert auf einem 
M-Bus Protokoll von welchem ich lediglich die Pegel umgewandelt habe um 
sie theoretisch mit einem uC Empfangen zu können.

Das ganze lässt sich also nicht einfach invertieren, die Richtung stimmt 
so schon.
#3419508
Lesenswert?

Elolehrling schrieb:
> Dann habt ihr wohl die Frage falsch verstanden.

nicht wirklich. Du hast die Antwort nicht verstanden.

Hardwaremässig dein Eingangssignal invertieren.

> kommt NICHT von einer UART Schnittstelle!!! Das ganze basiert auf einem
> M-Bus Protokoll von welchem ich lediglich die Pegel umgewandelt habe um
> sie theoretisch mit einem uC Empfangen zu können.

Ja.
Und wenn du den Pegel nochmal umdrehst und an die UART gepflogenheiten 
anpasst, dann kannst du die UART verwenden. Sonst kannst du ganz einfach 
die UART nicht verwenden. Punkt.
Im empfangenen Datenbyte die Bits nachher nochmal im Programm umdrehen 
ist ja nicht das große Problem.
#3419515
Lesenswert?

Elolehrling schrieb:
> Dann habt ihr wohl die Frage falsch verstanden.
>
> Das Empfangene Telegramm von:
> Startbit: "1"
> 8 Datenbit
> Stopbit: "0"
>
> kommt NICHT von einer UART Schnittstelle!!! Das ganze basiert auf einem
> M-Bus Protokoll von welchem ich lediglich die Pegel umgewandelt habe um
> sie theoretisch mit einem uC Empfangen zu können.
>
> Das ganze lässt sich also nicht einfach invertieren, die Richtung stimmt
> so schon.

Dann hast du wohl den UART nicht verstanden.

Wenn du ein Problem mit Stopbit = 0 hast, hast du auch ein Problem mit 
Startbit = 1. Damit ein UART das richtig empfängt, muß Startbit = 0 und 
Stopbit = 1 sein.
Also invertiere das Signal. Damit die Daten dann wieder passen müssen 
die im Controller dann nochmal invertiert werden.

Sofern du nicht auch ein Problem mit der Datenreihenfolge hast. Also 
Highbit statt Lowbit first. Dann musst du das auch noch umdrehen.

mfg.
Gast #3419518
Lesenswert?

Okay, jetzt verstehe ich was mit dem invertieren gemeint war. Das könnte 
funktionieren, werde ich die kommenden Tage ausprobieren!

Vielen dank für den Vorschlag, soweit habe ich nicht gedacht.
#3419536
Lesenswert?

PS:
Was so landläufig 'Stopbit' genannt wird, kann man auch einfach als eine 
Pause zwischen 2 zu übertrageneden Bytes auffassen, in der die Leitung 
auf Ruhepegel geht. Die Pause soll dem Empfänger einfach nur ein bischen 
Zeit verschaffen, in der er das erhaltene Byte loswerden kann.
Mehr ist das nicht, was da hochtrabend "Stopbit" genannt wird.
Gast #3419538
Lesenswert?

Komm mal runter o.o

ich bin im 4ten Lehrjahr Elektroniker, ich denke schon dass ich ein 
wenig Ahnung habe. Zudem habe ich nur euer "invertieren" zuerst falsch 
inverpretiert.

Und wo pöble ich jemanden an? Ich habe hier im vergleich zu dir keinen 
beleidigt, ich habe lediglich gesagt, dass das ganze nicht geht. Mehr 
auch nicht. Ich habe keinen von euch angegriffen und bin sachlich 
geblieben, finde ist kein Grund mich direkt als dumm abzustempeln.

Zudem habe ich mich stets freundlich bedankt für eure Hilfe, also bitte 
ich dich mal runter auf den Boden der Tatsachen zu kommen und dich 
wieder zu beruhigen, danke! :)
Gast #3419541
Lesenswert?

> ... habe ich nur euer "invertieren" zuerst falsch inverpretiert.

Nun ja. Es könnte Dir auf lange Zeit nützen, wenn Du mal beschreibst, 
wie Du denn das zuerst interpretiert hast und wir Dir erklären, worin 
der Interpretationsfehler liegt. Damit könntest Du verhindern, das DIr 
das an anderer Stelle nochmal passiert.
Gast #3419546
Lesenswert?

USB schrieb im Beitrag #3419531:
> Elolehrling schrieb:
>> soweit habe ich nicht gedacht.
>
> Man merkt schon ziemlich deutlich, dass Nachdenken nicht wirklich Deine
> Stärke ist. Du bist einfach zu dumm für Elektronik oder andere komplexe
> Themengebiete.

@USB: Ohne solche Leute wäre das Forum gähnend leer und du hättest auch 
nichts zu tun.
Gast #3419551
Lesenswert?

Ja, bevor ich hier weiter beleidigt werde und für dumm abgestempelt:

ich habe da invertieren so interpretiert, dass ich die Richtung des 
Telegramms invertieren soll und nicht die Pegel.

Ist nun gut. Beleidigt mich ruhig weiter.

Eigentlich schade. Mir wurde hier X-mal sehr gut weitergeholfen von sehr 
netten Leuten, heute wohl einige ein schlechten Tag oder so.

Auf jedenfall noch einmal danke für die hilfe, hat mir geholfen! :)
#3419559
Lesenswert?

Karl Heinz schrieb:
> PS:
> Was so landläufig 'Stopbit' genannt wird, kann man auch einfach als eine
> Pause zwischen 2 zu übertrageneden Bytes auffassen, in der die Leitung
> auf Ruhepegel geht. Die Pause soll dem Empfänger einfach nur ein bischen
> Zeit verschaffen, in der er das erhaltene Byte loswerden kann.
> Mehr ist das nicht, was da hochtrabend "Stopbit" genannt wird.
Vorsicht.

Auf diese Weise gönne ich einem Controller auch mehr Zeit, indem ich vom 
PC mit 2 Stopbits sende. Es muss aber 1 sein, also der Pegel. Sonst gibt 
es einen Frameerror.
Allerdings habe ich auch ein paar USB-Serial, denen das gar nicht 
gefällt.
Sind glaube ich Prolifics.

mfg.
Gast #3419580
Lesenswert?

Elolehrling schrieb:
> heute wohl einige ein schlechten Tag oder so.

Es ist völlig klar, wer hier einen schlechten Tag hatte, du hast ja 
schliesslich behauptet, alle hier hätten das Problem falsch verstanden, 
nur du nicht. Nennt man Geisterfahrer-Syndrom: "Ein Geisterfahrer? 
Hunderte!".

Gruss Reinhard
Gast #3419695
Lesenswert?

>ich habe da invertieren so interpretiert, dass ich die Richtung des
>Telegramms invertieren soll und nicht die Pegel.

Du meinst wahrscheinlich eine Umkehr in der Zeit oder auch in der 
Reihenfolge. Zuerst das Stop-Bit, die Daten und dann das Start-Bit.

Das nennt eigentlich niemand "Invertieren". Die einzige im 
Elektronikbereich relevante Verwendung bezieht sich auf das digitale 
Schaltelement "Inverter" und das analoge Element gleichen Namens.
Ersteres tut, was Du jetzt annimmst. Letzteres erzeugt Spannungungen aus 
anderen Spannungen (im allgemeinen, aber nicht zwingend, höhere) mit 
umgekehrter Polarität.

Falls das von Dir Angenommene gemeint gewesen wäre, hätte man von der 
Reihenfolge der Bits gesprochen.

Erlaube mir bitte, Dir zu empfehlen, Dir mal die Zeit zu nehmen und die 
Begriffe, die Du so in der Lehre kennengelernt hast, in einer 
Enzyklopädie nachzuschlagen (notfalls auch in Wikipedia). Du wirst 
feststellen, das es oft eine ganze Reihe von Subjektbereichen gibt. Sehr 
viele Begriffe sind "ererbt", eine Reihe aber auch Neuschöpfungen. Man 
kann dann auch leichter erschließen auf welche anderen Bereiche dieser 
Begriff durch Analogie zu sinnvoll zu übertragen ist. Andererseits sind 
manche Verwendungen oder Nicht-Verwendungen durchaus willkürlich.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren