RS232 Protokoll µC <--> Visual Basic

OP #515303
Lesenswert?

Hallo!

Ich habe auf einem Atmel ATMega128 inkl 1,5 Zoll Farbdisplay ein 
Programm geschrieben welches möglichst viele Funktionen des µC 
anspricht. Es ging mir darum C zu lernen und die µC Programmierung mit 
Interrupts, etc kennenzulernen. Das Programm ha ein Benutzerinterface 
und nimmt 3000 Werte mit dem ADC von einem Poti in 10 Sekunden auf. 
Diese werdn dann auf dem Display im Koordinatensystem dargestellt.

Nun möchte ich diese Daten an ein VB Programm übersenden können und auch 
vom VB Programm aus alles im µC Steuern können (parallel zum Tastenfeld 
am Controller) sowie das Diagramm hier aufbauen. Ein einfaches 
Übertragen der Daten über die Uart-Library von Peter Fleury habe ich 
bereits, aber ich möchte ein kleines Protokoll entwerfen, insbesondere 
weil das Projekt in einem FH-Modul "Prozessbussysteme" läuft und wenn 
ich schon keinen Bus habe, dann wenigstens eine RS232 Übertragung mit 
kleinem Protkoll.

Hat dazu jemand von euch einen guten Link oder eine Idee wie ich sowas 
mache? Einfach den Controller wie auch VB auf ein "Steuerwort" horchen 
lassen und wenn dieses kommt eben Messung starten, die 3kB senden, und 
dann ne Rückmeldung, etc? Tipps zur Benutzung des Comm-Moduls in VB?

Eine wirkliche Fehlerkontrolle/Korrektur für die Daten muss natürlich 
nicht sein, es soll nicht zu aufwändig werden, da ich sehr wenig Zeit 
habe

Danke!
Gast #515311
Lesenswert?

Ganz einfach: Öffne vom VisualBasic ein File mit dem Filename "COM1" 
oder "COM2".

Am Besten als "Binary Read Rrite",  dann kannst Du Character weise auf 
die UART schreiben und lesen, als wäre es irgend eine Datei auf der 
Disk! (Halt ohne EOF, falls Deine uC Applikation dies nicht generiert.)

Gruss Peter
#515326
Lesenswert?

Peter wrote:
> Ganz einfach: Öffne vom VisualBasic ein File mit dem Filename "COM1"
> oder "COM2".
>
> Am Besten als "Binary Read Rrite",  dann kannst Du Character weise auf
> die UART schreiben und lesen, als wäre es irgend eine Datei auf der
> Disk! (Halt ohne EOF, falls Deine uC Applikation dies nicht generiert.)

Ups... - So einfach (wie in QBASIC) geht das??

Ich nutze dazu bisher auch das MSCOMM Steuerelement und dessen 
Eigenschaften und Methoden...

Wieder was gelernt, werde ich mal ausprobieren, danke...

Ideen zum Protokoll habe ich jetzt auch nicht. Wenn man die Daten HEX 
codiert (erzeugt aber Overhead), hat man genügend ASCII-Codes zum 
Übertragen von Steuerzeichen (z.B. für Befehle und Antworten).

...
OP #515344
Lesenswert?

Mal eine Idee:

Ich mache mir ein simples Protokoll in folgender Form:

Es werden immer 12 Bytes übermittelt, unterteilt in:
1 Steuerbyte in dem steht was gerade ankommt und wie es verwendet werden 
soll
10 Datenbytes mit beliebigem Inhalt
1 Byte für Fehlerkontrolle, Anzahl aller zu übermittelnden Bytes, etc...


Im MS Comm Modul stelle ich dann RThreshold und Inputlen auf 12 (Bytes)
Beim OnComm Event verarbeite ich das Ganze dann und fordere entweder den 
nächsten Datensatz an wenn noch nicht beendet oder was auch immer.

Auf Seite des µC das gleiche immer die gesamten 12 Bytes in eine 
Variable und dann auswerten...

Verbesserungsvorschläge? Tipps? Alles Quatsch was ich mir so denke?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren