Forum: Mikrocontroller und Digitale Elektronik C167 - CAN Akzeptanzmasken/-filter


von geronimo (Gast)


Lesenswert?

Hi Leute,

Ich hab am C167 'ne CAN Anbindung und da auf dem CAN Bus ziemlich viel
Traffic ist, hab ich mich entschlossen, die Akzeptanzfilter bzw. -masken
zu verwenden.

Ich verwende nur die Mailbox #15 zum Empfangen und Mailbox #1 zum
Senden, dahinter befinden sich Empfangs bzw. Sendebuffer.

Soweit ich im Manual gelesen hab, wird die ID zuerst mit der
Akzeptanzmaske (Reg. UGLM & LGML + UMLM & LMLM) verglichen. Alle Bits,
welche auf "0" sind werden nicht verglichen (ignoriert) und alle Bits
mit "1" werden verglichen.
Werden bei dem Maskenvergleich bereits CAN-Messages rausgeworfen oder
nur verändert ?
Mit den Arbitration Reg. kann ich nicht arbeiten, da ich wie gesagt nur
1 Mailbox zum empfangen nehme aber 2 ID's annehmen will.

Die ID's sind 0x0CFE48F0 und 0x18FF48A8 ... daraus hab ich mir die die
"AktzeptanzID" 0x08FE48A0 ermittelt (mir is klar, das da nicht nur die
o.g. 2 ID's durchkommen werden, aber auf jeden Fall nicht die anderen
Messages, die ich auf meinem Bus habe).

Probier schon den 2. Tag daran herum aber schaffs einfach nicht.
Vielleicht hab ich auch das Masken- und Filtersystem nicht ganz
verstanden ?

Wäre über Hilfe dankbar.

Grüsse,
Max

von tex (Gast)


Lesenswert?

Es mag zwischen den Bausteinen Abweichungen geben, aber in der Regel ist
es so, dass Du genau eine Nachricht in Deiner CAN-Box empfangen kannst,
danach musst Du sie neu freigeben und dann ist in der Regel der Inhalt
weg. (Ist zumindest bei meienn CANs so)
Also zu Deiner Frage, wenn die Mailbox eine Nachricht empfängt und die
ID prüft, ist die Mailbox zu diesem Zeitpunkt schon leer.

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
Noch kein Account? Hier anmelden.