RS323- Verbindung

OP (Firma: Hochschule MUC) #5050018
Lesenswert?

Servus,
habe hier eine RS232-Verbindung und will damit einen Wert mit 16 Bit 
Länge verschicken.
Dazu habe ich eine Übertragungsgeschwindigkeit von 19200 Baud gewählt.
Ich bin mir jetzt aber nicht sicher, wie ich auf die richtige Dauer der 
Übertragung komme.

Kann mir wer bitte helfen?

MfG
Gast #5050023
Lesenswert?

Nores M. schrieb:
> Wert mit 16 Bit
> Länge verschicken

Den musst Du wohl oder übel in 2 Bytes à 8 Bit übertragen. Die 
Uebertragung dauert dann 2 RS232 Sequenzen lang (noch je nach Anzahl 
Stoppbits).

Geht's Dir um die Zerlegung des Werts in 2 Bytes? Also Softwareseitig?

Gruss Chregu
#5050030
Lesenswert?

Georg G. schrieb:
> 16 Bit wirst du als 2 Bytes mit je 1 Startbit, 8 Datenbits und 1
> Stopbit
> verschicken. Feiglinge nehmen 2 Stopbits. Es sind also 20 (22) Bits zu
> senden. bei 19200 Bits pro Sekunde dauert die Übertragung minimal etwas
> über 1ms.

Meinst du 8 Bits die gelesen bzw. geschrieben werden + Acknowledge und 8 
Bits Daten + Acknowledge?
Mit Start und Stopbit sind das dann die von dir gewählten 20?

Gruß Berni
OP (Firma: Hochschule MUC) #5050037
Lesenswert?

Georg G. schrieb:
> bei 19200 Bits pro Sekunde

Reden Sie über die Bitrate?
Mir ginge es um die Baudrate aber ich kann mit der Einheit Symbole pro 
Sekunde nicht viel anfangen.

Christian M. schrieb:
> Geht's Dir um die Zerlegung des Werts in 2 Bytes? Also Softwareseitig?
Richtig aber es geht hier nur um die Übertragungsdauer, die ich gerne 
wissen würde.
Gast #5050050
Lesenswert?

Nores M. schrieb:
> Richtig aber es geht hier nur um die Übertragungsdauer, die ich gerne
> wissen würde.

Oh nein, es geht bei dir vor allem um das prinzipielle Verständnis, was 
mir zu fehlen scheint.

Also: per RS232 kannst du keine 16 Bit Zahlen übertragen. Punkt. Das muß 
erstmal begriffen werden.

Du kannst hingegen Zeichen übertragen, ein jedes maximal 8 Bit lang 
(jedenfalls bei normalen Übertragungsarten). Üblich sind 5..8 Bit.

Also mußt du dir Gedanken machen, wie du deine 16 Bit sinnvoll derart 
zerlegst, daß du auf der Empfangsseite erkennen kannst, wo das jeweilige 
erste Stück im Empfangsstrom sich befindet. Kurzum, eben die 
Synchronisation.

Dann bedenke, daß zu deinen Nutz-Bits eben noch mindestens 1 Startbit 
und 1 Stopbit hinzukommt. Besser sind jedoch 1 1/2 oder 2 Stopbits, wenn 
man lückenlos zu senden einplant. Sonst kann es nämlich gegegentlich zum 
Verheddern kommen.

Möglicherweise willst du deine Übertragung per Paritätsbit etwas 
sicherer machen, dann kommt eben noch ein Bit zu jedem gesendeten 
Zeichen hinzu.

So, jetzt hast du alle Bestimmungsstücke, die du zu deiner Berechnung 
benötigst.

W.S.
OP (Firma: Hochschule MUC) #5050087
Lesenswert?

Vielen Dank !

Also was ich verstanden habe :
16 Bits sind 2 Bytes das heißt, ich muss 20 Symbole(2 Startbits + 2 
Stopbits + 16 Bit)  mit 19200 Baud schicken
um die minimale Dauer des Übertragungs gilt die folgende Formel :
1 Baud = Bits/s

Die Dauer = Bitsumme/ Baud = 20/19200 = 1ms.
#5050117
Lesenswert?

Nores M. schrieb:
> Die Dauer = Bitsumme/ Baud = 20/19200 = 1ms.

Ja, aber Du solltest dabei wissen:
Das ist ohne jegliche Datensicherung und Synchronisierung.

Datensicherung: z.B. Parity, Cheksum, Quittung
Synchronisierung: wenn die Daten lückenlos übertragen werden kann der 
Empfänger im Datenstrom nicht erkennen, was das erste und was das zweite 
Byte ist.

D.h. je nach Anforderungen dauert die Übertragung erheblich länger.
Gast #5050126
Lesenswert?

Nores M. schrieb:
> Dazu habe ich eine Übertragungsgeschwindigkeit von 19200 Baud gewählt.
> Ich bin mir jetzt aber nicht sicher, wie ich auf die richtige Dauer der
> Übertragung komme.

Rechne einfachheitshalber damit, dass du insgesamt 3 Bytes übertragen 
musst. Pro Byte kommen noch ein Start- und mindestens ein Stopbit dazu, 
so dass die Übertragung insgesamt mindestens 30 Bitzeiten oder 1.563ms 
dauert. Falls du ununterbrochen senden möchtest - s.o. Thema 
Resynchronisation bei Fehlern.

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