Forum: Mikrocontroller und Digitale Elektronik Ethernet per USB Adapter


von Tim (Gast)


Lesenswert?

Hallo,
ich habe ein Ethernet-Gerät, dass nun in einer neuen Version als 
USB-Gerät arbeiten soll. Nun gibt es Adapter wie "Anker USB 3.0 auf 
RJ45", womit sich ohne Treiber ein Ethernet-Adapter in Windows ergibt. 
Eigentlich genau das was ich suche. Über 300Mbit/s werden erreicht.


Nun die Frage: wie bekommt man so eine Lösung auf eine eigene Platine? 
Ist das so ein Chip wie der Microchip LAN7801?


Wie geht man da vor, lädt man da einfach einen USB-Deskriptor rein und 
Windows kann dann automatisch den Rest?


Kennt jemand vielleicht eine Variante als fertiges PCB-Submodul?

von Christian H. (netzwanze) Benutzerseite


Lesenswert?

Tim schrieb:
> Ist das so ein Chip wie der Microchip LAN7801?
Ja, plus ein wenig Hühnerfutter.

Tim schrieb:
> Wie geht man da vor, lädt man da einfach einen USB-Deskriptor rein und
> Windows kann dann automatisch den Rest?
Ich gehe von Plug&Play aus. Was sagt das Datenblatt dazu?

Tim schrieb:
> ich habe ein Ethernet-Gerät, dass nun in einer neuen Version als
> USB-Gerät arbeiten soll.

So einfach wird es nicht sein.
Es muss natürlich die passende Netzwerkkonfiguration durchgeführt 
werden.
Es ist und bleibt ein Ethernet-Gerät, welches an einem Ethernet-Port 
angeschlossen ist.

von georg (Gast)


Lesenswert?

Tim schrieb:
> Wie geht man da vor, lädt man da einfach einen USB-Deskriptor rein und
> Windows kann dann automatisch den Rest?

Windows schon, aber du hast da ja ein internes Ethernet-Netzwerk, du 
musst ja den Adapter mit deinem Gerät per Kabel verbinden. Und dann 
musst du dieses interne Netzwerk noch konfigurieren, z.B. mit festen 
IP-Adressen, wenn du nicht auch noch DHCP usw. einbauen willst.

Davon den Adapter zu zerlegen und auszuschlachten kann ich nur abraten, 
bei solcher Chinaware bekommst du wahrscheinlich nicht zweimal das 
gleiche Innenleben. Ausserdem hat dein Gerät dann ja immer noch einen 
Kabelanschluss.

Georg

von Frank K. (fchk)


Lesenswert?

Hast Du das Ethernet-Gerät selber gebaut? Wenn ja, mit welchen 
Komponenten?

Meine Frage geht dahin:
Wenn Du das Ethernet-Gerät nicht modifizieren kannst, brauchst Du einen 
Switch-Chip und eine USB-Ethernet Bridge. Im Allgemeinen ist es nicht 
wirtschaftlich, diese Komponenten im eigenen Produkt zu integrieren, das 
kaufst Du besser für wenige € zu und legst es mit in den Karton.

Wenn Du das Ethernet-Gerät selber entwickelt hast und Du einigermaßen 
geschickt warst bei der Auswahl des Prozessors, dann hat dieser 
Prozessor ein USB Device. Und über dieses USB Device kannst Du für 
Windows ein RNDIS und für alle anderen Betriebssysteme ein CDC-EEM oder 
CDC-ECM Interface implementieren. Das ist dann reine Software.

Idealerweise baust Du dann noch einen DHCP-Server ein, der dem 
angeschlossenen PC dann die passenden IP-Adressen konfiguriert.

fchk

PS: Läuft auf dem Gerät ein Linux? Dann brauchst Du den USB Gadget 
Support. Der macht das dann, aber Du brauchst dafür ein USB-OTG oder ein 
USB Device, keinen USB Host.

: Bearbeitet durch User
von Christian H. (netzwanze) Benutzerseite


Lesenswert?

Frank K. schrieb:
> Idealerweise baust Du dann noch einen DHCP-Server ein, der dem
> angeschlossenen PC dann die passenden IP-Adressen konfiguriert.

Und der darf nicht mit den anderen verwendeten Netzen kollidieren!

von Tim (Gast)


Lesenswert?

Christian H. schrieb:
> Tim schrieb:
>> Wie geht man da vor, lädt man da einfach einen USB-Deskriptor rein und
>> Windows kann dann automatisch den Rest?
> Ich gehe von Plug&Play aus. Was sagt das Datenblatt dazu?

