Skript 05, Teil B

10 downloads 192 Views 329KB Size Report
05 / Teil B / Seite 01. 05.002.06. Teil B: Serielle Schnittstellen. Serielle Schnittstelle RS 232 C / V.24. Serielle Schnittstelle RS 485. 20mA Stromschnittstelle.
Serielle Datenübertragung Teil B: Daten werden nacheinander (d.h. in Serie) übertragen.

Serielle Schnittstellen

Gemeint ist i. d. R. bitseriell. Serielle Schnittstelle RS 232 C / V.24

Anwendungsbeispiele:

20mA Stromschnittstelle

Verbindung PC - Modem (RS 232 C)

Serielle Schnittstelle RS 485

Infrarotschnittstelle IrDA ISDN Netzwerk über Ethernet Videotext Morsecode 05.005.04

05.002.06

Serielle Datenübertragung Minimalverkabelung

Serielle Datenübertragung Bedeutungsgleiche Normen

Festzulegen: Datenleitung

Wer sendet? Wer empfängt? Wann beginnt eine Übertragung?

Betriebserde

Was ist eine '1'?

RS 232 C

US-amerikanische EIA Norm

V.24

CCITT Norm (heute ITU Norm)

DIN 66020

Deutsche Norm

ISO 2110

Internationale Norm

EIA: Electronics Industries Association CCITT: Comité Consultatif International Télégrafique et Téléphonique ITU: International Telecommunications Union DIN: Deutsche Industrienorm ISO: International Standards Organization

Was ist eine '0'? Bitrate? 05.005.05

05 / Teil B / Seite 01

05.005.06

RS 232 C / V.24 Anschlüsse

RS 232 C / V.24 Ausführung am PC

Es sind zwei Typen gebräuchlich: 25-polig 13

Buchse 1

25 9-polig

Stift / Pin 9-pol 25-pol 1 8 2 3 3 2 4 20 5 7 6 6 7 4 8 5 9 22

Stecker

14

1

13

14

25

Buchse 5 1

Stecker 1 5

9

6

6

9

Signal DCD Empfangsdaten Sendedaten DTR Betriebserde DSR RTS CTS RI 05.005.01

05.005.07

RS 232 C / V.24 Anschlußkabel

RS 232 C / V.24 Grundregeln Datenübertragung Regeln:

25-polig

1.

Während Übertragungspausen hält der Sender die Datenleitung auf logisch '1'.

2.

Der Sender beginnt die Übertragung jedes Zeichens mit einem Startbit (logisch '0').

3.

Der Sender beendet die Übertragung jedes Zeichens mit einer vordefinierten Zahl von Stopbits (logisch '1').

9-polig

05.005.08

05 / Teil B / Seite 02

05.005.09

RS 232 C / V.24 Synchronisation

RS 232 C / V.24 Synchronisation

Beispiele:

Beispiel: Übertragung von zweimal 7 Bit, alle Bits = '0': 1 Rahmen (Frame)

log. '1'

Nutzdaten

log. '0'

Startbit log. '1' log. '0'

Stopbit

log. '0'

1 Rahmen (Frame)

1 Rahmen (Frame)

Nutzdaten

Nutzdaten

Startbit

Stopbit

1. Rahmen

log. '1'

Startbit

0 0 0 0 0 0 0 Startbit Stopbit

2. Rahmen 0 0 0 0 0 0 0 Startbit Stopbit

Stopbit 05.005.11

05.005.10

RS 232 C / V.24 Synchronisation

RS 232 C / V.24 Signalpegel Datenleitung

Beispiel: Übertragung von zweimal 7 Bit, alle Bits = '1':

log. '1'

1. Rahmen 1 1 1 1 1 1 1

Spannung [V]

größer 3V = log. '0'

2. Rahmen 1 1 1 1 1 1 1

12

log. '0' Startbit

Stopbit

Startbit

Stopbit

Das Startbit garantiert, dass der Beginn des 2. Rahmens klar zu erkennen ist.

3 0 -3

Zeit

-12

05.005.12

05 / Teil B / Seite 03

kleiner -3V = log. '1' Anstieg mind. 6 V / ms

undefinierter Bereich 05.005.13

RS 232 C / V.24 Signalpegel Steuerleitungen

RS 232 C / V.24 Bitraten 1 Rahmen (Frame)

Spannung [V]

größer 3V = 'ON' 12 3 0 -3

Startbit

Stopbit

Zeitraster

Zeit

t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10

