Hallo zusammen, doofe Frage vielleicht: Wenn eine Seite der RS232 Kommunikation (legacy) mit 600 Baud, 7 Datenbits, keine Parity und 2 Stoppbits arbeitet, und die andere Seite hardwarebedingt nur 8 Datenbits kann, kann ich dann nicht einfach das höchstwertige Bit auf "1" festzurren, und damit ein weiteres Stopp-Bit simulieren? Also eine Seite 600,8n1 ( TX:|0x80 bzw RX:&0x7F ) und andere Seite 600,7N2 Oder übersehe ich etwas? Meine Referenz: https://en.wikipedia.org/wiki/RS-232 Bei 600 Baud könnte ich vermutlich auch bit-bangen, aber FIFO wäre nett.
Tobias M. schrieb: > kann ich dann nicht einfach das höchstwertige Bit auf "1" festzurren, > und damit ein weiteres Stopp-Bit simulieren Ja kannst du. UART ist "LSB first". Empfangsseitig müssen es dann aber auch zwei Stoppbits sein, sonst fehlt dir ein inter-byte-space. Das heißt dein "Gerät" muss ein Bit mehr Platz zwischen den Bytes lassen. mfg mf
:
Bearbeitet durch User
Cool, danke. Ich hatte etwas Sorge, dass da da zwischen dem letzten Datenbit und dem Stoppbit noch ein "geheimes" timing-gap sein muss oder so :) Tobi Edit:typo
:
Bearbeitet durch User
Tobias M. schrieb: > ein "geheimes" timing-gap Mal's dir als Timingdiagramm auf dann siehst du es. Früher™ als man noch zur Bitmitte gesampled hat, war ab der High-Low-Flanke 1,5...1,7 Bitzeiten zu warten, bevor das erste Bit gesampled wird. Das ist dann aber die einzige krumme Zeit, abgesehen von der 1,5 Stoppbits-Schweinerei. Viel Spaß beim universell asynchron empfangen und senden! mfg mf
:
Bearbeitet durch User
Aus reiner Neugier, was ist das fuer ein Geraet? Weil 7N2 hab ich noch nie gesehen. Diese 7Bit Sache ist heute ja SEHR exotisch geworden und gibt es eigentlich nur bei Dingen die schon seit 20-30Jahren existieren und da kenne ich eher sowas wie 7E1. Aber man lernt bei RS232/RS422/RS485 nie aus. Es ist immer ein Quell neuer Freude wie Entwickler sich daran abarbeiten. :-D Vanye
Vanye R. schrieb: > Aus reiner Neugier, was ist das fuer ein Geraet? > Weil 7N2 hab ich noch nie gesehen. Das würde mich auch interessieren, wobei ich eher die 600 Baud exotisch finde. 7N2 ist z.B. eine der Varianten von Modbus ASCII. Standard ist 7E1, optional gibt es noch 7O1 und 7N2. Alte Metex-Multimeter (M3650CR, M4650CR etc.) haben ebenfalls 7N2 verwendet. Vanye R. schrieb: > da kenne ich eher sowas wie 7E1. Ein zweites Stopbit gibt dem Empfänger etwas mehr Zeit, das dürfte meistens die Intention dahinter gewesen sein. Vanye R. schrieb: > Aber man lernt bei RS232/RS422/RS485 nie aus. Es ist immer ein Quell > neuer Freude wie Entwickler sich daran abarbeiten. :-D Ja, und als gesteigerte Schwierigkeitsstufe wurde bei Metex noch ein bestimmter Status von RTS und DTR vorausgesetzt (Versorgung des Pegelwandlers), ohne es im Handbuch zu erwähnen.
Achim M. schrieb: > Empfangsseitig müssen es dann aber auch zwei Stoppbits sein, Sind es ... Tobias M. schrieb: > ... 7 Datenbits, keine Parity und 2 Stoppbits ...
Vanye R. schrieb: > Aber man lernt bei RS232/RS422/RS485 nie aus. Es ist immer ein Quell > neuer Freude wie Entwickler sich daran abarbeiten. :-D Funkmodule von Jeti Model verwenden sogar 9N1.
Andreas S. schrieb: > Funkmodule von Jeti Model verwenden sogar 9N1. Das ist eine bei "vernetzten" µCs aus der MCS-51-Reihe beliebte Sonderlocke, denn deren UART kennt den 9-Bit-Betrieb. Ärgerlich wirds, wenn man versucht, so etwas mit einer normalen PC-UART anzusteuern. Dann muss man nämlich das 9. Bit mit dem Parity-Bit nachbilden, also für jedes zu sendende Byte die Parity-Einstellungen der UART ändern, was den Gebrauch eines Sendefifos in der UART natürlich kategorisch unmöglich macht. Niedrige Baudraten sind praktisch, oft völlig ausreichend und vor allem entschärfen sie Übertragungsprobleme. Die gleichen Pegelwandler, die bei hohen Baudraten à la 115200 schon nach zehn, zwanzig Meter an ihre Grenzen stoßen, können 600 Baud problemlos über hundert Meter transportieren. Das Motto der Feldbusse: "Fasse Dich kurz!"
2 Stopbits stellt nur den Sender auf 2 Stopbits um. Dem Empfänger reicht weiterhin, wenn er ein Stopbit erkennt (>= 0,5 Bitzeiten). Damit vergrößert sich der Toleranzbereich beim Empfang. Bei einem Stopbit kann es passieren, wenn der Empfänger etwas langsamer als der Sender ist, daß ihm das nächste Startbit durch die Lappen geht. 7N2 ist also toleranter als 8N1, sollte bei Baudratenquarzen aber egal sein.
Es ist in der Tat ein altes Metex(Voltcraft)-me32 Multimeter, dem ich via hm-10 Modul (TI cc2541 SOC) gerne Bluetooth LE beibringen würde. CC2541 kann nur 8 datenbit - bevor ich mir jetzt den Toolstack besorge und versuche das BLE zu verstehen, wollte ich erst mal klären, ob ich konzeptuell einen Denkfehler habe. Vielleicht probiere ich auch erst mal ein hc-05 und das "normale" bluetooth. da gibt es dann wenigstens eine virtuelle serielle Schnittstelle. Abschirmung muss ich mir auch noch ansehen, will ja nach Möglichkeit die Messung nicht beeinflussen.
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.