Comm - Netzwerkschicht

Die Netzwerkschicht dient dem Routen von Nachrichten von einem physikalischen Sender an einen physikalischen Empfänger. Für Punkt-zu-Punkt Verbindungen (z.B. serielle Schnittstellen) wird kein Netzwerkprotokoll benötigt.

Netzwerkprotokolle müssen neben der Zieladresse auch die Quelladresse jeder Nachricht übertragen. Darüber hinaus muss es eine ausgezeichnete Broad- oder Multicastadresse geben, Nachrichten an diese Adresse müssen prinzipiell von allen Netzteilnehmern empfangbar sein (wenn der Teilnehmer physikalisch erreichbar ist). Mögliche Protokolle auf der Netzwerkschicht sind z.B. IP oder SHR.

SHR - Single-Hop Routing Protocol

Es wird das Single-Hop Routing Protocol definiert, welches Pakete über maximal einen Hop routet.

Adressen im SHR sind 1 Byte groß. Der Header umfasst insgesamt 3 Bytes. Er enthält nacheinander:

1 Byte                        5                             ID des Transport-Protokolls
1 Byte                        3                             Quelladresse
1 Byte                        255                           Zieladresse
x Bytes                       ...                           Payload
	
Direct Network Protocol

Das Direct Network Protocol dient als Platzhalter, wenn für eine CommChain kein Netzwerkprotokoll benötigt wird, z.B. für serielle Schnittstellen. Da das Protokoll keine Daten überträgt, ist ein Routen für empfangene und gesendete Nachrichten nicht möglich.

Gesendete und empfangene Nachrichten enthalten in der UpperLayerProtocolID des AdaptationLayers eine ID für den Transport- oder Application-Layer. Damit kann die Nachricht oberhalb von DirectNetwork weiterhin auf verschiedene Transport-Protokolle gemultiplext werden.

Der Header für das Direct Network Protocol ist somit leer.

Adressvergabe

LAN/WLAN (IP)

Die Geräte müssen entweder manuell eine IP-Adresse zugewiesen bekommen oder einen DHCP-Server benutzen. Bei manueller Zuweisung muss Kollisionsfreiheit sichergestellt werden (z.B. durch Auto-IP).

CAN

Adressen werden entweder manuell vergeben (1..99) oder das AutoAdress-Protokoll wird benutzt (100..249).

Die Addressen 100..199 werden als Blöcke zu jeweils 10 Adressen reserviert, d.h. über AutoAddressing können nur die Adressen 100, 110, 120 usw. angefragt werden. Dies ermöglicht parallele Anfragen eines Klienten an ein Gerät über IsoTP, da IsoTP keinen Paket-Index oder ähnliches bietet. Dafür nutzt der Klient für jede Anfrage eine der 10 verfügbaren reservierten Adressen als Quelladresse.

Sowohl die Adressen als auch die UpperLayerProtocolID werden über die 29-Bit CanID übertragen. Dabei gilt folgendes Schema:

Bit 0..7:                     Quell-Adresse
Bit 8..15:                    Ziel-Adresse
Bit 16..23:                   UpperLayerProtocolID
Bit 24:                       1
Bit 25-29:                    0 

Beispiel: Die CanID 0x 01 1E FF 64 bezeichnet eine Nachricht an die Broadcast-Adresse 255 von der Quelladresse 100. Das Netzwerkprotokol ist SHR (ProtocolID 0x1E = 30).

ZigBee

Geräte benutzen 16-Bit Adressen, welche vom Koordinator zugewiesen werden.

Seriell

Es werden keine Adressen benötigt.

802.15.4

Adressen werden entweder manuell vergeben (1..99) oder das AutoAdress-Protokoll wird benutzt (100..249).