CAN Bus?

Gast #501260
Lesenswert?
• ▲
▼
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
Gast #501289
Lesenswert?
• ▲
▼
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.
Gast #501343
Lesenswert?
• ▲
▼
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
Gast #501385
Lesenswert?
• ▲
▼
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.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

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.