Forum: Mikrocontroller und Digitale Elektronik CAN Hardwarefilter


von CanUser (Gast)


Lesenswert?

Guten Abend,

für eine Anwendung wird ein Mikrocontroller mit CAN verwendet.
Um den Mikrcontroller neu zu flashen wurde eine Windows Anwendung 
entwickelt. Der Datenaustausch erfolgt mit CAN. Ohne Buslast gibt es 
keine Probleme mit dem Flashvorgang. Mit Buslast wird der Flashvorgang 
verlangsamt bzw. sogar still gelegt. Als Maßnahme wurde der CAN 
Hardwarefilter eingesetzt. Auch hier gibt es die gleichen Probleme. Was 
könnte noch unternommen werden?

von Achim M. (minifloat)


Lesenswert?

CanUser schrieb:
> Mit Buslast wird der Flashvorgang
> verlangsamt bzw. sogar still gelegt. Als Maßnahme wurde der CAN
> Hardwarefilter eingesetzt. Auch hier gibt es die gleichen Probleme. Was
> könnte noch unternommen werden?

Gib dem Datenaustausch zum Flashen durchweg höherpriore Message-IDs. 
Auch bei CANopen kann man dies noch beeinflussen.

von CanUser (Gast)


Lesenswert?

Was könnte ich noch tun, ohne die IDs verändern zu müssen?

von holger (Gast)


Lesenswert?

>Was könnte ich noch tun, ohne die IDs verändern zu müssen?

Die Buslast auf Null schrauben.

von MiWi (Gast)


Lesenswert?

CanUser schrieb:
> Was könnte ich noch tun, ohne die IDs verändern zu müssen?

Naja, Du hast die Lösung eh am Tisch:

den Knoten die da ständig dazwischenreden (und damit die Datenmenge 
empfindlich reduzieren) einen virtuellen Maulkorb verpassen, zB. in 
einen Reset schicken, ausschalten oder was auch immer Dir da hilft, die 
Datenmengen zu reduzieren...

Grüße

MiWi

von holger (Gast)


Lesenswert?

>Mit Buslast wird der Flashvorgang
>verlangsamt bzw. sogar still gelegt. Als Maßnahme wurde der CAN
>Hardwarefilter eingesetzt.

Der Filter hilft gar nichts wenn der Bus ausgereizt ist.
Wenn keine Bandbreite zum übertragen der zu flashenden Daten
mehr vorhanden ist, ist einfach Schluss. Auf einer Autobahn
fahren die Autos schliesslich auch nicht übereinander wenn
es einen Stau gibt. Beim CAN ist es genauso. Wenn die Strasse
voll ist ist sie voll. Man kann aber noch auf dem Standstreifen
fahren. Wenn die Message eine höhere Priorität hat wie z.B.
ein Polizeiauto oder Krankenwagen dürfen sie auf dem Standstreifen
an allen vorbeirauschen.

von Steffen R. (steffen_rose)


Lesenswert?

Da Du als Gegenmaßnahme die Hardwarefilter genutzt hast, gehen alle 
davon aus, dass die problematische Buslast durch Fremdtraffic erzeugt 
wird. Ist dem so?

Wirken die Filter?

Kann es sein, dass eher dein Windowsprogramm durch den Traffic gestört 
wird und langsamer sendet (warum auch immer)?

Die vorab gemachten Annahmen, dass dein Traffic durch höherpriore 
Nachrichten gebremst wird kann man leicht im Analyser prüfen.

von CanUser (Gast)


Lesenswert?

Den Can-Hardwarefilter habe ich nur auf dem Mikrocontroller im Einsatz.
Mit dem Peak-Can-Dongle übertrage ich die Daten an dem Mikrocontroller.
Um eine hohe Buslast zu simulieren, sende ich mit dem Peak-Can-Dongle 
drei Can Nachrichten alle 10 ms. Da bricht die Kommunikation nach einer 
gewissen Zeit ab.

von CanUser (Gast)


Lesenswert?

>>Die vorab gemachten Annahmen, dass dein Traffic durch höherpriore
>>Nachrichten gebremst wird kann man leicht im Analyser prüfen.

Von Peak habe ich nur den PCAN-View Software. Wo kann man dies mit dem 
Viewer feststellen?

von CAN Kann (Gast)


Lesenswert?

Um beim Flashen möglichst weinig Traffic auf dem Bus zu haben, habe ich 
das bei mir folgendermaßen gelöst:
Ein Befehl vor Flashbeginn sorgt dafür, dass alle Knoten ein spezielles 
Flag setzen und danach nur noch wichtige Nachrichten, wie z.B. 
Alarmmeldungen oder bestimmte Tastendrücke auf den Bus geben. Alle 
anderen unwichtigen Nachrichten, wie z.B. Temperaturen oder die Uhrzeit 
werden nicht gesendet. Somit ist kaum Buslast und der Flashvorgang kann 
beginnen. Ist dieser zu Ende wird das Flag per Befehl wieder gelöscht 
und die Knoten senden wieder normal.
Diese Mimik muss allerdings von jedem Konten verstanden werden, sprich 
in der Firmware integriert sein. Über sowas sollte man sich daher schon 
in der Planungsphase des Busses und der Software Gedanken machen.

Gruß

von Steffen R. (steffen_rose)


Lesenswert?

CanUser schrieb:
> Um eine hohe Buslast zu simulieren, sende ich mit dem Peak-Can-Dongle

Sendest Du auch mit dem gleichen Peak-Dongle die Daten für den Flash?
Ansonsten ist mir dein Gesamtaufbau nicht klar.

>>>Die vorab gemachten Annahmen, dass dein Traffic durch höherpriore
>>>Nachrichten gebremst wird kann man leicht im Analyser prüfen.

>Von Peak habe ich nur den PCAN-View Software. Wo kann man dies mit dem
>Viewer feststellen?

Der Testausbau erscheint mir ungünstig. Der Peak sollte hier nur 
mithören. Meine Annahme war, dass die zusätzliche Buslast durch weitere 
Teilnehmer am Bus erzeugt wird.

Ansonsten das Trace-Fenster nutzen. Soweit ich weiß, werden hier auch 
die Sendenachrichten eingetragen. Entsprechend der Zeitstempel kann man 
herausfinden, ob Lücken zwischen den Nachrichten sind oder nicht. Trifft 
die Annahme zu, dass die höherprioren Nachrichten die niederprioren 
ausbremsen, darf zwischen diesen keine Lücke sein.

Nebenbei:
Welche Bitrate nutzt Du? Stark gerundet 1 Nachricht aller 3ms sind bei 
250kbit/s oder höher nicht wirklich problematisch.

> Mimik des Flashens
Ich denke, man sollte eine Anlage nicht während des Betriebs updaten. 
Insofern sollte es einen "Konfigurations"-Modus oder ähnliches geben, 
bei der naturgemäß der Traffic gering ist. Zumal auch durch das 
Firmwareupdate selbst viel Buslast erzeugt werden kann.

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.