-12 kleiner -3V = 'OFF' undefinierter Bereich

Zeit

Zeit pro Bit = tb = ti - ti-1 [s] = const Bitrate = 1 / tb [Baud] 05.005.15

05.005.14

RS 232 C / V.24 Gebräuchliche Bitraten Bitrate [Baud]

Zeit pro Bit [µs]

Verwendung

300

3333

2.400

416

Modem

9.600

104

Fax

14.400

69

Fax

28.800

34

Modems nach V.34

56.000

18

115.200

9

RS 232 C / V.24 Reihenfolge der Datenbits Regel: Das niederwertigste Bit wird als erstes übertragen.

Akustikkoppler

Beispiel: Übertragen werden soll $58 = 010110002 log. '1' 0 0 0 1 1 0 1 0 Startbit

Modems nach V.90

log. '0' b0 b1 b2 b3 b4 b5 b6 b7 Stopbit

Maximum Standard-PC 05.005.16

05 / Teil B / Seite 04

05.005.17

RS 232 C / V.24 Übertragungsprotokolle

Gerät A: große Datenmenge

Datenleitung

RS 232 C / V.24 XON - XOFF - Protokoll Gerät A: sendet Daten, bis es XOFF empfängt;

Gerät B: kleiner Puffer

Datenleitungen

Gerät B: Sendet XOFF, wenn es eine Pause braucht;

Betriebserde

schnelle Verarbeitung

Betriebserde

langsame Verarbeitung

Gerät B steuert den Datenfluß mit einem Übertragungsprotokoll.

sendet XON, wenn es wieder bereit ist.

pausiert, bis es ein XON empfängt. XON = ASCII-Code $11 XOFF = ASCII-Code $13

X steht für Transmission 05.005.19

05.005.18

RS 232 C / V.24 ETX - ACK - Protokoll Gerät A: sendet ETX und wartet auf ACK; sendet einen Datenblock, danach ein ETX.

Datenleitung

RS 232 C / V.24 Hardware - Handshake Gerät B: antwortet mit ACK, falls es bereit ist;

Betriebserde

ETX = ASCII-Code $03 ACK = ASCII-Code $06

ETX = End of Text ACK = Acknowledge

Prinzip: Gerät A: sendet Daten, solange die Steuerleitung das Signal ON führt.

Datenleitung Steuerleitung 'Bereit' Betriebserde

Gerät B: setzt die Steuerleitung auf OFF, wenn keine Daten angenommen werden können.

Einzelheiten sind den Gerätehandbüchern zu entnehmen! 05.005.20

05 / Teil B / Seite 05

05.005.21

RS 232 C / V.24 Einfache PC-PC-Kopplung

RS 232 C / V.24 Schnittstellenkonfiguration

Nullmodem: Sendedaten Pin 3 Empfangsdaten Pin 2 Betriebserde Pin 5 1. PC

Dos:

Empfangsdaten Pin 2

MODE COMn:baud,parity,databits,stopbits

Sendedaten Pin 3 Betriebserde Pin 5

n:

Schnittstellen-Nr. (1, 2, 3 oder 4)

2. PC

baud:

Baudrate (110 ... 19200)

parity:

Parität (gerade, ungerade, keine, ..)

databits: Datenbits pro Rahmen (7 oder 8) stopbits: Anzahl Stopbits (1 oder 2) 05.005.23

05.005.22

RS 232 C / V.24 Schnittstellenkonfiguration

RS 232 C / V.24 Schnittstellenkonfiguration

Windows: CMD.EXE (Windows NT 4.0): MODE COMm[:] [BAUD=b] [PARITY=p] [DATA=d] [STOP=s] [to=on|off] [xon=on|off] [odsr=on|off] [octs=on|off] [dtr=on|off|hs] [rts=on|off|hs|tg] [idsr=on|off]

m:

Schnittstellen-Nr. (1, 2, 3 oder 4)

BAUD:

Baudrate (110 ... 19200)

PARITY:

Parität (gerade, ungerade, keine, ..)

DATA:

Datenbits pro Rahmen (7 oder 8)

STOP:

Anzahl Stopbits (1 oder 2)

05.005.24

05 / Teil B / Seite 06

05.005.33

RS 232 C / V.24 Schnittstellenkonfiguration

RS 232 C / V.24 Schnittstellenkonfiguration

CMD.EXE (Windows NT 4.0):

CMD.EXE (Windows NT 4.0):

