CAN zu CAN Kommunikation

Gast #3521610
Lesenswert?
• ▲
▼
Ich habe eine CAN zu CAN Kommunikation zwischen zwei Teilnehmern 
aufgebaut. Weitere Teilnehmer kommen nicht mehr dazu.

Da die Kommunikation prinzipiell funktioniert, möchte ich nun ein 
Protokoll dazu bauen. Ein Protokoll wie CANopen möchte ich nicht 
implementieren, da ich ja nur zwei Teilnehmer habe.

Bei einem UART Protokoll hat man ja sowas in der Art:
    ID, Länge, Kommando; Daten*n, Checksumme


Aufbauen würde ich es folgendermaßen:

Teilnehmer 1:

Objekt 0, Senderichtung mit 6 Byte:
-  ID [Byte 0/1]
-  Länge [Byte 2]
-  Kommando [Byte 3]
-  Checksumme [Byte 4/5]

Objekt 1-15, Senderichtung mit je 8 Byte:
-  Daten


Objekt 16, Empfangsrichtung mit 6 Byte:
-  ID [Byte 0/1]
-  Länge [Byte 2]
-  Kommando [Byte 3]
-  Checksumme [Byte 4/5]

Objekt 17-31, Empfangsrichtung mit je 8 Byte:
-  Daten


Teilnehmer 2 hätte gespielte Objekte.

Interrupt bei Teilnehmer 1 wäre Objekt 16 und bei Teilnehmer 2 das 
Objekt 0.


Brauche ich bei CAN eine Checksumme? Kann ich hier das CRC vom CAN und 
das Error Register benutzen? Das mir bei fehlerhafter Kommunikation 
einen Interrupt generiert?

Oder sollte ich einen ganz anderen Weg gehen?

Habe mit CAN so gut wie keine Erfahrung. Brauche es aber nun, da 
Teilnehmer 1 weder per UART noch per SPI mit Teilnehmer 2 Kommunizieren 
kann.
Gast #3521625
Lesenswert?
• ▲
▼
Du kannst die Cheksumme vom CAN benutzen. Wobei du hier nicht mal 
wirklich einen Interrupt brauchst. Der CAN-Controller in deinem Chip 
wird bei fehlerhafter Nachricht sowieso neu gesendet.

Dann kannst du die ID dazu verwenden um den Nachrichtentyp zu bestimmen. 
Also das wäre dann z.b. dein Kommando. Somit kannst du die 8 Byte Daten 
als volle Nutzlast benutzen

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.