Serielle Datenübertragung














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

Serielle 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, dass sich die Anzahl der zu Übertragenden Bits erhöht.

4

Der 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, muss 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, muss 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 muss jedoch auf 1 eingestellt sein. Wird also in das erste Register etwas geschrieben geht der Zeiger automatisch auf das zweite Register über.

Um sicherzustellen, dass 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.
5

Beispielprogramm 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
6
Programmablaufplan 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


ENDE
7

SEND


Register B mit Akkuinhalt laden


Akku mit Inhalt des
Statusregisters laden


Akku mit Konstante 01H
UND verknüpfen



Akkuinhalt
= 0?


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



Akkuinhalt
= 0?



Akku mit Inhalt des
Empfangsregisters laden


RÃœCKSPRUNG
8



Oszilloskopauszug beim übertragen der Zahl 81H mit dem seriellen Schnittstellenbaustein 8251 (V.24 - Pegel).





949 Worte in "deutsch"  als "hilfreich"  bewertet