Nel mio paese (Nigeria) abbiamo pochissimi hotspot wireless, la maggior parte delle persone si connette a Internet tramite dongle USB privati.
I mi chiedevo se fosse possibile utilizzare questi dongle per consentire a un sistema embedded di connettersi a Internet.
So che implica la conoscenza di una qualche forma di protocollo USB con cui questi dispositivi comunicano con un sistema, ma non lo so ” Non so se esiste uno standard per questo o qualcosa per renderlo generico.
Commenti
- Quindi tutte quelle lettere dalla Nigeria arrivano tramite dongle? ??
Risposta
I dongle Internet USB wireless sono disponibili in due versioni.
- Un dongle Wi-Fi si collega a una rete 802.11 a 2,4 GHz (ma, non credo che tu intenda questo?)
- Un dongle del modem GSM si connette tramite la rete del telefono cellulare.
Come un modem per la rete telefonica fissa, molti modem GSM hanno i comandi RS232 e Hayes (AT).
Il GSM più semplice lo fa ngle per interfacciarsi a un sistema embedded è quello che espone un set di comandi AT. Se sei fortunato, sarai in grado di collegarti direttamente a un UART. Tuttavia, potrebbe essere necessario implementare un host USB con supporto per dispositivi CDC / seriali.
Linterfacciamento con qualsiasi altro dongle sarà notevolmente più difficile. Nel migliore dei casi, potresti identificare i chip e trovare un driver Linux open source da portare. Nel peggiore dei casi, sarà necessario eseguire il reverse engineering del driver USB binario solo per Windows, quindi clonarlo nel firmware incorporato. Se sei davvero sfortunato, dovrai implementare anche uno stack TCP / IP.
Consiglio la route dei comandi AT, se puoi .
Commenti
- sì i ' mi riferisco al dongle del modem GSM, i ' Penso di poter utilizzare un software di sniffer per porta USB per scoprire quali dati vengono trasmessi tra il dongle e un sistema?
- Sì. Se il sistema integrato dispone del supporto host USB, è possibile eseguire il reverse engineering e quindi reimplementare il driver. Ma non è facile.
Risposta
Ho esaminato questa e le altre risposte sono corrette. In nella maggior parte dei casi avrai bisogno di un microcontrollore con supporto host USB. La maggior parte dei nuovi dongle USB GSM / 3G / 4G supportano un comune driver USB-PPP, quindi un driver potrebbe probabilmente supportare molti dispositivi. Dovresti ancora portare il subacqueo da Linux, il che sarebbe un duro lavoro a meno che tu non avessi intenzione di vendere carichi.
Se avessi intenzione di vendere carichi, sarebbe molto più economico / veloce acquistare un GSM modulo specifico per progettato per sistemi embedded. Questi tralasciano linterfaccia USB, che è solo una complicazione non necessaria. Se ne stai pianificando solo una o una coppia, i tuoi soldi (e il tuo tempo) saranno spesi molto meglio su una piccola scheda Linux (es. Raspberry Pi) con un dongle GSM USB di consumo.
Risposta
Se il tuo sistema incorporato contiene qualcosa come un computer a scheda singola che può eseguire un sistema operativo con uno stack di rete, USB e dove puoi installare un driver per il dongle USB, allora dovrebbe essere possibile.
Altrimenti non è effettivamente possibile. Il microcontrollore dovrebbe essere in grado di essere un host USB, cosa che alcuni sono. Tuttavia, dovresti sapere il protocollo del dongle tramite USB, che è improbabile ottenere. In effetti, sei limitato ai sistemi per i quali il produttore ha già scritto un driver.
Commenti
- In realtà, per molti dei dongle informazioni sufficienti è noto, come dimostra lesistenza di driver Linux open source. La mia impressione è che ' sia un comando unico o due per farlo funzionare in modo sano e quindi utilizzi un tipo di interfaccia standard come CDC-ACM. Se la documentazione non è stata fornita, probabilmente qualcuno lha originariamente capito eseguendo lo sniffing dei pacchetti nel driver di Windows.