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
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
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.
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
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...
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.
Nores M. schrieb: > Reden Sie über die Bitrate? > Mir ginge es um die Baudrate Bei RS232 ist die Bitrate gleich der Symbolrate (Baudrate).
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.
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.
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.
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.
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.