Ich habe noch keinen DSP-Chip verwendet. Ich weiß nur, dass ihre Architektur so beschaffen ist, dass sie Berechnungen ziemlich schnell durchführen können, normalerweise innerhalb eines Taktzyklus, sie haben Anweisungen zum Multiplizieren und Akkumulieren in ihrem Befehlssatz und sie haben DMAs, sodass die CPU keine wertvolle Zeit mit dem Verschieben von Daten verschwenden muss um. Ich denke, da steckt noch mehr dahinter, aber das sind ein paar grundlegende Punkte.
Ich kann sehen, dass Microchip dsPIC hat, was ihre DSP-Chip-Linie ist. Können wir nicht einfach einen PIC18 oder PIC32 verwenden, der auch eingebaute Multiplikatoren hat, um auch DSP zu machen? Wie unterscheidet sich der dsPIC vom normalen PIC?
Meine Hauptfrage lautet: Warum brauchen wir einen separaten und eigenständigen DSP-Chip und integrieren nicht hochpräzise Berechnungsfunktionen für Gleitkommaeinheiten auf allen Mikrocontrollern? Mit den Prozesstechnologien, die wir jetzt haben, sollte dies sicherlich nicht viel Platz einnehmen.
Woher weiß ich auch, dass ich in meinem Projekt einen DSP-Chip anstelle eines normalen Mikrocontrollers verwenden muss>
Im Allgemeinen bedeutet "DSP ..." "relevantere Leistung und/oder relevantere Hardware zum Zeitpunkt der Einführung des Produkts ".
Verallgemeinerte Prozessoren neigen dazu, ältere Spezialgeräte einzuholen.
DSPIC ist wahrscheinlich über 10 Jahre alt - Olin wird es wissen.
[Einträge in Klammern beziehen sich auf einige DSPIC-Beispiele – nicht vollständig].
Bei DSP-Produkten erwarten Sie eine Mischung aus:
Erwarten Sie Dinge wie Barrel-Shifter,
breite schnelle Pipelines und schnelle Einzelzyklus-Ausführungszeiten,
breite Einzelzyklus-Befehle,
DMA [6 oder 8 Kanäle, Dual-Port-RAM-Puffer] große lineare Speicheradressierungsbereiche [4-Mword-Programm , 64 kB Daten] spezialisierte arithmetisch orientierte Funktionen
Vielleicht:
spezielle Peripheriegeräte wie Motorsteuerung,
Hardware für verschiedene Kommunikationsstandards [CAN, IIC, UART, IIS, AC97, ...] tiefer als gewöhnliche Kommunikationspuffer [4 Bytes] schneller und /oder breiter als übliche ADCs [2 Msps, 10 oder 12 Bit]
Die meisten davon finden Sie in der DSPIC-Familie – und zunehmend auch in GP-Prozessorfamilien.
In extremen Fällen erhalten Sie Benutzer-Mikrocodierung und mehr.
Einige der Vorteile eines dsPIC gegenüber PICs früherer Architektur, wie den PIC 16- und 18-Familien:
Dies ermöglicht auch eine bessere Softwarearchitektur. Die Unterbrechungsroutine für ein bestimmtes Peripheriegerät kann sich in demselben Modul befinden wie der andere Code, der dieses Peripheriegerät handhabt, anstatt eine globale Unterbrechungsroutine haben zu müssen.
Normalerweise besteht das Hauptunterscheidungsmerkmal eines DSP im Vergleich zu einer Allzweck-CPU darin, dass der DSP bestimmte Signalverarbeitungsvorgänge mit wenigen, wenn überhaupt, CPU-Zyklen ausführen kann, die für Befehle verschwendet werden, die keine Ergebnisse berechnen.
Eine der grundlegendsten Operationen in vielen wichtigen DSP-Algorithmen ist die MAC-Operation (Multiply-Accumulate), die der grundlegende Schritt ist, der in Matrix-Punkt- und -Kreuzprodukten, FIR- und IIR-Filtern sowie FFTs verwendet wird. Ein DSP verfügt typischerweise über eine Register- und/oder Speicherorganisation und einen Datenpfad, der es ihm ermöglicht, mindestens 64 MAC-Operationen an eindeutigen Datenpaaren hintereinander durchzuführen, ohne dass Takte für Loop-Overhead oder Datenbewegung verschwendet werden. Allzweck-CPUs haben im Allgemeinen nicht genügend Register, um dies zu erreichen, ohne zusätzliche Befehle zum Verschieben von Daten zwischen Registern und Speicher zu verwenden.
Der dsPIC33 ist im Wesentlichen ein PIC24 mit einigen bescheidenen DSP-Fähigkeiten - hauptsächlich ein Dual-MAC. Es zielt auf die Motorsteuerung ab. Ihn als DSP zu bezeichnen, wäre übertrieben - Microchip bezeichnet ihn als digitalen Signalcontroller, was seine Zielanwendung der Motorsteuerung widerspiegelt.
Ich habe es in bescheidenen Signalverarbeitungsanwendungen für die Basisbanddecodierung von GMSK mit niedriger Rate verwendet, aber diese Anwendung wurde später erfolgreich auf einem ARM Cortex-M3 bei 72 MHz implementiert und erweitert. Ich würde freiwillig keine Art von PIC verwenden. Abgesehen von dem eher Nischen-PIC32 sind sie architektonisch seltsam und in der gesamten Bandbreite uneinheitlich. ARM Cortex-M4 oder M7 beispielsweise verfügen über eine weitaus umfassendere DSP-Unterstützung als dsPIC mit einer weitaus größeren Auswahl an Teilen und Leistungsspektrum.
Sie können die Signalverarbeitung durchführen, ohne einen dedizierten DSP zu verwenden. Aktuelle DSPs werden nützlich, wenn mehrere Signale verarbeitet werden oder mit sehr hohen Abtastraten arbeiten, wie zum Beispiel für Software Defined Radio. Zunehmend wird dafür jedoch ein FPGA verwendet.
David
Clifford