Forum: Mikrocontroller und Digitale Elektronik usb galvanisch getrennt -> usb zu usb device <-


von maddin (Gast)


Lesenswert?

gibt es einen chip, oder eine möglichkeit zur galavanischen trennung 
eines usb signals an einen controller mit usb stack?

könnte man einen can controller nehmen, um die differentiellen signale 
des usb in rx und tx aufzuspalten, dann diese signale mit 2 optokopplern 
galvanisch trennen und auf der device seite wieder in usb signale 
wandeln, wäre ein can controller dafür brauchbar, 82c250 oder ein dmx 
controller 75176?


wäre soetwas denkbar, oder gibts es soetwas schon in einem ic? welches 
zudem einigermassen gut zu erwerben ist?

dies geht nicht:
http://www.elv-downloads.de/service/manuals/UO100/53789_UO100_km.pdf
da im controller ein usbstack sein wird und:

dies geht nicht

http://www.baaske.net/usb_galvanisch_trennen.html

da zu umständlich und aufwändig....

gruß,
m.

von Mat (Gast)


Lesenswert?

Es gibt auch hybrid Optokoppler - die können in beide Richtungen 
"Optokoppeln".

von Guido Körber (Gast)


Lesenswert?

Standardkonform geht das nicht. Die einzige ordentliche Lösung die ich 
jemals gesehen habe ist ein USB Hub, der eine galvanische Trennung hat. 
Als Baustein gibt es sowas nicht und einfach mit ein paar Optokopplern 
ist da auch nichts getan, da auf jeden Fall die unterste Protokollebene 
decodiert werden muss, das wiederum verbraucht mehr Zeit als das 
Protokoll zulässt, es sei denn man ist Hub...

von Guido Körber (Gast)


Lesenswert?

Ach ja: Die sinnvolle Lösung wäre es auf Geräteseite die Trennung 
vorzunehmen. Wenn es nur wenige Leitungen aus dem Gerät heraus gibt, 
halt die galvanisch trennen. Sind es viele, dann einen kleinen USB 
Controller nehmen, eine galvanische Trennung vorsehen und dahinter einen 
größeren Controller der die I/Os bedient.

von maddin (Gast)


Lesenswert?

...warum muss man die unterste protokollebene decodieren?

vielen dank bis hierher schonmal.
gruß,
m.

von chris (Gast)


Lesenswert?

Habe einen galvanisch getrennten Usb-RS232/485/422 Wandler mit einem
mega48 gemacht, be Verwendung des Soft-stackes und Trennung von send und 
receive-Pins, also 4 Pins anstatt 2 mit insgesamt 4 optocouplern.
Eine generisch Lösung würde mich auch interessieren.

von Gast (Gast)


Lesenswert?

Es dürfte bereits mit 6 optocouplern gehen, wieviel Support-Logik 
allerdings noch drauf muß, weiß ich nicht, aber es geht definitiv ohne 
decoding.

von Falk B. (falk)


Lesenswert?

@  chris (Gast)

>Habe einen galvanisch getrennten Usb-RS232/485/422 Wandler mit einem
>mega48 gemacht, be Verwendung des Soft-stackes und Trennung von send und

Das ist was VOLLKOMMEN anderes! RS232/RS422 sind unidirektional, 
einfacher geht nicht, Optokoppler und gut. Die Richtungsumschaltung von 
RS485 ist auch leicht, der FTDI232 kann das von Haus aus.
Alles trivial.
ABER! . . .

@ Gast (Gast)

>Es dürfte bereits mit 6 optocouplern gehen,

Dürfte? Konjunktiv. Schon mal gemacht?

> wieviel Support-Logik
>allerdings noch drauf muß, weiß ich nicht, aber es geht definitiv ohne
>decoding.

AHA, du verwendest den Konjunktiv und plötzlich bist GANZ SICHER dass es 
doch einfach ist?
Das wage ich mal zu bezweifeln. Galvanische Trennung von USB ist schon 
tausendfach diskutiert worden, mit dem Ergebniss, dass es kein Ergenbis 
gibt. Es ist SCHWIERIG bis unmöglich. Denn USB ist bidirektional mit 
VERDAMMT knappem Timing. Ja, es gibt Lösungen, die USB auf Ethernet 
umsetzen. Da ist aber ein ausgewachsener IC + Software drin.

An den OP.

Wenn du dir einen Gefallen tun willst, nimm RS232/RS485, die kann man 
leicht galvanisch trennen.

MFG
Falk

von Christian R. (supachris)


Lesenswert?

