Also ist das fast genau so wie bei I2C, dass ich jedem Slave eine andere Adresse geben müss, damit nicht zwei gleichtzeitig angesprochen werden.
Nicht ganz...
Eigentlich kennt CAN sowas wie Adressen garnicht, stattdessen werden alle Nachrichten grundsätzlich erstmal von allen Busteilnehmern empfangen, und diese können dann entscheiden ob sie darauf reagieren möchten oder nicht. Wenn du einzelne Teilnehmer ansprechen möchtest gibt es dafür verschiedene Möglichkeiten, wobei die einfachste wohl darin besteht die ID einer Nachricht aus Absender- und Empfängeradresse zusammen zu bauen. So kann der Empfänger anhand der ID feststellen, daß die Nachricht für ihn bestimmt ist und wer der Absender ist. Zusätzlich kann man so auch garantieren, daß jede Nachricht eine systemweit eindeutige ID hat (das wird vom CAN Standard explizit so gefordert, denn nur dann funktioniert die Arbitrierung, und nur dann ist der Bus 100% kollisionsfrei).