Forum: Mikrocontroller und Digitale Elektronik rs232 8n1 und 7n2


von Tobias M. (auron)


Lesenswert?

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.

von Achim M. (minifloat)


Lesenswert?

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
von Tobias M. (auron)


Lesenswert?

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
von Achim M. (minifloat)


Lesenswert?

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
von Vanye R. (vanye_rijan)


Lesenswert?

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

von Hmmm (hmmm)


Lesenswert?

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.

von Rainer W. (rawi)


Lesenswert?

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 ...

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

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.

von Harald K. (kirnbichler)


Lesenswert?

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!"

von Peter D. (peda)


Lesenswert?

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.

von Tobias M. (auron)


Lesenswert?

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
Noch kein Account? Hier anmelden.