Inhaltsverzeichnis
Network Controller/PC Routing
Das Routing ist ganz einfach die Methode, Nachrichten von einem Programm(teil) zu einem anderen zu transportieren.
Messages (Nachrichten)
Je nach physikalischem Transportmittel wird die Message verschieden eingepackt.
Der Vergleich mit einer Briefsendung ist zulässig, da wie dort gibt es
- Zieladresse
- Absender
- Daten
Uns interessiert eigentlich mal nur, wie eine solche Nachricht vom Sender zum Empfänger kommt, daher können uns die Daten selbst erst einmal völlig egal sein.
Zieladresse und Absender sind äquivalent. Sie beinhalten nicht einen Wert, sondern sind strukturierte Pfadangaben .
Bei der Zustellung eines Briefes ist der Pfad klar:
- Postleitzahl / Ortsname, wobei dieser eigentlich redundant ist
- Straße
- Hausnummer
- Türnummer / Familienname, auch der dient in den meisten Fällen nur zur besseren Lesbarkeit
- Vorname
Damit ist dann (üblicherweise) ein Empfänger eindeutig
Das reicht aber nur, weil die Leute bei der Post ein System haben, wodurch sie wissen, wie ein Brief von der Postleitzahl A zur Postleitzahl B kommt.
So ein System können wir bei unserem Netzwerk erstmal nicht voraussetzen.
Netzwerk
Und um die Sache zu diskutieren, nehmen wir einfach eine konkrete PC u. µC Konfiguration an
- Es gibt auf einem PC zwei Programme (Applikationen), die über IP (mit Sockets) mit einem "Server" verbunden sind,
- der wiederum über die RS232 mit einem µC Kontakt hat.
- dieser µC hat auch einen I2C Anschluss
- Auf diesem Bus hängt ein weiterer µC,
- der über die UART mit dem nächsten µC redet.
- Der hat auch I2C, aber einen anderen Bus
- und da drauf hängt noch ein Controller, der hat sonst aber nix.
Und ausgerechnet auf diesem letzten gibt es zwei Programmfunktionen (Func1 u. 2), die Nachrichten vom PC empfangen sollen.
Dynamische Pfade
logische Darstellung
Wenn jetzt nicht bei jedem Rechner ein "Postleitzahlverzeichnis" aufliegt, müssen wir wohl bei den Adressen klitzeklein angeben, wie und wo es weitergeht.
Wenn wir nicht ausschliessen, daß der PC-Server auch mehrere COM-Ports hat, braucht auch der eine Angabe. Das Einzige, was sicher ist, ist die Verbindung Applic <-> PC-Server
- Der vollständige Pfad von "APPLIC" nach "FUNC-1" wäre also
COM(1) / I2C(0x8D) / UART () / I2C (0x8A) / FUNC-1
- Und für die Antwort:
I2C (0x8C) / UART () / I2C (0x8E) / RS232 () / IP (Sock-1) / APPLIC
Würde sich dagegen "FUNC-" gleich auf dem ersten µC befinden, wäre der Pfad wsentlich kürzer:
COM(1) / FUNC-1
bzw.
RS232 () / IP (Sock-1) / APPLIC
das ist die schlechte Nachricht.
Jetzt aber eine gute:
- Da die Wege hin und zurück immer die gleichen sind, können wir die Absenderadresse auch erst unterwegs aufbauen, denn jeder Rechner weiß ja, wer er ist, kann also seine Adresse selbst einfügen.
- Auf der anderen Seite kann man nach jedem "Hop" die Zieladresse um den schon erledigten Schritt verkürzen.
d.h. Unterwegs wird die Zieladresse immer kürzer, die Rücksendeadresse immer länger, in Summe also etwa gleich.
Ich habe im Schema verschiedene Stellen mit Ziffern bezeichnet, mal sehen, wie die Adressangaben da jeweils aussehen:
1 Ziel: COM(1) / I2C(0x8D) / UART () / I2C (0x8A) / FUNC-1 Absender: APPLIC
2 Ziel: I2C(0x8D) / UART () / I2C (0x8A) / FUNC-1 Absender: IP (Sock-1) / APPLIC
3 Ziel: UART () / I2C (0x8A) / FUNC-1 Absender: RS232 () / IP (Sock-1) / APPLIC
4 Ziel: I2C (0x8A) / FUNC-1 Absender: I2C (0x8E) / RS232 () / IP (Sock-1) / APPLIC
5 Ziel: FUNC-1 Absender: I2C (0x8C) / UART () / I2C (0x8E) / RS232 () / IP (Sock-1) / APPLIC
In der Zeichnung habe ich die "5" auch mit "4" bezeichnet. buuh !
physikalische Darstellung
Das ist natürlich so oder so ein ellenlanger Graus.