Forum: Mikrocontroller und Digitale Elektronik CAN Datenkonsistenz


von Hans (Gast)


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

von Triple Q. (Firma: ???) (tqm)


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 ;-)

von Hans (Gast)


Lesenswert?

Guter Tip, Danke ;-)

von Willivonbienemaya .. (willivonbienemaya)


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

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
Noch kein Account? Hier anmelden.