Hallo! Ich habe folgendes Problem: Ich habe hier ein CAN-Bus System (High Speed), dass auch wunderbar funktioniert. Ich möchte da noch weitere Teilnehmer anschließen, die sich aber relativ weit entfernt befinden. Ich kann den CAN Bus nicht einfach mit Kupferleitungen verlängern, sondern muss dafür Lichtwellenleiter nehmen, da ich sonst fette Störungen auf dem Bus habe... Die Datenübertragung muss bidirektional sein. Ich möchte also quasi enfach einen Teil der CAN-Bus Strecke durch LWLs ersetzen. CAN <-Transeiver-> RxTx <-> LWL <-> RxTx <-Transceiver-> CAN Meine erste Überlegung dazu war, einfach zwei CAN-zu-RxTx Transceiver (z.b. TJA1040) zu nehmen und deren RxTx Aus- bzw. Eingänge über LWLs zu verbinden. Schonmal vorweg: Es funktioniert so nicht - ein Bekannter hat das schon getestet. Wenn ich theoretisch am "linken" CAN Bus eine Botschaft habe, würde der linke Transceiver sie lesen und auf den Rxd Ausgang legen. Am Txd Eingang des "rechten" Transceivers würde das Signal gelesen und auf den "rechten" CAN Bus geschrieben. Klingt bisher ja ganz gut. Gleichzeitig liest der rechte Transceiver das Signal auch wieder ein und legt es auf seinen Rxd Ausgang und der linke Transceiver schreibt es wiederrum auf den linken CAN Bus. Das Problem bei der Geschichte ist, dass es aufgrund der Laufzeiten zu zeitlichen Versetzungen der Signale kommt und sich die Signale dadurch überlappen. Ich hoffe das ist aus dem angehängten Bild einigermaßen zu erkennen. Ich habe schon mit einer Unterdrückungsschaltung probiert, die den Txd Eingang des Transceivers sperrt, wenn ein Signal über den Rxd Ausgang gesendet wird. Das funktionert auch relativ gut, nur gibt es bei der Übertragung von High Speed Prioritätsnachrichten Probleme... Außerdem ist die Sache mit der Unterdrückung meiner Meinung nach auch nicht das Gelbe vom Ei... Ich überlege jetzt, ob die ganze Geschichte evtl mit Mikrocontollern realisierbar ist. Hat da schon irgendjemand Erfahrungen mit gemacht und/oder kann mir vielleicht Tips, Ratschläge oder Hinweise geben, damit ich weiterkomme? Danke schonmal!
Der CAN-Bus ist bidirektional, läßt sich also nur schwer optisch übertragen. Deshalb ist der übliche Weg, daß jeder Teilnehmer zwischen CAN-Controller und Transceiver 2 schnelle Optokoppler (HCPL0710) hat. d.h. der Bus ist von der übrigen Schaltung galvanisch getrennt. Peter
Ich hab für den CAN-Bus Leitungslängen von 6,4 km gelesen? Ist das falsch, oder ist der Weg, den Du überbrücken willst länger? tex
Ja, das fragte ich mich auch gerade ... > Ich kann den CAN Bus nicht einfach mit Kupferleitungen verlängern, > sondern muss dafür Lichtwellenleiter nehmen, da ich sonst fette > Störungen auf dem Bus habe... Naja, das tolle am CAN-Bus ist ja gerade, dass er differentiell und somit sehr störsicher ist. Bei 10kbit/s kommt man auf über 6km Leitungslänge. Reicht das immer noch nicht?
Ne reicht leider nicht. Ich muss erstens mit 500KBit/s übertragen und zweitens verläuft die CAN-Leitung durch eine abgeschirmte EMV-Halle, in der für Tests Störfelder erzeugt werden... Die Felder sind stark genug, um einen Menschen zu töten, wenn er sich während des Tests in der Halle aufhalten würde. Die Übertragung muss wirklich über LWLs erfolgen... Ich wollte eigentlich meine Studienarbeit darüber schreiben, aber natürlich nur, wenn das ganze auch machbar ist - sonst würde ich ja recht blöde dastehen :-) Hab den Vorteil, dass ich gerade ein vorgezogenes Praxissemester bei der Firma mache, wo ich auch die Studienarbeit schreiben könnte, so dass ich hier schon ein wenig rumprobieren kann.
Nun, wenn es LWL sein muss, dann ist die Zweidrahtübertragung vieleicht nicht die beste Idee. Sie ist ja eben speziell für die Übertragung über 2 Drähte konzipiert. Wieviel Teilnehmer hast Du? Ich habe mal etwas ähnliches gebaut und den UART-Port genommen. Ich hatte aber mehr als 2 Teilnehmer, also war jeder Teilnehmer immer auch die Relaisstation für den Nachfolgenden und das ganze System war unterbrochen, wenn ein Teilnehmer ausstieg, aber das ist sowieso ein generelles Problem von LWL.
Natürlich gibt es Lösungen für den CAN, auf denen optisch übertragen wird, z.B. http://www.bb-elec.com/product.asp?sku=CANFB Interessant speziell für Dich auch: http://www.ccontrols.com/pdf/extendingcan.pdf Damit sollte das machbar sein.
@tex: Ich muss leider zwei bestehende CAN-Systeme miteinander verbinden. Ich habe keine Möglichkeit die CAN-Teilnehmer zu verändern sondern kann nur auf die Übertragungsstrecke einfluss nehmen. @Joachim: Danke! Werde mir die PDF gleich mal zu Gemüte ziehen. Das die Übertragung möglich ist, habe ich auch schon gesehen. Die Übertragnung vom ersten Link schafft nur 250KBit/s und eine Box kostet 190$. Bin schon früher auf solche Fertiglösungen gestoßen, aber die wolle dafür ein Schweingeld haben. Außerdem möchte die Firma bei der ich die Studienarbeit machen möchte das lieber selbst entwickelt haben. Hinzu kommt, dass es ja meine Studienarbeit ist. Gibt nen recht dünnen Bericht ab, wenn ich nur den Link und die Rechnung beilege ggg Naja, Scherz beiseite. Habe mir jetzt eine Übertragung überlegt, bin mir aber noch nicht sicher ob das wiederum funzt: Wenn ich die beiden CAN-Systeme über Transceiver und CAN-Controller mit Mikrocontrollern verbinde und die UART-Schnittstellen der beiden µC über LWLs verbinde, dann wäre doch folgende Übertragung möglich: Eine Botschaft x erreicht den ersten CAN-Controller. Der gibt ihn an den ersten Mikrocontroller weiter, welcher die Botschaft in RxTx-Pakete umwandelt und mit 1MBit/s über die LWLs zum zweiten µC sendet. Der empfängt die Daten, wandelt sie wieder in eine vollständige CAN-Botschaft um und übergibt sie dem zweiten CAN-Controller, der sie auf den zweiten CAN-Bus schreibt. Und das ganze natürlich auch umgekehrt. Meint Ihr das klappt so oder seht Ihr offensichtliche Schwächen, die mir bisher entgangen sind?
Ich hab keine Ahnung ob es funktioniert, aber ich wüßte keinen Grund, warum es nicht funktionieren sollte.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.