Gleiche Priorität für Master in einem CAN-Netzwerk

Mir ist bekannt, dass Nachrichten im CAN-Netzwerk Prioritäten zugewiesen werden. Ich arbeite an einem 2oo3-Voting-System, und wenn jeder der Nachrichten von den drei Mastern drei eindeutige IDs gegeben werden, werde ich Master unter den drei Mastern für die Nachrichten machen, dh ich werde unter den Mastern Prioritäten setzen.

Ich habe den Ansatz in Betracht gezogen, bei dem die Slaves die Daten weiterhin senden (entweder periodisch oder wenn sie eine Änderung der Eingänge feststellen), sodass auf diese Weise alle drei Master die Daten gleichzeitig empfangen und auf dieselben Daten reagieren können. Oder ein anderer Ansatz, bei dem die drei Master untereinander entscheiden, wer den Slave anfordert, und wenn der Slave antwortet, verarbeiten alle drei Master die Daten gleichzeitig.

Ich möchte wissen, ob es eine Möglichkeit gibt, durch die Verwendung eines CAN-Netzwerks sicherzustellen, dass den drei Mastern die gleiche Priorität eingeräumt wird, ohne den oben erwähnten Slave-Sendeansatz zu verwenden, und sicherzustellen, dass die Master alle Aktionen initiieren und nicht die Sklaven.

Hinweis: Mir ist bewusst, wie nützlich Ausweise in Schiedsverfahren sind. Ich möchte nur wissen, ob es einen Weg gibt, mit dem diese Methode möglich ist.

Was bedeutet „Priorität“ in Ihrem Kontext? Meinen Sie die Nachrichtenkennung für Nachrichten, die von einem der "Master" -Knoten gesendet werden? Weil es nach einer schlechten Idee klingt, dass Knoten Nachrichten mit denselben Nachrichten-IDs senden müssen. Außerdem: Sollen die 3 Master-Knoten ihre Nachricht senden und der Slave eine Option entscheiden? Im schlimmsten Fall müssten Sie auf 3 Nachrichten warten, IDK, wenn Sie so viel Zeit haben.
Priorität = Alle 3 Master haben keine Diskriminierung. Alle 3 sind gleich. Ja, ich habe über IDs nachgedacht (auf jeden Fall nicht dieselben IDs verwenden. Ich möchte nur wissen, ob es möglich ist.). Der Slave antwortet nur auf die Anfragen des Masters. Der Slave, während er handelt auf etwas erfordert 2oo3 Entscheidungen des Masters. Slave, während er einen Status gibt, handelt Master req->Slave Respond back.

Antworten (1)

Im CAN-Kontext gibt es keine Master. Man kann nur von Sendern und Empfängern sprechen. Die Priorität wird während der Arbitrierungsphase nur zwischen Rahmen-IDs eingestellt .

Wenn Sie also dieselbe ID-Nachricht senden, sendet der erste sendende Sender seinen Rahmen. Wenn sie gleichzeitig senden, wird der Frame beschädigt (sobald ein Bit abweicht). Die ECU wird den Fehlerrahmen senden und daher wird die Nachricht von den CAN-Controllern nicht berücksichtigt.