Forum: Mikrocontroller und Digitale Elektronik Uni-Projekt: Embedded Protokolle in der Anwendungschicht


von Steinhans (Gast)


Lesenswert?

Hallo,

wir haben an der Uni ein Gemeinschaftsprojekt, in dem sechs Cortex M3 
Boards per Ethernet miteinander kommunizieren sollen. Bisher konnten wir 
den uip-Stack in unser Projekt integrieren und wir können auch ein paar 
Daten per UDP austauschen.

So richtig kommen wir jetzt aber nicht auf der Anwendungsschicht weiter 
(OSI 5-7?). Um Zyklisch Prozessdaten auszutauschen scheinen uns die 
Protokolle wie http, ftp oder smtp nicht geeignet.

Was für Protokolle werden in der Praxis im embedded-Bereich in der 
Anwendungsschicht eingesetzt?

Wir wollen folgendes tun:
- Zyklischer Austausch von Prozessdaten (kleinere Datenmenge, Zustände 
Ausgänge, ...)
- Gezielte Abfrage von Daten
- Kommandos
- Ändern von Konfigurationsdaten

Gibt es ein Protokoll, dass diese Fälle oben abdeckt?
Werden üblicherweise verschiedene Protokolle eingesetzt?

Was setzt die Praxis ein?

Grüße
Steinhans









an der Uni haben wir ein paar CortexM3-Entwicklungsboard mit Ether

von Konrad (Gast)


Lesenswert?

Hi,

es gibt Ethernet-basierte Feldbusse. EtherCAT, PROFINET, EtherNet/IP 
usw. Dazu eine Zulieferindustrie, die Protokollstacks verkauft. Fuer 
Uniprojekte lassen sich vielleicht Academic-Lizenzen heraushandeln.

Je nach Groesse Eurer Spatzen koennten das aber unangemessene Kanonen 
sein; wenn die Geraete nur ein bisschen miteinander reden sollen, koennt 
Ihr auch selbst was zusammenschustern. Ich empfehle jedoch, zumindest 
mal grob zu gucken, wie o.g. Feldbusse funktionieren, damit Ihr schon 
mal seht, auf was man alles achten muss.

von Steinhans (Gast)


Lesenswert?

Hallo Konrad,

danke! Das sind Protokolle, die wir auch gesehen haben. Es scheint, als 
sind diese stark in der SPS-Welt verbereitet.

Ist das auch ein Standard, der im Embedded-Bereicht genutzt wird?

Zum selbst zusammenschustern: Irgendwie kann ich mir nicht vorstellen, 
dass in professionellen Projekten etwas selbst zusammengeschustert wird.

Ich kann mir aber auch nicht vorstellen, dass überall die 
"SPS"-Protokolle genutzt werden.

Gibt es noch andere Ideen?

Grüße
Steinhans

von Axel S. (a-za-z0-9)


Lesenswert?

Steinhans schrieb:
> Was setzt die Praxis ein?

Ich kann nicht für Embedded sprechen, aber für professionelles Netzwerk- 
Equipment. Das verwendet zumindest für die Abfrage und teilweise auch 
für die Konfiguration SNMP.

Allerdings hat SNMP den Ruf, nahezu keine Sicherheit zu bieten. Das soll 
mit SNMPv3 zwar besser geworden sein, aber als ich das letzte Mal mit 
derartigen Geräten zu tun hatte, war SNMPv3 noch kaum irgendwo 
implementiert.

Allerdings scheinen Komponenten/Netzwerke für Prozeßsteuerung Sicherheit 
eher nicht ernst zu nehmen. Man siehe dazu die Sicherheitslücken in 
SCADA Systemen allgemein und die Extrembeispiele Stuxnet & Co im 
speziellen. Wenn ihr euer Netzwerk ohne Security baut, dann wäret ihr 
zumindest in guter^Wgroßer Gesellschaft.

Wenn ihr fähig & willens seit, eigene Protokolle aufzusetzen, dann macht 
das ruhig. Dabei kann man eine Menge lernen. Als Basis würde ich SSL/TLS 
empfehlen. Mit eigenen Zertifikaten.

von GB (Gast)


Lesenswert?

Steinhans schrieb:
> Wir wollen folgendes tun:
> - Zyklischer Austausch von Prozessdaten (kleinere Datenmenge, Zustände
> Ausgänge, ...)
> - Gezielte Abfrage von Daten
> - Kommandos
> - Ändern von Konfigurationsdaten

Das ist genau das, wofür die "SPS-Protokolle" geschrieben wurden.

EtherCAT und Profinet werden normalerweise über ASICs realisiert, 
Ethernet/IP, Powerlink und Modbus/TCP funktionieren auch mit einem 
normalen Ethernet-Controller.

Von Modbus/TCP gibt es auch freie Versionen, bisher aber nur für ARM7 
(STR71) und Coldfire (MCF523x).

