Hier entsteht eine Seite zur RNcom Schicht 0 - work in progress
An diesem Artikel arbeitet gerade Mitglied Ragnar.
Am besten momentan noch keine gravierenden Ergänzungen / Änderungen vornehmen. Dieser Hinweis verschwindet wenn der Autor soweit ist. Sollte dieser Hinweis länger als drei Tage auf einer Seite sein, bitte beim Autor Ragnar per PM / Mail oder Forum nachfragen ob er vergessen wurde. |
Inhaltsverzeichnis
RNcom Schicht 0 - Übersicht
Allgemeines
Schicht 0 verbindet mehrere Hardware-devices (Prozessoren) miteinander. Über die Verbindungen müssen Datenpakete mit vor unterschiedlichen Längen übertragen werden. Es kann eine maximale Länge der Daten festgelegt werden. Über die Daten können sonst keine Annahmen gemacht werden. Insbesondere können die Daten die Werte 0..255 annehmen.
Aufgrund verschiedener Medien und Implementierungen können die Verbindungen
verschiedene Eigenschaften haben. Jede dieser Eigenschaften kann entweder von
dem Medium direkt unterstützt oder kann (muß aber nicht) durch das
Kommunikationsprotokoll gewährleistet werden.
- Sicherung:
Der Absender erfährt, ob der Empfänger die Daten empfangen hat oder nicht und kann die Daten wenn nötig mehrfach senden bzw. den Abbruch der Übertragung nach melden. Die zur sicheren Übertragung nötigen Befehle wie Acks, Nacks, usw sowie eventuell nötige Sequenznummern müssen innerhalb der Schicht bleiben und dürfen nicht nach außen sichtbar sein.
- Integrität:
Es ist sichergestellt, das genau die Daten ankommen, die abgesendet wurden.
Integrität wird häufig zusammen mit gesicherten Verbindungen verwendet um falsche Daten neu zu senden.
- Bidirektional / Unidirektional:
Unidirektionale Verbindungen brauchen spezielle Synchronisation zur Übertragung. Obwohl es möglich ist, diese Synchronisation an den Nutzer weiterzugeben, sollten Unidirektionale Verbindungen immer durch interne Synchronisation zu virtuellen Bidirektionalen Verbindungen erweitert werden.
Die Schnittstelle der Verbindung kann sowohl Synchron als auch Asynchron
ausgeführt sein. Auch die Unterstützung mehrerer Threads ist möglich.
Beispiele für einige Medien
- UART:
- Übertragung von Datenpakete z.B. durch Frameing
- Sicherung z.B. durch Acks/Nacks, jedes Paket muss direkt acknowledged werden, vorher wird von dem Sender kein weiteres Paket gesendet.
- Integrität z.B. durch Checksummen am Ende des Pakets
- LAN mit TCP-IP streams:
- Übertragung von Datenpaketen z.B. durch <Länge><Daten>
- Sicherung und Integrität durch Transportmedium (TCP-IP) garantiert
- Aufbau der Verbindung z.B. durch Konfiguration
(baue RNcom Verbindung zu 192.168.0.10 auf, bzw. lausche auf RNcom Verbindungen auf port 9000)
- LAN mit UDP Pakets:
- Übertragung von Datenpaketen z.B. durch UDP-Pakete
- Sicherung z.B. durch Ack bzw. Nack des Empfängers
- Integrität durch UDP-Checksumme gesichert
- Aufbau der Verbindung z.B. durch Autodiscovery innerhalb des lokalen Netzes oder Broadcast Gruppe.
- i2c
- Übertragung von Datenpaketen durch begrenzt durch Start/Stopbedingung.
- In Single-Master Systemen Rückübertragung mit Interrupt durch Lesen beim Slave.
- Sicherung: Durch i2c-Protokoll garantiert
- Integrität z.B. durch Checksumme am Ende der Übertragung
- Aufbau der Verbindungen z.B. durch Konfiguration (RNcom device auf i2c-Adresse 0x20)
Allgemeiner Nachrichtenaufbau:
Allgemeines Format der Nachrichten zur oberen Schicht 1 hin
Length | Länge des Datenpaketes |
Byte 1 | Datenpaket |
Byte 2 | |
... | |
Byte n |
Über die Daten dürfen innerhalb der Schicht 0 keine weiteren Annahmen getroffen werden. Lediglich die Länge der Daten ist bekannt.
Siehe auch
- RNcom Schicht 0
- RNcom Schicht 1
- RNcom Schicht 2
und auch: