mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik CAN Datenkonsistenz


Autor: Hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich möchte Daten per CAN verschicken. (AT90CAN128) Einzelne 
CAN-Nachrichten zu versenden und zu empfangen funktioniert schon prima. 
Jetzt überlege ich wie ich meine Daten am Besten in CAN-gerechte Stücke 
aufteile.

Jedem Datum ordne ich eine ID zu. Nun bin ich nicht sicher ob ich diese 
ID nur beim ersten CAN-Paket mitsenden soll oder bei jedem?!

Eigentlich ist beim CAN ja die korrekte Ankunftsreihenfolge ja 
gesichert, oder?

Meine erste Idee:
Um keinen allzugroßen overhead zu erzeugen würde ich also im ersten 
CAN-Paket die ersten 4 Bytes verwenden um die ID und die gesamtzahl der 
noch zum Datum gehörenden Pakete mitschicken. Dann wüsste der Empfänger 
was auf ihn zukkommt und ich könnte jedes Folgepaket komplett mit Daten 
vollpacken!
Gibts da Einwände?

Danke,

Hans

Autor: Triple Questionmark (Firma: ???) (tqm)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mir fällt da spontan der Segmented-SDO-Transfer von CANopen ein.
Das ganze läuft in drei Phasen:

1. Initiierung:
   - Übergabe der Objektnummer (Ziel)
   - Anzahl der zu übertragenden Bytes

2. Übertragung der Daten
   - bis zu 7 Datenbyte pro Datensendung

3. Ende der Übertragung
   - Prüfsumme

Dazu werden zwei IDs benötigt (eine zum Senden, ein zum Bestätigen)

Vielleicht wär' das ja was für Dich ;-)

Autor: Hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guter Tip, Danke ;-)

Autor: Willivonbienemaya .. (willivonbienemaya)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hans wrote:
> Eigentlich ist beim CAN ja die korrekte Ankunftsreihenfolge ja
> gesichert, oder?

Allgemein: Nein, denn es können höher priorisierte Nachrichten 
dazwischenfunken.

Nachrichten mit gleicher ID: Ja

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.