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?
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.
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
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
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!
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.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.