Forum: Mikrocontroller und Digitale Elektronik Machbarkeitsanalyse Microcontroller


von Eddi (Gast)


Lesenswert?

Hallo zusammen,

kann mir einer Info's geben wo ich eine Vorgehensweise oder Methode über 
eine Machabarkeitsanalyse von Projekten mittels eine Microcontrollers 
finde?

Also im Prinzip brauche ich eine Berechnung, ob mein ausgewählter 
Controller die Rechenleistung aufbringt, die für mein Projekt benötigt 
wird.

Wie kann ich das berechnen, bzw. wo finde ich eine Vorgehensweise dazu?

von Wendl (Gast)


Lesenswert?

Eddi schrieb:
> Also im Prinzip brauche ich eine Berechnung, ob mein ausgewählter
> Controller die Rechenleistung aufbringt, die für mein Projekt benötigt
> wird.

Eine Formel für den Taschenrechner gibt es dafür natürlich nicht.

Die technische Machbarkeit ist ein Teilbereich der Machbarkeitsstudie.

Und wie detailliert die ist, hängt natürlich von den Anforderungen an 
das Projekt ab.

Voraussetzung ist also erstmal, die technischen Anforderungen zu 
identifizieren und zu bewerten (Nice-to-Have, Must, etc.)
Dabei kannst Du z.B. auch wirtschaftliche Anforderungen aufnehmen.

Anschließend gilt es, die technische Umsetzung zu recherchieren. Der Bau 
eines Prototypen kann ein Teil dieser Recherche sein. Aber auch die 
(ggf. langfristige) Verfügbarkeit von Bauteilen, rechtliche Parameter 
(z.B. bei der Verwendung von Funkmodulen), fertigungstechnische Hürden 
(Gehäuse, etc.) und vor allem das benötigte Budget sollten am Ende dabei 
herauskommen.

Desweiteren kannst Du Testszenarien und -abläufe entwickeln, mit denen 
Du sicherstellen kannst, dass gewählte Bauteile und Komponenten die 
Anforderungen an Dein Projekt erfüllen.


Wenn Du also schreibst, dass Du analysieren willst, ob Dein gewählter 
Controller ausreicht, bist Du eigentlich schon einen Schritt zu weit. 
Denn Du hast einen Controller ausgewählt, obwohl Du nicht weisst, ob er 
ausreicht.

Daher: Rückwärtsgang -> Anforderungen aufnehmen -> dann Bauteile 
auswählen.

von Marc E. (mahwe)


Lesenswert?

Mach doch ein Konzept welche Eingänge habe was müssen diese steuern was 
soll wie berechnet werden viel Code kann man schon vor Auswahl des uC 
schreiben Testen.
Dann weiss man schon wie schnell der uC sein muss wie viel Speicher man 
braucht.

von A. S. (Gast)


Lesenswert?

Du musst quasi alle relevanten Dinge quantifizieren:

Texte, Fonts, Rtos und Bibliotheken könnten relevant für RAM und ROM 
sein.

Bei schnellen Reglern ist oft der Zentrale Algorithmus relevant: 3 
floating-points alle 10 us muladd kann man incl Interrupt-overhead 
abschätzen und sicherstellen, dass >> 100% Reserve bleiben.

Wenn Du 3 separate uarts brauchst, dann sollte dein uC 3 haben.

Am Ende kommt es bei der Rechenleistung oder Speicher nicht auf Faktor 2 
oder 3 an: man nimmt das Flaggschiff mit 10facher Reserve und macht. 
Dann kann man für Stückzahlen nachher auch den kleinen Bruder nehmen,

von sid (Gast)


Lesenswert?

naja aber man kann doch bei bestehendem Code eine
Analyse machen..
man weiss ja wieviele clockcycles jeder Vorgang braucht (kann es ggf 
nachlesen)
und dann kann man anhand der Prozessorgeschwindigkeit die performance 
ausreichend gut abschätzen.

ADD braucht ein, MUL braucht 2 clockcycles, JMP 3, RET 4 etc..

hat man das dann aufgedröselt (oder besser das kompilat aufdröseln 
lassen)
kennt man die Anzahl an clockcycles pro Aufgabe;
und weiss wie schnell der Prozessor sein muss damit die Performance 
ausreicht.

sollte dem enthusiastischen Entwickler ein Leichtes sein

'sid

von RuckZuck Kabelbruch (Gast)


Lesenswert?

Eddi schrieb:
> Also im Prinzip brauche ich eine Berechnung, ob mein ausgewählter
> Controller die Rechenleistung aufbringt, die für mein Projekt benötigt
> wird.

Du musst 'dein Projekt' erstmal in einer analysefähigen Art und Weise 
definieren.

Also wie in Algebra, vor der eigentlichen Gleichungslösung stellt die 
Aufstellung der Gleichung.

von Schnurgrad (Gast)


Lesenswert?

Eddi schrieb:
> Also im Prinzip brauche ich eine Berechnung, ob mein ausgewählter
> Controller die Rechenleistung aufbringt, die für mein Projekt benötigt
> wird.

Nein, nicht immer.

