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


von Vincent I. (vci)


Lesenswert?

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?

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

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.

von Mark B. (markbrandis)


Lesenswert?

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...

von Vincent I. (vci)


Lesenswert?

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 :-)

von Purzel H. (hacky)


Lesenswert?

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.

von PI314 (Gast)


Lesenswert?

Ich würde jedenfalls ein Blick auf LLRP http://www.llrp.org werfen 
(selbst wenn es für deine Applikation überdimensioniert sein mag).

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.