Forum: Mikrocontroller und Digitale Elektronik 115200Baud, wieviele Zeichen pro sekunde?


von Kleini (Gast)


Lesenswert?

Hallo zusammen,
ich wollte mal nachfragen, wie das mit der RS232 ist. Wenn mein System 
mit 115200Baud läuft, bedeutet das, dass ich bei 8 datenbits und einem 
stopbit die baudrate durch 9 teilen muss, um auf die gesendeten zeichen 
zu kommen?
Danke und Gruß
Kleini

von codehamster (Gast)


Lesenswert?

Genau!

von User (Gast)


Lesenswert?

Startbit vergessen

von Mho (Gast)


Lesenswert?

Startbit | 8 Bit Daten | Parity ? | Stopbit

Das sind 11 Bit, ohne Parity 10 Bit.

von Robert T. (robertteufel)


Lesenswert?

ALso das mit den 11520 Zeichen pro Sekunde ist immer noch sehr 
theoretisch mit einem PC, denn dazu muessten die Zeichen sofort 
nacheinander gesendet werden, was bei einem Betriebssystem wie Windows 
oder auch Linux schon mal sehr unwahrscheinlich ist. Da sind schon mal 
ein paar millisekunden verbraten bis das OS wieder mitspielt. Kannst 
also davon ausgehen, es wird auf keinen Fall schneller als 11520 Zeichen 
/ sekunde sein.

Robert

von Wegstaben V. (wegstabenverbuchsler)


Lesenswert?

> es wird auf keinen Fall schneller als 11520 Zeichen / sekunde sein.

ganz sicher nicht, da in den allermeisten Fällen halt 11 bit, und nicht 
10 bit übertragen werden.

Es würden also theoretisch maximal 11470 Byte werden. Geh mal 
praktischerweise von max. 80% aus, dann bist du bei ca. 8 KByte/Sekunde

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Robert Teufel schrieb:
> ALso das mit den 11520 Zeichen pro Sekunde ist immer noch sehr
> theoretisch mit einem PC, denn dazu muessten die Zeichen sofort
> nacheinander gesendet werden, was bei einem Betriebssystem wie Windows
> oder auch Linux schon mal sehr unwahrscheinlich ist. Da sind schon mal
> ein paar millisekunden verbraten bis das OS wieder mitspielt.

Seit bald 20 Jahren verwenden die UARTs in PCs sowohl Sende- als auch 
Empfangs-FIFOs, die solche "Lücken" ausgleichen können.
Das reduziert auch die Interruptlast, weil ein Interrupt nur erzeugt 
wird, wenn der Füllstand des Sende-FIFOs beinahe leer ist (bzw. wenn das 
Empfangs-FIFO beinahe voll ist oder noch nicht abgeholte Daten längere 
Zeit darin liegen).
Diese FIFOs sind beim "Klassiker" der PC-UART 16550 je 16 Bytes groß, 
neuere UARTs, die auch höhere Baudraten als 115200 unterstützen (und 
entweder als USB-Seriell-Bridge oder auf PCI/PCIe-Karten zu finden 
sind), können auch 128 Byte oder mehr zwischenspeichern.

Der Treiber des Betriebssystemes schreibt soviele Daten auf einem Rutsch 
in das Sende-FIFO, wie hineinpassen bzw. liest soviele Daten auf einem 
Rutsch, wie im Empfangs-FIFO vorhanden sind.

Damit ist es auch Betriebssystemen wie Windows schon seit langem 
möglich, auch über längere Zeit einen kontinuierlichen Datenstrom mit 
maximaler Übertragungsrate zu senden und zu empfangen.

UARTs mit FIFO eignen sich nur schlecht für Übertragungsprotokolle mit 
byteweisem Handshake oder "Ping-Pong"-Betrieb, hier stören sie eher, als 
daß sie von Nutzen sind. In solchen Fällen ist es ratsam, die FIFOs zu 
deaktivieren.

Wegstaben Verbuchsler schrieb:
>> es wird auf keinen Fall schneller als 11520 Zeichen / sekunde sein.
>
> ganz sicher nicht, da in den allermeisten Fällen halt 11 bit, und nicht
> 10 bit übertragen werden.

Das variiert je nach Umfeld - für die Ansteuerung von Modems, Terminals 
oder Druckern ist 8n1 ziemlich verbreitet. 8e1/8o1 oder gar zwei 
Stopbits sind in diesen Fällen bereits exotisch.

von Kleini (Gast)


Lesenswert?

Vielen Dank für die Antworten.

Wenn ich also mit 8n1 übertrage, dann übertrage ich 1 Startbit, 8 
datenbits und 1Stopbit. Wären 10 bits pro zeichen?
oder wird das Paritybit auch immer mit übertragen, egal ob 0 oder 1, 
also 11 bit Übertragung bei 8n1?

Danke nochmal an alle
Gruß Kleini

von Johnny B. (johnnyb)


Lesenswert?

Korrekt, bei 8N1 sind es pro Byte 10-Bits die schlussendlich übertragen 
werden.
Jeder halbwegs vernünftige, moderne Mikrocontroller ist ebenfalls wie 
der PC in der Lage, ohne zusätzliche Pausen zwischen den Bytes zu 
senden. Auch hier kommt eine Art Buffer zum Einsatz, welcher allerdings 
meist nur ein Byte gross ist. Reicht aber mit Verwendung von Interrupts 
(oder DMA) und gescheiter Implementation der IRQ-Routine völlig aus.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Kleini schrieb:
> oder wird das Paritybit auch immer mit übertragen, egal ob 0 oder 1,
> also 11 bit Übertragung bei 8n1?

Das 'n' steht für no parity, also kein Paritätsbit. Damit sind es 10 
Bit pro übertragenes Byte.

von Wegstaben V. (wegstabenverbuchsler)


Lesenswert?

ja, da konnte ich wohl nicht bis 10 zählen (1 Start + 8 data + 0 Parity 
+ 1 stop)

von MCUA (Gast)


Lesenswert?

>ich wollte mal nachfragen, wie das mit der RS232 ....
(RS232 hat nichts mit UART oder Protokoll zu tun)

von Simon K. (simon) Benutzerseite


Lesenswert?

MCUA schrieb:
>>ich wollte mal nachfragen, wie das mit der RS232 ....
> (RS232 hat nichts mit UART oder Protokoll zu tun)

Dass die beiden Sachen nix miteinander zu tun haben, alte ich hingegen 
aber auch für übertrieben.

Eine UART lässt sich eben über RS232 (EIA-232) realisieren. Also hat es 
schon was miteinander zu tun.

von GKor (Gast)


Lesenswert?

MCUA schrieb:
> (RS232 hat nichts mit UART oder Protokoll zu tun)

Das ist ungefähr so als würdest du sagen: "Reifen haben nichts mit 
Rädern zu tun"

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.