Welche Faktoren sollten bei der Auswahl einer integrierten WLAN-MCU für ein Edge-Gerät mit geringer Leistung berücksichtigt werden?

17

Die Motivation für diese Frage ist die Tatsache, dass ich vor einiger Zeit ein einfaches Proof-of-Concept-IoT-Edge-Gerät (PoC) mit einem Mikrocontroller und einem CC3100-WLAN-Netzwerkprozessor erstellt habe . Eines der Probleme bei diesem Prototyp war, dass die Konfiguration eine beträchtliche Menge an Leistung erforderte. Somit konnte es die Vorteile des vorhandenen Geräts mit geringerer Leistung nicht überwinden, das je nach Wahl der Batterie und Verwendungshäufigkeit mehr als 2 bis 10 Jahre halten kann.

Das aktuelle Produkt verwendet je nach Anwendung eine 6-V-DC-Batterie mit einer Kapazität zwischen 1400 mAh und 2400 mAh. Das Gerät verfügt über ein Sensorelement mit geringer Leistung und einen Betätigungsmechanismus. Die Nutzlast wird höchstwahrscheinlich bei 100 Bytes liegen. Die Kommunikationsfrequenz beträgt während der Spitzenaktivität etwa alle zwei Minuten. Mit den Fortschritten im IoT und den Marktanforderungen hat dieser PoC einige Aufmerksamkeit erlangt.

Nach dem Vorschlag weniger IOT-Plattformanbieter schaue ich auf die drahtlose MCU CC3200 von Texas Instrument, vor allem, weil sie der Nachfolger der CC3100 ist. Auf Systemebene kann der CC3100 bei Nichtgebrauch vollständig ausgeschaltet werden. Dies ist ein wesentlicher Vorteil bei geringem Stromverbrauch auf Systemebene. Wenn Aktivität erkannt wird, weckt das Sensorelement den Mikrocontroller über einen Interrupt. Es gibt auch andere integrierte WiFi - MCUs wie ESP8266 , BCM43362 , ATWINC1500B , 88MC200 und vieles mehr. Ich verwende ULPBench Scores , um eine Analyse erster Ordnung von Kleinleistungs - Mikrocontrollern durchzuführen, gefolgt von einer Analyse wie in beschriebenWie wähle ich einen Mikrocontroller für eine Low-Power-Anwendung aus? um bei der Auswahl eines Low-Power-Mikrocontrollers zu helfen. Ich habe Parameter wie die Stromaufnahme im aktiven Modus pro Frequenz und die Stromaufnahme in verschiedenen Stromsparmodi verwendet, um eine fundierte Auswahl zu treffen. Welche kritischen Parameter (möglicherweise im Zusammenhang mit der drahtlosen Kommunikation) sollten bei der Auswahl einer integrierten WLAN-MCU genau beachtet werden, um die Option für geringen Stromverbrauch beizubehalten und die IoT-Fähigkeit zu erweitern?

Verweise:

Mahendra Gunawardena
quelle
3
Ich bin mir nicht sicher, ob ich richtig verstehe, auf welche Komponenten Sie sich beziehen (vorausgesetzt, der CC3200 besteht aus Application Microcontroller, Wi-Fi Network Processor und Power-Management-Subsystemen - er enthält anscheinend bereits die meisten Komponenten, die Sie benötigen).
Ghanima
1
@ Ghanaima, Tektronix hat ein Wie Sie Ihr Wi-Fi-Modul auswählen? leiten. Gibt es eine Möglichkeit, die Anleitung für das integrierte WLAN-Modul auszuwählen? Ich könnte welche finden. Andere Anbieter haben WLAN-Module integriert. Zum Zeitpunkt der Erstellung habe ich den CC3200 nicht recherchiert. Der Vorteil, ein Teil dieser Community zu sein, besteht darin, Fragen zu stellen und Erfahrungen auszutauschen. Kurz gesagt, was macht A besser als B für IOT-Anwendungen für eine IOT-Anwendung mit niedriger Leistung. Gibt es etwas Besseres als WLAN, zum Beispiel Sigfox oder Lora?
Mahendra Gunawardena
3
Das scheint mir zu allgemein. Wie können wir als Test eine gute Antwort auf die möglichen Arten der Beantwortung dieser Frage finden?
Sean Houlihane
2
Ich habe Ihre Frage mehrmals gelesen und verstehe immer noch nicht, worüber Sie fragen. Ihre User Story ist in Ordnung, aber nach welchem ​​Teil des Setups fragen Sie? Alles, worüber Sie in Ihrer Frage sprechen, ist der niedrige Stromverbrauch. Welche „kritischen Parameter“ suchen Sie neben dem niedrigen Stromverbrauch? Ich bin mir sicher, dass hier eine gute Frage lauert, aber die Hälfte davon ist immer noch nur in deinem Kopf.
Gilles 'SO- hör auf böse zu sein'
2
Ist Energie pro Anweisung für Ihren Anwendungsfall relevant? Mit den Informationen in Ihrer Frage ist das überhaupt nicht klar. Wenn Sie nicht viel rechnen, kann dies durch das Einschalten im Leerlauf und insbesondere durch das Radio in den Schatten gestellt werden.
Gilles 'SO- hör auf böse zu sein'

