Forum: Mikrocontroller und Digitale Elektronik CAN2.0B Nachricht an CAN2.0A Gerät schicken?


von Maik S. (Firma: Elektro-Automatik) (mstaberock)


Lesenswert?

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.

von Maik S. (Firma: Elektro-Automatik) (mstaberock)


Lesenswert?

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.

von TestX .. (xaos)


Lesenswert?

normalerweise wird bei einem fehler nur der error counter inkrementiert, 
die message boxes bleiben dann davon unberührt, zumindest bei at90can128

von Peter D. (peda)


Lesenswert?

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

von Maik S. (Firma: Elektro-Automatik) (mstaberock)


Lesenswert?

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
There are three different types of CAN modules available:
2
– 2.0A - Considers 29 bit ID as an error
3
– 2.0B Passive - Ignores 29 bit ID messages
4
– 2.0B Active - Handles both 11 and 29 bit ID Messages
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.

von Carlos (Gast)


Lesenswert?

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

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.