Jeder weiß, dass es einfach ist, einen Proof of Concept für ein eingebettetes Gerät auf einem Rasbperry Pi oder sogar einem PC zu entwickeln. Wenn es jedoch darum geht, einen Mikroprozessor für Ihr Produkt auszuwählen, ist es schwierig, sicher zu sein, dass Ihre Wahl Ihr Konzept zum Funktionieren bringt optimal.
Ich habe derzeit ein Media-Streaming-Projekt, das erfolgreich an dem Himbeer-Pi arbeitet, obwohl der Pi viel zu groß und sperrig ist, als dass er als Endgerät geeignet wäre. Es wird auch angegeben, dass das Endgerät benutzerdefiniert ist. Es fällt mir schwer, Vertrauen in Prozessoren zu finden, die ich verwenden kann.
Was ist ein guter Prozess, um herauszufinden, ob ein Prozessor leistungsfähig genug ist, um meine Anwendung auszuführen?
Grundsätzlich sind meine Anforderungen:
- USB-Host oder eingebetteter TCP / IP-Stack für den WiFi-Betrieb
- I2S / PCM-Medienprotokoll
- I2C für die Peripheriekonfiguration
Das Auffinden von Chips mit diesen Eigenschaften ist sehr, sehr einfach. Einfacher geht es ehrlich gesagt nicht. Das Problem besteht darin, feststellen zu können, ob der Chip in Bezug auf Verarbeitung und Betrieb schnell genug ist.
Ich habe mir den LPC4337 ziemlich genau angesehen und denke, er wäre geeignet, obwohl die Entwicklungsumgebung mir einige Probleme bereitet. Aus diesem Grund schaue ich mich immer noch um, was mich von Texas Instruments zum CC3200 führte , obwohl dieser Controller nur mit 80 MHz läuft und ich nicht sicher bin, ob das stark genug für Echtzeit-Medien-Streaming ist.
Was sind einige Schritte, um sicherzustellen, dass ein Prozessor schnell genug für meine Anwendung ist? Woher weiß ich, ob ein 80-MHz-Prozessor gut genug ist oder ob ich etwas in der Größenordnung von 204 MHz oder noch höher benötige?
Antworten:
Es hängt davon ab, wie sicher Sie sein müssen. Ich arbeite in der Raumfahrtindustrie und dies wird normalerweise über das erreicht, was wir als "CPU-, RAM-, ROM-Budgets" bezeichnen. Ein Budget, sei es Kostenmassenmasse oder irgendetwas anderes, zerlegt Ihren Prozess in überschaubare Elemente, die Sie quantifizieren und alle zusammenfassen können, um den Gesamtbedarf zu ermitteln. Sie nehmen dann einen Sicherheitsfaktor, der von der Reife Ihres Projekts abhängt und mit der Zeit abnimmt, um dem Wachstum der Nachfrage Rechnung zu tragen. Schon früh stützt es sich stark auf Erfahrung und wird dann im Laufe der Zeit bei der Auswahl der Technologien verfeinert.
Es ist äußerst schwierig, genau zu bestimmen, wann Scheduler aktiviert werden, sobald Sie Threads (sofern Threads nicht manuell Kernen zugewiesen werden) und Betriebssysteme haben. Es sollte für einfache Mikrocontroller-Codes verwaltbar sein, aber lohnt es sich für Ihre Anwendung?
Dies ist nur meine Teilnahme: Obwohl ich integrierte Systeme entwerfe, war ich nicht für diese speziellen Budgets verantwortlich (die für mich Inputs sind), und ich bin tatsächlich sehr daran interessiert, Expertengeschichten darüber zu erfahren.
Nachtrag: Bei Echtzeitsystemen ist es normalerweise einfacher, die Eignung des Systems für die Aufgabe anhand der maximalen Abtastzeit zu beurteilen, die von der Latenz / Verzögerung bei der Übertragung der Informationen während des gesamten Workflows abhängt, und der jeweils maximal benötigten Zeit Beispiel der Aufgabe.
quelle
avrdude
kann Schätzungen darüber liefern, wie viel RAM von globalen Variablen belegt wird, aber Sie müssen es mit der Trockenlaufoption ausführen, da es sich im Grunde um ein Upload-Tool handelt.Ich werde Ihre Frage vereinfachen, um herauszufinden, ob ein Mikroprozessor schnell genug ist.
Sie müssen den Prozess / die Prozedur identifizieren, der / die die schnellste Ausführungszeit erfordert. Wenn Ihr Prozessor die erforderlichen Anweisungen in der angegebenen Zeit oder weniger ausführen kann, ist dies schnell genug.
Schauen wir uns ein Beispiel an: Ihre schnellste Anforderung besteht darin, einen Stromausfall zu verarbeiten . Dazu müssen 10.000 Anweisungen in 10 Millisekunden ausgeführt werden. Sie benötigen eine CPU mit mindestens 1 MIP. Um dies in "MHz" umzuwandeln, müssen Sie die Anzahl der Taktzyklen pro Befehl (cci) kennen. Nehmen wir an, es ist 10 cci, Ihre CPU müsste mit 10 MHz oder schneller laufen.
quelle
Wenn Sie die Stücklistenkosten senken möchten, haben diese Hersteller in Shenzhen manchmal überraschende Angebote. Ein Beispiel: Allwinner A10 verfügt über mehr Rechenleistung und Verbindungsoptionen als Raspberry Pi, ist jedoch wahrscheinlich billiger, wenn es in Ihrem Design verwendet wird. Wenn Sie die gleichen Kosten wie der Pi suchen, ist der Allwinner A31s 6-8 mal leistungsstärker.
quelle