Davor sollte die Überlegung stehen, ob die Beantwortung dieser Frage 
überhaupt einen Sinn hat oder ob es, abhängig von Anforderungen des 
Projekts nicht geschickter ist,
einen Controller zu nehmen, der die Rechenleistung mit Sicherheit 
aufbringt und wenn es die 100- oder 1000-fache ist.
Wenn die Beantwortung dieser Frage 1 Mannwoche kosten würde,
die Maximalstückzahl bei 30, der Preisunterschied bei 50Cent
zwischen einen "haargenau passenden" und einem der auf jeden Fall
ausreicht, ist das Ergebnis mMn klar.

Wegen Rechenleistung sollte man sich jedenfalls die Hose nicht unnötig 
nass machen.

(Für Schlaumeier: Dass Performance auch noch andere Effekte als Kosten 
hat, ist mir klar. Das muss dann eben auch beurteilt werden.)

von Schnurgrad (Gast)


Lesenswert?

>und dann kann man anhand der Prozessorgeschwindigkeit die performance
>ausreichend gut abschätzen.
>
>ADD braucht ein, MUL braucht 2 clockcycles, JMP 3, RET 4 etc..

....

Ich staune. Woher hast Du die heisse Info?

>sollte dem enthusiastischen Entwickler ein Leichtes sein

Ja, ja.

Das einzige, was da hilft, ist ein Benchmark, und zwar genau des
Codes, der ausgeführt werden soll.

Denn man hat ja

> .... bestehendem Code eine

Wenn nicht, kann man die Kernroutinen ja mal implementieren, wenigstens 
so weit, dass die Übung eine Aussagekraft bekommt.

von Rolf M. (rmagnus)


Lesenswert?

Eddi schrieb:
> Also im Prinzip brauche ich eine Berechnung, ob mein ausgewählter
> Controller die Rechenleistung aufbringt, die für mein Projekt benötigt
> wird.
>
> Wie kann ich das berechnen, bzw. wo finde ich eine Vorgehensweise dazu?

Du nimmst für deinen Prototypen den größten, den du findest, setzt damit 
dein Projekt um und kannst dann abschätzen, wie weit du runter gehen 
kannst. Damit baust du dann den nächsten Prototyp und schaust, ob es 
passt.

sid schrieb:
> man weiss ja wieviele clockcycles jeder Vorgang braucht (kann es ggf
> nachlesen)
> und dann kann man anhand der Prozessorgeschwindigkeit die performance
> ausreichend gut abschätzen.

Das funktioniert aber nur bei den ganz einfachen Prozessoren. Wenn die 
komplexer werden, spielen noch so viele andere Faktoren rein, dass das 
nicht mehr ohne weiteres geht. Da reicht ggf. schon das Vorhandensein 
eines Cache.

von Axel S. (a-za-z0-9)


Lesenswert?

sid schrieb:
> naja aber man kann doch bei bestehendem Code eine
> Analyse machen..

Jein. Man kann, wenn der Code schon existiert. Und wenn man sich für 
eine Architektur entschieden hat. Ich glaube keinen Augenblick, daß der 
Eddi (Current?) schon so weit ist.

> man weiss ja wieviele clockcycles jeder Vorgang braucht (kann es ggf
> nachlesen)

Wie gesagt: dafür muß man sich für eine konkrete Architektur entschieden 
haben. Bei einem ARM Cortex zählt dazu auch die Entscheidung, ob es 
einer mit Hardware Floatingpoint und/oder DSP Erweiterung ist.

Andererseits ist rohe CPU-Power nur eines von vielen Kriterien bei der 
Auswahl.

von MaWin (Gast)


Lesenswert?

Eddi schrieb:
> Wie kann ich das berechnen

Da es Programmierdeppen gibt, die einen Prozessor mir ihren 
Programmierkenntnissen locker um den Faktor 100000 langsamer machen und 
das 1000-fache an Speicher verbraten (siehe Windows):
Gar nicht.
Ich suche den critical path, die Stelle wo ein Prozessor am schnellsten 
sein muss, und überlege, ob er das schafft. Dann meist noch, ob die 
Stromaufnahme und Pinanzahl hinkommt.
Mit etwas Programmiergeschick geht es dann meistens die verschiedenen 
Aufgaben für ihn passend zu verweben auch mit Unterstützung der 
Hardwarefeatures, es ist nur eine Frage, wie lange die geschickte 
Programmerstellung braucht.

Aktuelles Beispiel: multiplexen eines 4-stelligen LCD im 2ms Takt, 
auslesen eines TSIC306, und erzeugen eines 50%PWM Taktes mit 
200kHz-1.2MHz. Geht das mit einem ATmega8 ?

von sid (Gast)


Lesenswert?

Schnurgrad schrieb:
> Ich staune. Woher hast Du die heisse Info?

steht im Datenblatt mussu nur im instruction table nachgucken

'sid

von Schnurgrad (Gast)


Lesenswert?

sid schrieb:
> steht im Datenblatt mussu nur im instruction table nachgucken

Nö.

von Gerald K. (geku)


Lesenswert?

Rolf M. schrieb:
> Du nimmst für deinen Prototypen den größten, den du findest, setzt damit
> dein Projekt um und kannst dann abschätzen, wie weit du runter gehen
> kannst. Damit baust du dann den nächsten Prototyp und schaust, ob es
> passt.

Das gleiche gilt nicht nur für die Performance, sondern auch für FLASH 
und RAM.

Auch sind Überlegungen wichtig, welche Funktionen lege ich in die SW und 
welche in die HW.

Z.B. führe ich Entprellung und Störungsfilterung in der SW durch oder 
löse ich das Problem mit RC-Filter in der HW.

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.