Forum: Mikrocontroller und Digitale Elektronik ID-Mask Berechnung


von oliver (Gast)


Lesenswert?

Hi,
ich habe eine allgemeine Frage über die Funktionalität des Mask für den 
CAN-Protokoll.
Ich benutze den AT90CAN128 als Hardware. Im Datenblatt gibt es ein 
Beispiel, wie kann man die Nachrichten vorfiltrieren
ID:       111 1111 1xxx
Mask=7F1: 111 1111 1000
So empfängt man nur die ID 310-317.
Mit Hilfe dieser Beschreibung konnte ich alle Nachricten, die ich 
wollte, empfangen.
Jetzt möchte ich anders machen. Ich habe mein  Mikrocontroller 
programmiert, damit er alle Nachrichten über den Bus empfängt.ID: xxx 
xxxx xxxx
Mask: 000 000 000.Vom diesem Zustand möchte ich, dass der µC alle ID 
310-317.
ignoriert.
Wie setze ich die Bit in Register CANIDM1 und CANIDM2 oder welche Mask 
soll ich wählen, wenn ich jetzt NUR die ID 301 bis 307 NICHT empfangen 
will?
Ein Beispiel als berechnung wäre hilfeich.

Danke

von Sven H. (Gast)


Lesenswert?

Indem du ein Mob einrichtest, welches auf die ID 301 bis 307 reagiert.
Dieses Mob muss eine höhere Priotität als dein "Alles rein" Mob haben.

Im Can-Interrupt verwirfst Du dann einfach die Daten des 301..307 MObs.

von oliver (Gast)


Lesenswert?

Hallo,
ich komme wieder mit dem selben Problem.
ich erkläre zuerst, was ich mache.
Ich habe die Kommunikation über CAN-Bus zwischen zwei AT90CAN128 
erstellt.
Die Platine 1 sendet regelmässig verschiedene Nachricht auf den Bus mit 
ID=0,8,10,30.
Die Platine 2 soll nur empfangen.
Ich programmiere das Mob1, damit es auf die ID=0 hört, dafür sende 
ich(Id=0, Mask=7FF,mob=1). bis jetzt habe ich kein Problem ich bekomme 
nur die gewünschte Nachricht. Wenn ich jetzt die Mask=0 setze, bekomme 
ich alle 4 Nachricht über den Kanal 1.

Meine Frage ist:Ich bin im Zustand, Mob1 hört auf ID=0, wie konfiguire 
ich das Mob1, damit er vom diesem Zustand die ID=0 nicht mehr empfängt?

Danke schon

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.