Antworten:

8

Da Ihre wichtigste Einschränkung darin besteht, dass Sie nur wenig Strom verbrauchen, achten Sie wahrscheinlich bereits auf die beiden wichtigsten Parameter: Stromaufnahme im aktiven Modus pro Frequenz und Stromaufnahme in den verschiedenen Stromsparmodi.

Die Kommunikation als Konstante zu halten (dh dasselbe Kommunikationsprotokoll und dieselbe EM-Frequenz), und dann die beste MCU auszuwählen, ist nur eine Frage der richtigen Aggregation dieser beiden Parameter. Und so würde ich einen einzelnen numerischen Wert erstellen, den ich über alle Optionen hinweg vergleichen könnte:

  1. Erstellen Sie ein projiziertes Aktivitätsprofil für das Gerät (wie oft und wie lange kommuniziert es) über einen Zeitraum von beispielsweise einer Woche.
  2. Berechnen Sie die Stromaufnahme mit der EM-Frequenz, die für die Zeiten während des ausgewählten Zeitraums verwendet wird, in denen die Kommunikation aktiv ist. Das bedeutet, dass eine Stromaufnahme von 10 µA (bei einer Frequenz von 900 MHz) für eine Dauer von 2 s bei 1000 x Aktivität in einer Woche 20.000 µA / s bedeuten würde. Woche.
  3. Berechnen Sie die Stromaufnahme für den Zeitraum, in dem sich das Gerät im standardmäßigen Energiesparmodus befindet. Das bedeutet, dass eine Stromaufnahme von 10 nA bei einer Aktivität von [7 Tagen x 24 Stunden x 60 Minuten x 60 Sekunden - 1000 x 2 Sekunden] 6.028 uA bedeuten würde -s / Woche.
  4. Das Addieren der 2 ergibt eine Stromaufnahme von 26.028 µA / Woche für diese hypothetische MCU.
  5. Diese berechnete wöchentliche Stromaufnahme kann dann für alle MCUs verglichen werden.

Ich weiß, dass dies eine sehr vereinfachte Art ist, die MCU-Aktivität zu betrachten - dh es werden nur zwei Zustände betrachtet: Leerlauf und Kommunikation ... aber ich glaube, dass alle anderen Zustände einen proportionalen und geringfügigen Beitrag zu einem dieser beiden Zustände leisten werden für Berechnungen (Anweisungszyklen) können zusammen mit dem Kommunikationszustand gebündelt werden und haben höchstwahrscheinlich einen sehr geringen Leistungsbeitrag im Vergleich zum Kommunikationssubsystem. Der Punkt ist, dass das Betrachten dieser 2 Zustände für den Auswahlprozess ausreichend ist.

leon.valencia
quelle
5

Es gibt keine magische Kugel, deshalb denke ich, dass der Rat schmerzlich offensichtlich sein wird. Fangen Sie an, zuerst die größten Stromverbraucher abzuhacken.

Schalten Sie wirklich alle Chips und Schaltkreise aus, wenn sie im Leerlauf sind? Ich weiß, dass einige der Bastler-Boards und -Schilde nicht immer alles komplett ausschalten, was Sie erwarten.

Wenn es der Antrieb ist, können Sie einen leichteren Motor verwenden oder die Reibung im Antriebsstrang verringern? Können Sie die angetriebene Last so umbauen, dass sie weniger Masse hat oder besser ausbalanciert ist?