MODE COMm[:] [BAUD=b] [PARITY=p] [DATA=d] [STOP=s] [to=on|off] [xon=on|off] [odsr=on|off] [octs=on|off] [dtr=on|off|hs] [rts=on|off|hs|tg] [idsr=on|off]

MODE COMm[:] [BAUD=b] [PARITY=p] [DATA=d] [STOP=s] [to=on|off] [xon=on|off] [odsr=on|off] [octs=on|off] [dtr=on|off|hs] [rts=on|off|hs|tg] [idsr=on|off]

to:

Zeitüberschreitungen verarbeiten

dtr:

Signal an Pin DTR festlegen

xon:

XON - XOFF - Protokoll benutzen

rts:

Signal an Pin RTS festlegen

odsr:

DSR-Handshake benutzen (beim Senden)

idsr:

DSR-Handshake benutzen (beim Empf.)

octs:

CTS-Handshake benutzen (beim Senden)

Angaben aus der Hilfedatei zu Windows NT 4.0, Stichwort "mode, Befehl" 05.005.35

05.005.34

RS 232 C / V.24 NS 16550A

NS 16550A Direkte Programmierung

Schnittstellenbaustein NS 16550A

Jede RS232C-Schnittstelle belegt acht Adressen im Ein/Ausgabe-Adressraum des Prozessors:

ist für die RS232C-Schnittstellen eines PCs zuständig; Basisadresse

früher ein eigenständiger Baustein; heute im Chipsatz (Southbridge) enthalten; kann zur hardwarenahen Steuerung der RS232CSchnittstellen direkt angesprochen werden.

+1

+2

+3

+4

+5

+6

+7

$2F8

$2F9 $2FA $2FB $2FC $2FD $2FE $2FF

$3F8

$3F9 $3FA $3FB $3FC $3FD $3FE $3FF

Die acht Adressen werden Register 0, 1, .., 7 genannt. Relativ zur Basisadresse $3F8 bzw. $2F8 haben die Register die gleiche Bedeutung. 05.005.55

05 / Teil B / Seite 07

05.005.56

NS 16550A Direkte Programmierung

NS 16550A Direkte Programmierung

RTS-Leitung:

Baudrate:

Register 4, Bit 1: Pegel des RTS-Signals

Register 3, Bit 7: Freigabe der Baudrateneinstellung

Bit = 0

Leitung führt -12 V

Bit = 0

Baudrate nicht änderbar

Bit = 1

Leitung führt +12 V

Bit = 1

Baudrate änderbar

Programmierung:

Programmierung:

port[badr+4] := port[badr+4] and $FD;

port[badr+3] := port[badr+3] and $7F;

port[badr+4] := port[badr+4] or $02;

port[badr+3] := port[badr+3] or $80;

05.005.58

05.005.57

NS 16550A Direkte Programmierung

NS 16550A Direkte Programmierung

Baudrate:

Datenbits:

Register 0: Kennung1 der Baudrate

Register 3, Bit 0 und 1: Einstellung der Datenbits

Register 1: Kennung2 der Baudrate mögl. Baudraten u.a.: 50, 600, 1200, 2400, .., 128000 Programmierung: port[badr+3] port[badr+0] port[badr+1] port[badr+3]

:= := := :=

Bit1 = 0, Bit1 = 0, Bit1 = 1, Bit1 = 1,

Bit0 = 0 Bit0 = 1 Bit0 = 0 Bit0 = 1

5 Datenbits 6 Datenbits 7 Datenbits 8 Datenbits

Programmierung:

port[badr+3] or $80; 192 mod 256; 192 div 256; port[badr+3] and $7F;

port[badr+3] := port[badr+3] and $FC; port[badr+3] := port[badr+3] or $03; 05.005.59

05 / Teil B / Seite 08

05.005.60

NS 16550A Direkte Programmierung

NS 16550A Direkte Programmierung

Stopbits:

Parität:

Register 3, Bit 2: Einstellung der Stopbits

Register 3, Bit 3: Nutzung eines Paritätsbits

Bit = 0

1 Stopbit

Bit = 0

keine Parität

Bit = 1

2 Stopbits

Bit = 1

mit Parität

Programmierung:

Programmierung:

port[badr+3] := port[badr+3] and $FB;

port[badr+3] := port[badr+3] and $F7;

port[badr+3] := port[badr+3] or $04;

port[badr+3] := port[badr+3] or $08;

05.005.62

05.005.61

NS 16550A Direkte Programmierung

NS 16550A Direkte Programmierung

