Hinzufügen von WiFi zu einem OSLess-Embedded-Gerät

Ich suche nach Ratschlägen, wie ich am besten drahtloses Video-Streaming von einem OSLess-Embedded-System erreichen kann, das wir bauen.

Ich habe noch nie mit WLAN gearbeitet, daher wäre ich für jede Hilfe, die ich bekommen kann, dankbar.

Da wir Videos streamen möchten, benötigen wir sowohl am WLAN- als auch am Schnittstellenende des Geräts eine Verbindung mit hohem Durchsatz (wir suchen nach einer Lösung vom Typ eines Zusatzmoduls). Ich habe jetzt etwa eine Woche im Internet recherchiert und hatte nicht wirklich viel Glück.

unser System basiert auf einem Freescale i.mx 233 Prozessor (USB und SDIO Schnittstellen)

Die möglichen Lösungen, die wir gefunden haben, wären:

  1. ein SDIO Wifi N-Modul (da SDIO die einzige Schnittstelle zu sein scheint, die schnell genug ist (außer USB), habe ich recht?)
  2. ein USB-Stack mit Treibern der WiFi-over-USB-Klasse, die die Verwendung eines WiFi-Dongles ermöglichen.
  3. Verwenden Sie ein minimales RTOS, das WLAN über USB-Dongles unterstützt

    • Whiznet bietet SDIO-Module, die unseren Anforderungen entsprechen
    • Jungo USBWare verfügt über einen betriebssystemlosen WLAN-über-USB-Stack und Klassentreiber
    • Freescale stellt das MQX-RTOS bereit, das über einen optionalen USB-Stack mit dem CDC-USB-Klassentreiber verfügt (sowie einige andere minimale RTOS, die diese Art von Unterstützung bieten).

Whiznet hat sich sehr langsam mit Informationen bei mir gemeldet (ich kenne noch nicht einmal die Preise und sie scheinen nicht über Distributoren verkauft zu werden, was mich glauben lässt, dass ich nicht viel Glück mit ihnen haben werde)

Ich habe noch nicht einmal von Jungo gehört und würde mich lieber von USB fernhalten, wenn möglich, da es wie eine unnötige Komplikation erscheint.

Ich möchte ein RTOS so weit wie möglich vermeiden, da wir einige Bildverarbeitungen durchführen, und ich möchte so viel Overhead wie möglich unter Kontrolle haben, obwohl wir wahrscheinlich diesen Weg einschlagen werden, wenn es keine anderen Lösungen gibt .

Hat jemand ähnliche Erfahrungen gemacht? Was denkst du, was ist meine beste Option und habe ich welche übersehen?

Es fühlt sich viel schwieriger an, als es scheint, dass es sein sollte.

bearbeiten

Wir betrachten Streaming-Videos mit einer absoluten Mindestauflösung und Bildrate von 320 x 480 @ 15 FPS

