COM-Port-Parameter

Hallo Experten!

Ich hoffe, daß ich mit meiner Frage in diesem Forum richtig bin, denn die COM-Ports sind ja schon ein wenig älter.

Ich habe ein Frage zu den Parametern für die COM-Port-Kommunikation.

Die Angabe 19200 / 8 / n / 1 sagt aus, daß die Datenübertragung mit 19200 Baud stattfindet und der 8-Bit-Zeichensatz übertragen werden kann.

Die erste Frage taucht nun bei den Paritäten auf.
Es gibt n (none = keine), e (equal = grade) und o (odd = ungrade).
Wenn ich das Zeichen 32 , binär also 00100000, sende, ist die Anzahl der gesetzten Bits ungrade.
Wenn das Protokoll „e“ ist, wird also das Paritätsbit „1“ gesendet und bei „o“ entsprechend „0“.

Nun meine Fragen:
„Wo“ wird das Bit gesendet?
Wird nach dem gesendeten Wert 00100000 noch ein zusätzliches Bit gesendet, so daß die Übertragung eigentlich 001000001 bei „e“ bzw. 001000000 bei „o“ ist?

Was passiert bei „n“?
Werden da tatsächlich *nur* die 8 Bit gesendet?

Bei den Stopbits tun sich mir die gleichen fFragen auf.
Ich weiß, daß es die Einstellungen 1, 1.5 und 2 gibt.
Hinzu kommt die Frage, wie das Stopbit 1.5 aussieht… 00, 01, 10, 11 … immer 2 Bit

Ich google schon einige Zeit nach Antworten, finde aber (bisher) nur das was ich schon weiß…

Antworten sind mir sicherlich willkommen, zitierbare Quellen (Fachliteratur, seriöse Webseiten) aber noch lieber.

Ich bedanke mich schon jetzt für Eure Antworten bzw. Links und Buchhinweise.

Grüße, Michael.

Hallo Michael,

Ich habe ein Frage zu den Parametern für die
COM-Port-Kommunikation.

Die Angabe 19200 / 8 / n / 1 sagt aus, daß die
Datenübertragung mit 19200 Baud stattfindet und der
8-Bit-Zeichensatz übertragen werden kann.

Also die Daten werden folgendermassen übertragen:

Startbit -> Datenbits -> Paritybit -> Stopbit

Mit der Baudrate legst du fest wie lange (zeitlich) eine Bit ist.

Der Ruhepegel ist normalerweis „1“ (der Pegen auf der RS232 ist aber invertiert, also entspricht eine „1“ einen negativen Pegel)

Das Startbit ist eine „0“ somit weiss der Empfängerbaustein, dass jetzt ein Datenframe kommt.
Danach werden die Datenbits (Die Datenbits, werden übrigens mit den Niederwertigen zuerst gesendet, duzu weiter unten noch etwas mehr) und das paritybit übertragen.
Das Ende wird dann mit dem Stopbit, welches immer „1“ ist angezeigt.

Damit das ganze funtioniert, müssen der Sender und der Empfänger gleich eingestellt sein.

Bei den Datenbits, gibt es übrigens die Formate 5, 7 und 8 Bits. 5 bits kommen noch vom alten Fernschreiber.es wird immer nur die konfigurierte Anzahl an Bits übertragen.

Das Parity wird, je nach Einstellung, zusätzlich gesendet, oder auch gar nicht (bei None)
Es gibt übrigens 5 einstellungen für das Parity:
None = das Paritybit wird gar nicht übertragen.
Even = Die „1“ in den Datenbits ergeben zusammen mit dem Parity eine gerade Anzahl.
Odd = ungerade Anzahl.
Mark = Das Paritybit ist immer „1“
Space = Das Paritybit ist immer „0“

Das Stopbit ist immer „1“ und hat mehrere Aufgaben.
Einerseits dient es zur Kontrolle des Datenframes, ist es nicht „1“ stimmt etwas mit der Baudrate nicht, bzw. es wird eine „break“ übermittelt. Ein „Break“ ist ein besonderes Steuersignal, in dem die Datenleitung mindesten etwa 0.2 Sekunden auf „0“ gelegt wird.
Andererseits sorgt es dafür, dass die Leitung auf „1“ liegt und somit das nächste Startbit erkannt werden kann.

