Forum: Mikrocontroller und Digitale Elektronik MOb-Register befüllung beim AT90CAN128


von Blödl (Gast)


Lesenswert?

Hallo,

Ich verwende AT90CAN128 und habe dazu eine rein theoretische Frage:

Szenario:
Auf dem CAN-Bus kommt ein Frame zu dem es ein passendes MOb gibt und ein 
Hit wird erkannt. Die IDT, IDE DLC weden geupdated und die 8 Daten-Bytes 
werden im Register des MOb abgelegt. -> RXOK

Was passiert nun wenn ein weiterer Frame mit der gleichen ID, jedoch 
anderen Daten, kommt bevor ich in meinem Programm die Daten des alten 
Frame ausgelesen habe?

Werden die Register einfach überschrieben? Oder bleibt der Frame im 
Receive-Buffer bis das das Register des MOb wieder frei ist?

von Rudolph (Gast)


Lesenswert?

Die Message-Box wird erst wieder durch erneutes beschreiben von CANCDMOB 
freigeschaltet.

von Blödl (Gast)


Lesenswert?

Das MOb wird also mit Setzen des RXOK disabled. Also sehe ich es 
richtig, dass weitere Frames der gleichen ID bis zum Auslesen und Reset 
von CANCDMOB einfach ignoriert werden?

von Rudolph (Gast)


Lesenswert?

Ja, solange die Messsage-Box nicht wieder auf Empfang geschaltet wird 
nimmt sie halt keine Daten an.

Das dürfte sich aber in der Praxis eher nicht so auswirken das 
Botschaften verloren gehen, der CAN ist ja doch recht langsam.
Eine CAN-ISR die einfach nur die Daten aus dem MoB schaufelt ist in 
weniger als 2µs fertig.

Wie kurz kann ein Frame sein? Ich komme auf mindestens 52 Bits bei einem 
Byte Daten, also 52µs bei 1MBit.
8 Byte Nutzdaten und 500kBit wären dann 216µs.

Also richtig viel Zeit dafür zu sorgen, dass die Daten verstaut sind.

100% Buslast hat man dann ja auch nicht.

von Peter D. (peda)


Lesenswert?

Man kann auch mehrere MOBs auf den gleichen ID setzen.
Allerdings wird dann immer der unterste freie befüllt, d.h. die 
Reihenfolge ist nicht garantiert. Man kann dann mit dem Timestamp 
feststellen, welcher MOB die früheste Nachricht enthält.

von Rudolph (Gast)


Lesenswert?

Man kann auch mehrere belegen, klar.
Aber wofür? Wenn man es nicht schafft eine MoB in >> 50µs frei zu 
machen, dann werden auch drölf MoBs früher oder später voll sein.

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.