http://www.freemodbus.org/

Sollte sich aber portieren lassen.

von ghl (Gast)


Lesenswert?

Steinhans schrieb:
> Wir wollen folgendes tun:
> - Zyklischer Austausch von Prozessdaten (kleinere Datenmenge, Zustände
> Ausgänge, ...)
> - Gezielte Abfrage von Daten
> - Kommandos
> - Ändern von Konfigurationsdaten
>
> Gibt es ein Protokoll, dass diese Fälle oben abdeckt?
> Werden üblicherweise verschiedene Protokolle eingesetzt?

Klingt ziemlich nach PROFINET. Die TU-Dresden hat einen Softwarestack 
implementiert, der ein PROFINET-IO Gerät emuliert, genannt /generic 
device/ [0].
PROFINET macht es so, dass alles über raw ethernet frames mit eigener 
Protokoll-ID gesendet wird, ausser azyklische Daten (also deine 
"gezielte Abfrage von Daten") welche über UDP laufen.
Im Zweifelsfall einfach mal in die PROFINET-IO Spec schauen.

[0] http://www.inf.tu-dresden.de/index.php?node_id=3602&ln=de

von husten (Gast)


Lesenswert?

GB schrieb:
> Von Modbus/TCP gibt es auch freie Versionen, bisher aber nur für ARM7
> (STR71) und Coldfire (MCF523x).

nuja ... modbus TCP ist nicht schlimm ..
wenn man modbus RTU hat...  das in einen TCP rahmen werfen geht recht 
einfach



alternativ aus der IoT ecke gibts noch  einiges ..

http://postscapes.com/internet-of-things-protocols

von Steffen R. (steffen_rose)


Lesenswert?

Steinhans schrieb:
> Ich kann mir aber auch nicht vorstellen, dass überall die
> "SPS"-Protokolle genutzt werden.

Du hast Ethernet vorgegeben.

Die Industrie benötigt häufig Realtime-Ethernet. Die Protokolle wurden 
schon aufgezählt.

von S. R. (svenska)


Lesenswert?

Steinhans schrieb:
> Zum selbst zusammenschustern: Irgendwie kann ich mir nicht vorstellen,
> dass in professionellen Projekten etwas selbst zusammengeschustert wird.

Aber klar doch. Je nach Firma läuft der Prozess unterschiedlich 
formalisiert ab, aber am Ende sitzt da einer, schustert sich was 
zusammen und guckt, ob es die Anforderungen erfüllt. Das Hauptziel 
lautet "Time To Market". Wenn es dann hinreichend funktioniert, wird es 
spezifiziert, standardisiert und gehofft, dass alle anderen mitziehen.

Funktioniert es dann doch nicht ausreichend (oder wird vom Markt nicht 
angenommen), verschwindet das Protokoll mit der Zeit ganz leise wieder. 
Die Protokolle, die dann noch übrig bleiben, sind die, die du siehst. 
;-)

von Purzel H. (hacky)


Lesenswert?

Natuerlich schustert man sich selbst ein Protokol zusammen. Wenn :
-man hat sich die bestehenden Protokolle angeschaut und die 
passen/gefallen nicht in einem oder mehreren Punkten.
- man benoetigt einen Betriebszustand/Mode, der nicht kompatibel zum 
naechsten moeglichen Protokoll ist.
- Dritte Hardware gibt schon ein Protokoll vor.

Man sollte einfach begruenden koennen weshalb man selbst etwas gemacht 
hat.

von ghl (Gast)


Lesenswert?

Um hackt zu ergänzen:

- Lizenzgebühren für vorhandene Protokolle.

von Konrad (Gast)


Lesenswert?

Siebzehn Für Fuenfzehn schrieb:
> Natuerlich schustert man sich selbst ein Protokol zusammen. Wenn :
> -man hat sich die bestehenden Protokolle angeschaut und die
> passen/gefallen nicht in einem oder mehreren Punkten.
> - man benoetigt einen Betriebszustand/Mode, der nicht kompatibel zum
> naechsten moeglichen Protokoll ist.
> - Dritte Hardware gibt schon ein Protokoll vor.

- "Wir werden doch nicht fuer die paar Parameter einen ganzen 
Protokollstack zukaufen. Parameter: ach, 256 reichen, da nehmen wir ein 
Byte. Und sind alles Integers. So! Schon fertig!".

kurz darauf:

- "ach, mit dem Bootloader reden... da nehmen wir halt das oberste Bit 
der Parameternummer fuer, sonst muesste in den Bootloader noch unsere 
ID-Generierung rein"

- "hupps, doch mehr Parameter. Na dann heisst ID=126, dass der Integer 
die lange PArameternummer enthaelt und implizit das naechste Paket den 
Parameterwert".

- ...

(das passiert natuerlich nie)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.