Hallo, Ich habe ein paar Verständnisprobleme zu den CAN Bus (auf Protokoll ebene). Ich mache jetz mal ein paar Aussagen: CAN ist ein Multimasterbus, jeder Teilnehmer ist zunächsteinmal gleichberechtigt. Es gibt eine Priorisierung welche durch den Identifier festgelegt sind. Die Nullen sind hierbei die Dominanten Bits. Der Identifier beschreibt nicht das Device sondern die Information. Der informationsadressraum beträgt 2^11 * 8 Byte (16KByte) (bei 11 bit Identifier). Der Identifier darf im Bus nur einmal zum Senden verwendet werden, sonst wüsste man nicht von welchem Device die Information stammt (es gibt ja keine Absenderadresse). Ein Device kann keine Informationen bei einem anderen Device "erfragen" (So wie man das z.b. bei einem Master Slave Bus kennt), sondern jedes Device schickt seine Daten raus, z.b. bei einer Änderung oder bei einem festen Takt.
Ich lass dir mal das da: https://elearning.vector.com/mod/page/view.php?id=111 Zu deinem zweiten Absatz gebe ich dir das Stichwort "remote frames".
CAN schrieb: > Der informationsadressraum beträgt 2^11 * 8 Byte (16KByte) (bei 11 bit > Identifier). Wie kommst darauf? 2^11 = 2048 IDs, wobei Extended auch noch geht je nach CAN Standard. CAN schrieb: > Ein Device kann keine Informationen bei einem anderen Device "erfragen" > (So wie man das z.b. bei einem Master Slave Bus kennt), > sondern jedes Device schickt seine Daten raus Doch, ist aber etwas verpönt und teilweise wird davon abgeraten. Stichwort: Remote Frames Grüße
CAN schrieb: > CAN ist ein Multimasterbus, jeder Teilnehmer ist zunächsteinmal > gleichberechtigt. Ich würde ja sagen, es hat gar keinen Master, aber ja, alle sind gleichberechtigt. > Es gibt eine Priorisierung welche durch den Identifier festgelegt sind. > Die Nullen sind hierbei die Dominanten Bits. Ja. Daraus ergibt sich, dass niedrige IDs eine höhere Priorität haben. > Der Identifier beschreibt nicht das Device sondern die Information. Ja. > Der informationsadressraum beträgt 2^11 * 8 Byte (16KByte) (bei 11 bit > Identifier). Sofern man nicht noch ein Transportprotokoll wie z.B. ISO-TP darauf legt. Allerdings sind die oberen 16 IDs reserviert und sollen nicht benutzt werden. Es stehen also nicht 2048, sondern nur 2032 IDs zur Verfügung. > Der Identifier darf im Bus nur einmal zum Senden verwendet werden, sonst > wüsste man nicht von welchem Device die Information stammt (es gibt ja > keine Absenderadresse). Es ist dem Empfänger aber auch egal, von dem die Daten kommen. Das Problem würde ich eher so beschreiben, dass dann zwei Absender separat Daten senden und quasi konkurrieren. Wenn sie verschiedene Daten senden, kommt Kuddelmuddel raus, und wenn sie die selben Daten senden, ist das unnötig. > Ein Device kann keine Informationen bei einem anderen Device "erfragen" > (So wie man das z.b. bei einem Master Slave Bus kennt), > sondern jedes Device schickt seine Daten raus, z.b. bei einer Änderung > oder bei einem festen Takt. Das ist die gängige Art, CAN zu verwenden. Joe J. schrieb: > Doch, ist aber etwas verpönt und teilweise wird davon abgeraten. > Stichwort: > Remote Frames Dafür gibt's im Header das RTR-Bit (Remote Transmit Request). Ich habe es aber auch noch nie in Verwendung gesehen.
CAN schrieb: > Ich mache jetz mal ein paar Aussagen: Ich glaube, du hast vergessen, eine Frage zu stellen.
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.