mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik CAN Bus?


Autor: Markus Hagebusch (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du musst ein Protokoll definieren und Deine Daten in Abschnitten von je 
max. 8 Byte versenden.

Autor: Rahul, der Trollige (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Markus Hagebusch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja genau um dieses Protokoll geht es mir ja nun auch wie baut man das 
auf?

Autor: Florian (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Smartie (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.