NDLCom

Node Level Data Link Communication

Ansprechpartner/in:
Moderne robotische Systeme verfügen über eine Vielzahl von dezentralen Sensor- und Steuerelektroniken, welche zum Teil untereinander kommunizieren wollen. Das NDLCom Protokoll ermöglicht es kleine Datenpakete in einem einfachen Netzwerk zwischen Mikrocontrollern, FPGAs und Computern auszutauschen. Dabei ist jeder Teilnehmer mit einer Punkt-zu-Punkt Verbindung zu mindestens einem Nachbarn verbunden und jeder Teilnehmer muss empfangene Nachrichten entsprechend der Empfängeradresse weiterleiten. Implementierungen für das Empfangen, Weiterleiten und Dekodieren von Nachrichten sind für C/C++ und VHDL vorhanden. Das Darstellen, Loggen und Exportieren von empfangenen Daten ist in einer grafischen Benutzerumgebung möglich.
Schlüsselwörter: Serielle Kommunikation, OSI-Layer, Embedded, C, VHDL, Qt, CSV-Export
Status: aktiv
Betriebssystem: Linux, Embedded, FPGA
Programmiersprachen: C, C++,Qt4, VHDL
Eigentumsrechte: Diese Software wurde vom DFKI sowie von der Arbeitsgruppe Robotik der Universität Bremen entwickelt und wird unter dieser Verantwortung weiterentwickelt. Bei Fragen und Anregungen wenden sie sich an die Ansprechpartner.
 

Softwarebeschreibung

Zusammensetzung eines Pakets (Quelle: DFKI GmbH)
Typische Sitzung der Qt4 Gui (Quelle: DFKI GmbH)

Moderne robotische Systeme verfügen über zunehmend mehr dezentrale Verarbeitungsknoten. Diese werden zum Beispiel verwendet um im System verteilte Sensoren auszuwerten oder um eine hochfrequente Regelung von Motoren zu ermöglichen. Das Zusammenfassen der Knoten in einem paketbasierten Punkt-zu-Punkt Netzwerk erlaubt einen flexiblen Datenaustausch zwischen beliebigen Teilnehmern. NDLCom (Node Data Link Communication) definiert ein einfaches Paketformat für Datenaustausch mittels serieller Schnittstellen, das im Gegensatz zu traditionellen Netzwerktechnologien wie IP einen relativ geringen Ressourcenbedarf hat. Das erlaubt auch Mikrocontrollern oder FPGAs mit eingeschränkter Rechenleistung die Kommunikation mit anderen Knoten.

Zur Segmentierung des Datenstroms werden ähnlich wie bei HDLC definierte Marker verwendet. Der Header eines Pakets besteht aus 4 Byte: Jeweils einer Empfänger- und Absenderadresse für bis zu 254 verschiedenen Adressen sowie der speziellen "Broadcast"-Adresse. Weiterhin enthalten ist ein Paket-Zähler zur Erkennung von verlorenen Paketen. Der Nutzlast von maximal 255 Bytes ist die entsprechende Längenangabe vorangestellt. Jedes Paket ist am Ende mit einer 16 Bit Prüfsumme versehen um Übertragungsfehler zu erkennen. Das Wiederherstellen von verloren gegangenen oder beschädigten Paketen wird vom Protokoll nicht unterstützt. Jeder Teilnehmer muss in der Netzwerktopologie über einen eindeutigen Pfad zu erreichen sein, Schleifen sind nicht erlaubt.

Es existiert eine mit Qt4 geschriebene grafische Benutzerumgebung für Linux, um mit einem normalen Computer in einem NDLCom-Netzwerk zu agieren. Es können mehrere Verbindungen über USB, TCP und UDP gleichzeitig aufgebaut werden. Verschiedene Komponenten erlauben Pakete zu empfangen oder zu versenden. Ebenso können die enthaltenen Nutzdaten in ihrem zeitlichen Verlauf ausgewertet und binär oder als CSV zur weiteren Verwendung gespeichert werden. Eine Reihe spezialisierter Widgets ermöglicht die bequeme Bedienung von Teilfunktionen einzelner Knoten. Es bestehen Implementierungen von NDLCom in C/C++ und VHDL, verwendet werden zur Zeit Spartan3/6, STM32 und AVR.

Referenzen

Team: Team II - Hardware Architekturen
Anwendungsfelder: Weltraumrobotik
Verwandte Projekte: FT-Utah
Field Trials Utah mit dem TransTerrA System (06.2016- 03.2017)
BesMan
Behaviors for Mobile Manipulation (05.2012- 07.2016)
iStruct
Intelligente Strukturen für mobile Robotersysteme (05.2010- 08.2013)
LIMES
Lernen intelligenter Bewegungen kinematisch komplexer Laufroboter für die Exploration im Weltraum (05.2012- 04.2016)
TransTerrA
Semi-autonome kooperative Exploration planetarer Oberflächen mit Errichtung einer logistischen Kette sowie Betrachtung terrestrischer Anwendbarkeit einzelner Aspekte (05.2013- 12.2017)
Verwandte Robotersysteme: AILA
Mobile Dual-Arm-Manipulation
Charlie
iStruct Demonstrator
Coyote III
Sherpa
Expandable Rover for Planetary Applications
© DFKI GmbH
zuletzt geändert am 03.01.2017
nach oben