Forum: Mikrocontroller und Digitale Elektronik High-level Protokoll zum Datenaustausch zwischen 2 µC (ARM,Blackfin)?


von sverige (Gast)


Lesenswert?

Hi!

Ich bin gerade dabei mir zu überlegen wie ich das Protokoll zum 
Datenaustausch zwischen 2 über UART verbundenen µC realisieren könnte.

Natürlich kann ichs selbst basteln a la MessageID, MessageLength, 
MessageData und mir dann einen eigenen Parser auf beiden Seiten 
implementieren. Aber ich denke mir, vor dem Problem steht doch fast 
jeder irgendwann, also sollte es da etwas vorgefertigtes geben?

Jetzt habe ich mir den ASN.1 standard angesehen und der wirkt für mich 
etwas überdimensioniert. (http://lionet.info/asn1c/basics.html)
Hat den schon jemand für µC verwendet und kann den empfehlen? Wie groß 
ist denn der Traffic Overhead von ASN.1?

Ich würde das Protokoll zwischen zwei 32bittern (ARM, Blackfin) laufen 
lassen, die Komplexität der zu übertragenen Daten ist nicht besonders 
hoch. (ca 30 verschiedene Messagetypen). Datenaufkommen variiert, sollte 
die UART aber auch nicht ausreizen.

Oder ist es doch einfacher ich schreibe mir den Parser, also encoding 
und decoding auf den beiden Plattformen selbst? Mir wäre natürlich ein 
fertiges Protokoll lieber, damit hätte ich weniger testing aufwand.

lg

von Stephan (Gast)


Lesenswert?

Hi,

ich verwende gerne das ModBus-Protokoll, dieses ist ein Master-Slave 
Protokoll.
Dies gibs einmal als ASCII Version (nehme ich für Mensch-Maschine) und 
als binäre Version (nehme ich für Maschine-Maschine).

Sieh mal auf ModBus.org dort sind alle infos frei verfügbar!
und ich glaub hier in der Linksammlung gibs auch infos...

und als Bonus gibs es das Protokoll, als ModBus over IP. ;-)

Infos:

Das Protokoll arbeitet:
1) mit 1 Bit, es ist möglich 1 Bit zu setzen oder zu löschen
2) mit mehreren Bits...
3) auf 1 Register (16 Bit breit) lesen oder schreiben
4) auf mehrere Register...
5) mehrere Register lesen und schreiben
6) Broadcast messages sind ebenfals möglich

mfg

von Sverige (Gast)


Lesenswert?

Dankeschön Stephan für die ausführliche Antwort und den Tipp

ModBus kannte ich noch gar nicht, ist aber scheinbar super für meine 
Zwecke einsetzbar drum hab ich mir jetzt die librarys von 
http://www.freemodbus.org/ angesehen. Was ich aber noch nicht verstehe:

Ich brauche doch sowohl slave als auch master libraries um eine 
Verbindung aufzubauen? Ich habe den Einduck die libs gibt es immer nur 
für slaves und es ist angedacht diese dann an einen pc anzuschließen 
welcher den master spielt?



lg!

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.