Hallo, könnte mir jemand einmal beschreiben wie man es anstellen kann über den CAN Bus ganze Arrays zu übertragen? Ich benutze den CAN seit längerem musste aber bis jetzt nur einzelne Werte bzw. Variablen übertragen. Jetzt würde ich gerne ein ganzes Array mit ca. 1024 Werten übertragen. Wie macht man soetwas?
Du kannst z.B. die ersten beiden Bytes als Adressinformation benutzen. Gibt dann die Startadresse der folgenden 6 Datenbytes an.
Du musst dir irgend ein Protokoll ausdenken, wie du die Datenbytes in einzelne Meldungen verpacken willst. Auf der Empfängerseite hast du dann die Qual der Wahl, ob du den Datenblock als Ganzes oder partiell aktualisieren willst.
oder effektiver, nur das 1.Byte als Adresse, x*7 ist dann die physikalische Adresse, damit kannst du dann pro frame 7 Datenbytes übertragen. Wenn du genug IDs frei hast, kannst du auch die Adresse im Identifier codieren, macht dann allerdings beachtliche 128 IDs nur für diese Aufgabe.
Dafuer gibt es schon höhere Protokolle welche unter anderem im KFZ anwendung finden. Nennt sich ISO TP/VW TP etc. Damit sind bis zu 4095 Bytes möglich. Mit flusskontrolle und pipapo... Ein Link hab ich nun auch nicht. Die Frage stellt sich aber ob sich das für dich lohnt das protokoll zu implementieren. Ansonsten einfach selber was zammfrickeln ;)
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.