Hallo im Rahmen einer Arbeit müsste ich eine Analyse möglicher Controller durchführen. Dazu gehören FPGAs und PIcs (ASIC fallen flach). Meine Frage: Wie führt man eine solche Analyse wissenschaftlich und fundiert durch? Die Schaltung ist mir noch nicht bekannt, da sie vom uC abhaengt, und andersherum. Bei einigen Werten ist die Wahl klar: z.B. muessen mind. 36 kByte Programmspeicher vorhanden sein, ein Timer und ein ADC. Woran mache ich die Auswahl der Taktfrequenz fest ? Warum wähle ich 8, 16, 32 bit Controller? Was entscheidet zwischen FPGA und PIC ? Danke für jede Hilfe / Links Greetz Sven
@ Sven Schaumann (badphantom) >Dazu gehören FPGAs und PIcs (ASIC fallen flach). Ach so . . . >Meine Frage: >Wie führt man eine solche Analyse wissenschaftlich und fundiert durch? Indem man sich mal mit den Begriffen befasst und nicht nur Bullshit Bingo spielt. FPGA und PIC vergleichen ist wie Elefanten mit Marienkäfen zu vergleichen. >Die Schaltung ist mir noch nicht bekannt, da sie vom uC abhaengt, und >andersherum. Jaja. Aber wenn du nicht weisst was du willst, wie willst du dann Auswahlkriterien für den uC festlegen? >Bei einigen Werten ist die Wahl klar: >z.B. muessen mind. 36 kByte Programmspeicher vorhanden sein, ein Timer >und ein ADC. Haben Dutzende von PICs. FPGAs haben keinerlei ADCs. >Woran mache ich die Auswahl der Taktfrequenz fest ? An der Aufgabenstellung? >Warum wähle ich 8, 16, 32 bit Controller? Dito. >Was entscheidet zwischen FPGA und PIC ? Dito. BEschreibe allgemein, welche Datenverarbeitung in welcher Zeit vorgenommen werden soll. Dann kann man abschätzen, ob das ein PIC schafft oder ob es ein FPGA sein muss/sollte. Aber ja, dazu gehört schon ein gutes Stück Erfahrung. MFG Falk
Hallo Sv en, > im Rahmen einer Arbeit müsste ich eine Analyse möglicher Controller > durchführen. Hier ist schon mein erstes Verständnisproblem: Was genau musst/sollst/möchtest Du analysieren? > Dazu gehören FPGAs und PICs (ASIC fallen flach). Warum genau diese Unterscheidung? FPGAs gibt es viele, PICs auch, aber "PIC" ist zumindest schon einmal eine definierte Controllerfamilie. Warum überhaupt unbedingt ein PIC und kein MSP430, kein eZ8 und kein Asiate? Hast Du dich schon auf eine bestimmte FPGA-Familie festgelegt? > Wie führt man eine solche Analyse wissenschaftlich und fundiert durch? Dazu muß man erst einmal wissen, was das Ziel der Analyse ist. Denn analysieren kann man vieles, Beispiele: Die konrete Hardware (Technologieanalyse), diverse Timings (Laufzeitanalyse), Stromverbrauch (Energieeffizienzanalyse), Verhalten unter schwierigen Umweltbedingungen (Zuverlässigkeitsanalyse)... > Die Schaltung ist mir noch nicht bekannt, da sie vom uC abhaengt, und > andersherum. Was soll denn ungefähr aufgebaut werden? > Bei einigen Werten ist die Wahl klar: z.B. muessen mind. 36 kByte > Programmspeicher vorhanden sein, ein Timer und ein ADC. Warum braucht/will man dann einen FPGA? Welche Auflösung muß der ADC haben und wie genau muß er sein? Wieviele Samples (Aufnahmen) des ADCs sind in einer gewissen Zeit (übliche Einheit im Controllerbereich: kSamples/sec) notwendig? Müssen mit den ADC-Werten Berechnungen durchgeführt werden? Und wenn ja: wie komplex sind diese und wie schnell müssen sie ausgeführt sein? Je nachdem kann der kleinste PIC mit Timer und ADC vollkommen ausreichend sein, im anderen Fall kann es sein daß Du selbst mit einem schnellen Rechen-FPGA, breitem externem High-Performance ADC und eventuellen High-Speed-Bustopologien an die Grenzen des technisch Machbaren kommst. > Woran mache ich die Auswahl der Taktfrequenz fest ? Grundregel des Technikers: So viel wie nötig, so wenig wie möglich ;-) > Warum wähle ich 8, 16, 32 bit Controller? Kommt auf deine Daten drauf an und den (ohne Banking) adressierbaren Speicher. Im High-Volume-Low-Cost-Sektor werden auch Vierbitter noch gerne genommen. Ein 8bitter kann (nur) 256 Bytes adressieren, ein 16bitter 64k. Oft ist bei den kleinen dafür auch der Code kleiner, aber das gilt nicht generell. Wenn Du viele Berechnungen mit der Breite eines DWords (4 Byte) hast, kann ein 32bitter Sinn machen. > Was entscheidet zwischen FPGA und PIC ? (Du plenkst). PIC ist eine Microcontroller-Familie der Firma Microchip. FPGAs sind Bausteine mit programmierbarer Logik, sprich: da ist noch keine fertige Hardware (wie bei einem uC) drauf, sondern die musst Du erst selbst programmieren. Die großen Drei unter den FPGA-Herstellern sind Altera, Lattice und Xilinx. > Danke für jede Hilfe / Links Keine Ursache und viel Erfolg, Iwan (grinsend)
> Indem man sich mal mit den Begriffen befasst und nicht nur Bullshit > Bingo spielt. > FPGA und PIC vergleichen ist wie Elefanten mit Marienkäfen zu > vergleichen. Lol. Sind doch beides Käfer. ;) > Die Schaltung ist mir noch nicht bekannt, da sie vom uC abhaengt, und > andersherum. Die machst du an deiner Aufgabe fest. Hier ein paar Begriffe damit Falk sein Bingo-Kärtchen voll bekommt. ;) -> WELCHE Größen sollen gemessen werden? (Zeit, Frequenz, Temperatur, ...) -> WIEOFT und WIE GENAU müssen diese gemessen werden? -> WELCHE BUSSYSTEME werden zur Kommunikation mit der Aussenwelt benötigt? (SPI, I²C, RS232, RS485, CAN, Ethernet, ..........) -> Müssen PROZESSDATEN gesichert werden und wen ja wieviele Daten welchen Zeiträumen? (z.B. 2x pro Minute ein 16-Bit Temperaturwert über 4 Wochen) Schreib dir diese ANFORDERUNGEN in eine Tabelle und schlaf dann nochmal drüber. > Woran mache ich die Auswahl der Taktfrequenz fest ? Im wesentlichen an 3 Größen: 1. Wie schnell müssen Daten verarbeitet werden? -> Dekodierung empfangener Daten braucht Zeit. Wenn man z.B. mit 115200 Baud Daten vom PC empfängt und der Controller mit 1 MHz läuft hat man knapp 10 Takte Zeit um ein Byte zu ver- arbeiten. Dürfte also nix werden. 2. Wieviele Prozesse laufen parallel ab und wielang darf jeder Prozess maximal dauern? 3. Welche Frequenzen müssen gemessen werden? Für alle 3 Punkte gilt: Je schneller desto besser. Wenn dann allerdings auch noch Low-Power und EMV beachtet werden muss, ist weniger wieder mehr. Klär also ab was gefordert ist (wieder Tabelle!). Bei der Entwicklung wirst du dann schon sehen, ob du etwas mehr Speed brauchst oder auch etwas langsamer fahren kannst. Such dir einen Chip aus, der in beide Richtungen noch Luft hat. > Warum wähle ich 8, 16, 32 bit Controller? Weil es sonst keiner macht. Und weil außer dir keiner weiß, welcher für deine Aufgaben (siehe beide Tabellen) am geeignetesten ist. > Was entscheidet zwischen FPGA und PIC ? Die Anforderungen in deinen Tabellen. Ausserdem der Aufwand den du bereit bist zeitlich und finanziell zu investieren.
Erstmal danke für deine Antwort. FPGA vs. PIC: Es geht grundsätzlich um die Verarbeitung und Erfassung von abgetasteten Werten, was zumindest von meinem jetzigen Standpunkt mit beiden möglich sein dürfte. > Aber wenn du nicht weisst was du willst, wie willst du dann > Auswahlkriterien für den uC festlegen? Um in etwa das geht es mir eigentlich. Den Controller versuche ich gerade auszuwählen, und eine Schaltung ist noch nicht einmal grob vorhanden. > FPGAs haben keinerlei ADCs. Sollte es ein FPGA werden, kann man das sicherlich auf dem board realisieren. > Beschreibe allgemein, welche Datenverarbeitung in welcher Zeit > vorgenommen werden soll. Es sollen Pulswerte abgetastet werden. Maximal 9 Werte pro Sekunde, was 9 Hz entspricht. Insofern ist die Frequenz des Controllers eigtl. offen. Einzig der Algorithmus könnte bestimmte Vorgaben machen, den habe ich aber logischerweise noch nicht. Bzgl. der bitzahl würden mir nur die abgetasteten Werte als Vorgaben einfallen. Die müssten aber mit 16 Bits sehr gut bedient sein. Vllt. kann man das ganze auch umformulieren: Welche Bauteile fallen ganz heraus? Ich vermute, es müsste eine Schätzung "über den Daumen" werden, um festzulegen, was reichen dürfte. Dann vllt. noch etwas Puffer dazu ( Taktfrequ., Speicher ), und dann etwas in dem Bereich auswählen. EDIT: Habe wohl etwas lange fürs tippen gebraucht. Vielen Dank für eure Antworten, vor allem der Tipp mit den Tabellen. Das hilft mir jetzt erstmal in eine Richtung weiter. > Warum genau diese Unterscheidung? FPGAs gibt es viele, PICs auch, aber > "PIC" ist zumindest schon einmal eine definierte Controllerfamilie. > Warum überhaupt unbedingt ein PIC und kein MSP430, kein eZ8 und kein > Asiate? Hast Du dich schon auf eine bestimmte FPGA-Familie festgelegt? ehm... ja. Da habe ich wohl etwas grundsätzliches nicht verstanden. Wenn ich das mal alles verarbeitet und detaillierter habe, werde ich zurückkommen ;) Danke
> FPGA vs. PIC: > Es geht grundsätzlich um die Verarbeitung und Erfassung von abgetasteten > Werten, was zumindest von meinem jetzigen Standpunkt mit beiden möglich > sein dürfte. Jap, spätestens wenn man den PIC als Softcore im FPGA nachbildet kann der FPGA (fast) alles, was der PIC auch kann. > Den Controller versuche ich gerade auszuwählen, und eine Schaltung ist > noch nicht einmal grob vorhanden. Bisher kenne ich es so, dass die Schaltung basierend auf einer Hardware-Vorauswahl entwickelt wird. Werd dir klar darüber, was du brauchst. Hier kann es keiner wissen. > Sollte es ein FPGA werden, kann man das sicherlich auf dem board > realisieren. Jap. Ist halt wieder ein Chip+Hühnerfutter mehr. > Es sollen Pulswerte abgetastet werden. Maximal 9 Werte pro Sekunde, was > 9 Hz entspricht. Hast schon richtig erkannt dass 9 Werte pro Sekunde nicht viel sind. Nur wie KURZ kann dein Puls werden? Wie groß sind die MINDEST-PAUSEN zwischen 2 Pulsen? Konzentrier dich erstmal auf die kritischen Parameter. > Insofern ist die Frequenz des Controllers eigtl. offen. Nö. Der Controller muss ja die Samplingrate vom ADC schaffen. Und die hängt von der Dauer deiner Pulse aus. > Einzig der Algorithmus könnte bestimmte Vorgaben machen, den habe ich > aber logischerweise noch nicht. Tja, DU gibst den Algorithmus indirekt durch deine Controllerauswahl mit vor. Also überleg dir was mit den gemessenen Daten gemacht werden soll und wie man das (Pseudocode oder PAP) erreichen kann. > Bzgl. der bitzahl würden mir nur die abgetasteten Werte als Vorgaben > einfallen. Die müssten aber mit 16 Bits sehr gut bedient sein. Was für ein Signal willst du denn nun messen? Wenn es 0V/5V Pegel sind, reicht schon ein Timer mit InputCapture. Wenn es eher in Richtung Audio / Signalanalyse geht ist vielleicht ein DSP günstiger als ein FPGA.. > Vllt. kann man das ganze auch umformulieren: > Welche Bauteile fallen ganz heraus? Mindestens 99.99% der aktuell am Markt befindlichen Bauelemente kannst du weglassen. > Ich vermute, es müsste eine Schätzung "über den Daumen" werden, um > festzulegen, was reichen dürfte. Man schaut sich die kritischen Parameter an und schätzt anhand derer die notwendigen Ressourcen. Man muss sich auch nicht schämen, mal bei einem anderen ähnlichen System zu schauen welche Ressourcen da vorhanden sind und wie weit diese ausgereizt werden.
Also Danke euch allen. Habe jetzt einige Hinweise und Tipps zusammen. Jedenfalls muss ich die Analyse anders aufziehen, als ich angefangen habe.
Naja, um eine Entscheidung zu treffen, musst Du natürlich mal die "Rahmenbedingungen" kennen. Also z.B. den maximalen Stromverbrauch, Speisespannung, benötigte I/O's, Grösse des Flash/RAM, Gehäusetyp (Grösse), benötigte Rechenleistung, benötigte Peripherie wie ADC/DAC/Timer, Preis, Präferenzen von vorhergehenden Projekten, ... Hast Du dies alles zusammengetragen, dann wälze Datenblätter und lade Verkäufer von Distributoren ein, welche Dich ebenfalls noch "beraten". Hier einige bekannte Marken / Stickworte von in der Branche häufig eingesetzten Produkten: FPGA: Xilinx, Altera Mikrocontroller (sehr stromsparend): TI MSP430, NEC Mikrocontroller (viel Peripherie): Renesas H8, Renesas M16C, NEC, ATMEL AVR Mikrocontroller (Sonstige): Microchip PIC Mikrocontroller (sehr schnell): Auf ARM CPU basierende von NXP, ATMEL Die Liste ist sicher nicht vollständig, einfacvh das, was mir gerade in den Sinn gekommen ist.
@Sven Pauli: Wenn schon ein 8-Bit Mikrocontroller, dann vielleicht nicht gerade ein PIC, da gibts bessere und modernere. ;) SCNR
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.