Ola, ich brauche Unterstützung im Bereich des CAN Bus. Mein Problem ist das ich ein Feld von Daten verschicken möchte und nicht darauf komme wie dieses zu realisieren ist. Desweiteren kommt noch dazu das ich spätestens alle 4 Nachrichten eine Steuernachricht versenden muß. Hat jemand Ideen wie dieses zu realisieren ist? Was noch wichtig ist, ich habe für die Aufgabe nur eine ID zur Verfügung! Bedankt für jegliche Antwort! MfG Markus
Du musst ein Protokoll definieren und Deine Daten in Abschnitten von je max. 8 Byte versenden.
Wie groß ist das Feld? Klaus hat es schon geschrieben: Du brauchst ein Protokoll, das die Daten formatiert. Wenn du nur eine ID zur Verfügung hast, mußt du ein Datenbyte (oder auch mehr) dafür "opfern". Z.B. könnte man das erste Byte dafür benutzen: Durch setzen des MSB wird ein Datentransport signalisiert. Die restlichen sieben Bit werden dann als Zähler für das aktuelle Feld benutzt (muß man nicht unbedingt, wenn man die Reihenfolge einhält - bei UDP-Versand ist sowas sehr hilfreich...). Ist das MSB nicht gesetzt, handelt es sich um ein Komando... Man könnte es auch so signalisieren, dass Datenrahmen, die 8Byte Daten mitführen als Daten-Nachricht und Datenrahmen mit weniger als Comando-Nachricht interpretiert werden.
aja wie gesagt. im ersten Paket setzt du das msb des ersten bytes um anzuzeigen das es das erste paket deines feldes ist. in den folgenden nachrichten setzt du es nicht, aber du benutzt die restlichen sieben bit des ersten bytes um zu numerieren wie die daten zusammengehören. Gruß Florian
Schickst 7 Byte Daten das 8. Byte nimmst Du 4 Bit um die Frames hochzuzählen (0-F) und 4 Bit für die Checksumme. Damit kannst Du dann 16x7 Byte übertragen. oder Frame 0 als Steuerframe und 1-F als Datenframes, die müssen dann auch nicht unbedingt zeitlich aufeinander folgen und es kann auch mal eine Botschaft verloren gehen, ohne daß es Datenmüll gibt.Auch könntest Du nur die Daten senden, die sich geändert haben und nur bei jedem 10. mal komplett alle Daten. könnte also z.B. so aussehen 0-1-2-3-0-4-5-6-0-7-8-9-0-a-b-c-0-d-e-f-0-1-2-3 usw.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.