Forum: Mikrocontroller und Digitale Elektronik CAN prüfen ob teilnehmer anwesend?


von Sina A. (sinapse)


Lesenswert?

Hallo,

möchte bei in einem CAN Netzwerk optionale Teilnehmer anbieten...

jetzt soll ein Teilnehmer A zwischendurch nachschauen, ob Teilnehmer B 
vorhanden ist... wie macht man das am blödsten? Denn wenn ich immer 
wieder Nachrichten an B schicke und dieser die Nachrichten nicht 
"ack"ed, gehen ja ständig die CAN-Fehlercounter hoch bis mein 
CAN-Controller lahm gelegt wird (BUS-OFF)

oder führt da kein weg am bus-off vorbei?


danke

von Dr. Sommer (Gast)


Lesenswert?

sina anargo schrieb:
> Denn wenn ich immer
> wieder Nachrichten an B schicke und dieser die Nachrichten nicht
> "ack"ed,
Dann ACK'ed die irgendein anderer Teilnehmer am Bus. ACK wird immer von 
jedem gesendet.

sina anargo schrieb:
> gehen ja ständig die CAN-Fehlercounter hoch bis mein
> CAN-Controller lahm gelegt wird (BUS-OFF)
Das passiert nur wenn gar kein anderer Teilnehmer am Bus (erreichbar) 
ist, und in dem Fall willst du das wahrscheinlich eh wissen...

Mach es entweder so dass A regelmäßig B abfragt ob er existiert, oder B 
einfach regelmäßig sendet "ich bin da"...

von (prx) A. K. (prx)


Lesenswert?

Ein CAN Bus benötigt mindestens 2 potentiell aktive Teilnehmer. Ist das 
der Fall, geht der Fehlerzähler nur bei echten Fehlern hoch.

von Sina A. (sinapse)


Lesenswert?

ah.. ok.  ich dachte nur derjenige fuer den die nachricht bestimmt ist 
acked?

von Rudolph (Gast)


Lesenswert?

Einfach eine ich-bin-da Botschaft senden mit einem Zähler, da kann zum 
Beispiel auf ein Teil der Botschaften drin enthalten sein die der Knoten 
verarbeiten soll, so als Bestätigung, dass die Anfrage richtig 
angekommen ist.

von (prx) A. K. (prx)


Lesenswert?

sina anargo schrieb:
> ah.. ok.  ich dachte nur derjenige fuer den die nachricht bestimmt ist
> acked?

Es gibt kein Zieladresse in CAN. Nur Message-IDs. Ob sich jemand für die 
interessiert ist für den Bus nicht relevant.

von Thomas Forster (Gast)


Lesenswert?


von H.Joachim S. (crazyhorse)


Lesenswert?

Hm, üblicherweise sendet jeder Knoten zyklisch. An der ID kann man doch 
erkennen, ob der jeweilige Teilnehmer da ist?

Alternativ sollte das mit remote-frames gehen, habe ich aber noch nie 
benutzt, daher keine Erfahrung.

von Clemens S. (zoggl)


Lesenswert?

schau mal unter CANopen nach. dort sind zwei modelle im einsatz.
http://www.canopensolutions.com/english/about_canopen/guarding_heartbeat.shtml

von (prx) A. K. (prx)


Lesenswert?

H.Joachim Seifert schrieb:
> Hm, üblicherweise sendet jeder Knoten zyklisch.

Kann man natürlich so machen, aber wieso "üblicherweise"?

von H.Joachim S. (crazyhorse)


Lesenswert?

Zumindest kenne ich nichts, wo das nicht passiert.
Im Auto (da wiederum kenne ich nur den Motor-CAN Porsche und VW) ist es 
so. Buderus-Heizungssteuerung ebenso. An einer Maschinensteuerung 
(Walzstrasse) war es auch so. Mehr praktische Beispiele kenne ich nicht. 
Bleiben ein paar eigene Sachen, da habe ich es auch so gemacht. 
Natürlich muss man nicht, wird aber auch dazu benutzt, zu schauen, ob 
alle Teilnehmer da sind.

von dunno.. (Gast)


Lesenswert?

A. K. schrieb:
>
> H.Joachim Seifert schrieb:
>> Hm, üblicherweise sendet jeder Knoten zyklisch.
>
> Kann man natürlich so machen, aber wieso "üblicherweise"?

Die Dinger die ich so von namhaften Autoherstellern kenne tun das 
tatsächlich öfters.. die senden zumeist irgendwelche Werte zyklisch rum.

von Rudolph (Gast)


Lesenswert?

Zyklisch senden kann man machen um feststellbar zu  machen, ob der 
Knoten noch da ist, muss man aber nicht und machen die Knoten des 
Fragenden ja scheinbar nicht.

von Thomas T. (runout)


Lesenswert?

Der Beitrag von
Autor: Clemens S. (zoggl)

sagt eigentlich alles...
und bisschen Standard (CANopen) kann nicht schaden.

Grüße Runout

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

H.Joachim Seifert schrieb:
> Zumindest kenne ich nichts, wo das nicht passiert.

Bei der Verwendung von CANopen und reiner SDO-Kommunikation muss da gar 
nichts zyklisch laufen. Ich kenne mindestens ein Produkt, das so 
arbeitet. Und selbst bei PDO ist der zyklische Versand nur optional, 
aber durchaus recht gebräuchlich.

Bei aktivem Heartbeat gibt es natürlich zyklische CAN-Frames.

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.