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