In meinem Land (Nigeria) gibt es nur sehr wenige drahtlose Hotspots. Die meisten Menschen stellen über private USB-Dongles eine Verbindung zum Internet her.
I. Ich habe mich gefragt, ob es möglich ist, diese Dongles zu verwenden, um einem eingebetteten System eine Verbindung zum Internet zu ermöglichen.
Ich weiß, dass es darum geht, eine Art USB-Protokoll zu kennen, mit dem diese Geräte mit einem System kommunizieren, aber ich weiß nicht “ Ich weiß nicht, ob es dafür einen Standard gibt oder etwas, das es generisch macht.
Kommentare
- Also kommen all diese Briefe aus Nigeria durch Dongles? ??
Antwort
Drahtlose USB-Internet-Dongles gibt es in zwei Varianten.
- Ein WLAN-Dongle stellt eine Verbindung zu einem 2,4-GHz-802.11-Netzwerk her (aber ich glaube nicht, dass Sie das meinen?)
- Ein GSM-Modem-Dongle stellt eine Verbindung über das Mobilfunknetz her.
Wie ein Modem für das Festnetz haben viele GSM-Modems RS232- und Hayes (AT) -Befehle.
Das einfachste GSM Die Schnittstelle zur Schnittstelle zu einem eingebetteten System stellt einen AT-Befehlssatz bereit. Wenn Sie Glück haben, können Sie eine direkte Verbindung zu einem UART herstellen. Möglicherweise müssen Sie jedoch einen USB-Host mit Unterstützung für CDC / serielle Geräte implementieren.
Die Anbindung eines anderen Dongles ist erheblich schwieriger. Im besten Fall können Sie Chips identifizieren und einen Open-Source-Linux-Treiber zum Portieren finden. Im schlimmsten Fall müssen Sie den Nur-Windows-Binär-USB-Treiber zurückentwickeln und dann in Ihre eingebettete Firmware klonen. Wenn Sie wirklich Pech haben, müssen Sie auch einen TCP / IP-Stack implementieren.
Ich empfehle die AT-Befehlsroute, wenn Sie
Kommentare
- Ja, ich ' beziehe mich auf den GSM-Modem-Dongle, d.h. ' Ich denke, ich kann eine USB-Port-Sniffer-Software verwenden, um herauszufinden, welche Daten zwischen dem Dongle und einem System übertragen werden?
- Ja. Wenn Ihr eingebettetes System USB-Host-Unterstützung bietet, ist ein Reverse Engineering und eine erneute Implementierung des Treibers möglich. Aber nicht einfach.
Antwort
Ich habe dies untersucht und die anderen Antworten sind korrekt In den meisten Fällen benötigen Sie einen Mikrocontroller mit USB-Host-Unterstützung. Die meisten neueren USB-GSM / 3G / 4G-Dongles unterstützen einen gemeinsamen USB-PPP-Treiber, sodass ein Treiber wahrscheinlich viele Geräte unterstützen könnte. Sie müssten den Taucher immer noch von Linux portieren, was harte Arbeit wäre, wenn Sie nicht vorhaben, Ladungen zu verkaufen.
Wenn Sie vorhaben, Ladungen zu verkaufen, wäre es viel billiger / schneller, ein GSM zu kaufen Modul speziell für eingebettete Systeme. Diese lassen die USB-Schnittstelle aus, was nur eine unnötige Komplikation ist. Wenn Sie nur ein Einzelstück oder ein Paar planen, wird Ihr Geld (und Ihre Zeit) viel besser für ein kleines Linux-Board (z. B. Raspberry Pi) mit einem USB-GSM-Consumer-Dongle ausgegeben.
Antwort
Wenn Ihr eingebettetes System so etwas wie einen Einplatinencomputer enthält, auf dem ein Betriebssystem mit einem Netzwerkstapel, USB ausgeführt werden kann und auf dem Sie einen Treiber installieren können für den USB-Dongle sollte es dann möglich sein.
Andernfalls ist dies effektiv nicht möglich. Der Mikrocontroller müsste in der Lage sein, ein USB-Host zu sein, was einige sind. Allerdings müssten Sie es wissen das Protokoll des Dongles über USB, das Sie wahrscheinlich nicht bekommen. Tatsächlich sind Sie auf Systeme beschränkt, für die der Hersteller bereits einen Treiber geschrieben hat.
Kommentare
- Tatsächlich sind für viele der Dongles ausreichend Informationen vorhanden ist bekannt, wie die Existenz von Open-Source-Linux-Treibern belegt. Mein Eindruck ist, dass es ' einen oder zwei eindeutige Befehle gibt, um einen vernünftigen Befehl zu erstellen, und dann einen Standardschnittstellentyp wie CDC-ACM verwendet. Wenn keine Dokumentation bereitgestellt wurde, hat dies wahrscheinlich ursprünglich jemand durch Paketschnüffeln am Windows-Treiber herausgefunden.