Ohje, alle paar Wochen wieder das gleiche. Ohne extremen Aufwand ist das 
bei USB einfach nicht machbar. Warum? Das ganze läuft bidirektional ohne 
jegliche Steuerleitung usw. und nur wenn man die unterste 
Protokollschicht dekodiert, weiß man, in welcher Richtung die Signale 
gerade unterwegs sind. Wenn es so einfach wäre, gäbe es das ja an jeder 
Ecke zu kaufen, oder? Es gibt solche USB-Lichtwellenleiter Umsetzer, 
sind aber quasi auch ein Protokollumsetzer, da steckt jede Menge 
Protokoll drin, umsonst ist der Spartan 3e da sicher nicht drauf.

Also vergiss es. Trenne die Signale hinter dem USB-Device-Controller von 
der restlichen Schaltung und gut ist. Da gibts massenhaft einfache und 
bezahlbare Lösungen.

von Falk B. (falk)


Lesenswert?

Für alle zukünfigen Anfragen zum Thema USB und galvanische Trennung

http://www.mikrocontroller.net/articles/USB#Tipps_.2B_Tricks

von maddin (Gast)


Angehängte Dateien:

Lesenswert?

...vielen dank für die tipps...

ich habe gerade meinen usb stack auf einem atmega168 zum laufen 
bekommen.

in dieser schaltung wird d+ über 1M downgepullt und über 68ohm an einen
atmega pin gebracht. d- wird über 1K upgepullt und über 68ohm an einen 
anderen pin des atmegas.

das ist mein momentaner stand, nun soll direkt am atmega das signal 
galvanisch getrennt werden, hierzu kommen nur spulen/übertrager oder 
optokoppler in frage.

das timing ist eng, der bus ist bidirektional/differentiell, damit wird 
es schwierig  - ist mir schon klar, denn so wie alles was ich hier 
bereits darüber gelesen habe aussieht wirds nicht einfach.

meine erste möglichkeit besteht wohl darin den stack so anzupassen das 
er auf einem pin usb "empfängt" und auf dem anderen "sendet"(hierzu 
poste ich gleich auch noch eine kleine zeichnung), damit wäre die 
schaltung schonmal um einiges einfacher denke ich.

meine zweite besteht darin, 2 controller zu nehmen, den einen mit dem 
stack zu programmieren und einer seriellen gegenstelle, und der andere 
ebenfalls mit einer seriellen gegenstelle und meinem jetzigen programm, 
dann würde ich allerdings 2 controller benötigen was auch nicht 
unbedingt schlecht sein muss, hier müsste ich mal sehen ob sich der 
stack in einem tiny mit 8pinnen unterbringen ließe, denn ich habe nicht 
so viel platz, da dieses projekt nach möglichkeit leicht nachbaubar sein 
soll, und somit de komponenten eh schon im dil gehäuse sind.

des weiteren benötige ich einen optokoppler der diese datenraten 
mitmacht, ich habe hier den 6n136, tiL111 und den cny17-4 zur hand...

im anhang habe ich noch einen kleinen gedankenansatz, welchen ich u.a. 
heute noch nebenbei vertieft habe, darin wird sich ein problem der 
rückkopplung ergeben. die enable pins sind natürlich so beschaltet das 
alle transceiver beidseitig aktiv sind...

hier wären transceiver interessant die mit den datenraten klar kommen,

ich habe hier den 75176,82c250,lt1485.

so ich werde mal weiter die windungen welzen, vielen dank für die 
antworten bis jetzt :-)

gruß,
m.

von maddin (Gast)


Angehängte Dateien:

Lesenswert?

hier nochmal das "SINNBILD" einer Trennung, deren ausführung auch 
Softwareänderungen mit sich bringen würde...

NACHT

m.

von Kevin K. (nemon) Benutzerseite


Lesenswert?

meilhaus hat sowas, ansonsten gibt es usb -> glasfaser konverter, usb 
über lan könnte auch gehen (beim rj45netzwerk hast du einen trafo als 
galvanische trennung)

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Ein eher erfolgversprechender Ansatz wäre die Analyse dessen, was in 
einem USB-Hub enthalten ist. Als VHDL-Core gibt es USB-Hubs, eine 
kommerzielle (und vermutlich recht teure) Variante wäre z.B. dieser 
USB2.0-Hub: 
http://www.arasan.com/products/prod_overview/USB_2-0_Host_IP_Core.pdf

Möglicherweise kann man aber auch 
http://www.opencores.org/projects.cgi/web/usb_phy/overview etwas 
Informationen entlocken.

von chris (Gast)


