Autor Beitrag
barrais
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 33



BeitragVerfasst: Do 04.10.07 09:33 
Hi,

ich habe vor, ein Anwendungsprogramm mit Delphi zu schreiben, das ein Mikrocontroller steuert; und zwar das Programm schickt per Ethernet UDP-Pakete zu dem Mikrocontroller, die Pakete enthalten Kommandos ( Start, Stop, Capture,...), der Mikrocontroller(werde ich noch mit C programmieren) reagiert dem Kommando entsprechend(z.B. start: Messung starten, stop: Messung stoppen, capture: die Messdaten zum PC schicken).Es geht um CAN-Bus Daten (also Binäre daten), die das Anwendungsprogramm dann speichert und binär(halt so wie sie sind!) darstellen muss.

Ich habe UDP ausgesucht, weil:

1. ich dadurch Broadcast Packete wegschicken kann
2. ich noch einen Mikrocontroller Programmieren muss, der diese Messungen durchführt; ein UDP-Stack ist einerseits relativ einfacher zu Programmieren und andererseits nimmt nicht viel Speicherplatz im Anspruch .
3. ich das ganze in einem LAN betreiben will.

Ich hoffe, ich habe euch einen Überblick über das projekt geschafft.

ich bin für jeden Tipp Dankbar!

Moderiert von user profile iconTino: "......brauche eure Hilfe!" aus Titel entfernt.
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10181
Erhaltene Danke: 1254

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Do 04.10.07 10:31 
Moin!

Du stehst also praktisch ganz am Anfang, ja? :? Dann solltest du dir zuerst mal ein paar Gedanken über die gewünschte Funktionalität machen: also eine Liste der benötigten Kommandos und entsprechende Antworten, wobei du berücksichtigen musst, dass UDP weder Fluss- und Empfangskontrolle, noch Fragmentierung beherrscht. Dein Protokoll sollte also z.B. auf max. 512 Bytes große Pakete aufgeteilt sein, damit du nicht in die discard-Falle wegen MTU-Überschreitung läufst (auch wenn Win-Stacks üblicherweise mehr als 512 Bytes UDP-Pakete verarbeiten können, muss das nicht immer und überall so sein, schon lange nicht bei einem MC; kommt eben drauf an).

Wenn du die Aufstellung der benötigten Funktionen fertig hast (noch besser: direkt schon als Kommandos verschlüsselt), dann sehen wir mal weiter. ;)

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
barrais Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 33



BeitragVerfasst: Do 04.10.07 15:48 
hallo,

Die Kommandos und die erwartete Anworten:

1. Konfiguration (config): Die CAN-Schnittstelle initialisieren

2. Messung starten (start): - Die Messung starten
- Der Messungsstatus zum PC verschicken

3. Messung stoppen (stop): - Die Messung anhalten
- Die Messdaten speichern
- Der Messungsstatus zum PC verschicken

4. Messdaten abfragen (capt): Die Messdaten zum PC verschicken

5. Reset (reset) : - Die Messdaten löschen
- Die CAN-Schnittstelle initialisieren

Die binäre Daten werden nur vom Mikrocontroller zum PC transportiert, in der anderen Richtung werden mehr oder winiger nur die Kommandos und ID´s übertragen.
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10181
Erhaltene Danke: 1254

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Do 04.10.07 23:22 
Moin!

Willst du einen CAN-Bus debuggen oder nur die Kommunikation mitschneiden? :gruebel:

Und so nebenbei: wieviele Projekte dieser Art hast du denn schon mal abgewickelt? :?

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
barrais Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 33



BeitragVerfasst: Fr 05.10.07 09:55 
Hallo,

ich will nur an der CAN-Bus Kommunikation abgreifen und nicht mitkommunizieren.
Projekte mit Mikrocontroller hatte ich schon viele abgewickelt aber mit Delphi in so einem Niveau noch nie; deswegen brauche ich ja eure Hilfe :wink:
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10181
Erhaltene Danke: 1254

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Fr 05.10.07 10:28 
Moin!

user profile iconbarrais hat folgendes geschrieben:
ich will nur an der CAN-Bus Kommunikation abgreifen und nicht mitkommunizieren.

