Aus RN-Wissen.de
Wechseln zu: Navigation, Suche
Laderegler Test Tueftler Seite

(Softwarehandshake)
(Weiterleitung zum RS232 Artikel)
Zeile 1: Zeile 1:
{{Baustelle|vish}}
+
#REDIRECT [[RS232]]
 
+
=Einleitung=
+
Die heute als EIA-232 bekannte Schnittstelle wurde 1960 als RS-232 Schnittstelle (RS = Radio Section) eingeführt und definiert die Verbindung zwischen Terminal ('''DTE''' Data Terminal Equipment) und Modem ('''DCE''' Data Communication Equipment), was Timing, Spannungspegel, Protokoll und Steckverbindungen angeht. Damals wurden Mainframes mittels Modem mit Text-Terminals verbunden.
+
=Übertragung=
+
 
+
==Allgemeines==
+
Die EIA-232 Schnittstelle ist eine [[Spannungsschnittstelle]], die aus zwei direktionalen, Datenleitungen (RxD und TxD) und einigen Steuerleitungen besteht und somit Daten [[Serielle Datenübertragung|seriell]] verschickt werden.
+
Der Spannungsbereich der Schnittstelle erstreckt sich von -3V bis -12V beziehungsweise von +3V - +12V. Die Datenleitungen sind invertiert, folglich wird eine logische 1 durch eine Spannung von -3V bis -12V repräsentiert und eine logische 0 durch eine Spannung von +3V bis +12V.
+
Ein weiterer Aspekt ist, dass es kein Synchronisationssignal (Clock-Signal) gibt, wie beispielsweise beim [[I2C|I2C-Bus]], weshalb man auch von einer [[Asynchrone Datenübertragung|asynchronen]] Datenübertragung spricht.
+
 
+
==Timing==
+
[[Bild:EIA-232_Datenübertragung.png]]
+
 
+
===Synchronisation===
+
Die Synchronisation erfolgt ausschließlich über die Datenleitungen in Form von Start- und Stoppbits. Da der Empfänger die Datenleitung mit seiner Baudrate "abtastet", müssen alle Parameter wie Baudrate, Parität, etc. auf beiden Geräten gleich eingestellt sein.
+
 
+
===Startbit===
+
Als erstes wird ein Startbit (logisch 0) verschickt, dass, wie oben schon erwähnt, zur Synchronisation dient. Der Zustand der Übertragungsleitung wechselt also vom Ruhezustand (logisch 1) auf logisch 0.
+
 
+
===Nutzdaten===
+
Nachdem das Startbit übertragen wurde, werden die eigentlichen Daten beginnend mit dem LSB (Least Significant Bit) übertragen, folglich wird als letztes Bit das MSB (Most Significant Bit) übermittelt. Die Nutzdaten werden unverändert verschickt, also ohne zusätzliche Synchronisierungsdaten oder ähnliches.
+
 
+
===Parität===
+
Nach den Nutzdaten kann zusätzlich noch ein Paritätsbit (oder auch Parity-Bit) übertragen werden, welches dazu dient mögliche Übertragungsfehler zu entdecken.
+
 
+
====Even-parität====
+
Bei der Even-parität ist das Paritätsbit genau dann 1, wenn die Anzahl der übertragenen Einsen ungerade ist, andernfalls ist es 0.
+
 
+
Beispiel: 01101110 hat eine ungerade Anzahl von Einsen, folglich wäre das Paritätsbit 0.
+
 
+
Beispiel 2: 01010101 hat eine gerade Anzahl von Einsen, folglich wäre das Paritätsbit 1.
+
 
+
====Odd-parität====
+
Bei der Odd-parität ist es genau andersherum. Wenn die Anzahl der übertragenen Einsen gerade ist, dann ist das Paritätsbit 0, ansonsten ist es 1.
+
 
+
Beispiel: 01101110 hat eine ungerade Anzahl von Einsen, folglich wäre das Paritätsbit 1.
+
 
+
Beispiel 2: 01010101 hat eine gerade Anzahl von Einsen, folglich wäre das Paritätsbit 0.
+
 
+
===Stoppbit===
+
Es kann ein oder zwei Stoppbits geben, auch das muss vorher festgelegt werden. Das Stoppbit wird nach den Nutzdaten und eventuellem Partitätsbit als logische 1 übertragen. Nach dem Stoppbit folgt eine Ruhezeit, die von null bis unendlich reichen kann.
+
 
+
===Baudrate===
+
Die Baudrate definiert die Anzahl der Symbole die pro Schritt übertragen werden können. Bei der EIA-232 Schnittstelle ist die Baudrate also mit der Bitrate gleichzusetzen. Sie gibt an, wie viele Bits pro Sekunde übertragen werden können.
+
Die daraus resultierende Bitlänge errechnet man nach folgender Formel: 1000000 / Baudrate = Bitlänge in µs
+
 
+
<div align = "center">
+
{| {{Blauetabelle}}
+
| '''Baudrate'''
+
| '''Bitlänge'''
+
|-
+
| 2400
+
| 417 µs
+
|-
+
| 4800
+
| 208 µs
+
|-
+
| 9600
+
| 104 µs
+
|-
+
| 19200
+
| 52 µs
+
|-
+
| 38400
+
| 26 µs
+
|-
+
| 57600
+
| 17 µs
+
|-
+
| 115200
+
| 8,68 µs
+
|- 
+
|}
+
</div>
+
 
+
==Datenflusskontrolle==
+
Der Empfänger muss melden können, wenn er nicht mehr in der Lage ist, Daten zu verarbeiten. Dies geschieht über das sogenannte Handshake, welches entweder Softwareseitig aber auch Hardwareseitig implementiert werden kann.
+
 
+
===Hardwarehandshake===
+
Beim Hardwarehandshake steuert der Empfänger über folgende Datenleitungen die Handshakeeingänge des Senders:
+
 
+
<div align = "center">
+
{| {{Blauetabelle}}
+
| '''Abkürzung'''
+
| '''Name'''
+
| '''Funktion'''
+
|-
+
| RTS
+
| Request to Send
+
| Liegt an dieser Steuerungsleitung eine logische Eins an, dann signalisiert der Empfänger, dass er gerne Daten empfangen möchte. (Sendeanforderung)
+
|-
+
| CTS
+
| Clear to Send
+
| Liegt an dieser Steuerungsleitungsleitung eine logische Eins an, dann signalisiert der Empfänger, dass er empfangsbereit ist.
+
|}
+
</div>
+
 
+
===Softwarehandshake (XON/XOFF)===
+
Beim Softwarehandshake werden spezielle Zeichen übermittelt, um den Datenfluss zu steuern. Um zu signalisieren, dass die Gegenstelle aufnahmebereit ist wird 0x11 (XON) verschickt. Um die Datenübertragung anzuhalten wird 0x13 (XOFF) übermittelt. Diese Zeichen haben die gleiche Funktion wie die Steuerleitungen CTS/RTS.
+
 
+
=Verbindung=
+
 
+
==Verbindungslänge==
+
 
+
==Steckverbindungen==
+
 
+
=Schaltungen=
+

Version vom 20. Dezember 2005, 17:08 Uhr

Weiterleitung nach:


LiFePO4 Speicher Test