Lesenswert?

Habe nicht die RS232 Seite galvanisch getrennt, sondern die USB Seite.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Wie willst Du das erreicht haben?

von chris (Gast)


Lesenswert?

Indem ich die 2 bidirectional pins auf 4 aufgeteilt habe, 2x tx, 2x rx
und in SW (sw-usb stack) die outputs sowie inputs getrennt habe,
da der uC ja weiß, ob er sendet oder empfängt.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Und das bekommst Du schnell genug hin?

Gut, 's wird wohl auf einem Soft-USB-Stack à la obdev.at oder Igor Cesko 
aufsetzen, und die machen Low-Speed-USB mit 1.5 MBit/sec. Da ist das 
vielleicht wirklich denkbar.

von Falk B. (falk)


Lesenswert?

@ chris (Gast)

>Indem ich die 2 bidirectional pins auf 4 aufgeteilt habe, 2x tx, 2x rx
>und in SW (sw-usb stack) die outputs sowie inputs getrennt habe,
>da der uC ja weiß, ob er sendet oder empfängt.

Ach sooo, na das ist ja einfach.

Wir warten dann mal gespannt wie lange du brauchst das stabil zum laufen 
zu kriegen.

MFG
Falk

von Guido Körber (Gast)


Lesenswert?

Also dass Leute auf einen Berg klettern weil er da ist kann ich ja 
verstehen, aber warum es immer wieder Leute gibt die den Kopf an die 
Wand hauen wird mir wohl ewig ein Rätsel bleiben.

Es gibt einen erheblichen Unterschied zwischen Design und Bastelei. Die 
Optokoppler in der USB Leitung sind Bastelei, daran ändert auch die 
Vielzahl der minderwertigen Lösungen auf dem Markt nichts.

von Christian R. (supachris)


Lesenswert?

Naja, wenn er das nicht verkauft, und somit nicht gezwungen ist, sich an 
Standards zu halten, kann er´s ja basteln. Nur darf er dann halt nicht 
USB drauf schreiben.

von chris (Gast)


Lesenswert?

Ich darf das USB Logo nicht verwenden, weil ich nicht effektives
Mitglied bin, sondern nur eine einmalige Mitgliedschaft gezahlt habe,
um einen USB-VID zu bekommen.

von gast (Gast)


Lesenswert?

Um ein usb Logo verwenden zu dürfen brauchst du meines wissens die VID 
und eine TestID mit einem dazugehörigen erfolgreichem Testprotokoll.
Das Testprotokoll wird von einem Testlabor das von USB-IF zertifiziert 
ist erstellt und dem usb-IF dann mitgeteilt(daher ie TestID).( irgendwo 
in belgien oder niederlande ist eins ) und die testen so schöne sachen 
wie augendiagramme, 500 enumerations in folge, Chapter 9 Test, Test an 
OHCI EHCI UHCI controllern, mit 30 Meter kabel und 5 Hubs dazwischen 
(Golden Tree Test), ...

Was du ausser der VID zum beantragen der TestID noch benötigst, keine 
Ahnung. nur mit einer Mittgliedschaft alleine ist es nicht getan. Ok 
TestID und den test lassen sich die natürlich bezahlen

viele host controller sind was timing angeht relative robust, was noch 
lange nicht heist, das sie usb konform sind.

von Justin (Gast)


Lesenswert?

Warum ist
http://www.baaske.net/usb_galvanisch_trennen.html

zu umständlich und zu aufwändig? Das verstehe ich nicht.

Einfacher geht es doch eigentlich nicht, denn der USB auf LWL und zurück 
Umsetzer wird einfach dazwischengestöpselt und das wars. Spannung 
bezieht das Ding über die 5V USB und wenn Geräteseitig auch die 5V 
aufgelegt werden, ist noch nicht einmal eine Stromversorgung notwendig.
Wir setzen das Ding selbst auch ein und führen damit das Signal vom 
Prüfling weg zur Steuerung. Funktioniert bestens.
Bei Optokopplern ist bei einer bestimmten Spannung schluss, dann schlägt 
er durch.

Warum also das Rad neu erfinden?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Der Preis ist ein Aspekt, ein anderer, daß es durchaus sinnvoll sein, 
die galvanische Trennung in ein Gerät einzubauen, so daß der Anwender 
auch durch Wahl eines anderen Kabels diese nicht aufheben kann.
Zu guter Letzt möchte man auch in der Kleinserienentwicklung nicht auf 
Gedeih und Verderb dem Goodwill von noch einem Hardwarelieferanten 
ausgesetzt sein.

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.