Hallo! Wer kann sagen, was passiert, wenn ich eine Nachricht nach CAN2.0B extended Format an ein Gerät schicke, das nur CAN2.0A base Format versteht? Gibt es dann Probleme mit den Messagebuffern? Danke schon mal im Voraus.
Zusatz: Habe rausgefunden, daß das schon vom Mikrocontroller aussortiert wird. Wir haben einen Atmel AT89C51CC03, der kann 2.0A und 2.0B und betrachtet die extended frames als Fehler, wenn er im standard frame mode arbeitet. Große Frage ist nun: was macht er mit dem Fehler? Das sagt das Datenblatt von Atmel nicht. Legt er ihn als Wert/Zähler in einem der Register ab und dann ist es für ihn erledigt? Wäre logisch. Brauche nur Gewißheit.
normalerweise wird bei einem fehler nur der error counter inkrementiert, die message boxes bleiben dann davon unberührt, zumindest bei at90can128
Maik Staberock schrieb:
> Große Frage ist nun: was macht er mit dem Fehler?
Er wird einen Errorframe ranhängen und damit das Paket für alle als
ungültig markieren.
Die Nachricht wird zerstört, keiner kann sie empfangen.
Peter
Peter Dannegger schrieb: > Maik Staberock schrieb: >> Große Frage ist nun: was macht er mit dem Fehler? > > Er wird einen Errorframe ranhängen und damit das Paket für alle als > ungültig markieren. > Die Nachricht wird zerstört, keiner kann sie empfangen. > > > Peter Ist das definitiv? Wie könnte man dann Geräte mit 2.0A und 2.0B gleichzeitig am Bus betreiben? In Atmels Datenblatt steht
1 | |
2 | |
3 | |
4 | |
woraus ich lese, daß also 2.0B passiv die bessere Betriebsart für gemischten Betrieb wäre. Nur, wie kriegt man den Prozessor dazu? Das CANCONCH Registerbit 4 läßt nur Wahl zwischen 2.0A und 2.0B zu.
Gast
#1341243
Hallo Maik, die drei verschiedenen Arten der erwähnten CAN-Module gelten zunächst ganz allgemein(!) für alle möglichen CAN-Controller und nicht speziell für den CC03er. Der CC03er kann eben 2.0A und 2.0B unterscheiden. Ist er auf 2.0A programmiert, so erkennt auch auch 2.0B-Frames, sendet aber eben KEIN Error-Frame, sonderen ignoriert das 2.0B-Frame. Anders herum wäre es ja Unsinn, denn dann würde der µC ja jede Kommunikation auf dem Bus kaputt machen. Somit hat der CC03er also, wenn er auf 2.0A programmiert ist, 2.0B-Passives Verhalten. Damit können auch 2.0A und 2.0B-Stationen in einem System zusammenarbeiten. Das gilt aber nur beim Einsatz dieses µC´s in allen Stationen. Andere CAN-Controller können dann eben unter Umständen nur reines 2.0A-Protokoll und die machen dann die 2.0Ber-Frames mit Error-Frames platt, so daß hier eine Mischung nicht möglich ist. Bei den Fehler-Zählern bin ich mir nicht sicher was passiert, das haben wir auch noch nicht näher untersucht (wir hatten noch nicht so viele Fehler und haben noch nicht oft 2.0A und 2.0B gemischt). Carlos
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.