Protokollfamilie zur universellen Steuerdatenkommunikation in

Werbung
Protokollfamilie
zur universellen Steuerdatenkommunikation
in heterogenen Netzwerkumgebungen
DISSERTATION
zur Erlangung des akademischen Grades eines
DOKTOR-INGENIEURS
(DR.-ING.)
der Fakultät für Ingenieurwissenschaften und Informatik
der Universität Ulm
von
DIPL.-ING. ANDREAS MICHAEL WALTER SCHMEISER
AUS HEIDENHEIM AN DER BRENZ
1. Gutachter:
Prof. Dr. Hans Peter Großmann
2. Gutachter:
Prof. Dr. Dr. Wolfgang Minker
Amtierender Dekan: Prof. Dr. Helmuth Partsch
Ulm, 30. Juli 2007
II
Danksagung
Zuallererst möchte ich Herrn Prof. Dr. Hans Peter Großmann danken, der großes Vertrauen
in mich gesetzt, meinen Themenvorschlag angenommen und betreut hat und mir somit diese
Promotion ermöglichte. An seinem Institut mit so viel Freiheit für Forschung und Lehre tätig
zu sein, war für mich eine sehr prägende und geschätzte Erfahrung.
Herrn Prof Dr. Dr. Wolfgang Minker danke ich recht herzlich, dass er das Zweitgutachten für
meine Dissertation übernommen hat. Gerade in der Endphase unterstützte er mich mit hilfreichen Hinweisen und motivierenden Worten.
Das gute Umfeld am Institut für Organisation und Management von Informationssystemen war
ebenfalls wichtig und entscheidend für die erfolgreiche Arbeit. Insbesondere möchte ich mich
hiermit namentlich bei meinen Kollegen und Freunden Matthias Rabel, Nashwa Abdel-Baki,
Yvonne Günter und Bernhard Wiegel für die angenehme Zusammenarbeit bedanken.
Meinen Eltern danke ich für eine vielfältige Unterstützung, die mir das Studium der Elektrotechnik und die anschließende Promotion überhaupt erst ermöglicht haben.
III
IV
Inhaltsverzeichnis
1
Einleitung
1
2
Stand der Technik
3
2.1
Feldbussysteme in verschiedenen Anwendungsbereichen . . . . . . . . . . . .
3
2.1.1
Automobiltechnik . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
2.1.2
Industrieautomatisierung . . . . . . . . . . . . . . . . . . . . . . . . .
4
2.1.3
Gebäudetechnik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
2.2
Heterogene Netzstruktur . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
2.3
Ansätze für höhere Protokolle . . . . . . . . . . . . . . . . . . . . . . . . . .
9
2.4
Gateways . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
2.5
Fazit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
3
Konzept der Protokollfamilie
13
3.1
Zielsetzung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
3.2
Anwendungsbeispiele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
3.3
Lösungsansätze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
3.3.1
Programmierschnittstelle . . . . . . . . . . . . . . . . . . . . . . . . .
18
3.3.2
Hierarchische Protokollfamilie . . . . . . . . . . . . . . . . . . . . . .
18
Fazit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22
3.4
4
Definition der Protokollfamilie
25
4.1
Micro Internet Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
26
4.1.1
Schnittstelle zu LIN . . . . . . . . . . . . . . . . . . . . . . . . . . .
29
4.1.2
Schnittstelle zu CAN . . . . . . . . . . . . . . . . . . . . . . . . . . .
32
4.1.3
Schnittstelle zu Bluetooth . . . . . . . . . . . . . . . . . . . . . . . .
36
V
VI
INHALTSVERZEICHNIS
4.1.4
5
Schnittstelle zu IEEE 1394 . . . . . . . . . . . . . . . . . . . . . . . .
40
4.2
Micro Internet Control Message Protocol . . . . . . . . . . . . . . . . . . . .
46
4.3
Micro User Datagram Protocol . . . . . . . . . . . . . . . . . . . . . . . . . .
50
4.4
Micro Transmission Control Protocol . . . . . . . . . . . . . . . . . . . . . .
52
4.4.1
Verbindungsorientierte Betriebsart . . . . . . . . . . . . . . . . . . . .
57
4.4.2
Transaktionsbasierte Betriebsart . . . . . . . . . . . . . . . . . . . . .
60
4.5
Micro Open Shortest Path First . . . . . . . . . . . . . . . . . . . . . . . . . .
60
4.6
Fazit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
71
4.6.1
73
Demonstrationssystem
77
5.1
Realisierte Teilaspekte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
78
5.1.1
Warenbuchungssystem . . . . . . . . . . . . . . . . . . . . . . . . . .
79
5.1.2
Basisfunktionen für das dynamische Routing . . . . . . . . . . . . . .
81
5.1.3
Interoperabilität zwischen MIP und IP . . . . . . . . . . . . . . . . . .
84
Fazit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
87
5.2
6
Analyse von Effektivität, Transferzeiten und Latenzzeiten . . . . . . .
Zusammenfassung und Ausblick
A Berechnungen
91
95
A.1 Effektivität und Overhead . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
96
A.1.1 LIN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
96
A.1.2 CAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
97
A.1.3 Bluetooth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
98
A.1.4 IEEE 1394 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
99
A.1.5 Zum Vergleich: IP via Ethernet . . . . . . . . . . . . . . . . . . . . . . 100
A.2 Transferdauer und Latenzzeit . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
A.2.1 LIN unconditional . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
A.2.2 CAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
A.2.3 Bluetooth DH1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
A.2.4 IEEE 1394 GASP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
INHALTSVERZEICHNIS
VII
B Universalsteuergerät
105
B.1 Basis Modul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
B.2 IEEE 1394 Modul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
B.3 Prozessor Modul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
B.4 IEEE 1394 Physical Layer Module . . . . . . . . . . . . . . . . . . . . . . . . 109
B.5 E/A-Aufsatz Modul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
B.6 Power Line Modul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
B.7 LIN Modul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
B.8 Bluetooth Modul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
B.9 Ethernet Modul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
B.10 MiniMMI Modul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
B.11 Complex Device . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
B.12 LIN Slave Knoten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
Abbildungsverzeichnis
119
Tabellenverzeichnis
123
Literaturverzeichnis
125
Veröffentlichungen
133
VIII
INHALTSVERZEICHNIS
Kapitel 1
Einleitung
Komplexe Automatisierungssysteme begegnen uns inzwischen alltäglich in den unterschiedlichsten Facetten. Als vernetzte elektronische Systeme spielen sie in den Anwendungsbereichen
Kraftfahrzeug, industrielle Automatisierung und Gebäudetechnik eine stetig zunehmende Rolle. Für die Vernetzung haben sich eine Vielzahl unterschiedlicher, spezialisierter Feldbusse etabliert. Jedes Bussystem ist für einen speziellen Einsatzzweck entwickelt worden und weist somit
spezifische Eigenschaften auf. Sogar innerhalb der jeweiligen Anwendungsdomänen kommen
nebeneinander verschiedene Netzwerke gleichzeitig zum Einsatz. Aufgrund dieser Spezialisierung ist auch in Zukunft keine Konvergenz der heterogenen Netzstruktur zu erwarten.
Die meisten Anwendungen setzen derzeit auf die unteren Übertragungsschichten des OSIModells auf. Dies erschwert spätere Änderungen oder Erweiterungen erheblich. Um einen organisierten Datenaustausch zu ermöglichen, existieren zwar mehrere Ansätze für höhere Protokolle. Jedoch sind diese Bestrebungen nur für bestimmte abgegrenzte Anwendungsbereiche
und/oder für bestimmte Feldbusse definiert worden. Eine allgemeingültige, universelle Lösung
ist bisher nicht existent.
In Kraftfahrzeugen und in technischen Anlagen ist ein Verbund mehrerer Netzwerksysteme
erforderlich, um die getrennten Teilsysteme mit ihren vielfältigen speziellen Aufgaben als produktives Ganzes miteinander zu betreiben. Darüber hinaus ist heutzutage der Übergang in die
Internet-Welt für die Ferndiagnose und -wartung ein weiterer wichtiger Aspekt. Zwischen den
grundlegend unterschiedlichen Netzen mit zueinander inkompatiblen und zudem nur bis auf
verschiedenen Schichten ausgeprägten Protokollen sind Übergangsknoten für den Datenaustausch notwendig. Entsprechend dem OSI-Modell muss die Konvertierung auf Applikationsebene geschehen, also mittels Gateways.
In Ermangelung einheitlicher Schnittstellen müssen folglich Automatisierungsgeräte und proprietäre Gateways jedesmal mit erheblichem Aufwand neu entwickelt werden.
Die vorliegende Arbeit befasst sich mit diesem bisher nicht zufriedenstellend gelösten Themenfeld vernetzter Automatisierungssysteme. Das Ziel besteht darin, eine Lösung für zukunftssichere Entwicklungen zum Steuerdatenaustausch in heterogenen Netzwerkumgebungen zu entwickeln. Trotz der Verwendung unterschiedlichster Feldbusse soll den Anwendungen eine gemeinsame Schnittstelle zur Verfügung gestellt werden. Darauf aufbauend können dann auch
vereinheitlichte Gateways entstehen. Weitere Aspekte sind einheitliche Transportdienste, ein
einheitliches Adressierungsschema, die Erreichbarkeit von Automatisierungsgeräten bei Aus1
2
KAPITEL 1. EINLEITUNG
fall von einzelnen Netzwerksegmenten in einem ausreichend vermaschten System, die Wegewahl unter Berücksichtigung der Dienstgüte (QoS – Quality of Service) in geeignet strukturierten Feldbusumgebungen und eine möglichst einfache Übergangsmöglichkeit in die InternetWelt.
Diese Dissertation übernimmt konzeptionell Nutzbares von der Internet-Protokollfamilie und
konzipiert davon ausgehend, nach entsprechender Anpassung auf die Automatisierungssysteme
und die dort eingesetzten eingebetteten Systeme, eine neue hierarchische Protokollfamilie für
die Steuerdatenkommunikation.
Für praktische Tests wurden Teilaspekte realisiert. Hierfür wurden Entwicklungsumgebungen
definiert und vielfältige Hardware- und Softwareentwicklungen, teilweise in Kooperation mit
der Industrie, geleistet.
Dieses Dokument gliedert sich wie folgt:
In Kapitel 2 erfolgt eine Übersicht mit dem derzeitigen Stand der Technik. Es wird kurz die
Geschichte und Motivation für die Vernetzung für Steuer-, Regelungs- und Automatisierungsaufgaben umrissen. Aufgeteilt nach den Anwendungsbereichen Automobiltechnik, Industrieautomatisierung und Gebäudetechnik werden bekannte Vertreter der Feldbussysteme vorgestellt.
Hierbei zeigen sich viele Parallelen bei der Entwicklung dieser Netzwerke. Weiterhin wird die
heterogene Netzstruktur, Ansätze für höhere Protokolle und die derzeitige Notwendigkeit für
spezialisierte Gateways aufgezeigt.
Das Konzept für die neu entwickelte Protokollfamilie zur universellen Steuerdatenkommunikation wird in Kapitel 3 entwickelt. Ausgehend von einer Zielsetzung mit einer Reihe von Anforderungspunkten und möglicher Anwendungsbeispiele werden zwei Lösungsansätze vorgestellt
und diskutiert. Die Vorteile überwiegen bei der hierarchischen Protokollfamilie nach dem OSIModell. Dieses Konzept wird weiter verfolgt.
Die Protokollfamilie für die Steuerdatenkommunikation ist im Stil eines Standards in Kapitel 4 definiert und in ihrer Funktion beschrieben. Die hierarchische Familie besteht aus dem
Vermittlungsschichtprotokoll, vier Schnittstellen zu weitverbreiteten Bussystemen und vier
Transportprotokollen. Abgeschlossen wird dieses Kapitel mit einem Vergleich zur InternetProtokollfamilie und der Analyse von Effektivität, Transferzeiten und Latenzzeiten unter Nutzung der zuvor ausgesuchten Feldbusse.
In Kapitel 5 wird ein Demonstrationssystem vorgestellt, das zum Test der entwickelten Protokolle dient. Drei Teilaspekte, die eine möglichst breite Palette der neuen hierarchischen Protokollfamilie abdecken, wurden exemplarisch umgesetzt und auf den Entwicklungsumgebungen
getestet.
Als typischer Vertreter für Knoten in einem embedded System wurde am Institut für Organisation und Management von Informationssystemen (OMI) eine Entwicklungsumgebung auf Basis
eines 16 Bit Mikrocontrollers selbst entwickelt. Der Anhang B gibt einen Überblick über das
sogenannte Universalsteuergerät.
Kapitel 2
Stand der Technik
Noch vor einigen Jahren wurden in Kraftfahrzeugen, aber auch in der industriellen Automatisierung und der Gebäudetechnik, nur vereinzelt Netzwerksysteme eingesetzt. Es war Stand
der Technik, analoge und binäre Signale von Sensoren und Aktoren Punkt-zu-Punkt in sogenannter paralleler Verdrahtung auszuführen. In den 80er Jahren hat die Entwicklungstätigkeit
für spezialisierte Netzwerke für Steuerungs-, Regelungs- und Automatisierungsaufgaben, sogenannte Feldbussysteme, verstärkt begonnen. Durch ihren Einsatz hat man sich folgende Vorteile
versprochen:
• Kosteneinsparung bei der Montage der Verkabelung
• Gewichtseinsparung
• Erhöhung der Zuverlässigkeit
• Verminderung des Wartungsaufwands
• Einfachere und effizientere Fehlerdiagnose
• Erhöhte Flexibilität der Gesamtanlage
• Einfache Zugangsmöglichkeit zu Geräten
• Parametrierbare Sensoren und Aktoren
• Messwerte und Stati von Sensoren/Aktoren überall verfügbar
• Möglichkeit für Redundanz
2.1
2.1.1
Feldbussysteme in verschiedenen Anwendungsbereichen
Automobiltechnik
Die ersten automotiven Entwicklungen hatten nur zum Ziel, Diagnose- und Konfigurationsaufgaben über zusätzliche serielle, digitale Schnittstellen durchzuführen [ISO89, ISO95]. Der
3
4
KAPITEL 2. STAND DER TECHNIK
normale Betrieb wurde zu dieser Zeit jedoch weiterhin mit der konventionellen parallelen Verdrahtung vorgenommen.
Bald danach haben in der Fahrzeugelektronik jedoch vielfältige Anstrengungen begonnen, um
durch serielle Netzwerke den Kabelbaum zu reduzieren, damit eine angestrebte Gewichtsersparnis und in Folge eine Kraftstoffersparnis bei gleichzeitig erweiterter Funktions- und Diagnosefähigkeit zu erreichen. In den 90er Jahren wurde dann damit begonnen, in der oberen
Fahrzeugklasse für den Antriebsstrang und die Chassiselektronik diese Feldbussysteme einzusetzen.
Im heutigen Fahrzeug dominiert so das 1983 von der Robert Bosch GmbH1 entwickelte Controller Area Network (CAN) [BOS91, ISO03]. Besondere Attribute von CAN sind die nachrichtenbasierte Adressierung mit Priorisierung, ereignisgesteuerte Kommunikation, bedingte Echtzeitfähigkeit für Regelkreise und anspruchsvolle Fähigkeiten für die Datenintegrität und das
Fehlermanagement. Je nach Anwendungsbereich bestehen mindestens zwei getrennte Segmente. Für die Chassiselektronik und die Komfortfunktionen ist dies der Low-Speed-CAN (CAN B,
Bitrate um die 100 kBit/s), für den Antriebsstrang und die Fahrdynamikassistenten ist es der
High-Speed-CAN (CAN C, Bitrate zwischen 500 kBit/s und 1 MBit/s). Als Topologie kann
ein Bus oder Stern zum Einsatz kommen, wobei aufgrund der Einbaugegebenheiten des Kabelbaums in der Karosserie oftmals der Stern bevorzugt wird.
Mit der Einführung von multimedialen Anwendungen im Kraftfahrzeug entstanden neue Anforderungen an die Feldbussysteme. Es mußten neue Bussysteme mit den entsprechenden Fähigkeiten für dieses Einsatzfeld entwickelt werden.
Das erste Serien-Bussystem höherer Bandbreite war seit Mitte/Ende der 90er Jahre von der
Firma Communication & Control Electronics Ltd2 der D2B Optical (Digital Data Bus Optical), ein auf polymeroptischen Fasern (POF) basiertes Bussystem zur Anwendung im Infotainment und Entertainment des Fahrzeugs. Aufgrund seiner zur Verfügung gestellten Bandbreite von 5 MBit/s und der synchronen Übertragung eignet es sich besonders für mehrere Audio-Datenströme in CD-Qualität. Gleichzeitig ist D2B Optical in der Lage auch asynchrone Daten, wie z. B. Kartendaten für das Navigationssystem oder Befehle zur Steuerung
von CD-/DVD-/Cassetten-Laufwerken und Raumklang-Verstärkern zu übertragen. Die optische physikalische Schicht verspricht große Vorteile für die elektromagnetische Verträglichkeit
(EMV) mit anderen Komponenten des Fahrzeugs, insbesondere aus dem fahrrelevanten Bereich.
Inzwischen wurde D2B Optical weitgehend vom direkten Nachfolger, MOST (Media Oriented
Systems Transport) [MOS05] abgelöst, der eine Datenrate von 25 MBit/s ermöglicht.
2.1.2
Industrieautomatisierung
Die Entwicklung im Bereich der industriellen Kommunikation verlief zwar unabhängig, aber
mit offensichtlichen Parallelen zum Kraftfahrzeug ab. So wurde z. B. in den späten 80er Jahren
von der Firma Rosemount3 Highway Addressable Remote Transducer (HART) als zusätzliche
Parametrierungs- und Diagnoseschnittstelle für konventionell verdrahtete Sensoren mit einer
1
http://www.bosch.de/
http://www.candc.co.uk/
3
http://www.rosemount.com/
2
2.1. FELDBUSSYSTEME IN VERSCHIEDENEN ANWENDUNGSBEREICHEN
5
analogen 4 bis 20 mA-Schnittstelle geschaffen. Eine Nutzergruppe entstand 1990, seit 1993 ist
die HART Communication Foundation (HCF)4 eine gemeinnützige Organisation, die als eine
ihrer Aufgaben die Verwaltung des Standards betrachtet.
Nun war auch die Automatisierung von einer rasanten Steigerung der Komplexität geprägt.
Das Konzept einer zentralen digitalen Steuerung (SPS – SpeicherProgrammierbare Steuerung)
mit sternförmiger Verkabelung jedes einzelnen Sensors oder Aktors stieß an eine ökonomisch
vertretbare Grenze für den Verkabelungs- und Wartungsaufwand. Das neue Schlagwort hieß
nun „dezentrale Busklemmen“, also die Verlagerung der Ein- und Ausgangsbaugruppen weg
von der SPS in die Nähe der Sensoren und Aktoren an dezentrale Verteiler in der Anlage. Die
Anbindung der Busklemmen an die SPS erfolgt mit einem Feldbus. Bekannte Hersteller von
Automatisierungsgeräten wie z. B. die Siemens AG5 , Asea Brown Boveri Ltd (ABB)6 , General
Electric Company (GE)7 oder Allen-Bradley8 haben daraufhin herstellerspezifische Lösungen
hervorgebracht, die jedoch nur mit dem eigenen Produktportfolio kompatibel sind.
Angestoßen durch Forschungsprojekte in Deutschland und Frankreich Ende der 80er Jahre begann ein internationaler Wettlauf zur Normierung von Feldbussen [Fel02]. Nur einige bekannte
Vertreter sollen hier erwähnt werden.
Die Entwicklung von PROFIBUS (PROcess FIeld BUS) wurde anfangs, 1989, vom Bundesministerium für Forschung und Technologie (BMFT) gefördert. Die Feldbusspezifikation existiert
in drei verschiedenen Ausprägungen: PROFIBUS-FMS (Fieldbus Message Specification) zur
Vernetzung von verteilten Steuerungen, als PROFIBUS-DP (Dezentrale Peripherie) zur Vernetzung von Sensoren und Aktoren und als PROFIBUS-PA (Prozess-Automation) mit der Möglichkeit zur eigensicheren und busgespeisten Vernetzung. PROFIBUS wurde 1991 national in
DIN 19245 [DIN91] genormt, ist 1996 dann in die europäische Norm EN 50170 [EN96] überführt worden und ist seit 2000 international in IEC 61158 [IEC03a] und IEC 61784 [IEC03b]
standardisiert. Seit 1995 existiert die internationale Nutzerorganisation PROFIBUS International9 [Pop00].
Seit den 80er Jahren hat die Firma Phoenix Contact10 mit dem INTERBUS11 ein eigenes System
für dezentrale Klemmen entwickelt, zunächst als nationaler (DIN 19258 [DIN93]) und später
als europäischer Standard (EN 50254 [EN97]) festgeschrieben, wurde INTERBUS im Januar
2000 zur internationalen Norm (IEC 61158, Teile 3 bis 6 [IEC03a]).
Für eine Standard-Schnittstelle für geregelte Antriebe an numerisch gesteuerten Maschinen hat
unter der Federführung des Zentralverbandes Elektrotechnik- und Elektroindustrie e. V. (ZVEI)
und namhafter Hersteller elektromechanischer Antriebe und Steuerungen ein GemeinschaftsArbeitskreis des Vereins Deutscher Werkzeugmaschinenfabriken e. V. (VDW) die Spezifikation
SERCOS (SErial Realtime COmmunication System) interface erarbeitet. Die erste Präsentation
erfolgte 1989. SERCOS interface ist heute eine internationale und europäische Norm IEC/EN
61491 [IEC02]. Die Interessengemeinschaft SERCOS interface e. V. (IGS)12 hat sich zur Auf4
http://www.hartcomm.org/
http://www.siemens.de/
6
http://www.abb.ch/
7
http://www.ge.com/
8
http://www.ab.com/
9
http://www.profinet.com/pi/
10
http://www.phoenixcontact.com/
11
http://www.interbusclub.com/de/
12
http://www.sercos.de
5
6
KAPITEL 2. STAND DER TECHNIK
gabe gemacht, den Standard öffentlich zugänglich zu machen und sie übernimmt die Zertifizierung von Produkten.
Aktor/Sensor-Interface (AS-Interface, AS-i) ist ein einfaches Single-Master-Feldbussystem mit
deterministischem Zyklus, das auf der untersten Steuerungsebene zum Anschluss von Aktoren
und Sensoren 1994 eingeführt worden ist. AS-i ist seit 1998 europäischer und seit 2000 internationaler Standard nach EN 50295 [EN99] und IEC 62026-2 [IEC00]. Die Zertifizierung von
AS-i Produkten übernimmt die AS-International Association13 [KM99].
2.1.3
Gebäudetechnik
Auch für die technische Ausstattung von Gebäuden, wie z. B. für Heizung, Klima, Beleuchtung,
Haushaltsgeräte und Alarmanlagen, wurde unabhängig eine Reihe von Feldbussen entwickelt.
LonWorks (kurz „LON“) ist ein Feldbussystem der Firma Echelon14 . Es wird sowohl in der
industriellen Automatisierungstechnik als auch in der Gebäude- und Heimautomatisierung eingesetzt.
Dieses System ist weit entwickelt und besitzt sogar Eigenschaften wie etwa das Routing. Folgende Übertragungsmedien können eingesetzt werden: Twisted Pair, Powerline, Funk, Infrarot,
und Lichtleiter. Als Datenraten sind wenige kBit/s bis zu einige MBit/s mögich, was stark vom
Medium und der Leitungslänge abhängt. Vorzugsweise werden 78 kBit/s verwendet.
Das verwendete Protokoll heißt „LonTalk“, welches seit 1998 in den Standards EIA 709.1
[EIA99] und ENV 13154-2 [ENV98] offengelegt ist.
Dem European Installation Bus (EIB) kann im europäischen Raum eine führende Rolle zugeschrieben werden. Bis zum Jahr 2000 wurden bereits mehr als 7 Millionen Kommunikationseinheiten eingesetzt. Es handelt sich bei EIB um einen offenen Standard [EIB99], wodurch eine
von Unternehmen unabhängige Zertifizierung gewährleistet wird. Hauptanwendungsgebiet des
EIB ist die Gebäudeautomation [DKS00]. Die Topologie des EIB lehnt sich infolgedessen stark
an einer gebäudeähnlichen Struktur an. Dabei wird ein Peer-to-Peer Netzwerk aufgebaut, welches in Bereiche (max. 15) und Linien (max. 256) eingeteilt wird, die durch Koppler getrennt
werden. Die Koppler fungieren als Router, d. h. Datenrahmen werden gefiltert.
Als Medien werden hauptsächlich Twisted Pair (9.600 Bit/s), aber auch Powerline (1.200 Bit/s),
Funk und Infrarot eingesetzt.
European Home Systems Network (EHS) ist ein Peer-to-peer Netzwerk, das grosse Gemeinsamkeiten mit EIB aufweist. Der EHS Standard 1.3 [EHS96, KJBMS00] definiert folgende
zulässige Medien:
• Twisted Pair TP1 (9.600 Bit/s)
• Twisted Pair TP2 (64.000 Bit/s)
• Powerline (2.400 Bit/s)
• Koaxialkabel (9.600 Bit/s)
13
14
http://www.as-interface.net/
http://www.echelon.com/
2.1. FELDBUSSYSTEME IN VERSCHIEDENEN ANWENDUNGSBEREICHEN
7
• Funk (1.200 Bit/s)
• Infrarot (1.100 Bit/s)
Viele Haushaltsgeräte-Hersteller haben sich bei der Entwicklung eigener kommunikationsfähger Produkte aufgrund der vielen konkurrierenden Standards lange Zeit zurückgehalten. Im
Juni 1996 startete die EHSA (European Home Systems Association)15 eine Initiative mit dem
Ziel, die drei Systeme BatiBUS16 (eine Entwicklung der Firmen Merlin Gerin17 , Airelec18 , Landis+Gyr19 u.a.), EIB und EHS zu einem gemeinsamen Kommunikationsstandard zu vereinigen.
Unter dem Namen „Konnex“ (kurz „KNX“)20 wurde eine Organisation nach belgischem Recht
gegründet, die 1999 eine KNX Spezifikation in der Version 1.0 vorstellte [KNX00]. Der KNX
Standard basiert auf der Kommunikationsschicht von EIB, wird aber erweitert durch die physikalische Schicht und die Konfigurationsmodi von BatiBUS und EHS. KNX definiert folgende
Medien:
• Twisted Pair 0 (TP0, 4.800 Bit/s)
Dieses Kommunikationsmedium wurde von BatiBUS übernommen, KNX und BatiBUS
Geräte benutzen dasselbe Medium, können aber nicht miteinander kommunizieren.
• Twisted Pair 1 (TP1, 9.600 Bit/s)
TP1 wurde von der EIB Spezifikation übernommen, EIB und KNX Geräte können völlig
kompatibel zueinander über dieses Medium kommunizieren.
• Powerline 110 (PL110, Mittenfrequenz 110 kHz, 1.200 Bit/s)
Auch dieses Kommunikationsmedium wurde den EIB Spezifikationen entnommen, wobei
wiederum EIB- und KNX-zertifizierte Geräte miteinander kompatibel sind.
• Powerline 132 (PL132, Mittenfrequenz 132 kHz, 2.400 Bit/s)
PL132 wird im EHS Standard verwendet. EHS und KNX Geräte können nur mit Hilfe
eines Protokoll-Konverters miteinander kommunizieren, der aber im „A-mode“ Unterprotokoll von KNX implementiert ist.
• Funk (RF, Radio frequency, 868 MHz, 38,4 kBit/s)
Dieses Medium wurde eigens im Rahmen von KNX neu entwickelt.
Nach der Verabschiedung des gemeinsamen europäischen KNX Standards [EN03] ist nun der
Weg frei für die Entwicklung neuer Produkte. KNX scheint beste Chancen zu haben, zum Weltstandard für Indoor-Powerline zu werden.
15
http://www.ehsa.com/
http://www.batibus.com/
17
http://www.merlingerin.com/
18
http://www.airelec.fr/
19
http://www.landisgyr.com/
20
http://www.konnex.org/
16
8
KAPITEL 2. STAND DER TECHNIK
2.2
Heterogene Netzstruktur
at
ew
ay
Beispielhaft für alle drei Anwendungsbereiche, läßt sich das Vorhandensein und die Notwendigkeit der heterogenen Netzstruktur sehr gut im Bereich Automotive zeigen.
G
IEEE 1394
Gatewa
y
RS485
CAN I²C LIN
D2B Optical
Control
Byteflight
TTP
FlexRay
Audio
Video
MOST
Bluetooth
y
ewa
Gat
Abbildung 2.1: Netzhierarchie
Aufgrund neuer divergierender Anwendungen kommen auch in Zukunft eine weiter steigende
Anzahl voneinander getrennt arbeitender, spezialisierter Netze oder Bussysteme zum Einsatz
(Abbildung 2.1). Getrieben werden diese Entwicklungen durch
• unterschiedliche Anforderungen an Signallaufzeit, Bandbreite, Störsicherheit, Ausfallsicherheit und Topologie,
• applikationsspezifische Sicherheitsaspekte,
• die Einführung klarerer Schnittstellen,
• die Verfügbarkeit neuer Lösungen, aber auch durch positive Erfahrungen mit bereits eingeführten Systemen,
• sowie dem gestiegenen Kostendruck und der damit einhergehenden möglichst optimalen
Dimensionierung entsprechend dem Einsatzzweck.
So zeichnet sich ab, dass auch in den nächsten Fahrzeuggenerationen für Komfortanwendungen und das Motormanagement weiterhin CAN verwendet wird. Zur Vernetzung von Komponenten innerhalb kleiner lokaler Bereiche, wie der Klimaanlage, der Sitzverstellung oder
2.3. ANSÄTZE FÜR HÖHERE PROTOKOLLE
9
der Fahrzeugtür, werden aber preiswertere Subbusse wie Local Interconnect Network (LIN)
[LIN02, LIN03] eingesetzt. X-by-Wire Applikationen, wie die elektrohydraulische Bremse
oder die elektrische Lenkung ohne mechanische Kopplung, stellen höhere Anforderungen an
Bandbreite, Übertragungs- und Ausfallsicherheit. Dafür wurden mehrere unterschiedliche Netze entwickelt, darunter das Time Triggered Protokoll (TTP/C) [TTP99, TTP03], Byteflight
[PBG99], FlexRay [Fle05] oder das auf CAN basierende Time Triggered Controller Area Network (TTCAN) [ISO04a]. Als ursprünglich nicht für den Automobilbereich konzipierte Vertreter kommen die Spezifikation RS485 [TIA98] für die physikalische Übertragungsschicht zusammen mit herstellerspezifischen Protokollen in Sonderfahrzeugen (Taxi, Polizei, Feuerwehr,
Arbeitsgeräte), sowie der Inter-IC-Bus (I2 C) [I2C00] innerhalb von Geräten des Entertainmentsystems für Steuerungsaufgaben zum Einsatz.
Der Infotainmentbereich benötigt für alle Ausprägungen von Multimedia-Anwendungen geeignete Netzwerke, wie das bedingt für Video geeignete MOST-Protokoll, das audiofähige drahtlose System Bluetooth [SIG03, SIG04c] oder den IEEE 1394 Standard [IEE95, IEE98, IEE01b,
And99].
Mittel bis langfristig ist eine Verschmelzung der Bereiche Audio und Video (Abbildung 2.1)
zu erwarten, da diese Netze beide für isochrone Daten geeignet sein müssen und lediglich mit
der notwendigen Bandbreite skalieren müssen. Netze für den Bereich Control werden auch in
Zukunft vom Bereich Audio/Video und untereinander getrennt bleiben müssen, da hier höchst
unterschiedliche Anforderungen an Bandbreite, Echtzeitfähigkeit und Sicherheitsanforderungen gestellt werden.
2.3
Ansätze für höhere Protokolle
Viele Applikationen, insbesondere für Steuerungs- und Regelungsaufgaben, setzen derzeit noch
auf den beiden unteren Übertragungsschichten des OSI-Modells auf. Die Kommunikation innerhalb der Subsysteme wird über starr administrierte Kommunikationsmatrizen bzw. feste Kanalzuweisungen organisiert, die spätere Änderungen stark erschweren. Hier sollen nun beispielhaft einige der Bestrebungen vorgestellt werden, die höhere Protokolle definieren, um Feldbusse
flexibler nutzen zu können.
OSEK/VDX (Offene Systeme und deren Schnittstellen für die Elektronik im Kraftfahrzeug /
Vehicle Distributed eXecutive)21 war ein Vorstoß, um unter anderem durch die Einführung einer
Interaktionsschicht (vergleichbar OSI Schicht 7) und Netzwerkschicht (OSI Schicht 3) [OSE00,
ISO04b] für eine Vereinheitlichung der Kommunikation im Fahrzeug zu sorgen. Auch wenn
OSEK/VDX nicht ausschließlich die Verwendung eines bestimmten Feldbusses vorschreibt, so
ist doch sehr deutlich die Konzentration der Entwickler auf CAN zu sehen. Eine allgemeine
Verbreitung in anderen Anwendungsbereichen ist nicht zu erwarten, da OSEK/VDX speziell
für Steuerungsapplikationen im Fahrzeug konzipiert worden ist.
CANopen [CiA02] ist ein OSI Schicht 7 Protokoll (Anwendungsschicht), das ausschließlich
auf dem CAN aufsetzt. Die Anwendungen in den Knoten verwenden zur Kommunikation nicht
mehr die CAN-Identifier, sondern Objekte. Alle CANopen-Objekte, die Kommunikations- und
21
http://www.osek-vdx.org/
10
KAPITEL 2. STAND DER TECHNIK
Anwendungsobjekte sind in einem standardisierten Objektverzeichnis im Knoten abgelegt, dort
können Daten und Parameter verändert werden. Das Objektverzeichnis dient somit als zentrales Koppelelement eines CANopen-Knotens auf das sowohl die Anwendung im eigenen Knoten
als auch die anderen Knoten über Kommunikationsobjekte zugreifen können. Bei der Initialisierung erfolgt die Zuordnung zwischen Objekten und CAN-Identifiern mit einem vordefinierten
Schema („predefined connection set“), das in engen Grenzen abänderbar ist. CANopen wird seit
1995 von der internationalen Nutzer- und Herstellerorganisation CAN in Automation (CiA)22
gepflegt, das Protokoll ist in der europäischen Norm EN 50325-4 [EN02] standardisiert. Bekannte Anwendungsbereiche von CANopen sind die industrielle Automatisierung, Medizintechnik, Nutzfahrzeuge, Schienenfahrzeuge, Schiffbau und Gebäudetechnik [Zel01].
Die Dienste von PROFIBUS-FMS (Fieldbus Message Specification) [DIN91, EN96, IEC03a,
IEC03b] werden ebenfalls durch die Definition einer Anwendungsschicht (OSI Schicht 7) bereitgestellt. PROFIBUS-FMS wurde für die objektorientierte, universelle Kommunikation bei
mittleren Echtzeitanforderungen zwischen Steuerungen nach dem Client-Server Prinzip entwickelt. Es setzt auf denselben Schichten 1 und 2 auf, die auch von der PROFIBUS-DP Ausprägung benutzt werden. Das Protokoll findet hauptsächlich in der Automatisierungstechnik seine
Anwendung [Pop00].
Zum EHS Standard [EHS96, KJBMS00] gehört die Definition der OSI Schichten 3 und 7.
Die Vermittlungsschicht bietet die üblichen Dienste eines OSI Schicht 3 Protokolls. Sie sorgt
begrenzt auf ein EHS-System, also z. B. ein Gebäude, für die Weiterleitung von Datenpaketen in miteinander verbundenen EHS-Subnetzen, außerdem ist sie zuständig für die Wegewahl
(Routing).
Die hauptsächliche Aufgabe der Anwendungsschicht ist die Konvertierung von EHSKommandos in einen Datenrahmen für die Vermittlungsschicht. Innerhalb dieser Schicht befinden sich folgende Komponenten:
• Command Language Service Element (CLSE): Abwicklung der Kommando-Syntax
• Message Transfer Service Element (MTSE): Zuordnung zwischen Anwendungsidentifikationen und Untereinheitidentifikationen / Netzwerkadressen
• Application Titel Directory (ATD): Datenstruktur mit Informationen zu entfernten Untereinheiten
• Local Management Service Element (LMSE): Überpüfen und Modifizieren des ATD duch
die lokale Anwendung
In einer Veröffentlichung wurde das Konzept nanoIP [SMR+ 03] diskutiert, welches Transportprotokolle (OSI Schicht 4) und Anwendungsprotokolle (OSI Schicht 7) für eingebettete Netzwerkanwendungen vorstellt. Die Definition dieser Protokolle wurde wiederum durch ein Arbeitspapier mit Protokollvorschlägen für eingebettete Systeme beeinflusst. Dieses unvollendete
Arbeitspapier wurde bei der Internet Engineering Task Force (IETF)23 als INTERNET-DRAFT
eingereicht, ist jedoch nicht als Request for Comments (RFC) angenommen worden. Beide
Konzepte sind bisher nicht weiter verfolgt worden.
22
23
http://www.can-cia.org/
http://www.ietf.org/
2.4. GATEWAYS
2.4
11
Gateways
Um die Erwartung an überall verfügbare Messwerte und Stati (Kapitel 2) zu erfüllen, sind
Koppelelemente zwischen den grundlegend verschiedenen Netzen notwendig. Zum Datenaustausch zwischen den zueinander inkompatiblen Protokollen, die auch nur bis auf unterschiedliche Schichten ausgeprägt sind, benötigt man also Gateways. Entsprechend dem OSI-Modell
geschieht die Konvertierung hierbei auf Applikationsebene.
Dass hierbei die speziellen inherenten Vorteile der Feldbusse negativ beeinflusst werden ist bekannt. Billigend in Kauf genommen wird z. B. der Verlust von deterministischem Zeitverhalten
oder Zyklusszeiten, die Verschlechterung bei Latenzzeit, Einschränkungen bei der Bandbreite
oder die Verminderung der Ausfallsicherheit. Trotzdem überwiegt das mehr an Funktionalität
bei weitem diese Nachteile.
Schon bei einem normal ausgestatteten Fahrzeug werden zur Koppelung an mechanisch geeigneten und der Netzwerktopologie entsprechenden Einbauorten bereits eine Handvoll unterschiedlicher Gateways zwischen fahrrelevanten Systemen, der Komfortelektronik und dem
Infotainments benötigt. Funktionen, wie z. B. E-Mail-/News-/WWW-Zugang, ortsbezogene
Dienste, Diebstahlwarnanlagen mit Ortsbestimmung, Flottenmanagement, Ferndiagnose- und
wartung, usw. erfordern die Einbindung von Netzwerken zur externen Kommunikation, am
naheliegensten Mobilfunk oder Wireless Local Area Network (Wireless LAN, WLAN). Bei
Fahrzeugen der Oberklasse oder bei Arbeitsmaschinen können so leicht mehrere Dutzend spezialisierter Gateways benötigt werden.
Bei industriellen Automatisierungsanlagen oder der Gebäudetechnik koexistiert eine große Zahl
von Feldbussystemen parallel in einem Anlagenteil bzw. einem Gebäude. Deshalb spielen Gateways hier ebenso eine wichtige Rolle für den Standardbetrieb oder beispielsweise zum Zugriff
auf alle Senoren und Aktoren für die Parametrierung. Für die Buchhaltung, für die Ferndiagnose und -wartung bzw. zur Weiterleitung von Störungs- oder Alarmmeldungen greift man gerne
auf gewohnte Konzepte, wie z. B. Datenbankanbindung, Web-Schnittstelle bzw. E-Mail zurück
und benötigt dafür Gateways zum Internet via Local Area Network (LAN).
2.5
Fazit
In den drei verschiedenen Bereichen Automobil-, Automatisierungs- und Gebäudetechnik haben sich unterschiedlichste Feldbusse etabliert. Sogar innerhalb einer Anwendungsdomäne werden mehrere Systeme nebeneinander verwendet und führen so zu einer heterogenen Netzstruktur. Mit einer Konvergenz ist auch in Zukunft nicht zu rechnen, da jedes System bestimmte
Stärken und Schwächen aufweist, die es für einen speziellen Einsatzzweck prädestinieren.
Viele Feldbus-Systeme definieren nur die Bitübertragungsschicht (OSI Schicht 1) und die Sicherungsschicht (OSI Schicht 2). In den Anwendungsbereichen werden eingebettete Systeme
(Embedded Systems) verwendet, diese hatten historisch bedingt nur eine sehr begrenzte Verarbeitungsleistung und limitierten Speicher. Das Auslassen höherer Schichten und somit das
Aufsetzen der Applikation direkt auf die Schicht 2 ermöglichte es auch unter diesen Bedingungen, eine effiziente und schnelle Datenverarbeitung mit geringem Protokolloverhead zu erreichen. Zum Fragmentieren großer Datenpakete sahen die Entwickler keine Notwendigkeit, da
12
KAPITEL 2. STAND DER TECHNIK
der Feldbus so dimensioniert wurde, dass seine Nutzdatenpakete für die geplante Anwendung
ausreichend waren. Außerdem spielten in den anfangs eng begrenzten Einsatzgebieten Funktionen für die Wegewahl (Routing) keine Rolle.
Von der optimierenden Denkweise bei embedded Systemen getrieben, sind höhere Protokolle
nur für eine bestimmte Anwendungsumgebung und/oder einen Feldbus definiert worden. Man
findet die Protokollschichten als Bestandteil eines Feldbus-Standards oder sie wurden von unabhängigen Konsortien (z. B. Benutzergruppen) entwickelt. Angestrebte Funktionen sind oftmals
eine Programmierschnittstelle (API – Application Programming Interface), die durch eine Anwendungsschicht (OSI Schicht 7), realisiert wurde; seltener existiert eine Vermittlungsschicht
(OSI Schicht 3), die z. B. das Routing in einer strukturierten Netzwerkumgebung erlaubt. Durch
die Abhängigkeit von einer Anwendung oder einem Bussystem existieren sogar mehrere, auch
konkurrierende, höhere Protokollschichten.
Die heterogenen Netzwerkumgebungen in Kombination mit den unterschiedlichen höheren Protokollen führen zu einer beinahe unüberschaubaren Vielfalt an Programmierschnittstellen zur
Datenübertragung über die Feldbusse. Die Gateways sind deshalb jeweils spezialisierte aktive
Netzwerkkomponenten, die natürlich die passenden physikalischen Schnittstellen, als auch die
benötigten Netzwerkprotokolle integriert haben müssen und sogar über recht genaue Kenntnisse
der weitergegebenen Nutzdaten verfügen müssen. Obwohl von den Entwicklern der Embbeded
Systeme bereits der Bedarf für eine zukunftssichere übergreifende Lösung erkannt wurde, ist
eine Harmonisierung der verschiedenen Programmierschnittstellen und Protokolle nicht in Aussicht und in Folge dessen ein allgemeines Gatewaykonzept derzeit undenkbar.
Kapitel 3
Konzept der Protokollfamilie
Im Kapitel 2 wurde anhand ausgewählter Beispiele vorgestellt, welche Vielzahl verschiedenster
Feldbusse mit ihren entprechenden Ausprägungen und höheren Protokollen bereits entwickelt
worden sind. Unterschiedliche Randbedingungen rechtfertigen aber auch wiederum die Vielzahl
der Feldbusse. Innerhalb eines eng begrenzten Teilbereiches stellt der entsprechende Feldbus
eine optimale Lösung, z. B. für zeitkritische Regelkreise dar. Hierfür wird man auch noch auf
absehbare Zeit auf die Schicht 2 aufsetzen wollen, um die spezifischen Vorteile des verwendeten
Feldbusses direkt nutzen zu können. Sicherheitsgründe sprechen ebenfalls für die getrennte
Ausführung von Netzen, um eine unerwünschte gegenseitige Beeinflussung von Anlagenteilen
oder gar die Fortpflanzung einer Störung auf das Gesamtsystem zu unterbinden. Ebenso müssen
finanzielle Gründe bei der Wahl eines geeigneten Bussystems für den jeweiligen Teilbereich
einer Anlage berücksichtigt werden. Eine Konvergenz der Systeme ist deshalb auch in Zukunft
nicht zu erwarten.
Höhere Protokolle für standardisierte Programmierschnittstellen und eine mögliche Interoperabilität zwischen den begrenzten Bereichen existieren zwar zum Teil, wurden aber nur für
den Einsatz mit bestimmten Feldbussen oder in bestimmten Anwendungsszenarien konzipiert.
Somit stellen Gateways derzeit den einzigen Weg dar, um einen Datenaustausch zwischen Teilsystemen mit unterschiedlichen Protokollen zu ermöglichen. Jedoch sind diese proprietären und
jeweils neu zu entwickelnden Gateways ein sehr aufwendiger Lösungsweg.
Da immer mehr auch die durchgängige Interoperabilität zwischen Teilsystemen mit verschiedenen Feldbussegmenten gefordert wird, befindet sich die Entwicklung aber nun in einer Sackgasse. Es fehlt eine allgemeine Lösung, die mit möglichst vielen Feldbussen und in einer möglichst
breiten Umgebung eingesetzt werden kann.
3.1
Zielsetzung
Diese Arbeit hat sich deshalb zum Ziel gesetzt, eine Lösung für zukunftssichere Entwicklungen
zum Steuerdatenaustausch in heterogenen Netzwerkumgebungen zu schaffen. Den Anwendungen soll trotz der Verwendung unterschiedlicher Feldbusse eine gemeinsame Schnittstelle zur
Verfügung gestellt werden. Darauf aufbauend können dann auch allgemeine, vereinheitlichte
Gateway Applikationen erstellt werden.
13
14
KAPITEL 3. KONZEPT DER PROTOKOLLFAMILIE
Folgende Anforderungen werden gestellt:
• Gemeinsame Schnittstelle für die Anwendungen.
Diese bietet die Grundlage für die zukunftssichere Anwendungsentwicklung und für die
allgemeinen, vereinheitlichten Gateways.
• Einheitliche Transportdienste.
Dies kann z. B. bestätigter, unbestätigter und transaktionsbasierter Datentransport sein.
• Einheitliche Adressierung,
die unabhängig vom zugrundeliegenden Feldbus und dessen nachrichtenbasierten, kanalbasierten oder knotenbasierten Adressierungsmodell ist.
• Automatisierungsgeräte sollen, solange mindestens ein durchgängiger Pfad in einem ausreichend vermaschten System verfügbar ist, auch bei Ausfall von einzelnen Segmenten
erreichbar bleiben.
• Wegewahl in geeignet strukturierten Feldbusumgebungen mit der Möglichkeit zur Berücksichtigung von Quality of Service (QoS)-Parametern beispielsweise für Echtzeitanwendungen.
• Im Normalbetrieb optimiert für die Steuerdatenkommunikation in embedded Systemumgebungen.
Das bedeutet die Übertragung von wenigen Nutzdatenbyte pro Datenrahmen. Durch die
Protokolle soll dabei nur ein möglichst geringer Overhead hinzugefügt werden.
• Möglichkeit zur Softwareaktualisierung von Steuergeräten.
Dies erfordert die zeitweilige Übertragung größerer Datenmengen.
• Konzipiert für ein komplexes abgegrenztes System, das mehrere unterschiedliche Feldbusse benötigt.
Klassische Beispiele sind der Einsatz im Kraftfahrzeug, in einer industriellen Anlage oder
in Gebäuden.
• Möglichst einfache Übergangsmöglichkeit in die Internet-Welt.
Dies ermöglicht die Diagnose und Wartung auch außerhalb des eng abgegrenzten Systems
mit Standardkomponenten.
Das Protokoll dient also besonders für Steuerungsanwendungen, die einen Einsatz mehrerer
Feldbusse und deren Koppelung mittels Gateways benötigen. Hier ist der Vorteil einer solchen
Entwicklung besonders groß.
3.2
Anwendungsbeispiele
Gerade durch das verbesserte Zusammenwirken der Teilsysteme wird eine weitere Erhöhung
des Funktionsumfanges des Gesamtsystems erwartet. Der Aufwand für die Hardwareausstattung bleibt praktisch identisch, denn schon bei der bisherigen Form der heterogenen Vernetzung
3.2. ANWENDUNGSBEISPIELE
15
musste die Netzwerktopologie und die proprietären Gateways eingeplant werden. Nun werden
Hardware und Software für allgemeine Gateways nur einmal entwickelt und können universell eingesetzt werden. Die Anwendungssoftware auf den Steuergeräten, die über Teilsysteme hinaus kommunizieren soll, kann unabhängig vom verwendeten Bussystem entwickelt und
verwendet werden, da nur noch eine Programmierschnittstelle existiert. Bei Neu- und Weiterentwicklungen kann auf bereits vorhandene und ausgetestete Softwaremodule zurückgegriffen
werden. Zusätzliche Funktionen lassen sich auch später flexibel hinzufügen.
Anhand folgender Beispiele soll der Mehrwert einer Protokollfamilie für die Steuerdatenkommunikation vorgestellt werden.
Reifendruck
Reifendruck
RS232
IEEE 1394 RS232
Gateway
InternetService
Server
elektrische
Fensterheber
Schloß
Reifendruck
Datenbank
IEEE 1394
Display / MMI
Kamera
IEEE 1394
Bridge
GPS
GSM /
UMTS
Display / MMI
Tuner
elektrische
Fensterheber
Gateway /
Verstärker
LIN
Gateway /
Verstärker
Bluetooth
Gateway
elektrische
Fensterheber
Schloß
X-by-Wire
System
FlexRay
IEEE 1394 FlexRay
Gateway
Tacho /
MMI
IEEE 1394
Gateway /
Verstärker
Spiegel
LIN
Fahrzeug PC
(Navigation)
elektrische
Fensterheber
CD / DVD
Wechsler
Schloß
LIN
Kamera
Airbag
System
IEEE 1394 proprietäres
Gateway
IEEE 1394 CAN
Gateway
IEEE 1394
Display /
MMI
Schloß
Body
Elektronik
Gateway /
Verstärker
CAN C
CAN B
Chassis /
Antriebsstrang
LIN
Spiegel
Reifendruck
Hinweis: Auch andere Netze, wie z. B. FlexRay und CAN, breiten sich über das gesamte Fahrzeug aus.
Abbildung 3.1: Fahrzeug Netzarchitektur – Funktionaler Aspekt
Abbildung 3.1 zeigt eine Referenzarchitektur für Fahrzeuge. Dabei handelt es sich um die funktionale Sicht auf ein zukünftiges Automobil, welches für den fahrrelevanten Bereich weiterhin
mit den typischen Feldbussen, wie z. B. FlexRay, CAN oder LIN ausgestattet ist. Gleichzeitig
verfügt dieses Auto aber auch über ein ausgeprägtes Infotainment- und Entertainment-System
basierend auf dem IEEE 1394 und Bluetooth und ist bis hin zur externen Anbindung über Mobilfunknetze (GSM – Global System for Mobile communications, UMTS – Universal Mobile
Telecommunications System) ausgestattet. Eine Vielzahl von Gateways ermöglicht den Datenaustausch zwischen den vorhandenen Netzwerksegmenten.
16
KAPITEL 3. KONZEPT DER PROTOKOLLFAMILIE
Mit der Zielsetzung dieser Arbeit werden erweiterte Möglichkeiten für die Ferndiagnose und
-wartung geschaffen. Der Zugriff auf jedes Steuergerät im Fahrzeug kann über beliebige interne Netze, und sofern gewünscht, auch über eine externe Netzwerkanbindung erfolgen. Hierüber können interne Vorgänge abgefragt, Konfigurationseinstellungen durchgeführt und auch
die Betriebssoftware der Steuergeräte aktualisiert werden. Eine zentrale Datenbank steht allen Komponenten zur Verfügung, um Betriebsdaten, aufgetretene Fehler und benutzerdefinierte
Einstellungen zu erfassen. Hierüber können auch wesentlich detailliertere nutzungsabhängige
Wartungsaufforderungen (sogenannte Condition Based Services) als bisher für den Nutzer generiert werden, die nicht nur im Fahrzeug sondern auch an externe Stellen signalisert werden
können.
Ein weiterer Mehrwert ergibt sich durch die Steuerung von Infotainment-Anwendungen durch
das Mitnutzen vorhandener Body-Elektronik. Entsprechend aufwendig ausgestattete Türbedienmodule, die bisher nur der Einstellung der Spiegel und für die Bedienung der Fensterheber
dienten, können nun auch für die unabhängige Kanalauswahl und die Lautstärkeeinstellung von
Multimediaquellen getrennt für jeden Sitzplatz genutzt werden. Ein Komfort vergleichbar zu
den Bedienmöglichkeiten in modernen Verkehrsflugzeugen kann für alle Insassen erreicht werden.
Bei einer über die in Abbildung 3.1 gezeigten Ausstattung hinausgehenden Ausrüstung des
Fahrzeugs mit Gateways kann sogar auch bei Ausfall von Teilnetzen ein Betrieb über alternative Routen bereitgestellt werden. Teilweise wird dabei zwar nur ein eingeschränkter Notbetrieb
wichtiger Funktionen möglich sein, da auch weniger spezifisch geeignete Netze herangezogen
werden müssen. Gegenüber einem sonstigen Totalausfall ist dies trotz allem eine erhebliche
Verbesserung.
Die Computer Aided Manufacturing (CAM) Pyramide ist eine oft verwendete Symbolik im
Bereich der Automatisierung. Abbildung 3.2 zeigt eine Referenzarchitektur für eine zukünftige
industrielle Anlage, welche mit üblichen Feldbussen, wie z. B. AS-i, CAN, PROFIBUS vernetzt
ist. Auch hier werden moderne Netzwerke wie IEEE 1394 eingeführt und es existiert eine Anbindung an das weltweite Internet. Abgesehen von den verwendeten spezialisierten Netzwerken
und der größeren räumlichen Ausdehnung sind die Parallelen zur Fahrzeug-Referenzarchitektur
(Abbildung 3.1) erkennbar.
Für dieses Einsatzgebiet ergeben sich ebenfalls Vorteile durch die erweiterten Ferndiagnoseund Fernwartungsmöglichkeiten. Das Bedienpersonal hat von der Leitwarte oder soweit gewünscht per weltweiter Internet-Anbindung Zugriff auf sämtliche Automatisierungsgeräte der
Anlage. Alle Aktoren und Sensoren können jederzeit überwacht und parametriert werden. Die
Ablaufprogramme für speicherprogrammierbare Steuerungen müssen nicht mehr vor Ort geladen werden, sondern können praktisch von überall her übertragen werden. So können z. B.
Computerized Numerical Control (CNC) Bearbeitungsmaschinen direkt von der Konstruktionsabteilung oder der Arbeitsvorbereitung programmiert werden.
Umgekehrt wird es möglich, aus der Produktion Daten zum Ausstoß z. B. direkt an die Buchhaltung zu übermitteln. Störmeldungen lassen sich intern und extern weitergeben und können
auf entsprechenden Wunsch sogar als E-Mail oder SMS (Short Message Service) an das Wartungspersonal weitergeleitet werden.
Die Gebäudetechnik weist wiederum Parallelen zur Automatisierung auf, jedoch mit den dort
vorkommenden Netzen für Gebäudeautomatisierung (z. B. EIB und KNX), Unterhaltungselektronik (z. B. IEEE 1394), Internet (z. B. Ethernet) und Telekommunikation (z. B. ISDN – Inte-
3.3. LÖSUNGSANSÄTZE
17
Internet
PC
Firewall
Firewall
PC
Gateway
Gateway
Ethernet, TCP/IP
SPS
SPS
Leitrechner
IEEE 1394, IP over 1394
SPS / GW
PROFIBUS, CAN
Gateway
Prozessebene
MMI
MMI
SPS / GW
SPS
···
Aktor
···
Aktor
···
Aktor
Aktor
Sensor
Sensor
···
Sensor
AS-Interface, CAN
Sensor/Aktor-Ebene
Sensor
Leitebene
Leitrechner
GW – Gateway, MMI – Mensch Maschine Interface, PC – Personal Computer,
SPS – SpeicherProgrammierbare Steuerung
Abbildung 3.2: Computer Aided Manufacturing Modell
grated Services Digital Network). Auch hier ist ein Mehrwert durch das Zusammenwirken der
verschiedenen Feldbusse, Multimedianetze, dem Local Area Network (LAN) und den Telekommunikationsnetzen zu erwarten.
3.3
Lösungsansätze
Zunächst werden zwei unterschiedliche Lösungsansätze vorgestellt mit denen die geforderten
Funktionen umgesetzt werden können. Anschließend im Kapitel 3.4 erfolgt dann die endgültige
Auswahl des weiterverfolgten Konzepts.
Der erste Lösungsvorschlag geschieht ähnlich den bisherigen Industriestandards CANopen oder
PROFIBUS-FMS. Den Awendungsprogrammen steht eine Programmierschnittstelle mit definierten Funktionsaufrufen in Form einer Bibliothek bereit. In der Software-Entwicklung spricht
man bei diesen Bibliotheken, die den Softwarekomponenten eine Programmierschnittstelle zur
transparenten Kommunikation über Netze bereitstellen, auch von kommunikationsorientierter
Middleware.
Der zweite Lösungsvorschlag folgt dem ISO OSI-Modell. Dieses legt fest, dass die Konvergenz
der heterogenen Netze in der Schicht 3 zu erfolgen hat und die Transportdienste in der Schicht 4
angesiedelt sind.
18
3.3.1
KAPITEL 3. KONZEPT DER PROTOKOLLFAMILIE
Programmierschnittstelle
Eine Anpassungsschicht (vergleichbar OSI Schicht 7) stellt eine Programmierschnittstelle
(API – Application Programming Interface) bereit.
SteuerungsApplikation
Gateway Applikation
SteuerungsApplikation
•••
SteuerungsApplikation
Anpassungsschicht
LIN API
CAN API
BT API
IEEE 1394 API
Data Link Layer
Logical Link
Control
Application Layer
(i. e. CANopen)
L2CAP
Medium Access
Control
Physical Layer
LIN
LMP
Link Layer
Baseband
Physical Layer
BT Radio
CAN
Bluetooth
Serial Bus Management
RFCOMM
Transaction
Layer
asynch.
isochr.
Link Layer
Physical Layer
IEEE
1394
Abbildung 3.3: Anpassungsschicht mit API als einheitliche Schnittstelle
Anhand Abbildung 3.3 kann man sehen wie Anwendungen und Gateways über die Anpassungsschicht beispielsweise die Netze LIN, CAN, Bluetooth und IEEE 1394 nutzen können. Die
Funktionen für die geforderte einheitliche Adressierung und die Transportdienste aus Kapitel
3.1 müssen in dieser einen Schicht untergebracht werden. Nach unten hin müssen Anpassmodule zu den verschiedenen Feldbussen definiert werden. Nach oben hin wird eine Programmierschnittstelle definiert auf die Anwendungen sowie Gateways gleichermaßen aufsetzen können.
Die Anpassungsschicht gibt Applikationen die Möglichkeit zur Angabe von QoS-Parametern
für den Datentransport. Die Wegewahl bei Ausfall von Netzwerksegmenten und für die Berücksichtigung von QoS-Parametern muss von der Gateway Applikation berücksichtigt werden. Innerhalb des Systems können dazu vereinheitlichte Gateways zum Einsatz kommen. Der
Übergang in die Internet-TCP/IP-Welt wird durch ein spezielles Gateway ermöglicht.
3.3.2
Hierarchische Protokollfamilie
Die gestellten Anforderungen werden entsprechend dem OSI-Modell auf mehrere Schichten
aufgeteilt. Die Aufgaben der entprechenden Schicht können unabhängig voneinander implementiert und gepflegt werden. Abbildung 3.4 zeigt die Einordnung der Protokolle.
3.3. LÖSUNGSANSÄTZE
19
Applikation
Applikation
Applikationsschicht
7
Darstellungsschicht
6
Sitzungsschicht
5
Transportschicht
Transportschicht
4
Hierarchische
Protokollfamilie
Vermittlungsschicht
Vermittlungsschicht
3
Sicherungsschicht
Sicherungsschicht
···
Sicherungsschicht
Bitübertragungsschicht
Bitübertragungsschicht
···
Bitübertragungsschicht
Medium
···
Medium
2
1
Medium
Abbildung 3.4: Protokollfamilie (rechts) eingeordnet in das OSI-Modell (links)
Das Übertragungsmedium und die Schichten 1 und 2 werden von den jeweils verwendeten
Feldbussen bestimmt. In einem System kommen entsprechend der Anzahl der verschiedenen
verwendeten Netze unterschiedlich viele Definitionen dieser Schichten zum Einsatz. Höhere
Schichten müssen hierauf aufsetzen.
Die Schicht 3 ist die erste von den darunterliegenden Feldbussen unabhängige Schicht. Nach
unten hin definiert sie Anpassmodule zu den verschiedenen Feldbussen mit ihren unterschiedlichen Datenrahmen und Adressierungsmodellen. Nach oben hin stellt sie eine einheitliche logische Adressierung zur Integration der heterogenen Feldbusse bereit. Höheren Schichten steht
damit ein definierter Datenrahmen zur Verfügung.
Bestandteil dieser Schicht ist gegebenenfalls ein feldbusabhängiges Hilfsprotokoll zur Auflösung zwischen der logischen Adressierung und der Netzadressierung auf Schicht 2.
Die verbindungslosen, verbindungsorientierten und transaktionsbasierten Transportdienste werden von der Schicht 4 bereitgestellt. Hierauf können die Anwendungen und die Gateways aufsetzen.
Bestandteil dieser Schicht ist auch ein Hilfsprotokoll für die Vermittlungsschicht zum Austausch von Fehler- und Informationsmeldungen.
Für die Schichten 5 und 6 sieht dieses Konzept keine Verwendung vor. Die Schicht 7 ist anwendungsabhängig und muss für einen konkreten Einsatzzweck definiert werden. Diese drei
20
KAPITEL 3. KONZEPT DER PROTOKOLLFAMILIE
Schichten werden im Folgenden nicht weiter betrachtet, können jedoch später bei Bedarf ohne
Veränderungen am bisherigen Konzept noch hinzugefügt werden.
Heterogene Netze als Subnetze
Zum Datenaustausch zwischen den heterogenen Netzen wurden bisher Gateways eingesetzt, die
bekanntlich eine vollständige Umsetzung der Nutzdaten auf der Schicht 7 vornehmen mußten.
Entwickelt man die Idee der hierarchischen Protokollfamilie weiter und betrachtet jedes spezielle Netz als ein Subnetz, so wird der in Abbildung 3.5 gezeigte beispielhafte Netzwerkverbund
möglich.
1.24
Router 1
CAN
1.3
1.245
1.19
CAN
IEEE 1394
Router 2
CAN
IEEE 1394
IEEE 1394
Abbildung 3.5: Heterogene Netze als Subnetze und durch Router verbunden
Hier wird die Aufgabe statt von Gateways nun von Routern übernommen, die es ermöglichen
eine Weiterleitung der Datenrahmen auf der Schicht 3 vorzunehmen.
3.3. LÖSUNGSANSÄTZE
21
Die Vorteile dieser Vorgehensweise sind:
• Das Durchlaufen des Protokollstapels nur bis zur Schicht 3 bedeutet weniger Overhead in
den Netzübergangsknoten.
• In den Routern ist keine komplette Interpretation der Dateninhalte notwendig. Lediglich
die Header der eingehenden Datenpakte müssen analysiert werden, um das Paket mitsamt
Nutzinhalt anschließend weiterleiten zu können.
• Das Weiterleiten von Paketen durch Router benötigt weniger Ressourcen als eine Interpretation der Nutzinhalte durch Gateways und kommt damit der Implementation in embedded
Systemen entgegen.
• In Folge dessen wird der Datentransport effektiver und schneller.
• Die Wegewahl (Routing) wird sehr einfach möglich, da sie vollkommen unabhängig von
den verwendeten Feldbussen stattfinden kann. Eine Einschränkung besteht jedoch darin, dass die Wegewahl anhand einer statisch konfigurierten Routingtabelle und der darin
festgelegten Metrik vorgenommen wird und nur „manuell“ vom Systembetreuer verändert
werden kann.
• Der Ausfall von Netzwerksegmenten wird handhabbar. Alternative Wege können transparent verwendet werden. Jedoch können die typischen Kenngrößen der Feldbusse, wie
z. B. Bandbreite oder Latenzzeit, nur sehr eingeschränkt anhand der fixen Routingtabelle
berücksichtigt werden.
Der Router stellt also eine wesentlich effektivere Lösung im Gegensatz zu „allgemeinen, universellen Gateways“ dar. Die Wegewahl findet in jeglichem Fall anhand von statisch konfigurierten
Routingtabellen statt. Damit ist eine weitere der in Kapitel 3.1 geforderten Funktionalitäten
erfüllt.
Routing unter Berücksichtigung von QoS
Die Überlegungen bis hierher erlauben nun den Einsatz von Routern als Netzübergangsknoten
und ermöglichen somit die transparente Datenübertragung über alle vorhandenen Feldbusse.
Bei ausreichend vermaschten Netzwerksystem findet sich auch stets mindestens eine intakte
Verbindung. Die Wegewahl findet jedoch noch mit statisch konfigurierten Routingtabellen statt,
welche keine QoS-Parameter, und damit kaum die speziellen Eigenschaften der benutzen Feldbusse, berücksichtigen können.
Voraussetzung zunächst ist, dass jede Applikation beim Versenden von Datenpaketen Angaben
zur gewünschten QoS-Anforderung machen kann. Zur geeigneten Behandlung durch die Router
muss diese Information somit in der Vermittlungsschicht (Schicht 3) zur Verfügung stehen. Bei
der späteren Definition des Schicht 3 Paketheaders wird dafür ein entsprechendes Datenfeld
vorgesehen werden.
22
KAPITEL 3. KONZEPT DER PROTOKOLLFAMILIE
Um die Datenpakete über entsprechende Feldbusse mit den unter gegebenen Umständen optimalsten Verbindungen leiten zu können, müssen die Router nun auch noch untereinander Informationen über die zur Verfügung stehenden Verbindungen austauschen können. Basierend auf
diesen Informationen können dann die Routingtabellen dynamisch angepasst werden. In Folge dessen ist ein frühzeitiges Umleiten der Datenströme auf die derzeit optimalste Verbindung
möglich. Bei Ausfall von Verbindungen in einem stark vermaschten Netz kann die Auswahl
eines weniger optimalen, zweitbesten Weges erfolgen, um so wenigstens noch einen eingeschränkten Betrieb weiterhin zu ermöglichen.
Für den Austausch dieser Informationen und zur dynamischen Anpassung der Routingtabellen
wird der Protokollfamilie hierzu ein spezielles Transportprotokoll und eine darauf aufbauende
Applikation hinzugefügt.
3.4
Fazit
Vorteilhaft für die Programmierschnittstelle (API) ist sicherlich, dass sie der gewohnten Sichtweise von Informatikern und Software-Enwicklern entgegen kommt. Auf den ersten Blick erscheint die Lösung mit der API auch wesentlich effektiver, da nur eine zusätzliche Schicht
durchlaufen werden muss. Dieser Vorteil ergibt sich jedoch nur bei der Kommunikation im selben Netzwerksegement, für den Fokus dieser Arbeit ein Spezialfall.
Denn ein offensichtlicher Nachteil für die API Lösung ist, dass die Netzübergangsknoten weiterhin Gateways bleiben, die basierend auf der Anwendungsschicht arbeiten müssen. Dadurch
müssen die Daten zwischen unterschiedlichen Feldbussen auch jeweils die komplette Anpassungsschicht mit der Umwandlung der Adressierung und der Behandlung des Transportdienstes
durchlaufen.
Definitionsgemäß kann die Schicht 7 einen gesicherten Transportdienst nur für die unmittelbare Verbindung zwischen zwei Knoten zur Verfügung stellen. Kommunizieren zwei Endpunkte
nun über mehrere Netzsegmente, so müssen die verwendeten Gateways bestätigte Verbindungen und Transaktionen erkennen und entsprechend verarbeiten. Dies erzeugt einen zusätzlichen
Aufwand in den Gatewayknoten. Je nach Implementation der Gateway Applikation kommt es
zu Einschränkungen bei der gesicherten Ende-zu-Ende-Verbindung oder bei der Echtzeitfähigkeit.
Wie bereits oben in Kapitel 3.3.1 beschrieben kommen als weitere Funktionen, die von der
Gateway Applikation geleistet werden müssen, die alternative Wegewahl bei Ausfall von Verbindungen und die Berücksichtigung von QoS-Parametern bei der Weiterleitung von Datenpaketen hinzu. Ein spezielles Gateway, das je nach Definition der API erheblich leistungsfähig
sein muss, bietet den Übergang in die Internet-Welt.
Insgesamt betrachtet hat die API Lösung mit dem aufwendigen monolithischen Protokollblock
und der komplexen Gateway Anwendungssoftware doch erhebliche Nachteile. Die Architektur
ist wenig flexibel und dadurch nur schwer zu warten, spätere Änderungen und Erweiterungen,
z. B. das Hinzufügen von Anpassungen für weitere Feldbusse, sind nur mit erheblichem Aufwand durchzuführen. Die Erfahrungen in der Praxis mit solchen Softwaregebilden sind deshalb
bisher oftmals negativ bewertet worden.
Die hierarchische Protokollfamilie hingegen folgt der Definition des OSI Schichtenmodells und
entspricht damit der gewohnten Sichtweise des Netzwerkentwicklers. Die saubere Auftrennung
3.4. FAZIT
23
der geforderten Aufgaben in mehrere Schichten stellt eine bewährte netzwerkgerechte Lösung
dar. Der Aufwand ist jedoch auf den ersten Blick größer, weil für die einheitliche Adressierung
und die Transportdienste die Schichten 3 und 4 benötigt werden.
Ein klarer Vorteil dieser Lösung besteht jedoch darin, dass die Netzübergangsknoten zu Routern werden, damit werden in den embedded Systemen weniger Ressourcen benötigt. Die Wegewahl und das Weiterleiten von Pakten geschieht universell, unabhängig vom verwendeten
Feldbus und vollkommen transparent. Die Daten müssen den Protokollstapel zwischen unterschiedlichen Feldbussen nur bis zur Schicht 3 durchlaufen. In Folge dessen muss der verwendete Transportdienst im Gegensatz zur API hier auch nicht beachtet werden.
Die Berücksichtigung von Quality of Service für Echtzeitanwendungen ist mit der hierarchischen Protokollfamilie möglich. Die Anwendungsprogramme der Knoten können durch eine
entsprechende Definition des Paketheaders der Vermittlungsschicht QoS-Parameter für die Wegewahl angeben. Vorteilhaft ist die ohne Abhängigkeiten implementierbare Routingapplikation
zur Suche des möglichst optimalen Datenpfades und zur Anpassung der Routingtabellen, welche auf eine definierte Schnittstelle des unabhängigen Schicht 4 Routingprotokolls aufsetzen
kann.
Beim Lösungsansatz mit der hierarischen Protokollfamilie sind die Parallelen zur TCP/IPProtokollfamilie deutlich erkennbar. Zwar sind hier weiterhin spezielle Netzübergangsknoten
notwendig, jedoch erleichtert die Parallelität den Übergang zwischen eigener Protokollfamilie
und der TCP/IP-Welt.
Das modulare Konzept der Protokollfamilie ist zwar aufwendiger, jedoch insgesamt von Vorteil.
Durch die getrennten dedizierten Protokolle mit definierten Schnittstellen erleichtert es die Entwicklung, sowie auch spätere Änderungen und Erweiterungen. Solange die Schnittstellendefinitionen beibehalten werden können, sind Optimierungen an einzelnen Protokollen unabhängig
möglich.
Durch die Parallelen zur TCP/IP-Protokollfamilie könnte man beinahe annehmen, dass die
Internet-Protokolle einfach direkt verwendet werden könnten. Aufgrund des großen Ressourcenbedarfs verbietet sich dies jedoch in den vorgesehenen Anwendungsbereichen mit den dort
verwendeten Feldbussen und der embedded Systemumgebung. Begrenzend wirken auch die
Feldbusse mit ihren kleinen Nutzdatenfeldern, die in einem krassen Mißverhältnis zur Dimensionierung des IP-Protokolls mit seinem bereits 20 Byte großen Header stehen. Ebenfalls wäre
der immense Overhead nicht vertretbar, denn für Steuerapplikationen werden ja üblicherweise
nur Datenpakete mit wenigen Nutzdatenbyte übertragen.
Es muss also eine eigene, geeignete Protokollfamilie entwickelt werden. Diese darf, soll aufgrund der in Kapitel 3.1 geforderten Funktionalitäten sogar, eng verwandt zu TCP/IP sein, jedoch muss sie so definiert werden, dass sie mit möglichst vielen Feldbussen zusammen arbeiten kann. Als Mindestanforderung an die verwendten Feldbusse muss ein Nutzdatenfeld von
mehreren (mindestens 4, sinnvollerweise 8) Byte pro Rahmen gestellt werden. LIN/CAN-artige
Systeme stellen also die Untergrenze dar. Dahingegen schließt sich z. B. AS-Interface mit seiner
spartanischen Auslegung auf 4 Bit Nutzdaten je Kommunikationsrichtung aus.
In der TCP/IP-Welt hat sich die hierarische Protokollfamilie vielfältig bewährt. Daher wird
nun das Konzept entsprechend dem OSI Schichtenmodell weiter verfolgt und im folgenden
Kapitel 4 eine entsprechende Protokollfamilie definiert.
24
KAPITEL 3. KONZEPT DER PROTOKOLLFAMILIE
Kapitel 4
Definition der Protokollfamilie
Aufgrund der Diskussion in Kapitel 3 wird zur Gewährleistung der geforderten Funktionalitäten nun die hierarische Protokollfamilie umgesetzt.
Die Konvergenz der heterogenen Feldbusse geschieht über die OSI Schicht 3. Vier weitverbreitete Bussysteme, LIN, CAN, Bluetooth und IEEE 1394, wurden für die Definition von exemplarischen Anpassungen ausgewählt. Diese Busse decken sehr unterschiedliche Einsatzzwecke
und Eigenschaften ab: nachrichtenbasierte und knotenbasierte Adressierung, sehr kleine und
sehr große Nutzdatenfelder, nieder- und hochbitratige Busse, Master/Slave-Zugriff gegenüber
Arbitrierung gleichberechtigter Knoten, drahtgebundene und ein drahtloses System.
Ein Hilfsprotokoll für die Signalisierung von Netzwerkproblemen, die eigentlichen Transportprotokolle für die Übertragbarkeit, Wiederverwendbarkeit und Interoperabilität von Anwendungssoftware und das Routingprotokoll unter Berücksichtigung von QoS-Parametern sind in
der OSI Schicht 4 angesiedelt.
Die Protokolle werden in Anlehung an die TCP/IP-Protokollfamilie definiert, jedoch im Gegensatz zu dieser mit kleineren, optimierten Headern konzipiert, um einen für die Feldbusse
geringeren Overhead zu erzielen. Dementsprechend wurde die Nomenklatur mit einem führenden „M“ für „Micro“ und in Anlehnung an vergleichbare Internet-Protokolle gewählt, also z. B.
MIP (Micro Internet Protocol), MUDP (Micro User Datagram Protocol) und MTCP (Micro
Transmission Control Protocol).
Die gemeinsamen Designrichtlinien der Protokollfamilie sind wie folgt:
• Die Protokolle erhalten keinerlei eigene Header- oder Nutzdaten-Prüfsummen, um bereits
von vorne herein einen unnötigen Overhead zu vermeiden. Die darunterliegenden Netze treffen bereits ausreichende Maßnahmen für die Datenintegrität. So genügen z. B. die
Prüfsumme bei LIN, der Cyclic Redundancy Check (CRC) bei CAN, die Forward Error
Correction (FEC) und/oder der CRC bei Bluetooth und der CRC bei IEEE 1394 schon den
hinlänglichen Anforderungen.
Eigene Prüfsummen hätten zwar theoretisch den Vorteil, dass z. B. von Routern verfälschte
Datagramme als fehlerhaft vom Empfänger erkannt werden. Jedoch bedeutet eine Verfälschung des Datagramms durch einen Knoten, dass ein ernster, nicht hinnehmbarer Hardwaredefekt (beispielsweise Übertragungsfehler zwischen Mikroprozessor, Speicher und Peripherie) vorliegt, der für einen verlässlichen Betrieb grundsätzlich nicht auftreten darf.
25
26
KAPITEL 4. DEFINITION DER PROTOKOLLFAMILIE
• Die Protokollfelder in den Headern werden möglichst so angeordnet, dass sie auf BytePositionen ausgerichtet (Byte aligned) sind. Dies ermöglicht eine effektive Verarbeitung
in den Mikroprozessoren. An einigen Stellen wird zugunsten einer platzsparenden Anordnung der Protokollfelder auf die Byte-Anordnung verzichtet und dadurch der Verminderung des Overheads Vorrang gewährt.
• Zur Vermeidung von Redundanz besitzen die Schicht 4 Protokolle kein eigenes Feld zur
Angabe der Nutzdatenlänge. Das Feld für die Längenangabe im Schicht 3 Protokoll ist
ausreichend. Jedoch muss beachtet werden, dass der Schicht 4 Header hierbei immer einberechnet werden muss.
4.1
Micro Internet Protocol
Das Micro Internet Protocol (MIP) ist das Schicht 3 Protokoll (Vermittlungsschicht) der Protokollfamilie. Es wurde in Anlehung an RFC 791: Internet Protocol (IP) [Pos81a] konzipiert.
MIP ist die Konvergenzschicht zur Anpassung an die heterogenen Netze mit ihren unterschiedlichen Adressierungsschemen und Nutzdatengrößen. Für die darüberliegende Schicht stellt MIP
ein Datagramm mit einem einheitlichen systemweiten Adressierungsschema bereit. Außerdem
gehört zu MIP die Fähigkeit zur Fragmentierung, also der Aufteilung eines Datenpaketes auf
mehrere Datenrahmen der darunterliegenden Schicht, falls das Paket die Nutzdatenkapazität des
genutzten Bussystems überschreitet. Die Fragmentierung wird im Bedarfsfall vom Schnittstellenmodul zur Anpassung an einen bestimmten Feldbus übernommen.
MIP nutzt verbindungslose Datagramme, keine Punkt-zu-Punkt-Verbindungen oder virtuellen
Verbindungen. MIP bietet keine gesicherte Kommunikation oder Mechanismen für erneute
Übertragung (Retransmission), die Pakete werden vom Empfänger nicht bestätigt (kein Acknowledgement). Entsprechend den allgemeinen Designrichtlinien aus Kapitel 4 existieren keine
eigenen Prüfsummen für Header oder Daten, da die Datenintegrität durch die Sicherungsschicht
der zugrundeliegenden Feldbusse gewährleistet wird. MIP selbst unterstützt keine Flußkontrolle, diese Funktion steht nur optional mit dem Pakettyp „Source Quench“ des Hilfsprotokolls
MICMP (Kapitel 4.2) zur Verfügung.
Als Adressierungsschema nutzt MIP Knotenadressen mit 16 Bit, welche in einen 8 Bit Netzteil und einen 8 Bit Hostteil aufgeteilt werden. Unter Berücksichtigung reservierter Adressen
ergeben sich dadurch max. 254 Subnetze mit jeweils max. 254 Knoten. Dies reicht für unsere
anvisierten Anwendungsbereiche aus und bietet noch genügend Reserven:
• Die LIN Spezifikation [LIN03] besagt, dass aufgrund der physikalischen Schnittstelle ein
Bus nicht mehr als 16 Knoten haben soll. Die theoretische Grenze bei LIN besteht aufgrund der 6 Bit großen Identifier. Die Werte von 0 bis 59 können für den normalen Betrieb
(sogenannte signal-carrying frames) genutzt werden. In Folge dessen könnten somit also
maximal 60 Knoten angesprochen werden.
• Bei CAN gibt es eine eher theoretische Begrenzung auf 211 und 229 Knoten durch die
logische Adressierung und die verlustlose Arbitrierung, weil zwei Knoten nicht denselben
Identifier verwenden dürfen [BOS91]. In der Praxis wirkt die physikalische Schnittstelle
4.1. MICRO INTERNET PROTOCOL
27
begrenzend, das ISO 11898 [ISO03] High Speed Interface erlaubt je nach eingesetztem
Transceiver maximal 32 Knoten [Law94], bzw. mindestens 110 Knoten werden garantiert
[PCA00].
• Viele Industriebussysteme erlauben 32 oder 64 Teilnehmer pro physikalischem Segment,
bzw. 128 oder 256 logisch adressierbare Teilnehmer [Law94]. Bei PROFIBUS sind z. B.
pro Segment maximal 32 Teilnehmer, bei Einsatz von Repeatern maximal 126 Teilnehmer
erlaubt [Pop00].
• Bei IEEE 1394 sind maximal 63 Knoten pro Bus möglich [IEE95, IEE98, IEE01b].
Durch die zum Internet Protokoll vergleichbare Struktur der MIP Adresse wird der Übergang
in die Standard-Internet-Welt für entsprechende Gateways erleichtert. Die Domäne der Protokollfamilie kann wie ein Klasse B Subnetz aus Sicht von IP betrachtet werden.
Für das Nutzdatenfeld von MIP sind maximal 255 Byte vorgesehen. Dies stellt einen guten
Kompromiss für die Forderungen aus Kapitel 3.1 nach wenigen Byte im Normalbetrieb und
zeitweilig größeren Datenblöcken zur Softwareaktualisierung von Steuergeräten dar. Außerdem orientiert sich diese Größe an der Dimensionierung von Feldbussen, wie z. B. PROFIBUS
[DIN91, EN96, IEC03a, IEC03b, Pop00] oder LON.
Abbildung 4.1 zeigt den Aufbau eines MIP Datagramms. Die einzelnen Protokollfelder werden
anschließend erläutert.
Ver
ToS
TTL
Protocol
Source Address (SA)
Destination Address (DA)
Data Length
Data
Abbildung 4.1: MIP Datagramm
Version (Ver)
In diesem Feld wird die verwendete Version des MIP Protokolls angegeben. Für die hier vorgestellte Definition gilt Ver = 1.
Bei späteren Änderungen oder Verbesserungen wird die Versionsnummer inkrementiert. Damit
können verschiedene Varianten im selben System verwendet und voneinander unterschieden
werden.
Type of Service (ToS)
Der Type of Service dient den Applikationen zur Angabe des geforderten Quality of Service
28
KAPITEL 4. DEFINITION DER PROTOKOLLFAMILIE
(QoS). Ein kleinerer Zahlenwert bedeutet eine höhere Qualitätstufe, ansonsten wird die genaue
Bedeutung des ToS vom Systembetreuer festgelegt.
Der Wertebereich ist 0x00Hex bis 0x1FHex .
Time To Live (TTL)
Time To Live enthält die Angabe der maximalen Anzahl an Weiterleitungen. Passiert eine Nachricht einen Router, so wird der Wert dekrementiert. Ist TTL = 0, dann muss die Nachricht gelöscht und nicht mehr weiter behandelt werden. Dadurch kann bei einem falsch konfigurierten
System vermieden werden, dass Nachrichten unendlich lange im Netz vorhanden bleiben und
Ressourcen belegen.
Der Wertebereich ist 0x00Hex bis 0x1FHex .
Protocol
Mit Hilfe des Feldes Protocol kann das erhaltene MIP Datagramm unterschiedlichen höheren
Protokollen zugeordnet werden. Es wurden dabei folgende Typen deklariert (Tabelle 4.1).
0x1Hex
0x2Hex
0x3Hex
0x4Hex
Micro Internet Control Message Protocol (MICMP)
Micro User Datagram Protocol (MUDP)
Micro Transmission Control Protocol (MTCP)
Micro Open Shortest Path First (MOSPF)
Tabelle 4.1: MIP Protocol
Destination Address (DA)
Die Destination Address enthält die MIP Empfängeradresse. Der Wertebereich ist 0.0 bis
255.255. Das Subnetz 0 und die Hostadresse 0 ist reserviert. Die Adresse x.255 stellt einen
Broadcast im Subnetz x dar, die Adresse 255.255 einen Broadcast im lokalen Netz.
Source Address (SA)
Die Source Address enthält die MIP Absenderadresse. Anwendung und Wertebereich ist entsprechend der DA.
Data Length
Das Feld Data Length enthält die Angabe über die Anzahl von Nutzdatenbyte im MIP Datagramm.
Der Wertebereich ist 0x00Hex bis 0xF FHex .
Data
Das Feld Data enthält die Nutzdaten. Entsprechend Data Length sind zwischen 0 und 255 Byte
erlaubt.
4.1. MICRO INTERNET PROTOCOL
4.1.1
29
Schnittstelle zu LIN
Local Interconnect Network (LIN) [LIN03] arbeitet mit einem Master/Slave-Buszugriff bei dem
nicht jeder Knoten selbständig auf den Bus zugreifen kann, sondern vom Master angefragt werden muss. Der angesprochene Knoten sendet anschließend sein Datenpaket als Broadcast, so
dass alle Teilnehmer die Information empfangen können. Auf diese Weise können beliebige
Knoten direkt miteinander kommunizieren.
Durch die maximale Datenrate von 20 kBit/s und der Abhängigkeit vom Master eignet sich
LIN jedoch nicht als Backbone-Netzwerk, sondern empfiehlt sich für die Anbindung von Blätterknoten an das System. Nicht zwingend, aber sinnvoll ist, dass der Master die Funktion des
Standardrouters (sogenanntes Default Gateway) für das Subnetz übernimmt und die Slaves die
Blätterknoten sind.
Der Aufbau eines LIN 2.0 Frame ohne Sendepause, Synchronisationsfeld und Leerräume wird
in Abbildung 4.2 gezeigt. Der Protected Identifier wird ausschließlich vom Master gesendet,
Data und Checksum werden vom angesprochenen Knoten, dazu zählt auch der Master selbst,
gesendet.
Protected Identifier
Identifier + Parity
6 + 2 Bit
Data
Checksum
1 .. 8 Byte
1 Byte
Abbildung 4.2: LIN Datenrahmen [LIN03]
Die LIN Spezifikation [LIN03] erlaubt es dem Systembetreuer, verschiedene Strategien zur
Abfrage der Knoten zu verfolgen und damit Einfluß auf das Ansprechverhalten des LIN Subsystems zu nehmen. Mit unbedingten Datenrahmen (unconditional frames) werden die Knoten
zyklisch vom Master aufgerufen. Mit ereignisgesteuerten Datenrahmen (event-triggered frames) kann eine Gruppe von Knoten angesprochen werden, wobei aber nur der oder die Knoten
antworten, die Datenrahmen versenden wollen. Unregelmäßige Datenrahmen (sporadic frames)
erlauben es dem Master, dass er bestimmte Knoten, die Datenrahmen versenden wollen, außerhalb des deterministischen Zyklus aufrufen kann.
Anpassen des Adressierungsschemas
Um zusätzlichen Overhead durch ein Protokoll zur Auflösung von Schicht 3 Adressen in
Schicht 2 Adressen zu vermeiden (vgl. z. B. RFC 826: An Ethernet Address Resolution Protocol
[Plu82]) erfolgt die Zuordnung der MIP Adresse auf den LIN Identifier starr. Für unbedingte
und unregelmäßige Datenrahmen werden hierzu die unteren 6 Bit der MIP Source Address als
LIN Identifier verwendet. Als Folge hiervon und in Kombination mit Beschränkungen der LIN
Spezifikation [LIN03] sind in einem LIN Subnetz damit theoretisch nur die Hostadressen von
1 bis 59 erlaubt, was aber hinnehmbar ist.
Da ein LIN Bus aufgrund der physikalischen Schnittstelle nicht mehr als 16 Knoten haben soll
[LIN03], sind niemals alle verfügbaren Werte des Identifiers mit Hostadressen belegt. Dies eröffnet dem Systembetreuer die Möglichkeit, die ungenutzten Identifier für die Verwendung mit
ereignisgesteuerten Datenrahmen als Gruppenadressen zu definieren.
30
KAPITEL 4. DEFINITION DER PROTOKOLLFAMILIE
Zur Übersicht wird die Verwendung des LIN Protected Identifiers in Abbildung 4.3 gezeigt.
LIN SA
Par
Abbildung 4.3: Verwendung des Protected Identifier
LIN Source Address (LIN SA)
Die LIN Source Address enthält die Absenderadresse des angefragten LIN Knotens bei der
Verwendung unbedingter oder unregelmäßiger Datenrahmen bzw. die Gruppenadresse bei der
Verwendung ereignisgesteuerter Datenrahmen.
Der Wertebereich ist 0x00Hex bis 0x3FHex . Die Adresse 0x00Hex ist reserviert. Die Adressen
0x3CHex bis 0x3FHex sind bereits von der LIN Spezifikation [LIN03] reserviert.
Parity (Par)
Der Paritätswert des Protected Identifiers berechnet sich entsprechend der LIN Spezifikation
[LIN03].
Fragmentierung
Beim Vergleich der Größen von einem MIP Datagramm mit einem LIN Datenrahmen wird offensichtlich, dass vor der Übergabe an die LIN Sicherungsschicht fragmentiert werden muss.
Um die MIP Datagramme aufzuteilen und im Empfänger wieder in der richtigen Reihenfolge
zusammenfügen zu können, benutzt das Anpassmodul einen eigenen kleinen Header mit dem
Feld Label, welches zusammengehörende Fragmente kennzeichnet, und dem Feld Fragmentnummer, welches die Position eines Fragments kennzeichnet.
Außerdem muss berücksichtigt werden, dass LIN nur Datenrahmen mit einer festen Größe erlaubt, die vorab vom Systembetreuer festgelegt werden muss. Vereinbarungsgemäß werden vom
Anpassmodul immer Datenrahmen mit den maximal möglichen 8 Byte Nutzdaten verwendet.
Deshalb muss in den Header des Anpassmoduls noch zusätzlich die Information über die Anzahl der transportierten Nutzdaten pro Datenrahmen eingefügt werden. Für unbedingte und unregelmäßige Datenrahmen stehen 8 Nutzdatenbyte zur Verfügung, somit können aufgrund des
Headers zur Fragmentierung also maximal 6 Byte eines MIP Fragments transportiert werden.
Für ereignisgesteuerte Datenrahmen stehen nur 7 Nutzdatenbyte zur Verfügung, es können dann
also maximal nur 5 Byte eines MIP Fragments transportiert werden.
Der Inhalt des LIN Feldes Data für unbedingte und unregelmäßige Datenrahmen wird in Abbildung 4.4 und für ereignisgesteuerte Datenrahmen in Abbildung 4.5 gezeigt. Anschließend
erfolgt die Beschreibung der Protokollfelder.
4.1. MICRO INTERNET PROTOCOL
Label
FragmNum
31
DLen
Data
Abbildung 4.4: LIN Data (unconditional frame, sporadic frame)
ID of unc. frame
Label
FragmNum
DLen
Data
Abbildung 4.5: LIN Data (event-triggered frame)
Protected Identifier of unconditional frame (ID of unc. frame)
Enthält, wie in der LIN Spezifikation [LIN03] festgelegt, den dazugehörigen geschützen Identifier des unbedingten Datenrahmens.
Label
Label enthält eine laufende Nummer, die vom sendenden Knoten im lokalen Subnetz für jedes MIP Datagramm vergeben wird. Im Falle des Überlaufs bei 127 wird die Zählung bei 1
fortgeführt. Damit können die Fragmente wieder einem MIP Datagramm eindeutig zugeordnet
werden.
Der Wert 0 wird für unbedingte Datenrahmen benutzt, falls kein MIP Datagramm zum Versenden ansteht.
Fragment Number (FragmNum)
Mit Hilfe der Fragment Number können die Fragmente eines MIP Datagramms in der richtigen
Reihenfolge vom empfangenden LIN Knoten wieder zusammengesetzt werden (Tabelle 4.2).
Data Length (DLen)
Das Feld Data Length enthält die Angabe über die Anzahl Nutzdatenbyte eines Fragments.
Der Wertebereich für unbedingte und unregelmäßige Datenrahmen ist 0x00Hex bis 0x06Hex , für
ereignisgesteuerte Datenrahmen 0x00Hex bis 0x05Hex .
Data
Das Datenfeld enthält, entsprechend DLen, bei unbedingten und unregelmäßigen Datenrahmenn bis zu 6 Byte bzw. bei ereignisgesteuerten Datenrahmen bis zu 5 Byte des Fragments des
MIP Datagramms. Ungenutzte Byte müssen mit dem Wert 0x00Hex aufgefüllt werden, so dass
der LIN Datenrahmen immer 8 Byte groß ist (sogenanntes Padding).
32
KAPITEL 4. DEFINITION DER PROTOKOLLFAMILIE
0x00Hex
0x01Hex
0x02Hex
..
.
0x2BHex
..
.
0x34Hex
Fragment 0
(Erste 6 bzw. 5 Byte des MIP Datagramms,
enthält ersten Teil des MIP Headers)
Fragment 1
(Nächste 6 bzw. 5 Byte des MIP Datagramms,
enthält zweiten Teil des MIP Headers und MIP Daten)
Fragment 2
(Enthält MIP Daten)
..
.
Fragment 43
(Letztes Fragment bei maximaler Nutzdatenmenge und bei
ausschließlicher Nutzung von unbedingten oder unregelmäßigen Datenrahmen)
..
.
Fragment 52
(Letztes Fragment bei maximaler Nutzdatenmenge und bei
ausschließlicher Nutzung von ereignisgesteuerten Datenrahmen)
Tabelle 4.2: LIN Fragment Number
Aufgrund der Reihenfolge der Datenfelder im MIP Header muss ein Knoten nur das Fragment 0
auswerten, um zu erkennen ob es der Empfänger ist. Trifft dies nicht zu, so können alle darauffolgenden Fragmente anhand des LIN Identifiers und des Labels verworfen werden. Dies spart
Ressources in den nicht adressierten Knoten.
Checksum
Das Feld Checksum enthält, wie in der LIN Spezifikation [LIN03] festgelegt, eine über den LIN
Datenrahmen berechnete Prüfsumme.
4.1.2
Schnittstelle zu CAN
Controller Area Network (CAN) [BOS91] ist ein Bussystem mit gleichberechtigten Knoten. Die
Adressierung geschieht nachrichtenbasiert, d.h. ein Knoten sendet Datenrahmen, die bestimmte
Informationen enthalten, mit einem festgelegten Identifier als Broadcast an alle Teilnehmer. Die
Arbitrierung auf den Bus geschieht priorisiert anhand des Identifiers.
Aufgrund der maximalen Datenrate von 1 MBit/s und dem Multimaster-Betrieb eignet sich
CAN auch als Backbone-Netzwerk für das hier vorgestellte System. Eine Einschränkung stellt
jedoch die maximale Nutzdatenmenge von 8 Byte dar.
Für die Definition dieses Anpassmoduls wurde das Schicht 3 Protokoll nach ISO 15765-2
[ISO04b] und das INTERNET-DRAFT IP over CAN [CF01], welches allerdings nicht als RFC
verabschieded wurde, betrachtet.
Um möglichst viele Headerinformationen, wie z. B. lokale Sender-/Empfängeradressse und die
Informationen für die Fragmentierung, im Identifier unterbringen zu können und dadurch mög-
4.1. MICRO INTERNET PROTOCOL
33
lichst viele Nutzdaten pro Datenrahmen transportieren zu können, verwendet das Anpassmodul
für CAN ausschließlich Extended Frames mit 29 Bit Identifier. Der Aufbau eines CAN 2.0 Extended Frame [BOS91] wird in Abbildung 4.6 gezeigt.
Standard Frames mit 11 Bit Identifier können alle weiterhin für die bisherige nachrichtenbasierte Kommunikation weiterverwendet werden.
Identifier
29 Bit
Data Length Code
3 Bit
Data
0 .. 8 Byte
Checksum
15 Bit
Abbildung 4.6: CAN Extended Datenrahmen [BOS91]
Anpassen des Adressierungsschemas
Um zusätzlichen Overhead durch ein Protokoll zur Auflösung von Schicht 3 Adressen in
Schicht 2 Adressen zu vermeiden (vgl. z. B. RFC 826: An Ethernet Address Resolution Protocol
[Plu82]) erfolgt die Zuordnung der MIP Adressen auf den CAN Identifier starr. Die Umsetzung
der Adressen geschieht wie in INTERNET-DRAFT IP over CAN vorgeschlagen. Hierzu werden jeweils die unteren 8 Bit der MIP Destination Address und Source Address verwendet
und als Teil des CAN Identifiers verwendet. Die Adresse des sendenden Knotens im Identifier
garantiert, dass niemals zwei Knoten denselben Identifier benutzen. Die Adresse des empfangenden Knotens im Identifier ermöglicht eine Entlastung der Knoten, indem die Empfangsfilter
im CAN Controller so konfiguriert werden können, dass nur noch Datenrahmen an die eigene
Adresse und Broadcasts an den Mikroprozessor weitergegeben werden.
Fragmentierung
Die Protokolle ISO 15765-2 und INTERNET-DRAFT IP over CAN realisieren die Fragmentierung von Datagrammen mit einer Gesamtlänge von bis zu 4095 Byte. Jedoch wird für die
Numerierung der Fragmente ein Sequenzzähler verwendet, der nach jeweils 24 = 16 CAN Datenrahmen mit 7 bzw. 8 Byte, entsprechend 112 bzw. 128 Byte, überläuft. Folglich könnte es
vorkommen, dass Fragmente nicht mehr einer eindeutigen Position im Datagramm zugeordnet
werden können.
Eine weitere Einschränkung besteht darin, dass jeweils nur ein fragmentiertes Datagramm pro
Richtung zwischen zwei Knoten übertragen werden kann. Durch das Fehlen eines Feldes zur
Bezeichnung zusammengehörender Fragmente (Label) würden sich ansonsten mehrere Datagramme vermischen können.
Um die zuvor genannten Probleme auszuschließen, wird die Fragmentierung analog zu Kapitel
4.1.1 vorgenommen. Das Anpassmodul benutzt einen eigenen kleinen Header mit dem Feld
Label, welches zusammengehörende Fragmente kennzeichnet, und dem Feld Fragmentnummer,
welches die Position eines Fragments kennzeichnet, um die MIP Datagramme aufzuteilen und
im Empfänger wieder in der richtigen Reihenfolge zusammenfügen zu können.
34
KAPITEL 4. DEFINITION DER PROTOKOLLFAMILIE
Verwendung der Datenfelder
Der Aufbau des CAN Identifiers wird in Abbildung 4.7 gezeigt. Anschließend erfolgt die Beschreibung der Protokollfelder.
Die Anordnung der Felder wurde so gewählt, dass von der Priorisierung des CAN profitiert werden kann. Bit 28, höchstwertigstes Bit (MSB – Most Significant Bit) von Type, wird als erstes
gesendet; Bit 0, niederwertigstes Bit (LSB – Least Significant Bit) von CAN Source Address
(CAN SA), wird als letztes gesendet.
Type
ToS
Label hi
CAN DA
CAN SA
Abbildung 4.7: CAN Identifier
Type
Mit Hilfe des Types kann die erhaltene CAN-Nachricht unterschiedlichen Schicht 3-Protokollen
zugeordnet werden. Für MIP Datagramme wird die Kennung 0b100Bin verwendet. Eine Gruppe
von 29 Bit Identifiern bleibt für die Kompatibilität mit ISO 15765-2 [ISO04b] reserviert. Die
verbleibenden Identifier können mit der bisherigen, im CAN Standard [BOS91] definierten,
nachrichtenbasierten Kommunikation verwendet werden. Tabelle 4.3 gibt einen Überblick über
die deklarierten Typen.
0b000Bin
0b001Bin
0b010Bin
0b011Bin
frei für bisheriges nachrichtenbasiertes CAN
frei für bisheriges nachrichtenbasiertes CAN
frei für bisheriges nachrichtenbasiertes CAN
reserviert für Kompatibilität zu ISO 15765-2
0b100Bin
MIP Datagramm
0b101Bin
0b110Bin
0b111Bin
frei für bisheriges nachrichtenbasiertes CAN
frei für bisheriges nachrichtenbasiertes CAN
frei für bisheriges nachrichtenbasiertes CAN
Tabelle 4.3: CAN Type
Type of Service (ToS)
Der Type of Service wird direkt aus dem MIP Datagramm übernommen, um beim Versenden
des CAN Datenrahmens von der priorisierten Arbitrierung des CAN zu profitieren. Damit ist es
möglich die unterschiedlichen Prioritätsstufen für den Quality of Service (QoS) direkt abzubilden.
Bei CAN Controllern mit mehreren Empfangspuffern und jeweils eigenen Empfangsfiltern kann
ToS auch sogleich zur Einordnung in verschiedene Warteschlangen berücksichtigt werden.
4.1. MICRO INTERNET PROTOCOL
35
Label hi
Label hi enthält die oberen 5 Bit (MSBs) einer laufenden Nummer, die vom sendenden Knoten
im lokalen Subnetz für jedes MIP Datagramm vergeben wird. Die zwei dazugehörigen unteren
Bit (LSBs) befinden sich im Datenteil des CAN Datenrahmens. Im Falle des Überlaufs bei
127 wird die Zählung bei 0 fortgeführt. Damit können die Fragmente eines MIP Datagramms
eindeutig wieder zugeordnet werden.
CAN Destination Address (CAN DA)
Die CAN Destination Address enthält die Empfängeradresse des CAN Knotens.
Der Wertebereich ist 0x00Hex bis 0xF FHex . Die Adresse 0x00Hex ist reserviert, die Adresse
0xF FHex wird für Broadcastnachrichten an alle CAN Knoten benutzt.
CAN Source Address (CAN SA)
Die CAN Source Address enthält die Absenderadresse des CAN Knotens.
Der Wertebereich ist 0x00Hex bis 0xF FHex . Die Adressen 0x00Hex und 0xF FHex sind reserviert.
Der CAN Data Length Code (DLC) wird in Abbildung 4.8 gezeigt.
DLC
Abbildung 4.8: CAN Data Length Code
Data Length Code (DLC)
Das Feld Data Length Code enthält, wie im CAN Standard [BOS91] festgelegt, die Angabe
über die Anzahl der Nutzdatenbyte eines CAN Datenrahmen.
Die Verwendung der CAN Nutzdaten (Data) wird in Abbildung 4.9 gezeigt.
L lo
FragmNum
Data
Abbildung 4.9: CAN Data
36
KAPITEL 4. DEFINITION DER PROTOKOLLFAMILIE
Label lo (L lo)
Label lo enthält die unteren 2 Bit (LSBs) einer laufenden Nummer, die vom sendenden Knoten
im lokalen Subnetz für jedes MIP Datagramm vergeben wird. Die 5 zugehörigen oberen Bit
(MSBs) befinden sich im Identifier des CAN Datenrahmens.
Fragment Number (FragmNum)
Mit Hilfe der Fragment Number können die Fragmente eines MIP Datagramms in der richtigen
Reihenfolge vom empfangenden CAN Knoten wieder zusammengesetzt werden (Tabelle 4.4).
0x00Hex
0x01Hex
..
.
0x25Hex
Fragment 0
(Erste 7 Byte des MIP Datagramms,
entspricht dem MIP Header)
Fragment 1
(Nächste 7 Byte des MIP Datagramms,
enthält MIP Daten)
..
.
Fragment 37
(Letztes Fragment bei maximaler Nutzdatenmenge)
Tabelle 4.4: Fragment Number
Data
Das Datenfeld enthält 1 bis 7 Byte, entsprechend DLC − 1, des MIP Datagramms.
Checksum
Das Feld Checksum enthält, wie im CAN Standard [BOS91] festgelegt, eine über den CAN
Datenrahmen berechnete Cyclic Redundancy Check (CRC) Prüfsumme.
4.1.3
Schnittstelle zu Bluetooth
Bluetooth (BT) [SIG04c] arbeitet mit einem Master/Slave-Zugriff bei dem nicht jeder Knoten
selbständig auf die Luftschnittstelle zugreifen kann. Die Kommunikation findet nur Punkt-zuPunkt zwischen dem Master und einem der maximal sieben aktiven Slaves des Piconetzes anhand der Logical Transport Address (LT_ADDR) statt, bzw. als Broadcast vom Master zu den
aktiven oder passiven Slaves. Eine direkte Kommunikation von Slave zu Slave ist nicht möglich.
Über die Parked Member Address (PM_ADDR) können sich maximal 255 weitere Slaves in
einem Piconetz im geparkten Zustand befinden. Über die vom Hersteller vergebene eindeutige Geräteadresse (BD_ADDR – Bluetooth Device Address) sind theoretisch sogar bis zu 248
geparkte Slaves möglich. Slaves im geparkten Zustand bleiben auf den Master synchronisiert
und können durch eine vereinfachte, insbesondere schnellere, Prozedur wieder in den aktiven
Zustand wechseln, um wieder die aktive Kommunikation mit dem Master aufzunehmen.
4.1. MICRO INTERNET PROTOCOL
37
Aufgrund der Struktur mit einem Master und maximal 7 aktiven Slaves eignet sich Bluetooth
ebenfalls nicht als Backbone-Netzwerk, sondern sollte auf die Anbindung von Blätterknoten
beschränkt werden. Der Master muss die Funktion des Standardrouters (sogenanntes Default
Gateway) für das Subnetz übernehmen, um Datagramme zwischen den Slaves, welche die Blätterknoten sind, weiterzuleiten.
Mehrere Piconetze mit gemeinsamen Geräten können ein Scatternetz bilden. So kann ein Gerät
sowohl Master mit einem eigenen Piconetz sein, als auch Slave in anderen Piconetzen. Oder
ein Gerät verhält sich in mehreren Piconetzen als Slave. Durch den Aufbau eines Scatternetzes
und unter Einbeziehung geparkter Slaves können die Beschränkungen zwar nicht beseitigt, aber
zumindest aufgeweicht werden.
Für den Transport von Datagrammen wird vom Anpassmodul das Bluetooth Personal Area Networking (PAN) Profile [SIG04b] mit dem Bluetooth Network Encapsulation Protocol (BNEP)
over Logical Link Control and Adaptation Protocol (L2CAP) [SIG04a] verwendet (Abbildung
4.10). Die BNEP Datenrahmen dienen Schicht 3 Protokollen, wie z. B. IP, als Ersatz für Ethernet Datenrahmen (IEEE 802.3 [IEE02]). Der original Ethernet Header wird hierzu durch einen
inhaltlich vergleichbaren BNEP Header ersetzt.
BNEP Type
7 Bit
Extension Flag
1 Bit
Payload based on BNEP Type
0 .. 1500/1504 Byte
Abbildung 4.10: BNEP over L2CAP Datenrahmen [SIG04a]
Um unnötigen Overhead beim Transport von MIP Datagrammen zu vermeiden, ist von Vorteil,
dass bei BNEP im Gegensatz zu Ethernet kein Auffüllen des Datenrahmens auf eine Mindestgröße (sogenanntes Padding) vorgeschrieben ist. Im Falle des BNEP_GENERAL_ETHERNET
Pakettyps, welches z. B. einen Ethernetdatenrahmen vollständig ersetzt, würden aber zum
BNEP Datenrahmen immerhin noch weitere 14 Byte Header (6 Byte Zieladresse, 6 Byte Quelladresse, 2 Byte Protokolltyp) hinzukommen. Dies würde wiederum einen erheblichen Overhead
für MIP erzeugen.
Durch Definition eines eigenen BNEP Type aus dem für zukünftige Verwendung reservierten Bereich 0x05Hex bis 0x7EHex kann jedoch ein eigenes Format definiert werden, welches
für MIP mit einem kleineren Header auskommt. Passend zum Protokollpräfix „M“ der Protokollfamilie wird anhand dem ASCII (American Standard Code for Information Interchange)
Zeichensatz der BNEP Type = 0x4DHex verwendet
Anpassen des Adressierungsschemas –
Hilfsprotokoll Micro Address Resolution Protocol for Bluetooth
Im Gegensatz zu den Anpassmodulen für LIN oder CAN (Kapitel 4.1.1 oder 4.1.2) ist eine starre
Zuordnung von MIP Adressen auf das Bluetooth Adressierungsschema nicht möglich. Je nach
Betriebszustand verwendet Bluetooth verschiedene Adressen, um die Teilnehmer eines Piconetzes zu identifizieren. Es werden hierzu die Bluetooth Device Address (BD_ADDR) oder die
vom Master an aktive bzw. passive Slaves vergebene Logical Transport Address (LT_ADDR)
bzw. Parked Member Address (PM_ADDR) verwendet [SIG04c].
38
KAPITEL 4. DEFINITION DER PROTOKOLLFAMILIE
Für dieses Anpassmodul ist deshalb die Definition eines Hilfsprotokolls, das Micro Address Resolution Protocol for Bluetooth (MARP-BT) (vgl. z. B. RFC 826: An Ethernet Address Resolution Protocol [Plu82]), zur Auflösung von Schicht 3 Adressen in Schicht 2 Adressen notwendig.
Die alleinige Mitteilung der MIP Adressen durch MARP-BT ist ausreichend, da die je nach
Betriebszustand notwendigen Bluetooth Adressen (BD_ADDR, LT_ADDR und PM_ADDR)
innerhalb des Bluetooth Protokollstacks im Knoten bereits vorliegen.
Um einen unnötigen Datenverkehr durch MARP-BT zu vermeiden, sollten die Knoten empfangene Informationen der Adressauflösung für einen gewissen Zeitraum zwischenspeichern.
Dazu wird eine MARP-BT Tabelle mit Zuweisungen der MIP Adresse zur BD_ADDR, beim
Master je nach Betriebszustand des Slaves zusätzlich mit der LT_ADDR oder PM_ADDR und
einem Zeitstempel der letzten Aktualisierung bzw. Nutzung festgehalten.
Zwischen Master und einem aktiven Slave wird der gegenseitige Austausch der MIP Adressen
mit dem MARP-BT Datagramm (Abbildung 4.11) in einem BNEP over L2CAP Datenrahmen
(Abbildung 4.10) durchgeführt. Für einen bandbreiteneffizienteren Austausch kann die MARPBT Anfrage (Request) vom Master an alle aktiven oder passiven Slaves mit einem Active Slave
Broadcast (ASB) oder Parked Slave Braodcast (PSB) gestellt werden [SIG04c]. Die MARPBT Antwort (Reply) muss von einem aktiven Slave wiederum in einem BNEP over L2CAP
Datenrahmen erfolgen.
Type Ver OpCode
MIP DA
MIP SA
Abbildung 4.11: MARP-BT Datagramm
Type
Mit Type = 0x0Hex wird angegeben, dass ein MARP-BT Datagramm übertragen werden soll.
Version (Ver)
In diesem Feld wird die verwendete Version des MARP-BT Protokolls angegeben. Für die hier
vorgestellte Definition gilt Ver = 1.
Bei späteren Änderungen oder Verbesserungen wird die Versionsnummer inkrementiert. Damit
können verschiedene Varianten im selben System verwendet und voneinander unterschieden
werden.
OpCode
Der OpCode gibt die Funktion des MARP-BT Datagramms laut Tabelle 4.5 an.
MIP Destination Address (MIP DA)
Bei einer MARP-BT Anfrage per Broadcast wird hier die gesuchte MIP Adresse eingetragen.
Bei einer MARP-BT Antwort wird hier die Adresse des zuvor anfragenden Knotens eingetragen. Ansonsten wird dieses Feld auf 0.0 gesetzt.
4.1. MICRO INTERNET PROTOCOL
0x0Hex
0x1Hex
0x2Hex
39
Info
(Für unaufgeforderte Mitteilung der eigenen MIP Adresse)
Request
(Anfrage der MIP Adresse eines Knotens)
Reply
(Antwort auf eine Anfrage)
Tabelle 4.5: MARP-BT OpCode
MIP Source Address (MIP SA)
In das Feld MIP Source Address wird immer die eigene MIP Adresse des sendenden Knotens
eingetragen.
Transport von MIP Datagrammen
Im BNEP over L2CAP Datenrahmen kann ein komplettes MIP Datagramm ohne Fragmentierung transportiert werden, da Bluetooth notwendige Anpassungen der Datenblockgrößen bereits
selbst vornimmt. Abbildung 4.12 zeigt das Format zur Übertragung eines MIP Datagramms in
einem BNEP over L2CAP Datenrahmen.
Für die Kommunikation zwischen Master und Slaves gelten wiederum dieselben Randbedingungen wie bereits oben beschrieben.
Type
reserved
MIP DA lo
Ver
ToS
TTL
MIP SA
Protocol
MIP DA hi
Data Length
Data
Abbildung 4.12: Format für ein MIP Datagramm per BNEP over L2CAP
Type
Mit Type = 0x1Hex wird angegeben, dass ein MIP Datagramm übertragen werden soll.
Die restlichen Felder entsprechen dem zu transportierenden MIP Datagramm (Kapitel 4.1).
40
4.1.4
KAPITEL 4. DEFINITION DER PROTOKOLLFAMILIE
Schnittstelle zu IEEE 1394
Der IEEE 1394 Serial Bus [IEE95, IEE98, IEE01b] ist ein Ad-hoc-Multimediabussystem mit
gleichberechtigten Knoten. Prinzipiell gibt es IEEE 1394 in zwei verschiedenen Varianten, als
Bus innerhalb eines Gerätes (sogenannte Backplane) oder zur Vernetzung von mehreren Geräten mittels Kabel. Die kabelbasierte Variante ist weit verbreitet und für das Anwendungsszenario dieser Arbeit relevant. Dahingegen hat die Backplane bis heute keinerlei praktische
Bedeutung erlangt.
Das Adressierungsschema von IEEE 1394 entspricht der Control and Status Registers (CSR)
Architektur (IEEE 1212 [IEE91], ISO/IEC 13213 [ISO94]). Die CSR Architektur wird als
64 Bit Adreßraum umgesetzt, wovon 10 Bit für die Busidentifikation (bus_ID), 6 Bit für
die Teilnehmeridentifikation (physical_ID) und die verbleibenden 48 Bit für die Adressierung innerhalb des Knotens (offset) verwendet werden. Die Busidentifikation (bus_ID) zusammen mit der Teilnehmeridentifikation (physical_ID) bilden wiederum die Knotennummer
(node_ID). Außerdem besitzt jeder Knoten eine vom Hersteller vergebene eindeutige Geräteadresse (node_unique_ID).
Das Anpassmodul baut auf die ursprünglichen IEEE 1394 Standards [IEE95, IEE98, IEE01b]
auf, die ausschließlich den „lokalen Bus“, gekennzeichnet durch die bus_ID = 0x3F FHex , verwenden. Die Koppelung mehrer Bussegmente wird erst später mit dem IEEE 1394.1 Standard
[IEE01a] definiert, der bisher noch keine praktische Bedeutung erlangen konnte.
Die Teilnehmeridentifikation (physical_ID) ist nicht fest an einen Knoten gebunden. Sie wird
nach jedem Busreset, z. B. dann wenn ein Teilnehmer hinzukommt oder den Bus verlässt, dynamisch zugewiesen und ändert sich somit fallweise.
Für die Definition dieses Anpassmoduls wurde RFC 2734: IPv4 over IEEE 1394 [Joh99] betrachtet.
Das Anpassmodul versendet Unicast Datenrahmen als Write Request for Data Block (WRDB)
[IEE95]. Abbildung 4.13 zeigt den WRDB Datenrahmen, die Beschreibung der Protokollfelder
folgt anschließend.
Destination ID (destination_ID)
Mit Destination ID wird die Knotennummer des Empfängers angegeben.
Transaction Label (tl)
Der Transaction Label ist ein eindeutiger Kennzeichner für eine offene Transaktion zwischen
den beteiligten Knoten.
Retry Code (rt)
Dieses Feld wird für das Wiederholprotokoll von IEEE 1394 [IEE95] genutzt.
Transaction Code (tcode)
WRDB Datenrahmen haben den Transaction Code tcode = 0x1Hex [IEE95].
4.1. MICRO INTERNET PROTOCOL
41
destination_ID
tl
rt
tcode
pri
source_ID
destination_offset
data_length
extended_tcode
header_CRC
data field
zero pad bytes (if necessary)
data_CRC
Abbildung 4.13: Write Request for Data Block (WRDB) Datenrahmen [IEE95]
Priority (pri)
Die Angabe der Priorität hat nur für die Backplane-Variante eine Bedeutung [IEE95].
Source ID (source_ID)
Mit Source ID wird die Knotennummer des Senders angegeben.
Destination Offset (destination_offset)
Der Offsetwert zur Adressierung im Empfängerknoten entsprechend der CSR Architektur.
Hier erwartet der Knoten, der dieses Anpassmodul umsetzt, den Empfang von MIP Datagrammen.
Data Length (data_length)
Angabe über die Größe des Nutzdatenfeldes.
Extended Transaction Code (extended_tcode)
Dieses Feld hat für einen WRDB Datenrahmen keine Bedeutung und sollte auf extended_tcode
= 0x0000Hex gesetzt werden [IEE95].
Header CRC (header_CRC)
Prüfsumme für den Header, sie berechnet sich nach dem IEEE 1394 Standard [IEE95].
42
KAPITEL 4. DEFINITION DER PROTOKOLLFAMILIE
Data Field (data field)
Das Feld mit den Nutzdaten. Die Anzahl der Byte muss durch vier teilbar sein, ansonsten muss
mit Nullbytes aufgefüllt werden (sogenanntes Padding).
Data CRC (data_CRC)
Prüfsumme für die Nutzdaten, sie berechnet sich nach dem IEEE 1394 Standard [IEE95].
Broadcast Datenrahmen werden vom Anpassmodul als Global Asynchronous Stream Packet
(GASP) [IEE98] versendet. Der GASP Datenrahmen wird in Abbildung 4.14 gezeigt, anschließend erfolgt die Beschreibung der Protokollfelder.
data_length
tag
channel
tcode
sy
header_CRC
source_ID
specifier_ID_hi
specifier_ID_lo
version
data field
zero pad bytes (if necessary)
data_CRC
Abbildung 4.14: Global Asynchronous Stream Packet (GASP) Datenrahmen [IEE98]
Data Length (data_length)
Angabe über die Größe des Nutzdatenfeldes.
Tag (tag)
Der GASP Datenrahmen wird durch tag = 0x3Hex gekennzeichnet.
Channel (channel)
Aus dem Register BROADCAST_CHANNEL kann die zu verwendende Kanalnummer entnommen werden.
Der aktive Isochronous Resource Manager (IRM) Knoten muss dazu an der Basisadresse
4.1. MICRO INTERNET PROTOCOL
43
0xF F F F F 000 0000Hex mit Offset 224Hex .. 228Hex das Register CHANNELS_AVAILABLE
[IEE95] und mit Offset 234Hex das Register BROADCAST_CHANNEL [IEE98] ablegen.
Standardmäßig ist Kanal 31 für das Versenden von Asynchronous Stream Packets reserviert
[IEE98].
Transaction Code (tcode)
Der GASP Datenrahmen zählt zu den sogenannten Stream Packets, diese haben den Transaction
Code tcode = 0xAHex [IEE98].
Synchronization Code (sy)
Ein applikationsabhängiges Steuerfeld zum Setzen von Synchronisationspunkten im Datenstrom. Dieses Feld ist für die zukünftige Standardisierung reserviert, es sollte deshalb auf sy
= 0x0Hex gesetzt werden [IEE98].
Header CRC (header_CRC)
Prüfsumme für den Header, sie berechnet sich nach dem IEEE 1394 Standard [IEE95].
Source ID (source_ID)
Mit Source ID wird die Knotennummer des Senders angegeben.
Specifier ID (specifier_ID_hi und specifier_ID_lo)
Hier muss ein Organizationally Unique Identifier (OUI), eine Herstelleridentifikationsnummer,
die bei der IEEE Registration Authority (IEEE RA)1 beantragt werden muss, eingetragen werden.
Für diese Arbeit wurde die specifier_ID = 0x00 60 37Hex der Firma Philips Semiconductors2
verwendet, da die ersten Entwicklungsplatinen und integrierten Schaltkreise für die eigene Implementierung von diesem Hersteller stammten.
Version (version)
Die Bedeutung und Verwendung der Versionskennung wird vom Besitzer der Herstelleridentifikationsnummer (specifier_ID) definiert.
Für diese Arbeit wurde die version = 0x4D 49 50Hex benutzt, die anhand dem ASCII (American Standard Code for Information Interchange) Zeichensatz dem Protokollkürzel „M I P“
entspricht.
Data Field (data field)
Das Feld mit den Nutzdaten. Die Anzahl der Byte muss durch vier teilbar sein, ansonsten muss
mit Nullbytes aufgefüllt werden (sogenanntes Padding).
1
2
http://standards.ieee.org/regauth/index.html
http://www.semiconductors.philips.com/
44
KAPITEL 4. DEFINITION DER PROTOKOLLFAMILIE
Data CRC (data_CRC)
Prüfsumme für die Nutzdaten, sie berechnet sich nach dem IEEE 1394 Standard [IEE95].
Anpassen des Adressierungsschemas –
Hilfsprotokoll Micro Address Resolution Protocol for IEEE 1394
Wie bei Bluetooth (Kapitel 4.1.3) ist auch hier keine starre Zuordnung von MIP Adressen auf
das IEEE 1394 Adressierungsschema möglich. Nach jedem Busreset muss zu einer bestimmten
MIP Adresse die aktuell vergebene Knotennummer (node_ID) und für WRDB Datenrahmen
die Adresse innerhalb des Knotens (offset) wieder aufgefunden werden.
Mit dem Hilfsprotokoll Micro Address Resolution Protocol for IEEE 1394 (MARP-1394) (vgl.
z. B. RFC 826: An Ethernet Address Resolution Protocol [Plu82]) wird diese Auflösung von
Schicht 3 Adressen in Schicht 2 Adressen vorgenommen. Die Mitteilung der MIP Adresse und
die Offsetadresse für den Empfang von WRDB Datenrahmen durch MARP-1394 ist ausreichend, da die ansonsten notwendigen Adressinformationen innerhalb des IEEE 1394 Protokollstacks im Knoten bereits vorliegen.
Um einen unnötigen Datenverkehr durch MARP-1394 zu vermeiden, sollten die Knoten empfangene Informationen der Adressauflösung für einen gewissen Zeitraum zwischenspeichern.
Dazu wird eine MARP-1394 Tabelle mit Zuweisungen der MIP Adresse zur node_ID, dem offset und einem Zeitstempel der letzten Aktualisierung bzw. Nutzung festgehalten. Nach einem
Busreset muss der Inhalt der Tabelle logischerweise verworfen werden.
Die Anfrage (Request) wird zweckmäßigerweise als Broadcast mit einem GASP Datenrahmen
(siehe Abbildung 4.14) gestellt. Die Antwort (Reply) erfolgt ebenfalls als Broadcast mit einem
GASP Datenrahmen oder als Unicast mit dem WRDB Datenrahmen. Das MARP-1394 Datagramm sieht wie wie in Abbildung 4.15 gezeigt aus. Die Bedeutung der Protokollfelder wird
anschließend erklärt.
Type
OpCode
Version
MIP DA
MIP SA
Sender Unicast Offset
Abbildung 4.15: MARP-1394 Datagramm
Type
Mit Type = 0x0Hex wird angegeben, dass ein MARP-1394 Datagramm übertragen werden soll.
4.1. MICRO INTERNET PROTOCOL
45
Version
In diesem Feld wird die verwendete Version des MARP-1394 Protokolls angegeben. Für die
hier vorgestellte Definition gilt Version = 1.
Bei späteren Änderungen oder Verbesserungen wird die Versionsnummer inkrementiert. Damit
können verschiedene Varianten im selben System verwendet und voneinander unterschieden
werden.
OpCode
Der OpCode gibt die Funktion des MARP-1394 Datagramms laut Tabelle 4.6 an.
0x01Hex
0x02Hex
Request
(Anfrage nach einer MIP Adresse)
Reply
(Antwort auf eine Anfrage)
Tabelle 4.6: MARP-1394 OpCode
MIP Destination Address (MIP DA)
Bei einer MARP-1394 Anfrage wird hier die gesuchte MIP Adresse eingetragen. Bei einer
MARP-1394 Antwort wird hier die Adresse des zuvor anfragenden Knotens eingetragen. Ansonsten wird dieses Feld auf 0.0 gesetzt.
MIP Source Address (MIP SA)
In das Feld MIP Source Address wird immer die eigene MIP Adresse des sendenden Knotens
eingetragen.
Sender Unicast Offset
An die duch Sender Unicast Offset bezeichnete Adresse erwartet der sendende Knoten den
Empfang von MARP-1394 und MIP Datagrammen.
Dieser Wert wird für das Feld Destination Offset (destination_offset) des WRDB Datenrahmens
benötigt.
Transport von MIP Datagrammen
Da nur die kabelbasierten Variante von IEEE 1394 benutzt wird, beträgt die Basisrate S100,
entsprechend 98,304 MBit/s. Bei der Basisrate ist bereits eine maximale Nutzdatengröße von
512 Byte erlaubt. Die Nutzdatengröße skaliert bei höheren Datenraten entsprechend. Somit
muss das Anpassmodul keine Fragmentierung vornehmen.
46
KAPITEL 4. DEFINITION DER PROTOKOLLFAMILIE
Ein MIP Datagramm wird mit dem Protokollrahmen laut Abbildung 4.16 und je nach Zieladresse als Unicast in einem WRDB Datenrahmen oder als Broadcast in einem GASP Datenrahmen
übertragen.
Type
reserved Ver
MIP DA lo
ToS
TTL
Protocol
MIP SA
MIP DA hi
Data Length
Data
Abbildung 4.16: Format für ein MIP Datagramm per IEEE 1394
Type
Mit Type = 0x1Hex wird angegeben, dass ein MIP Datagramm übertragen werden soll.
Die restlichen Felder entsprechen dem zu transportierenden MIP Datagramm (Kapitel 4.1).
4.2
Micro Internet Control Message Protocol
Das Micro Internet Control Message Protocol (MICMP) ist ein Schicht 4 Protokoll (Transportschicht), das MIP eng begleitet und in seiner Funktion unterstützt. Es wurde in Anlehnung an
RFC 792: Internet Control Message Protocol [Pos81b] konzipiert.
MICMP dient hauptsächlich für die Signalisierung von Fehlern bei der Verarbeitung von MIP
Datagrammen und hilft bei der Netzwerkdiagnose. Weiterhin können langsame Empfangsknoten mit Hilfe von MICMP Einfluß auf die Paketsenderate schnellerer Knoten nehmen. Für
bestimmte Ziele kann mit MICMP einem Knoten ein empfohlener Router mitgeteilt werden.
MICMP bietet jedoch keinerlei Funktionen für MIP, um eine gesicherte Kommunikation zu
ermöglichen oder um Mechanismen für erneute Übertragung (Retransmission) hinzuzufügen.
Die MICMP Datenpakete beschränken sich nur auf die Rückmeldung von Information an die
Knoten. MICMP muss in jedem Knoten, der MIP verwendet, implementiert sein.
MICMP versendet seine Informationen verbindungslos und ungesichert. Das MICMP Datenpaket in Abbildung 4.17 wird im Nutzdatenfeld eines MIP Datagramms transportiert.
Um das massenhafte Versenden von Datenpaketen und damit eine mögliche Überlastung des
Netzwerks zu verhindern, werden durch MICMP Datenpakete verursachte Fehler nicht signalisiert.
4.2. MICRO INTERNET CONTROL MESSAGE PROTOCOL
Type
47
Code
Data
Abbildung 4.17: MICMP Datenpaket
Type
Mit diesem Feld wird die Funktion des MICMP Paketes laut Tabelle 4.7 angegeben.
0x0Hex
0x1Hex
0x2Hex
0x3Hex
0x4Hex
0x5Hex
Echo Test
(Testpaket)
Source Quench
(Sendeknoten zu niedrigerer Paketrate auffordern)
Redirect
(Mitteilung eines geeigneteren Routers an den Sendeknoten)
TTL Exceeded
(Lebensdauer abgelaufen)
Destination Unreachable
(Ziel nicht erreichbar)
Parameter Problem
(Allgemeines Problem mit einem Protokollfeld)
Tabelle 4.7: MICMP Type
Code
Code enthält eine Angabe, die in Abhängigkeit von Type interpretiert wird.
Data
Enthält weitere Daten in Abhängigkeit von Type. Es sind maximal 254 Byte erlaubt.
Echo Test
Hiermit kann ein durchgehender Test des kompletten Netzwerkpfades zwischen zwei Endknoten durchgeführt werden. In den Test einbezogen sind jeweils die Netzwerkverbindungen und
der Protokollstapel bis zur Schicht 3 in den Endknoten und den beteiligten Routern.
Als Nebeneffekt kann mit dem Echo Test auch die Latenzzeit des Netzwerkpfades zwischen den
48
KAPITEL 4. DEFINITION DER PROTOKOLLFAMILIE
zwei Endknoten ermittelt werden. Unter Annahme derselben Laufzeit für Hin- und Rückweg
errechnet sich die Latenzzeit als halbe Zeit zwischen dem Absenden des Anfragepaketes und
dem Empfangen des zugehörigen Antwortpaketes.
Geht eine Echo Test Anfrage bei einem Knoten ein, so muss diese vereinbarungsgemäß beantwortet werden. Das Feld Code (Tabelle 4.8) gibt an, ob es sich um ein Datenpaket zur Anfrage
oder zur Antwort handelt.
0x0Hex
0x1Hex
Request (Anfrage)
Reply (Antwort)
Tabelle 4.8: Code bei Echo Test
Das Feld Data besteht aus den Angaben laut Abbildung 4.18.
Identifier
1 Byte
Test Pattern
0 .. 253 Byte
Abbildung 4.18: Data bei Echo Test
Identifier
Eine Identifikationsnummer, um das Anfragepaket und das dazu gehörende Antwortpaket einander zuordnen zu können.
Test Pattern
Ein optionales Feld, das bei der Anfrage beliebige Testdaten aufnimmt. Der durch den Echo Test
angesprochene Knoten sendet im Antwortpaket die Daten aus dem Anfragepaket unverändert
zurück.
Source Quench
Erlaubt die Mitteilung von einem Router oder dem Zielknoten an den Sendeknoten, dass ein Datagramm aufgrund unzureichender Ressourcen, z. B. wegen eines vollen Eingangspuffers oder
Überlastung des Mikroprozessors, verworfen werden mußte. In Folge sollte der Sendeknoten
seine Datagramme mit soweit erniedrigter Paketrate verschicken bis diese Meldung nicht mehr
auftritt.
Das Feld Code ist ungenutzt, deshalb ist es immer 0x0Hex .
Das Feld Data enthält den MIP Header und Schicht 4 Header des ursprünglichen Paketes, um
dem Sendeknoten eine Zuordnung zum ursprünglichen Paket zu ermöglichen.
4.2. MICRO INTERNET CONTROL MESSAGE PROTOCOL
49
Redirect
Fordert den Knoten auf, dass Datagramme, die dem durch Code (Tabelle 4.9) bezeichneten
ToS oder Ziel entsprechen, an den empfohlenen Router gesendet werden sollen. Mit dieser
Information kann der durchlaufene Pfad eines Datagramms optimiert werden.
0x0Hex
0x1Hex
0x2Hex
0x3Hex
Network (Netz)
Node (Knoten)
Type of Service and Network (ToS und Netz)
Type of Service and Node (ToS und Knoten)
Tabelle 4.9: Code bei Redirect
Das Feld Data besteht aus den Angaben laut Abbildung 4.19.
Redirect Address
2 Byte
Original Headers
max. 252 Byte
(abhängig vom ursprünglichen Paket)
Abbildung 4.19: Data bei Redirect
Redirect Address
MIP Adresse des empfohlenen Router. An diesen Knoten sollten die Datagramme zukünftig
gesendet werden.
Original Headers
Enthält zur Zuordnung den MIP Header und den Schicht 4 Header des ursprünglichen Paketes.
TTL Exceeded
Informiert einen Knoten darüber, dass sein Datagramm zuviele Router passiert hat, das Feld
TTL hat den Wert 0 erreicht, und deshalb das Datagramm verworfen wurde (vgl. Kapitel 4.1).
Das Feld Code ist ungenutzt, deshalb ist es immer 0x0Hex .
Das Feld Data enthält zur Zuordnung den MIP Header und den Schicht 4 Header des ursprünglichen Paketes.
50
KAPITEL 4. DEFINITION DER PROTOKOLLFAMILIE
Destination Unreachable
Dem Sendeknoten wird hiermit mitgeteilt, dass das Datenpaket den adressierten Knoten nicht
erreicht hat oder der Empfangsknoten das Paket intern nicht weitergeben konnte.
Mit dem Code laut Tabelle 4.10 wird dem Sendeknoten mitgeteilt an welcher Stelle das Datenpaket nicht zugestellt werden konnte.
0x0Hex
0x1Hex
0x2Hex
0x3Hex
Network (Netz)
Node (Knoten)
Protocol (Protokoll)
Port (Port)
Tabelle 4.10: Code bei Destination Unreachable
Das Feld Data enthält zur Zuordnung den MIP Header und den Schicht 4 Header des ursprünglichen Paketes.
Parameter Problem
Ein allgemeines Problem, wie z. B. ein undefinierter Wert in einem Protokollfeld, ist erkannt
worden.
Der Code laut Tabelle 4.11 gibt an in welchem Protokollfeld der Header der Fehler aufgetreten
ist.
0x0Hex
0x1Hex
0x2Hex
0x3Hex
0x4Hex
0x5Hex
0x6Hex
0x7Hex
..
.
MIP Header: Ver
MIP Header: ToS
MIP Header: TTL
MIP Header: Protocol
MIP Header: MIP DA
MIP Header: MIP SA
Erstes Feld des Schicht 4 Protokoll Headers
Zweites Feld des Schicht 4 Protokoll Headers
..
.
Tabelle 4.11: Code bei Parameter Problem
Das Feld Data enthält zur Zuordnung den MIP Header und den Schicht 4 Header des ursprünglichen Paketes.
4.3 Micro User Datagram Protocol
Das Micro User Datagram Protocol (MUDP) ist ein Schicht 4 Protokoll, das den verbindungslosen unbestätigten Transportdienst für die Protokollfamilie bereitstellt. Es wurde in Anlehnung
an RFC 768: User Datagram Protocol [Pos80] konzipiert.
4.3. MICRO USER DATAGRAM PROTOCOL
51
MUDP transportiert Datenpakete mit einem möglichst geringen Aufwand. Das Protokoll besitzt keine Wiederholmechanismen, um verlorengegangene Pakete erneut zu versenden. Die
Reihenfolge der Datenpakete wird nicht garantiert. Folglich bleibt es also gegebenenfalls der
Anwendung überlassen, selbst für geeignete (Sicherungs-)Maßnahmen zu sorgen. Eine Möglichkeit besteht z. B. darin, dass in ein Datenpaket mit Sensordaten ein Zeitstempel eingefügt
wird [RSG04].
Entsprechend den allgemeinen Designrichtlinien aus Kapitel 4 besitzt MUDP keine eigene Prüfsumme, da die Datenintegrität durch die Schicht 2 sichergestellt wird.
Zur Adressierung der verschiedenen Applikationen im Knoten stellt MUDP eine Portnummer
mit 4 Bit bereit. Damit können maximal 16 verschiedene Anwendungen gleichzeitig den unbestätigten Transportdienst nutzen. Für die anvisierten Einsatzbereiche in Steuergeräten, Sensoren
und Aktoren, die nur wenige dedizierte Aufgaben erfüllen müssen, sind somit ausreichend Reserven vorhanden.
Die Verwendung der Portnummern bleibt dem Systembetreuer frei überlassen, jedoch wird folgendes Vorgehen empfohlen:
• Der Port 0 sollte für Sonderaufgaben reserviert werden. Damit steht z. B. eine bekannte
Portnummer in einem System zur Verfügung über die Informationen zu Hersteller, Gerätetyp, Verwendung der restlichen Portnummern, etc. abgerufen werden kann (sogenanntes
Service Discovery Protocol – SDP).
• Auf die Ports 1 .. x registrieren sich bekannte oder über SDP abfragbare Applikationen.
Hierüber können Datenpakete an bestimmte Dienste des Knotens geschickt werden.
• Die Ports x+1 .. 15 werden dynamisch von Applikationen, die bisher noch keinen Port belegt haben, für ausgehende Verbindungen benutzt.
Die Festlegung von x, also die Aufeilung zwischen bekannten und dynamisch genutzten Portnummern, kann unabhängig für jeden Knoten erfolgen.
Die Abbildung 4.20 zeigt das MUDP Datenpaket, welches im Nutzdatenfeld eines MIP Datagramms transportiert wird. Die Beschreibung der einzelnen Protokollfelder erfolgt wieder
anschließend.
D Port
S Port
Data
Abbildung 4.20: MUDP Datenpaket
Destination Port (D Port)
Diese Portnummer adressiert eine bestimmte registrierte Applikation im empfangenden Knoten.
Der Wertebereich ist 0x0Hex bis 0xFHex .
52
KAPITEL 4. DEFINITION DER PROTOKOLLFAMILIE
Source Port (S Port)
Hier sollte eine Portnummer von der Applikation im Sendeknoten angegeben werden. Damit
wird eine eindeutige Zuordnung auf die Quelle ermöglicht, außerdem kann diese Portnummer
sogleich für Antwortpakete des Empfangsknoten genutzt werden.
Wenn diese Funktion nicht genutzt werden soll, dann muss S Port = 0 sein.
Data
Hier sind die Nutzdaten für die Applikation enthalten. In Schritten von einem Byte sind maximal 254 Byte zulässig.
Im MUDP Header ist entsprechend den allgemeinen Designrichtlinien aus Kapitel 4 keine Längenangabe für das Feld Data vorgesehen, da zum MIP Header bereits ein Feld für die Zahl der
Nutzdatenbyte aus der Schicht 4 gehört. Bei der Angabe der MIP Data Length (Kapitel 4.1)
muss beachtet werden, dass der MUDP Header mit einem Byte berücksichtigt werden muss.
4.4
Micro Transmission Control Protocol
Das Micro Transmission Control Protocol (MTCP) ist ein Schicht 4 Protokoll, das den verbindungsorientierten bestätigten und transaktionsbasierten Transportdienst für die Protokollfamilie bereitstellt. Es wurde in Anlehnung an RFC 793: Transmission Control Protocol [Pos81c],
RFC 1379: Extending TCP for Transactions – Concepts [Bra92] und RFC 1644: T/TCP – TCP
Extensions for Transactions [Bra94] konzipiert.
MTCP stellt sicher, dass versendete Datenpakete den Empfänger erreichen und beim Transport
eventuell auftretende Fehler aufgelöst werden. Das Protokoll besitzt Mechanismen, um verlorengegangene Pakete erneut zu versenden, doppelte Pakete auszusortieren, sowie die korrekte
Reihenfolge der Datenpakete zu garantieren.
Um den Header von MTCP möglichst klein zu halten und mit einer wesentlich vereinfachten
Flußkontrolle arbeiten zu können, wurde im Vergleich zum Vorbild TCP bewusst auf „Urgent-“
und „Push-“Funktionen verzichtet.
MTCP besitzt entsprechend den allgemeinen Designrichtlinien aus Kapitel 4 ebenfalls keine
eigene Prüfsumme, da die Datenintegrität bereits durch die Schicht 2 sichergestellt wird.
MTCP bietet zwei verschiedene Betriebsmodi:
• Die Datenströme werden verbindungsorientiert in drei Phasen – Verbindungsaufbau mit
erstem Datenpaket, bidirektionaler Datentransfer, Verbindungsabbau – transportiert.
In dieser Betriebsart können größere Datenmengen, wie z. B. bei der Softwareaktualisierung von Steuergeräten, gesichert übertragen werden.
• Die Übertragung wird als Transaktion durchgeführt. Dabei wird nur ein Paket mit Nutzdaten gesendet und optional ein Antwortpaket mit Nutzdaten übertragen.
Diese Betriebsart eignet sich für den effektiven, gesicherten Austausch von Datenpaketen,
wie z. B. das ereignisgesteuerte Versenden von Informationen zwischen Steuergeräten.
4.4. MICRO TRANSMISSION CONTROL PROTOCOL
53
Das MTCP Datenpaket besteht, wie Abbildung 4.21 zeigt, aus fünf Protokollfeldern und den
Nutzdaten. Es wird im Nutzdatenfeld eines MIP Datagramms transportiert. Die einzelnen Felder
werden dann anschließend beschrieben.
D Port
S Port
Control
Segment Count
SC.echo
Data
Abbildung 4.21: MTCP Datenpaket
Destination Port (D Port)
Diese Portnummer adressiert eine bestimmte registrierte Applikation im empfangenden Knoten. Die Überlegungen bei MUDP im Kapitel 4.3 zur Verwendung der Ports gelten hier entsprechend.
Der Wertebereich ist 0x0Hex bis 0xFHex .
Source Port (S Port)
Zur eindeutigen Kennzeichnung der Quelle wird hier die Portnummer von der Applikation im
Sendeknoten angegeben. An diese Portnummer werden Antwortpakete des Empfangsknotens
zurückgesendet.
Control
Das Feld Control besteht aus Steuerbits entsprechend der Abbildung 4.22, die zur Signalisierung der verschiedenen Zustände bei der Übertragung dienen. Ein gesetzes Bit bedeutet ein
aktives Signal. In Tabelle 4.12 ist die Bedeutung der Signale aufgeführt.
Bit
Signal
7
unused
6
unused
5
FACK
4
ACK
3
FIN
2
CON
1
WND
0
RST
Abbildung 4.22: Steuerbits im Feld Control
Segment Count (SC)
Jedes Segment wird durch eine fortlaufende Nummer gekennzeichnet, wodurch eine eindeutige
Unterscheidung möglich ist. Dadurch können Wiederholungen erkannt und die richtige Reihenfolge der Segmente beim Empfang wiederhergestellt werden. Eine ungültige Segmentnummer
führt durch das Senden von RST zu einem Abbruch der Verbindung.
Das höchstwertige Bit (MSB – Most Significant Bit) wird nicht für die Darstellung der Segmentnummer verwendet. Es dient als Übertrag (sogenanntes Carry Bit) zur Kennzeichnung
54
KAPITEL 4. DEFINITION DER PROTOKOLLFAMILIE
RESET (RST)
Es ist ein Fehler aufgetreten, die Verbindung wird abgebrochen.
WINDOW (WND)
Dieses Signal bedeutet, dass der Empfangspuffer voll ist.
Es dürfen keine weiteren Daten gesendet werden, bis ein
Segment ohne WND empfangen wird.
CONNECTION (CON)
Es wird eine Anfrage für einen Verbindungsaufbau gestellt.
FINAL (FIN)
Es gibt keine weiteren Daten mehr zu versenden. Die Verbindung kann getrennt werden.
ACKNOWLEDGE (ACK) Dies ist die Bestätigung, dass ein versendetes Segment erfolgreich empfangen wurde.
FINAL ACK (FACK)
Ein Segment mit diesem Signal ist immer das Letzte einer
Verbindung. Es gibt an, dass eine Verbindung ordnungsgemäß beendet wurde.
unused
Dieses Bit wird nicht benutzt, es muss immer auf 0 gesetzt
werden.
Tabelle 4.12: Bedeutung der Signale in Control
eines zyklischen Umlaufs (Wrap around) der Variablen. Es wird automatisch gesetzt, als ob
es Bestandteil der Nummer wäre und gelöscht, sobald die kleinste gespeicherte Nummer größer als 129 ist, was nach Löschen des MSB einer „1“ entspricht. Der zur Verfügung stehende
Wertebereich ist somit 0 .. 127.
Beim Versenden eines ACK oder WND ohne Nutzdaten erfolgt kein Inkrementieren von SC,
da diese Segmente weder zwischengespeichert noch bestätigt werden müssen. Das Gleiche gilt
für das Segment mit dem FACK oder einem RST, da diese jeweils die letzten einer Verbindung
sind.
Segment Count Echo (SC.echo)
SC.echo wird in Zusammenhang mit dem Signal ACK verwendet. Es enthält den Wert von SC
des zu bestätigenden Segments. In Folge dessen gelten für SC.echo dieselben Vereinbarungen
bezüglich Wertebereich und Überlauf wie für SC. Wird ein ACK für gültig befunden, so wird
das dazugehörige Segment aus dem Sendepuffer gelöscht.
Ein ACK ist nur gültig, wenn diese Nummer mit der zuletzt versendeten (SC.save) übereinstimmt. Ist SC.echo < SC.save und in der Liste der empfangenen Nummern nicht mehr enthalten, so wird die Verbindung abgebrochen, da keine Zuordnung des Segments vorgenommen
werden kann.
Data
Hier sind die Nutzdaten enthalten. Es sind maximal 251 Byte zulässig.
4.4. MICRO TRANSMISSION CONTROL PROTOCOL
55
Im MTCP Header ist entsprechend den allgemeinen Designrichtlinien aus Kapitel 4 keine Längenangabe für das Feld Data vorgesehen, da zum MIP Header bereits ein Feld für die Zahl der
Nutzdatenbyte aus der Schicht 4 gehört. Bei der Angabe der MIP Data Length (Kapitel 4.1)
muss beachtet werden, dass der MTCP Header mit vier Byte berücksichtigt werden muss.
Endlicher Zustandsautomat einer Verbindung
Jede Verbindung muss durch einen eigenen endlichen Zustandsautomaten (FSM – Finite State
Machine) beschrieben werden, wobei diese Verbindung durch ihr Socketpaar, also die Kombination von MIP Adressen und Ports der beiden beteiligten Knoten, eindeutig identifizierbar ist.
Der Zustandsautomat muss die Zustände beider Kommunikationspartner berücksichtigen, da
diese nicht unabhängig voneinander agieren. Dabei wird unterschieden, ob es sich jeweils um
den Sender oder Empfänger handelt (Abbildung 4.23 auf Seite 56). Der obere Teil beschreibt
eine Verbindung beginnend mit dem aktiven Aufbau (Sender) und der untere Teil beginnend
mit dem passiven Warten auf eine eingehende Verbindungsanfrage (Empfänger). Bei Zuständen mit demselben Namen handelt es sich auch jeweils nur um einen Zustand, der für eine
übersichtlichere Abbildung getrennt dargestellt wird.
Wird eine Verbindung aktiv geöffnet, so ist der Startzustand Active Open. In diesem wird verweilt, bis das entsprechende ACK empfangen wird. Dadurch kann eine Verbindung in den Zustand Established übergehen, welcher den Normalzustand einer etablierten Verbindung darstellt.
Der andere Startzustand ist Passive Open. Dieser zunächst passive Zustand wird eingenommen, wenn eine Applikation sich für eine Verbindungsanfrage von Außen registriert. Sobald
ein Paket empfangen wurde, wartet die Gegenseite auf ein ACK, was durch den Zustand Req.
for ACK, Start ausgedrückt wird. Wurde ein ACK versendet, so ist die Verbindung etabliert
und befindet sich wiederum im Zustand Established.
Vom Zustand Established gehen alle weiteren Aktionen aus. Treffen Daten ein, so befindet
sich die Verbindung im Zustand Req. for ACK (in der unteren Hälfte dargestellt). Das Versenden von Paketen bewirkt einen Zustandswechsel nach Wait for ACK. Jedes Segment, das
abgesendet wird, bleibt in einem Ausgangspuffer gespeichert bis das entsprechende ACK vom
Empfänger eintrifft. Bleibt dieses Signal aus, so wird nach Ablauf der Paketlaufzeit von Sender zum Empfänger und zurück (sogenannte RTT – Round Trip Time) und einem Zeitzuschlag
(Offset) für die interne Verarbeitung in den beteiligten Knoten das Segment erneut versendet.
Nach dem erstmaligen Senden wird ein Segment noch bis zu dreimal wiederholt, danach wird
die Verbindung abgebrochen.
Die Round Trip Time für einen bestimmten Netzwerkpfad läßt sich mit Hilfe von MICMP
Echo Paketen ermitteln. Die Summe aus RTT und dem Offset für die internen Verarbeitungszeiten kann im Falle eines fehlerfrei arbeitenden Netzwerksystems aus der Latenzzeit zwischen
einem abgesendeten MTCP Datensegment und dem darauf empfangenen ACK Signal abgeschätzt werden.
Beendet wird eine Verbindung entweder durch einen expliziten Befehl der Applikation oder es
erfolgt, um Ressourcen von unnötig offen gehaltenen Verbindungen in den Knoten wieder frei-
56
KAPITEL 4. DEFINITION DER PROTOKOLLFAMILIE
MSL – Maximum Segment Lifetime, Rcv – Receive, Req – Request, Snd – Send
Abbildung 4.23: FSM einer MTCP Verbindung
4.4. MICRO TRANSMISSION CONTROL PROTOCOL
57
zugeben, eine automatische Trennung nach Ablauf des Timeout empty. Diese Zeitüberschreitung geschieht wenn der Sendepuffer leer ist und somit keine Daten mehr zum Versenden anstehen. Vor dem Beenden muss aber sichergestellt werden, dass die Gegenseite ihre Daten noch
versenden kann. Das wird durch die Zustände Rcv-Buffer full und Snd-Buffer full erreicht.
Die Zustände Req. for ACK, End und Wait for ACK, End erfüllen vergleichbare Funktion,
wie die bereits beschriebenen Zustände ohne das Suffix ..., End.
Wird eine Verbindung geschlossen, so befindet sie sich zunächst im Zustand Closing. Daraufhin
wird ein Zeitverzögerung gestartet. Erst nach deren Ablauf ist eine neue Verbindung auf demselben Socketpaar wieder zulässig. Dadurch sollen veraltete Segmente eliminiert werden, die
sich möglicherweise noch im Netz befinden. Die Maximum Segment Lifetime (MSL) bezeichnet die maximale Aufenthaltsdauer eines MTCP Paketes im Netzwerksystem. Die MSL wird
vom Systembetreuer nach eigenem Bedarf, z. B. anhand den verwendeten Feldbussen oder der
Ausdehnung des Netzwerksystems, festgelegt.
Nach Erreichen des Zustands Closed existiert die Verbindung nicht mehr. Aus diesem Zustand
heraus kann eine neue Verbindung entweder aktiv oder passiv aufgebaut werden.
Mehrere Situationen können einen Fehler hervorrufen. Das führt zu einem Übergang in den
Zustand Error und dem sofortigen Abbruch der Verbindung. Beispielhaft sind hier einige Fehlerursachen aufgeführt:
• Die Gesamtzahl zulässiger Verbindungen für den Knoten ist bereits erreicht.
• Die Zahl zulässiger Verbindungen für den angeforderten Port ist erreicht.
• Auch nach dem vierten Senden eines Segmentes ist kein ACK empfangen worden.
• Das empfangene Steuerbit darf im derzeitigen Zustand der FSM nicht auftreten.
4.4.1
Verbindungsorientierte Betriebsart
Verbindungsaufbau
Zum Aufbau einer MTCP Verbindung ist kein Drei-Wege-Handshake nötig (Abbildung 4.24).
Mit der Verbindungsanforderung können gleichzeitig die ersten Daten versendet werden. Der
Aufbau gilt als bestätigt, sobald das erste ACK eintrifft. Ab diesem Zeitpunkt können Daten
bidirektional gesendet und empfangen werden.
Knoten 1 startet die Verbindung, indem er das Signal CON zusammen mit den ersten Daten
sendet. Der Wert für Segment Count wird auf eins und SC.echo auf null gesetzt. Knoten 2
erwidert entweder nur ein ACK mit SC = 0 und SC.echo = 1 (Fall 1). Oder Knoten 2 sendet das
ACK gleichzeitig mit seinem erstes Datenpaket und erhöht SC deshalb auf eins (Fall 2). Der
Erhalt des Signals ACK etabliert die Verbindung.
58
KAPITEL 4. DEFINITION DER PROTOKOLLFAMILIE
Abbildung 4.24: Öffnen einer MTCP Verbindung
Abbildung 4.25: Bidirektionales Senden und Empfangen
Aktive Verbindung
Während eine Verbindung sich im etablierten Zustand befindet, ist ein bidirektionaler Austausch
von Segmenten möglich (Abbildung 4.25).
Die Anzahl der Segmente, die gleichzeitig versendet werden können, richtet sich nach der Größe des Ausgangspuffers, da diese gespeichert werden müssen bis sie durch ein ACK quittiert
werden.
Tritt der Fall ein, dass Segmente ihr Ziel nicht in der richtigen Reihenfolge erreichen, so werden
sie im Eingangspuffer des Empfängers zwischengespeichert. Da diese Segmente angenommen
wurden, muss der Absender eine Bestätigung erhalten. Wenn der Empfangspuffer zu 75% gefüllt ist, wird ein Segment mit WND versendet, um dem anderen Knoten mitzuteilen, dass keine
Daten mehr empfangen werden können.
Die Abbildung 4.26 zeigt ein Beispiel bei dem das erste Segment länger als die darauf folgenden
Segmente unterwegs ist. Die Segmente 2 bis 5 werden im Knoten 2 gepuffert. Dann wird ein
4.4. MICRO TRANSMISSION CONTROL PROTOCOL
59
Abbildung 4.26: Unerwartete Segmentreihenfolge
WND gesendet, um Knoten 1 aufzufordern, das Senden weiterer Daten einzustellen. Mit dem
Erhalt von Segment 1 kann Knoten 2 seinen Speicher leeren und sendet nur ein ACK. Wenn
der Puffer noch nicht gelöscht werden kann, wird mit dem ACK für Segment 1 auch das Signal
WND gesendet. Erst wenn Knoten 1 ein ACK erhält, das kein WND beinhaltet, kann er den
Sendebetrieb wieder aufnehmen.
Beenden einer Verbindung
Das Beenden einer aktiven Verbindung wird in der Abbildung 4.27 gezeigt.
Abbildung 4.27: Beenden einer MTCP Verbindung
Knoten 1 initiiert die Trennung indem er bei seinen letzten Daten das Signal FIN setzt. Wurde
zuvor ein Segment von Knoten 2 erhalten, so ist zusätzlich ein ACK zu setzen.
Im ersten Fall in der Abbildung hat Knoten 2 keine Daten mehr zu versenden und bestätigt
das empfangene Segment mit einem ACK. Darauf wird überprüft, ob es noch Segmente gibt,
für die noch kein ACK erfolgt ist. Stehen keine Bestätigungen aus, so wird das Signal FACK
gesendet, wodurch die Trennung ordnungsgemäß abgeschlossen wird. Das FACK darf auch mit
60
KAPITEL 4. DEFINITION DER PROTOKOLLFAMILIE
dem letzten ausstehenden ACK in ein Segment zusammengefasst werden.
Im zweiten Fall hat Knoten 2 noch Daten zu versenden. Das FACK kann erst dann gesendet
werden, wenn alle von Knoten 2 versendeten Segmente von Knoten 1 quittiert worden sind.
4.4.2
Transaktionsbasierte Betriebsart
Der zeitliche Ablauf einer Transaktion ist vergleichbar mit dem Beenden einer Verbindung.
Lediglich das Signal CON wird für die Verbindungsanforderung im ersten Segment gesetzt.
Die Abbildung 4.28 zeigt den Ablauf.
Abbildung 4.28: Eine MTCP Transaktion
Im ersten Fall ist die Möglichkeit dargestellt, dass eine Verbindung geöffnet wird, um beispielsweise eine Statusmeldung, auf die keine Antwort erfolgt, zu versenden.
Eine aus Anfrage und Antwort bestehende Transaktion wird im zweiten Fall gezeigt.
4.5 Micro Open Shortest Path First
Das Micro Open Shortest Path First (MOSPF) ist ein Schicht 4 Protokoll, das der Protokollfamilie das Routingprotokoll bereitstellt. Es wurde als Link State Routing in Anlehnung an RFC
2328: Open Shortest Path First (OSPF) Version 2 [Moy98] konzipiert.
Das in dieser Arbeit vorgestellte abgegrenzte System befindet sich unter der Kontrolle einer
administrativen Einheit. Für das dynamische Routing in solch einem autonomen System dient
ein Interior Gateway Protocol (IGP) [Com02].
Die bekanntesten verteilten adaptiven Routingverfahren hierfür sind:
• Distance Vector Routing (DV Routing)
• Link State Routing (LS Routing)
Beim DV Routing wird der Weg entsprechend der Entfernung zwischen den Routern gewählt.
Die direkte Verbindung zwischen zwei Routern wird mit einem „Kosten“faktor bewertet. Geht
4.5. MICRO OPEN SHORTEST PATH FIRST
61
eine Verbindung über mehrere Router, so werden die Kosten addiert. Die Route mit den kleinsten Kosten ist der Weg mit der kürzesten Entfernung. Ein bekannter Vertreter für das Distance
Vector Routing ist das Routing Information Protocol (RIP) [Mal98].
Der Algorithmus für das DV Routing ist einfach und daher leicht zu implementieren. In der Praxis liegt der Nachteil von DV Routing jedoch in der langsamen Konvergenz. Dies betrifft ganz
besonders schlechte Nachrichten, was dann zur sogenannten „Count-to-Infinity“-Problematik
führt [Tan98]. Die Information über Ausfälle von Routern oder Verbindungen breitet sich damit
also nur sehr langsam aus.
Beim LS Routing erkennt jeder Router periodisch seine Nachbar-Router und bestimmt die „Leitungskosten“ dorthin. Anschließend fasst jeder Router diese Informationen in einem Link State
Paket zusammen. Die Link State Pakete werden periodisch oder ereignisgesteuert an alle Router verteilt. Somit besitzt jeder Router eine identische Datenbank mit Topologie-Informationen
des Gebietes. Aus dieser Datenbank berechnet jeder Router lokal, z. B. mit Hilfe des Dijkstra
Algorithmus3 , den kürzesten Pfad zu allen Zielen. Mit diesem Ergebnis wird dann wiederum
die Routingtabelle aufgebaut. Bei den Berechnungen können auch QoS-Parameter berücksichtigt werden. Bekannte Protokolle hierfür sind Open Shortest Path First (OSPF) [Moy98] und
Intermediate System to Intermediate System (IS-IS) [ISO02].
Die LS Routingprotokolle reagieren wesentlich schneller auf Topologieänderungen als die DV
Routingprotokolle. Die LS Routingprotokolle müssen nur die Änderungen der Topologie austauschen und erzeugen somit weniger Netzwerkverkehr. Andererseits sind jedoch die Berechnungsverfahren aufwendiger, welche jeder Router abarbeiten muss.
Für die Steuerdatenkommunikation wird gerade bei Ausfällen von Routern oder Netzwerksegmenten eine schnelle Konvergenz erwartet. Bereits aus diesem Grund verbietet sich das
DV Routing mit seiner „Count-to-Infinity“-Problematik. Das LS Routing konvergiert schneller und erzeugt außerdem komplette Topologie-Informationen, welche das Erzeugen von QoSabhängigen Routingtabellen ermöglicht. Daher ist das LS Routing vorzuziehen.
Das OSPF Protokoll ist später als IS-IS entstanden und hat viele Vorgehensweisen von IS-IS
übernommen. Die beiden Protokolle sind sich deshalb sehr ähnlich. IS-IS ist in der Lage, Informationen über mehrere Protokolle der Vermittlungsschicht gleichzeitig verwalten zu können.
OSPF unterstützt ausschließlich das Internetprotokoll. Da für die Protokollfamilie ein Routingprotokoll, das nur eine Vermittlungsschicht verwalten kann, ausreichend funktional ist und MIP
nahe an IP angelehnt ist, wurde OSPF als Vorbild ausgewählt.
Das OPSF Protokoll wurde bereits so entwickelt, dass es nur relativ wenig Datenverkehr verursacht, jedoch deckt es weit mehr Aspekte ab als für das hier vorgestellte System benötigt
werden. MOSPF wurde deshalb angepasst und so definiert, dass es mit wesentlich geringerem
Protokollaufwand seine Funktion erfüllen kann:
• Für MOSPF gelten ebenfalls die allgemeinen Designrichtlinien aus Kapitel 4.
Das Protokoll besitzt deshalb keine eigene Prüfsumme, da die Datenintegrität bereits durch
die Schicht 2 sichergestellt wird. Ebenso wird aufgrund dieser Designrichtlinien auf ein
eigenes Feld zur Angabe der Nutzdatenlänge verzichtet, da diese Längenangabe bereits im
Header des MIP Datagramms erfolgt.
3
Der Dijkstra Algorithmus dient zur Berechnung des kürzesten Weges in einem kantengewichteten Graphen.
Ein Beitrag des niederländischen Informatikers Edsger Wybe Dijkstra (* 11.05.1930 in Rotterdam; † 06.08.2002
in Nuenen)
62
KAPITEL 4. DEFINITION DER PROTOKOLLFAMILIE
• Zur Verkleinerung des MOSPF Headers und für eine vereinfachte Protokollabarbeitung
wurde auf die bei OSPF vorhandene Authentifizierung verzichtet.
Bei einem offenen System wie dem Internet sind Sicherheitsmaßnahmen gegen Knoten,
die sich als Router ausgeben und absichtlich falsche Topologie-Informationen verbreiten,
leider notwendig geworden. Innerhalb eines abgeschlossenen embedded Systems kann jedoch davon ausgegangen werden, dass solche unkooperativen Router nicht existieren.
• Ein weiterer Ansatzpunkt für die Optimierung des MOSPF Protokolls besteht darin, dass
gegenüber OSPF keine Funktionen für sehr große Netze, wie z. B. das hierarische Routing
mit Regionen, designierte Router und Reserverouter, mehrere Link State Pakettypen und
das Einbeziehen von externen Routen außerhalb des autonomen Systems benötigt werden.
• Für MOSPF ist die Angabe von Netzwerkmasken überflüssig.
Die MIP Adressen bestehen grundsätzlich aus einem 8 Bit Netzteil und einen 8 Bit Hostteil
(Kapitel 4.1).
• Bei MOSPF wird nur die Zeit angegeben nach der ein Router als ausgefallen gilt (Dead
Interval, bei OSPF: Router Dead Interval). Die bei OSPF zusätzlich vorhandene Ankündigung wie oft ein Paket zum Erkennen von Nachbar-Routern versendet wird (Hello Interval)
wird bei MOSPF eingespart, da diese Pakete implizit vor Ablauf des Dead Intervall gesendet werden müssen.
• Die entstehenden Topologie-Informationen enthalten die Angabe des verwendeten Feldbussystems im jeweiligen Subnetz. Anhand dieser Metrik werden von den Routern die
QoS-abhängigen Routingtabellen erzeugt.
In der Angabe des Feldbussystems lassen sich wesentlich genauere Eigenschaften eines
Netzwerkabschnitts konzentrieren anstatt nur bestimmte Parameter, wie z. B. Bandbreite,
Latenz, mögliche Sendefrequenz, etc. zu berücksichtigen. Auch kann das Einbeziehen von
QoS-Parametern von neuen, weiteren Feldbussystemen dadurch flexibler erfolgen.
In Abbildung 4.29 ist das MOSPF Datenpaket dargestellt. Es wird im Nutzdatenfeld eines MIP
Datagramms transportiert. Die einzelnen Protokollfelder werden anschließend erläutert.
Type
Options
Router ID
Data
Abbildung 4.29: MOSPF Datenpaket
Type
Mit Hilfe des Feldes Type können verschiedene MOSPF Pakete unterschieden werden. Es wurden dabei folgende Typen deklariert (Tabelle 4.13).
4.5. MICRO OPEN SHORTEST PATH FIRST
0x1Hex
0x2Hex
0x3Hex
0x4Hex
0x5Hex
63
Hello
(Erkennen benachbarter Router)
Database Description
(Zusammenfassung des Datenbankinhaltes)
Link State Request
(Anfordern von Datenbankinhalten)
Link State Update
(Transport von Datenbankinhalten)
Link State Acknowledgement
(Bestätigung des Transports)
Tabelle 4.13: MOSPF Type
Options
Im Feld Options ist ein Bitfeld enthalten, das je nach angegebenem Typ unterschiedliche Bedeutung hat.
Sofern bei einem bestimmten MOSPF Pakettyp nichts anderes angegeben ist, bleibt dieses Feld
ungenutzt und muss auf 0x00Hex gesetzt werden.
Router ID
Die Router ID ist eine eindeutige Identifikation des Routers im abgeschlossenen System. Beim
Versenden eines MOSPF Datenpaketes setzt ein Router hier seine Identifikationsnummer ein.
Eine einfache Vorgehensweise zum Erhalt eindeutiger Router IDs ist die Verwendung der
kleinsten MIP Adresse aller vorhandenen Schnittstellen eines Routers als Identifikationsnummer.
Data
Dieses Feld enthält die typabhängigen Nutzdaten. Es sind maximal 252 Byte zulässig.
Erkennen benachbarter Router
Benachbarte Router geben sich gegenseitig ihre Existenz und Funktionstüchtigkeit durch periodisch versendete MOSPF Hello Pakete bekannt. Die Hello Pakete werden von jedem Router
an allen seinen Schnittstellen mit der jeweils zugehörigen MIP Source Address als Broadcast an
die Nachbar-Router versendet. Hierbei geben die Router sich auch gleichzeitig die MIP Adressen ihrer Schnittstellen gegenseitig bekannt.
Das MOSPF Hello Paket besteht aus dem MOSPF Header und weiteren Feldern. Es ist in Abbildung 4.30 dargestellt und wird anschließend erläutert.
64
KAPITEL 4. DEFINITION DER PROTOKOLLFAMILIE
Type
Options
Router ID
Dead Interval
Neighbor
Abbildung 4.30: MOSPF Hello Datenpaket
Type
Entsprechend Tabelle 4.13 ist Type = 0x1Hex .
Dead Interval
Nach Ablauf dieser Zeit gilt ein Router als nicht mehr ansprechbar bzw. außer Betrieb. Die
MOSPF Hello Pakete müssen von einem Router logischweise öfter als das angegebene Dead
Intervall versendet werden.
Für den flexiblen Einsatz der Protokollfamilie legt der Systembetreuer für das niederwertigste
Bit (LSB – Least Significant Bit) die Zeiteinheit systemweit fest, z. B. LSB =
b 100 ms.
Neighbor
Dieses Feld kann im Paket mehrfach vorhanden sein. Es bildet eine Liste mit den Router IDs
der Nachbarn an dieser Netzwerkschnittstelle von denen in letzter Zeit MOSPF Hello Pakete
empfangen worden sind. Es werden also nur die Nachbar-Router berücksichtigt, die vor Ablauf
ihres Dead Interval die Funktionstüchtigkeit durch MOSPF Hello Pakete angezeigt haben.
Mit Hilfe dieses Feldes können Router gegenseitig überprüfen, ob sie von ihrem NachbarRouter erkannt werden.
Aufbau der Datenbank mit den Topologie-Informationen
Zunächst erfasst jeder Router die an ihn angeschlossenen Subnetze und die jeweils verwendeten
Feldbussysteme. Dann fasst jeder Router diese Topologie-Informationen, ausgedrückt durch die
erreichbaren MIP Netzadressen und die Netzwerktypen, in einem Link State Advertisement
Paket zusammen.
Ein Link State Advertisement (LSA) Paket ist in Abbildung 4.31 dargestellt. Es besteht aus
einem LSA Header (gelb unterlegt) und weiteren Feldern. Die Beschreibung der Felder erfolgt
anschließend.
Advertising Router
Die Identifikation des Routers von dem diese Beschreibung ausgeht.
4.5. MICRO OPEN SHORTEST PATH FIRST
Advertising Router
Num Links
Network Addr
65
LS Sequence Num
LS Age
Network Type
Abbildung 4.31: Link State Advertisement (LSA) Datenpaket
Link State Sequence Number (LS Sequence Num)
Die Laufnummer dieser Beschreibung. Der Router erzeugt ein neues LSA Paket und inkrementiert diesen Wert, wenn sich Änderungen an den angeschlossenen Subnetzen ergeben haben.
Anhand dieser Nummer lassen sich veraltete oder doppelte LSA Pakete erkennen.
Link State Age (LS Age)
Die Beschreibungen werden mit einer maximalen Lebenszeit vom ausgehenden Router versendet. Die Zeit wird in jedem durchlaufenen Router angepasst, d. h. die Lebenszeit verringert sich
entsprechend. Das LSA Paket wird verworfen, falls dieser Wert 0 erreicht hat bevor die Beschreibung erneuert worden ist.
Der Systembetreuer legt für das niederwertigste Bit (LSB – Least Significant Bit) die Zeiteinheit für das gesamte System fest, z. B. LSB =
b 1 s. Der Wert 0xF FHex bedeutet eine unbegrenzte
Lebenszeit.
Number of Links (Num Links)
Die Anzahl der folgenden Subnetzbeschreibungen Network Addr / Network Type.
Network Address (Network Addr)
Network Type
Diese Felder können mehrfach vorhanden sein. Sie bilden eine Liste mit den Beschreibungen
der angeschlossenen Subnetze. Die Bedeutung der Felder ist:
• Die MIP Netzwerkadresse des Subnetzes.
• Die Typnummer, die den verwendeten Feldbus angibt.
Die Bedeutung der Typnummern muss vom Systembetreuer festgelegt werden. Die Tabelle
4.14 zeigt ein mögliches Beispiel für die Zuordnung.
Der Wertebereich ist 0x00Hex bis 0xF FHex .
Um die identische Datenbank mit den Topologie-Informationen in allen Routern des Systems
aufzubauen, findet ein Austauschprozess der Link State Advertisements statt. Hierzu werden
66
KAPITEL 4. DEFINITION DER PROTOKOLLFAMILIE
0x01Hex
0x02Hex
0x03Hex
0x04Hex
0x05Hex
..
.
IEEE 1394
Bluetooth
CAN C
CAN B
LIN
..
.
Tabelle 4.14: Beispieldefinition: MOSPF Network Type
die weiteren MOSPF Pakettypen genutzt.
Das grundsätzliche Konzept beruht auf dem sogenannten Flooding. Hierbei werden eingehende LSA Pakete im Router mit bereits vorhandenen LSA Paketen verglichen. Ist ein LSA Paket
bisher nicht erfasst oder hat es eine höhere LS Sequence Num, so ist es neu und wird an alle
Nachbarn, mit Ausnahme von den Routern von denen dieses LSA Paket eingegangen ist, weitergegeben. Veraltete LSA Pakete und Duplikate werden verworfen und nicht weiter behandelt.
Mit Hilfe des Database Description Pakets wird von einem Router eine Zusammenfassung der
Datenbank mit den Topologie-Informationen an seine Nachbarn versendet.
Ein Database Description (DD) Paket besteht aus dem MOSPF Header und den anschließend
erläuterten Feldern. Es ist in Abbildung 4.32 dargestellt.
Type
Options
Router ID
DD Seq Number
LSA Header
Abbildung 4.32: MOSPF Database Description (DD) Datenpaket
Type
Entsprechend Tabelle 4.13 ist Type = 0x2Hex .
Options
Das Feld Options besteht aus den Steuerbits entsprechend der Abbildung 4.33, die zur Signalisierung der verschiedenen Zustände bei der Übertragung der LSA Header dienen. Ein gesetzes
Bit bedeutet ein aktives Signal. In Tabelle 4.15 ist die Bedeutung der Signale aufgeführt.
Database Description Sequence Number (DD Sequence Number)
Dieses Feld enthält eine fortlaufende Nummer, um eine Folge von zusammengehörenden DD
4.5. MICRO OPEN SHORTEST PATH FIRST
Bit
Signal
4
unused
3
unused
67
2
unused
1
I
0
M
Abbildung 4.33: MOSPF DD Datenpaket: Steuerbits im Feld Options
More (M)
Init (I)
unused
Die Ankündigung, dass weitere Database Description Pakete folgen.
Kennzeichnet das erste Paket in einer Folge von Database
Description Paketen.
Dieses Bit wird nicht benutzt, es muss immer auf 0 gesetzt
werden.
Tabelle 4.15: MOSPF DD Datenpaket: Bedeutung der Signale in Options
Paketen zu nummerieren. Mit Hilfe dieses Feldes können Zusammenfassungen der Datenbank,
die die maximal erlaubte Größe eines einzelnen MOSPF DD Paketes überschreiten, versendet
werden.
Das erste DD Paket einer Folge wird durch das gesetzte I Bit in den Optionen gekennzeichnet.
Weitere DD Pakete werden mit dem gesetzten M Bit in den Optionen angekündigt.
Link State Advertisement Header (LSA Header)
Dieses Feld kann mehrfach vorhanden sein. Es bildet eine Liste mit den gespeicherten LSA
Headern.
Siehe für den LSA Header die gelb unterlegten Felder in Abbildung 4.31.
Stellt ein Router anhand der empfangenen Zusammenfassung der Datenbank in den MOSPF
DD Paketen fest, dass bestimmte LSA Pakete lokal nicht vorhanden oder veraltet sind, dann
fordert er diese mit Hilfe des Link State Request Pakets vom benachbarten Router an.
Ein Link State Request Paket ist in Abbildung 4.34 dargestellt. Es besteht aus dem MOSPF
Header und den anschließend erläuterten Feldern.
Type
Options
Router ID
Adv Router hi
Adv Router lo
Abbildung 4.34: MOSPF Link State Request Datenpaket
Type
Entsprechend Tabelle 4.13 ist Type = 0x3Hex .
68
KAPITEL 4. DEFINITION DER PROTOKOLLFAMILIE
Advertising Router (Adv Router)
Dieses Feld kann mehrfach vorhanden sein. Es bildet eine Liste mit den angeforderten LSA
Beschreibungen. Die Pakete werden durch die Identifikationen der Router von denen diese Beschreibungen ausgegangen sind bezeichnet.
Für den Transport der angeforderten LSA Pakete kommt das MOSPF Link State Update Paket
zum Einsatz.
Ein Link State Update Paket ist in Abbildung 4.35 dargestellt. Die über den MOSPF Header
hinausgehenden Felder werden anschließend erläutert.
Type
Options
Router ID
LSA
Abbildung 4.35: MOSPF Link State Update Datenpaket
Type
Entsprechend Tabelle 4.13 ist Type = 0x4Hex .
Link State Advertisement (LSA)
Dieses Feld kann mehrfach vorhanden sein. Es bildet eine Liste mit den zu transportierenden
Link State Advertisement (LSA) Paketen.
Das LSA Paket wurde oben in Abbildung 4.31 beschrieben.
Der Empfang von LSA Paketen durch ein Link State Update Paket wird mit dem MOSPF Link
State Acknowledgement Paket bestätigt.
Ein Link State Acknowledgement Paket mitsamt dem MOSPF Header ist in Abbildung 4.36
dargestellt. Die zusätzlichen Felder werden anschließend erläutert.
Type
Entsprechend Tabelle 4.13 ist Type = 0x5Hex .
4.5. MICRO OPEN SHORTEST PATH FIRST
Type
Options
Router ID
69
LSA Header hi
LSA Header lo
Abbildung 4.36: MOSPF Link State Acknowledgement Datenpaket
LSA Header
Dieses Feld kann mehrfach vorhanden sein. Es bildet eine Liste mit den bestätigten LSA Paketen, welche durch die jeweiligen LSA Header beschrieben werden.
Der LSA Header besteht aus den gelb unterlegten Feldern in Abbildung 4.31.
Zusammenfassend zeigt die Abbildung 4.37 die Verwendung der MOSPF Pakete und den Ablauf beim Datenbankaustausch zwischen zwei benachbarten Routern.
Abbildung 4.37: Austausch der Datenbank
Aufbau der Routingtabelle
Für das Erzeugen der QoS-abhängigen Routingtabelle muss die Bedeutung der ToS Werte im
MIP Header (Kapitel 4.1) bekannt sein. Mit dem ToS Wert geben die Applikationen in den Knoten an, nach welcher Priorität die Feldbusse für den Datentransport verwendet werden sollen.
Der Systembetreuer legt die Bedeutung der ToS Werte fest. In der Tabelle 4.16 wird ein mögliches Beispiel gezeigt.
Anhand der Prioritätsliste können nun die vom ToS Wert abhängigen Leitungskosten für ein
Subnetz bestimmt werden. Ein Netzabschnitt mit der höchsten Priorität hat den Wert 1, die
70
KAPITEL 4. DEFINITION DER PROTOKOLLFAMILIE
ToS
0x01Hex
0x02Hex
0x03Hex
0x04Hex
0x05Hex
0x06Hex
0x07Hex
..
.
Prioritätsliste
IEEE 1394 – Bluetooth – CAN C – CAN B – andere
IEEE 1394 – CAN C – CAN B – andere
Bluetooth – IEEE 1394 – CAN C – CAN B – andere
CAN C – IEEE 1394 – CAN B – andere
CAN C – CAN B – andere
CAN B – CAN C – andere
LIN – beliebiger CAN – andere
..
.
0x1FHex
beliebiger Bus
Tabelle 4.16: Beispieldefinition: Priorität der Feldbusse abhängig vom ToS Wert
zweite Priorität den Wert k, die n-te Priorität den Wert k n−1 .
Die höher priorisierten Feldbusse werden auf diese Weise jeweils wesentlich besser als die niedriger priorisierten Busse bewertet. Dies führt in Folge dazu, dass das Durchlaufen von maximal
k Netzwerkabschnitten einer bestimmten Priorität besser oder gleich dem Durchlaufen eines
Netzwerkabschnittes des nächst niedriger priorisierten Feldbusses bewertet wird. Der Faktor k
muss deshalb größer als die gewünschte maximale Zahl durchlaufener Subnetze zwischen zwei
Knoten bei der ausschließlichen Verwendung des bevorzugten Feldbusses gewählt werden.
Die Tabelle 4.17 zeigt die aus obigem Beispiel resultierenden Leitungskosten für ein Subnetz
mit einem bestimmten Feldbustyp in Abhängigkeit des ToS Wertes.
ToS
0x01Hex
0x02Hex
0x03Hex
0x04Hex
0x05Hex
0x06Hex
0x07Hex
..
.
0x1FHex
Feldbustyp
IEEE 1394 Bluetooth CAN C
1
k
k2
1
k3
k
k
1
k2
k
k3
1
2
2
k
k
1
k2
k2
k
k2
k2
k
..
..
..
.
.
.
1
1
1
CAN B LIN
k3
k4
k2
k3
3
k
k4
k2
k3
k
k2
1
k2
k
1
..
..
.
.
1
1
Tabelle 4.17: Für das Beispiel: Leitungskosten der Feldbustypen abhängig vom ToS Wert
Jeder Router bestimmt nun lokal aus der Datenbank mit den Topologie-Informationen und aus
den Leitungskosten für jedes Subnetz, also dem kantengewichteten Graphen, abhängig vom ToS
Wert den kürzesten Weg in jedes Subnetz im System.
Daraus wird wiederum die Routingtabelle erstellt. Sie enthält abhängig vom ToS Wert die Information über welche Schnittstelle des Routers und eventuell über welchen Nachbarrouter das
Subnetz eines Zielknotens erreicht werden kann.
4.6. FAZIT
4.6
71
Fazit
Mit den in den vorangegangenen Kapiteln 4.1 bis 4.5 dokumentierten Definitionen existiert nun
die Protokollfamilie zur universellen Steuerdatenkommunikation in heterogenen Netzwerkumgebungen.
Die Abbildung 4.38 zeigt einen Überblick über die entstandene hierarchische Protokollfamilie
(rechts) und im Vergleich dazu das OSI-Modell (links).
Applikation
Applikation
Applikationsschicht
7
Darstellungsschicht
6
Sitzungsschicht
5
MICMP
Transportschicht
MUDP
MTCP
MOSPF
4
Hierarchische
Protokollfamilie
MIP
Vermittlungsschicht
3
Schnittstelle zu LIN
Schnittstelle zu CAN
Schnittstelle zu Bluetooth
Schnittstelle zu IEEE 1394
LIN
CAN
Bluetooth
IEEE 1394
Medium
Medium
Medium
Medium
Sicherungsschicht
2
Bitübertragungsschicht
1
Medium
Abbildung 4.38: Die entstandene hierarchische Protokollfamilie
Micro Internet Protocol
Das Micro Internet Protocol (MIP) stellt zusammen mit den Anpassmodulen zu den Feldbussen die Netzwerkschicht dar. Auf dieser Schicht geschieht die Konvergenz der Feldbusse und
erfolgt die einheitliche logische Adressierung entsprechend den Anforderungen in Kapitel 3.
MIP bietet weiterhin die Voraussetzungen, um die Wegewahl auf der Schicht 3 durchführen zu
können. Auf die Verwendung von Gateways kann innerhalb des Systems fortan verzichtet werden. Somit wird die Forderung, dass Automatisierungsgeräte in einem ausreichend vermaschten
System erreichbar bleiben, solange noch mindestens ein durchgängiger Pfad verfügbar ist, auch
bei Ausfall von einzelnen Segmenten erfüllt.
Mit dem ToS Feld im MIP Header wird ebenfalls die Forderung aus Kapitel 3 erfüllt, dass in
den Routern QoS-Parameter berücksichtigt werden können.
Unter Beibehaltung aller notwendigen Funktionen konnte der MIP Header soweit verkleinert
werden, dass er fast nur noch ein Drittel der Headergröße des Vorbilds IP aufweist. Dieser reduzierte Overhead zeigt den Fokus auf die Optimierung für die Steuerdatenkommunikation in
embedded Systemen.
72
KAPITEL 4. DEFINITION DER PROTOKOLLFAMILIE
Exemplarisch sind für vier sehr verschiedene Feldbusse Schnittstellen definiert worden. Die
Kapitel 4.1.1 bis 4.1.4 dokumentieren, wie diese Schnittstellen zu den unterschiedlichen darunterliegenden Feldbussen aussehen und wie eine solche Anpassung möglich ist.
Die Anpassmodule für Bluetooth und IEEE 1394 mussten jeweils mit einem zusätzlichen
Hilfsprotokoll zur Auflösung der logischen Adressierung auf das Adressmodell der zugrundeliegenden Technologie ausgestattet werden. Für LIN und CAN wurde eine elegante Möglichkeit
gefunden, um ohne diesen zusätzlichen Aufwand auszukommen.
Micro Internet Control Message Protocol
Das Micro Internet Control Message Protocol (MICMP) stellt das notwendige Hilfsprotokoll
für die Signalisierung von Fehlern bei der Verarbeitung von MIP Datagrammen zur Verfügung.
Besonders wichtig für den Standardbetrieb ist die Mitteilung der abgelaufenen Lebensdauer von
einem Datagramm und die Information über derzeit nicht erreichbare Ziele.
Die Mitteilung von allgemeinen Problemen mit einem Protokollfeld und das Echo Test Paket
dienen hingegen eher der Hilfestellung während der Entwicklung und bei der Netzwerkdiagnose.
Die Größe des MICMP Headers konnte soweit reduziert werden, dass er gegenüber der Headergröße des Vorbilds ICMP nur noch ein Achtel beträgt.
Micro User Datagram Protocol
Für die Anwendungen in den Knoten bietet das Micro User Datagram Protocol (MUDP) eine einheitliche Schnittstelle für den unbestätigten Datentransport. Ein MIP Datagramm bietet
bereits die meisten notwendigen Funktionen hierfür. Lediglich ein zusätzlicher 1 Byte großer
Header ist für das Multiplexing, also die Zuordnung auf die Applikationen, vonnöten.
Im Vergleich zum Vorbild UDP konnte der Header somit ebenfalls auf ein Achtel der Größe
reduziert werden. Für die Anwendungen stehen maximal 254 Byte Nutzdaten in einem MUDP
Datenpaket zur Verfügung.
Micro Transmission Control Protocol
Das Micro Transmission Control Protocol (MTCP) vereinigt den bestätigten und transaktionsbasierten Datentransport in einem gemeinsamen Protokoll und stellt den Anwendungen hierfür
eine einheitliche Schnittstelle bereit. Bei MTCP wurde der Ablauf so optimiert, dass Nutzdaten bereits während des Verbindungsaufbaus und bis kurz vor der Trennung der Verbindung
noch transportiert werden können. Ein abgegrenzter Drei-Wege-Handshake wie bei TCP zum
Aufbau einer Verbindung entfällt. Die Transaktion kann dadurch quasi als Spezialfall der bestätigten Verbindung gehandhabt werden.
Die Größe des MTCP Headers konnte auf ein Fünftel der Headergröße des Vorbilds TCP verschlankt werden. In einem MTCP Datenpaket können maximal 251 Byte Nutzdaten transportiert werden.
4.6. FAZIT
73
Micro Open Shortest Path First
Micro Open Shortest Path First (MOSPF) vervollständigt die Protokollfamilie mit einem Link
State Routingprotokoll für die Wegewahl unter Berücksichtigung von QoS-Parametern.
MOSPF übernimmt von seinem Vorbild OSPF nur die für das hier vorgestellte System relevanten Funktionen und kann damit mit geringerem Protokollaufwand seine Aufgabe erfüllen. Der
MOSPF Header konnte soweit verkleinert werden, dass er nur noch ein Achtel der Headergröße
von OSPF aufweist.
Bei Änderungen an der Topologie müssen mittels MOSPF nur wenige Informationen zwischen
den Routern ausgetauscht werden, was der begrenzten Bandbreite der Feldbusse sehr entgegen
kommt. Der Aufbau der lokalen Routingtabellen erfordert dafür einigen Rechenaufwand in jedem einzelnen Router, was eigentlich im Widerspruch zu einem embedded System steht. Die
Definition von MOSPF in dieser Form macht trotzdem Sinn: Die Feldbusse mit ihrer begrenzten
Nutzdatenkapazität haben einen sehr langen Lebenszyklus. Die eingesetzten Mikroprozessoren
erleben hingegen eine rasche Fortentwicklung mit ständig steigender Rechenleistung in kurzer
Folge.
Die Tabelle 4.18 gibt abschließend nochmals einen Überblick über die erreichten Verkleinerungen der Header dieser Protokollfamilie hier im Vergleich zu den Internet Protokollen.
Byte
MIP
7
MICMP
1
MUDP
1
MTCP
4
MOSPF
3
Byte
20
8
8
20
24
IP
ICMP
UDP
TCP
OSPF
Tabelle 4.18: Größe der Protokollheader im Vergleich
Die im Kapitel 3 formulierten Anforderungen an das Konzept werden von der Protokollfamilie
also somit erfüllt.
4.6.1
Analyse von Effektivität, Transferzeiten und Latenzzeiten
Die Diagramme in den Abbildungen 4.39 und 4.40 stellen für MIP Datagramme die Effektivität, also das Verhältnis von Nutzdaten zu gesendeten Daten, bei der Nutzung der vier betrachteten Feldbusse und bei verschiedenen Übertragungsarten dar. Die Protokollkombination IP via
Ethernet dient als Referenz der erreichbaren Effizienz. Die Berechnungen hierzu finden sich im
Anhang A.1.
Die Sägezahnform entsteht durch das Fragmentieren der MIP Datagramme durch die Schnittstelle zum Feldbus bzw. bei Bluetooth innerhalb des eigenen Protokollstapels. An den Stellen
mit einer steil abfallenden Flanke wird jeweils ein weiterer Datenrahmen des darunterliegenden
Feldbussystems benötigt.
74
KAPITEL 4. DEFINITION DER PROTOKOLLFAMILIE
Abbildung 4.39: Effektivität bei 1 bis 12 Nutzdatenbyte
Die in Kapitel 3.4 bereits angeführte Erklärung, dass IP keine vertretbare Lösung für die Steuerdatenkommunikation darstellt, zeigt sich hier gerade bei kleinen Nutzdatengrößen sehr deutlich.
Die Leistungsfähigkeit bestimmt sich aber nicht allein über die Effizienz. Die unterschiedlichen
Buszugriffsverfahren der Feldbusse haben einen erheblichen Einfluss auf die Transferdauer für
ein Datenpaket und die Latenzzeit zwischen der Übertragung zweier Datenpakete.
Zur Abschätzung der Transferdauer und der Latenzzeit wird ein MTCP Datenpaket mit 8 Nutzdatenbyte, eine typischen Nutzdatenmenge in der Steuerdatenkommunikation, verwendet. Mit
Hilfe der Berechnungen in Anhang A.2 ergeben sich die in der Tabelle 4.19 angegebenen Zeiten.
4.6. FAZIT
75
Abbildung 4.40: Effektivität bei 1 bis 255 Nutzdatenbyte
Feldbus und Übertragungsart
LIN unconditional
CAN
Bluetooth DH1
IEEE 1394 GASP
Im ungünstigsten Fall
Transferdauer Latenzzeit
24,8 ms 396,8 ms
377 µs
393 µs
625 µs 8,125 ms
12,95 µs
3,5 ms
≈ 32 ms
Tabelle 4.19: Transferdauer und Latenzzeiten im Vergleich
76
KAPITEL 4. DEFINITION DER PROTOKOLLFAMILIE
Kapitel 5
Demonstrationssystem
Um die entwickelten Protokolle für Feldbussysteme in einem realen Aufbau testen zu können, wurden möglichst universelle Entwicklungsumgebungen geschaffen. Diese Plattformen
zur Realisierung wurden durch die vorliegende und weitere Arbeiten, als auch durch Kooperationen mit der Industrie getrieben. Folgende drei Umgebungen sind unter Berücksichtigung der
Fahrzeug Netzarchitektur (Abbildung 3.1) und der CAM Pyramide (Abbildung 3.2) im Kapitel 3 zum Einsatz gekommen:
• x86 Architektur und Betriebssystem Linux1 .
Z. B. als Mensch Maschine Interface (MMI) mit grafischer Oberfläche.
• 16 Bit Mikrocontroller C167 mit integriertem CAN Controller der Firma Infineon Technologies AG2 und das multitaskingfähige Echtzeitbetriebssystem EUROS (Enhanced Universal Realtime Operating System)3 .
Im Einsatz als typischer Vertreter eines Knotens in einem embedded System für Steuergeräte und Gateways.
• Reduced Instruction Set Computer (RISC) Mikrocontroller PIC16 der Firma Microchip
Technology Inc.4 ohne Betriebssystem.
Für untergeordnete Aufgaben als Coprozessor auf Zusatzmodulen der 16 Bit Architektur
und für abgesetzte Slave Knoten.
Für die x86 Architektur konnten Standard Personal Computer (PC) Komponenten problemlos zugekauft werden, daher bestand kein Grund zur Eigenentwicklung. Der freie Markt bietet
eine breite Palette an Industrie und Desktop PCs mit integrierten oder erweiterbaren Netzwerkschnittstellen für Ethernet und CAN, zwischenzeitlich auch für IEEE 1394 und Bluetooth.
Die auffälligsten Unterschiede zwischen PCs für Büroumgebungen und industriellen PCs für
embedded Systeme bestehen im mechanischen Aufbau, den zulässigen Umweltbedingungen
im Betrieb und der Leistungsfähigkeit. Für eine Testumgebung unter Laborbedingungen sind
1
Einige bekannte Distributionen: http://www.debian.de/, http://www.suse.de/, http://www.redhat.com/
http://www.infineon.com/
3
http://www.euros-embedded.com/
4
http://www.microchip.com/
2
77
78
KAPITEL 5. DEMONSTRATIONSSYSTEM
gerade die ersten beiden Punkte unerheblich. Die im Allgemeinen höhere Leistungsfähigkeit
von Desktop PCs ist vorteilhaft, sie erlaubt eine komfortablere Durchführung der Tests.
Das Betriebssystem Linux wurde ausgewählt, weil es für mehrere unterschiedliche Prozessorarchitekturen erhältlich ist und mit seinen vielen Treibern bereits eine sehr breite Hardwareunterstützung bietet. Die verwendeten einschlägigen Distributionen stellen außerdem eine Vielzahl
an freien Entwicklungswerkzeugen, Serverdiensten und Anwendungsprogrammen zur Verfügung.
Das freie quelloffene System bietet gerade im universitären Umfeld einen erheblichen Vorteil, weil es einen guten Einblick in seine Funktionsweise bietet, ohne dass kostenpflichtige
Dienstleistungen eines kommerziellen Herstellers in Anspruch genommen werden müssen. Somit steht eine ideale Umgebung zur Verfügung, um Applikationen und im Bedarfsfall sogar
eigene Treiber entwickeln zu können.
Bei der 16 Bit Architektur und dem RISC Mikrocontroller besteht eine etwas andere Situation.
Auf dem freien Markt hierfür Komponenten zu finden, die außer CAN oder vielleicht Ethernet auch gleichzeitig weitere Feldbusse unterstützen können, ist praktisch unmöglich. Vielmehr
waren zu Beginn dieser Arbeit geeignete embedded Systeme mit IEEE 1394, Bluetooth oder
LIN in keinster Weise verfügbar. Und sogar bis heute kann man nur sehr eingeschränkt passende Entwicklungssysteme finden. Eine universelle Entwicklungsumgebung und ein embedded
System widersprechen sich im Grunde auch, deshalb konnte nicht so einfach wie bei der x86
Architektur zugekauft werden.
In Folge dessen wurde eine eigene Enwicklungsumgebung am Institut OMI entwickelt, welche
die vielen unterschiedlichen Anforderungen erfüllen konnte. Die entstandene Hardware um den
16 Bit Mikrocontroller und eine Reihe von Zusatzmodulen wird als sogenanntes Universalsteuergerät bezeichnet und im Anhang B vorgestellt.
Für den C167 Mikrocontroller wurde ebenfalls ein Betriebssystem verwendet, um auch beim
embedded System eine zukunftsweisende Entwicklungsmethodik einsetzen zu können. Bisher
sind freie Systeme in dieser Leistungsklasse jedoch leider nur äußerst selten zu finden. Jedoch
stellt das kommerzielle EUROS, welches inklusive der notwendigen Unterstützung seitens des
Herstellers im Rahmen einer Kooperation zur Verfügung stand, eine gute Alternative dar. Das
Betriebssystem ist für unterschiedliche Prozessoren erhältlich und bietet bereits Treiber für z. B.
Ethernet, CAN und die üblichen synchronen und asynchronen seriellen Schnittstellen. In Eigenentwicklung entstanden weitere Treiber und natürlich die Applikationen.
Der PIC16 verfügt für die zugedachten untergeordneten Aufgaben nur über sehr begrenzte Ressourcen, folglich muss diese Architektur ohne Betriebssystem auskommen. Die Entwicklung
der Applikationen erfolgt damit zwangsläufig auf einem sehr hardwarenahen Niveau.
5.1
Realisierte Teilaspekte
Um mit wenigen exemplarischen Umsetzungen eine möglichst breite Palette der Protokolle der
hierarchischen Familie zu testen, wurden drei Szenarien aufgestellt und exemplarisch umgesetzt:
5.1. REALISIERTE TEILASPEKTE
79
• Beim Warenbuchungssystem kommt in besonderem Maße die transaktionsbasierte Übertragung mittels MTCP zum Einsatz.
• Die Basisfunktionen für das dynamische Routing werden anhand einem überschaubaren Aufbau nachvollzogen. Insbesondere werden hierbei die Abläufe zum Austausch der
Topologie-Informationen mit MOSPF erprobt.
• Die Interoperabilität zwischen MIP und IP ist die Aufgabe dieses Tests. Die Gateway Applikation schließt die Verwendung von MUDP ein.
Die Testszenarien verwenden also die beiden Schicht 4 Transportprotokolle und das Routingprotokoll. Somit kommt logischerweise auch jeweils MIP und – soweit angebracht – das eng
begleitende MICMP zur Anwendung.
Die folgenden Kapitel beschreiben nun detaillierter die realisierten Teilaspekte.
5.1.1
Warenbuchungssystem
Dieser Test beruht auf dem Szenario eines Warenbuchungssystems, ähnlich dem Vorgang an
einer Supermarktkasse. Mehrere Benutzer können in Selbstbedienung Waren aus einem Lager
entnehmen. Zur Identifikation besitzt jeder Benutzer eine Karte mit aufgedrucktem Strichcode,
ebenso ist auf jedem Artikel ein Strichcode aufgebracht. Zunächst muss der Benutzer mit einem
Strichcodeleser seine persönliche Karte einlesen, danach müssen alle Produkte eingelesen werden. Die erfassten Benutzer- und Artikelnummern werden unter Verwendung von MTCP/MIP
an den Datenbankrechner weitergeleitet. Die Buchung kann vom Anwender über ein webbasiertes Benutzerinterface kontrolliert werden.
Der Aufbau besteht aus einem Strichcodeleser, zwei Universalsteuergeräten und einem PC,
der als Webserver und Datenbank fungiert (Abbildung 5.1). Lediglich zur Vereinfachung dient
derselbe PC zusätzlich auch noch als Webclient für das Benutzerinterface. Selbstverständlich
könnte dafür genauso ein beliebiger anderer Client ohne Einschränkung der Funktion verwendet
werden.
Abbildung 5.1: Aufbau des Warenbuchungssystems
Der Handscanner dient zum Einlesen der Strichcodes von Benutzern und Produkten. Er ist am
ersten der beiden Universalsteuergeräte über eine asynchrone serielle Schnittstelle vom Typ
RS232 [TIA97] angeschlossen. Die Aufgabe dieses Knotens besteht darin, den Bytestrom vom
80
KAPITEL 5. DEMONSTRATIONSSYSTEM
Scanner entgegenzunehmen, semantisch zu erfassen, zu einem Datenpaket zusammenzufassen
und als Transaktion an MTCP zu übergeben. Via MIP und in diesem Fall CAN wird die Information dann versendet.
Das zweite Universalsteuergerät arbeitet als Gateway. Es empfängt die Strichcodedaten wiederum via CAN/MIP/MTCP, wandelt diese in das geeignete Format zur Übermittlung an die
Datenbank um und sendet die Information mittels TCP/IP und die vorhandene 10 MBit/s Ethernetschnittstelle an den PC weiter.
Als Webserver kommt der Apache HTTP (HyperText Transfer Protocol [BLe96, Fe99]) Server5 mit Unterstützung für PHP (PHP: Hypertext Preprocessor)6 zum Einsatz. PHP ist eine weit
verbreitete, serverseitig interpretierte Skriptsprache, welche gerne für die Programmierung dynamischer Webseiten genutzt wird. Durch die Anfrage eines Clients an den Webserver wird
das entsprechende PHP Skript ausgeführt, welches daraufhin eine Ausgabe in der Auszeichnungssprache HTML (HyperText Markup Language [RHJ99]) zurückliefert. Als Datenbank
wird MySQL7 verwendet.
In Abbildung 5.2 ist dargestellt, auf welchen Schichten des OSI-Modells die Kommunikation
des gesamten Systems abläuft.
Universalsteuergerät 1
Universalsteuergerät 2
Webserver / Datenbank
Applikation 1
Applikation 2
Webserver
Applikation
Applikationsschicht
Semantik
7
Darstellungsschicht
HTTP
HTTP
TCP
TCP
IP
IP
Ethernet
Ethernet
6
Sitzungsschicht
5
MTCP
Transportschicht
MTCP
4
Vermittlungsschicht
3
MIP
MIP
Schnittstelle zu CAN
Schnittstelle zu CAN
CAN
CAN
Sicherungsschicht
2
RS232
Bitübertragungsschicht
1
Medium
Medium
Medium
Medium
Abbildung 5.2: Einordnung des Warenbuchungssystems in das OSI-Modell
Die Interpretation des Strichcodes aus dem Bytestrom des Handscanners geschieht im Block
Semantik, welcher sich im OSI-Modell auf der Schicht 7 einordnet. Programmiertechnisch ist
5
http://www.apache.org/
http://www.php.net/
7
http://www.mysql.com/
6
5.1. REALISIERTE TEILASPEKTE
81
dieser Teil jedoch als Funktion innerhalb der Applikation 1 realisiert worden, die sich oberhalb
der Protokollschichten des OSI-Modells befindet.
Die Applikation 2 führt die Gatewayfunktionalität aus. Seitens der hierarchischen Protokollfamilie für die Steuerdatenkommunikation werden keine Aufgaben in den Schichten 5 bis 7
erledigt. Erst beim Versenden des Strichcodes über TCP/IP sind diese Schichten betroffen. Das
Gateway übernimmt seitens der Internetprotokolle die Funktion eines einfachen Clients, der
mittels der HTTP Methode „GET“ Daten von einem Server angefordert. In diesem Fall ist es
der Aufruf eines PHP Skripts mit folgender Syntax:
http://WEBSERVER/warenbuchungssystem/php/eintrag.php?zahl=STRICHCODE
5.1.2
Basisfunktionen für das dynamische Routing
Bei diesem Test wird ein besonderes Augenmerk auf die notwendigen Grundfunktionen für das
dynamische Routing unter Berücksichtigung von QoS-Parametern gerichtet. Anhand nachvollziehbarer Netzwerkstrukturen wird das Erkennen von benachbarten Routern und der Austausch
der Topologie-Informationen mit MOSPF vorgenommen.
Zum Erkennen benachbarter Router dient der erste Aufbau. Er besteht aus zwei Universalsteuergeräten, die als Router jeweils über CAN und IEEE 1394 miteinander vernetzt sind (Abbildung
5.3). Zwischen den beiden Routern besteht also eine redundante Verbindung. Außerdem sind
beide Universalsteuergeräte jeweils über eine asynchrone serielle Schnittstelle (RS232) mit einem Entwicklungs PC verbunden.
CAN
01.01
Router ID 01.01
01.02
02.01
Router ID 01.02
02.02
IEEE 1394
Entwicklungs PC 1
RS232
Entwicklungs PC 2
RS232
Abbildung 5.3: Testaufbau 1
An den jeweiligen Entwicklungs PCs können nach dem Herunterladen der Software auf das
entsprechende Universalsteuergerät die Meldungen von dem ablaufenden Programm verfolgt
werden. Für den eingeschwungenen Zustand zeigt die Abbildung 5.4 die Nachbarschaften von
82
KAPITEL 5. DEMONSTRATIONSSYSTEM
Router 01.01 an, welche anhand der zuletzt empfangenen MOSPF Hello Pakete ermittelt worden sind.
Functional Neighbours
--------------------Interface 0, MIP: 01.01, Type: 0x03
Router ID: 01.02, MIP: 01.02
Neighbours: 01.01
Interface 1, MIP: 02.01, Type: 0x01
Router ID: 01.02, MIP: 02.02
Neighbours: 01.01
-> My Neighbours: 01.02
Abbildung 5.4: Testaufbau 1 – Ausschnitt aus dem Protokoll von Router 01.01
Die Übersicht der funtionstüchtigen Nachbar-Router erfolgt aufgeteilt nach den Netzwerkschnittstellen, wobei als zusätzliche Informationen jeweils die zugeordnete MIP Adresse und
der verwendete Feldbustyp entsprechend Tabelle 4.14 in Kapitel 4.5 ausgegeben werden.
Die weiteren Zeilen enthalten Angaben aus den empfangenen MOSPF Hello Paketen. In der
ersten eingerückten Ebene wird die Router ID und die sendeseitige MIP Adresse ausgegeben.
Die zweite eingerückte Ebene enthält die Liste der erkannten Nachbarn. Man sieht hier, dass
die gegenseitige Erkennung funktioniert hat, da die eigene Router ID 01.01 jeweils als Nachbar eingetragen ist. In der letzten Zeile werden zusammenfassend nochmals die Router IDs der
Nachbar-Router, im Testaufbau 1 nur der Router 01.02, angezeigt.
Für das Verteilen der Topologie-Informationen mit den weiteren MOSPF Pakettypen wird sinnvollerweise ein entferntes Netzwerk benötigt. Hierfür wird ein zweiter Testaufbau verwendet,
der aus insgesamt drei Universalsteuergeräten besteht. Die Abbildung 5.5 zeigt wie die Universalsteuergeräte als Router miteinander vernetzt sind.
Wie beim ersten Test sind die Entwicklungs PC über eine asynchrone serielle Schnittstelle
(RS232) angeschlossen, um die Meldungen von der Software der Router ausgeben zu können.
Die Abbildungen 5.6 bis 5.8 zeigen die relevanten Ausschnitte von Router 01.01.
Analog zum ersten Testaufbau werden zunächst die funktionstüchtigen Nachbar-Router ermittelt (Abbildung 5.6).
Im nächsten Schritt ermittelt der Router die angeschlossenen Subnetze und die verwendeten
Feldbustypen und hält sie in Form eines Link State Advertisement (LSA) fest (Abbildung 5.7).
Im dritten Schritt erfolgt nun der eigentliche Austausch der Topologie-Informationen (Abbildung 5.8):
Der Router 01.02 verbreitet mit einem MOSPF Database Description (DD) Paket die neuen
LSA Header.
Der Router 01.01 stellt fest, dass ihm diese beiden LSAs noch nicht bekannt sind und fordert
5.1. REALISIERTE TEILASPEKTE
83
CAN
01.01
Router ID 01.01
01.02
02.01
04.03
04.02
IEEE 1394
IEEE 1394
Entwicklungs PC 1
RS232
Router ID 04.03
Router ID 01.02
Entwicklungs PC 2
RS232
Abbildung 5.5: Testaufbau 2
Functional Neighbours
--------------------Interface 0, MIP: 01.01, Type: 0x03
Router ID: 01.02, MIP: 01.02
Neighbours: 01.01
Interface 1, MIP: 02.01, Type: 0x01
-> My Neighbours: 01.02
Abbildung 5.6: Testaufbau 2 – Übersicht der benachbarten Router
My local LSA
-----------Advertising Router: 01.01
Network: 01, Type: 0x03
Network: 02, Type: 0x01
Abbildung 5.7: Testaufbau 2 – Erfassen der angeschlossenen Subnetze und der Feldbustypen
diese deshalb mit einem MOSPF Link State (LS) Request Paket an.
Der Router 01.02 übermittelt die vollständigen LSAs mit einem MOSPF Link State (LS) Update Paket.
Die Bestätigung an den Router 01.02 mittels eines MOSPF Link State Acknowledgement (LS
Ack) schließt den Austausch ab.
84
KAPITEL 5. DEMONSTRATIONSSYSTEM
DD received from Router ID: 01.02, MIP: 01.02
LSA Header 0, Advertising Router: 01.02
LSA Header 1, Advertising Router: 04.03
Found new LSAs, Starting Database Exchange...
LS Request sent to Router ID: 01.02, MIP: 01.02
Advertising Router 0: 01.02
Advertising Router 1: 04.03
LS Update received from Router ID: 01.02, MIP: 01.02
LSA 0, Advertising Router: 01.02
Network: 01, Type: 0x03
Network: 04, Type: 0x01
LSA 1, Advertising Router: 04.03
Network: 04, Type: 0x01
LS Ack sent to Router ID: 01.02, MIP: 01.02
LSA Header 0, Advertising Router: 01.02
LSA Header 1, Advertising Router: 04.03
Finished Database Exchange.
Abbildung 5.8: Testaufbau 2 – Verteilen der Topologie-Informationen
5.1.3 Interoperabilität zwischen MIP und IP
Durch diesen Test wird die Übergangsmöglichkeit zwischen der hierarchischen Protokollfamilie
für die Steuerdatenkommunikation und der Internet-Welt erprobt. Außerdem dienen MUDP
Datenpakete für einen Dienst zur Namen- und Adressauflösung, welcher IP Hostnamen oder
Adressen zu MIP Adressen zuordnet.
Für diesen Aufbau wurden PCs verwendet. Das Kernstück ist das Gateway zwischen MIP und
IP. Die Abbildung 5.9 zeigt die verwendeten Protokolle im Vergleich zum OSI-Modell.
Ein IP Host initiiert die Kommunikation zu einem MIP Knoten
Die Knoten innerhalb der Domäne der hierarchischen Protokollfamilie für die Steuerdatenkommunikation können aus Sicht von IP als Klasse B Subnetz adressiert werden. Das Gateway
nimmt stellvertretend für alle MIP Knoten die Datenpakete von den IP Hosts entgegen. Die
Inhalte der empfangenen TCP und UDP Datenpakete können sehr einfach von der Gateway
Applikation als MTCP und MUDP Datenpakete weitergegeben werden. Eine Auswertung der
Dateninhalte ist nicht notwendig. Die Quell IP Adresse wird auf eine MIP Adresse abgebildet,
so dass die MIP Zielknoten auf diese Weise Antwortpakete senden können. Das Gateway verwendet neben seiner eigenen MIP Adresse auf derselben Schnittstelle hierfür die MIP Adressen
eines eigenen Subnetzes. Der Zusammenhang zwischen IP Adresse und MIP Adresse wird vom
Gateway in einer Tabelle festgehalten. Ungenutzte Tabelleneinträge werden nach Ablauf einer
gewissen Zeitspanne gelöscht.
5.1. REALISIERTE TEILASPEKTE
85
Gateway
Gateway Applikation
Applikation
Applikationsschicht
Namen- und
Adressauflösung
DNS
7
Darstellungsschicht
6
Sitzungsschicht
5
Transportschicht
UDP
TCP
MUDP
MTCP
4
Vermittlungsschicht
IP
3
MIP
Schnittstelle zum Feldbus
Sicherungsschicht
2
Ethernet
Feldbus
Medium
Medium
Bitübertragungsschicht
1
Medium
Abbildung 5.9: Einordnung der Gateway Applikation in das OSI-Modell
Besonders reibungslos funktioniert die einfache Weitergabe unter der Voraussetzung, dass die
maximal möglichen Nutzdatenmengen, bei MUDP 254 Byte (Kapitel 4.3) bzw. bei MTCP
251 Byte (Kapitel 4.4), von den IP Knoten eingehalten werden und der zulässige Portbereich
0 .. 15 von MUDP und MTCP berücksichtigt wird. Eventuelle Verbindungsversuche auf Ports
ausserhalb des zulässigen Bereichs werden ansonsten als ICMP Paket mit dem Code „port unreachable“ [Pos81b] an den Internet Host mitgeteilt.
Die Kommunikation ist damit transparent.
Ein MIP Knoten initiiert die Kommunikation zu einem IP Host
Die Behandlung von Datenpaketen geschieht analog zur oben beschriebenen Vorgehensweise.
Jedoch kann der Tabelleneintrag für die Zuordnung der MIP Adresse an der Schnittstelle des
Gateways auf die IP Adresse nicht automatisch angelegt werden.
Der Gateway Applikation wurde deshalb ein Dienst angegliedert, der mit einem einfachen Protokoll die Namen- und Adressauflösung ermöglicht. Dieses Protokoll nutzt MUDP Datenpakete.
Die Kommunikation ist nach dieser Initialisierungsphase transparent.
Die Abbildung 5.10 zeigt das Datenformat, welches für die Namen- und Adressauflösung genutzt wird. Die Beschreibung der einzelnen Protokollfelder erfolgt anschließend.
Type
Mit diesem Feld wird die Funktion des Paketes laut Tabelle 5.1 angegeben.
86
KAPITEL 5. DEMONSTRATIONSSYSTEM
Type
4 Bit
Code
4 Bit
Data
0 .. 253 Byte
Abbildung 5.10: Paket für die Namen- und Adressauflösung
0x0Hex
0x1Hex
0x2Hex
0x3Hex
Get Host by Name
(Anforderung einer MIP Adresse durch Namenauflösung)
Get Host by Address
(Anforderung einer MIP Adresse durch Adressauflösung)
MIP Address is
(Bekanntgabe der zugewiesenen MIP Adresse)
Error
(Signalisierung von aufgetretenen Fehlern)
Tabelle 5.1: Type für die Namen- und Adressauflösung
Code
Code enthält eine Angabe, die in Abhängigkeit von Type interpretiert wird.
Data
Enthält weitere Daten in Abhängigkeit von Type. Es sind maximal 253 Byte erlaubt.
Get Host by Name
Hiermit fordert ein MIP Knoten die Gateway Applikation auf, einen Tabelleneintrag für die Zuordnung der MIP Adresse an der Schnittstelle des Gateways auf eine IP Adresse anzulegen. Der
gewünschte Zielhost wird über seinen Hostnamen angegeben. Die Auflösung des Hostnamens
in die IP Adresse geschieht innerhalb des Internet Protokollstapels mit Hilfe des Dienstes DNS
(Domain Name System) [Moc87a, Moc87b].
Das Feld Code ist für die zukünftige Angabe des verwendeten Zeichensatzes im Feld Data reserviert. Es muss derzeit immer auf 0x0Hex gesetzt werden.
In das Feld Data wird im Klartext unter Verwendung des ASCII (American Standard Code for Information Interchange) Zeichensatzes der gewünschte Hostname, z. B.
„hostname.domain.top-level-domain“, eingetragen.
Get Host by Address
Hiermit fordert ein MIP Knoten die Gateway Applikation auf, einen Tabelleneintrag für die
Zuordnung der MIP Adresse an der Schnittstelle des Gateways auf eine IP Adresse anzulegen.
Der gewünschte Zielhost wird über seine IP Adresse angegeben.
5.2. FAZIT
87
Das Feld Code ist ungenutzt, es muss immer auf 0x0Hex gesetzt werden.
Die IP Adresse wird numerisch als vier Byte in das Feld Data eingetragen.
MIP Address is
Dieses Paket wird als Antwort auf die vorherigen Anfragen von der Gateway Applikation versendet, es enthält die zugewiesene MIP Adresse.
Das Feld Code ist ungenutzt, es wird immer auf 0x0Hex gesetzt.
Das Feld Data enthält die MIP Adresse in numerischer Form als zwei Byte.
Error
Dieses Paket dient der Gateway Applikation zur Signalisierung von Fehlern.
Das Feld Code (Tabelle 5.2) spezifiziert den Fehler näher.
Das Feld Data bleibt leer.
0x0Hex
0x0Hex
0x1Hex
Invalid Paket
(Die Anfrage ist ungültig oder hat nicht mit den Paketen
„Get Host by Name“ oder „Get Host by Address“ stattgefunden.)
Host unknown
(Wird versendet wenn die Auflösung des Hostnamens
innerhalb des IP Protokollstapels gescheitert ist.)
Too much connections
(Signalisiert, dass die maximale Verbindungsanzahl des
MIP Protokollstapels erreicht ist und ein erneuter Verbindungsversuch zu einem späteren Zeitpunkt notwendig ist.)
Tabelle 5.2: Code bei Error
5.2
Fazit
Die Funktionsfähigkeit der Protokollfamilie konnte mit den zuvor beschriebenen Tests in realen
Aufbauten nachgewiesen werden. Alle wesentlichen Funktionen der definierten Protokolle der
hierarchischen Familie sind bei den drei Szenarien verwendet worden. Darüber hinaus sind eine
Vielzahl der Anforderungen aus Kapitel 3.1, wie z. B. gemeinsame Schnittstellen, einheitliche
Transportdienste, einheitliches Adressierungsschema, Wegewahl unter Berücksichtigung von
QoS-Parametern, Optimierung für Steuerdaten, Interoperabilität mit der Internet-Welt, von den
Tests ebenfalls bestätigt worden.
Beim Szenario Warenbuchungssystem (Kapitel 5.1.1) stellten die begrenzten Ressourcen der
16 Bit Architektur eine Herausforderung für die Umsetzung das Gateways dar. Einerseits mussten neben der Applikation beide Protokollstapel, MTCP/MIP und TCP/IP, auf dem embedded
88
KAPITEL 5. DEMONSTRATIONSSYSTEM
System zur Verfügung stehen. Andererseits konnte auf dem Universalsteuergerät 2 nur ein Prozessor Modul mit maximal jeweils 512 kByte FlashEPROM und RAM verwendet werden, da
nur in dieser Kombination auch gleichzeitig das benötigte Ethernet Modul eingesetzt werden
kann.
Als besonders hinderlich hat sich der begrenzte Speicher auf dem Universalsteuergerät erwiesen. Während der Phase der Fehlersuche und -behebung (sogenanntes Debugging) wird von
der EUROS Entwicklungsumgebung die Software üblicherweise nicht in das FlashEPROM geladen, sondern der Maschinencode und die Laufzeitvariablen ausschließlich im RAM vorgehalten. Eine weitere Verschärfung ergibt sich außerdem dadurch, dass man als Entwickler die
EUROS Betriebssystem Bibliotheken mit Debugging Informationen einbindet, welche detailliertere Informationen über den Programmablauf ausgeben können. Jedoch sind diese Bibliotheken größer und belegen abermals mehr Speicher.
Durch verschiedene Maßnahmen konnte der benötigte Speicherbedarf beim zweiten Universalsteuergerät soweit verkleinert werden, dass das Gateway funktionsfähig wurde. Für das Betriebssystems EUROS wurde die Speicheraufteilung und die Größe des Stack (Stapelspeichers)
angepasst, die maximal erlaubten Prozesse auf ein Mindestmaß reduziert und zu guter Letzt
die Bibliotheken ohne Debugging Informationen eingesetzt. Beim MTCP/MIP Protokollstapel
wurden die Pufferspeicher für Datenpakete reduziert und nur eine eingehende Verbindung erlaubt. Die Applikation verwendet den TCP/IP Protokollstapel nur zur Übermittlung der Strichcodedaten an den Webserver, verzichtet jedoch auf die Auswertung der in HTML formatierten
Rückmeldung. Das erfolgreiche Senden des Barcodes kann direkt am webbasierten Benutzerinterface verfolgt werden.
Das Szenario Warenbuchungssystem ist somit ein erfolgreicher Test für den verbindungsorientierten und transaktionsbasierten Transportdienst mit MTCP auf Basis der Vermittlungsschicht
mit MIP.
Mit den Aufbauten zum Test der Basisfunktionen für das dynamische Routing (Kapitel 5.1.2)
konnte in überschaubaren Netzwerkstrukturen nachvollzogen werden, dass das Erkennen benachbarter Router und der Austausch der Topologie-Informationen mit dem Routingprotokoll
MOPSF korrekt stattgefunden hat.
Beim zweiten Aufbau wurde beobachtet, dass nach dem Einschalten des System eine erhöhte Netzwerklast durch MOSPF Database Description Pakete und dadurch ausgelöste
Datenbankaustausch-Vorgänge auftrat. Dieser Einschwingvorgang ist eine Folge aus dem aktiv werden der Netzwerkschnittstellen in den Routern und dem Erkennen der Nachbarschaften.
In einem realen System sollte dieser Sachverhalt berücksichtigt werden. Im Testaufbau wurde
dem so begegnet, dass die MOSPF Database Description Pakete beim Start der Router verzögert versendet worden sind.
Ebenfalls beim Aufbau 2 hat der Austausch der Datenbank mit den Topologie-Informationen
fast eine Sekunde gedauert, was doch etwas langsam erscheint. Der Grund hierfür sind künstlich
eingefügte Verzögerungszeiten im Programmablauf, die zum besseren Verfolgen des Vorgänge
dienen. Ein weiterer Grund ergibt sich duch die Ausgabe der Meldungen über die asynchrone
serielle Schnittstelle (RS232) mit 57600 kBit/s. So dauert z. B. das reine Übertragen eines Datenbankaustauschs wie in Abbildung 5.8 in der Größenordnung von 100 ms. In einem realen
Aufbau würden diese Latenzzeiten natürlich nicht auftreten.
Auf eine Realisierung der weniger komplexen Vorgänge, der Berechnung der Leitungskosten
und den Aufbau der Routingtabellen, wurde verzichtet. Solch ein Test würde auch nur in einem
5.2. FAZIT
89
größeren Aufbau einen Sinn machen, der die Wegewahl über viele Router und diverse alternative Routen zulässt. Hierfür standen aber leider nicht genügend Universalsteuergeräte zur
Verfügung.
Mit dem Testaufbau für die Interoperabilität zwischen MIP und IP (Kapitel 5.1.3) konnte die
einfache Übergangsmöglichkeit zwischen der hierarchischen Protokollfamilie für die Steuerdatenkommunikation und der Internet-Welt erfolgreich überprüft werden. Nachdem alle bisherigen Szenarien mit dem 16 Bit Mikrocontroller realisiert worden sind, ist dies auch gleichzeitig
ein Nachweis für die Plattformunabhängig der MIP Familie, da nun die x86 Architektur zum
Einsatz kommt.
Unter Einschränkung auf die maximalen Nutzdatenmengen von MTCP und MUDP und deren
zulässigen Portbereich kann die Gateway Applikation ohne Kenntniss über die Semantik der Inhalte Informationen zwischen den beiden Welten austauschen. Der Datentransfer wird dadurch
erheblich einfacher und effektiver.
Initiiert ein IP Host die Kommunikation zu einem MIP Knoten, so gestaltet sich die Umsetzung
der Adressierung für die Gateway Applikation in der Tat sehr einfach. Für den umgekehrten Fall
ist das Verfahren leider aufwendiger, da hier ein Dienst für die Namen- und Adressauflösung
für MIP Knoten geschaffen werden musste. Von Vorteil bleibt, dass für IP Hosts die Kommunikation in jedem Fall transparent bleibt.
Das Protokoll für die Namen- und Adressauflösung realisiert eine einfache Abfrage/AntwortAufgabenstellung. Es konnte erfolgreich auf Basis von MUDP Datenpaketen in diesem Szenario getestet werden.
90
KAPITEL 5. DEMONSTRATIONSSYSTEM
Kapitel 6
Zusammenfassung und Ausblick
Entsprechend dem Stand der Technik existiert bis heute kein einheitlicher Standard, der die
Kommunikation zwischen verschiedenen Automatisierungsgeräten festlegt.
Die Netzwerkstruktur in Kraftfahrzeugen, bei der industriellen Automatisierung und in Gebäuden ist heterogen, weil sich für die Anwendungsbereiche die unterschiedlichsten Feldbusse
nebeneinander etabliert haben. Eine Konvergenz der Netze ist auch in Zukunft nicht zu erwarten, da jedes System seine spezifischen Eigenschaften aufweist.
Viele Anwendungen setzen noch direkt auf der Sicherungsschicht auf. Aufgrund der eingesetzten eingebetteten Systeme mit ihren historisch bedingten begrenzten Ressourcen wird einem
geringen Overhead der Vorrang eingeräumt. Wegen der anwendungsspezifischen Dimensionierung besteht kein Bedarf für das Fragmentieren großer Datenpakete. In den eng begrenzten
Einsatzgebieten mit anfangs nur einem Bussegment bestand keine Notwendigkeit für die Wegewahl (Routing).
Gewisse höhere Protokolle, wie sie beispielsweise vom OSI-Modell vorgesehen werden, existieren zwar. Jedoch sind diese Protokollschichten nur für bestimmte Anwendungen und/oder
einem Feldbus definiert worden. Demzufolge existieren auch nur sehr unterschiedlich Ausprägungen auf oder bis zu einer gewissen Schicht des OSI-Modells.
Die bisherige Vorgehensweise hat nun eine konzeptionelle Grenze erreicht. In großen Automatisierungssystemen kommen nebeneinander für verschiedene Bereiche unterschiedlich spezialisierte Feldbusse zum Einsatz. Aus Gründen der erwünschten Interaktion der Teilsysteme kann
die Kommunikation zwischen den Netzwerksystemen nur über aufwendige, nicht standardisierte Gateways untereinander ermöglicht werden.
Hier beginnt nun der Beitrag dieser Arbeit. Es wird ein Konzept entwickelt, das eine Lösung
für zukunftssichere Entwicklungen zum Steuerdatenaustausch in heterogenen Netzwerkumgebungen bietet.
Bei der Formulierung der Anforderungen an das Protokoll werden besonders Steuerungsanwendungen, die einen Einsatz mehrerer Feldbusse und ihr Zusammenwirken benötigen, in Betracht
gezogen. Den Applikationen muss eine gemeinsame Schnittstelle zur Verfügung gestellt werden. Darauf aufbauend können dann vereinheitlichte Gateways entstehen. Einheitliche Transportdienste und ein einheitliches Adressierungsschema, die Erreichbarkeit von Automatisierungsgeräten bei Ausfall von einzelnen Netzwerksegmenten in einem ausreichend vermaschten
System und die Wegewahl unter Berücksichtigung des Quality of Service (QoS) in geeignet
91
92
KAPITEL 6. ZUSAMMENFASSUNG UND AUSBLICK
strukturierten Feldbusumgebungen sind geforderte Aspekte. Im normalen Betrieb werden nur
wenige Nutzdatenbyte pro Datenrahmen übertragen, dabei spielt ein möglichst geringer Overhead eine wichtige Rolle. Um die Möglichkeit zur Softwareaktualisierung von Steuergeräten zu
bieten, müssen zeitweilig auch größere Datenmengen übertragen werden. Für die Diagnose und
Wartung ist eine Integration in bestehende Kommunikations- und Computersysteme notwendig.
Deshalb ist eine möglichst einfache Übergangsmöglichkeit in die Internet-Welt erforderlich.
Anhand von Anwendungsbeispielen wird der Mehrwert einer Protokollfamilie für die Steuerdatenkommunikation vorgestellt. Für verschiedene Einsatzbereiche werden Referenzarchitekturen
entwickelt und daran die Vorteile beim verbesserten Zusammenwirken der Teilsysteme diskutiert.
Es werden zwei unterschiedliche Lösungsansätze vorgestellt mit denen die geforderten Funktionen für die Steuerungsanwendungen umgesetzt werden könnten. Der erste Vorschlag sieht für
Applikationen eine Programmierschnittstelle (API) mit definierten Funktionsaufrufen vor. Die
API wird durch eine Anpassungsschicht bereitgestellt, die für Softwareentwickler als Middleware und für Netzwerkentwickler als vergleichbar mit der Schicht 7 gesehen werden kann.
Der zweite Lösungsvorschlag sieht eine hierarchische Protokollfamilie vor, welche dem ISO
OSI-Modell folgt und konzeptionell Nutzbares von der Internet-Protokollfamilie übernimmt.
Entsprechend der gewohnten Sichtweise eines Netzwerkentwicklers erfolgt die Konvergenz der
heterogenen Netze dabei in der Schicht 3 und die Transportdienste sind in der Schicht 4 angesiedelt. Im Folgenden werden die beiden Lösungsansätze diskutiert, dabei wird dem offenen
modularen Konzept der hierarchischen Protokollfamilie der Vorrang gegenüber dem aufwendigen monolithischen Protokollblock mit der Anpassungsschicht für die API gegeben.
Der Kern dieser Arbeit besteht in der Definition der hierarchischen Protokollfamilie und der
Beschreibung der Funktionsweise im Stil eines Standards. Um einen für die Feldbusse geringeren Overhead unter Gewährleistung der zuvor geforderten Eigenschaften zu erzielen, wurden
Protokolle mit kleinen, optimierten Headern konzipiert.
Das Micro Internet Protocol (MIP) stellt zusammen mit den Anpassmodulen zu den Feldbussen die Netzwerkschicht dar. Auf dieser Schicht geschieht die Konvergenz der Feldbusse und
erfolgt die einheitliche logische Adressierung. Auf die Verwendung von Gateways kann innerhalb dieses Systems fortan verzichtet werden, da MIP die Voraussetzungen bietet, um die
Wegewahl mittels Routern auf der Schicht 3 durchführen zu können. Die Berücksichtigung des
QoS erfolgt mit dem ToS Feld im MIP Header. Die Optimierung für die Steuerdatenkommunikation zeigt sich durch den verkleinerten Header, der unter Beibehaltung aller notwendigen
Funktionen fast nur noch ein Drittel der Headergröße von IP aufweist.
Vier weitverbreitete Bussysteme, LIN, CAN, Bluetooth und IEEE 1394, wurden aufgrund ihrer
unterschiedlichen Einsatzzwecke und Eigenschaften für die Definition von exemplarischen Anpassungen ausgewählt. Die Anpassmodule für Bluetooth und IEEE 1394 mussten jeweils mit
einem zusätzlichen Hilfsprotokoll zur Auflösung der logischen Adressierung auf das Adressmodell der zugrundeliegenden Technologie ausgestattet werden. Für LIN und CAN wurde eine
elegante Möglichkeit gefunden, um ohne diesen zusätzlichen Aufwand auszukommen.
Alle weiteren Protokolle sind auf der Schicht 4 angesiedelt.
Das Micro Internet Control Message Protocol (MICMP) ist das notwendige Hilfsprotokoll für
die Signalisierung von Fehlern bei der Verarbeitung von MIP Datagrammen. Außerdem dient
MICMP der Netzwerkdiagnose. Die Größe des MICMP Headers konnte soweit reduziert werden, dass er gegenüber der Headergröße von ICMP nur noch ein Achtel beträgt.
93
Das Micro User Datagram Protocol (MUDP) stellt den Anwendungen eine einheitliche Schnittstelle für den unbestätigten Datentransport bereit. Der MUDP Header konnte im Vergleich zu
UDP auf ein Achtel der Größe reduziert werden.
Das Micro Transmission Control Protocol (MTCP) vereinigt auf elegante Weise den bestätigten und transaktionsbasierten Datentransport in einem gemeinsamen Protokoll und stellt den
Anwendungen hierfür eine einheitliche Schnittstelle bereit. Der Ablauf bei MTCP wurde so
optimiert, dass Nutzdaten bereits während des Verbindungsaufbaus und bis kurz vor der Trennung der Verbindung noch transportiert werden können. Die Transaktion kann dadurch quasi
als Spezialfall der bestätigten Verbindung gehandhabt werden. Die Größe des MTCP Headers
konnte auf ein Fünftel der Headergröße von TCP verschlankt werden.
Micro Open Shortest Path First (MOSPF) vervollständigt die Protokollfamilie mit einem Link
State Routingprotokoll für die Wegewahl unter Berücksichtigung von QoS-Parametern. Mit
MOSPF werden nur die Änderungen an der Topologie ausgetauscht und somit nur wenig Netzwerkverkehr erzeugt. Als Link State Routingprotokoll reagiert MOSPF wesentlich schneller auf
Topologieänderungen als ein Distance Vector Routingprotokoll. Beides kommt dem Einsatz für
die Steuerdatenkommunikation mit Feldbussen entgegen. Der MOSPF Header konnte soweit
verkleinert werden, dass er nur noch ein Achtel der Headergröße von OSPF aufweist.
Eine eingehendere Analyse betrachtet die Effektivität von MIP, sowie die Transferzeiten und
Latenzzeiten eines MTCP/MIP Datenrahmens. Dabei zeigt sich, dass IP via Ethernet gerade
bei kleinen Nutzdatengrößen keine vertretbare Lösung für die Steuerdatenkommunikation darstellt. Bei ≤ 18 Nutzdatenbyte verursacht MIP unabhängig von den vier ausgewählten Feldbussen immer einen wesentlich kleineren Overhead als IP. Beim Versenden von Datagrammen
via Bluetooth ACL DH5 Paketen oder via dem IEEE 1394 ist MIP grundsätzlich besser. Die
geringere Leistungsfähigkeit von LIN bei der Transferzeit und Latenzzeit verwundert aufgrund
der Kenndaten dieses Feldbusses nicht. Der geringe Overhead beim hochbitratigen IEEE 1394
läßt eine hohe Leistungsfähigkeit erwarten. Wegen der fairen Arbitrierung und der Optimierung
auf große Datenpakete fällt die Latenzzeit aber relativ groß aus. Bei gleichzeitigem isochronem Datenverkehr kann sie im Extremfall sogar bis auf beinahe das Zehnfache ansteigen. Diese
Analysen unterstreichen auch nochmals die Sinnhaftigkeit für den Einsatz der unterschiedlichen
Feldbusse nebeneinander in einem Automatisierungssystem.
Zur Demonstration der zuvor entwickelten Protokolle wurden möglichst universelle Entwicklungsumgebungen geschaffen. Für anspruchsvollere Aufgaben mit grafischer Bedienoberfläche
wird die x86 Architektur und das Betriebssystem Linux verwendet. Als typischer Vertreter eines
Knotens in einem embedded System kommt der 16 Bit Mikrocontroller C167 mit integriertem
CAN Controller und das multitaskingfähige Echtzeitbetriebssystem EUROS zum Einsatz. Für
untergeordnete Aufgaben als Coprozessor auf Zusatzmodulen der 16 Bit Architektur und für
abgesetzte Slave Knoten findet der RISC Mikrocontroller PIC16 Verwendung.
In Ermangelung geeigneter Komponenten auf dem freien Markt wurde am Institut OMI eine
eigene Entwicklungplattform, das sogenannte Universalsteuergerät, auf Basis der 16 Bit Architektur und dem RISC Mikrocontroller entwickelt. Das Hardwarekonzept ist stark modular
ausgelegt, um eine möglichst hohe Flexibilität zu erreichen.
Alle wesentlichen Funktionen der hierarchischen Protokollfamilie sind in drei Testszenarien
verwendet worden. Die Funktionsfähigkeit und Plattformunabhängigkeit der Protokolle konnte
mit diesen Tests in realen Aufbauten erfolgreich nachgewiesen werden. Außerdem konnten Erfahrungen zur Einschätzung von Speicherverbrauch und Verarbeitungszeit gesammelt werden.
94
KAPITEL 6. ZUSAMMENFASSUNG UND AUSBLICK
Die in dieser Dissertationsschrift vorgestellte hierarchische Protokollfamilie zur universellen
Steuerdatenkommunikation in heterogenen Netzwerkumgebungen zeigt ein zukunftsweisendes
Konzept für die Automatisierung auf.
Aufgrund der rasanten Fortentwicklung bei den Hardwarekomponenten existieren schon jetzt
wesentlich leistungsfähigere embedded Systeme. Somit werden die bei den realisierten Teilaspekten aufgetretenen Engpässe bei den Ressourcen in der Zukunft eine immer geringere Rolle spielen.
Ein wichtiger nächster Schritt wäre nun der Einsatz der Protokollfamilie in einem komplexen realen Automatisierungssystem mit einer Vielzahl von Routern und Endknoten, die über
verschiedene Feldbusse miteinander vernetzt sind, vergleichbar den Referenzarchitekturen in
Kapitel 3. Damit könnten weitere Erfahrungen mit den Protokollen gesammelt werden und Optimierungen an der Implementierung vorgenommen werden.
Weitere Schritte wären die Definition von Schnittstellen zu anderen Feldbussen nach dem Vorbild der bisherigen Anpassungen. Für Router könnten spezielle integrierte Bausteine entwickelt
werden, die MIP Datagramme wesentlich effektiver verarbeiten können als das bisher mit softwaregestützter Hardware möglich ist. Bei einem offenen System, insbesondere mit Anbindung
zum Internet, werden alsbald Fragen zur Sicherheit entstehen. Hierauf wird man mit Firewalls
und vergleichbaren Überlegungen aus der Internet-Welt reagieren können.
Anhang A
Berechnungen
Nomenklatur
Die Funktion
y = AUFRUNDEN (x)
rundet die Zahl x auf den nächstgrößeren ganzzahligen Wert auf.
Die Funktion
y = MAX (x1 ; x2 )
gibt den größeren Wert der beiden Argumente x1 oder x2 zurück.
Mit
n<Bezeichnung>
wird eine Anzahl an Byte bezeichnet.
Mit
m<Bezeichnung>
wird eine Anzahl an Datenrahmen bezeichnet.
Mit
NKnoten
wird eine Anzahl an Knoten bezeichnet.
95
96
ANHANG A. BERECHNUNGEN
Größe der Protokollheader
Größe des Standard IP Headers ohne Optionen [Pos81a]:
nIP Header = 20 Byte
(A.1)
Größe des MIP Headers (Kapitel 4.1):
nMIP Header = 7 Byte
(A.2)
Größe des MTCP Headers (Kapitel 4.4):
nMTCP Header = 4 Byte
A.1
Effektivität und Overhead
A.1.1
LIN
(A.3)
Bei LIN wird ein Bytefeld auf dem physikalischen Medium mit 10 Bit, bestehend aus einem
Startbit, den 8 Nutzdatenbit und einem Stoppbit, gesendet [LIN03].
Der Overhead durch die Schnittstelle zu LIN (Kapitel 4.1.1):
nMIP↔LIN Schnittstelle = 2 Byte
(A.4)
LIN unconditional
Der Overhead durch das LIN Protokoll mit unbedingten Datenrahmen [LIN03]:
nLIN u. Protokoll = nBreak + nSynch + nIdentifier + nChecksum
14
=
Byte + 1 Byte + 1 Byte + 1 Byte
10
= 4,4 Byte
(A.5)
Die Anzahl der Nutzdatenbyte eines LIN Datenrahmens [LIN03]:
nLIN u. Nutzdaten = 8 Byte
(A.6)
Die Anzahl der benötigten unbedingten LIN Datenrahmen zum Transport eines MIP Datagramms:
nMIP Header + nNutzdaten
mLIN u. Datenrahmen = AUFRUNDEN
(A.7)
nLIN u. Nutzdaten − nMIP↔LIN Schnittstelle
Die Anzahl der auf dem physikalischen Medium gesendeten Byte:
nLIN u. Daten = mLIN u. Datenrahmen · (nLIN u. Protokoll + nLIN u. Nutzdaten )
(A.8)
A.1. EFFEKTIVITÄT UND OVERHEAD
97
LIN event triggered
Der Overhead durch das LIN Protokoll mit ereignisgesteuerten Datenrahmen [LIN03]:
nLIN e. Protokoll = nBreak + nSynch + nIdentifier + nID of unc. Frame + nChecksum
14
=
Byte + 1 Byte + 1 Byte + 1 Byte + 1 Byte
10
= 5,4 Byte
(A.9)
Die Anzahl der Nutzdatenbyte eines LIN Datenrahmens [LIN03]:
nLIN e. Nutzdaten = 7 Byte
(A.10)
Die Anzahl der benötigten ereignisgesteuerten LIN Datenrahmen zum Transport eines MIP
Datagramms:
nMIP Header + nNutzdaten
(A.11)
mLIN e. Datenrahmen = AUFRUNDEN
nLIN e. Nutzdaten − nMIP↔LIN Schnittstelle
Die Anzahl der auf dem physikalischen Medium gesendeten Byte:
nLIN e. Daten = mLIN e. Datenrahmen · (nLIN e. Protokoll + nLIN e. Nutzdaten )
A.1.2
(A.12)
CAN
Durch das Bit Stuffing [BOS91] hinzugefügte Bits werden bei der Berechnung vernachlässigt.
Der Overhead durch einen CAN Extended Datenrahmen [BOS91]:
nCAN Protokoll = nSOF + nIdentifier + nSRR + nIDE + nRTR + nreserved Bits +
nDLC + nCRC + nACK + nEOF + nIFS
(1 + 29 + 1 + 1 + 1 + 2 + 4 + 16 + 2 + 7 + 3) Bit
=
Bit
8 Byte
= 8,375 Byte
(A.13)
Die verwendeten Abkürzungen für die Felder sind: SOF – Start of Frame, SRR – Substitute
Remote Request, IDE – Identifier Extension, RTR – Remote Transmission Request, DLC –
Data Length Code, CRC – Cyclic Redundancy Check, ACK – Acknowledgement, EOF – End
of Frame, IFS – Inter Frame Space.
Die Anzahl der maximalen Nutzdatenbyte eines CAN Datenrahmens [BOS91]:
nCAN Nutzdaten = 8 Byte
(A.14)
Der Overhead durch die Schnittstelle zu CAN (Kapitel 4.1.2):
nMIP↔CAN Schnittstelle = 1 Byte
(A.15)
98
ANHANG A. BERECHNUNGEN
Die Anzahl der benötigten CAN Extended Datenrahmen zum Transport eines MIP Datagramms:
nMIP Header + nNutzdaten
mCAN Datenrahmen = AUFRUNDEN
(A.16)
nCAN Nutzdaten − nMIP↔CAN Schnittstelle
Die Anzahl der auf dem physikalischen Medium gesendeten Byte:
nCAN Daten = mCAN Datenrahmen · (nCAN Protokoll + nMIP↔CAN Schnittstelle ) +
(A.17)
nMIP Header + nNutzdaten
A.1.3
Bluetooth
Das BNEP over L2CAP Protokoll verwendet die Asynchronous Logical Transport (ACL) Verbindungen [SIG04a, SIG04c].
Der Overhead durch ein Basic Rate Paket [SIG04c]:
nBasic Rate Header = nAccess Code + nPacket Header
72 Bit + 54 Bit
=
Bit
8 Byte
= 15,75 Byte
(A.18)
Der Overhead durch das BNEP over L2CAP Protokoll [SIG04c]:
nBNEP Protokoll = nL2CAP Header connection−oriented + nBNEP_Type
= 4 Byte + 1 Byte
= 5 Byte
(A.19)
Der Overhead durch die Schnittstelle zu BNEP (Kapitel 4.1.3):
nMIP↔BNEP Schnittstelle = 1 Byte
(A.20)
Die Größe des L2CAP Datenrahmens zum Transport eines MIP Datagramms:
nL2CAP Daten = nBNEP Protokoll + nMIP↔BNEP Schnittstelle +
nMIP Header + nNutzdaten
(A.21)
Bluetooth DH1
Ein ACL DH1 Paket besteht aus einem ein Byte großen Header, maximal 27 Nutzdatenbyte und
einer 16 Bit CRC Prüfsumme [SIG04c].
Im Bedarfsfall nimmt der Bluetooth Protokollstapel an der Schnittstelle zwischen L2CAP und
der ACL Verbindung eine Fragmentierung vor.
A.1. EFFEKTIVITÄT UND OVERHEAD
99
Der Overhead durch das Bluetooth DH1 Protokoll [SIG04c]:
nDH1 Protokoll = nBasic Rate Header + nDH1 Header + nDH1 CRC
= 15,75 Byte + 1 Byte + 2 Byte
= 18,75 Byte
(A.22)
Die Anzahl der maximalen Nutzdatenbyte eines Bluetooth DH1 Datenrahmens [SIG04c]:
nDH1 Nutzdaten = 27 Byte
(A.23)
Die Anzahl der benötigten DH1 Datenrahmen zum Transport eines MIP Datagramms:
nL2CAP Daten
(A.24)
mDH1 Datenrahmen = AUFRUNDEN
nDH1 Nutzdaten
Die Anzahl der gesendeten Byte:
nBluetooth DH1 Daten = mDH1 Datenrahmen · nDH1 Protokoll + nL2CAP Daten
(A.25)
Bluetooth DH5
Ein ACL DH5 Paket besteht aus einem zwei Byte großen Header, maximal 339 Nutzdatenbyte
und einer 16 Bit CRC Prüfsumme [SIG04c]. Die Nutzdatenkapazität eines ACL DH5 Pakets
ist damit ausreichend groß, so dass der Bluetooth Protokollstapel keine Fragmentierung für den
Transport eines MIP Datagramms vornehmen muss.
Der Overhead durch das Bluetooth DH5 Protokoll [SIG04c]:
nDH5 Protokoll = nBasic Rate Header + nDH5 Header + nDH5 CRC
= 15,75 Byte + 2 Byte + 2 Byte
= 19,75 Byte
(A.26)
Die Anzahl der gesendeten Byte zum Transport eines MIP Datagramms:
nBluetooth DH5 Daten = nDH5 Protokoll + nL2CAP Daten
A.1.4
(A.27)
IEEE 1394
Das Nutzdatenfeld bei IEEE 1394 muss immer auf volle Quadlet, entsprechend 4 Byte, aufgefüllt werden.
Die Anzahl der benötigten Quadlet im IEEE 1394 Data Field zum Transport eines MIP Datagramms:
nMIP Header + nNutzdaten
m1394 Data Field = AUFRUNDEN
(A.28)
4 Byte
100
ANHANG A. BERECHNUNGEN
IEEE 1394 WRDB
Der Overhead durch das IEEE 1394 WRDB Protokoll [IEE95]:
n1394 WRDB Protokoll = nWRDB Header + ndata_CRC
= (5 Quadlet + 1 Quadlet) · 4
Byte
Quadlet
= 24 Byte
(A.29)
Die Anzahl der zu versendenden Byte:
n1394 WRDB Daten = n1394 WRDB Protokoll + m1394 Data Field · 4 Byte
(A.30)
IEEE 1394 GASP
Der Overhead durch das IEEE 1394 GASP Protokoll [IEE98]:
n1394 GASP Protokoll = nGASP Header + ndata_CRC
= (4 Quadlet + 1 Quadlet) · 4
Byte
Quadlet
= 20 Byte
(A.31)
Die Anzahl der zu versendenden Byte:
n1394 GASP Daten = n1394 GASP Protokoll + m1394 Data Field · 4 Byte
A.1.5
(A.32)
Zum Vergleich: IP via Ethernet
Der Overhead durch einen Ethernet Datenrahmen ohne Virtual Local Area Network (VLAN)
Tag [IEE02]:
nEth Protokoll = nPreamble + nSFD + nDestination Addr + nSource Addr + nType + nFCS
= (7 + 1 + 6 + 6 + 2 + 4) Byte
= 26 Byte
(A.33)
Die verwendeten Abkürzungen für die Felder sind: SFD – Start Frame Delimiter, FCS – Frame
Check Sequence.
Der Datenrahmen muss auf mindestens 46 Byte Nutzdaten aufgefüllt werden (sogenanntes Padding), um die Minimalgröße von 64 Byte für einen Ethernet Datenrahmen zu erreichen.
Die Anzahl der gesendeten Byte zum Transport eines IP Datagramms:
nEth Daten = nEth Protokoll + MAX (46 Byte ; nIP Header + nNutzdaten )
(A.34)
A.2. TRANSFERDAUER UND LATENZZEIT
A.2
101
Transferdauer und Latenzzeit
Zur Abschätzung der Transferdauer und Latenzzeit wird ein MTCP Datenpaket mit 8 Nutzdatenbyte, der typischen Nutzdatenmenge in der Steuerdatenkommunikation, verwendet.
Folglich müssen
nNutzdaten = nMTCP Header + nMTCP Nutzdaten
= 4 Byte + 8 Byte
= 12 Byte
(A.35)
von einem MIP Datagramm übertragen werden.
Die folgenden Berechnungen basieren auf den obenstehenden Formeln aus Anhang A.1.
A.2.1
LIN unconditional
kBit
s
Für die Berechnung wird die maximal mögliche Bitrate von 20
verwendet [LIN03].
Die Transferdauer des MTCP Datenpakets:
tTransfer LIN u. =
=
nLIN u. Nutzdaten · 10
Bit
Byte
Bitrate
Bit
49,6 Byte · 10 Byte
20
= 24,8 ms
(A.36)
kBit
s
(A.37)
Die Latenzzeit zwischen der Übertragung zweier MTCP Datenpakete bei NKnoten = 16 Knoten
im Netz und einer zyklischen Abfrage aller Knoten durch den Master:
tLatenz LIN u. = NKnoten · mLIN u. Datenrahmen · tLIN u. Datenrahmen
Bit
12,4 Byte · 10 Byte
= 16 · 4 ·
20 kBit
s
= 396,8 ms
A.2.2
(A.38)
(A.39)
CAN
Für die Berechnung wird die maximal mögliche Bitrate von 1 MBit
verwendet [BOS91]. Durch
s
das Bit Stuffing [BOS91] hinzugefügte Bits werden bei der Berechnung vernachlässigt.
Die Transferdauer des MTCP Datenpakets:
tTransfer CAN =
=
nCAN Nutzdaten · 8
Bitrate
47,125 Byte · 8
= 377 µs
1
Bit
Byte
(A.40)
Bit
Byte
MBit
s
(A.41)
102
ANHANG A. BERECHNUNGEN
Die Latenzzeit zwischen der Übertragung zweier MTCP Datenpakete:
tLatenz CAN = mCAN Datenrahmen · tCAN Datenrahmen, max.
Bit
16,375 Byte · 8 Byte
= 3·
1 MBit
s
= 393 µs
A.2.3
(A.42)
(A.43)
Bluetooth DH1
Bluetooth verwendet ein Zeitschlitzverfahren mit tSlot = 625 µs. Der Master beginnt in den
Zeitschlitzen mit gerader Nummer, die Slaves in den Zeitschlitzen mit ungerader Nummer
[SIG04c] zu senden.
Die Transferdauer des MTCP Datenpakets:
tTransfer Bluetooth DH1 = mDH1 Datenrahmen · tSlot
= 1 · 625 µs
= 625 µs
(A.44)
(A.45)
Die Latenzzeit zwischen der Übertragung zweier MTCP Datenpakete bei 7 Slaves im Piconet,
die jeweils eine ACL DH1 Verbindung zum Master haben:
tLatenz Bluetooth DH1 = (NKnoten − 1) · 2 · tSlot + tSlot
= (7 − 1) · 2 · 625 µs + 625 µs
= 8,125 ms
A.2.4
(A.46)
(A.47)
IEEE 1394 GASP
Für die Berechnung wurde die Basisdatenrate S100, entsprechend Bitrate = 98,304
wendet.
MBit
,
s
ver-
Die Übertragungsdauer des MTCP Datenpakets:
tTransfer 1394 GASP = tarb + tdata prefix +
n1394 GASP Daten · 8
Bitrate
Bit
Byte
+
tdata end + tsubaction gap
(A.48)
Bit
40 Byte · 8 Byte
≈ 2,6 µs + 0,1 µs +
+ 0,25 µs + 10 µs
98,304 MBit
s
≈ 12,95 µs
(A.49)
Die Werte für tarb , tdata prefix , tdata end und tsubaction gap sind aus [IEE95] entnommen.
A.2. TRANSFERDAUER UND LATENZZEIT
103
Aufgrund fairer Arbitrierung beträgt die Latenzzeit zwischen der Übertragung zweier MTCP
Datenpakete in einem Netz mit NKnoten = 63 Knoten und Nutzung der maximalen Nutzdatengröße nDaten, max. = 512 Byte der IEEE 1394 GASP Datenrahmen:
tLatenz 1394 GASP = (NKnoten − 1) ·
tarb + tdata prefix +
(nGASP Header + nDaten, max. ) · 8
Bitrate!
tdata end + tsubaction gap
≈ (63 − 1) ·
Bit
Byte
+
(A.50)
2,6 µs + 0,1 µs +
(20 + 512) Byte · 8
98,304
MBit
s
Bit
Byte
+
!
0,25 µs + 10 µs
≈ 3,5 ms
(A.51)
Die Latenzzeit vergrößert sich noch weiter, falls Bandbreite für isochrone Kanäle reserviert
worden ist.
Im denkbar schlechtesten Fall kann die Verzögerungszeit auf bis zu ≈ 32 ms ansteigen. Dieser
Fall wird erreicht, wenn die gesamte erlaubte isochrone Bandbreite auf 64 Kanäle verteilt wird
die von den 63 verschiedenen möglichen Netzknoten einzeln arbitriert werden und zudem alle
Netzknoten asynchrone Datenpakete mit maximaler Größe versenden wollen. Dabei kommt
etwa ein asynchrones Paket auf vier isochrone Zyklen.
104
ANHANG A. BERECHNUNGEN
Anhang B
Universalsteuergerät
Im Rahmen dieser Arbeit und durch mehrere Kooperationen mit Industriepartnern motiviert
wurde zu Testzwecken eine Entwicklungsplattform, das sogenannte Universalsteuergerät, entworfen. Das Hardwarekonzept ist stark modular ausgelegt, um mit möglichst geringem Aufwand einzelne Module tauschen zu können. Primärer Zweck ist umfassende Erfahrungen zu
sammeln im:
• Schaltungsdesign
• Analyse des Stromverbrauchs
• Auslegung des Kommunikationsmediums mit seinen Ansteuerkomponenten
• Protokolldesign
• Applikationsdesign
Hardwareaufbau
Das Universalsteuergerät setzt sich aus folgenden Modulen zusammen:
• Das Basis Modul, auf der sich die Spannungsversorgung und Leistungselektronik befindet
• Das IEEE 1394 Modul als zentrales Element mit dem IEEE 1394 Link Layer-Baustein
• Das Prozessor Modul mit integriertem CAN Controller für die Applikationen
• Die IEEE 1394 Physical Layer Module
• Ein E/A-Aufsatz Modul mit diversen Schnittstellen
• Ein Power Line Modul
• Ein LIN Modul
105
106
ANHANG B. UNIVERSALSTEUERGERÄT
• Ein Bluetooth Modul
• Ein Ethernet Modul
• Ein MiniMMI Modul als einfaches Mensch Maschine Interface (MMI)
Weitere ergänzende Module zum Betrieb mit dem Universalsteuergerät sind:
• Ein Complex Device
• Ein LIN Slave Knoten
Für den Betrieb ist minimal das Basismodul mit der Spannungsversorgung und das IEEE 1394
Modul mit dem Prozessor Modul notwendig. Alle weiteren Module sind je nach Einsatzzweck
optional.
Die am Institut OMI entwickelten Module werden im Folgenden kurz vorgestellt. Für die Funktion entscheidende eingesetzte integrierte Bausteine oder Baugruppen sind entsprechend gesondert erwähnt.
B.1. BASIS MODUL
B.1
107
Basis Modul
Das Basis Modul beinhaltet die Spannungsversorgung für die elektronischen Komponenten
(5 V; 3,3 V; 1,8 V) und 8 niederohmige Leistungsschalter auf einer Europlatine (160 mm x
100 mm). Ein PIC16 Mikrocontroller der Firma Microchip Technology Inc.1 dient als I2 C-Slave
zur Erfassung von bis zu vier Temperaturen, der Ströme und des Zustands der Leistungsschalter.
Die Abbildung B.1 zeigt das Modul.
Abbildung B.1: Basis Modul
B.2
IEEE 1394 Modul
Das IEEE 1394 Modul ist das Herzstück des Aufbaus. Typischerweise werden die unteren beiden Ebenen der IEEE 1394 Spezifikation jeweils als Hardwarekomponenten integriert und gefertigt. Auf dem IEEE 1394-Modul befindet sich als zentrales Element somit der IEEE 1394
Link Layer Baustein von der Firma Texas Instruments Inc.2 . Der hier verwendete Baustein ist
speziell für die Anwendung in optimierten eingebetteten Systemen vorgesehen. Der Baustein
besitzt im wesentlichen drei Schnittstellen. Eine zum Physical Layer, eine für den Host Controller und eine für isochrone Datenströme.
An der Host Controller Schnittstelle ist das Prozessor Modul angeschlossen. Hierüber kann der
Link Layer Baustein programmiert bzw. können die höheren asynchronen Protokolle abgewickelt werden.
Die isochrone Schnittstelle besteht aus zwei gleichen Teil-Schnittstellen. Es können somit zwei
isochrone Kanäle unabhängig voneinander gehandhabt werden. Insbesondere können an einer
Schnittstelle Daten gesendet und an der anderen empfangen werden. An der Schnittstelle werden direkt auf unterster Ebene die isochronen Daten gehandhabt. In einem embedded System
1
2
http://www.microchip.com/
http://www.ti.com/
108
ANHANG B. UNIVERSALSTEUERGERÄT
geht man normalerweise davon aus, dass echtzeitkritische Daten nicht wie in einem PC in Software abgearbeitet werden, sondern direkt in der Hardware. So können direkt an dieser Schnittstelle entsprechende Kodier-/Dekodierbausteine angeschlossen werden. Im Fall des IEEE 1394
Moduls wurde ein Field Programmable Gate Array (FPGA) der Firma Altera Corporation3 angeschlossen, das frei konfiguriert werden kann.
Zusätzlich wurde das FPGA mit RAM und einem ausreichend großen Festspeicher (FlashEPROM) versehen (je 1 MByte). So kann einerseits die Konfiguration des FPGA permanent
abgelegt werden und andererseits kann im FPGA wiederum ein Prozessor vorgesehen werden.
In diesem Fall handelt es sich um den von der Firma Altera zur Verfügung gestellten Nios Core.
Die Abbildung B.2 zeigt das Blockschaltbild des Moduls. Die Abbildung B.3 ist eine Fotografie
der Oberseite des IEEE 1394 Moduls.
Physical
Layer Modul
IEEE 1394 a/b
Configuration
Controller
Link Layer
TSB41AB4
IEEE 1394
Serial Bus
Phytec
phyCORE 167
MODUL
2xRS-232, 2xCAN
Boot+Reset-Switch
2 LED's
ISO Port 1+2
PowerSupply
3.3 V
JTAG
Interface
Altera APEX
EP20K200E
240QFP
Module
Connector-2
120 Pins
je 1 Mbyte
RAM / Flash
memory
1xRS232
Module
Connector-1
120 Pins
Abbildung B.2: Schema des IEEE 1394 Moduls
B.3 Prozessor Modul
Dieses Modul wurde zugekauft. Es kommt das phyCORE-167 Modul der Firma PHYTEC
Messtechnik GmbH4 zum Einsatz. Es enthält einen C167 16 Bit Mikrocontroller mit integriertem CAN Controller der Firma Infineon Technologies AG5 , RAM und FlashEPROM Speicher.
3
http://www.altera.com/
http://www.phytec.de/
5
http://www.infineon.com/
4
B.4. IEEE 1394 PHYSICAL LAYER MODULE
109
Abbildung B.3: IEEE 1394-Modul mit Prozessor Modul (links mitte) und IEEE 1394a Physical
Layer Modul (links unten)
B.4
IEEE 1394 Physical Layer Module
Nachdem die Eigenschaften des Physical Layers für den Einsatz im Fahrzeug entscheidend sind
und zudem verschiedene Varianten (IEEE 1394a, b und mit automotiven Erweiterungen) existieren, wurde hierfür ein eigenes Modul vorgesehen. Das IEEE 1394a Modul in Abbildung B.3
ist ein Entwicklungsmuster von der Firma Texas Instruments. Im wesentlichen wurden zwei
Module selbst aufgebaut. Ein reines IEEE 1394b Modul (Abbildung B.4 links) und ein Modul
an dem zusätzlich verschiedene Filtermaßnahmen vorgesehen und eigene Medien angeschlossen werden können (Abbildung B.4 rechts).
Abbildung B.4: IEEE 1394b Physical Layer Module
110
B.5
ANHANG B. UNIVERSALSTEUERGERÄT
E/A-Aufsatz Modul
Die meisten unbenutzen Anschlüsse des Prozessor Moduls und des FPGA werden über Steckverbinder zur Verfügung gestellt. So können sehr einfach ihrem jeweiligen Zweck entsprechende Erweiterungen als Aufsatz-Module aufgesteckt werden.
Das E/A-Aufsatz Modul stellt 8 digitale Eingänge, die 8 A/D Eingänge des C167 mit Schutzbeschaltung versehen, eine zweite serielle Schnittstelle mit RS232 Pegeln sowie eine galvanisch
und optisch getrennte CAN Schnittstelle bereit. Zusätzlich ist ein PIC16 Mikrocontroller vorgesehen an den alle Signale angeschlossen sind, die mit einem eventuellen Powermanagement
zusammenhängen. Der PIC16 kann als I2 C-Slave programmiert werden. Derzeit ist der Mikrocontroller allerdings nur mit einem Programm versehen, das sicherstellt, dass alle Ein- und
Ausgänge in einem hochimpedanten Zustand verbleiben. Die Abbildung B.5 zeigt eine Fotografie des Moduls.
Abbildung B.5: E/A-Aufsatz-Modul
B.6 Power Line Modul
Das Universalsteuergerät ist für den Einsatz als Feature Controller (FC), einer Art Master Knoten in EHS Netzwerken, vorgesehen. Das Power Line Modul besteht aus zwei getrennten Platinen, die mit einem Flachbandkabel verbunden werden.
Die Power Line Adapterplatine ist in der Größe einer halben Europlatine (100 mm x 80 mm)
entworfen worden. Über die Federkontaktstecker ist sie in den Modulstapel des Universalsteuergeräts integrierbar. Auf der Adapterplatine kommt als Coprozessor ein PIC16 zum Einsatz,
der die Aufgaben der Schicht 2 bei der Power Line Kommunikation übernimmt. Zum Aufgabenbereich des PIC16 zählt folglich die Steuerung des Power Line Modems, sowie die Kommunikation mit dem C167 Prozessor über die I2 C Schnittstelle. Die Abbildung B.6 zeigt eine
Fotografie der Adapterplatine.
B.7. LIN MODUL
111
Abbildung B.6: Power Line Adapterplatine
Das Power Line Modem ist auf einer getrennten Platine untergebracht, die zur Gewährleistung
des Berührungsschutzes gegenüber dem 230 V Wechselspannungsnetz in ein Kunststoffgehäuse
montiert wird. Das zentrale Element ist der Home Automation Modem Baustein ST7537HS1
von der Firma STMicroelectronics6 . Die Abbildung B.7 zeigt das Power Line Modem.
Abbildung B.7: Power Line Modem
B.7
LIN Modul
Das Universalsteuergerät ist für den Einsatz als Master Knoten am LIN Bus vorgesehen. Der
LIN Transceiver Baustein TJA1020, welcher von der Firma Philips Semiconductors7 stammt, ist
daher an die integrierte asynchrone Schnittstelle des C167 Mikrocontroller mit quartzstabilem
Takt angebunden. Die Abbildung B.8 zeigt das Modul.
6
7
http://www.st.com
http://www.semiconductors.philips.com/
112
ANHANG B. UNIVERSALSTEUERGERÄT
Abbildung B.8: LIN Modul
B.8 Bluetooth Modul
Das Bluetooth Modul ist so konzipiert, dass es entweder mit dem Universalsteuergerät genutzt
werden kann oder alternativ auch unabhängig davon an einem beliebigen Gerät mit RS232
Schnittstelle, z. B. einem PC, betrieben werden kann. Die Bluetooth Baugruppe auf dem Modul
stammt von der Firma Taiyo Yuden Co., Ltd8 . Die Abbildung B.9 zeigt das Modul.
Abbildung B.9: Bluetooth Modul mit Bluetooth Baugruppe (rechts)
8
http://www.yuden.co.jp/bt/
B.9. ETHERNET MODUL
B.9
113
Ethernet Modul
Der Ethernet Adapter stammt von der Firma SYS TEC electronic GmbH9 . Er bietet eine
10BASE2 Schnittstelle zum Anschluss an ein Koxialkabel und eine 10BASE-T Schnittstelle zum Anschluss an ein Kabel mit verdrillten Paaren [IEE02]. Auf dem Adapter kommt ein
Ethernet Controller NET91C96 der Firma SMSC (Standard Microsystems Corporation)10 zum
Einsatz.
Zur Verwendung mit dem Universalsteuergerät musste lediglich eine Trägerplatine zur elektrischen und mechanischen Anpassung entwickelt werden. Die Abbildung B.10 zeigt das Modul.
Abbildung B.10: Ethernet Modul mit Ethernet Adapter (rechts)
9
10
http://www.systec-electronic.com/
http://www.smsc.com/
114
B.10
ANHANG B. UNIVERSALSTEUERGERÄT
MiniMMI Modul
Das MiniMMI Modul ist in der Größe einer halben Europlatine ausgeführt. Es ist in den Modulstapel des Universalsteuergeräts integrierbar oder kann abgesetzt davon betrieben werden. Ein
PIC16 Mikrocontroller dient als I2 C-Slave, zur Ansteuerung des alphanumerischen Displays
und zur Abfrage der Tastaturmatrix. Die Abbildung B.11 zeigt die fertig aufgebaute Platine.
Abbildung B.11: MiniMMI Modul
B.11. COMPLEX DEVICE
B.11
115
Complex Device
Ein Complex Device (CoD) ist eine Art Slave Knoten in EHS Netzwerken. Die EHS Spezifikation versteht unter einem CoD Endgeräte wie Sensoren oder Aktoren, die ihre Dienste über
das Netzwerk anderen Knoten in Form von Informationen oder Leistungen selbstständig zur
Verfügung stellen.
Das hier entwickelte CoD wurde aus Platzgründen auf zwei aufeinandergesteckte Platinen aufgeteilt. Es kann außerdem noch mit dem MiniMMI aus Kapitel B.10 ergänzt werden.
Die Basisplatine (Abbildung B.12) im Euro-Format beherbegt alle Funktionsgruppen, die mit
dem 230 V Wechselspannungsbereich in Verbindung stehen. Hier ist die Spannungsversorgung,
Nulldurchgangserkennung, 2 Dimmerausgänge und das Power Line Modem untergebracht. Das
Power Line Modem ist schaltungstechnisch baugleich mit der Modem Platine in Abbildung B.7.
Für den Berührungsschutz existiert eine Plexiglas-Abdeckung.
Abbildung B.12: Complex Device – Leistungsteil und Modem
Auf der Prozessorplatine (Abbildung B.13) im halben Euro-Format sind zwei PIC16 Mikrocontroller untergebracht. Einer davon dient als Hauptprozessor und der andere als Coprozessor,
der wiederum die Aufgaben der Schicht 2 bei der Power Line Kommunikation übernimmt. Außerdem stehen hier Anschlüsse für 4 digitale Ein-/Ausgänge, 5 analoge Eingänge und eine I2 C
Schnittstelle zur Verfügung.
116
ANHANG B. UNIVERSALSTEUERGERÄT
Abbildung B.13: Complex Device – Prozessorplatine
B.12. LIN SLAVE KNOTEN
B.12
117
LIN Slave Knoten
Der LIN Slave Knoten beinhaltet einen 5 V Spannungsregler für die elektronischen Komponenten und einen PIC16 Mikrocontroller zum Einlesen von 10 analogen Eingängen und zur
Ansteuerung von 8 niederohmigen Leistungsschaltern, zwei davon mit Pulsweitenmodulation.
Als Kontroll- und Überwachungsfunktionen stehen die Erfassung von zwei Temperaturen sowie
der Ströme und des Zustands der Leistungsschalter zur Verfügung. Abbildung B.14 zeigt das
Modul.
Abbildung B.14: LIN Slave Knoten – Oberseite (links), Unterseite (rechts)
118
ANHANG B. UNIVERSALSTEUERGERÄT
Abbildungsverzeichnis
2.1
Netzhierarchie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
3.1
Fahrzeug Netzarchitektur – Funktionaler Aspekt . . . . . . . . . . . . . . . . .
15
3.2
Computer Aided Manufacturing Modell . . . . . . . . . . . . . . . . . . . . .
17
3.3
Anpassungsschicht mit API als einheitliche Schnittstelle . . . . . . . . . . . .
18
3.4
Protokollfamilie (rechts) eingeordnet in das OSI-Modell (links) . . . . . . . . .
19
3.5
Heterogene Netze als Subnetze und durch Router verbunden . . . . . . . . . .
20
4.1
MIP Datagramm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27
4.2
LIN Datenrahmen [LIN03] . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29
4.3
Verwendung des Protected Identifier . . . . . . . . . . . . . . . . . . . . . . .
30
4.4
LIN Data (unconditional frame, sporadic frame) . . . . . . . . . . . . . . . . .
31
4.5
LIN Data (event-triggered frame) . . . . . . . . . . . . . . . . . . . . . . . . .
31
4.6
CAN Extended Datenrahmen [BOS91] . . . . . . . . . . . . . . . . . . . . . .
33
4.7
CAN Identifier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
34
4.8
CAN Data Length Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
35
4.9
CAN Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
35
4.10 BNEP over L2CAP Datenrahmen [SIG04a] . . . . . . . . . . . . . . . . . . .
37
4.11 MARP-BT Datagramm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
38
4.12 Format für ein MIP Datagramm per BNEP over L2CAP . . . . . . . . . . . . .
39
4.13 Write Request for Data Block (WRDB) Datenrahmen [IEE95] . . . . . . . . .
41
4.14 Global Asynchronous Stream Packet (GASP) Datenrahmen [IEE98] . . . . . .
42
4.15 MARP-1394 Datagramm . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
44
4.16 Format für ein MIP Datagramm per IEEE 1394 . . . . . . . . . . . . . . . . .
46
119
120
ABBILDUNGSVERZEICHNIS
4.17 MICMP Datenpaket . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
47
4.18 Data bei Echo Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
48
4.19 Data bei Redirect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
49
4.20 MUDP Datenpaket . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
51
4.21 MTCP Datenpaket . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
53
4.22 Steuerbits im Feld Control . . . . . . . . . . . . . . . . . . . . . . . . . . . .
53
4.23 FSM einer MTCP Verbindung . . . . . . . . . . . . . . . . . . . . . . . . . .
56
4.24 Öffnen einer MTCP Verbindung . . . . . . . . . . . . . . . . . . . . . . . . .
58
4.25 Bidirektionales Senden und Empfangen . . . . . . . . . . . . . . . . . . . . .
58
4.26 Unerwartete Segmentreihenfolge . . . . . . . . . . . . . . . . . . . . . . . . .
59
4.27 Beenden einer MTCP Verbindung . . . . . . . . . . . . . . . . . . . . . . . .
59
4.28 Eine MTCP Transaktion . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
60
4.29 MOSPF Datenpaket . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
62
4.30 MOSPF Hello Datenpaket . . . . . . . . . . . . . . . . . . . . . . . . . . . .
64
4.31 Link State Advertisement (LSA) Datenpaket . . . . . . . . . . . . . . . . . . .
65
4.32 MOSPF Database Description (DD) Datenpaket . . . . . . . . . . . . . . . . .
66
4.33 MOSPF DD Datenpaket: Steuerbits im Feld Options . . . . . . . . . . . . . .
67
4.34 MOSPF Link State Request Datenpaket . . . . . . . . . . . . . . . . . . . . .
67
4.35 MOSPF Link State Update Datenpaket . . . . . . . . . . . . . . . . . . . . . .
68
4.36 MOSPF Link State Acknowledgement Datenpaket . . . . . . . . . . . . . . .
69
4.37 Austausch der Datenbank . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
69
4.38 Die entstandene hierarchische Protokollfamilie . . . . . . . . . . . . . . . . .
71
4.39 Effektivität bei 1 bis 12 Nutzdatenbyte . . . . . . . . . . . . . . . . . . . . . .
74
4.40 Effektivität bei 1 bis 255 Nutzdatenbyte . . . . . . . . . . . . . . . . . . . . .
75
5.1
Aufbau des Warenbuchungssystems . . . . . . . . . . . . . . . . . . . . . . .
79
5.2
Einordnung des Warenbuchungssystems in das OSI-Modell . . . . . . . . . . .
80
5.3
Testaufbau 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
81
5.4
Testaufbau 1 – Ausschnitt aus dem Protokoll von Router 01.01 . . . . . . . . .
82
5.5
Testaufbau 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
83
5.6
Testaufbau 2 – Übersicht der benachbarten Router . . . . . . . . . . . . . . . .
83
ABBILDUNGSVERZEICHNIS
121
5.7
Testaufbau 2 – Erfassen der angeschlossenen Subnetze und der Feldbustypen .
83
5.8
Testaufbau 2 – Verteilen der Topologie-Informationen . . . . . . . . . . . . . .
84
5.9
Einordnung der Gateway Applikation in das OSI-Modell . . . . . . . . . . . .
85
5.10 Paket für die Namen- und Adressauflösung . . . . . . . . . . . . . . . . . . .
86
B.1 Basis Modul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
B.2 Schema des IEEE 1394 Moduls . . . . . . . . . . . . . . . . . . . . . . . . . 108
B.3 IEEE 1394-Modul mit Prozessor Modul (links mitte) und IEEE 1394a Physical
Layer Modul (links unten) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
B.4 IEEE 1394b Physical Layer Module . . . . . . . . . . . . . . . . . . . . . . . 109
B.5 E/A-Aufsatz-Modul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
B.6 Power Line Adapterplatine . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
B.7 Power Line Modem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
B.8 LIN Modul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
B.9 Bluetooth Modul mit Bluetooth Baugruppe (rechts) . . . . . . . . . . . . . . . 112
B.10 Ethernet Modul mit Ethernet Adapter (rechts) . . . . . . . . . . . . . . . . . . 113
B.11 MiniMMI Modul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
B.12 Complex Device – Leistungsteil und Modem . . . . . . . . . . . . . . . . . . 115
B.13 Complex Device – Prozessorplatine . . . . . . . . . . . . . . . . . . . . . . . 116
B.14 LIN Slave Knoten – Oberseite (links), Unterseite (rechts) . . . . . . . . . . . . 117
122
ABBILDUNGSVERZEICHNIS
Tabellenverzeichnis
4.1
MIP Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28
4.2
LIN Fragment Number . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
32
4.3
CAN Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
34
4.4
Fragment Number . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
36
4.5
MARP-BT OpCode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
39
4.6
MARP-1394 OpCode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
45
4.7
MICMP Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
47
4.8
Code bei Echo Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
48
4.9
Code bei Redirect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
49
4.10 Code bei Destination Unreachable . . . . . . . . . . . . . . . . . . . . . . . .
50
4.11 Code bei Parameter Problem . . . . . . . . . . . . . . . . . . . . . . . . . . .
50
4.12 Bedeutung der Signale in Control . . . . . . . . . . . . . . . . . . . . . . . . .
54
4.13 MOSPF Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
63
4.14 Beispieldefinition: MOSPF Network Type . . . . . . . . . . . . . . . . . . . .
66
4.15 MOSPF DD Datenpaket: Bedeutung der Signale in Options . . . . . . . . . . .
67
4.16 Beispieldefinition: Priorität der Feldbusse abhängig vom ToS Wert . . . . . . .
70
4.17 Für das Beispiel: Leitungskosten der Feldbustypen abhängig vom ToS Wert . .
70
4.18 Größe der Protokollheader im Vergleich . . . . . . . . . . . . . . . . . . . . .
73
4.19 Transferdauer und Latenzzeiten im Vergleich . . . . . . . . . . . . . . . . . .
75
5.1
Type für die Namen- und Adressauflösung . . . . . . . . . . . . . . . . . . . .
86
5.2
Code bei Error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
87
123
124
TABELLENVERZEICHNIS
Literaturverzeichnis
[And99]
A NDERSON, Don: Firewire System Architecture. Addison Wesley Longman Inc.,
Reading, Massachusetts, USA, 1999
[BLe96]
B ERNERS -L EE, T. ; ET AL .: RFC 1945: Hypertext Transfer Protocol – HTTP/1.0.
IETF, The Internet Engineering Task Force, http://www.ietf.org/rfc/rfc1945.txt,
May 1996
[BOS91]
CAN Spezifikation Version
http://www.bosch.de/, 1991
[Bra92]
B RADEN, R.: RFC 1379: Extending TCP for Transactions – Concepts. IETF,
The Internet Engineering Task Force, http://www.ietf.org/rfc/rfc1379.txt, November 1992
[Bra94]
B RADEN, R.: RFC 1644: T/TCP – TCP Extensions for Transactions. IETF, The
Internet Engineering Task Force, http://www.ietf.org/rfc/rfc1644.txt, July 1994
[CF01]
C ACH, Petr ; F IEDLER, Petr: INTERNET-DRAFT IP over CAN (draft-cafi-can-ip00.txt). IETF, The Internet Engineering Task Force, http://www.ietf.org/, March
2001. – Document expired September 2001
[CiA02]
CiA DS 301 V4.02: CANopen application layer and communication profile. CiA
CAN in Automation, Am Weichselgarten 26, 91058 Erlangen, http://www.cancia.org/, Februar 2002
[Com02]
C OMER, Douglas E.: Computernetzwerke und Internets. 3., überarbeitete Auflage.
Pearson Studium, München, 2002. – ISBN 3–8273–7023–X
[DIN91]
DIN 19245: PROFIBUS. DIN Deutsches Institut für Normung e.V., 10772 Berlin,
http://www.din.de/, April 1991. – Zurückgezogen: 1997, Ersetzt durch: EN 50170
Teil 2
[DIN93]
DIN 19258: INTERBUS-S. DIN Deutsches Institut für Normung e.V., 10772 Berlin, http://www.din.de/, 1993. – Zurückgezogen, Ersetzt durch: EN 50254
[DKS00]
D IETRICH, Dietmar ; K ASTNER, Wolfgang ; S AUTER, Thilo (Hrsg.): EIB: Gebäudebussystem. Hüthig Verlag, Heidelberg, 2000. – ISBN 3–7785–2795–9
[EHS96]
Home Systems Specification 1.3. EHSA European Home Systems Association,
Brüssel, Belgien, http://www.ehsa.com/, 1996
2.0.
125
Robert
Bosch
GmbH,
Stuttgart,
126
LITERATURVERZEICHNIS
[EIA99]
EIA 709.1: Control Network Protocol Specification. EIA Electronic Industries
Alliance, Arlington, USA, http://www.eia.org/, 1999
[EIB99]
EIBA Handbook Series, Release 3.0. EIBA European Installation Bus Association,
Brüssel, Belgien, http://www.eiba.com/, 1999
[EN96]
EN 50170 Volume 2: PROFIBUS – General purpose field communication system. CENELEC European Committee for Electrotechnical Standardization, rue
de Strassart 35 B, Brussels, Belgium, http://www.cenelec.org/, Dezember 1996.
– Zurückgezogen: 2005, Ersetzt durch: IEC 61158 Teile 2 bis 6 und IEC 61784
Teil 1
[EN97]
EN 50254: High efficiency communication subsystem for small data packages.
CENELEC European Committee for Electrotechnical Standardization, rue de
Strassart 35 B, Brussels, Belgium, http://www.cenelec.org/, 1997. – Zurückgezogen: 2005, Ersetzt durch: IEC 61158 Teile 2 bis 6 und IEC 61784 Teil 1
[EN99]
EN 50295: Niederspannungsschaltgeräte - Steuerungs- und Geräte-InterfaceSysteme - Aktuator Sensor Interface (AS-i). CENELEC European Committee
for Electrotechnical Standardization, rue de Strassart 35 B, Brussels, Belgium,
http://www.cenelec.org/, 1999
[EN02]
EN 50325-4: Industrial communications subsystem based on ISO 11898 (CAN)
for controller-device interfaces – Part 4: CANopen. CENELEC European Committee for Electrotechnical Standardization, rue de Strassart 35 B, Brussels, Belgium, http://www.cenelec.org/, 2002
[EN03]
EN 50090: Home and Building Electronic Systems (HBES). CENELEC European
Committee for Electrotechnical Standardization, rue de Strassart 35 B, Brussels,
Belgium, http://www.cenelec.org/, 2003
[ENV98]
ENV 13154-2: Data Communication for HVAC application field net – Part 2:
Protocols. CEN Comité Européen de Normalisation, Brüssel, Belgien, Juni 1998
[Fe99]
F IELDING, R. ; ET AL .: RFC 2616: Hypertext Transfer Protocol – HTTP/1.1.
IETF, The Internet Engineering Task Force, http://www.ietf.org/rfc/rfc2616.txt,
June 1999
[Fel02]
F ELSER, Max (Hrsg.): Vom Feldbus-Krieg zur Feldbus-Koexistenz. Bulletin des
Schweizerischen Elektrotechnischen Vereins (SEV), Fehraltorf, April 2002 . –
Ausgabe 9/2002, S. 24-26, http://felser.ch/download/FE-TR-0202.pdf
[Fle05]
FlexRay Communications System Protocol Specification Version 2.1. FlexRay
Consortium, http://www.flexray.com/, Mai 2005
[I2C00]
The I 2 C-Bus Specification, Version 2.1.
Philips
http://www.semiconductors.philips.com/, January 2000
Semiconductors,
LITERATURVERZEICHNIS
127
[IEC00]
IEC 62026-2: Low-voltage switchgear and controlgear – Controller-device interfaces (CDIs) – Part 2: Actuator sensor interface (AS-i). IEC International
Electrotechnical Commission, 1, rue de Varembé, 1211 Geneva 20, Switzerland,
http://www.iec.ch/, Juli 2000
[IEC02]
IEC 61491: Electrical equipment of industrial machines – Serial data link for
real-time communication between controls and drives. IEC International Electrotechnical Commission, 1, rue de Varembé, 1211 Geneva 20, Switzerland,
http://www.iec.ch/, Oktober 2002
[IEC03a]
IEC 61158: Digital data communications for measurement and control – Fieldbus
for use in industrial control systems. IEC International Electrotechnical Commission, 1, rue de Varembé, 1211 Geneva 20, Switzerland, http://www.iec.ch/, 2003
[IEC03b]
IEC 61784: Digital data communications for measurement and control. IEC International Electrotechnical Commission, 1, rue de Varembé, 1211 Geneva 20,
Switzerland, http://www.iec.ch/, Mai 2003
[IEE91]
IEEE P1212: Draft Standard for a Control and Status Registers (CSR) Architecture for Microcomputer Buses. The Institute of Electrical And Electronics
Engineers, Inc., IEEE Standards Department, Piscataway, NJ 08855-1331, USA,
http://www.ieee.org/, 1991
[IEE95]
IEEE P1394: Standard for a High Performance Serial Bus. The Institute of Electrical And Electronics Engineers, Inc., IEEE Standards Department, Piscataway,
NJ 08855-1331, USA, http://www.ieee.org/, 1995
[IEE98]
IEEE P1394a: Standard for a High Performance Serial Bus. The Institute of Electrical And Electronics Engineers, Inc., IEEE Standards Department, Piscataway,
NJ 08855-1331, USA, http://www.ieee.org/, 1998
[IEE01a]
IEEE P1394.1: Standard for High Performance Serial Bus Bridges (Draft 1.01).
The Institute of Electrical And Electronics Engineers, Inc., IEEE Standards Department, Piscataway, NJ 08855-1331, USA, http://www.ieee.org/, 2001
[IEE01b]
IEEE P1394b: Standard for a High Performance Serial Bus. The Institute of Electrical And Electronics Engineers, Inc., IEEE Standards Department, Piscataway,
NJ 08855-1331, USA, http://www.ieee.org/, 2001
[IEE02]
IEEE 802.3: Standard for Information technology – Telecommunications and information exchange between systems – Local and metropolitan area networks –
Specific requirements – Part 3: Carrier sense multiple access with collision detection (CSMA/CD) access method and physical layer specifications. The Institute
of Electrical And Electronics Engineers, Inc., IEEE Standards Department, Piscataway, NJ 08855-1331, USA, http://www.ieee.org/, March 2002
[ISO89]
ISO 9141: Road vehicles – Diagnostic systems – Requirements for interchange of
digital information. ISO International Organization for Standardization, 1, rue de
Varembé, 1211 Geneva 20, Switzerland, http://www.iso.org/, 1989
128
LITERATURVERZEICHNIS
[ISO94]
ISO/IEC 13213: Information technology – Microprocessor systems – Control and
Status Registers (CSR) Architecture for microcomputer buses. ISO International
Organization for Standardization, 1, rue de Varembé, 1211 Geneva 20, Switzerland, http://www.iso.org/, 1994
[ISO95]
ISO/DIS 14230: Road vehicles – Diagnostic systems – Keyword protocol 2000.
ISO International Organization for Standardization, 1, rue de Varembé, 1211 Geneva 20, Switzerland, http://www.iso.org/, 1995
[ISO02]
ISO/IEC 10589: Information technology – Telecommunications and information
exchange between systems – Intermediate System to Intermediate System intradomain routeing information exchange protocol for use in conjunction with the
protocol for providing the connectionless-mode network service (ISO 8473). ISO
International Organization for Standardization, 1, rue de Varembé, 1211 Geneva
20, Switzerland, http://www.iso.org/, 2002
[ISO03]
ISO 11898: Road vehicles – Controller area network (CAN). ISO International
Organization for Standardization, 1, rue de Varembé, 1211 Geneva 20, Switzerland, http://www.iso.org/, 2003
[ISO04a]
ISO 11898-4: Road vehicles – Controller area network (CAN) – Part 4: Timetriggered communication. ISO International Organization for Standardization, 1,
rue de Varembé, 1211 Geneva 20, Switzerland, http://www.iso.org/, 2004
[ISO04b]
ISO 15765-2: Road vehicles – Diagnostics on Controller Area Networks (CAN) –
Part 2: Network layer services. ISO International Organization for Standardization, 1, rue de Varembé, 1211 Geneva 20, Switzerland, http://www.iso.org/, 2004
[Joh99]
J OHANSSON, P.: RFC 2734: IPv4 over IEEE 1394. IETF, The Internet Engineering Task Force, http://www.ietf.org/rfc/rfc2734.txt, December 1999
[KJBMS00] K UNG, A. ; J EAN -BART, B. ; M ARBACH, O. ; S AUVAGE, S.: The EHS European
Home Systems Network. First Edition / Second Printing. 25 rue du Général Foy,
75008 Paris, France, http://www.trialog.com/ : Trialog, November 1995 / February
2000
[KM99]
K RIESEL, Werner R. ; M ADELUNG, Otto W. (Hrsg.): AS-Interface: Das AktuatorSensor-Interface für die Automation. 2., überarbeitete und erweiterte Auflage.
Carl Hanser Verlag, München, Wien, 1999. – ISBN 3–446–21064–4
[KNX00]
Konnex Specification 1.0.
KNX Konnex Association, Brüssel, Belgien,
http://www.konnex.org/, 2000
[Law94]
L AWRENZ, Wolfhard (Hrsg.): CAN Controller Area Network – Grundlagen und
Praxis. Hüthig Verlag, Heidelberg, 1994. – ISBN 3–7785–2263–7
[LIN02]
LIN – Local Interconnect Network, LIN Specification Package, Revision 1.3. Audi AG, BMW AG, DaimlerChrysler AG, Motorola Inc., Volcano Communications Technologies AB, Volkswagen AG, Volvo Car Corporation, http://www.linsubbus.org/, Dezember 2002. – Kontakt: H.-Chr. v. d. Wense, Motorola GmbH,
Schatzbogen 7, 81829 München, E-Mail: [email protected]
LITERATURVERZEICHNIS
129
[LIN03]
LIN – Local Interconnect Network, LIN Specification Package, Revision 2.0.
LIN Consortium, http://www.lin-subbus.org/, September 2003. – Kontakt: H.Chr. v. d. Wense, Motorola GmbH, Schatzbogen 7, 81829 München, E-Mail:
[email protected]
[Mal98]
M ALKIN, G.: RFC 2453: RIP Version 2. IETF, The Internet Engineering Task
Force, http://www.ietf.org/rfc/rfc2328.txt, November 1998
[Moc87a]
M OCKAPETRIS, P.: RFC 1034: Domain Names – Concepts and Facilities. IETF,
The Internet Engineering Task Force, http://www.ietf.org/rfc/rfc1034.txt, November 1987
[Moc87b]
M OCKAPETRIS, P.:
RFC 1035: Domain Names – Implementation and Specification.
IETF, The Internet Engineering Task Force,
http://www.ietf.org/rfc/rfc1035.txt, November 1987
[MOS05]
MOST – Media Oriented Systems Transport, MOST Specification, Rev 2.4. MOST
Cooperation, Bannwaldallee 48, 76185 Karlsruhe, http://www.mostnet.de/, Mai
2005
[Moy98]
M OY, J.: RFC 2328: OSPF Version 2. IETF, The Internet Engineering Task Force,
http://www.ietf.org/rfc/rfc2328.txt, April 1998
[OSE00]
OSEK COM: Communication Specification Version 2.2.2. OSEK/VDX Offene
Systeme und deren Schnittstellen für die Elektronik im Kraftfahrzeug / Vehicle
Distributed eXecutive, http://www.osek-vdx.org/, Dezember 2000
[PBG99]
P ELLER, M. ; B ERWANGER, J. ; G RIESBACH, R.: Byteflight Specification Draft
Version 0.5. Bayerische Motoren Werke Aktiengesellschaft (BMW AG), München, http://www.byteflight.de, 1999
[PCA00]
Data Sheet PCA82C250 – CAN controller interface. Philips Semiconductors,
5600 Eindhoven, The Netherlands, http://www.semiconductors.philips.com, Januar 2000. – Document order number: 9397 750 06609
[Plu82]
P LUMMER, David C.: RFC 826: An Ethernet Address Resolution Protocol – or
– Converting Network Protocol Addresses to 48 bit Ethernet Address for Transmission on Ethernet Hardware. IETF, The Internet Engineering Task Force,
http://www.ietf.org/rfc/rfc0826.txt, November 1982
[Pop00]
P OPP, Manfred: PROFIBUS-DP/DPV1: Grundlagen, Tipps und Tricks für Anwender. 2., überarbeitete Auflage. Hüthig Verlag, Heidelberg, 2000. – ISBN
3–7785–2781–9
[Pos80]
P OSTEL, J.: RFC 768: User Datagram Protocol. IETF, The Internet Engineering
Task Force, http://www.ietf.org/rfc/rfc0768.txt, August 1980
[Pos81a]
P OSTEL, J.: RFC 791: Internet Protocol. IETF, The Internet Engineering Task
Force, http://www.ietf.org/rfc/rfc0791.txt, September 1981
130
LITERATURVERZEICHNIS
[Pos81b]
P OSTEL, J.: RFC 792: Internet Control Message Protocol. IETF, The Internet
Engineering Task Force, http://www.ietf.org/rfc/rfc0792.txt, September 1981
[Pos81c]
P OSTEL, J.: RFC 793: Transmission Control Protocol. IETF, The Internet Engineering Task Force, http://www.ietf.org/rfc/rfc0793.txt, September 1981
[RHJ99]
R AGGETT, Dave ; H ORS, Arnaud L. ; JACOBS, Ian: HTML 4.01 Specification.
World Wide Web Consortium (W3C), http://www.w3.org/TR/html401/, December 1999
[RSG04]
R ABEL, Matthias (Hrsg.) ; S CHMEISER, Andreas (Hrsg.) ; G ROSSMANN, Hans
Peter (Hrsg.) ; IEEE Intelligent Vehicles Symposium, 14-17 June 2004, University
of Parma, Parma, Italy (Veranst.): Communication architecture for sensorfusion
systems. 2004 . – S. 363 ff.
[SIG03]
SIG, Bluetooth: Specification of the Bluetooth System V1.2 / Bluetooth SIG,
Inc. Bellevue, Washington; Malmö, Sweden, http://www.bluetooth.org/, November 2003. – Specification
[SIG04a]
SIG, Bluetooth: Bluetooth Network Encapsulation Protocol (BNEP) Specification V1.0 / Bluetooth SIG, Inc. Bellevue, Washington; Malmö, Sweden,
http://www.bluetooth.org/, February 2004. – Protocol Specification
[SIG04b]
SIG, Bluetooth:
Bluetooth Personal Area Networking (PAN) Profile V1.0 / Bluetooth SIG, Inc.
Bellevue, Washington; Malmö, Sweden,
http://www.bluetooth.org/, November 2004. – Profile
[SIG04c]
SIG, Bluetooth: Specification of the Bluetooth System V2.0 + EDR / Bluetooth
SIG, Inc. Bellevue, Washington; Malmö, Sweden, http://www.bluetooth.org/, November 2004. – Specification
[SMR+ 03]
S HELBY, Zach (Hrsg.) ; M AHONEN, P. (Hrsg.) ; R IIHIJARVI, J. (Hrsg.) ; R AIVIO,
O. (Hrsg.) ; H UUSKONEN, Pertti (Hrsg.) ; ICC ’03. IEEE International Conference
on Communications, 11-15 May 2003 (Veranst.): NanoIP: The Zen of Embedded
Networking. 2003 . – ISBN 0–7803–7802–4. – Volume 2, S. 1218-1222
[Tan98]
TANENBAUM, Andrew S.: Computernetzwerke. 3., revidierte Auflage. Prentice
Hall, München, 1998. – ISBN 3–8272–9568–8
[TIA97]
ANSI/TIA-232-F-1997: Interface Between Data Terminal Equipment and Data
Circuit-Terminating Equipment Employing Serial Binary Data Interchange. TIA
Telecommunications Industry Association, http://www.tiaonline.org/, September
1997
[TIA98]
ANSI/TIA/EIA-485-A-98: Electrical Characteristics of Generators and Receivers
for Use in Balanced Digital Multipoint Systems. TIA Telecommunications Industry Association, http://www.tiaonline.org/, March 1998
[TTP99]
Specification of the TTP/C Protocol, Version 0.5. TTTech Computertechnik
GmbH, Schönbrunner Str. 7, 1040 Wien, Austria, http://www.tttech.com/, Juli
1999
LITERATURVERZEICHNIS
131
[TTP03]
Time-Triggered Protocol TTP/C, High-Level Specification Document, Protocol Version 1.1.
TTA-Group, Schönbrunner Str. 7, 1040 Wien, Austria,
http://www.ttagroup.org/, November 2003
[Zel01]
Z ELTWANGER, Holger (Hrsg.): CANopen. VDE Verlag GmbH, Berlin und Offenbach, 2001. – ISBN 3–8007–2448–0
132
LITERATURVERZEICHNIS
Veröffentlichungen
Konferenzbeiträge
R ABEL, Matthias ; S CHMEISER, Andreas ; G ROSSMANN, Hans Peter
IEEE VTS 53rd Vehicular Technology Conference, Spring 2001, 6-9 May 2001, Rhodes, Greece (Veranst.): Integrating IEEE 1394 as Infotainment Backbone into the Automotive Environment. 2001. – ISBN 0–7803–6728–6. – Proceedings Volume 3, S. 2026-2031
S CHMEISER, Andreas ; R ABEL, Matthias ; G ROSSMANN, Hans Peter
SPS/IPC/DRIVES 2001, 27.-29.11.2001, Nürnberg (Veranst.): Einsatzmöglichkeiten des IEEE
1394 - Serial Bus in der Automatisierungstechnik. Hüthig Verlag, Heidelberg, November 2001.
– ISBN 3–7785–2833–5. – S. 270-278
R ABEL, Matthias ; S CHMEISER, Andreas ; G ROSSMANN, Hans Peter
ECT 2002 Electronics & Communications in Traffic Systems, 04.-06.06.2002, Augsburg (Veranst.): Service Layer zur Kommunikation zwischen MMIs und Steuergeräten des Multimedia
Systems. Hüthig Verlag, Heidelberg, Juni 2002. – ISBN 3–7785–2885–8. – S. 214-224
R ABEL, Matthias ; S CHMEISER, Andreas ; G ROSSMANN, Hans Peter
IEEE Intelligent Vehicles Symposium, 14-17 June 2004, University of Parma, Parma, Italy
(Veranst.): Communication architecture for sensorfusion systems. 2004. – S. 363 ff.
R ABEL, Matthias ; S CHMEISER, Andreas ; G ROSSMANN, Hans Peter
8th International IEEE Conference on Intelligent Transportation Systems, 13-16 September
2005, Vienna, Austria (Veranst.): Ad-hoc in-car networking concept. 2005
W EGHORN, Hans ; S CHMEISER, Andreas ; G ROSSMANN, Hans Peter ; P IRKER, Michael ;
H AUBOLD, Søren
IADIS (International Association for Development of the Information Society) International
Conference WWW/Internet 2005, 19-22 October 2005, Lisbon, Portugal (Veranst.): ISA4G –
Integrated Student Access ID Card of Fourth Generation. Editors: Pedro Isaías and Miguel
Baptista Nunes, October 2005. – ISBN 972–8924–02–X. – Proceedings Volume 2, S. 333-337
W EGHORN, Hans ; R ATIH, Cahya Kusuma ; G ROSSMANN, Hans Peter ; H ELLWIG, Dieter ;
S CHMEISER, Andreas ; H UTSCHENREITER, Heiko
IADIS (International Association for Development of the Information Society) International
Conference e-Society 2006, 13-16 July 2006, Dublin, Ireland (Veranst.): Mobile Ticket Control
System with RFID Cards for Adminstering Annual Secret Elections.
133
134
Vorträge
S CHMEISER, Andreas
Universal Control-API for a general distributed gateway concept
DAAD Workshop an der Universität Kairo, Ägypten
Oktober 2003
S CHMEISER, Andreas
Network and Transport Layer Protocol Family for Control Applications in a Heterogeneous
Network Environment
Workshop an der Universität Palermo, Sizilien
April 2005
Nichtöffentliche Dokumente
R ABEL, Matthias ; S CHMEISER, Andreas ; H OHMANN, Wolfram ; K URRER, Dietmar
Pink Floyd Study: Comparison and Prospects of Interoperability between Serial Optical
MultiMedia Bus Systems for Automotive Applications, MOST and IEEE 1394
Studie im Auftrag der AM3 AG, Fürth
April / Mai 2000
R ABEL, Matthias ; S CHMEISER, Andreas ; H ÖRMANN, Yvonne
Konzept eines IEEE 1394 basierten Kommunikations-Systems für Fahrzeuge
Studie für die DaimlerChrysler AG, Sindelfingen
Oktober 2000 – Dezember 2003
Herunterladen