Hallo,
Zitat von joachimkr im Beitrag #12
...
Hier käme es also auf die Strategie der CC Schnitte an, ob und wie oft sie wiederholt.
die Schnitte wiederholt keine CAN-Frames sofern der CAN-Bus OK ist. Wenn es Probleme auf dem CAN-Bus gibt, wiederholt der CAN-Controller solange das Senden, bis die CAN-Nachricht erfolgreich empfangen wurde (ACK)*. Das ist ganz normaler CAN-Standard.
Zitat
Auch bei der Gleisbox wäre interessant, wie oft sie es tut.
Die Gleisbox wiederholt die Befehle auf dem CAN-Bus nicht. Das Märklin Protokoll quittiert den Erhalt eines Befehls mit gesetztem Response Bit der (oft gleichen) Nachricht.
Zitat
Sowohl CS oder MS könnten per CAN obendrauf wiederholen. Ein CAN Sniffer müsste das zeigen.
Ich habe Thorsten ein vollwertiges CAN-Interface zur Verfügung gestellt. Neben der Klartextdarstellung der Märklinbefehle durch den can-monitor zeigt das Tool auch ggf. Fehler des CAN-Busses an. Gleichzeitig kann man sich die Statistiken des CAN-Interfaces anschauen. Eventuelle Probleme sind leicht zu erkennen:
pi@raspberrypi:~ $ ip -s -d link show can0
3: can0: <NOARP,UP,LOWER_UP,ECHO> mtu 16 qdisc pfifo_fast state UP mode DEFAULT group default qlen 10
link/can promiscuity 0 minmtu 0 maxmtu 0
can state ERROR-ACTIVE restart-ms 100
bitrate 250000 sample-point 0.875
tq 250 prop-seg 6 phase-seg1 7 phase-seg2 2 sjw 1
mcp251x: tseg1 3..16 tseg2 2..8 sjw 1..4 brp 1..64 brp-inc 1
clock 8000000
re-started bus-errors arbit-lost error-warn error-pass bus-off
0 0 0 0 0 0 numtxqueues 1 numrxqueues 1 gso_max_size 65536 gso_max_segs 65535
RX: bytes packets errors dropped overrun mcast
0 0 0 0 0 0
TX: bytes packets errors dropped carrier collsns
0 0 0 0 0 0
Möglichkeiten, die die CC-Schnitte nicht bietet.
Was das Problem der Schnitte ist habe ich im Rocrail Forum erläutert:
MAC Rocrail CC-Schnitte Gleisbox MS2 (sorry leider nur mit Account)TL;DR:Die CC-Schnitte verwendet kein Framing und die 16ms Pause (siehe Seite 6&7
FTDI AN232B-04) zwischen einzelnen USB-Datenblöcken kann zu Hängern bei Rocrail führen.
Ein weitere Vorteil des Linux Interfaces ist die permanente Begutachtung der CAN-Treibers von zig Tausend Nutzern. Evt. Fehler, die in letzter Zeit rar geworden sind, werden zügig
behoben.
Zitat
Wenn sie selbst nicht wiederholen, reicht ein kollidiertes, nicht Wiederholtes CAN Paket und der Befehl ist weg.
Das passiert auf dem CAN-Bus nicht (siehe oben). Wie gesagt, der Standard ist Wiederholen, bis ein anderer Teilnehmer den CAN-Frame erfolgreich empfangen hat (ACK). Das ist ja gerade die Stärke des CAN-Busses neben der physikalischen Robustheit.
Zitat
Thorsten, Du könntest einfach 2 CC Schnitten einsetzen und Dich auf die Trennung innerhalb von RocRail stützen.
Ggf. sinnvoll, aber nicht unbedingt erforderlich bei einem vollwertigen Adapter.
Gruß
Gerd
PS: *Es gibt noch ein paar andere Modi wie Presume ACK oder One-Shot Modus - hier der Einfachheit halber weg gelassen.