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
Elolehrling schrieb: > Startbit: 1 > Gefolgt von 8 Datenbits > Stopbit: 0 Dann ist das Signal invertiert. Eine UART sendet: Startbit: 0 Gefolgt von 8 Datenbits Stopbit: 1
Bei Standard UART Kommunikation ist das Startbit "0" und die Stopbits "1" daher einfach nur alles einmal invertieren und fertig.
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.
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.
:
Bearbeitet durch User
>Das ganze lässt sich also nicht einfach invertieren, die Richtung stimmt >so schon. Und warum lässt sich das nicht invertieren?
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.
:
Bearbeitet durch User
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.
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.
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! :)
*interpretiert bevor hier einer auf die Idee kommt auch noch meine Grammatik zu beleidigen.
> ... 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.
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.
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! :)
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.
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
>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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.