HI an alle,
ich habe 2 verschiedene stecker, auf denen je 1x CAN-Bus kommen soll.
Allerdings wollte ich Sie an einen Treiber anschließen.
Geht das einfach, wenn ich LOW mit LOW und HIGH mit HIGH verbinde oder
muss ich da noch mehr beachten?
MfG
Hallo,
sicherheitshalber nachgefragt (wegen gemeinsam auf Treiber): Du hast
zwei vollwertige Busse (also nach dem Tranceiver), die Du gerne
zusammenschalten möchtest um dann ein weiteren CAN-Knoten (Deinen
Treiber - was meinst Du damit eigentlich genau?) damit zu verbinden?
Oder hast Du zwei CAN-Controler/Mikrocontroller mit CAN, die Du
gemeinsam auf einen Tranceiver (Treiber) schalten möchtest?
Im ersten Fall geht es, wenn man High/Low/Gnd miteinander verbindet und
die Nachrichten der beiden Busse keine gleichen IDs haben. Aufpassen
muss man dann noch mit der Terminierung, da dann vermutlich zwei
Terminierungen überflüssig geworden sind.
Der zweite Fall ist schwieriger (dann wäre es aber auch RX/TX und nicht
High/Low), ginge aber auch mit einer entsprechenden Logikschaltung.
Schöne Grüße,
Martin
OnkelOtto schrieb:> Klar geht das. Deshalb heisst es ja "Bus".
Das ist aber nicht bei jedem Bus so. Bei USB geht das z.B. nicht.
Martin L. schrieb:> Der zweite Fall ist schwieriger (dann wäre es aber auch RX/TX und nicht> High/Low), ginge aber auch mit einer entsprechenden Logikschaltung.
Und passender Software, denn die beiden Controller dürften ja dann nicht
gleichzeitig zugreifen, und auch dürfe es nur einer
initialisieren/konfigurieren. Das wäre generell ein wenig sinnvolles
Unterfangen.
Hallo,
nein, passende Software ist nicht notwendig, da die Tranceiver
tatsächlich nur die Bustreiber sind (und zumindest in der Basisversion
auch höchstens durch einen Rate-Limiter-Widerstand konfiguriert werden)
und die Kollisionserkennung- und behandlung dann weiterhin in den beiden
CAN-Controllern stattfinden würde.
Ich glaube den Fall den Du im Kopf hattest wären zwei µC die auf einen
gemeinsamen CAN-Controller zugreifen (z.B. seriell). Da würde ich Dir
allerdings zustimmen, dass das gar keinen Sinn macht.
Schöne Grüße,
Martin
Naja, man muss zumindest sicherstellen, dass bei Zusammenschalten der
beiden CAN-TX Pins bei gleichzeitigem Dominanten und Rezessive Pegel der
Dominante Pegel anliegt.
Da zusätzlich auch ein Transceiver im Einsatz ist, entfällt die Sorge um
die Rückführung des CAN-TX Signals auf den CAN-RX Pin. Hier wäre noch
eine Beschaltung notwendig, wenn man ganz auf den Transceiver im
Netzwerk verzichtet.
Steffen Rose schrieb:> Naja, man muss zumindest sicherstellen, dass bei Zusammenschalten der> beiden CAN-TX Pins bei gleichzeitigem Dominanten und Rezessive Pegel der> Dominante Pegel anliegt.
Auf der Seite gibt es eigentlich noch keine dominanten oder rezessiven
Pegel. Das ist ja eines der Dinge, die der Transceiver erst macht.
Ich hab grad mal im Datenblatt des SJA-1000 geschaut, und da ist es
einstellbar, wie die TX-Pins sich verhalten sollen. Je nach Einstellung
gibt's halt nen Kurzschluss, wenn der eine High sendet und der andere
Low. Ich weiß nicht, wie's bei anderen CAN-Controllern ist.
@ rmagnus
USB ist keine Busstruktur sondern eine Baumstruktur.
Der Name ist da völlig irreführend. Es müsste eigentlich "Universal
Serial Baum" heissen.
@diverse andere
Thema verfehlt.
Der OP möchte Low mit Low verbinden und High mit High, nicht Tx mit Tx
und Rx mit Rx.
Den GND noch mit zu verbinden macht das ganze natürlich hübscher.
Bei 2 vershiedenen Steckern mit je einem CAN-Bus stellen sich eigentlich
ertst einmal ein paar Fragen:
Wie hoch ist die Auslastung der Busse?
Welche Baudrate verwenden die Busse, oder kommen alle Teilnehmer mit
Mischbetrieb zurecht?
Gibt es IDs die auf beiden Bussen verwendet werden?
OnkelOtto schrieb:> @ rmagnus> USB ist keine Busstruktur sondern eine Baumstruktur.> Der Name ist da völlig irreführend. Es müsste eigentlich "Universal> Serial Baum" heissen.
Wie kommst du darauf, daß ein Bus nur dann einer ist, wenn alle
Teilnehmer elektrisch parallel geschaltet sind? Bei PCI express gibt's
auch separate Lanes für jeden Teilnehmer, und man spricht von einem Bus.
Oder wie es die Wikipedia sagt:
"Early computer buses were parallel electrical wires with multiple
connections, but the term is now used for any physical arrangement that
provides the same logical functionality as a parallel electrical bus.
Modern computer buses can use both parallel and bit serial connections,
and can be wired in either a multidrop (electrical parallel) or daisy
chain topology, or connected by switched hubs, as in the case of USB."