REFERAT-MenüDeutschGeographieGeschichteChemieBiographienElektronik
 EnglischEpochenFranzösischBiologieInformatikItalienisch
 KunstLateinLiteraturMathematikMusikPhilosophie
 PhysikPolitikPsychologieRechtSonstigeSpanisch
 SportTechnikWirtschaftWirtschaftskunde  



Serielle Datenubertragung mit dem Schnittstellenbaustein 8251






Serielle Datenübertragung

mit dem Schnittstellenbaustein 8251












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 we­sentlich preisgünstiger ist.


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 Daten­leitung, durch die sie dieselbe Übertragungs­geschwindigkeit haben(sie arbeiten synchron). Bei der asynchronen Datenübertragung kann die Übertragungs­geschwindigkeit, von Sender und Empfänger geringfügig abweichen. Diese Toleranz beträgt ca. 1-2%. An den An­fang des zu sendenden Datenwortes wird ein zusätz­liches 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 Übertragungs­format 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ätz­liches Paritätsbit eingefügt werden, um eine Fehlerer­kennung zu ermöglichen. Dies bedeutet allerdings, daß sich die Anzahl der zu Übertragenden Bits erhöht.


Der serielle Schnittstellenbaustein 8251



Für das Senden bzw. Empfangen serieller Daten benutz­ten wir den seriellen Schnittstellenbaustein 8251. Dieser Baustein wandelt beim Senden die parallelen Da­ten, 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 Adress­leitungen A7-A4 zugeordnet. Von den übrigen Adress­leitungen A3-A0 wird nur A0 verwendet, um die internen Register des 8251 anzusteuern.

Um den Baustein 8251 einzustellen, muß das Betriebs­artenregister und das Kommandoregister mit einem     Betriebsaten- bzw. einem Kommandowort geladen werden. Die Steuerregister und das Statusregister werden nicht direkt angesteuert, sondern nacheinander. Die Adress­leitung 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 rich­tige 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 Empfangs­register, in denen die Daten, die gesendet bzw. emp­fangen werden, zwischengespeichert werden. Diese Re­gister 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.

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 ko­pieren

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


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


SEND



Register B mit Akkuinhalt laden



Akku mit Inhalt des

Statusregisters laden



Akku mit Konstante 01H

UND verknüpfen




Akkuinhalt

Ja

 



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

Ja

 




Akku mit Inhalt des

Empfangsregisters laden



RÜCKSPRUNG




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









Haupt | Fügen Sie Referat | Kontakt | Impressum | Nutzungsbedingungen