Brauche ich ein Echtzeitbetriebssystem?

Meine Hardware hätte einen DSP mit den folgenden Eigenschaften:

  • Klangerzeugung (interner Parameter erzeugt reine Töne, weißes Rauschen, gefiltertes weißes Rauschen oder die Summe davon).
  • I2C-Kommunikation mit Sensoren.
  • 4 kapazitive Sensoreingänge (z. B. Ein/Aus) und 2 LEDs.
  • Kommunikation mit Flash-Speicher (I2C oder SPI) zum Speichern von MP3- oder anderen Musikdateien
  • HCI (UART oder USB) zu Bluetooth-Modul (wahrscheinlich von Panasonic, da sie kleiner sind).
  • BT-Stack mit der Fähigkeit von SPP/iAP + HFP/HSP-Profilen.
  • Kommunikation mit Audio-Codec (I2S oder PCM) mit Mikrofoneingang und Kopfhörerausgang. Zuerst würde ich Musik aus dem Flash-Speicher senden und dann würde der Ton intern erzeugt.
  • Kommunikation mit Batterieladechip.
  • USB-Kommunikation für den Austausch von Flash-Speichermusik. Um dies zu berücksichtigen, dauert die BT-Kommunikation mit HFP + SPP/iAP maximal eine Stunde und findet einmal im Monat statt. Die SPP-Kommunikation könnte nur täglich durchgeführt werden, aber die übertragenen Daten sind gering. Würde nicht länger als zehn Minuten dauern.

Der Akku soll 8 Stunden mit nur Tonerzeugung durchhalten.

Um den BT STACK von Dotstack zu verwenden, müsste ich FreeRTOS verwenden (auch könnte ich den Code auf mein Gerät portieren, aber das würde einige Zeit dauern, wenn es benötigt wird).

Sollte ich ein RTOS in meinem DSP verwenden, da ich so viele Dinge zu tun habe? Ich habe einige Fragen, da ich noch nie einen benutzt habe und ich denke, ich würde den Stromverbrauch stark erhöhen.

Antworten (1)

Die asynchrone Natur der Dinge, die Sie tun müssen, und die Tatsache, dass es so viele davon gibt, bedeutet, dass Sie am Ende ein komplexes Netz von Interrupt-Handlern aufbauen werden, wenn Sie kein RTOS verwenden. Es wird Ihre Software erheblich vereinfachen, besonders wenn es Treiber für Dinge wie USB enthält.

Die Akkulaufzeit in einem solchen Szenario wird hauptsächlich davon beeinflusst, wie viel Sie zwischen den Aktionen schlafen können. Ein RTOS sollte nicht so viel beeinflussen. Wenn Sie 8 Stunden lang Audio erzeugen, werden Sie wahrscheinlich feststellen, dass der Stromverbrauch Ihres Audios größer ist als der des DSP, insbesondere wenn Sie einen Verstärker haben.

Es ist nicht ungewöhnlich, dass ein RTOS für alle Zeitsteuerungen einen periodischen Interrupt mit fester Rate verwendet. Sofern das RTOS die Zeitsteuerung nicht auf andere Weise durchführen kann, schränkt ein Tick-Design mit fester Rate die Fähigkeit ein, den Stromverbrauch zu reduzieren, während zeitbezogene Ereignisse anstehen. Nach meinem Verständnis können einige neuere Systeme "Alarm-Timer"-Funktionen verwenden, obwohl die Alarm-Timer vieler Chips leider Macken haben, die sie für die Handhabung von Timer-Ereignissen nicht ideal machen.