ist dein video komprimiert?
@Phil Frost: Wir werden Komprimierung hinzufügen, haben uns aber noch nicht für die Komprimierung entschieden, da es ein Gleichgewicht zwischen Bildverarbeitung und Komprimierung sein muss (aufgrund der Rechenleistung), das wir optimieren müssen. Im Moment suchen wir also nach einer Lösung für unsere minimale Auflösung und FPS, und alles, was wir durch die Komprimierung zusätzlich erhalten können, ist ein Bonus.
Nun, ohne Komprimierung und unter der Annahme einer 24-Bit-Farbtiefe ist Ihre benötigte Bandbreite 320 480 24 15 1000 1000 55 Megabit pro Sekunde, nur für das Video, ganz zu schweigen vom Protokoll-Overhead. Dies wird für WLAN nur schwer zu erreichen sein, außer in störungsfreien, professionell gestalteten Umgebungen ohne Bandbreitenkonflikte.
@Phil Frost: Das ist ein bisschen enttäuschend, ich dachte, mit USB-Modulen, die mit Geschwindigkeiten von 300 Mbit / s werben, wie die unter radi.com/modular71.htm aufgeführten , wäre es nicht schwierig, 55 Mbit / s zu erreichen. Wir kümmern uns um die Komprimierung und ich aktualisiere meine Frage, wenn wir die endgültigen Spezifikationen für den Übertragungsdurchsatz erhalten.
@Phil Frost: Welche wahre Bandbreite wäre für WLAN sinnvoll?
@Phil Frost: Nach einer kurzen Überprüfung haben wir eine softwarebasierte H.261-Echtzeitcodierung gefunden, die je nach Qualität / Auflösung usw. zwischen 40 Kbit / s und 2 Mbit / s fähig ist und auf einem Intel Pentium 133 ausgeführt werden kann. Also nehmen dass wir als Mindestbasis, noch mehr Forschung zu tun, viele der WiFi-Module berücksichtigen können, die wir verworfen hatten, wie das untenstehende. Danke für die Ratschläge, Jungs, hätte mit der Komprimierung beginnen sollen, denke ich :). Ich wünschte, ich könnte Ihre Kommentare akzeptieren, aber ich kann nicht, also muss die Antwort unten ausreichen.
Es ist wirklich schwer, die tatsächliche WLAN-Leistung vorherzusagen. Heimumgebungen sind normalerweise schrecklich (ein sehr billiger AP weit weg vom Gerät mit mehreren Wänden im Weg, ohne dass der Kanalauswahl oder der AP-Platzierung Beachtung geschenkt wird). Geschäftsumgebungen mögen besser sein, aber wenn es nicht Ihr Geschäft ist, können Sie sich nicht sicher sein. Der CC3000 sieht aus wie ein 802.11b/g-Gerät, was bedeutet, dass Sie bestenfalls 54 Mbit/s, realistisch 48 Mbit/s in einer guten Umgebung und 6 Mbit/s in einer schlechten Umgebung erhalten.

Antworten (2)

TI verkauft den CC3000 , der sehr RTOS-frei ist. Der Stack und alles befindet sich auf dem Chip/Modul, und Sie brauchen nur einen Treiber mit etwa 6 KB Code und 3 KB RAM (manchmal sogar weniger, wenn Sie bereit sind, den Durchsatz zu opfern).

Zuletzt sah ich, dass das Evaluierungsboard, das nur CC3000 (oder Booster-Pack für die Startrampe) ist, für etwa 30 US-Dollar erhältlich war.

Danke für die schnelle Antwort. Ich habe es mir gerade angesehen und der CC3000 scheint eine SPI-Schnittstelle zu verwenden, die nach meinen Recherchen höchstens etwa 10 Mbit / s unterstützt. Korrigieren Sie mich, wenn ich falsch liege, aber ich bin mir nicht sicher, ob dies zum Streamen von Videos geeignet wäre?
Du hast Recht. Video ist nur möglich, wenn die Datenrate gering ist. CC3000 kann in der realen Welt bis zu 4 MBit/s erreichen.
Nach der Untersuchung der Komprimierung könnte dieses Modul verwendet werden. Also habe ich es als Antwort akzeptiert. Danke.

Dieser Thread ist jetzt etwas alt, aber Redpine Signals und BlueGiga machen nette Module. Suchen Sie nach einer klaren, gut dokumentierten API. Viele Anbieter da draußen gehen mit ihrer Dokumentation zu vorsichtig um, weil sie befürchten, ihren Konkurrenten zu viel preiszugeben.
SDIO ist eine nette Schnittstelle, die den potenziellen Wi-Fi-Durchsatz voll ausnutzt. Wenn Sie Geschwindigkeit brauchen, schauen Sie sich DMA an. Ein RTOS ist keine schlechte Sache. Ich habe FreeRTOS in der Vergangenheit erfolgreich verwendet und es hat mich davor bewahrt, viele der angebotenen Dienste zu schreiben. Der Overhead ist sowohl im Speicher als auch in der Zeit für die Ausführung des Schedulers gering.