Das Datenblatt finde ich sehr allgemein. Gefühlt kann sich das Gerät per 
USB als alles anmelden, jedoch funktionieren wird es wohl nur mit 
ausgewählten Konfigurationen. Wahrscheinlich wegen mehreren 
Anwendungsfällen für den Chip. Der Plug&Play-Modus würde mir reichen.

Christian H. schrieb:
> Tim schrieb:
>> ich habe ein Ethernet-Gerät, dass nun in einer neuen Version als
>> USB-Gerät arbeiten soll.
>
> So einfach wird es nicht sein.
> Es muss natürlich die passende Netzwerkkonfiguration durchgeführt
> werden.
> Es ist und bleibt ein Ethernet-Gerät, welches an einem Ethernet-Port
> angeschlossen ist.

Wenn es mit dem USB-Chip wieder wie ein Ethernet-Port funktioniert, dann 
ist es ausreichend.

Ich weiß gar nicht warum das Ethernet-Gerät wichtig für die Auswahl sein 
soll. Die Adapter auf Amazon machen doch auch nichts besonderes. Man hat 
quasi per USB eine Netzwerkkarte. Wenns also damit funktioniert, sollte 
es doch auch mit dem Chip gehen.

Ich fand diesen Ansatz interessant, da man sich nicht mit einem 
USB-Treiber rumschlagen muss und trotzdem weiter Ethernet nutzen kann.

von Frank K. (fchk)


Lesenswert?

Tim schrieb:

> Ich weiß gar nicht warum das Ethernet-Gerät wichtig für die Auswahl sein
> soll. Die Adapter auf Amazon machen doch auch nichts besonderes. Man hat
> quasi per USB eine Netzwerkkarte. Wenns also damit funktioniert, sollte
> es doch auch mit dem Chip gehen.
>
> Ich fand diesen Ansatz interessant, da man sich nicht mit einem
> USB-Treiber rumschlagen muss und trotzdem weiter Ethernet nutzen kann.

Das ist alles nicht so einfach, wie Du Dir das denkst.

Die üblichen Netzwerkadapter mit Chips von Realtek oder Asix oder 
Microchip/SMSC brauchen spezielle Treiber, die Du vorher installieren 
musst. Nachdem Du das gemacht hast, hast Du in der Systemsteuerung eine 
weitere Netzwerkkarte, die Du konfigurieren kannst, genau so wie die 
eingebaute. Ohne installierte Treiber siehst Du bei einigen Adaptern 
eine Art USB-CDROM, wo die benötigten Treiber abgelegt sind. Wenn die 
Treiber aktiviert sind, schalten sie das virtuelle CDROM-Laufwerk weg 
und das Netzwerkinterface an.

Dann gibt es RNDIS. Das ist eine Spezifikation für eine virtuelle 
USB-Netzwerkkarte. Die Spec ist von Microsoft, und nur Windows kann 
damit etwas anfangen. Die dafür erforderlichen Treiber sind bei Windows 
dabei, man braucht keine weiteren zu installieren.

Dann gibt es CDC-EEM (Ethernet Emulation Mode) und CDC-ECM (Ethernet 
Control Module). Das sind Standards vom USB-Forum, die alle 
Betriebssystemhersteller implementiert haben ... alle bis auf einen - 
3mal darfst Du raten, wer mal wieder sein eigenes Ding dreht... Kann 
sein, dass Windows 10 das inzwischen kann.

Die aktuell erhältlichen USB-Ethernet Adapter, die mir bislang in die 
Finger gekommen sind (und das sind einige), brauchen allesamt 
proprietäre Treiber und können mit RNDIS und CDC-EEM/ECM nichts 
anfangen. Um wirklich treiberlos zu werden, brauchst Du eine 
Prozessor-Software-Lösung. Nur dann ist es wirklich treiberlos.

fchk

von Nico K (Gast)


Lesenswert?

RNDIS ist eine Spezifikation von Microsoft, aber bei weitem ist sie 
nicht die einzige Platform, die was damit anfangen kann...
Im Gegenteil! RNDIS wird ebenso vom Linux Kernel und MacOS unterstützt.
Ich habe eine RNDIS library für den STM32F4 geschrieben und eine Demo in 
ein git repo hochgeladen:
https://github.com/nicokorn/STM32F4XX_RNDIS_DEMO

Die Demo funktioniert auf allen gennanten Platformen.

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.