PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : IEEE 488.2



Import-Script
22.07.2003, 11:32
Hallo liebe Leser, ich arbeite mich gerade in die IEEE(488.2) Schnitstelle ein und suche noch material und wichtige tipps zur Verbindung mit einer RS232, wenn ihr welche habt schreibt mir bitte.

Import-Script
23.07.2003, 17:11
Hallo Thorsten ... <BR> <BR>Ich würde das eventuell mal unter der Rubrik „Programmierung von Speicherbausteinen und Mikrocontrollern“ setzen vielleicht hast du dort mehr Glück. <BR> <BR>Gruß oliver <BR>

Import-Script
23.07.2003, 18:43
Hi, <BR> <BR><b>&#42;tief Luft hol&#42;</b> <BR> <BR>Bei der RS232 handelt es sich um eine asyncrone, serielle Datenübertragung. <BR> <BR><b>Funktionsweise:</b> <BR>Eine 1 wird durch einen negativen Pegel dargestellt, eine 0 durch einen positiven Pegel. Normalerweise arbeiten die mit etwa 12V. Durch den großen Spannungshub von 24V ist sie sehr störsicher auch auf langen, nicht abgeschirmten Leitungen. &#40;100m kein Problem&#41;. Gleichzeitig besteht der Nachteil darin, dass ein kabel einen Kondensator darstellt, der dann ständig umgeladen werden muss. Durch den großen Spannunghub braucht man dazu relativ viel Energie, was die maximale Übertragungsgeschwindigkeit stark enschränkt. Dadurch arbeiten die nur bis maximal 115000 Baud &#40;Bits pro Sekunde&#41;. <BR> <BR>Eine RS232 kann sehr unterschiedlich konfiguriert werden. Bei der Übertragung werden die Daten wie Folgt gesendet: <BR> <BR>Die Leitung hat im Ruhezustand die Wertigkeit 0, liegt also auf dem positiven Potential. Startet die Übertragung eines Zeichens, so wird ein Startbit gesendet. Dadurch wird die Leitung für die Dauer des bits auf 1 &#40;negatives Potential&#41; gelegt. Nach dem Startbit folgen die eigentlichen Daten. Normalerweise sind das 8-Bit. Fernschreiber und viele ältere Terminals arbeiten mit 7 bit, was zur Darstellung von Text völlig ausreichend ist. <BR><i>Anmerkung: <BR>Die Ursprünglichen Fernschreiber nutzen nur 5-bit und haben Umschaltcodes zur Unterscheidung von Buchstaben und Ziffern.</i> <BR>Manche Geräte senden noch ein zusätzliches Bit hinter den eigentlichen Datenbits, das sog. Paritybit. Dieses ergänzt das Datenwort so, dass das die gesetzten Datenbits &#43; Paritybit je nach Vereinbarung gerade oder ungerade sind &#40;Even/Odd&#41;. Am Ende der wird die Leitung für eine Bitlänge auf 0 gesetzt. Dieses sog. Stopbit wird gesendet, damit das Startbit sauber erkannt werden kann. Das letzte Datenbit kann ja den selben Pegel haben, wie das Startbit. Das Startbit ist sehr wichtig, damit die Übertragung synchronisiert werden kann. Wird der beginn der Übertragung nicht sauber detektiert kommt es zwangsläufig zu Fehlern. Das Stopbit hat den selben Pegel wie der Ruhezustand der Leitung. <BR> <BR><b>Zusammenfassung:</b> <BR>Startbit &#40;0&#41; <BR>Datenbits &#40;7/8 Bits des Datenwortes&#41; <BR>Paritybit &#40;Optional&#41; <BR>Stoppbit &#40;1&#41; <BR> <BR><b>Konfigurationsmöglichkeiten:</b> <BR><u>Datenbits</u> <BR>Je nach Gerät werden unterschiedlich breite Datenworte verwendet. <BR>5bit für uralte Fernschreiber und normale &#40;schmale&#41; Lochstreifen &#40;hab ich schon erwähnt, dass ich heute eine Zuse Z25 besichtigt habe und bald damit arbeiten werde? <IMG SRC="http://progshop.com/elektronik/diskussion/clipart/happy.gif" ALT=":-&#41;" BORDER=0>&#41; <BR>7bit für reine ASCII-Terminals und Drucker <BR>8-bits für Terminals und Drucker mit erweiterten Zeichensatz, Modems und vor allem Datenaustausch zwischen Computern und/oder MCs allgemein. <BR> <BR><u>Paritybit</u> <BR>Dient zur Kontrolle, ob die Daten korrekt angekommen sind. ist ein Bit gekippt, so kann der Empfänger das feststellen. Wenn eine gradzahlige Anzahl von Bits gekippt sind, wird das leider nicht detektiert, daher wird das nur selten eingesetzt. <BR>Das Paritybit kann man auch für andere Aufgaben einsetzen. Neben der Datenkontrolle &#40;Odd/Even&#41; gibt es auch Mark und Space. Bei Space wird das Paritybit immer auf 0 gesetzt. Damit kann man bei einer 7-bit-Übertragung das 8. bit simulieren. So können auch 7-Bit-Geräte an einem 8-bit Host arbeiten. Beim Empfang wird das 8. Bit ignoriert, beim senden auf 0 gesetzt. Mark verhält sich genau umgekehrt, hier wird das 8. Bit immer auf 1 gesetzt. Alls Füllzeichen macht das wenig Sinn, und beim Empfang wird geprüft, ob es gesetzt ist. Ist es nicht gesetzt, so wird das Zeichen ignoriert. Das eröffnet ein schönes Anwendungsgebiet. Hängt man mehrere MCs an eine Leitung, so kann man die MCs so konfigurieren, dass sie nur Zuhören, wenn das Parity-bit gesetzt ist. Die meisten MCs unterstützen das mit ihrer hardware-UART, die Software braucht sich nicht darum zu kümmern. So kann man durch ein geseztes Parity-bit sagen: &#34;Hört mal her, ich möchte MC nummer 3 sprechen&#34;. Alle MCs hören dann zu, und die, die eine andere nummer haben kümmern sich dann wieder um ihren Kram. In diesem fall wird Nummer 3 aber dann auf weitere Befehle hören, die dann ein gelöschtes Paritybit haben. Alle anderen MCs kriegen davon dann nichts mehr mit und werden dadurch nicht gestört. Auf diese Weise kann man einen einfachen, aber intelligenten Bus bauen. <BR> <BR><u>Stopbit:</u> <BR>erzeugt eine kleine Pause zwischen den übertragungen, damit die Synchronisation aufrecht erhalten werden kann. Meist wird nur ein Stopbit gesendet, was in der Regel ausreicht. Um die Synchronisation noch störunanfälliger zu machen werden manschmal auch 2 Stoppbits gesendet. Dadurch verdoppelt man die Länge der Pause. <BR> <BR><u>Baudrate und Synchronisation:</u> <BR>In der PC-UART &#40;bei MCs abhängig vom Systemtakt&#41; wird der Takt von 115000 Hz durch einen Integerwert geteilt. So sind viele verschiedene Baudraten herstellbar. Der Bereich reicht von 110 Baud bis 115000 Baud. <BR> <BR>Die gebräuchlichsten Baudraten sind: <BR>110; 300 - Akkustikkoppler <BR>1200; 2400 - Modems und alte Drucker <BR>9600 - Höchstgeschwindigkeit für die meisten ASCII Terminals und Drucker &#40;HP LJ III eingeschlossen&#41; <BR>155000 Schnellste Datenverbindung mit kurzen Kabeln, meist bei PC-Direktverbindung verwendet. <BR> <BR><u>Funktionsweise der Sync und Datenrückgewinnung:</u> <BR>Sobald das Startbit detektiert wird, wartet der Empfänger 1,5 bitlängen und interpretiert den Leitungszustand als erstes bit. Danach wird immer eine Bitlänge gewartet und anschließend der Leitungszustand als bit erfasst. Das wird so lange gemacht, bis das letzte bit empfangen wird. Die bits werden dabei in ein Speicherregister eingeshiftet und stehen anschließend als Byte zur Abholung durch die Software bereit. Wird es nicht abgeholt, bis das nachste Byte vollständig empfangen wurde wird es überschrieben und geht dadurch verloren. <BR> <BR><b>Übertragungsgeschwindigkeit</b> <BR>Die baudrate ist in bit/sec angegeben. Bei 9600 Baud z.B. dauert ein bit 104ms. Bei einer normalen Verbindung mit 8bit, ohne Parity und einem Stopbit werden also 10 bit für ein Zeichen bzw. Byte benötigt. In diesem Fall gilt: <BR>Zeichen/s = Baud / 10 <BR>Also bei 9600 Baud können Pro Sekunde maximal 960 Zeichen gesendet werden. <BR> <BR><b>Flußsteuerung</b> <BR>Kann der Empfänger gerade keine Zeichen mehr annehmen, so muss er dem Sender das mitteilen. Ein Drucker z.B. geht ziemlich schnell der freie Speicherplatz im Puffer aus, wenn die Zeichen schneller reinkommen, als er sie ausdrucken kann. Dafür gibt es zwei verschiedene Möglichkeiten. Endgeräte wie Terminals und Drucker verwenden beide gleichzeitig, dem Host muss man nur noch sagen, worauf er achten soll. <BR><u>Software:</u> <BR>Im ASCII-Zeichensatz gibt es zwei besondere zeichen. Xon und Xoff. Damit teilt der Empfänger mit, ob er Daten empfangen möchte oder nicht. <BR><u>Hardware:</u> <BR>Zusätzlich zu den Datenleitungen und der Masse gibt es je Richtung eine weitere Leitung, die dem Gegenüber signalisiert, ob er Daten senden darf oder nicht. Ist diese Leitung nicht verbunden, muss man den Host so einstellen, dass er diese Leitung ignoriert und auf Xon/Xoff hören soll. <BR><u>Keine</u> <BR>Wenn der Empfänger keine Daten mehr aufnehmen kann werden weitere zeichen ignoriert und gehen verloren. <BR> <BR><u>Datensicherheit:</u> <BR>Da Parity nur einen unzureichenden Schutz bietet kann man Protokolle laufen lassen, die eine Fehlerfreie Übertragung durch besondere Schutzmechanismen garantiert. <BR>Beim Z-Modem Protokoll werden immer Pakete mit fortlaufender Nummerierung und Prüfsummen geschickt. Wird ein defektes Paket erkannt, so fordert der Empfänger das Paket erneut an. Auch komplett verlohrengegangene Pakete werden dank der Nummerierung erkannt. Es gibt unzählige verschiedene Protokolle, aber die einfachsten und bekanntesten sin X- und Z-Modem. In der Public Domain Szene hat sich damals in den 80ern Kermit durchgesetzt. Mit Wählverbindungen wurden Computer miteinander verbunden und es war damit möglich Programme und Daten in beide Richtungen gleichzeitig zu übertragen. <BR> <BR><b>Erkennung von Geräten</b> <BR>zusätzlich zu den angesprochenen Leitungen gibt es noch eine weitere leitung, mit der erkannt werden kann, ob überhaupt ein Gerät angeschlossen ist. So ist es auch möglich zu erkennen, ob das Endgerät auch eingeschaltet ist. <BR> <BR><b>Kopplungsarten:</b> <BR><u>3-Drahtkopplung</u> <BR>Für eine Übertragung in beide Richtungen werden drei Leitungen benötigt. Je eine für die beiden Richtungen und eine Masseleitung. ohne Rückkanal reichen auch zwei Leitungen. Bei den ersten Modems wurden oft auch nur zwei Leitungen verwendet. Durch ein Zeichen, dass das Ende der Übertragung kennzeichnet wurde dann die Richtung der Leitung umgekehrt. Diese Form der Übertragung trifft man Heutzutage nur noch extrem selten an. Das wird heutzutage nur noch verwendet, um mit einem Minimum an Leitungen auszukommen. <BR><u>5-Draht-Kopplung:</u> <BR>Neben den beiden Datenleitungen und der Masseleitung werden noch für jede Richtung je eine Leitung zur Flußsteuerung verwendet. &#40;RTS = Request To Send und CTS = Clear To Send&#41; Das dient zum Stoppen des Sendevorgangs, um wie schon angesprochen Pufferüberläufe zu verhindern. Bei Fernschreibern und/ oder Terminals dient das für den benutzer auch als Eingabeaufforderrung. Am Fernschreiber leuchtet dann eine Lampe, damit der Benutzer weiss, dass der Computer auch zuhört. &#40;Habe ich die Z25 schon erwähnt?<IMG SRC="http://progshop.com/elektronik/diskussion/clipart/happy.gif" ALT=":-&#41;" BORDER=0>&#41;. Einen Blinkenden Cursor auf einen Papierbetriebenen Fernschreiber darzustellen ist nämlich unmöglich. <BR><u>Vollständige Kopplung</u> <BR>Neben den Datenleitungen, der Masseleitung und der Flußkontrolle werden zusätzlich noch zwei Leitungen verwendet, die dem gegenüber anzeigen, dass das Gerät angeschlossen und eingeschaltet ist. Auch gibt es noch zusätzliche Leitungen, wie den RI &#40;Ring Indikator&#41;. Der Ri wird vom Modem gezogen und teilt dem Host mit, dass gerade ein Klingelsignal auf der telefonleitung anliegt. So weiss der Host bei automatischer annahme, dass er jetzt die Leitung abheben soll. Im PC-Bereich werden insgesamt nur 8 Leitungen verwendet. Bei der V24 Schnittstelle sind 22 Leitungen spezifiziert, die Teilweise aus Historischen gründen, aber auch zur vereinfachung der Sende- und Empfangselektronik spezifiziert sind. <BR><u>Austricksen der Geräte bei zu wenig Leitungen:</u> <BR>Erwarten die Geräte eine Vollständige kopplung, es sind aber nicht genügend Leitungen vorhanden, so kann man in den Steckern Leitungen brücken, damit das Gerät denkt, die Leitung ist verbunden und das Endgerät bereit. <BR>Verbindet man RTS und CTS, so macht das Gerät sich selber vor, der andere ist Empfangsbereit. es empfängt ja seine eigene Empfangsbereitschaft. genauso kann sich das Gerät selber vormachen, dass das andere gerät angeschlossen und eingeschaltet ist. In diesem Fall sollte man dann aber statt der Hardwareflusssteuerung die Softwareflussteuerung verwenden. <BR> <BR>===================================== <BR> <BR>Noch Fragen? <BR> <BR>gruß <BR>Elmar <BR>