Parität:

Daten eingetroffen:

Register 3, Bit 4: Art der Parität

Register 5, Bit 0: Daten empfangen und bereit

Bit = 0

ungerade Parität

Bit = 0

keine Daten

Bit = 1

gerade Parität

Bit = 1

Daten stehen bereit

Programmierung:

Programmierung:

port[badr+3] := port[badr+3] and $EF;

if (port[badr+5] and $01) = $01 then ...

port[badr+3] := port[badr+3] or $10;

Dieses Bit kann nur gelesen werden.

05.005.63

05 / Teil B / Seite 09

05.005.64

NS 16550A Direkte Programmierung

NS 16550A Direkte Programmierung

Daten abholen:

Sendebereitschaft:

Register 0: Puffer der empfangnen Daten

Register 5, Bit 5: bereit zum Senden

Programmierung:

Bit = 0

nicht sendebereit

Bit = 1

sendebereit

var b : byte;

Programmierung:

begin if (port[badr+5] and $01) = $01 then b := port[badr+0]; end;

if (port[badr+5] and $20) = $20 then ...

Dieses Bit kann nur gelesen werden.

05.005.66

05.005.65

NS 16550A Direkte Programmierung

RS 232 C / V.24 Zusammenfassung

Daten wegschicken: Punkt-zu-Punkt Verbindung;

Register 0: Puffer der zu sendenden Daten

eine gemeinsame Masseleitung für alle Signale; Programmierung:

Kabellänge begrenzt Übertragungsrate; (bis 15 m: 38.400 Baud; bis 900 m: 1.200 Baud)

var b : byte;

relativ leicht durch elektro-magnetische Felder zu stören.

begin b := chr('A'); if (port[badr+5] and $20) = $20 then port[badr+0] := b; end;

05.005.67

05 / Teil B / Seite 10

05.005.26

Serielle Datenübertragung 20 mA - Linienstrom-Schnittstelle

Serielle Datenübertragung 20 mA - Linienstrom-Schnittstelle

Datenleitungen

Galvanische Tennung mit Optokopplern

+ -

senden

senden

20 mA

+ -

Optokoppler empfangen

empfangen 05.005.27

Optokoppler wandelt - Strom in Licht im Senderstromkreis, - Licht in Strom im Empfängerstromkreis. Damit elektrische Entkopplung der Geräte.

20 mA - Linienstrom-Schnittstelle Signalpegel Datenleitungen

05.005.53

20 mA - Linienstrom-Schnittstelle Zusammenfassung

Strom [mA]

Übertragungsrahmen wie bei RS 232 C / V.24; Übertragungsprotokolle wie bei RS 232 C / V.24;

log. '1'

20

Punkt-zu-Punkt Verbindung; keine gemeinsame Masseleitung; unempfindlich gegenüber elektro-magnetischen Störfeldern;

log. '0'

4

Leitungsunterbrechungen leicht erkennbar.

0

Zeit

0 mA = Leitungsunterbrechung

Übertragungsraten 300 - 9600 Baud. Geringere Standardisierung.

05.005.28

05 / Teil B / Seite 11

05.005.29

RS 485 (Halbduplex) Signalpegel Datenleitung

Serielle Datenübertragung RS 485 (Halbduplex) Spannung A - B [V]

Datenleitungen, als Bus ausgeführt A B

größer 1.5V = log. '0' 5

Gerät A

Gerät B

Gerät C

1.5 0 -1.5

...

Zeit

-5 kleiner -1.5V = log. '1' undefinierter Bereich

Signal = Spannung zwischen A und B 05.005.30

05.005.31

RS 485 (Halbduplex) Gleichtaktunterdrückung

RS 485 (Halbduplex) Zusammenfassung

Datenleitungen werden paarweise verdrillt. A B Gerät A

Gerät B

Gerät C

Übertragungsrahmen wie bei RS 232 C / V.24; Übertragungsprotokolle wie bei RS 232 C / V.24;

...

busfähige Verbindung; keine gemeinsame Masseleitung;

Störspannungen wirken damit auf beide Adern gleich. Leiter A gegen Masse

Leiter B gegen Masse

Leiter A gegen Leiter B

unempfindlich gegenüber elektro-magnetischen Störfeldern; hohe Übertragungsraten (bis 200 m: 500 kBaud; bis 1200 m: 94 kBaud)

Zeit

Zeit

Zeit 05.005.54

05 / Teil B / Seite 12

05.005.32