Datenaustausch: AVR (C) <--> PC (Java) ?Protokoll?

OP #1727999
Hallo zusammen,

ich schreibe gerade an einer kleinen Anwendung die auf dem uC laeuft. 
Die Steuerung (GUI) und Teile der Berechnungen (da zu komplex fuer den 
uC) wollte ich auf einen PC auslagern.

Auf dem uC programmiere ich in C.
Auf dem PC wollte ich Java verwenden mit der rxtx library.

Meine Frage ist nun, wie ich am geschicktesten den Datenaustausch 
zwischen den beiden hinbekomme. Ich habe da leider gar keine Erfahrung 
:-)

Gibt es da vorgefertigte Protokolle?
Das hier habe ich hier im Forum in einem alten thread gefunden:
http://www.ibrtses.com/embedded/shortmsgprotocol.html

Geeignet? Alternativvorschlaege?
Gibt es dazu evtl. ein gutes Tutorial?
Persönliche Seite
Am einfachste ist es wenn du einfach dein eigenes Protokoll definierst. 
Diese hängt natürlich davon ab WAS du genau mit dem uC absprechen 
willst. Im Einfachsten Fall sendest du einfach ASCII Kommandos hin und 
her, der Zeilenumbruch ist dann das Begrenzerzeichen. so kannst du das 
ganze auch mal ohne "dein" Programm mit einem simplen Terminal testen.
Vincent I. schrieb:
> Gibt es da vorgefertigte Protokolle?

Natürlich gibt es die, die Frage ist halt wie kompliziert oder wie 
einfach Du es brauchst. XCP zum Beispiel wird im Automobilbereich 
eingesetzt:

http://www.asam.net/index.php?option=com_content&task=view&id=124&Itemid=206

Allerdings bräuchte man dann einen zumindest teilweise implementierten 
Protokollstack auf beiden Seiten, ich denke mal das wird für Deine 
Anwendung eher Overkill sein. Wenn Du uns verraten würdest, welche 
Datenmenge pro Zeit und was für Datentypen Du so benötigst, könnte man 
Dir eher weiterhelfen...
OP
Also die Anwendung ist eher klein:

Es sollen RFID-Tags ausgelesen werden. Die ausgelesene ID an den PC 
uebermittelt werden. Umgekehrt sollen daten (bis zu 256 Bytes) an den uC 
uebertragen werden koennen, der diese dann auf ein Tag schreibt.

Das war es auch schon :-)

Ich hatte eben gehofft, dass es da von beiden Seiten aus evtl. ein 
Minimal-Protokoll-Stack gibt, den man ganz einfach nutzen kann.

Ansonsten muss ich da wohl selber dran :-)
Die Anforderungen, Punkt-zu-punkt, sichere Verbindung, variable 
Blockgroesse, bedeutet eine Meldungsstruktur wie :

Startbyte (1 oder mehr byte)
Datengroesse (2 byte)
Command (Lesen oder Schreiben = 1 byte)
Daten [] ( >=256 byte )
CRC (2 byte)

Sowas kann man in einer Zustandsmaschine beim Empfangen abspulen.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 16 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.