High-level Protokoll zum Datenaustausch zwischen 2 µC (ARM,Blackfin)?

Gast #1036095
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
Gast
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
Gast
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!

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 18 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.