Wenn es um die Kommunikation geht, schauen Sie sich zunächst die Häufigkeit der Kommunikation an. Welche Faktoren haben die bestehende "Zwei-Minuten" -Entscheidung vorangetrieben? Können Sie Opfer bringen, um weniger oft zu kommunizieren? Können Sie zu einem Pub-Sub-Modell wechseln und mit weniger Bytes antworten, wenn die Bedingungen dies zulassen?

Bewerten Sie das Protokoll neu. Jedes Byte, das Sie rasieren, entspricht einer Einsparung von 1% Ihres aktuellen HF-Leistungsbudgets. Boolesche Werte senden? Verwenden Sie Bit-Flags, keine ASCII-Zeichen 'Y' oder 'N'. Stellen Sie sicher, dass Sie den kleinstmöglichen Container verwenden - übertragen Sie keine 16-Bit-Ganzzahl, wenn die Zahl einen zulässigen Bereich von nur 0-99 hat. Die meisten batteriebetriebenen Protokolle versuchen, sie so weit wie möglich zu reduzieren. Wenn Sie beispielsweise über ein 5x5-Array von Elementen berichten, muss die Adresse nur ein 5-Bit-Feld sein, kein 8-Bit-Byte. Die Verwendung von CPU-Zyklen für die Komprimierungslogik führt zu einer wesentlich geringeren Gesamtleistungsaufnahme als die Übertragung nicht benötigter Bits.

Wenn der große Stromverbrauch die CPU ist (zweifelhaft, aber möglich), können Sie dann Tricks wie vorberechnete Nachschlagetabellen ausführen oder sogar einen Teil der Arbeit an einen Remotedienst auslagern?

John Deters
quelle
4

Es gibt keinen einzigen endgültigen Parametersatz, mit dem Sie ein solches integriertes Gerät auswählen können, aber ich denke, dass neu gestaltete Geräte in erster Näherung möglicherweise deutlich besser sind als vor ein paar Jahren. Obwohl das Konzept nicht neu ist, machen diese Integrationsstufe und die aggressiven Leistungsziele diesen Markt zu einem sich entwickelnden Markt.

Achten Sie genau auf die angebotenen Leistungszustände aus der Sicht Ihres gesamten Systems (Regler, Oszillatoren, Sensorsignalkonditionierung). Es ist möglich (unwahrscheinlich), dass Ihr 2-minütiger aktiver Zustand von einem weniger tiefen Schlaf als der normale Betriebszustand profitiert.

Der niedrigste Stromverbrauchsstatus sollte den größten Teil Ihres Energieverbrauchs ausmachen. Wie genau sich dies für Sie auswirkt, hängt davon ab, ob Sie ohne Regler, Mindestbetriebsspannung usw. direkt vom Stromnetz aus arbeiten können.

Berücksichtigen Sie für den aktiven Status den Arbeitsspeicher oder rechenintensive Vorgänge und vergleichen Sie diese mit den nächstgelegenen Standardkomponenten (basierend auf CPU, Geschwindigkeit und Speicherarchitektur). In Ihrer Anwendung scheint die Vorbereitung der Nutzlast und der Verschlüsselung ziemlich trivial zu sein, aber im Allgemeinen ist dies keine offensichtliche Annahme. Die Aufbewahrungszustände können beispielsweise die Sensorintegration ohne Speichern / Wiederherstellen des Zustands ermöglichen.

Passen Sie die Taktrate und Architektur an die Anforderungen Ihrer Anwendung an. Im Ruhezustand sparen Sie Leckstrom. Niedrigere Zieltaktraten für ein Gerät können bedeuten, dass es länger in einem aktiven Zustand bleiben muss, führen aber auch zu einem Design, das eine bessere Leckleistung (sowie möglicherweise eine niedrigere Betriebsspannung) erzielt.

Sie werden das absolut beste Design erst kennen, wenn Sie mehr als ein Design iteriert haben - es gibt einfach zu viele Parameter (und zu diesem Zeitpunkt wird Ihr Produkt langsam in die Jahre kommen). Daher sind Aspekte des Designflusses auf höherer Ebene immer noch vorhanden wichtig. Wenn Sie Ihre Architektur optimieren können, um Wake-Ereignisse um 5% zu reduzieren, sollte dies an der Akkulaufzeit erkennbar sein.

Sean Houlihane
quelle