Hallo, ich habe da ein kleines Problem. Ich kommuniziere mit zwei Testboards über den CAN-Bus. Mein Datenframe transportiert 8 Byte. Angenommen ich möchte 10 Byte versenden. Gibts es für CAN da irgendwelche Normen? Oder besser noch Beispiele wie man das umsetzen kann?
Wieso nicht in 2 Nachrichten aufteilen? Was spricht dagegen?
Machs wie bei CANopen mit den SDOs ist. Teile solche Information auf in Wert (4Bytes) und "Adresse".
Oder nutze den Extended Frame und verwende von der Adresse 2 Bytes als Daten.
Alternative: Gleiche ID, erstes Datenbyte ist eine Subadresse und zeigt an, welcher Datensatz nun folgt. Am Grundsatz, dass eine Botschaft max. 8 Datenbytes enthält, kannst du nichts ändern.
Der CAN Bus ist ein Automobil Industrie Bus, speziell entwickelt fuer kurze schnelle Packete. Natuerlich kann man ein Protokol oben drauf pappen, aber ob zB ein FTP, oder NetBios ueber CAN Sinn macht ist fraglich. Beim Ausplitten von Meldungen auf mehrere Packete sollte man beachten, dass ein zustandsloser Bus nicht ploetzlich mit Zustaenden versehen wird.
@ Matthias Lipinsky wo finde ich das bei CANopen? Hast du einen Link dazu?
>Hast du einen Link dazu? Aber das ist bei dir sicherlich mit Kanonen auf Spatzen... Beitrag "Re: CanOpen Protokoll (für Freescale Controller)"
Bei DeviceNet gibt es sogenannte fragmented I/O messages vlt. bringt Dich das weiter - für eine einfache Applikation ist das aber wahrscheinlich zu überzogen weil es dann doch noch eine menge Mehrarbeit mit sich bingt. Zudem ist ja bei DeviceNET und CANopen der Header völlig anderst, und nun alles auf DevN umzustellen wäre wohl auch keine gute Entscheidung. Aber schau es Dir dennoch mal an, das Prinzip lässt sich sicherlich auch auf open übernehmen -> 4 Nutzdatenbytes, 4 (Sub-)Adressbytes
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.