Für das verbinden zweier computer gibt es 2 verfahren
Serielle Datenübertragung
mit dem Schnittstellenbaustein 8251
2
Inhaltsverzeichnis
Thema
Seite
Inhaltsverzeichnis
2
Einleitung
2
Serielle Datenübertragung
3
Der serielle Schnittstellenbaustein 8251
4
Beispielprogramm für den 8251
5
Programmablaufplan
6
V.24-Pegel
8
Einleitung
Für das Verbinden zweier Computer gibt es 2 Verfahren. Das Erste ist die parallele Datenübertragung, die durch verwenden mehrerer Datenleitungen sehr schnell ist. Das Zweite ist die Serielle Datenübertragung, die zwar langsamer als die parallele ist, jedoch mit weitaus weniger Leitungen auskommt und damit wesentlich preisgünstiger ist.
3Serielle Datenübertragung
Wir haben uns mit der seriellen Datenübertragung näher beschäftigt. Die seriellen Datenübertragung gliedert sich in zwei Klassen.
Die synchrone und die asynchrone Datenübertragung. Bei der synchronen Datenübertragung haben Sender und Empfänger, eine zusätzliche Datenleitung, durch die sie dieselbe Übertragungsgeschwindigkeit haben(sie arbeiten synchron). Bei der asynchronen Datenübertragung kann die Übertragungsgeschwindigkeit, von Sender und Empfänger geringfügig abweichen. Diese Toleranz beträgt ca. 1-2%. An den Anfang des zu sendenden Datenwortes wird ein zusätzliches Bit, das Startbit, eingefügt, das Sender und Empfänger synchronisiert.
Die asynchrone Datenübertragung wird erst ermöglicht, wenn sich Sender und Empfänger auf ein Übertragungsformat geeinigt haben.
Das Übertragungsformat setzt sich wie im folgenden Beispiel zusammen:
9600 8 E 2
à Übertragungsgeschwindigkeit = 9600 Baud
à übertragen wird ein 8 Bit Datenwort
à Even Parity (möglich sind auch Odd oder None)
à 2 Stopbits
Beim Übertragen des Datenwortes wird zuerst das niederwertigste Bit gesendet.
Für die Geschwindigkeit, mit der die Daten übertragen werden, gibt es eine Einheit, genannt Baud. Sie gibt an wieviele Bits pro Sekunde gesendet bzw. empfangen werden (1 Baud = 1 Bit/sec).
Bei der seriellen Datenübertragung kann ein zusätzliches Paritätsbit eingefügt werden, um eine Fehlererkennung zu ermöglichen.
Dies bedeutet allerdings, daß sich die Anzahl der zu Übertragenden Bits erhöht.
4Der serielle Schnittstellenbaustein 8251
Für das Senden bzw. Empfangen serieller Daten benutzten wir den seriellen Schnittstellenbaustein 8251. Dieser Baustein wandelt beim Senden die parallelen Daten, die ihm der Computers zuweist, in serielle Daten um. Anschließend sendet er sie über den Ausgang TxD. Beim Empfangen nimmt er die Daten in serieller Form vom Eingang RxD auf und wandelt sie in parallele Daten um.
Der Takt für den Eingang RxD und den Ausgang TxD wird im internen Frequenzteiler erzeugt.
Um den seriellen Schnittstellenbaustein 8251 ansteuern zu können, muß seine Portadresse mit den Schaltern S1-S4 eingestellt werden. Für die Adresse 6XH wäre das z.B. S1-S4 0110. Die Schalter S1-S4 sind den Adressleitungen A7-A4 zugeordnet.
Von den übrigen Adressleitungen A3-A0 wird nur A0 verwendet, um die internen Register des 8251 anzusteuern.
Um den Baustein 8251 einzustellen, muß das Betriebsartenregister und das Kommandoregister mit einem Betriebsaten- bzw. einem Kommandowort geladen werden. Die Steuerregister und das Statusregister werden nicht direkt angesteuert, sondern nacheinander. Die Adressleitung A0 muß jedoch auf 1 eingestellt sein. Wird also in das erste Register etwas geschrieben geht der Zeiger automatisch auf das zweite Register über.
Um sicherzustellen, daß die Steuerwörter in das richtige Register gelangen, sollte ein Reset durchgeführt werden.
Außer dem Status- und den Steuerregistern gibt es noch zwei weitere Register, das Sende- und das Empfangsregister, in denen die Daten, die gesendet bzw. empfangen werden, zwischengespeichert werden. Diese Register werden nur angesteuert, wenn die Adressleitung A0 auf 0 eingestellt ist.
Die Daten die mit dem 8251 gesendet werden sollen, werden nicht mit einem TTL Impuls, sondern mit einem V.24 Impuls übertragen.
Der V.24 Pegel erreicht seinen High-Wert (Mark) bei maximal -12V und seinen Low-Wert (Space) bei maximal +12V.5Beispielprogramm für die serielle Datenübertragung mit dem 8251
Im Folgenden ist ein Programmlisting abgebildet, mit dem der Datenaustausch zwischen zwei Computer möglich ist.
Adresse
Label
Mnemonik Code
Kommentar
E000
LXI SP,FC32
Registerpaar SP mit FC32H laden
E003
MVI A,00
leere Akku
E005
OUT 61
Akkuinhalt auf Port 61 ausgeben
E007
OUT 61
- ² -
E009
OUT 61
- ² -
E00B
MVI A,40
lade Akku mit 40H
E00D
OUT 61
Akkuinhalt ins Betribsartre-gister schreiben
E00F
MVI A,7F
lade Akku mit 7FH
E011
OUT 61
Akkuinhalt Kommandoregister schreiben
E013
MVI A,35
lade Akku mit 35H
E015
OUT 61
Akkuinhalt auf Port 61 ausgeben
E017
START
IN 12
Port 12 einlesen
E019
CALL SEND
zum UP SEND springen
E01C
CALL EMPF
zum UP EMPF springen
E01F
OUT 13
Akkuinhalt auf Port 13 ausgeben
E021
JMP START
zum Label START springen
E024
SEND
MOV B,A
Registerinhalt A nach B kopieren
E025
STATUS
IN 61
Statusreg. Abfragen
E027
ANI 01
Maske setzen
E029
JZ STATUS
wenn Akku=0 springe zum Label Status
E02C
MOV A,B
Akkuinhalt von Reg. B nach A kopieren
E02D
OUT 60
Akkuinhalt ins Senderegister schreiben
E02F
RET
Rücksprung
E030
EMPF
IN 61
Statusregister abfragen
E032
ANI 02
Maske setzen
E034
JZ EMPF
wenn Akku=0 springe zu EMPF
E037
IN 60
Empfangsregister abfragen
E039
RET
Rücksprung
6Programmablaufplan für das oben aufgeführte Programmlisting.
Anfang
FC32H ins Register SP laden
Akkuinhalt leeren
Akkuinhalt 3 mal auf Port
61 ausgeben
Akku mit 40H laden
Kommandoregister des 8251
mit Akkuinhalt laden
Akku mit 7FH laden
Betriebsartenregister des 8251
mit Akkuinhalt laden
Akku mit 35H laden
Kommandoregister des 8251
mit Akkuinhalt laden
parallele Eingabe lesen
SEND
EMPF
Akkuinhalt auf parallele
Ausgabe legen
ENDE7
SEND
Register B mit Akkuinhalt laden
Akku mit Inhalt des
Statusregisters laden
Akku mit Konstante 01H
UND verknüpfen
AkkuinhaltJa
= 0?Nein
Inhalt des Registers B
in Akku laden
Senderegister mit Akkuinhalt laden
RÜCKSPRUNG
EMPF
Akku mit Inhalt des
Statusregisters laden
Akkuinhalt mit Konstante
02H UND verknüpfen
AkkuinhaltJa
= 0?
Nein
Akku mit Inhalt des
Empfangsregisters laden
RÜCKSPRUNG8
Oszilloskopauszug beim übertragen der Zahl 81H mit dem seriellen Schnittstellenbaustein 8251 (V.24-Pegel).
Anmerkungen: |
| impressum | datenschutz
© Copyright Artikelpedia.com