Bussysteme_&_Adressierungsverfahren2

Werbung
Diplomarbeit
Bussysteme und deren
Adressierungsverfahren
Alexander Gruber
2005/2006
HTBLA - Salzburg
Diplomarbeit
Bussysteme & deren Adressierungsverfahren
2005 / 2006
Inhaltsverzeichnis:
1. Einführung
5
2. Geschichtlicher Überblick
6
3. Überblick und Vergleich - Parallele Busse vs. Serielle Busse
8
3.1. Parallele Busse
3.2. Datenbus
3.3. Adressbus
3.4. Steuerbus
9
10
10
11
4. Adressierungsverfahren
4.1. Seriell
4.2. Parallel
17
17
17
5. Feldbusse
5.1. CAN
5.2. EIA 485
19
20
22
6. Busse in Rechnersystemen
6.1. Intern
6.1.1. PCI
6.1.2. PCI – Express
6.2. Extern
6.2.1. USB
6.2.2. FireWire
25
25
29
32
36
36
39
7. Quellen
7.1. Quellenverzeichnis
7.2. Abbildungsverzeichnis
41
41
42
Alexander Gruber
HTBLA – Salzburg
Seite 2 von 45
Diplomarbeit
Bussysteme & deren Adressierungsverfahren
2005 / 2006
Vorwort:
Bussysteme finden in unserer heutigen Zeit in vielen Gebieten Anwendung. Busse dienen
vor allem als Kommunikationsmedium und werden neben der industriellen Steuerung von
Maschinen vor allem in Computersystemen eingesetzt. Hier bilden sie das Kernstück in der
Kommunikation der einzelnen PC Komponenten untereinander. In der heutigen
Entwicklung sind Bussysteme darauf ausgelegt Daten möglichst schnell über möglichst
große Distanzen von einem Punkt zu einem anderen zu transportieren.
In dieser Arbeit möchte ich einen groben Überblick über die Arten von Bussen geben und
deren Eigenschaften näher beschreiben. Dabei möchte ich auch näher auf Feldbusse und
Busse in Computersystemen eingehen. Die Funktion von Feldbussen möchte ich dabei
anhand von einigen Beispielen veranschaulichen.
Alexander Gruber
HTBLA – Salzburg
Seite 3 von 45
Diplomarbeit
Bussysteme & deren Adressierungsverfahren
2005 / 2006
Abstract: (Deutsch)
Diese Diplomarbeit behandelt die grundsätzliche Funktionsweise von Bussystemen und
bietet eine grobe Übersicht über deren Arten. Dabei wird neben einem kurzen
geschichtlichen Überblick über die Entstehung von Bussen, ein genauer Vergleich
zwischen parallelen und seriellen Bussen eingegangen und deren Vor- bzw. Nachteile
gegeneinander abgewägt. Weiters enthält diese Diplomarbeit neben der Beschreibung der
parallelen Teilbusse eine kurze Beschreibung der verwendeten Adressierungsverfahren bei
seriellen und parallelen Bussen.
Neben diesen Aspekten geht diese Diplomarbeit genauer auf Feldbusse und Bussysteme im
industriellen Bereich ein. Als Beispiele werden hier der CAN – Bus sowie der EIA 485 –
Bus näher beschrieben.
Als besonderen Schwerpunkt beinhaltet diese Arbeit die Bussysteme in PC –
Umgebungen, die sich grob in interne und externe Busse unterscheiden. Im Kapitel für
interne Busse wird näher auf die wichtigsten Busarchitekturen in PCs eingegangen und als
Beispiel der parallele PCI – Bus und der serielle PCI – Express – Bus angeführt.
Im Kapitel für externe werden USB und FireWire genauer beschrieben.
Abstract: (English)
This paper deals with the fundmental functioning of Bus systems and gives an overview
about their different types. Beneath a short introduction to their history, it contains a
comparation between parallel and serial bus systems. It also contains a description of the
partial busses and the adressing procedure of parallel and serial systems.
One special focus of this paper are field bus systems. CAN – Bus and the EIA 485 – Bus
are described as examples.
Another focus are busses in PC – environments, which can be divided in internal and
external bus systems. In the chapter for internal busses, different bus architectures are
described exactlier. As examples for internal busses are the PCI and PCI – Express – Bus
described. And in the chapter for external busses USB and FireWire have a special focus.
Alexander Gruber
HTBLA – Salzburg
Seite 4 von 45
Diplomarbeit
Bussysteme & deren Adressierungsverfahren
2005 / 2006
1. Einführung
Der Begriff BUS ist ein ziemlich weitläufiger Begriff. Ausgesprochen bedeutet er „Binary
Unit System“. Woher das Wort Bus kommt ist unklar, wahrscheinlich kommt es vom
englischen „busbar“, was soviel wie Sammelschiene bedeutet. Ein Bus im elektronischen
Sinne ist im Prinzip dazu da, Daten von einem Sender an einen Empfänger zu übermitteln.
Grundsätzlich besteht er aus einer Datenverbindung, an der zwei oder mehr Hardware –
Komponenten hängen. Das Besondere ist dabei, dass es nicht mehr nötig ist jeden Sender
extra mit dem jeweiligen Empfänger zu verbinden sondern, dass unterschiedliche
Nachrichten die an unterschiedliche Empfänger gerichtet sind über eine einzige
Datenverbindung gesendet werden können und trotzdem den jeweils richtigen Empfänger
erreichen.
Heutzutage gibt es viele unterschiedliche Einsatzgebiete für einen Bus. In der
Fertigungsindustrie dienen Busse zum Beispiel dazu, mehrere Maschinen mit einer
Steuerungseinheit zu kontrollieren. Aber auch in Autos oder Flugzeugen werden sie
eingesetzt. Wenn der Pilot den Steuerknüppel seines Flugzeugs bewegt und somit etwa die
Richtung des Flugzeugs ändern möchte ist es die Aufgabe eines Bussystems dafür zu
sorgen, dass alle zur Richtungsänderung erforderlichen Motoren und Komponenten auf die
Bewegung des Steuerknüppels reagieren. Das wichtigste Einsatzgebiet eines Bussystems
ist allerdings der Personal Computer. Im PC dienen sie dazu sämtliche Komponenten
miteinander zu verbinden. Sie sind verantwortlich für die gesamte Datenübertragung
innerhalb eines PCs und können teilweise auch einzelne Geräte im Computer mit Strom
versorgen. Ohne Bussysteme könnte beispielsweise der Prozessor nicht auf die Festplatte
zugreifen um bestimmte Daten zu verarbeiten. Oder er hätte keinen Zugriff auf die
Grafikkarte damit diese Daten auf dem Bildschirm anzeigen kann.
Der größte Vorteil von Bussystemen ist, dass durch sie viele Steuerungsleitungen mit
wenigen Datenleitungen ersetzt werden können. Dadurch können mitunter riesige
Kabelbäume zu einigen Leitungen zusammengefasst werden, die jedoch immer noch die
gleichen Aufgaben erfüllen.
Im Großen und Ganzen können Busse in zwei Sparten eingeteilt werden. In serielle und
parallele Busse. Bei seriellen Bussen werden Daten hintereinander gereiht über eine
Leitung gesendet. Beim parallelen werden sie gleichzeitig über mehrere Leitungen
verschickt. Für PCs gibt es noch die Unterscheidung interner Bus und externer Bus. Beim
internen Bus sind die Datenverbindungen innerhalb des PC – Gehäuses gemeint z.B. die
Alexander Gruber
HTBLA – Salzburg
Seite 5 von 45
Diplomarbeit
Bussysteme & deren Adressierungsverfahren
2005 / 2006
Verbindung zwischen Prozessor und der Festplatte. Beim externen Bus spricht man von
der Verbindung zwischen den PC - Schnittstellen und den Peripheriekomponenten des
PC’s.
2. Geschichtlicher Überblick
Die ersten Systeme um Maschinen zu überwachen wurden in den 40er Jahren des 20.
Jahrhunderts eingeführt. Sie basierten jedoch nicht auf elektrischen Signalen sondern auf
Druck. Zwanzig Jahre später stieg man auf elektrische Überwachungssysteme um, die
jedoch nur mit analogen Signalen arbeiteten.
Eine signifikante Änderung brachte die Entwicklung der ersten digitalen Prozessoren in
den 70er Jahren. Die Nachfrage vonseiten der Industrie nach Kontrollsystemen die
individuell an Maschinen angepasst werden konnten stieg immer weiter. Und mit den
ersten Sensoren sowie der Einführung der Mikrocontroller – Technik wurden die ersten
Grundsteine in Richtung Bussysteme gelegt.
Zu diesem Zeitpunkt wurden bereits die ersten internationalen Standards festgelegt. Ein
Meilenstein war wohl die Gründung des IEC/ISA SP50 Feldbus – Komitees. Die
Anforderungen an dieses Komitee waren enorm. Einerseits musste mittels eines neuen
Kommunikationssystems eine breite Palette an Geräten und Instrumenten unterstützt
werden, weiters sollten mehrere Geräte gleichzeitig versorgt werden können und ein
einheitliches
Kommunikationsprotokoll
geschaffen
werden.
Allerdings
ging
die
Entwicklung eines solchen Systems relativ langsam voran. Firmen wie Bosch oder Philips
entwickelten daher ihre eigenen Bussysteme und verfolgten das Ziel sie international
standardisieren zu lassen. 1992 bildeten sich zwei Firmengruppen (ISP – Interoperable
Systems Project und WorldFIP – World Factory Instrumentation Protocol), von der jede
die Marktführung im Bereich der Feldbusse für sich beanspruchte. Beide legten jedoch von
Anfang an fest, ihre Produkte dem SP50 – Standard anzupassen, sobald dieser ausgereift
genug wäre. Zwei Jahre später beschlossen diese beiden Firmengruppen zusammen zu
arbeiten um die Standardisierung des Feldbusses voranzutreiben. Dadurch entstand die
Fieldbus Foundation. Sie zählte bei ihrer Gründung ca. 350 Mitgliedsfirmen und hat den
Auftrag Standardisierungen zu entwickeln und Normungsvorschläge z.B. an die
International Electrotechnical Commission (IEC) zu richten.
Da es allerdings im Feldbus Bereich in den 90er Jahren zu keinen bedeutenden
Fortschritten bei der Standardisierung kam, forcierten einige Länder ihre eigenen
Alexander Gruber
HTBLA – Salzburg
Seite 6 von 45
Diplomarbeit
Bussysteme & deren Adressierungsverfahren
2005 / 2006
Protokolle, allen voran Deutschland (Profibus) und Frankreich (FIP). Um diesen
Konkurrenzen zwischen den Europäischen Staaten und den USA (ISP + WorldFIP) ein
Ende zu bereiten schuf die IEC die Norm „IEC 61158“ in der sie mehrere Feldbussysteme
von unterschiedlichen Herstellern bzw. Firmengruppen zusammenfasste. Im Augenblick
scheint diese Lösung jedoch noch nicht besonders genügend, da in einer einzigen Norm
sieben unterschiedliche Feldbusse definiert sind. Außerdem wird Ethernet sowie TCP/IP in
den nächsten Jahren wohl immer mehr in der Branche rund um den Feldbus mitmischen.
Anders sieht die Situation bei den Bussen aus, die für PC - Systeme entwickelt wurden. Zu
den ersten PC - Bussen zählten der 1975 entwickelte S-100, der in Ed Roberts’ Altair 8800
zum ersten Mal eingesetzt wurde. Bei diesen Bussen handelte es sich um parallele acht Bit
Systeme die allerdings den entscheidenden Nachteil hatten, dass sie den gleichen
Taktgeber wie die CPU verwendeten. Wollte man also die Geschwindigkeit der CPU
erhöhen in dem man die Taktfrequenz vergrößerte, hieß dies dass auch die Bussysteme
schneller arbeiteten, was jedoch gravierende Folgen für die Übertragung hatte. Dieses
Problem wurde mit der Entwicklung von Buscontrollern gelöst. Mit ihrer Hilfe konnten
Busse mit einer eigenen fixen Taktfrequenz unabhängig von der der CPU betrieben
werden. Dadurch wurde allerdings die Hardware innerhalb des PCs in zwei Bereiche
geteilt. Auf der einen Seite war die CPU und die Speicher, auf der anderen die restlichen
Hardwarekomponenten (Peripherie, Grafikkarte, Soundkarte etc.). Später wurden
schnellere Bussysteme entwickelt, die 16- bzw. 32 – fach parallel übertragen konnten. Ein
Beispiel dafür ist der ISA – Bus (Industry Standard Architecture), der Anfangs als
paralleler 8 Bit – Bus in PCs von IBM eingesetzt wurde, jedoch später auf 16 Bit
ausgebaut wurde. Allerdings ging die Entwicklung neuer Prozessoren so rasch voran, dass
sie den Bussen mit der Zeit schlichtweg zu schnell wurden. Die CPUs waren teilweise so
schnell, dass sie mitunter Leerlaufzeiten einlegen mussten, weil die damals aktuellen
Bussysteme mit der Lieferung von Daten nicht mehr nachkamen, die verarbeitet werden
konnten. Aus diesem Grund beschlossen einige Hersteller neue Bussysteme herzustellen
und entwickelten Busse wie z.B. den AGP – Bus (Accelerated Graphics Port) der für die
Verbindung zwischen Prozessor und Graphikkarte zuständig ist. Währenddessen wurden
auch Busse wie z.B. SCSI (Small Computer System Interface) oder ATA (Advanced
Technology Attachment) eingeführt, die die Grundlage für derzeit aktuelle PC – Busse
darstellen.
Alexander Gruber
HTBLA – Salzburg
Seite 7 von 45
Diplomarbeit
Bussysteme & deren Adressierungsverfahren
2005 / 2006
Derzeit sind zur Kommunikation innerhalb des PCs Systeme wie EISA, weiterentwickelte
Versionen des SCSI – Busses oder ATAPI aktuell. Für die Verbindung zwischen PC und
Peripheriegeräten sind derzeit zum Beispiel PCMCIA, USB1.1 bzw. USB 2.0, FireWire
(IEEE 1394) oder die mittlerweile schon relativ betagte PS/2 im Einsatz. Sie bieten
gängige Übertragungsraten von bis zu mehreren hundert Megabit pro Sekunde. In der
nächsten Zeit werden jedoch Weiterentwicklungen wie FireWire 800 oder PCI – Express
auf dem Markt erscheinen, die bereits einige Gigabit Daten pro Sekunde übertragen
können.
3. Überblick und Vergleich - Parallele Busse vs. Serielle Busse
Bussysteme lassen sich grob in zwei Teile aufteilen. Einerseits in serielle Bussysteme und
andererseits in parallele Bussysteme. Bei seriellen Bussen werden Daten (Byte bzw. Bit)
hintereinander über eine Leitung nach dem „First in First Out“ Prinzip gesendet. Bei
parallelen Bussystemen wird eine bestimmte Anzahl an Bytes gleichzeitig über mehrere
Leitungen gesendet. Man kann allerdings nicht einwandfrei sagen, dass die eine Art besser
wäre als die andere Art. Serielle Bussysteme haben in bestimmten Bereichen ihre Vorzüge
gegenüber den parallelen, während diese wiederum in anderen Bereichen besser
anwendbar sind. Serielle Busse haben den Vorteil, dass sie prinzipiell weniger Leitungen
als parallele Busse benötigen. Dies ist vor Allem in Umgebungen wichtig wo akuter
Platzmangel herrscht. Der gewonnene Platz eines seriellen Busses im Vergleich zum
parallelen kann z.B. in Isolierung bzw. Schirmung investiert werden um das übertragene
Datensignal vor äußeren Einflüssen zu schützen. Serielle Bussysteme sind besser geeignet
zur Übertragung über große Distanzen (Feldbusse, siehe RS485, CAN), da die Gefahr von
Störungen im Vergleich zu parallelen Bussen relativ gering ist. Bei Bussen die über
längere Distanzen übertragen spricht man von Feldbussen. Allerdings muss bei Feldbussen
die Übertragungsrate gesenkt werden. Dies begründet sich dadurch dass bei steigender
Taktfrequenz
die
Mitleidenschaft
Leitungsimpedanz
gezogen,
was
steigt.
Fehler
bei
Dadurch
der
wird
das
Übertragung
Datensignal
in
hervorruft.
Im
Kurzstreckenbereich können serielle Busse in punkto Geschwindigkeit durchaus mit den
parallelen mithalten (siehe FireWire, USB oder PCI – Express). Im Kurzstreckenbereich
werden sie hauptsächlich als externe Busse eingesetzt. Serielle Busse sind im Vergleich zu
den parallelen billiger und leichter anzuwenden. Sie sind weniger komplex aufgebaut und
Alexander Gruber
HTBLA – Salzburg
Seite 8 von 45
Diplomarbeit
Bussysteme & deren Adressierungsverfahren
2005 / 2006
werden daher gern in einfacheren Systemen (z.B. Mikrocontroller – Umgebung)
eingesetzt.
Bei parallelen Bussen werden Daten gleichzeitig über mehrere Leitungen übertragen. Im
Vergleich zu seriellen Bussen sind sie störungsanfälliger, da bei vielen Leitungen die
unmittelbar nebeneinander Daten übertragen das Risiko des Nebensprechens entsprechend
steigt und es dadurch zu Störungen kommen kann. Bei seriellen Bussen ergibt sich dieses
Problem erst gar nicht, da meistens nur über eine bzw. wenig Leitung Daten übertragen
werden. Parallele Busse sind aufgrund der höheren Störungsanfälligkeit eher ungeeignet
zur Langstreckenübertragung. Sie werden hauptsächlich über kurze Distanzen eingesetzt
(z.B. innerhalb eines PCs) wo sie darauf ausgerichtet sind möglichst viele Daten in
möglichst kurzer Zeit zu übertragen. Ein Vorteil gegenüber den seriellen Bussen ist, dass
sie eine weit geringere Taktfrequenz benötigen um die gleiche Datenmenge zu übertragen.
Dies macht sie viel versprechend für die Zukunft. Denn falls es gelingt die Taktrate der
parallelen Busse mit der Taktrate der seriellen Busse gleich zu setzen, könnten die
parallelen ein Vielfaches mehr an Daten übertragen als die seriellen.
Beide Arten, sowohl serielle Busse als auch parallele Busse können nach zwei Arten
betrieben werden. Einerseits nach dem Master / Slave – Prinzip, wo in einem Busnetz ein
„Hauptteilnehmer“ mehrere untergeordnete „Nebenteilnehmer“ kontrolliert. In der Praxis
handelt es sich beim Master meistens um ein komplexeres Gerät wie zum Beispiel eine
CPU oder einen Mikrocontroller. Die Slaves sind hauptsächlich einfachere digitale
Komponenten wie z.B. ein Analog – Digital – Konverter, Treiberbausteine, Sensoren etc.
Die Kommunikation geht so vor sich, dass der Master ein Signal an einen Slave sendet
indem er ihm den Befehl gibt eine Aktion auszuführen oder ihm bestimmte Daten zu
senden.
Bei der anderen Betriebsart gibt es mehrere Master die mehrere Slaves steuern. Die Master
sind gleichberechtigt und können auch einander Befehle zu senden.
3.1.
Parallele Busse
Das Hauptmerkmal eines parallelen Busses ist, dass er seine Daten gleichzeitig über
mehrere nebeneinander angeordneten Leitungen überträgt. Er überträgt, indem er z.B. die
Zustände eines Bytes auf acht Leitungen verteilt (Multiplexverfahren) und gleichzeitig an
den Empfänger sendet. Ein wichtiger Kennwert eines parallelen Busses ist die so genannte
Busbreite. Er definiert die Anzahl der Datenleitungen über die übertragen wird. Bei den
Alexander Gruber
HTBLA – Salzburg
Seite 9 von 45
Diplomarbeit
Bussysteme & deren Adressierungsverfahren
2005 / 2006
ersten parallelen Bussen betrug die Busbreite acht Leitungen, d.h. maximal ein Byte
konnte gleichzeitig übertragen werden. Nach dem heutigen Stand liegt die maximale
Busbreite bei 64 Leitungen.
Ein paralleler Bus besteht allerdings nicht nur aus Datenleitungen. Er wird im Großen und
Ganzen in drei „Unterbusse“ unterteilt. Den Datenbus, den Adressbus und den Steuerbus.
Der Datenbus überträgt die relevanten Daten, während der Adressbus die Zieladressen
überträgt. D.h. über den Adressbus können Endgeräte herausfinden ob sie gerade
angesprochen werden oder nicht. Der Steuerbus dient dazu die Übertragungsparameter
festzulegen. Er beinhaltet unter anderem Interrupt – Leitungen und ist falls nötig für die
Taktvorgabe zuständig. Berühmte parallele Busse sind z.B. der ISA – Bus, PCI, VESA
oder ATA.
3.1.1. Datenbus
Der Datenbus ist wie der Name schon sagt für die Übertragung der eigentlichen Nutzdaten
zuständig und wird durch die Datenleitungen verkörpert. Die Busbreite des Datenbusses
liefert neben der Taktfrequenz und der Übertragungsrate eine Aussage über die
Transportkapazität des gesamten Busses. Die Busbreite gibt auch an wie lange ein
übertragenes Datenwort sein darf. Der Datenbus kann Fehler in einem Datenwort mithilfe
eines Paritätsbits am Ende des Datenworts erkennen, bzw. sich mit redundanten
(überflüssigen, nicht unbedingt notwendigen) Paritätsbits gegen Datenverfälschungen
absichern. Es gibt Busse wo der Datenbus mit dem Adressbus zusammengelegt wird. D.h.
Die Daten und die dazugehörigen Adressen werden über die gleichen Leitungen im
Zeitmultiplex – Verfahren gesendet. Der Datentransfer am Datenbus wird mit dem
Steuerbus kontrolliert. Meistens bilden der Steuerbus und der Adressbus die Mehrzahl an
Leitungen innerhalb eines Busses (Beispiel: Beim 8-Bit – ISA – Bus werden neben 8
Datenleitungen noch 23 Leitungen zur Steuerung, Adressierung und Stromversorgung
mitgeführt).
3.1.2. Adressbus
Mithilfe des Adressbusses werden die angeschlossenen Geräte an einem Bussystem
angesprochen. Die Adressierung erfolgt (wie die gesamte Kommunikation bei allen
Bussen) binär. Wichtig ist dabei die Anzahl der Adressleitungen. Sie geben die maximale
Anzahl an unterstützten Geräten an einem parallelen Bus an. Wenn z.B. ein Adressbus
Alexander Gruber
HTBLA – Salzburg
Seite 10 von 45
Diplomarbeit
Bussysteme & deren Adressierungsverfahren
2005 / 2006
sieben Datenleitungen hat können maximal 27 – 1 (= 127) Geräte in einem Adressraum von
0x01 – 0x80 (0000001 – 1111111) angesteuert werden. Bei einem Bus mit fünf
Adressleitungen wären es höchstens 25 – 1 (= 31) Geräte die adressiert werden könnten.
Die Adresse 0x00 hat der Busmaster bzw. der Buscontroller inne. Über den Adressbus
erfährt ein angeschlossener Slave ob er angesprochen wurde und übernimmt die Daten die
gleichzeitig mit der Adresse innerhalb eines Übertragungszyklusses (= mehrere
Taktperioden, von Busystem zu Bussystem unterschiedlich) am Bus anliegen. Der
Adressbus überträgt nur die physikalische Adresse, die einem Gerät vom Master
zugewiesen wird und über die es im weiteren Betrieb angeschlossen wird. Die logische
Adresse markiert einen bestimmten Bereich im Speicher des Zielgeräts und wird über den
Datenbus versendet.
3.1.3. Steuerbus
Mithilfe des Steuerbusses wird die gesamte Kommunikation zwischen einem Sender und
einem Empfänger gesteuert und mit bestimmten Attributen versehen. Mit dem Steuerbus
ist es beispielsweise einem Master möglich einen Datentransfer zu initiieren und zu
überwachen. Weiters kann er die Transferrichtung und die Art des Transfers festlegen. Die
Anzahl der Steuerleitungen und der Modi die der Steuerbus unterstützt ist von Bus zu Bus
unterschiedlich.
Beispiel: Der 64 – Bit – PCI – Bus
Der PCI – Bus ist ein Musterbeispiel für ein komplexeres paralleles Bussystem, das relativ
viele Steuerleitungen enthält die auch von anderen parallelen Bussystemen zum Teil
verwendet werden.
Alexander Gruber
HTBLA – Salzburg
Seite 11 von 45
Diplomarbeit
Bussysteme & deren Adressierungsverfahren
2005 / 2006
Abb1: Signaldarstellung des PCI – Busses
Dies ist eine Signaldarstellung des 32 bzw. des 64 – Bit – PCI – Busses, der in 64 Datenbzw. Adressleitungen und 120 Steuerleitungen aufgeteilt ist. Alle Signale an die ein „#“
angehängt wurde sind aktiv LOW.
Hier eine Erklärung der unterschiedlichen Signale:
-
Stromversorgung: Für den PCI – Bus gibt es acht Leitungen mit +5V, zwölf
Leitungen mit +3.3V, eine Leitung mit +12V sowie eine mit -12V sowie 34
Masseleitungen, die zur Stromversorgung von an den PCI – Bus angeschlossenen
Geräten dienen.
-
CLK: Hierbei handelt es sich um die Taktleitung. Nach der Frequenz ihres Signals
richten sich alle Busteilnehmer bei der Übertragung bzw. beim Empfang von
Daten.
Sie
bestimmt
die
Übertragungsgeschwindigkeit
aller
Leitungen,
ausgenommen die Reset – Leitung sowie die Interrupt – Leitungen. Die
Alexander Gruber
HTBLA – Salzburg
Seite 12 von 45
Diplomarbeit
Bussysteme & deren Adressierungsverfahren
2005 / 2006
Taktfrequenz kann beim PCI – Bus bis auf 0Hz verringert werden. Diese wird am
Motherboard erzeugt und wird nicht durch einen Abschlusswiderstand terminiert.
-
RST#: Mit der Reset – Leitung werden alle Geräte am Bus auf einen definierten
Zustand gebracht, d.h. alle Busteilnehmer müssen ihre Ausgangssignale auf einen
hochohmigen Zustand bringen und dürfen nicht senden. Die Reset – Leitung kann
asynchron aktiviert bzw. deaktiviert werden und ihr Signal wird gleich wie das
Taktsignal am Motherboard erzeugt. Ein Reset gilt ausnahmslos für alle
Busteilnehmer.
-
AD[31…0]: Dies ist der Daten bzw. der Adressbus. Bei PCI werden Daten und
Adressen im Zeitmultiplexverfahen über die gleichen Leitungen gesendet. Dies hat
den Vorteil dass Leitungen gespart werden. Es gibt jedoch auch parallele Busse, bei
denen der Daten- und Adressbus getrennt gesendet wird.
-
C/BE[3…0]# (= Bus Command / Byte Enable Leitungen): Geben an um welchen
Zugriff bzw. welche Übertragung es sich bei dem im Datenbus gesendeten
Datenwort handelt. BE0# stellt das niederwertigste Command - Bit (least
significant Bit) und BE3# das höchstwertige Command - Bit dar (most significant
Bit). Je nachdem welches der vier Signale gesetzt ist ergibt dies sechzehn
unterschiedliche Möglichkeiten, die bestimmte Befehle festlegen. Beispielsweise
bedeutet 0110 (BE0# - BE3#) dass an dem Busteilnehmer mit der Adresse am
Adressbus ein Memory Read durchgeführt wird, sprich Daten aus dem Speicher
gelesen werden.
-
PAR: Die PAR – Leitung überträgt das Parity – Bit. Mit seiner Hilfe wird überprüft
ob die Daten einem Bitfehler (z.B. durch Störung der entsprechenden Leitung)
unterliegen oder nicht. Das Parity – Bit wird vom Sender bzw. vom Empfänger
festgelegt. Der Empfänger errechnet daraufhin das Parity – Bit aus den gesendeten
Daten die ihn im Adress-, Daten- und Steuerbus erreicht haben. Wird z.B. vorher
ein gerades Parity – Bit ausgemacht und muss die Anzahl aller logischen Einsen die
über den Bus kommen gerade sein. Andernfalls liegt ein Fehler vor. Die Reaktion
auf einen Parity – Fehler ist von Bussystem zu Bussystem unterschiedlich und kann
teilweise auch voreingestellt werden. Je nach Komplexität bzw. Vielseitigkeit des
Systems kann die Prüfung des Parity – Bits für jeden Busteilnehmer verpflichtend
sein.
Alexander Gruber
HTBLA – Salzburg
Seite 13 von 45
Diplomarbeit
-
Bussysteme & deren Adressierungsverfahren
2005 / 2006
FRAME#: Mit dem Frame – Signal wird der Beginn und die Dauer eines Zugriffs
von einem Gerät zu einem anderen gekennzeichnet. Es kann nur von einem Master
erzeugt werden. Sobald das Frame – Signal aktiviert wurde kann die Adresse
übertragen werden und danach Daten, je nach Betriebsart eines Busses. Durch das
Deaktivieren des Frame – Signals wird das letzte übertragene Datenwort angezeigt.
-
IRDY# - (= Initiator Ready): Mithilfe des IRDY – Signals kann ein Master einem
Slave signalisieren dass er mit dem Schreiben auf den Slave fertig ist oder bereit ist
Daten vom Slave zu lesen. D.h. sobald ein Master einem Slave Daten senden
möchte, schickt er sie ihm und teilt ihm durch Aktivierung der IRDY# - Leitung
mit dass er alle Daten gesendet hat. Beim Lesezugriff ist es umgekehrt, der Master
gibt zu erkennen dass bereit ist, Daten die vorher von ihm angefordert wurden und
vom Slave gesendet werden zu empfangen. Das IRDY – Signal kann nur von einem
Master (Initiator) gesetzt werden.
-
TRDY# - (= Target Ready): Das TRDY – Signal ist im Prinzip das Gegenteil des
IRDY – Signals. Wenn der Slave angeforderte Daten an den Master gesendet hat,
sendet es dem Master ein gesetztes TRDY – Signal, das ihm mitteilt, dass der Slave
mit der Übertragung fertig ist (Lesezugriff). Sobald der Master jedoch auf den
Slave zugreifen möchte (Schreibzugriff) muss er erst auf das TRDY – Signal
warten, das ihm die Lesebereitschaft des Zielgeräts signalisiert. Das TRDY –
Signal wird immer in Kombination mit dem IRDY – Signal gesendet. Ein Schreiboder Lesezugriff kann immer erst dann beendet werden, wenn alle beide Leitungen
gesetzt sind. Bis das der Fall ist werden Wait – Zustände eingefügt. Die TRDY –
Leitung kann nur von einem Slave (Target) gesteuert werden.
-
STOP#: Diese Leitung wird von einem Slave gesetzt, wenn es einem Master
mitteilen will, dass eine augenblicklich laufende Übertragung gestoppt werden soll.
-
LOCK#: Die LOCK – Steuerleitung muss nicht zwingend verwendet werden. Das
Signal kann von einem Master bzw. dem Buscontroller gesetzt werden um sich die
Zugriffsrechte auf ein bestimmtes Register oder einen bestimmten RAM – Bereich
zu sichern. LOCK wird zusammen mit der GNT – Leitung benützt um bestimmte
Speicherbereiche zu sperren.
-
IDSEL# (= Initialization Device Select): Wird während der Initialisierungsphase
innerhalb eines Busses als Chip Select benützt. Diese Leitung wird vor allem zur
Alexander Gruber
HTBLA – Salzburg
Seite 14 von 45
Diplomarbeit
Bussysteme & deren Adressierungsverfahren
2005 / 2006
Konfiguration von Geräten benützt. Dieses Signal wird meistens vom Buscontroller
(= Host – Bridge – siehe Kapitel…) oder vom Motherboard zur Verfügung gestellt.
-
DEVSEL# (= Device Select): Sobald ein Slave festgestellt hat, dass es über den
Bus angesprochen wurde (es liest seine eigene Adresse am Adressbus) aktiviert es
diese Leitung. Dadurch kann der Master, der es angesprochen hat, überprüfen ob
dieses Target physikalisch am Bus angeschlossen ist, aktiv ist und gemerkt hat dass
es angesprochen wurde. Allerdings kann er nicht feststellen ob ein oder mehrere
Targets angesprochen wurden. Für Slaves ist die DEVSEL – Leitung nur eine
Ausgangsleitung. Für Master muss sie als Eingangs- und Ausgangsleitung
vorhanden sein, da er andere Geräte ansprechen kann, jedoch auch selber von
einem anderen Master (Multimaster – System) eine Anfrage bekommen kann.
-
REQ# (= Request - Leitung): Sobald ein Master eine Kommunikation mit einem
Gerät starten möchte muss es die Request – Leitung setzen. Diese führt direkt an
den Bus - Controller, der für jeden Master einen eigenen Request – Eingang zur
Verfügung stellt. Sobald der Bus frei ist setzt der Controller die Grant – Leitung,
die dem Master signalisiert dass er zu senden beginnen kann.
-
GNT#: (= Grant – Leitung): Über diese Leitung sichert der Controller (beim PCI Bus die Host – Bridge) einem Master die Verfügbarkeit des Busnetzes zu. Dabei
muss er die Slave – Adresse über den Bus senden und den Start und die Länge der
Übertragungen innerhalb der geplanten Kommunikation bestimmen. Sobald dem
Master die Kontrolle über den Bus entzogen werden soll, wird das Grant – Signal
deaktiviert, was ihn zwingt alle Übertragungen abzubrechen und alle Ausgänge in
einen hochohmigen Zustand zu schalten.
-
PERR#: (= Parity – Error): Mit diesem Signal kann ein Slave der bei einer
Übertragung einen Parity – Fehler festgestellt hat, diesen melden. Der Master
wertet dieses Signal aus (Vorraussetzung dafür ist eine gesetzte Device – Select –
Leitung) und wiederholt gegebenenfalls die Übertragung, des fehlerhaften
Datenworts. Dieses Signal muss von jedem Gerät erzeugt werden können.
-
SERR# (= System – Error): Wird vom angesprochenen Slave dann gesetzt wenn
ein Fehler mit schweren Folgen aufgetreten ist (z.B: Adress – Parity – Error).
Dieses Signal muss gleich wie das Parity – Error – Signal von jedem Gerät erzeugt
werden können und von jedem Master ausgewertet werden können.
Alexander Gruber
HTBLA – Salzburg
Seite 15 von 45
Diplomarbeit
-
Bussysteme & deren Adressierungsverfahren
2005 / 2006
INT[D…A]# (= Interrupt – Leitungen): Diese Leitungen werden dann gesetzt,
wenn ein Gerät eine Unterbrechung fordert. Grundsätzlich können die Interrupt –
Leitungen mit verschiedenen Prioritäten versehen werden. Falls ein Interrupt
gesetzt wird muss das Host – Gerät (bei PCI die CPU) in einer bestimmten Zeit
den aktuellen Vorgang zwischen ihm und dem angesprochenen Gerät beenden.
Diese Leitungen gehören zu den grundlegendsten innerhalb eines Steuerbusses und
sind auch bei einfacheren parallelen Bussen zu finden.
-
SBO# (= Snoop Backoff): Dieses Signal wird nur von Geräten mit eigenem
Speicher verwendet und dient im Beispiel des PCI – Busses zum Zugriff auf den
CPU – internen Cache.
-
SDONE (= Snoop Done): Mithilfe dieser Leitung wird das Ende eines Zugriffs auf
den CPU – Cache gekennzeichnet.
-
AD[63…32]: Hierbei handelt es sich um die 64 – Bit Erweiterung des Daten- und
Adressbusses von PCI. Mit diesen zusätzlichen 32 Leitungen werden die Busbreite
und der ansprechbare Adressraum erhöht. Diese Leitungen können allerdings nur
von PCI – Geräten benützt werden die die 64 – Bit – Version des PCI – Busses
auch unterstützen. Wenn ein Master über den 64 Bit – breiten statt dem 32 – Bit –
breiten Bus übertragen möchte setzt er statt der normalen Request – Leitung die
REQ64# - Leitung, die dem Buscontroller signalisiert dass eine 64 – Bit –
Übertragung angefordert wird. Sobald der Bus frei ist sendet er ein ACK64# Signal und erlaubt dem anfragenden Master die Kommunikation über den 64 – Bit
breiten Bus.
-
C/BE[7…4]#: Diese vier Leitungen haben im Grunde dieselbe Funktion wie die
oben beschriebenen C/BEx – Leitungen für die 32 – Bit – Version des PCI Busses
wobei die vierte Command - Leitung das niedertwertigste und die siebte Command
– Leitung das höchstwertige Signal darstellt. Die C/BE[7…4]# - Leitungen werden
vom angesprochenen Slave nur dann ausgewertet, wenn sowohl die REQ64# Leitung als auch die ACK64# - Leitung aktiviert sind.
-
REQ64# (= Request 64 – Bit – Transfer): Mit dieser Leitung signalisiert ein Master
dem Controller dass eine 64 –Bit – Übertragung möglich ist und bittet um die
Erlaubnis diese auszuführen.
Alexander Gruber
HTBLA – Salzburg
Seite 16 von 45
Diplomarbeit
-
Bussysteme & deren Adressierungsverfahren
2005 / 2006
ACK64# (= Acknowledge 64 – Bit – Transfer): Setzt eine PCI – Host – Bridge
diese Leitung erteilt sie einem Master die Erlaubnis eine Kommunikation über den
64 – Bit breiten Bus auszuführen.
-
PAR64 (= Parity of Upper Double Word): Funktioniert gleich wie die Parity –
Leitung für den 32 – Bit – PCI – Bus mit dem Unterschied dass mit ihr der Bereich
zwischen der zweiunddreißigsten und der vierundsechzigsten Leitung auf Bitfehler
untersucht werden kann.
-
TCK (= Test Clock): Über diese Taktleitung können so genannte Test Access Ports
(IEEE 1149.1 – Standard) mit einem Takt versorgt werden. Diese Ports werden von
eigenen TAP – Controllern kontrolliert. Über die Test Access Ports können PCI
verschiedene Testgeräte getestet werden Dieses Signal ist jedoch nicht zwingend
zur Funktion des PCI – Busses vorgeschrieben.
-
TDI (= Test Data In): Diese Leitung ist eine serielle Leitung über die die Testgeräte
mit Testdaten bzw. Testinstruktionen versorgt werden können. Diese Leitung ist
jedoch gleich wie die Test – Clock – Leitung optional.
-
TDO (= Test Data Out): Ist eine serielle Datenleitung über die Daten vom TAP
geholt ausgelesen werden können.
-
TMS (= Test Mode Select): Über diese Leitung können bestimmte Testmodi für das
Testgerät eingestellt werden.
-
TRST#: (= Test Reset): Mit dieser Leitung kann der Test Access Port – Controller,
über den das Testgerät mit dem PCI – Bus kommuniziert, rückgesetzt werden.
3.2.
Serielle Busse
Serielle Busse übertragen Daten hintereinander über eine Leitung. Dabei gibt es zwei
Arten von seriellen Bussen, nämlich synchrone und asynchrone. Bei synchronen Bussen
wird zusätzlich zur Datenleitung noch eine Taktleitung mitgeführt, die jedem
Busteilnehmer vorgibt mit welcher Taktfrequenz der Bus arbeitet. Bei asynchronen Bussen
sind die Busteilnehmer unabhängig, d.h. jeder kann mit seiner eigenen Taktfrequenz
arbeiten. Allerdings sind in diesem Fall zusätzliche Steuerungsleitungen notwendig die ein
Zielgerät beim Empfang von Daten mit dem Bus synchronisieren.
Die Übertragung erfolgt grundsätzlich mit so genannten Frames. Dabei handelt es sich um
Datenfelder, die sich in einen Headerteil und einen Datenteil unterteilen. Im Headerteil
werden alle Eigenschaften der Daten sowie die Übertragungseigenschaften festgelegt,
Alexander Gruber
HTBLA – Salzburg
Seite 17 von 45
Diplomarbeit
Bussysteme & deren Adressierungsverfahren
2005 / 2006
während im Datenteil die relevanten Informationen an den Empfänger übermittelt werden.
Berühmte Vertreter von seriellen Bussen sind etwa USB, FireWire, oder der CAN – Bus.
4. Adressierungsverfahren
Je nach Art des Bussystems gibt es einige unterschiedliche Möglichkeiten wie ein Endgerät
adressiert werden kann. Bei seriellen Bussen gestaltet sich die Adressierung in der Regel
einfacher als bei parallele Bussen.
4.1.Seriell
In jedem seriellen Bussystem findet die Kommunikation mittels Frames statt. In jedem
Header eines Frames ist eine Zieladresse angegeben, die einem Busteilnehmer angibt ob
der Frame an ihn gerichtet ist oder nicht. Die Länge der Adresse beträgt in den meisten
seriellen Bussystemen ein Byte, da oft nicht mehr als 128 Busteilnehmer unterstützt
werden. Wenn ein Gerät mit einem seriellen Bussystem Daten versenden möchte (Master)
packt es diese zuerst in einen Frame und stattet sie mit einem Header aus. Danach findet
ein so genannter Broadcast statt, d.h. der Frame breitet sich über das gesamte Netz aus.
Wichtig dabei ist, dass sich nur ein Frame zu einer bestimmten Zeit im Netz befinden darf,
da es sonst zu Kollisionen des Datensignals kommen kann, die wiederum Datenverlust und
eine Beeinträchtigung der Netzperformance nach sich ziehen. Physikalisch erreicht der
Frame jeden Busteilnehmer. Diese untersuchen daraufhin den Header und lesen die
Zieladresse heraus. Die Zieladresse wird daraufhin mit der eigenen Adresse verglichen.
Stimmen diese überein behält der Busteilnehmer den Frame. Andernfalls wird er
verworfen.
In einigen Bussystemen gibt es die Möglichkeit Adressen an Geräte zu verteilen. Z.B. nach
einem Reset des Busses können Master bzw. Buscontroller jedem Gerät eine neue Adresse
zuweisen, die ungleich 0x00 ist.
Bei einigen seriellen Bussen gibt es die Möglichkeit Broadcasts zu senden, d.h. ein Master
sendet einen Frame an alle an den Bus angeschlossenen Geräte. Dabei wird die zugehörige
Adresse beispielsweise auf 0x80H gesetzt. Beim Multicasting wird eine Nachricht nur an
eine bestimmte Gruppe von Endgeräten gesendet. In diesem Fall wird eine Gruppe
definiert und einer bestimmten Adresse zugeordnet. Sobald ein Master diese Adresse in
einem Frame verpackt über die Leitung schickt, lesen alle Geräte der vordefinierten
Gruppe die dazugehörigen Daten ein.
Alexander Gruber
HTBLA – Salzburg
Seite 18 von 45
Diplomarbeit
Bussysteme & deren Adressierungsverfahren
2005 / 2006
4.2.Parallel
Bei parallelen Bussystemen wird zur Adressierung ein eigener Adressbus zur Verfügung
gestellt (siehe Adressbus) über den die Zieladresse zu dem Datenwort mit gesendet wird.
Um die Adressierung zu vereinfachen kann man einen Adressdekoder verwenden. Hierbei
wird der Adressbus einmal an einen zentralen Dekoder geführt, der aus der eingelesenen
Adresse das Zielgerät ermittelt und dieses über eine Chipselect – Leitung anspricht. Dies
ist eine relativ einfache Methode der Adressierung die das ganze System übersichtlicher
macht. Mithilfe eines Adressdekoders ist es möglich mehrere Endgeräte zu Gruppen
zusammen zu fassen und somit Multicast – Domänen zu erschaffen. Allerdings werden in
diesem Fall mehrere Geräte in einer einzigen Adresse zusammengefasst. Daher müsste
gewährleistet sein, dass alle Geräte immer zum selben Zeitpunkt dieselbe Nachricht
benötigen. Allerdings hat diese Adressierungsmethode den Nachteil, dass das gesamte
Bussystem vom Adressdekoder abhängig ist. Sobald er ausfällt funktioniert das ganze
System nicht mehr. Weiters senkt diese Methode die Flexibilität des gesamten Busses.
Denn sobald ein neues Gerät an den Bus angeschlossen wird ohne ein altes zu ersetzen,
müsste die Logik innerhalb des Adressdekoders neu programmiert bzw. konfiguriert
werden, d.h. die Adressdekodierung ist nur für Anwendungen geeignet bei denen sich die
Anzahl der Teilnehmer nicht ändert. Außerdem können die Adressen aufgrund des
Dekoders nur statisch und nicht dynamisch vergeben werden. Weiters kann die
Adressierung mit einem zentralen Dekoder nur bei Bussen mit wenigen Busteilnehmern
erfolgen, weil er für jedes Zielgerät einen eigenen Ausgang benötigt um jedes Gerät bzw.
jede Gruppe einwandfrei anzusprechen.
Eine andere Möglichkeit ist, jedes einzelne Gerät mit einem eigenen Adressdekoder zu
versehen. Gleich wie bei der ersten Adressierungsmethode liest er die Adresse vom
Adressbus ein, überprüft sie mithilfe seiner einprogrammierten Logik und aktiviert
gegebenenfalls das Endgerät über die Chipselect – Leitung. Diese Methode hat den Vorteil,
dass sie für größere Busnetze eingesetzt werden kann, da die Anzahl der Ausgänge die als
Chipselect verwendet werden können nicht mehr begrenzt ist. Außerdem wird hier die
gesamte Adressdekodierung dezentralisiert wodurch das gesamte Netz sicherer gegen
Störungen wird. Der einzige Nachteil ist, dass diese Variante teurer ist als die vorherige, da
für jedes Gerät ein eigener Baustein zur Adressdekodierung benötigt wird (z.B. GAL in
Mikrocontroller – Umgebungen).
Alexander Gruber
HTBLA – Salzburg
Seite 19 von 45
Diplomarbeit
Bussysteme & deren Adressierungsverfahren
2005 / 2006
Bei der dritten Variante wird überhaupt kein Adressbus verwendet. Hier werden die
Datenleitungen zur Adressierung verwendet. Jede Datenleitung markiert ein Gerät, d.h. es
kann nur so viele angeschlossene Geräte am Bus geben wie Datenleitungen vorhanden
sind. Ein Beispiel dafür ist der SCSI – Bus.
In der Realität ist es häufig der Fall, dass diese Adressierungsvarianten je nach Größe und
Komplexität der Bussysteme miteinander kombiniert werden. In PCs werden
unterschiedliche Busse verwendet die miteinander kommunizieren müssen. Um diese
Busse zu verbinden verwendet man Bridges. Diese sind in der Lage die Adressierung von
einem Bus in die Adressierung eines anderen Busses umzuwandeln. D.h. möchte z.B. ein
Prozessor ein Datenwort parallel an die Festplatte schicken versieht es das Datenwort mit
der Adresse der Festplatte und schickt es über den Systembus (z.B. PCI). Das Datenwort
erreicht die so genannte Host – Bridge wo es so umgewandelt wird, dass es beispielsweise
über ATA an die Festplatte weiter gesendet werden kann.
5. Feldbusse
Feldbusse werden hauptsächlich in der Industrie, in Maschinen, Fahrzeugen oder
Produktionslinien eingesetzt. Ihre Hauptaufgabe ist es die Kommunikation zwischen
Sensoren bzw. Aktoren und einer Steuerungseinheit zu gewährleisten. Sie wurden Anfang
der 80er Jahre entwickelt um eine digitale Alternative zur bisher analogen
Signalübertragung zu schaffen. Ihr entscheidender Vorteil ist dabei, dass sie Mess-, Steueroder Regelungssysteme vereinfachen und dadurch die Installationskosten, sowie die
Wartungskosten erheblich reduzieren.
Zur Steuerung von Prozessen in Maschinen wird ein Sensor, der zum Beispiel die Drehzahl
eines Motors misst, mit einer Steuerungseinheit verbunden (z.B. SPS, µC oder PC). Damit
diese aktiv in den Prozess eingreifen kann, muss sie jedoch mit dem dazugehörigen Motor
verbunden sein. In der Realität ist es allerdings so, dass zur Steuerung nicht nur ein Sensor,
sondern mehrere verwendet werden. Diese können entweder seriell oder parallel mit der
Steuerungseinheit verbunden sein. Mit steigender Anzahl der Sensoren und Aktoren (z.B.
Motor) erhöht sich allerdings der Verkabelungsaufwand in einer Maschine, was
zwangsläufig zu einer höheren Fehleranfälligkeit führt. Innerhalb eines Feldbussystems
werden alle Komponenten an einer digitalen Leitung angeschlossen, die zur
Steuerungseinheit führt. Dadurch wird das gesamte System einfacher und flexibler.
Hier die wichtigsten Vorteile eines Feldbusses:
Alexander Gruber
HTBLA – Salzburg
Seite 20 von 45
Diplomarbeit
Bussysteme & deren Adressierungsverfahren
2005 / 2006
-
geringerer Verkabelungsaufwand bei der Installation
-
Eigendiagnose bei Fehlern  Reparatur- und Wartungszeiten verkürzt
-
Höhere Zuverlässigkeit
-
Störungsunempfindlicher
-
Vereinheitlichte Datenübertragung und Geräteanschlüsse
-
Hohe Flexibilität
Allerdings
stellen
Feldbusse
nicht
die
ultimative
Lösung
im
industriellen
Kommunikationsbereich dar. Vor allem was die Wartung betrifft, sind Feldbusse
bedeutend aufwändiger zu warten als analoge Systeme, da in jeder Steuerungseinheit eine
Softwarekomponente enthalten sein muss. Dies erfordert wiederum geschultes Personal.
Die wichtigsten Nachteile von Feldbussen:
-
Komplexeres System (Datenübertragung)
-
Teurer als Analoge Kommunikationssysteme
-
Messgeräte sind zumeist aufwändig, da sie mit digitalen Daten arbeiten
-
Die Reaktionszeit zwischen Sensor und Aktor kann etwas höher sein. Dies ist vor
allem ein Kriterium bei der Überwachung von wichtigen Systemen (z.B.
Schutzsysteme)
Verglichen mit einem Bussystem innerhalb eines PCs arbeiten Feldbusse meistens mit
einer niedrigeren Taktfrequenz und kommunizieren über weitere Strecken (im Bereich von
mehreren Kilometern). Einige weit verbreitete Feldbusse sind z.B. CAN – Bus, I²C oder
Profibus.
5.1.
CAN – Bus
Der CAN Bus (Controller Area Network) wurde 1983 von der Firma Bosch für die
Autoindustrie entwickelt. Es handelt sich dabei um ein serielles asynchrones Bussystem.
Die maximale Reichweite über die übertragen werden kann liegt bei etwa eintausend
Meter. Zur Übertragung benötigt der CAN – Bus 2 Leitungen (meistens als unshielded
twisted pair oder als shielded twisted pair ausgeführt), allerdings werden meistens drei
Leitungen benützt:
-
High – Leitung  Liefert das ursprüngliche Datensignal
-
Low – Signal  Überträgt das invertierte Datensignal um Störungen zu vermindern
Alexander Gruber
HTBLA – Salzburg
Seite 21 von 45
Diplomarbeit
-
Bussysteme & deren Adressierungsverfahren
2005 / 2006
GND  Wird benötigt um die Spannungspegel an der High – Leitung bzw. Low –
Leitung festzustellen
An den Enden der Low – Leitung und der High – Leitung wird ein Abschlusswiderstand
von 120Ohm angeschlossen um Reflexionen des Signals zu vermeiden.
Abb2: Leitungsdarstellung eines CAN - Bussystems
Der CAN – Bus an sich ist dem Ethernet relativ ähnlich und gehört zur Familie der Local
area Networks. Maximal können an eine Leitung 128 Geräte angeschlossen werden, dies
ist allerdings primär von den verwendeten Treiberbausteinen abhängig. Er arbeitet nach
dem „Multi – Master – Prinzip“, d.h. mehrere gleichberechtigte Steuerungsgeräte sind in
einer topologischen Anordnung miteinander verbunden. Für den CAN – Bus können drei
Topologien verwendet werden, die ringförmige, die sternförmige und die linienförmige
Topologie. Bei der linienförmigen Busstruktur hängen alle Engeräte parallel zwischen
einer zentralen High – Leitung und der Low – Leitung. Sollte ein Gerät ausfallen hat dies
keine Auswirkungen auf den gesamten Bus. Bei der ringförmigen Topologie sind alle
Steuergeräte in Serie zueinander vernetzt, was den Nachteil mit sich bringt, dass der ganze
Bus betriebsunfähig ist sobald ein Steuergerät ausfällt. Die sternförmige Anordnung sieht
so aus, dass alle Endgeräte um einen Zentralrechner angeordnet sind über den alle
Informationen fließen. Sobald dieser Zentralrechner jedoch ausfällt, werden die Daten von
den Endgeräten nicht mehr weitergeleitet.
Die Übertragung erfolgt beim CAN – Bus mit einer minimalen Datenrate von 10kbps und
einer maximalen Datenrate von 1Mbps. Die Datenrate hat natürlich einen Einfluss auf die
Alexander Gruber
HTBLA – Salzburg
Seite 22 von 45
Diplomarbeit
Bussysteme & deren Adressierungsverfahren
2005 / 2006
maximale Länge der Leitung, da mit steigender Frequenz (bit pro Sekunde) die Impedanz
der Leitung höher wird. Bei 50kbps kann über eine Entfernung von einem Kilometer
übertragen werden, während bei 1Mbps nur noch vierzig Meter möglich sind. Um
eventuellen Störungen vorzubeugen verwendet der CAN – Bus das CSMA/CA –
Verfahren (Carrier Sense Multiple Access / Collision Avoidance – Ein Endgerät „hört“ die
Leitung ab und sendet erst dann wenn die Leitung frei ist). Zusätzlich wird noch eine so
genannte Bit – Arbitrierung vorgenommen, d.h. ein Endgerät das seine Daten senden
möchte schickt einen entsprechenden Frame (Identifier – legt die Priorität der Nachricht
fest) über die Leitung. Während dieser Frame sich im Netz ausbreitet hört das Endgerät die
Leitung ab. Sendet zum selben Zeitpunkt gerade ein zweites Gerät einen Identifier so darf
das Endgerät mit der wichtigeren Nachricht zuerst senden. Um einen möglichen
Datenverlust bei der Übertragung zu verhindern wird am Ende eines Frames eine CRC –
Checksum hinzugefügt.
Grundsätzlich gibt es beim CAN – Bus vier Arten von Frames:
-
Daten – Frame  Zum Transport von Maximal acht Byte Daten
-
Remote – Frame  Wird meistens von einer Steuereinheit an einen Sensor
gesendet – dient zur Anforderung von Daten
-
Error – Frame  Hierbei wird allen Geräten in einem CAN – Bus mitgeteilt dass
ein Fehler bei einer Übertragung aufgetaucht ist
-
Overload – Frame  Ist eine Zwangspause zwischen Daten- und Remote – Frames
Der Aufbau eines Datenframes sieht so aus:
Abb3: Typischer Datenframe des CAN - Busses
Alexander Gruber
HTBLA – Salzburg
Seite 23 von 45
Diplomarbeit
Bussysteme & deren Adressierungsverfahren
2005 / 2006
Der Start des Frames wird mit einem Bit markiert (SOF – Start of Frame), danach folgt der
Identifier, der entweder 11 oder 29 Bit lang sein kann. Sobald das Remote Transmission
Bit gesetzt ist, handelt es sich bei dem Frame um einen Remote – Frame (RTR – Remote
Transmission Request), d.h. ein Teilnehmer im Bussystem fordert einen anderen auf
bestimmte Daten zu senden. Das Kontrollfeld setzt sich aus zwei reservierten Bits und dem
Datenlängenfeld zusammen. Das Datenlängenfeld gibt die Länge der Daten an. Danach
folgen die eigentlichen Nutzdaten, die vom anfragenden Gerät benötigt werden (z.B. ein
digitalisierter Spannungswert eines A/D – Wandlers). Als nächstes folgt die CRC –
Prüfsumme (= Prüfsumme + Delimiter) mit der ein Empfänger des Frames bestimmen
kann ob dieser fehlerhaft ist oder nicht. Wenn ja, sendet er eine Anfrage an den Sender in
der er um eine erneute Sendung des Frames bittet. Danach kommt das Bestätigungsfeld.
Damit wird der vollständige Empfang eines Frames bestätigt. Und als letztes folgt das
Intermission Feld. Es ist drei Bit lang uns ist dazu da einen Mindestabstand zwischen zwei
Frames herzustellen.
Grundsätzlich „broadcastet“ ein Steuergerät (Master) einen Request – Frame in das
Bussystem, d.h. der Frame erreicht alle Busteilnehmer, ist allerdings nur an einen gerichtet.
In diesem Frame befiehlt es dem Endgerät (Slave) ihm bestimmte Daten zu senden oder
einen Befehl auszuführen. Für den Fall dass das Endgerät um bestimmte Daten gebeten
wurde, sendet es diese in einem Daten – Frame zurück an das Steuergerät
Der CAN – Bus ist nach der ISO – Norm 11898 international standardisiert und arbeitet
auf den ersten beiden Schichten (physical- & data link layer) des OSI – Modells. Der CAN
– Bus hat sich seit 1989 vor allem in Europa als Allround – Bussystem profiliert. Es wird
hauptsächlich in Autos eingesetzt, allerdings wird es auch immer mehr im industriellen
Fertigungsbereich eingesetzt (z.B. Produktionslinien). Laut Bosch sind derzeit etwa 50
unterschiedlicher CAN – kompatible Mikrocontroller und Treiberbausteine erhältlich.
5.2.
EIA 485
Der EIA 485 – Bus (ehemals RS 485) definiert nur das Übertragungssystem bzw. die
Hardware über die gesendet werden kann. Er hat kein eigenes Protokoll, was ihn für viele
Anwendungen flexibler macht. Er eignet sich besonders für die Verbindung zwischen
Mikrocontrollersystemen und kann über Entfernungen von bis zu 1.5 km übertragen. Im
Alexander Gruber
HTBLA – Salzburg
Seite 24 von 45
Diplomarbeit
Bussysteme & deren Adressierungsverfahren
2005 / 2006
Vergleich zu anderen Feldbussen ist der EIA 485 relativ schnell (über 2Mbit/s), außerdem
hat er aufgrund des fehlenden Protokolls keinen Overhead, was z.B. beim CAN – Bus der
Fall ist. Normalerweise können 32 Busteilnehmer angesteuert werden, allerdings sind mit
speziellen Treiberbausteinen bis zu 128 Teilnehmer möglich. Der EIA 485 – Bus arbeitet
seriell, d.h. er benötigt zur Übertragung im Halbduplex – Betrieb nur zwei Leitungen. Man
kann ihn jedoch auch im Vollduplex – Modus betreiben, was vier Leitungen erfordert. EIA
485 ist ein differentielles Bussystem, das mit Spannungspegeln von +5V für den HIGH Zustand bzw. 0V für den LOW - Zustand arbeitet. Auf einer Leitung wird das
ursprüngliche Datensignal gesendet, auf der anderen wird es gleich wie beim CAN – Bus
invertiert gesendet. Der einzige Unterschied besteht darin, dass die Masse nicht mitgeführt
wird. Der wesentliche Vorteil des EIA 485 – Busses besteht darin, dass die
Treiberbausteine relativ klein und billig sind. Außerdem kann das verwendete Protokoll
vom Anwender frei definiert werden, was den Bus flexibler für die Anforderungen des
Anwenders macht.
Er kann entweder nach dem „Single – Master / Multi – Slave“- oder nach dem „Multi –
Master“ Prinzip betrieben werden. Beim ersteren sendet ein Master (meistens ein Rechner
- µC oder PC) Befehle an die Slaves (Sensoren, A/D – Wandler, etc.), die diese ausführen.
Beim Multi – Master – Prinzip gibt es mehrere gleichberechtigte Masterbausteine, die
einander und den Slaves Befehle zusenden.
Abb4: Leitungsdarstellung des EIA 485er Busses
In diesem Fall hängen die Busteilnehmer parallel zueinander. Die Werte der
Abschlusswiderstände sollten bei Entfernungen kleiner 20m etwa 100kΩ gegen Masse und
Spannungsversorgung, sowie etwa 1kΩ zwischen den beiden Datenleitungen haben.
Alexander Gruber
HTBLA – Salzburg
Seite 25 von 45
Diplomarbeit
Bussysteme & deren Adressierungsverfahren
2005 / 2006
Allerdings variieren diese Werte, je länger die Leitung und je schneller die Datenrate wird.
Die im Bild gezeigten Bausteine sind die Treiberbausteine. Sie bilden die Verbindung
zwischen der Busleitung und dem Rechensystem das über den Bus sendet. Es gibt
unterschiedliche Treiberbausteine, wobei sich Unterschiede hauptsächlich in der
verwendeten Datenrate, der maximalen Anzahl der Busteilnehmer sowie der Anzahl der
Sender und Empfänger ergeben.
Abb5: Sender bzw. Empfängerbaustein eines EIA 485er Busses
In diesem schematischen Aufbau eines EIA 485 – Treibers stellen A die ursprüngliche und
B die invertierte Datenleitung dar. D und R sollten an den seriellen Ausgang (TxD) bzw.
Eingang (RxD) des eigentlichen Bausteins angeschlossen werden.
Da der RS 485 – Bus an sich keine Protokolle beinhaltet, muss vom Anwender entweder
erst ein passendes Protokoll gefunden werden, oder er muss ein eigenes Protokoll
erschaffen. Bei jedem seriellen Bus erfolgt die Kommunikation über Frames. Im Kapitel
6.1. (CAN – Bus) wurde ein solcher Frame bereits erklärt. Auch in diesem Fall sollte ein
Frame die Adresse des Geräts enthalten an die der Frame gesendet werden soll. Weiters
sollte eine Angabe über die Länge des Frames und natürlich die Daten enthalten sein.
Danach sollte noch eine Checksumme folgen um zu gewährleisten, dass der Frame
unbeschadet am Ziel angekommen ist.
6. Busse in Rechnersystemen
Innerhalb eines Rechnersystems wie es zum Beispiel PCs, Workstations oder
Serveranlagen sind gibt es jeweils unterschiedliche Bussysteme mit unterschiedlichen
Anforderungen. Diese Bussysteme unterscheiden sich im hauptsächlich durch die
Übertragungskapazität und die Geschwindigkeit. Man kann sie in zwei Gruppen einteilen.
Einerseits gibt es interne Busse und andererseits externe Busse. Die internen Busse stellen
alle Datenverbindungen innerhalb des Rechnergehäuses dar, während mit externen Bussen
Alexander Gruber
HTBLA – Salzburg
Seite 26 von 45
Diplomarbeit
Bussysteme & deren Adressierungsverfahren
2005 / 2006
die Verbindungen zwischen einem Rechnersystem und anderen Geräten wie zum Beispiel
ein Drucker, eine externe Festplatte oder aber auch ein anderer Computer. Die Busse
innerhalb eines Computers sind ein wichtiger Parameter für die Leistung, die das gesamte
Gerät bringen kann. Die Geschwindigkeit eines Bussystems kann ein entscheidender
Faktor für die Schnelligkeit und Effizienz des ganzen Rechners sein.
6.1.
Interne Busse
In den letzten Jahren sind die Anforderungen an PCs stark gewachsen. Von der
Prozessorentwicklung konnten diesen Anforderungen rasch genüge getan werden (z.B.
Entwicklung von Multiprozessorsystemen), allerdings kommen immer noch Computer auf
den Markt die zehn Jahre alte Bussysteme beinhalten. Durch sie werden CPUs teilweise
regelrecht ausgebremst, da es die Busse nicht schaffen genügend Daten an den Prozessor
zu liefern bzw. weg zu transportieren um diesen voll auszulasten.
Vom Standpunkt der Geschwindigkeit aus gesehen gibt es in einem PC vorwiegend zwei
Arten von Bussystemen: Einerseits der Systembus (local Bus), der als schnelle
Datenverbindung zwischen CPU, den Caches, sowie RAM und Festplatte agiert und
andererseits die I/O – Busse (Peripheriebusse), die etwas langsamer sind und Daten
zwischen den Peripherieschnittstellen und dem Prozessor transportieren. Die I/O – Busse
und der Systembus sind über eine Bridge miteinander verbunden. Diese Architektur ist
bzw. war z.B. bei Intels Pentium II – Chipsatz zu finden. Der Vorteil besteht darin, dass
die Komponenten auf die der Prozessor am öftesten zugreift (z.B. RAM) ihre Daten
schnell bereitstellen können. Außerdem ist es einfacher I/O – Busse anzusteuern, die unter
anderem unterschiedliche Geschwindigkeiten aufweisen. Würde man den Systembus und
die Peripheriebusse zusammenfassen, bräuchte man ein universelles Bussystem, dass
einerseits schnelle Peripherie sowie auch langsame unterstützt. Dabei würde sich die
maximale Datenrate auf die Geschwindigkeit des langsamsten Peripheriegeräts
beschränken. Dies würde das gesamte System um einiges langsamer machen. Die effektive
Datenübertragungsrate von schnelleren Geräten könnte nicht voll ausgenutzt werden.
Daher wird das System in zwei Bussysteme geteilt. Beim Systembus werden alle
angeschlossenen Geräte ohne Pufferung verwaltet, während z.B. bei der Kommunikation
zwischen einem Diskettenlaufwerk und der CPU die Daten in der Bridge gepuffert werden
Alexander Gruber
HTBLA – Salzburg
Seite 27 von 45
Diplomarbeit
müssen
um
Bussysteme & deren Adressierungsverfahren
einerseits
den
Systembus
nicht
zu
verlangsamen
2005 / 2006
und
um
die
Geschwindigkeiten des langsamen I/O – Busses und des schnellen Systembusses
aneinander anzupassen. Bei fast allen Systembussen handelt es sich um synchrone
Bussysteme, die fest mit der Taktfrequenz der CPU gekoppelt sind. Dies hat aber
wiederum den Nachteil, dass Erweiterungskarten die an den Systembus angeschlossen
werden, über einen großen Frequenzbereich stabil funktionieren müssen da heutige
Prozessoren in Bereichen zwischen 1GHz und 4.5GHz arbeiten und somit auch die
Geschwindigkeit des Systembusses je nach verwendetem Prozessor schwankt. Eine
Lösung dafür ist, dass man Erweiterungskarten mit einer fixen Arbeitsfrequenz ausstattet
und die Kommunikation mithilfe von Wait States für die CPU stattfindet.
Abb6: Blockschaltbild einer älteren Busarchitektur innerhalb eines PCs
Es gibt eine neuere Möglichkeit, dass man die CPU vom Systembus entkoppelt. Dies
geschieht über ein bidirektionales FIFO – RAM, das die Kommunikation zwischen CPU
und Systembus herstellt. Dadurch wird die Taktfrequenz des Busses von der Taktfrequenz
Alexander Gruber
HTBLA – Salzburg
Seite 28 von 45
Diplomarbeit
Bussysteme & deren Adressierungsverfahren
2005 / 2006
des Prozessors entkoppelt, d.h. der Systembus arbeitet unabhängig von der CPU. Dadurch
muss der Prozessor nicht mehr mit Wait – States arbeiten, wenn er mit anderen Geräten,
die mit einer anderen Taktfrequenz arbeiten kommuniziert und umgekehrt. Die
Buscontroller speichern die Daten und übergeben sie nach der jeweiligen individuellen
Geschwindigkeit an das Gerät. Diese Möglichkeit des entkoppelten Systembusses zieht
jedoch deutlich mehr Signale, die verwendet werden, nach sich. Es werden zusätzliche
Steuersignale, die die Parameter für die Übertragung einstellen. Der Systembus arbeitet
nach einem eigenen Takt, der von einem Mainboard – internen Chip vorgegeben wird.
Durch diese Vereinheitlichung können Erweiterungskarten, die über einen Puffer an den
entkoppelten Systembus angeschlossen werden, nach einer einheitlichen Frequenz
arbeiten, was die Herstellung und Entwicklung vereinfacht. Beispiele für entkoppelte
Systembusse sind EISA oder der PCI – Bus.
Modernere Computer wie zum Beispiel der Pentium IV arbeiten auf einem ähnlichen
Prinzip wie oben beschrieben. In ihnen wird das gesamte interne Bussystem ähnlich wie
beim P2 in zwei Bereiche gegliedert. Einerseits die Northbridge, die hauptsächlich die
schnelleren Systembusse verwaltet und andererseits die Southbridge, an der vorrangig die
I/O – Bussysteme mit den Schnittstellen nach außen hängen. Meistens sind sie in zwei
Komponenten konstruiert, wobei die Northbridge und die Southbridge jeweils in einem
eigenen Chip realisiert sind. Es gibt allerdings auch Versionen in denen die Northbridge
und die Southbridge in einem Chip kombiniert sind. Diese Northbridge/Southbridge –
Architektur wird mittlerweile auch von anderen Chipsatz – Herstellern verwendet. Im
Großen und Ganzen kann man sich die Northbridge wie den oben beschriebenen Chip
vorstellen, der den Takt für den Systembus vorgibt. Allerdings kommt im Falle einer
Northbridge hinzu, dass es sich um unterschiedliche System – Bussysteme handelt, die
unterstützt werden müssen. Die Northbridge sollte auf jeden Fall in der Lage sein die
Daten so schnell weiter zu geben, wie die CPU sie liefert.
Alexander Gruber
HTBLA – Salzburg
Seite 29 von 45
Diplomarbeit
Bussysteme & deren Adressierungsverfahren
2005 / 2006
Abb7: Blockschaltbild einer Northbridge/Southbridge Architektur
Im oben abgebildeten Schema stellt die Northbridge die Verbindung zwischen den
rechenaufwändigen Geräten bzw. den Geräten auf die oft zugegriffen wird her. Dazu
zählen natürlich die CPU, als Herzstück eines jeden Computers, das RAM sowie die
Festplatte und die Grafikkarte. Die Verbindung zwischen der Northbridge und der CPU ist
mit Abstand am wichtigsten, da über sie alle verarbeiteten bzw. zur Verarbeitung
vorgesehenen Daten fließen. Sie ist das Äquivalent zum oben beschriebenen Systembus
innerhalb der Pentium II – Architektur. Für die Festplatte bzw. das RAM sind ebenfalls
schnelle Bussysteme nötig, da auf den Speichermedien alle Daten gelagert werden die zur
Verarbeitung herangezogen werden. Der Bus zwischen Northbridge und RAM sollte die
Daten mindestens so schnell übertragen können, wie sie vom Prozessor kommen, da es
sonst zu „Datenstaus“ kommen kann und damit die Leistungsfähigkeit des gesamten
Systems beeinträchtigt wird. Verbreitete Busse für den Anschluss von internen Festplatten
sind unter anderem PCI, ATA bzw. ATAPI oder SCSI. Für die datenmäßige Ansteuerung
von Grafikkarten wurden eigene Bussysteme entwickelt.
Beispiele dafür sind unter
Anderem AGP oder PEG (PCI – Express for Graphics).
Alexander Gruber
HTBLA – Salzburg
Seite 30 von 45
Diplomarbeit
Bussysteme & deren Adressierungsverfahren
2005 / 2006
Die Southbridge ist das Gegenstück zur Northbridge. Sie ist meistens deutlich langsamer
und für die Verbindung zu den meist langsameren Peripheriegeräten verantwortlich. Die
Verbindung zwischen Northbridge und Southbridge ist essentiell, da über sie alle Daten
zwischen CPU und sämtlichen Peripheriegeräten laufen. Diese Verbindung sollte so
schnell wie möglich sein, da sie meistens sehr ausgelastet ist. In der Vergangenheit hat sie
sich schon in einigen neu entwickelten Rechnern als Flaschenhals und Leistungshemmer
entpuppt. Ein Merkmal der Southbridge ist, dass sie möglichst viele unterschiedliche Busse
unerstützen sollte, um die Kompatibilität zu möglichst vielen externen Geräten zu
gewährleisten. Eine typische Southbridge unterstützt Busse wie z.B. USB, FireWire, PCI,
ATA, ISA etc.
Mittlerweile gibt es allerdings neuere Kommunikationsarchitekturen in Rechnern. Die IHA
–
Architektur,
wurde
von
Intel
entworfen.
Sie
bietet
im
vergleich
zur
Northbridge/Southbridge – Architektur jedoch nicht viel Neues. Der einzige Unterschied
ist, dass die Northbridge durch einen Graphics & Memory Controller ersetzt wurde
(GMCH) und die Southbridge durch einen I/O – Controller Hub (ICH).
Die meisten Busse die innerhalb eines Rechners verwendet werden sind parallel. Diese
bestehen wiederum aus drei Teilen: dem Datenbus, dem Adressbus und dem Steuerbus.
6.1.1. PCI
1992 entwickelte Intel ein neues Bussystem, das eine höhere Datenrate erzielen sollte als
es bisher mit dem 16 – Bit breiten ISA – Bus möglich war. Weiters sollte dieses Bussystem
kostengünstiger ausfallen und resistenter gegen äußere elektromagnetische Einflüsse sein.
Heraus kam ein 32 – Bit – breites paralleles Bussystem mit dem Namen „Peripheral
Component Interconnect“ (kurz PCI). Ein Problem war, dass an den PCI – Bus anfangs
neben der CPU nur drei Geräte angeschlossen werden durften und die über dies hinaus am
Motherboard installiert sein mussten, was dieses um Einiges verteuert hätte. Deshalb
wurde ein zweiter Entwurf für PCI entwickelt, der nun bis zu vier Slots unterstützte. Der
PCI – Bus ist ein CPU unabhängiges Bussystem, d.h. zwischen dem Bus und der der CPU
hängt eine so genannte Host – Bridge, die die Kommunikation zwischen CPU und PCI
steuert. Dieser Bus wurde für den Einsatz innerhalb eines Rechners entwickelt und wird
trotz seines relativ hohen Alters immer noch in PCs unterschiedlicher Hersteller eingesetzt.
Der PCI – Bus überträgt seine Daten und Adressen im Zeitmultiplex d.h. Daten und
Alexander Gruber
HTBLA – Salzburg
Seite 31 von 45
Diplomarbeit
Bussysteme & deren Adressierungsverfahren
2005 / 2006
Adressen werden über einen Multiplexer auf dieselben Leitungen zusammengefasst und
übertragen. Die erste Version arbeitete mit einer Taktfrequenz von 33MHz, bei einer
Busbreite von 32 Leitungen. Daraus ergibt sich eine Datenrate von 128 Megabyte pro
Sekunde. Die nächste Version arbeitete bereits mit der doppelten Frequenz. Seit 1994 gibt
es PCI – Versionen die bei 66MHz über 64 Leitungen übertragen. Dies ergibt eine für
damalige Zeiten beachtliche Datenübertragungsgeschwindigkeit von 512 MB pro Sekunde.
Allerdings haben sie den Nachteil, dass sie nur zwei Slots pro Bridge unterstützen. Die
neuesten PCI – Versionen (PCI-X 266) arbeiten mit 266MHz bei 64 Bit Busbreite und
können bis zu 2.1GB pro Sekunde übertragen. Mittels so genannter Burst Tranfers ist es
allerdings möglich noch über diese Datenrate hinaus zu kommen. Zitat: „Unter einem
Burst versteht man den Zugriff einer CPU oder eines DMA – Controllers oder Bus –
Masters, bei dem im ersten Zyklus die Adresse, in den folgenden Zyklen jeweils Nutzdaten
übertragen werden, die in auf- oder absteigender Reihenfolge ab der im ersten Zyklus
transferierten (physikalischen) Adresse abgespeichert werden. Mit dieser Adresse erspart
man sich die Übertragung der redundanten Adressinformationen. Ein Burst – Transfer ist
allerdings nur dann sinnvoll nutzbar, wenn die Daten in einem Speicherbereich mit
zusammenhängenden physikalischen Adressen stehen; einfach zusammenhängende Blöcke
logischer Adressen nützen nichts, da die dazugehörigen physikalischen Adressbereiche
bunt zusamengewürfelt sein können und damit die Übertragung der Adressinformationen
notwendig machen. Bursts sind nur dann möglich, wenn sowohl der Sender als auch der
Empfänger für den Burst – Betrieb vorgesehen sind und diesen Transfermodus
unterstützen.“ (Kloth, Axel. PCI und VESA Local Bus, S. 224)
Die Anzahl der Zyklen (ein Zyklus dauert eine bestimmte Anzahl an Taktperioden) ist
beim „Standard“ Zugriffsverfahren und dem Burst – Zugriffsverfahren unterschiedlich.
Werden z.B. im Standard – Modus vier Datenwörter gesendet dauert dies acht Zyklen.
Dies kommt daher, dass zuerst die Speicheradresse für das erste Datenwort gesendet wird
und dann das erste Datenwort selbst. Danach wird die Speicheradresse für das zweite
Datenwort gesendet und dann das zweite Datenwort und so weiter. Das heißt pro
Datenwort werden zwei Zyklen benötigt. Im Burst – Modus wird zuerst die
Speicheradresse für das erste Datenwort übertragen und dann alle vier Datenwörter. Das
erste Datenwort wird an der vorher angegebenen Speicheradresse abgelegt. Die folgenden
drei werden entweder in den angrenzenden drei höheren oder in den angrenzenden drei
niedrigeren Adressen abgespeichert. Dieser Sendevorgang dauert im Gesamten fünf
Alexander Gruber
HTBLA – Salzburg
Seite 32 von 45
Diplomarbeit
Bussysteme & deren Adressierungsverfahren
2005 / 2006
Zyklen. Die Adresse die den Empfänger festlegt wird während jedes Zyklusses parallel im
Adressbus mit gesendet. Der Vorteil des Burst – Modus ist, dass ein bedeutender Teil an
Overhead eingespart wird. Die Länge eines Bursts (eine Adresse + X Datenworte) ist
theoretisch nur durch den Speicherplatz des Zielgeräts oberhalb oder unterhalb der Adresse
beschränkt.
Grundsätzlich ist PCI ein synchrones Bussystem, das mithilfe von Bridges die
Kommunikation zwischen maximal zehn Busteilnehmern sichern kann. PCI hat sich in der
Entwicklung von PC – internen Bussystemen als richtungsweisend erwiesen. Durch seine
Unabhängigkeit von der CPU ist es möglich den PCI – Bus auch mit anderen Prozessoren
den von Intel einzusetzen. Außerdem können mit PCI Multiprozessorsysteme realisiert
werden, d.h. in einem Rechner arbeiten mehrere CPUs die sich die Rechenarbeit aufteilen
und untereinander kommunizieren. Dies ist vor allem bei Servern bzw. größeren
Workstations interessant.
Vom Standpunkt der Hardware aus gesehen haben die 32 – Bit – Versionen des PCI –
Busses 120 Leitungen, während die 64 – Bit – Versionen 184 Leitungen benötigen. Diese
teilen sich auf in 32 bzw. 64 Datenleitungen, ebensoviel Adressleitungen, einigen
Versorgungsleitungen bzw. Masseleitungen und den Steuerleitungen. Der Teil von 0 … 32
Bit eines 64 Bit – Steckers ist mit dem 32 – Bit – Stecker identisch. Dadurch könnte z.B.
eine Erweiterungskarte die mit einer 32 Bit – Version von PCI arbeitet auch an einen 64 –
Bit PCI – Bus angeschlossen werden. Der PCI – Bus bietet zusätzlich die Möglichkeit
Erweiterungskarten mit 3.3V, ±5V bzw. ±12V zu versorgen, bei einer Leistung von
maximal 25W. Wichtig ist dabei dass die Leitungen des Busses eine Impedanz zwischen
60Ω und 100Ω haben. Die wichtigsten Steuersignale des PCI – Steuerbusses sind
einerseits die Taktleitung, die jedem Zielgerät den Takt vorgibt mit dem der Bus arbeitet
und somit die Synchronisation gewährleistet Die Frequenz kann zwischen 66MHz und 0Hz
variiert werden um z.B. Strom zu sparen. Über die Reset – Leitung können angeschlossene
Geräte in einen definierten Zustand gebracht werden, d.h. alle PCI – Geräte müssen ihre
Ausgangssignale auf einen hochohmigen Zustand bringen. Beim PCI – Bus gibt es
allerdings noch weitere Steuerleitungen (siehe Steuerbus).
Auch beim PCI – Bus wird das Master/Slave – Prinzip angewendet. Es ist allerdings auch
möglich dass mehrere Master mehrere Slaves steuern. Bei PCI sind die Master mit den
Initiatoren gleichzusetzen, während es sich bei den Slaves um Targets handelt. Die
Initiatoren können eine Kommunikation mit einem Target starten. Dies tun sie indem sie
Alexander Gruber
HTBLA – Salzburg
Seite 33 von 45
Diplomarbeit
Bussysteme & deren Adressierungsverfahren
2005 / 2006
die Kontrolle über die Steuerleitungen übernehmen. Sie bestimmen weiterhin den Beginn
und die Länge der Kommunikation. Wenn ein Initiator mit einem Target kommunizieren
möchte muss dies nach einem bestimmten Handshake (Protokoll) ablaufen. Sobald ein
Target bemerkt dass es über den Bus angesprochen wurde, sendet es ein Rückmeldesignal
an den Initiator. Im Rückmeldesignal kann es mitteilen ob es lesebereit ist oder ob es Daten
beinhaltet die verfügbar sind. Es kann den Initiator allerdings auch bitten Wait – States zu
erzeugen, d.h. es bittet ihn mit anderen Worten eine bestimmte Zeit zu warten.
Sobald ein Gerät an den PCI – Bus angeschlossen wird und startet muss es sich zu
erkennen geben. Um dies zu bewerkstelligen besitzt es einen so genannten Configuration
Space. Dieser Space ist 256 Byte groß, wobei die ersten 64 Byte einen vorgegebenen Inhalt
enthalten. Sie enthalten Informationen über den Typ des Geräts, die Seriennummer, die
Versionsnummer und ein Identifikationsnummer die den Hersteller kennzeichnet. Weiters
ist noch eine Bus – Nummer enthalten. Der Configuration Space wird von der PCI – Host
– Bridge konfiguriert und an die Einstellungen des jeweiligen PCI – Busses angepasst.
Ursprünglich wurde diese Aufgabe von Intel – Prozessoren übernommen. Da PCI jedoch
auch in Kombination mit anderen CPUs eingesetzt werden und diese nicht direkt an den
Bus angeschlossen nicht mit ihm kompatibel wären übernimmt dies die Host - Bridge, die
zwischen der CPU und dem Bus hängt. Die CPU sendet Konfigurationsbefehle, die von
der Bridge übersetzt und weitergesendet werden.
Im Gesamten gesehen ist bzw. war der PCI – Bus wohl eines der erfolgreichsten
Bussysteme die für Rechnersysteme entwickelt wurden. Gemeinsam mit dem ISA – Bus
stellt es wohl einen Meilenstein in der Entwicklung von PC – Bussen dar und brachte es
auf ein erstaunliches Alter von vierzehn Jahren, bevor ein Nachfolger entwickelt wurde.
6.1.2. PCI – Express
Der PCI – Express (Peripheral Component Interface Express) wurde 2004 eingeführt um
den PCI sowie den AGP Bus abzulösen. Im Vergleich zwischen PCI und PCI Express
ergeben sich einige Unterschiede. PCI Express ist im Gegensatz zu seinem Vorgänger
seriell. Dabei wird zwischen einzelnen Komponenten über eine Punkt – zu Punkt –
Verbindung kommuniziert. PCI Express ist vollduplexfähig und überträgt Daten über so
genannte „Lanes“. Diese bestehen aus jeweils zwei Adernpaaren, wobei ein Paar fürs
Senden und das andere fürs Empfangen zuständig ist. Diese Lanes können kombiniert
Alexander Gruber
HTBLA – Salzburg
Seite 34 von 45
Diplomarbeit
Bussysteme & deren Adressierungsverfahren
2005 / 2006
werden, d.h. es ist möglich zwei Geräte mit einer, zwei, vier acht oder sechzehn Lanes zu
verbinden. Theoretisch wären jedoch bis zu 32 Lanes möglich.
Abb8: Aufbau von Lanes des PCI – Express – Busses
Der PCI – Express Bus arbeitet mit einer Taktfrequenz von 2.5GHz, d.h. es könnten bis zu
2.5Gbit pro Sekunde übertragen werden. Bei der Übertragung verwendet er das 8B10B –
Kodierverfahren. Dieses Verfahren wurde von IBM entworfen und wird immer mehr in
Bussystemen mit hoher Taktfrequenz eingesetzt (FireWire 800, 10 Gigabit – Ethernet,
Serial ATA etc.) Es werden dabei acht Datenbit mit zehn Bit kodiert. Dies hat den Effekt,
dass es zu einem Gleichspannungsausgleich kommt, d.h. der Unterschied zwischen der
Anzahl der Einser und der Anzahl der Nullen in einer 10 Bit – Gruppe ist beträgt zwei.
Daraus ergeben sich drei Symboltypen:
-
Positive Gruppen  Maximal sechs Einser und vier Nullen
-
Neutrale Gruppen  Die Anzahl der Einser und Nullen ist gleich
-
Negative Gruppen  Sechs Nullen und vier Einser
Weiters ist eine Taktrückgewinnung aus dem Datensignal möglich. Da in einer 8B10B kodierten 10 – Bit Gruppe höchstens fünf gleiche Zustände am Stück gesendet werden
dürfen muss der Pegel nach spätestens fünf Zuständen wechseln. Daraus kann der
Empfänger auf den Takt zurück schließen. Dies hat den Vorteil, dass eine relativ hohe
Taktfrequenz zur Übertragung herangezogen werden kann und außerdem können Bit –
Übertragungsfehler bereits auf der Hardwareebene erkannt und korrigiert werden.
Da die Nutzdaten aufgrund der 8B10B – Kodierung um zwei Bit pro Symbol verlängert
werden ergibt sich ein Overhead – Anteil von 20%, d.h. es werden statt 2.5Gbit/s nur 2Gbit
Nutzdaten pro Sekunde übertragen. Daraus ergibt sich dass an relevanten Daten etwa
250MB pro Sekunde und Richtung übertragen werden (Vergleich: Beim PCI – Bus waren
es noch 133MB/s). D.h. bei PCI E x 16 können bis zu vier Gigabyte Daten pro Sekunde
gesendet und empfangen werden.
Alexander Gruber
HTBLA – Salzburg
Seite 35 von 45
Diplomarbeit
Bussysteme & deren Adressierungsverfahren
2005 / 2006
Ein Nachteil bei so hohen Übertragungsgeschwindigkeiten ist die Leitungslänge. Bei PCI
E x 16 darf sie 50.8cm nicht überschreiten, da es sonst zu unterschiedlichen Laufzeiten
zwischen den einzelnen Lanes käme. Die Abschlusswiderstände sollten einen Wert von
100Ω haben. Außerdem darf der Spannungsunterschied zwischen zwei Adern in einer
Lane nicht mehr als 1.2V betragen. Zudem dürfen am Sender nicht weniger als 0.8V und
am Empfänger nicht weniger als 0.175V Spannungspegel anliegen.
Beim PCI – Express – Bus gibt es einen Transaction Layer. Er ist eine Art Zwischenlayer
zwischen dem Physical Layer und dem Data Link Layer des OSI – Modells. Seine
Hauptaufgabe ist, alle Schreib- und Lesevorgänge zu verarbeiten. Der Hauptvorteil liegt
darin, dass redundante Übertragungen verhindert werden indem ein Credit-Base-System
vor dem Senden der Daten prüft ob der Empfänger auch genügend freie Puffer zur
Verfügung hat. Sobald vom Sender eine Empfangsbestätigung angefordert wurde, schaltet
der Layer in den Split – Transfer – Mode. In diesem Modus können bis zum Erhalt der
Empfangsbestätigung weitere Übertragungen derselben Daten an andere Empfänger
stattfinden. Durch den Transaction Layer wird die Bandbreite des Busses effizienter
ausgenützt.
Ein Frame des PCI Express – Busses sieht so aus:
-
Start of Frame – Byte  Definiert den Anfang des Frames
-
Sequence Number  zwei Byte lang, regelt die Reihenfolge in der die Frames
beim Empfänger wieder zusammen gesetzt werden sollen
-
Header  Maximal 20 Byte lang, definiert die Eigenschaften des Frames
-
Das Datenfeld  Zwischen null und 4096 Byte lang
-
CRC – Prüfsumme  Über sie kann die Unversehrtheit des Frames bestimmt
werden
-
End of Frame- Byte  Bestimmt das Ende des Frames
Abb9: Aufbau eines Frames des PCI – Express - Busses
Alexander Gruber
HTBLA – Salzburg
Seite 36 von 45
Diplomarbeit
Bussysteme & deren Adressierungsverfahren
2005 / 2006
Der PCI – Express – Bus ist ein relativ flexibles System, das einige interessante Features
bietet. Beispielsweise besitzt es einen integrierten System – Management – Bus mit dem es
in der Lage ist Systemeigenschaften angeschlossener Geräte zu steuern und . Weiters gibt
es auch die Möglichkeit Geräte bis zu einer Leistung von 75 Watt mit Strom zu versorgen.
PCI –Express ist unabhängig vom Betriebssystem auf jedem Rechner einsetzbar und bietet
im Vergleich zu PCI einen 16 mal so großen Konfigurationsspeicher (4096 Byte) für
Initialisierungs- und Konfigurationsdaten, die beispielsweise beim hochfahren des
Betriebssystems wichtig sind.
Auch sind die einzelnen Varianten des PCI – Express – Busses abwärts kompatibel.
Sie unterscheiden sich hauptsächlich durch die Anzahl der Lanes und daraus resultierend in
der Geschwindigkeit. Z.B. könnte PCI E x1 mit 36 Pins problemlos in einem Steckplatz für
PCI E x16 mit 164 Pins verwendet werden. Die nicht benützten Lanes fallen einfach weg.
Außerdem können PCI – Express Geräte im laufenden Betrieb aus dem Bussystem
abgeschlossen bzw. angeschlossen werden, was zum Beispiel für Serveranlagen ein
entscheidender Vorteil ist.
PCI – Express ist ein relativ neues Bussystem und befindet sich teilweise noch in der
Entwicklung, die „PCI – Special Interest Group“ (kurz PCI-SIG) plant Versionen mit
Datenübertragungsraten von 500MB/s bzw. 1000MB/s für jede einzelne Lane. Es wird vor
allem für die Verbindung zwischen dem Prozessor und Grafikkarten verwendet (PCI E
x16), hätte allerdings auch für die Anbindung von Festplatten sowie für die Verbindung
zwischen Northbridge und Southbridge bisher noch unausgeschöpfte Potenziale.
Die neuesten Mainboards auf dem Markt unterstützen 38 bzw. 40 Lanes, hier ein Zitat vom
08.08.2005 (http://www.heise.de/newsticker/meldung/62585): „Bis auf die große Zahl der
PCIe-Lanes und -Controller unterscheiden sich Nforce4-SLI-X16-Ausführungen für
AMD- und Intel-Prozessoren nicht wesentlich von ihren seit Anfang des Jahres
beziehungsweise seit etwa Mai lieferbaren Vorgängern mit jeweils 20 PCIe-Lanes, die sich
auf bis zu fünf Ports aufteilen lassen. Die Intel-Ausführung besitzt laut Nvidia neun
Controller mit 40 PCIe-Lanes, die AMD-Edition sieben Controller und 38 Lanes.“
Im Großen und Ganzen gibt es derzeit allerdings noch wenig Hardware, die PCI – Express
verwendet. Hauptsächlich sind es Grafikkarten die bis zu 16 Lanes benötigen. Im
Vergleich zu PCI jedoch ist PCI – Express ein bedeutender technologischer Sprung nach
vorne.
Alexander Gruber
HTBLA – Salzburg
Seite 37 von 45
Diplomarbeit
6.2.
Bussysteme & deren Adressierungsverfahren
2005 / 2006
Externe Busse
Bei den externen Bussen handelt es sich um die Busse, die die Datenverbindung zwischen
Peripheriegeräten und den Schnittstellen eines Rechners herstellen. Als externe Busse
werden
sowohl
parallele
als
auch
serielle
Busse
verwendet,
die
in
allen
Geschwindigkeitsklassen vertreten sind.
6.2.1. USB
Der „universal serial bus“ wurde aus der Idee heraus geschaffen, Probleme mit älteren
Bussen durch ein völlig neues System aus der Welt zu schaffen welches in erster Linie
kostengünstiger, einfacher zu konfigurieren und schlichtweg schneller sein sollte.
Der erste Vorgänger wurde in den Achtziger Jahren von Apple als ADB (Apple Desktop
Bus) entwickelt. Er hatte eine Datenrate von etwa 10kBit pro Sekunde und verfolgte
bereits das Ziel, den Kabelsalat auf dem Schreibtisch des Endbenutzers möglichst zu
reduzieren. 1996 brachte Intel USB 1.0 auf den Markt der zum Anschluss von
Peripheriegeräten an den PC ausgelegt war. Der USB trat die Nachfolge für eine ganze
Reihe älterer Busse an und unterstütze neben Mäusen und Tastaturen bereits Drucker,
Scanner und externe Festplatten.
Zwei Jahre später kam USB 1.1 auf den Markt, der zwar die gleiche Datenrate wie USB
1.0 (nämlich 12 Mbit/s) hatte, jedoch den Großteil seiner Fehler ausmerzte. Allerdings
stellte er kaum Konkurrenz für FireWire dar (siehe nächstes Kapitel).
2000 erschien USB 2.0, das die vierzigfache Datenrate (480 Mbit/s) von USB 1.1 aufwies
und sich als sinnvolle Anwendung für Festplatten und Videogeräte herausstellte.
Die wesentlichen Vorteile von USB gegenüber älteren Bussen ist dessen Kompatibilität. Er
ist für fast alle Geräte einsetzbar, und kann auch zur Laufzeit angeschlossen werden, sofern
das Betriebssystem des PCs dies unterstützt. Wichtig ist auch, dass moderne
Betriebssysteme meistens die Treiber für die Peripheriegeräte bereits enthalten. Dies
erleichtert dem Benutzer die Anwendung, da er nicht erst lange konfigurieren muss, bevor
er seinen Drucker, seine Maus, Tastatur etc. einsetzen kann.
Für USB gibt es drei unterschiedliche Geschwindigkeitsklassen wobei die Leitungen
dementsprechend geschirmt werden müssen:
-
Low Speed  10 – 100kbit/s, wird z.B. für Mäuse oder Tastaturen verwendet
-
Medium Speed  500 – 10.000 kbit/s, im Audio-/Videobereich eingesetzt, auch
für Scanner, Drucker, und ISDN verwendet
Alexander Gruber
HTBLA – Salzburg
Seite 38 von 45
Diplomarbeit
-
Bussysteme & deren Adressierungsverfahren
2005 / 2006
High Speed  25 – 500Mbit/s, für LANs, Festplatten oder Videoübertragung
eingesetzt
Wie der Name bereits sagt ist USB ein serieller Bus, der Daten über eine differentielle
Datenleitung überträgt. Er besteht aus vier Leitungsadern wobei die ersten beiden die
Spannungsversorgung von +5V und die Masse sind. Auf der dritten Leitung wird das
Datensignal und auf der vierten das invertierte Datensignal gesendet. Jedes USB – System
benötigt einen USB – Host, der den gesamten Datenverkehr auf dem Universal Serial Bus
steuert. Der Host hat einige Ports, an die entweder Endgeräte oder USB – Hubs
angeschlossen werden können. Ein Hub stellt im Prinzip weitere Ports bereit (meistens
vier). Durch ihn können sich mehrere Endgeräte einen Port des USB – Hosts teilen.
Dadurch entsteht eine Baumstruktur, deren Ursprung der Host ist und deren Knoten von
Hubs realisiert werden. Hier muss jedoch beachtet werden, dass nicht mehr als fünf
hierarchische Ebenen in diesem Baum entstehen. Weiters darf die Anzahl der Endgeräte
nicht mehr als 127 sein, da USB nicht mehr unterstützt. Der Host ist meistens innerhalb
eines PCs integriert und weist jedem Endgerät eine Adresse zu. Dies geschieht während
der Konfigurationsphase, die dann auftritt wenn das Endgerät angeschlossen ist während
der Bus in Betrieb ist oder es eingeschaltet wird. Der Host stellt den einzigen Master am
Bus dar, d.h. hier gilt das einfache Master/Slave – Prinzip. Der USB – Host besteht primär
aus zwei Teilen, dem Host – Controller und dem Root – Hub. Der Controller ist für die
Kommunikation am Bus verantwortlich, während der Root – Hub die Anschlussports
bereitstellt. Der erzeugt alle benötigten Datentransfers, die durch die Host – Software, mit
der er beschrieben ist, initiiert und zeitlich eingeordnet wurde. Wenn der Controller auf ein
Endgerät schreiben möchte, holt er sich die vorgesehenen Daten aus einem Puffer, der sich
im Hauptspeicher befindet und durch einen USB – Treiber zur Verfügung gestellt wurde.
Diese packt er in einen Frame und gibt ihn an den Root – Hub weiter, der ihn über den Bus
sendet. Für den Fall, dass der Controller jedoch von einem Endgerät Daten auslesen
möchte sendet er ein entsprechendes Request – Frame an den Root – Hub der ihn über den
Bus broadcastet. Sobald das angesprochene Endgerät den Frame empfangen hat überprüft
es ob dieser unbeschädigt ist und sendet entweder eine Wiederholungsanfrage oder schickt
die angeforderten Daten in einem Response – Frame an den Root – Hub zurück.. Dieser
überprüft den Frame auf Fehler und gibt falls nötig eine Fehlermeldung an den Controller
weiter und damit an die Controller – Software weiter, die dann entsprechende Maßnahmen
einleitet (Wiederholung der Anfrage). Falls der Frame unbeschädigt über Netz gelangt ist
Alexander Gruber
HTBLA – Salzburg
Seite 39 von 45
Diplomarbeit
Bussysteme & deren Adressierungsverfahren
2005 / 2006
wird er an den USB – Host – Controller weitergesendet. Der Root – Hub ist für die
Stromversorgung der USB – Ports am USB – Host verantwortlich. Weiters kann er die
Ports nach Bedarf frei schalten oder sperren. Sobald ein USB – Gerät an einen der Ports
angeschlossen wurde ist es seine Aufgabe das Gerät zu erkennen und dessen Status zu
verwalten. Der Root – Hub an sich besteht wiederum aus zwei Komponenten, einerseits
aus einem Repeater, der die gesendeten sowie die empfangenen Signale verstärkt und
einem Hub – Controller, der alle Anfragen bearbeitet die vom Controller an den Root –
Hub gesendet werden. Ähnlich ist es bei den anderen Hubs, die in der Baumstruktur
unterhalb des Root – Hubs liegen. Sie können entweder die Stromversorgung selbst durch
einen eigenen Anschluss ans Stromnetz bereitstellen oder über das USB – Kabel mit Strom
versorgt werden. Ihre Aufgabe ist wie beim Root – Hub alle zur Laufzeit neu
angeschlossenen Geräte zu erkennen und der Host Software als Report übermitteln. Sie
bestehen gleich wie der Root – Hub im Wesentlichen aus Repeater und Hub – Controller.
Die Übertragung bei USB erfolgt über so genannte Pipes. Dabei handelt es sich um
logische Datenkanäle, wobei sich jede Pipe von einem USB – Gerät zu einem Endpoint
erstreckt. Im Prinzip ist ein Endpoint ein First – in – First – out – Stack in einem Ziel –
USB - Gerät mit einer fixen Tiefe, der Daten empfangen und senden kann. Diese
Endpoints können zu einem Interface zusammengefasst werden. Mit ihrer Hilfe wird die
Richtung einer Datenübertragung festgelegt. Außerdem sind sie eine Voraussetzung für die
vier grundlegenden Transferarten:
-
Control - Transfer: Mithilfe dieser Transferart werden USB – Geräte vom Host
konfiguriert.
-
Interrupt – Transfer: Dient zur Übertragung kleiner Datenmengen, z.B. bei
Statusabfragen oder Tastaturanschlägen. 90% der verfügbaren Bandbreite von USB
sind für den Interrupt- sowie für den Isochronous – Transfer reserviert.
-
Bulk – Transfer: Zur Übertragung von großen zeitunkritischen Datenmengen. Diese
Transferart bleiben die restlichen 10% der Bandbreite zur Übertragung und wird
nur von Full – Speed – Geräten unterstützt. Low – Speed – Geräte können lediglich
über Control- und Interrupt – Transfers kommunizieren.
-
Isochronous – Transfer: Z.B. zur Übertragung von Daten die eine konstante
Bandbreite erfordern, wie es beispielsweise bei Audio- oder Video – Daten
erforderlich ist. Diese Transferart hat allerdings den Nachteil dass die Daten die
übertragen werden nicht auf Bitfehler überprüft werden. Außerdem geht der
Alexander Gruber
HTBLA – Salzburg
Seite 40 von 45
Diplomarbeit
Bussysteme & deren Adressierungsverfahren
2005 / 2006
Übertragung kein Handshake voraus, wie es bei den anderen Transferarten der Fall
ist. Sie ist besonders für Echtzeit – Übertragungen geeignet, wo die möglichst
schnelle Übertragung wichtiger ist als einwandfrei fehlerfreie Daten. Werden einige
Datenfragmente (z.B. digitalisierte Schallwerte an einen Lautsprecher) sind diese
wertlos, da ein Qualitätsverlust entsteht. Die Isochrone Datenübertragung kann auf
drei Arten erfolgen. Entweder asynchron, d.h. der Takt wird extra mitgeführt,
synchron – Taktrückgewinnung durch das Zielgerät ist möglich, oder adaptiv; wo
z.B. bei einer Übertragung vier mal ein 88Byte langer Frame gesendet wird und
beim fünften Mal ein 89Byte langer Frame, um die Datenrate an den Takt
anzupassen.
Grundsätzlich konnten USB 1.1 und USB 2.0 in der Vergangenheit vor allem durch
seine Vielseitigkeit punkten. Es lohnt sich durchaus kleinere Geräte mit USB zu
betreiben (z.B. Mäuse oder Tastaturen), während es durchaus auch möglich ist z.B.
externe Festplatten zu versorgen. Sein größter Konkurrent ist derzeit FireWire.
6.2.2. FireWire
FireWire (auch als IEEE 1394 Standard bekannt) wurde 1983 von Apple Computer
entwickelt. Anfangs nur in Apple’s MacIntosh PCs integriert, wurde es später auch von
Sony unter der Bezeichnung i.Link übernommen und in die PlayStation 2 eingebaut. Im
Jahr 2000 wurde FireWire 1394a eingeführt (= i.Link). Es brachte vor allem
Leistungsverbesserungen und Korrekturen gegenüber älteren Versionen, jedoch keine
Verbesserungen in punkto Geschwindigkeit mit sich. Zwei Jahre später erschien FireWire
1394b auf dem Markt.
Aufgrund seiner relativ hohen Übertragungsgeschwindigkeit wird FireWire hauptsächlich
für den Datenverkehr zwischen PCs und Peripheriegeräten wie zum Beispiel externen
Festplatten oder Druckern eingesetzt. Allerdings findet es auch in der Industrie (Elektronik
im Auto, Automatisierung) und beim Fernsehen immer mehr Verwendungsmöglichkeiten.
Ein
wesentlicher
Grund
warum
FireWire
geschaffen
wurde
war,
bestehende
Anschlusssysteme durch eine einheitliche Busarchitektur zu ersetzen. Apple zielte darauf
ab einen Bus zu entwickeln, der möglichst preisgünstig, flexibel und einfach zu handhaben
ist.
In den älteren Versionen von FireWire gab es fünf Klassen: S25 und S50, die wie aus dem
Namen bereits hervorgeht eine Datenübertragungsrate von etwa 25 bzw. 50 Mbit pro
Alexander Gruber
HTBLA – Salzburg
Seite 41 von 45
Diplomarbeit
Bussysteme & deren Adressierungsverfahren
2005 / 2006
Sekunde aufweisen, sowie S100, S200 und S400. S25 und S50 sind vierpolig, während
S100, S200 und S400 sechspolig sind. Der neuere IEEE 1394b – Standard beinhaltet drei
Geschwindigkeitsklassen, die die älteren in der Übertragungsrate bei Weitem übertreffen
und teilweise noch gar nicht auf dem Markt erhältlich sind. Die erste (S800 Klasse) wurde
erstmals 2003 unter dem Namen FireWire800 veröffentlicht. S1600 und S3200 sollen in
den nächsten Jahren erscheinen.
Grundsätzlich handelt es sich bei FireWire um ein serielles Bussystem, mit maximal 63
Teilnehmern pro Bus. Ein Nachteil bei den ersten Versionen ist jedoch dass das erste Gerät
im Bus nicht mit dem letzten Gerät verbunden sein darf (keine Ring – Topologie erlaubt),
dieser Missstand wurde beim 1394b - Standard beseitigt. Mithilfe von Brücken können bis
zu 1024 FireWire – Busse (in diesem Fall Segmente) miteinander verbunden werden,
womit theoretisch 64.449 Teilnehmer an einem Netz hängen könnten. Auch ist es möglich
Peripheriegeräte untereinander zu verbinden, ohne Daten über den PC zu senden.
Aufgrund der hohen Übertragungsrate wird die maximale Leitungslänge jedoch extrem
eingeschränkt, bei S400 beispielsweise beträgt sie 4.5m, bei S200 bereits 14m. Auch dieses
Manko wurde mit 1394b abgeschafft. Bei 1394b wird das 8B10B – Kodierverfahren (siehe
PCI – Express) verwendet, das Übertragungsdistanzen von maximal 100m erlaubt. Hier
werden allerdings bereits neunpolige Leitungen verwendet.
Bei der vierpoligen Leitung handelt es sich um zwei geschirmte Adernpaare, bei der
sechspoligen Variante wird weiters die Spannungsversorgung und Masse mitgeführt.
Ein Merkmal von FireWire ist, dass die Steuerung vollkommen dezentralisiert ist, d.h. bei
FireWire gibt es keinen definierten zentralen Host, wie dies zum Beispiel bei USB der Fall
ist. Theoretisch könnte jedes Gerät das an einem FireWire – Bus hängt als Buscontroller
arbeiten. Die Steuerung wird jedoch meistens von mehreren Geräten übernommen. Sobald
z.B. ein Gerät an den Bus angeschlossen wird handelt es mit den anderen Geräten die
Aufgabenverteilung bezüglich der Bussteuerung aus. FireWire arbeitet auf Basis von
Knoten, die einer bestimmten Hierarchie untergeordnet sind. Jeder Knoten stellt ein Gerät
dar und bekommt eine eigene ID zugewiesen. Der höchstwertige Knoten ist der so
genannte Root – Knoten. Das Gerät das diesen Knoten darstellt ist für die Verteilung der
Sendeerlaubnis (Arbitrierung) und die Synchronisierung aller Geräte zuständig.
FireWire arbeitet Isochron. Dies ist eine Sonderform der asynchronen Übertragung und
ergibt sich vor allem durch die 8B10B – Kodierung.
Alexander Gruber
HTBLA – Salzburg
Seite 42 von 45
Diplomarbeit
Bussysteme & deren Adressierungsverfahren
2005 / 2006
Will ein Gerät Daten an ein anderes senden, packt es seine Daten in einen Frame und
stattet sie mit einer Adresse aus. Diese Adresse beinhaltet in den ersten 10 Bit die Adresse
des Segments. So kann eine Bridge feststellen in welches Segment der Frame gesendet
werden soll. Die nächsten sechs Bit kennzeichnen den Knoten (das Zielgerät). Und die
letzten 48 Adressbit dienen als Angabe wo im Zielgerät (sprich in welchem Speicher bzw.
welchen Register) die mit gesendeten Daten gespeichert werden sollen.
7. Quellen
7.1.
Quellenverzeichnis
Einführung:
http://www.computerlexikon.com/definition-bus (04/17/2006-18:48)
Geschichtlicher Überblick:
http://de.wikipedia.org/wiki/Fieldbus_Foundation (04/17/2006-16:45)
http://en.wikipedia.org/wiki/Fieldbus (04/17/2006-17:27)
felser.ch/download/FE-TR-0202.pdf (04/17/2006-18:52)
http://de.wikipedia.org/wiki/ISA_Bus (04/18/2006-16:33)
http://de.wikipedia.org/wiki/Bussystem (04/18/2006-17:08)
Datenbus:
Axel Kloth, PCI und VESA Local Bus. Franzis Verlag, (München 1994).
Adressbus:
Axel Kloth, PCI und VESA Local Bus. Franzis Verlag, (München 1994).
Steuerbus:
Axel Kloth, PCI und VESA Local Bus. Franzis Verlag, (München 1994).
Adressierungsverfahren:
http://de.wikipedia.org/wiki/Bussystem (04/21/2006-21:51)
CAN:
http://www.semiconductors.bosch.de/de/20/can/1-about.asp (04/12/2006-19:37)
Alexander Gruber
HTBLA – Salzburg
Seite 43 von 45
Diplomarbeit
Bussysteme & deren Adressierungsverfahren
2005 / 2006
http://www.interfacebus.com/Translate_German_CAN_Automotive_Bus.html
(04/12/2006-20:02)
http://de.wikipedia.org/wiki/Controller_Area_Network (04/12/2006-21:12)
EIA485:
http://www.elektronik-projekt.de/include.php?path
=content/articles.php&contentid=16 (04/14/2006-13:22)
Interne Busse:
Axel Kloth, PCI und VESA Local Bus. Franzis Verlag, (München 1994).
http://www.iis.ruhr-uni-bochum.de/imperia/md/content/iis/ca/kap3_sw.zip
(04/19/2006-14:35)
http://www.hardwaregrundlagen.de/oben03-001.htm (04/20/2006-15:47)
http://www.wefi.net/hagenberg/cms-sra1/CMS-SRA1-Uebung-04.pdf
PCI:
Axel Kloth, PCI und VESA Local Bus. Franzis Verlag, (München 1994).
PCI – Express:
http://www.interfacebus.com/Design_Connector_PCI_Express.html
(04/16/2006-14:13)
http://www.computerbase.de/artikel/hardware/mainboards/2004/bericht_pci_
express_die_grundlagen (04/16/2006-16:48)
http://de.wikipedia.org/wiki/PCI_Express (04/16/2006-15:37)
http://de.wikipedia.org/wiki/8B/10B-Code (04/16/2006-13:01)
http://www.it-administrator.de/lexikon/8b_10b.html (04/16/2006-13:03)
7.2.
Abbildungsverzeichnis
Abb1: http://www-user.tu-chemnitz.de/~chu/PCI/signals_small.gif (04/22/2006-20:54)
Abb2: http://www.interfacebus.com/Translate_German_CAN_Automotive_Bus.html
(04/12/2006-20:02)
Abb3: http://www.interfacebus.com/Translate_German_CAN_Automotive_Bus.html
(04/12/2006-20:02)
Abb4: http://www.elektronik-projekt.de/include.php?path=content/articles.php&
contentid=16 (04/14/2006-14:40)
Abb5: http://www.elektronik-projekt.de/include.php?path=content/articles.php&
Alexander Gruber
HTBLA – Salzburg
Seite 44 von 45
Diplomarbeit
Bussysteme & deren Adressierungsverfahren
2005 / 2006
contentid=16 (04/14/2006-14:56)
Abb6: http://www.amsat-dl.org/sa-1100.GIF (20/04/2006-16:21)
Abb7: http://www.x86-secret.com/articles/cm/epox865/epox865-3.htm (20/04/2006-19:36
Abb8: http://www.interfacebus.com/Design_Connector_PCI_Express.html
(04/16/2006-14:23)
Abb9: http://www.interfacebus.com/Design_Connector_PCI_Express.html
(04/16/2006-14:17)
Selbstständigkeitserklärung:
Ich erkläre eidesstattlich, dass ich die vorliegende Arbeit „Bussysteme und deren
Adressierungsverfahren“ mit Ausnahme der ausdrücklich als zitiert oder verwendet
gekennzeichneten Teile selbständig erarbeitet und verfasst habe.
St. Johann im Pongau, am 18.05.2006
Unterschrift:
Alexander Gruber
Alexander Gruber
HTBLA – Salzburg
Seite 45 von 45
Herunterladen