Aus RN-Wissen.de
Version vom 27. August 2006, 19:03 Uhr von PicNick (Diskussion | Beiträge)

(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche
Laderegler Test Tueftler Seite

Network Controller/PC Routing

Das Routing ist ganz einfach die Methode, Nachrichten von einem Programm(teil) zu einem anderen zu transportieren.

Messages (Nachrichten)

Msglevel.PNG

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

Rncom conf.PNG
  • 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


Offensichtlich braucht es für Ziel- und Absenderadressen variable Längen

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.

Path.PNG

Autor

Siehe auch


LiFePO4 Speicher Test