OK. Aber warum willst du die protokollierten Daten erst MC-seitig speichern und dann versenden? Üblicherweise haben die doch nicht soo viel Speicher. :nixweiss: Würde es sich nicht anbieten, ein Liveprotokoll per UDP-Broadcast ins LAN zu entwickeln, so dass der MC einfach als Bridge von CAN auf Ethernet dient? Dann kannst du den Rest in der Software abwickeln. :idea:

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
barrais Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 33



BeitragVerfasst: Fr 05.10.07 11:00 
hallo,

das ist eine super Idee, d.h. wenn der uC den Befehl 'start' bekommt, startet er die Messung und schickt die Messdaten regelmäßig zum PC, wo sie gespeichert werden, die Messdaten werden erst wenn die Messung fertig ist angezeigt.Und somit haben wir ein Kommando(capt) gespart, ist das was du meinst?
Ich glaube, dass dein UDP Protokoll optimal dafür ist was meinst du denn?
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10181
Erhaltene Danke: 1254

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Fr 05.10.07 11:26 
user profile iconbarrais hat folgendes geschrieben:
hallo,

das ist eine super Idee, d.h. wenn der uC den Befehl 'start' bekommt, startet er die Messung und schickt die Messdaten regelmäßig zum PC, wo sie gespeichert werden, die Messdaten werden erst wenn die Messung fertig ist angezeigt.

Hm :? von was für "Messdaten" redest du denn da immer? :gruebel: Soweit ich beim Überfliegen des Wikipedia-Artikels mitbekommen habe, spricht CAN doch in Frames, also digital und damit fest definiert. :nixweiss:

user profile iconbarrais hat folgendes geschrieben:
Und somit haben wir ein Kommando(capt) gespart, ist das was du meinst?

Ja, genau; es reduziert sich IMHO auf:
a) RESET
b) START
c) STOP

user profile iconbarrais hat folgendes geschrieben:
Ich glaube, dass dein UDP Protokoll optimal dafür ist was meinst du denn?

:?!?: Ich hab doch noch gar nix vorgeschlagen? :gruebel: Oder meinst du das Protokoll aus dem UDP-Chat-Tut? Falls ja, das ist eher auf den Chat hin ausgelegt (bzw. für Textnachrichten), das wird nicht so optimal sein.

Ich würde eher ein binäres Counter/Data-Layout nehmen. :idea:

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
barrais Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 33



BeitragVerfasst: Sa 06.10.07 12:16 
hallo,
Mit Messdaten meine ich die CAN-Frames, die aufgezeichnet werden.
TUDPSockUtil ist das was ich mit "dein UDP Protokoll" gemeint habe.
Dein Vorschlag hört sich gut an, kannst du vielleicht ein Beispiel-Progarmm anhand meine Kommandos schreiben :roll:
wäre sehr nett von dir.Danke!
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10181
Erhaltene Danke: 1254

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Sa 06.10.07 23:58 
Moin!

user profile iconbarrais hat folgendes geschrieben:
TUDPSockUtil ist das was ich mit "dein UDP Protokoll" gemeint habe.

Man kann bestimmt dieses Projekt mit dem TUdpSockUtilrealisieren, es geht aber auch mit anderen Komponenten. Ob der TUdpSockUtildafür "optimal" ist, kann ich nicht entscheiden. :nixweiss:

user profile iconbarrais hat folgendes geschrieben:
Dein Vorschlag hört sich gut an, kannst du vielleicht ein Beispiel-Progarmm anhand meine Kommandos schreiben

Nein, das kann ich leider nicht. Du hast ja noch keinen konkreten Protokoll-Vorschlag gemacht, der uC oder ein Simulationsprogramm existiert auch nicht, was soll ich da demonstrieren. :gruebel: Wenn es um die reine Funktion der Komponente geht: das kannst du im Beispielprogramm, das im Kompo-Projekt enthalten ist, sehen. :les: :mahn:

Du könntest ja mal ein Programm-Pärchen entwickeln: ein uC-Simulator (Delphi-Programm), dass die Hardware simuliert und einfach so tut, als kämen CAN-Frames rein, und ein "Auswert"-Programm, dass den uC-Simulator steuert und die Daten anzeigt. :idea: Dann sehen wir mal weiter. ;)

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
barrais Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 33



BeitragVerfasst: Mo 08.10.07 09:26 
OK!
Ich werde mich erstmal um die Programmierung von uC kümmern, das macht glaube ich mehr Sinn.
Danke für deine Unterstützung! :wink: