Vergleichen Sie die Implementierung eines einfachen Automatisierungsdesigns auf einer MCU mit einer FPGA / CPLD


8

Ich arbeite seit den 90er Jahren mit MCUs und habe mich kürzlich mit den Chips der Spartan6-Serie von Xilinx in die FPGA-Szene gewagt. Unter der Annahme eines einfachen Fabrikautomationsdesigns mit Sensoren und Motoren und einiger Intelligenz, um alles miteinander zu verbinden, auf welchem ​​Gerätetyp könnte ich das Design schneller und einfacher fertigstellen, MCUs oder FPGAs? Kleine oder "offensichtliche" Punkte werden ebenfalls geschätzt, da ich im Allgemeinen neu bei FGPA bin.


Selbst eine FPGA-Lösung würde mit ziemlicher Sicherheit auch einen Prozessor beinhalten, entweder neben dem darin implementierten FPGA oder in einem angeschlossenen größeren Computer. Gespeicherte Programmstrukturen sind für die Implementierung der komplexen Teile von Algorithmen weitaus einfacher als spezielle Logik- oder Zustandsmaschinen. Sie speichern diese also nur für Dinge, die schnell (oder massiv parallel), aber einfach sein müssen.
Chris Stratton

Tolle Antworten von Richard & Martin unten. Es kann verlockend sein, zu versuchen, eine neu erlernte Fähigkeit oder Technologie auf das nächste Problem anzuwenden, aber in diesem Fall (aus den oben von den Herren beschriebenen Gründen) denke ich, dass eine MCU der richtige Weg ist.
Radian

Antworten:


11

Es gibt keinen Grund, FPGAs zu verwenden, es sei denn, Sie müssen . Selbst zwei ähnlich talentierte Ingenieure im Bereich MCU und FPGA würden eine MCU für eine relativ einfache Automatisierungsaufgabe verwenden.

Pro MCU:

  • Bei MCUs sind normalerweise alle Peripheriegeräte nach außen einsatzbereit
  • Das Kompilieren dauert Sekunden (FPGAs dauern Minuten bis Stunden)
  • Es gibt eine Größenordnung (oder zwei!) Weitere Ingenieure, die helfen oder dort weitermachen können, wo Sie aufgehört haben. (Für einen Spaß, nicht notwendigerweise statistisch valide, Vergleich - Vergleichen Sie die Anzahl der Q & A auf Stack - Überlauf für C vs VHDL oder FPGA )

Verwenden Sie ein FPGA, wenn Sie müssen, weil:

  • Die erforderliche Zahlenkalkulation kann mit einem Mikroprozessor in Bezug auf Leistung, Gewicht, Größe oder Kostenbudget nicht erreicht werden
  • Es gibt harte Echtzeitfristen, die mit Software nicht garantiert werden können (z. B. Reaktionszeiten im Mikrosekundenbereich).
  • Die Verwendung der FPGA-Logik kann es einfacher machen, zuverlässige Aussagen über die Antwortzeiten zu treffen
  • Sie können große Einsparungen bei Kosten, Leistung usw. erzielen, indem Sie benutzerdefinierte Datentypen verwenden (z. B. ein 12-Bit-Gleitkomma).

Oder:

  • Ihre Aufgabe sagt Ihnen, dass Sie müssen :)

+1 Für die 3. Kugel mit "einer Größenordnung (oder zwei!) Mehr Ingenieure, die helfen können". Das letzte Mal, als ich dieses Kriterium verwendet habe, war es für die Auswahl der Programmiersprache.
Nick Alexeev

5

Einige Gründe, warum ich glaube, dass die Verwendung eines Mikrocontrollers (MCU) für Sie einfacher wäre:

  • Sie haben Erfahrung mit MCUs. Das Erlernen der Vor- und Nachteile eines neuen Chips braucht Zeit.
  • MCUs verfügen über integrierte Peripheriegeräte, die Sie selbst auf einem FPGA implementieren (oder kaufen) müssten. Beispielsweise verfügen die meisten MCUs über einen I2C-Anschluss, der nützlich ist, wenn Sie von einem I2C-Sensor lesen. Außerdem verfügen die meisten MCUs über eine Art Analog-Digital-Wandler und einen Pulsweitenmodulator, die beide höchstwahrscheinlich für eine gute Motorsteuerung erforderlich sind.
  • Komplexe Algorithmen lassen sich in C leichter ausdrücken als in VHDL (ich habe keine Erfahrung mit Verilog).
  • Verzögerungen auf menschlicher Ebene sind in einer MCU einfach, erfordern jedoch in einem FPGA erhebliche Ressourcen.
  • Für eine einfache Fabrikautomatisierung sind die kurzen Standardbitbreiten und langsamen Geschwindigkeiten von MCUs höchstwahrscheinlich ausreichend.

In beiden Fällen muss auf den von Ihnen geschriebenen Code geachtet werden, damit er in allen Situationen, insbesondere unter gefährlichen Bedingungen, ordnungsgemäß funktioniert.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.