Hallo,
beim Redesign eines unserer Offroad-Fahrzeuge haben wir gerade die
Herausforderung,d ass wir die Controller eines Hochspannungsnetzes mit
den Controller eines Niederspannungsnetzes mit CAN-Bus verbinden wollen.
Für diesen Zweck habe ich einen Prototyp für die galvanische Trennung
gebaut, bestehend aus einem TJA1052i (für die isolierung) und einen
TJA1040.
RxD und TxD der beiden Chips sind gerkeuzt Verbunden.
Für Testzwecke habe ich Versucht meine Platine über einen PCAN
(USBtoCAN) mit einem IXXAT (USBtoCAN) zu verbinden - leider ohne Erfolg.
Wenn ich jedoch eine der beiden RxDtoTxd Verbidnugnen abklemme,
funktioniert die Übertragung in eine Seite. Wenn ich die Verbindung
wieder herstelle, zeigen sowohl IXXAT als auch PCASN einen BusOff Status
an.
Habt Ihr vielleicht ideen, wo das Problem liegen kann, bzw. ob es
überhaupt möglich ist den TJA1052i mit einem TJA1040 auf diese Weise zu
Verbinden?
Danke und frohes Schaffen,
Michael
Shoadi schrieb:> TJA1052i
Das ist ein CAN Transceiver mit integrierter galvanischen Trennung.
Shoadi schrieb:> TJA1040.
Und das ist ein CAN Transceiver ohne galvanische Trennung.
Shoadi schrieb:> Prototyp für die galvanische Trennung> gebaut, bestehend aus einem TJA1052i (für die isolierung) und einen> TJA1040.>> RxD und TxD der beiden Chips sind gerkeuzt VerbundenShoadi schrieb:> wo das Problem liegen kann, bzw. ob es> überhaupt möglich ist den TJA1052i mit einem TJA1040 auf diese Weise zu> Verbinden?
äähm, was genau hast Du eiegentlich aufgebaut? Könntest Du mal bitte
Dienen Aufbau samt der PIN Anschüße der beiden oben genannten Bausteine
skizzieren.
Das funktioniert so nicht.
Ohne zusätzliche Logik kann man zwei Transceiver nicht koppeln und ich
habe da auch noch keine schlanke Lösung gefunden die funktionieren
würde.
Was funktioniert ist einen Transceicer vom MikroController zu trennen,
etwa über einen ADUM1210 oder so, dazu braucht man dann noch einen DC/DC
Wandler.
Oder wenn man ein CAN-Segment isoliert abtrennen will kann man auch
einen Controller mit zwei CAN-Schnittstellen nehmen und einen der
Transceiver isolieren.
Das erzeugt aber Latenz auf dem CAN.
Solche CAN-Isolatoren kann man auch kaufen.
CAN Controller 1
Ganvanische Entkopplung
Transceiver
CAN
Transceiver
Galvanische Entkopplung
CAN Controller 2
Was ist bei Euch anders?
Beim TJA1052i sind Transceiver und Galvanische Entkopplung auf einem
Chip. Da wirds dann noch einfacher.
Shoadi schrieb:> RxD und TxD der beiden Chips sind gerkeuzt Verbunden.
Nee, die gehen jeweils zum CAN Controller und werden nicht gekreuzt.
(Ich bin keine Elektroniker. Daher kein Schaltplan.)
Eine galvanische Trennung macht man üblicher Weise zwischen Transceiver
und MC, d.h. wo die Signale noch unidirektional sind.
Wir haben z.B. Module, die auf 4000V floaten und die Trennung machen
Optokoppler OPI1266.
Nun ja, die Komponenten sind ja - so wie ich es verstanden habe - schon
fertig, qualifiziert und/oder nicht im Zugriff. Wie soll man da zwischen
Controller und Transveiver trennen?
Zum aufgebauten CAN-Repeater mit den gekreuzten RXD/TXD (in diesem Fall
mit galv. Trennung):
Wie Rudolph schon schrieb, das funktioniert nicht weil sich der
dominante Pegel quasi festsetzt --> Dominanter Pegel wird z.B. von A
nach B "kopiert". Da jetzt auf Seite B jetzt auch dominanter Pegel
herrscht wird dieser ebenfalls auf Seite A kopiert.
Lösung: Es bedarf einer State-Machine, die einen dominanten Pegel (Low)
von X nach Y durchlässt, die Gegenseite dann aber solange ignoriert bis
der Pegel des Auslösers wieder rezessiv wird. Vermutlich braucht man
noch einen Timer zum Reset der State-Machine für den Fehlerfall.
Ob das nun mit diskreter Logik (Gatter, Flip-Flops) aufgebaut wird oder
mit programmierbarer Logik sei mal dahingestellt.
Harald A. schrieb:> Ob das nun mit diskreter Logik (Gatter, Flip-Flops) aufgebaut wird oder> mit programmierbarer Logik sei mal dahingestellt.
Nur mit Logik allein geht das nicht.
Es gibt z.B. RS-485 Transceiver mit automatischer Richtungsumschaltung,
die stellen über Strommessung fest, von welcher Seite getrieben wird.
In dem CAN-Artikel hier wird da was erwähnt:
https://www.mikrocontroller.net/articles/CAN
Und zwar das hier:
http://www.oschmid.ch/mt/can-hub/can-hub.php
Ich kann nur nicht bestätigen, ob das funktioniert, hat das schon mal
jemand erfolgreich aufgebaut?
Das müsste man dann nur noch um die galvanische Trennung ergänzen.
In die Peak-Adapter habe ich schon mal rein gesehen, die aber aus
Zeitmangel nicht genau auseinander nehmen können.
Da scheint auf jeden Fall noch weniger drin zu sein.
Harald A. schrieb:> Für einen passiven CAN Repeater wie vom OP beabsichtigt?
Der TO schreibt nichts von einem Repeater. Nach meinem Verständnis will
er "nur" eine galvanische Trennung. Den Repeater hat erst Rudolph ins
Spiel gebracht.
Hello,
und vielen Dank für eure Rückmeldungen. Jetzt ist mir klar, warum das
Teil nicht so läuft wie es soll.
Ich baue einen neuen Prototypen, basierend auf:
http://www.oschmid.ch/mt/can-hub/can-hub.php
mit einem TJA1052i anstatt des MCP2551SN.
Ich bin gespannt ob das funktioniert. Die RC-Glieder finde ich ein wenig
grenzwertig, und die Diode welche anscheinend den Pegel der RxdTxd
Leitung über den Ausgang des NOR-Gates runterziehen soll ebenso.
Je nach Ergebnis meines Versuches werde ich ersteres mit einem
Verzögerungsglied ersetzen, und zweiteres mit einem Transistor auf
Masse.
Ich halte euch auf dem Laufenden.
...und obs nun eine galvanische Trennung mit (ohnehin für diesen Zweck
nötigen) Repeater wird, oder ein CAN-Repeater mit galvanischer Trennung
lasse ich einmal dahingestellt - beide Ansätze helfen.
mfg
Michael K. oder K. Michael
Rudolph schrieb:> Nana, er hat schon deutlich beschrieben, dass er versucht hat,> einen> Repeater zu bauen. :-)> Um eben im Nachinhein zwei Segmente zu trennen.
Michael stimmt dir zu. Mich würde aber trotzdem mal interessieren, wie
du es aus der Fragestellung herauslesen konntest.
So habe ich es verstanden:
Die Aufgabenstellung
> wir die Controller eines Hochspannungsnetzes mit> den Controller eines Niederspannungsnetzes mit CAN-Bus verbinden wollen.
beschreibt keinen Repeater. Erst der fehlgeschlagene Lösungsansatz
dürfte einen Repeater nahe komme.
Warum wird hier der Aufwand betrieben einen Repeater einzusetzen?
In diesem Zusammenhang war es unerheblich, ob man nun von einer reinen
galvanischen Trennung oder von einem Repeater spricht.
Es kann zwar theoretisch einen Repeater ohne galvanische Trennung geben
aber keine galvanische Trennung ohne Repeater-Funktionalität.
@Steffen:
Was wäre denn HIER weniger Aufwand als ein galv. getr. passiver
Repeater? Würde mir gerne weitere Lösungsansätze ansehen.
Naja, langsam dämmerts auch mir.
Ich hätte die Geräte galvanisch entkoppelt. Mein Fehler. Bei mir haben
fast alle Geräte eine galvanische Entkopplung und hatte hier
fehlerhafterweise erwartet, dass diese Änderung nur einzelne Geräte
betrifft.
Tja, ich kann mir auch nicht vorstellen, dass eine
Hochspannungskomponente keine galv. Trennung auf der CAN Ebene hat.
Vielleicht ist die auch vorhanden aber nicht explizit aufgeführt.
Vielleicht noch ein Hinweis für spätere Leser: ein passiver CAN-Repeater
frischt das Signal als solches wieder auf (oder trennt es galvanisch)
aber er verschlechtert die Signallaufzeit ergänzend zur Signallaufzeit
auf dem Kabel. Bei höheren Baudraten kommt der CAN Controller ab einer
gewissen Strecke trotzdem aus dem Tritt.
Wenn es also um Reichweiten-Verlängerung geht ist ein aktiver Repeater
die sinnvollere Wahl.