Technische Informatik WS01/02 - I/O Standards · ˜ Anzahl Bits: 7 oder 8 (heutzutage eigentlich...

16
1 Technische Informatik WS01/02 - I/O Standards Seite 1 Vorüberlegungen Bussysteme Ein Bus kann nach folgenden Konzepten klassifiziert werden: Parallel oder Seriell 2 Geräte oder viele Geräte Bei vielen Geräten: Wie können diese angeschlossen werden (Sternförmig, Ring) Interner Bus (innerhalb eines Gerätes, z.B. PCI) Externer Bus (zur Verbindung mehrere Geräte) Geschwindigkeit Gibt es einen zentralen Busmaster, oder kann jedes Gerät Busmaster sein Wie zuverlässig werden Daten übertragen Technische Informatik WS01/02 - I/O Standards Seite 2 Motiviation: I/O Standards I/O steht für Input/Output . Im Prinzip ist jeder Anschluß eines Gerätes ein I/O Anschluß z.B. PC: Anschluß von Diskettenlaufwerk, Drucker, Tastatur, Monitor, Modem, ... Früher (80'er Jahre): Keine Standards für Diskettenlaufwerke, Tastatur, Maus, ... C64 Diskettenlaufwerk kann nicht an Atari ST oder Amiga oder PC (und umgekehrt!) angeschlossen werden 1 Notwendige Standardisierung von I/O Schnittstellen! Heute: Dank offener Standards kann zum Beispiel jede Maus an jeden PC angeschlossen werden.

Transcript of Technische Informatik WS01/02 - I/O Standards · ˜ Anzahl Bits: 7 oder 8 (heutzutage eigentlich...

1

Technische Informatik WS01/02 - I/O Standards

Seite 1

Vorüberlegungen Bussysteme

� Ein Bus kann nach folgenden Konzepten klassifiziert werden:

� Parallel oder Seriell

� 2 Geräte oder viele Geräte

� Bei vielen Geräten: Wie können diese angeschlossen werden (Sternförmig, Ring)

� Interner Bus (innerhalb eines Gerätes, z.B. PCI)

� Externer Bus (zur Verbindung mehrere Geräte)

� Geschwindigkeit

� Gibt es einen zentralen Busmaster, oder kann jedes Gerät Busmaster sein

� Wie zuverlässig werden Daten übertragen

Technische Informatik WS01/02 - I/O Standards

Seite 2

Motiviation: I/O Standards

� I/O steht für Input/Output.

� Im Prinzip ist jeder Anschluß eines Gerätes ein I/O Anschluß

� z.B. PC: Anschluß von Diskettenlaufwerk, Drucker, Tastatur, Monitor, Modem, ...

� Früher (80'er Jahre): Keine Standards für Diskettenlaufwerke, Tastatur, Maus, ...

� C64 Diskettenlaufwerk kann nicht an Atari ST oder Amiga oder PC (und umgekehrt!)

angeschlossen werden

1 Notwendige Standardisierung von I/O Schnittstellen!

� Heute: Dank offener Standards kann zum Beispiel jede Maus an jeden PC

angeschlossen werden.

2

Technische Informatik WS01/02 - I/O Standards

Seite 3

Etablierte I/O Standards

� serielle Schnittstellen: RS232, USB, IrDa, FireWire, CAN

� parallele Schnittstelle: SPP, EPP, ECP

� Bussysteme: ISA, PCI, AGP, PCMCIA, VME

� Speicherschnittstellen: SIP, SIMM, PS/2 SIMM, DIMM, SO-DIMM, RIMM

� Massenspeicher: SCSI, EIDE, Floppy, Smartmedia, Compactflash

� Netzwerk: 10/100 MBit Ethernet, 10 GBit Glasfaser (demnächst)(kursive Standards werden im folgenden besprochen)

Technische Informatik WS01/02 - I/O Standards

Seite 4

serielle Schnittstelle: RS232

� Entwickelt in den 70'er.

� Verbindung von genau zwei Geräten möglich.

� Einfacher Standard ermöglicht Realisierung von billigen Endgeräten (z.B. Maus).

� RS232 definiert nur physikalische Schnittstelle. Welche Bedeutung die übertragenen

Daten haben, wird nicht festgelegt.

� Eigentlich keine Stromversorgung an der Schnittstelle vorhanden. Wenn nur sehr

wenig Strom benötigt wird, kann evtl. eine Steuerleitung zur Stromversorgung eingesetzt

werden.

� Heutzutage 9-polige Stecker, früher auch 25-polige Stecker.

3

Technische Informatik WS01/02 - I/O Standards

Seite 5

Steckerbelegung der RS232

� Früher: Oft wurde ein 25 poliger Stecker verwendet

� Heute: Fast nur noch 9 poliger Stecker, da er kleiner ist und die wesentliche Signale

bereitstellt:

1 DCD2 RxD3 TxD4 DTR5 GND6 DSR7 RTS8 CTS9 Ri

1 GND2 TxD3 RxD4 RTS5 CTS6 DSR7 GND8 DCD9 TD+1011 TD-1213

1415161718 RD+1920 DTR2122 RI232425 RD-

Signal Bedeutung

GND M asse (0 V o l t )

TXD Sendeleitung

RXD Empfangsleitung

RTS Sendeanforderung

C T S Sendeberei tschaft

D S R Betr iebsbereit

DTR DEE Betr iebsbereit

DCD HK Träger erkannt

RI Ankommender Ruf

T D + Unklar

T D - Unklar

RD+ Unklar

RD- Unklar

Technische Informatik WS01/02 - I/O Standards

Seite 6

Physikalische Realisierung der RS232

� Alle Datenleitungen werden auf -12 Volt (Logisch 1) oder +12 Volt (Logisch 0)

gesetzt.

� Der Empfänger interpretiert -3 bis -15 Volt als logisch 1 und +3 bis +15 Volt als

logisch 0

� Dadurch hoher Störababstand und lange Leitungen möglich.

-12V

+12V

Leitung

Sender Empfänger

-12V

+12V

0

1

-3V+3V

Bitfolge

Spannung(TXD)

0

1

Bitfolge

(RXD)

4

Technische Informatik WS01/02 - I/O Standards

Seite 7

Asynchrones Protokoll der RS232

� Die Daten werden mit einer Sendeleitung gesendet. Da es keine Taktleitung gibt, muß

die gleiche feste Datenrate sowohl auf der Senderseite als auch beim Empfänger

eingestellt werden.

� Es werden typischerweise 1 Startbit, 8 Datenbits und ein Stopbit gesendet.

� Im Ruhezustand ist die Leitung logisch 1, das Startbit logisch 0 und das Stopbit logisch

1.

� Das niederwertigste Bit wird zuerst geschoben, das höchstwertigste Bit als letztes.

Logisch 0

Logisch 1

Startbit Bit 0 Bit 1 Bit 2 Bit 3 Bit 4 Bit 5 Bit 6 Bit 7 Stopbit

0 1 1 0 1 0 0 1 0 1

Dauer der Übertragung eines Bytes

Technische Informatik WS01/02 - I/O Standards

Seite 8

Parameter der RS232

� Die folgenden Parameter können bei der PC Standard RS232 eingestellt werden:

� Bitrate: Gibt an, wielange ein Bit ist

� Die Baudrate ist immer 115200/n, n wird of als Divisor bezeichnet.

� Früher: oft 2400 Bit/s, ein Bit wäre ca. 0,4 ms (0,0004 s) lang

� Heute: oft 115200 Bit/s, ein Bit wäre ca. 8,6 µs (0,0000086 s) lang

� Anzahl Bits: 7 oder 8 (heutzutage eigentlich immer 8)

� Parity (Summe der Datenbits): Odd, Even, None (eigentlich immer None)

� Anzahl Stopbits: 1, 1.5 oder 2 (eigentlich immer 1)

� Typischerweise werden die Parameter als 8N1 geschrieben: 8 Datenbits, None Parity, 1

Stopbit

5

Technische Informatik WS01/02 - I/O Standards

Seite 9

IrDA - Optische serielle Schnittstelle

� Standardschnittstelle bei modernen Laptops, Handys und Organizer

� ermöglicht drei Geschwindigkeitsstufen:

� bis zu 115200 Bit/s, weitgehendst kompatibel zur RS232

� 576 kBit/s

� 4 MBit/s

� Halbduplex Modus, d.h. es sendet immer nur ein Teilnehmer

� Entfernung der Geräte bis zu 1 Meter

� optional Plug & Play fähig, wenn beide Teilnehmer diese Protokollvariante

unterstützen

Technische Informatik WS01/02 - I/O Standards

Seite 10

Parallele Schnittstelle

� Ursprünglich zum Anschluß von Druckern entwickelt

� Heutzutage oftmals Anschluß anderer Geräte (CD-Rom, ZIP, billige andere

Erweiterungen)

� Einfaches Design der Schnittstelle:

� Alle Signal 0 oder 5 Volt, keine Pegelwandler notwendig

� 8 Datenbits, 9 Steuerleitungen

� Ursprünglich Unidirektional, heute oft Bidirektional (EPP)

� Theoretische maximale Datenrate 500 kB/s, real 100 kByte/s

6

Technische Informatik WS01/02 - I/O Standards

Seite 11

Parallele Schnittstelle: Erweiterungen

� Verschiedene Erweiterungen vom ursprünglichen Design:

� SPP: Standard Parallel Port

� Ursprüngliche Definition

� EPP: Enhanced Parallel Port:

� Schnellere Datenübertragung, Bidirectionale Datenpins

� Bis zu 256 Geräte (realisiert mit Adress/Daten Signal, selten verwendet)

� ECP: Extended Capabilities Port:

� DMA (vgl. ISA Bus)

� RLE (Datenkomprimierung)

� FIFO (automatisches Zwischenspeichern von Daten zur Pufferung)

Technische Informatik WS01/02 - I/O Standards

Seite 12

Parallele Schnittstelle: Pins

� Beim PC: Programmierung mit 3 I/O

Registern (hexadezimal):

� 278 Port Data: Datenbits D7-D0

� 279 Port Status: 7: Busy, 6 : Ack, 5: Out, 4 :

Select Status, 3 : Error

� 27A Port Status: 3 : Select, 2 : Init,

1 : Auto Feed, 0: Strobe

� Die gleichen Register existieren für eine

zweite SPP an Adresse 378-37A

Pin Bedeutung Dir1 Strobe Out2 bis 9 D0- D7 Out10 Ack In11 Busy In12 Paper Out In13 Select Status In14 Auto Feed Out15 Error In16 Initialize Out17 Select Out18 bis 25 GND

Pin Bedeutung Dir1 Write Out2 bis 9 D0-D7 I/O10 IRQ In11 Wait In14 Data Strobe Out17 Adress Strobe Out

SPP

EPP

7

Technische Informatik WS01/02 - I/O Standards

Seite 13

Parallele Schnittstelle: Protokoll beim Datensenden

• Zuerst werden die Daten vom Sender an D0-D7 angelegt

• Dann aktivert der Sender das Strobe Signal

• Der Empfänger setzt jetzt das Busy Signal, und muß die Daten übernehmen, während

Strobe aktiviert ist (min. 0,5 µs)

• Der Sender deaktiviert das Strobe Signal, frühestens 0,5 µs später die Daten

• Wenn der Empfänger das Byte verarbeitet hat, setzt er das Ack Signal für min. 0,5 µs

und löscht nach dem deaktivieren des Ack auch das Busy.

D0-D7

Strobe

Busy

Ack

Alle SignaleHighAktiv dargestellt!

Technische Informatik WS01/02 - I/O Standards

Seite 14

Motivation Interne Bussysteme

� Einfache Erweiterbarkeit von bestehenden System

� Austauschen von veralteten Komponenten

� Andere Hersteller können unabhängig Komponenten entwickeln

� Systemübergreifende Entwicklung von Komponenten (z.B.: Mac/PC/Sun)

Um diese Punkte zu erreichen ist ein offener Standard (für jeden zugänglich) mit

genauen Spezifikationen notwendig:

� Welche Stecker werden verwendet, was bedeuten die Pins am Stecker

� Welche Spannungen und Ströme sind erlaubt

� Welche Taktfrequenzen und welches zeitliches Verhalten ist erlaubt

� ...

8

Technische Informatik WS01/02 - I/O Standards

Seite 15

Konzepte interner Bussysteme

� Bevor ein interner Bus entwickelt werden kann sollten folgende Fragen beantwortet

werden:

� Was für Geräte sollen angeschlossen werden können

� Welche Resourcen sind notwendig (IRQ, DMA, Adressraum)

� Welche Geschwindigkeit ist notwendig

� Gibt es verschiedene Busmaster, oder ist nur der Bus-Kontroller Busmaster

� Wie 'nahe' soll der Bus am Prozessor angeschlossen werden

Proz.

Speicher

Slot 1

Slot 2

Proz.

Speicher

BusKontr

.

Slot 1

Slot 2

Prozessor unabhängiger Buslokaler prozessorabhängiger Bus

Technische Informatik WS01/02 - I/O Standards

Seite 16

Busmaster und Bus Arbitrierung

� Busmaster ist das Gerät, welches die Steuerleitungen und die Adreßleitungen ausgibt

� Zur Vermeidung von Kurzschlüssen ist ein Bus Arbitrierung Konzept notwendig, wenn

mehrere Geräte Busmaster sein wollen:

� Request/Grant Leitungen (vgl. PCI), die vom Buscontroller verwaltet werden

� Slot Positionsabhängige Arbitrierung (vgl. VME), der Slot, der am nächsten ist,

bekommt den Bus

� ID abhängige Arbitrierung (vgl. SCSI), das Gerät mit der höchsten/niedrigsten ID

bekommt den Bus

9

Technische Informatik WS01/02 - I/O Standards

Seite 17

Minimaler Bus

� Ein sinnvoller minimaler Bus muß die folgenden Leitungen enthalten:

� Adressleitungen

� Datenleitungen

� Read/Write Signale

� Für mehrere Busmaster kommen Arbitrierungssignale hinzu

� Sinnvoll sind noch

� System Takt zur Synchronisierung

� Stromversorgung

� Signale für Konfigurationsmechanismen

� Interrupt und DMA Mechanismen

Technische Informatik WS01/02 - I/O Standards

Seite 18

ISA Bus: Übersicht

� Wurde Anfang der 80'er Jahre von IBM für die ersten XT/AT Rechner verwendet

� Die Spezifikation vom ISA Bus war teilweise ungenau:

� Viele Probleme ergaben sich daraus, daß das zeitliche Verhalten nicht genau

angegeben wurde

� Einfacher Bus, der zum Teil direkt mit den Pins des Prozessors verbunden werden

konnte:

� Auch schon in den Anfängen der PC-Zeit kostengünstig Realisierung möglich

� Keine modernen Mechanismen wie Busarbitrierung, Plug and Play, IRQ-Sharing oder

ID-Informationen

� Maximale theoretische Datenrate 10 MByte/s, real 1-2 MByte/s

10

Technische Informatik WS01/02 - I/O Standards

Seite 19

Typischer Aufbau eines 'alten PCs'

� Alle Signale an allen ISA Bus Steckplätzen sind

gleich

1 Alle Steckplätze gleichberechtigt

� ISA Bus direkt am Prozessor (evtl. mit

Treiberbausteinen getrennt)

� Steckkarten an fester Adresse eingeblendet, die

evtl. mit Jumpern eingestellt werden kann.

� Genauso Interrupt und DMA

386Proz.

DMAContr.

IRQContr.

Hauptspeicher

Technische Informatik WS01/02 - I/O Standards

Seite 20

ISA Bus: Signale

� A0 bis A23: Adressleitungen, direkt vom Prozessor oder DMA Controller

� ALE, BALE: Adresse von A0 bis A23 ist gültig

� Clk: normalerweise 8 MHz oder 10 MHz

� D0 bis D15: Datenleitungen

� DACKx, DRQx, TC (0-3, 5-7): DMA Steuerleitungen

� I/O Ch CK: Fehlerleitung zur Signalisierung einer defekten Komponente

� I/O Ch Rdy: 'Bremse', zur Verlängerung eines Buszyklus

� IOR, IOW, SMEMR, SMEMW, MEMR, MEMW: Read/Write Leitungen

� IRQx (3-7, 9-12, 14, 15): Interrupt Request Leitungen

� Reset, Master, OSC, Refresh, MEMCS16, IOCS16, 0WS, SBHE: Weitere Steuersignale

11

Technische Informatik WS01/02 - I/O Standards

Seite 21

ISA Bus: Kommunikation

� Jedem bekannten Erweiterungstyp wurden feste Adressen zugeordnet:

� Graphikkarte: Feste Memoryadresse: 0xA0000-0xBFFFF

� Festplattenkontroller: Feste I/O Adresse: 0x170-0x177 (S) und 0x1F0-0x1F7 (P)

� Serielle Adapter: Feste I/O Adresse: 0x3F8, 0x2F8, 0x3E8, 0x2E8 (je 7 Adressen)

� Parallele Adapter: Feste I/O Adresse: 0x278 und 0x378 (je 6 Adressen)

� Diskettenlaufwerk: 0x3F0-0x3F7

� Problem 1: Die Hersteller neuer Erweiterungstypen wählen unabhängig

voneinander freie Adressbereiche aus!

� Problem 2: Es kann nur eine Graphikkarte, 2 Festplattenkontroller, ... verwendet

werden!

Technische Informatik WS01/02 - I/O Standards

Seite 22

DMA Transfer am Beispiel des ISA Bus

� DMA steht für 'direct memory access', und bedeutet, daß der Prozessor die Daten nicht

selber verarbeitet, sondern diese direkt von der Peripherie in den Speicher (oder

umgekehrt) geschrieben werden

1 Keine Prozessorbelastung, höhere Geschwindigkeit möglich

� Notwendige Signale am ISA Bus: DRQx, DACKx, TC

� Vorgehensweise:

� Prozessor teilt Peripherie mit, wieviele und welche Daten transferiert werden sollen

� Prozessor teilt DMA Kontroller mit, wieviele und welche Daten transferiert werden sollen

� Alles Weitere übernimmt der DMA Kontroller:

� Die Leitungen DRQx und DACKx werden zur Synchronisation verwendet

� TC (Terminal Count) zeigt das Ende des Transfers an.

12

Technische Informatik WS01/02 - I/O Standards

Seite 23

DMA Transfer am Beispiel des ISA Bus: Memory -> ISA Karte

� Alle Signale sind high aktiv dargestellt, in Wirklichkeit sind manche low aktiv!

� Der Übersichtlichkeit halber wurden nicht alle benutzen Signale dargestellt!

DRQx

DACKx

A0-A23

IOWr

MemR

D0-D15

Erster Transfer letzter Transfer...

Technische Informatik WS01/02 - I/O Standards

Seite 24

Zusammenfassung ISA Bus

� Vorteile des ISA Bus:

� Sowohl die Einsteckkarten als auch der ISA Bus selber ist einfach und billig herstellbar

� 'langsame' Buszyklen erlauben die Verwendung von Standardkomponenten

� Nachteile des ISA Bus:

� ungenaue Spezifikationen ergeben oft Probleme wenn viele Erweiterungskarten

verwendet werden

� Es können nur maximal 16 MWorte adressiert werden

� Bei falsch konfigurierten Einsteckkarten können Kurzschlüsse an den Datenleitungen

auftreten

13

Technische Informatik WS01/02 - I/O Standards

Seite 25

Die Zeit zwischen ISA und PCI

� PCI wurde 1992 ins Leben gerufen, gut 10 Jahre nach ISA

� Durch die vielen Einschränkungen und Probleme von ISA wurden vorher schon oft Versuche

gemacht, andere Bussysteme zu etablieren:

� IBM Microchanel (MCA): Wurde von IBM als neuer Standard patentiert, und wegen

Lizenzgebühren nicht von anderen Firmen anerkannt. MCA war nicht abwärtskompatibel zu ISA,

aber in vielen Punkten besser.

� EISA (Extended ISA): Erweiterung von ISA, die Ende der 80'er Jahre eine Zeitlang propagiert

wurde. Genauere Spezifikation, Abwärtskompatibilität zu ISA, 32 Bit Adressen und Daten

wurden teilweise von MCA abgeschaut.

� (Vesa) Local Bus: Chaotische Zeit vor PCI, wo viele 486 PCs einen schnellen 'local Bus'

eingebaut hatten. Mangels genauer Standards entstanden viele Inkompatibilitäten!

Technische Informatik WS01/02 - I/O Standards

Seite 26

PCI: Technische Daten Übersicht

� Synchroner Bus (im Gegensatz zu ISA!) : Alle Signale werden auf die steigende

Taktflanke übernommen

� Taktraten von 33 MHz, 66 MHz und 133 MHz sind definiert, verwendet wird fast nur

33 MHz

� Adress/Daten Bus gemultiplexed, ein Datenwort/Adresswort normalerweise 32 Bit, 64

Bit sind auch spezifiziert, werden aber selten eingesetzt

� Sowohl 3,3 Volt als auch 5 Volt wird spezifiziert, bisher hauptsächlich 5 Volt,

abzusehender Trend nach 3,3 Volt

� Prozessor unabhängiger Standard: wird sowohl im PC mit 486/Pentium als auch im

Mac mit PowerPC Prozessor eingesetzt

14

Technische Informatik WS01/02 - I/O Standards

Seite 27

PCI: Die wichtigsten Leitungen

� Clk: Bustakt, auf dem alle Signale synchronisiert sind

� AD31 bis AD0: Adress/Datenbus

� C/BE3 bis C/BE0: Kommando/Byte auswahl

� Frame: Signalisiert eine neue Bustransaction (Adresse und Kommando)

� Irdy: Initiator Ready (Gerät, das den Buszugriff startet)

� Trdy: Target Ready (Gerät, auf den der Initiator zugreift)

Clk

Frame

AD

Irdy

Trdy

Beispiel: Initiator liest Daten von Target

Adr Data1 Data2 Data3 Data 4

Technische Informatik WS01/02 - I/O Standards

Seite 28

PCI: Definition von Kommandos

� C/BE3 bis C/BE0 haben folgende Funktion:

� In der Adressphase wird auf diesen Leitungen ein Kommand übertragen (vgl. Tabelle)

� In der Datenphase wird festgelegt, welche Bytes (32 Bit -> 4 Byte) gültige Daten

enthalten

0000 Interrupt Acknowledge

0001 Special Cycle

0010 I/O Read

0011 I/O Write

0100 Reserved

0101 Reserved

0110 Memory Read

0111 Memory Write

1000 Reserved

1001 Reserved

1010 Configuration Read

1011 Configuration Write

1100 Memory Read Multiple

1101 Dual Address Cycle

1110 Memory Read Line

1111 Memory Write and Invalidate

15

Technische Informatik WS01/02 - I/O Standards

Seite 29

PCI: Configuration mit IDSEL

� Normalerweise beim Systemstart, aber auch während dem Betrieb

� Jeder PCI Slot hat ein eigenes Signal IDSEL, so daß die einzelnen Einsteckkarten

unabhängig selektiert werden können. In dieser Phase werden Resourcen zugeteilt,

dadurch werden Jumper auf der Steckkarte unnötig

� 32 Adressen mit 32-Bit Worten stehen als Konfigurationsraum zur Verfügung

� 8 unabhängige 'Funktionsblöcke'

� AD0-AD1: bei Konfigurationszyklen immer 0

� AD2-AD7: Adressiert das Konfigurationswort

� enthält Unit ID, Manufacturer ID, Status, ..

� AD8-AD10: Adressiert den Funktionsblock (Funktionsblock 0: festgelegter Inhalt,

Funktionsblöcke 1-7 frei für Benutzer)

Technische Informatik WS01/02 - I/O Standards

Seite 30

PCI: Busarbitrierung mit Req/Gnt

� Jeder PCI Slot hat eigene Req/Gnt Signale

� Wenn ein Gerät als Initiator einen Buszugriff starten will, setzt es das Request Signal

� Der PCI Controller setzt das Gnt Signal des Gerätes, welches als nächstes den Bus

bekommt. Dadurch kann der Controller die Buszugriffe 'gerecht' verteilen.

Clk

Req

Gnt

Frame

16

Technische Informatik WS01/02 - I/O Standards

Seite 31

PCI: Zusätzliche Feature

� Reset Leitung, um alle Geräte zu initialisieren

� Paritätsbit zur Datenkontrolle

� Interruptleitungen

� 2 Present Signale: 11 -> Kein Gerät, 10 -> 25 Watt, 01 -> 15 Watt, 00 -> 7,5 Watt

� 66 MHz enable Signal: Wird von Geräten, die nur 33 MHz unterstützen auf Masse

gezogen. => Wenn es 1 ist, können alle angeschlossenen Gerät mi 66 MHz arbeiten.

� Optional:

� 64 Bit Daten

� JTag Test Pins