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