Normalerweise entfernt der Empfängerbaustein die Start- Stop- und Parity-Bits und zeigt nur die Auswertung in zusätzlichen Registern an.

Nun noch was zu zu „Mark“ und „Space“ beim Parity:
Wenn der Empfänger auf 8 Bit Daten und kein Parity eingestellt ist, kann man mit 7 Daten- und Parity senden, das Paritybit ist dann im höchstewertigen Bit auf der Empfängerseite sichtbar, deshalb die Möglichkeit der Einstellung von Mark oder Space.

Das ganze kommt noch aus der Zeit der Fernschreiber oder TTYs, da war der Empfänger noch mechanisch realisiert und konnte nicht einfach mal schnell umprogrammiert werden.

Ob du mit 1 oder 2 Stopbits (1.5 Stopbits geht nur mit 5 Datenbits, kommt von den fernschreibern) sendesthängt vor allem vom Empfänger ab. Im Prinzip kannst du immer mit 2 Stopbits senden, auch wenn der Empfänger auf 1 Stopbit eingestellt ist, das umgekehrte funktioniert nur scheinbar manchmal und zwar wenn der Sender die Daten nicht schnell genug „nachschieben“ kann, dann entsteht eine Pause zwischen zwei Frames, aber das ist heute selten der Fall. Manchmal ist es trotzdem besser mit zwei Stopbits zu senden, der Empfänger hat dann etwas mehr Zeit die daten zu verarbeiten.

Also, wenn du z.B. 8 Data, Parity und 2 Stop-bits einstellst werden total
1 Start-, 8 Daten-, ein Parity- und 2 Stopbits übertragen, also total 12 Bits.

MfG Peter(TOO)

Literatur?
Hallo Peter!

Zunächst einmal vielen Dank für Deine Antwort.
Das mit dem „mark“ und so war mir garnicht bekannt. Das sagt weniger über meine Kenntisse als mehr über die Qualität Deiner Antwort aus.

Hättest Du vielleicht noch Literaturempfehlungen zu diesem Thema für mich?
Ich muß mich auf dieses Thema … hmm … „Prüfungssicher“ vorbereiten.

TIA, Michael

Hallo Michael,

Das mit dem „mark“ und so war mir garnicht bekannt. Das sagt
weniger über meine Kenntisse als mehr über die Qualität Deiner
Antwort aus.
Hättest Du vielleicht noch Literaturempfehlungen zu diesem
Thema für mich?

Scheint nicht mehr allzuviel zu geben, mein wissen hat sich schon vor über zwei Jahrzehnten angesammelt.

http://www.fbi.fh-darmstadt.de/~komar/HProg-Seriell.pdf
http://einstein.informatik.uni-oldenburg.de/rechnern…

MfG Peter(TOO)

Hättest Du vielleicht noch Literaturempfehlungen zu diesem
Thema für mich?
Ich muß mich auf dieses Thema … hmm … „Prüfungssicher“
vorbereiten.

TIA, Michael

Hallo Michael,
im technischen Handbuch zum IBM XT oder AT03 gibt es sowohl einen Schaltplan als auch die zugehörigen BIOS-Routinen für die seriellen Schnittstellen (ich hab so etwas noch). Darauf beruhen alle weiteren Entwicklungen im PC-Bereich (deswegen habe ich es aufgehoben).

Die serielle Schnittstelle ist sogar richtig genormt, aber bei uns kosten Normen viel Geld und stehen nicht im Internet. Man könnte aber nach RS232C, V24 usw. suchen. Ausserdem werden die von dir gestellten Fragen soweit ich weiss nicht in V24, sondern in V11 behandelt, aber da bin ich mir nicht sicher, wie hier schon bemerkt, aktuell war das vor 20 Jahren.

Auch heute noch enthalten viele ICs, besonders Microcontroller, serielle Schnittstellen, die in den Manuals auch beschrieben werden. Suche mal nach microcontroller serial interface.

mfg Reinhard

Danke!
Vielen Dank für die Tips.
Zusammen mit dem anderen thread habe ich nun erstmal genug Stoff zum googlen und durchackern… :smiley:

Mal sehen was der Schlagwortkatalog der Bücherei so rausschmeist wenn ich da bin :smiley:

Euch allen einen schönen Tag wünschend,
Michael