Hallo NG,
ich möchte Teilnehmen an einem CAN-Bus eine eindeutige CAN-ID zuweisen, kennt hier jemand ein erprobtes zuverlässiges verfahren?
Nehmen wir einmal an ich habe bis zu 12 verschiedene Teilnehmer die über den CAN-Bus verbunden sind. Ein logischer Master fragt von den Teilnehmern Daten ab, der Master vergibt den Geräten eindeutige CAN-IDs.
Die unterschiedlichen Teilnehmer können beliebig an diesen Bus angesteckt und wieder entfernt werden, auch gleichzeitig. Insgesamt gibt es sehr viel mehr als die 12 Steckplätze für diese Geräte. Aller Geräte verfügen über eine eindeutige 32Bit Seriennummer.
Es ist wichtig, das ich gezielt einzelne Teilnehmer ansprechen kann, eine Benutzer-erkennbare Zuordnung zum Physikalischen Gerät ist nicht notwendig.
In dem Bus-System sind neben den 12 Steckplätzen noch weitere Teilnehmer, die mit statischen IDs arbeiten.
Bisherige Idee: Master sendet ein Broadcast worauf alle Teilnehmer ohne ID mit Ihrer Seriennummer auf eine definierten Sammel-ID antworten. Antworten zwei Teinehmer gleichzeitig steigen sie mit einem Errorframe aus und wiederholen die Antwort nach einer Zufallszeit.
Kennt der Master die Seriennummern, kann er mit einen Broadcast mit Seriennummer und neuer CAN-ID als Dateninhalt einzelne Teilnehmer konfigurieren.
Kennt jemand ein besseres Verfahren, in dem man evtl. ohne Errorframe auskommt?
Gruß Arne