enn ich das richtig verstanden habe muss also jede Erweiterungskarte einen MCP2515 und einen Controller haben
Jede Karte braucht einen Mikrocontroller, einen MCP2515 und einen CAN-Transceiver.

In dem Beispiel im Datenblatt ist unter jedem MCP2515 etwas das sich XCVR nennt und dann mit dem eigentlichen Bus verbunden ist. Was genau ist das?
Das müsste dann der Transceiver sein.


Ich kann jeden MCP2515 einen Identifier geben mit dem er angesprochen wird.
Nicht ganz...
bei CAN haben die Geräte eigentlich keine Adressen, sondern die verschickten Nachrichten haben IDs. Empfangen wird erstmal jede Nachricht von jedem Gerät am Bus, ob und wie ein Gerät auf eine bestimmte Nachricht reagiert bleibt aber dem Gerät überlassen.

Wenn ich mich nicht irre kann die ID 11Bit lang sein, es gibt also prinzipiell erstmal 2048 unterschiedliche Nachrichten. Und wenn du die Geräte wirklich explizit adressieren möchtest, könntest du z.B. die ersten 6 Bit der ID als "Geräteadresse" benutzen, so daß du 64 Geräte adressieren könntest, und mit den letzten 5 Bit kannst du dann 32 verschiedene Nachrichten für jedes Gerät definieren.

Genauso könntest du aber die IDs auch so vergeben, daß die ersten paar Bit vielleicht eine ganze Gerätegruppe ansprechen, und die restlichen dann das gewünschte Gerät dieser Gruppe. Oder du benutzt die ID überhaupt nur um Gerätegruppen zu identifizieren und packst die Information darüber welches Gerät gemeint ist dann in die Nachricht selbst (passen ja ein paar Byte Nutzdaten rein).


kurz gesagt:
jede Nachricht hat eine ID, aber wie du die IDs verteilst und den Bus organisierst bleibt im wesentlichen erstmal dir überlassen.


edit:
Falls 2048 Nachrichten nicht ausreichen, kann man übrigens auch eine 29 Bit lange ID verwenden.