Forum: Mikrocontroller und Digitale Elektronik RS323- Verbindung


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Nores M. (Firma: Hochschule MUC) (noreson)


Bewertung
1 lesenswert
nicht 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

von Christian M. (Gast)


Bewertung
2 lesenswert
nicht 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

von Georg G. (df2au)


Bewertung
2 lesenswert
nicht lesenswert
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.

von Berni S. (bernycontroller1)


Bewertung
1 lesenswert
nicht 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

: Bearbeitet durch User
von Georg G. (df2au)


Bewertung
2 lesenswert
nicht lesenswert
Berni S. schrieb:
> Meinst du

16 Bit am Stück wäre theoretisch möglich. Ich kenne aber keinen UART,der 
das kann. Üblich sind 8 Bit am Stück. Also musst du deine 16 Bit in zwei 
Häppchen teilen. Von Acknowledge steht nichts im ersten Post...

von Nores M. (Firma: Hochschule MUC) (noreson)


Bewertung
1 lesenswert
nicht 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.

von Georg G. (df2au)


Bewertung
1 lesenswert
nicht lesenswert
Nores M. schrieb:
> Reden Sie über die Bitrate?
> Mir ginge es um die Baudrate

Bei RS232 ist die Bitrate gleich der Symbolrate (Baudrate).

von Nores M. (Firma: Hochschule MUC) (noreson)


Bewertung
1 lesenswert
nicht lesenswert
Alles klar, danke.

Gruß Michi

von W.S. (Gast)


Bewertung
1 lesenswert
nicht 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.

von Nores M. (Firma: Hochschule MUC) (noreson)


Bewertung
2 lesenswert
nicht 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.

von Dietrich L. (dietrichl)


Bewertung
0 lesenswert
nicht 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.

von Wolfgang (Gast)


Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.