technische informatik ws01/02 - i/o standards · technische informatik ws01/02 - i/o standards...
TRANSCRIPT
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.
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.
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-
S ignal Bedeutung
G N D M asse (0 V o lt )
T X D Sende leitung
RXD Emp f angs leitung
RTS Sendeanfo rderung
C T S Sendebere i tschaf t
D S R Betr iebsberei t
D T R DEE Bet r iebsbere it
D C D H K T rä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)
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
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
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
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
� ...
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
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
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
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.
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
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
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
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
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