Digital Signal Controller Die Stärken eines Digital Signal Controller

Redakteur: Johann Wiesböck

Bestimmte Anwendungen erfordern Prozessoren, die gleichermaßen schnellen Echtzeitanforderungen als auch rechenintensiven Aufgaben im Bereich der digitalen Signalverarbeitung genügen müssen. Diese Applikationen sind oft auch noch preissensitiv und müssen hohen Sicherheitsanforderungen entsprechen. Was in solchen Fällen Digital Signal Controller von Mikrocontrollern und DSPs abhebt, welche typischen Anwendungen es gibt und wie eine moderne DSC-Familie aussehen kann, zeigt dieser Bericht.

Firmen zum Thema

( Archiv: Vogel Business Media )

Bestimmte Anwendungen erfordern Prozessoren, die gleichermaßen schnellen Echtzeitanforderungen als auch rechenintensiven Aufgaben im Bereich der digitalen Signalverarbeitung genügen müssen. Diese Applikationen sind oft auch noch preissensitiv und müssen hohen Sicherheitsanforderungen entsprechen. Was in solchen Fällen Digital Signal Controller von Mikrocontrollern und DSPs abhebt, welche typischen Anwendungen es gibt und wie eine moderne DSC-Familie aussehen kann, zeigt dieser Bericht.

Viele Anwendungen im Bereich industrieller Steuerungen erfordern nicht nur Controller mit schnellen, möglichst autonomen Peripheriemodulen, sondern auch die rasche Ausführung komplexer Rechenoperationen. Ein Beispiel dafür sind moderne Motorsteuerungen. Diese benötigen schnelle A/D-Wandler für die sensorlose Erfassung der Rotorposition, schnelle PWM-Blöcke mit Totzeiteinfügung für die Ansteuerung der Leistungsstufen, eventuell Quadraturencoder, wenn Inkrementalgeber in der Rückführung verwendet werden, und die rechenintensive, rasche Abarbeitung von Park- und Clark-Transformationen, wenn mit Vektorregelung gearbeitet wird.

Bildergalerie

Dazu kommt meist noch der Wunsch nach CAN-Schnittstellen und nach Sicherheitsmechanismen für außergewöhnliche Betriebszustände und gegen unerwünschtes Auslesen der Anwendungssoftware, was integrierte Flash-Speicher erfordert. Ein möglichst hoher Integrationsgrad, ein weiter Arbeitstemperaturbereich und ein günstiger Preis runden das Anforderungsprofil ab.

Sehr ähnliche Erfordernisse finden sich aber auch häufig in anderen Endanwendungen, die mit Motorsteuerungen nichts zu tun haben, zum Beispiel in intelligenten Sensoren, Vorschaltgeräte für Gasentladungslampen oder LEDs, Mess- und Prüfgeräten, Positioniersystemen, Stromversorgungen oder Batterieladegeräten größerer Leistung und in vielen Bereichen der Automobilelektronik, um nur einige Beispiele zu nennen.

Dem stehen, was die Prozessorauswahl betrifft, mehrere Lösungsansätze gegenüber. Traditionelle Mikrocontroller eignen sich für schnelle Steuerungen, haben aber Schwächen bei der Rechenleistung und beim verfügbaren Adressraum. Digitale Signalprozessoren (DSPs) bieten enorme Rechenleistungen, aber keine integrierten Flash-Speicher und meist auch nicht die für Embedded-Anwendungen spezifischen Peripherieblöcke. Die in letzter Zeit stark aufgekommen Controller mit ARM-Architektur (ARM7TDMI) scheinen hier eine gewisse Brücke zu bilden.

Diese Controller sind für Embedded-Anwendungen vor allem dann interessant, wenn es um komfortable Benutzerschnittstellen (z.B. TFT-Displays) und Vernetzung über Ethernet oder USB geht. Allerdings ist durch die bei ARM7 verwendete von Neumann Architektur kein hoher Grad an Parallelität möglich, da es nur ein gemeinsames Bussystem für Instruktionen und Daten gibt. Darüber hinaus ist bei den meisten ARM7-Derivaten die Schnelligkeit des integrierten Flash-Speichers und die Bandbreite zwischen Speicher und Prozessor ein Hindernis für eine wirklich rasche Befehlsausführung.

Die DSC-Familie 56F8xxx von Freescale

Die DSC-Familie 56F8xxx beinhaltet drei Unterfamilien, die sich im wesentlichen im Arbeitstemperaturbereich, in der maximalen Taktfrequenz, in den Gehäusegrößen und in der Ausstattung mit Peripherblöcken unterscheiden:

• die 56F83xx-Unterfamilie mit bis zu 60 MHz Taktfrequenz, dem Maximalumfang an Peripherieblöcken, Arbeitstemperaturbereich bis 125oC, Gehäuse von 48 bis 160 Pin und 24 bis 560 KByte Flash;

• der 56F81xx-Unterfamilie mit maximal 40 MHz Takt, maximaler Arbeitstemperatur bis 105oC, reduzierter Anzahl an Peripherieblöcken und ohne Programm-RAM und Daten-Flash;

• der 56F80xx-Unterfamilie für preissensitive Anwendungen, bis zu 32 MHz Core-Frequenz entsprechend 32 MIPs, aber 96 MHz Takt für Timer und PWMs, Temperaturbereich bis 125oC, 12 bis 64 KByte Programm-Flash und 32 bis 64 Pin.

Aufbau des Prozessorkerns beim 56F8xxx

Die im Gegensatz zu Mikrocontrollern hervorstechendsten Eigenschaften des 56F8xxx-Cores sind die erweiterte Harvard-Architektur und eine Vielzahl autonomer Funktionsblöcke. Program Controller, Address Generation Unit und Data ALU besitzen jeweils eigene Registersätze und Steuerungslogik, wodurch sie gleichzeitig unabhängig voneinander arbeiten können. Für Einzelbit-Manipulationen steht eine spezielle Bit Manipulation Unit zur Verfügung.

Die Address Generation Unit (AGU) führt die Berechnungen und Speicherung der effektiven Adressen aus, um Operanden im Datenspeicher-Bereich anzusprechen. Sie kann mit ihren zwei Rechenwerken gleichzeitig zwei Adressen berechnen. Auto-Inkrement und -Dekrement sowie die Modulo-Adressierung von Ring-Buffern werden selbstverständlich unterstützt.

Die Daten-Recheneinheit (Data ALU) führt alle arithmetischen und logischen Operationen an 8-, 16- oder 32-Bit-Operanden durch. Dabei werden alle gängigen Fixkomma-Zahlenformate sowie einfache und doppelte Genauigkeit unterstützt. Wie bei DSPs üblich kann die Recheneinheit auch mit Sättigung arbeiten, um das Verhalten linearer Schaltungen nachzubilden und Überlauffehler ohne Softwareaufwand zu verhindern.

Die Bit Manipulation Unit kann in jedem Register und jedem Wort des Datenspeichers unterbrechungsfrei innerhalb eines Taktzyklus Bits testen, setzen, löschen oder invertieren. Bedingte Programmverzweigungen können vom Ergebnis solcher Bitmanipulationen abgeleitet werden.

Der Enhanced On-Chip-Emulation-Block (EOnCE) bietet Testmöglichkeiten in Echtzeit und erlaubt dem Entwickler, in der Testphase Register und Speicher zu lesen und zu modifizieren, Breakpoints im Programm- und Datenspeicher zu setzen und Instruktionen im Einzelschritt auszuführen oder zu verfolgen. Diese Schnittstelle kann auch zum Datentransfer verwendet werden.

Das interne Speicherinterface hat drei Adressbusse: Zwei 24-Bit-Adressbusse für Daten und einen 21-Bit-Adressbus für Instruktionen. Für die eigentlichen Datentransfers stehen 4 unidirektionale Busse zur Verfügung: zwei 32-Bit-Busse zum Schreiben und Lesen von Daten, ein 16-Bit-Bus zum Lesen der Instruktionen und ein weiterer 16-Bit-Bus für das Lesen von Daten.

A/D-Wandler und PWM-Blöcke mit PFC

Die einzelnen Derivate besitzen eine unterschiedliche Anzahl von ADC-Modulen mit je 8 bis 10 Eingangskanälen. Jeder dieser Module besitzt zwei A/D-Wandler mit 12 Bit Auflösung und kann zwei beliebige Kanäle gleichzeitig messen. Ohne CPU-Eingriff können Einzelmessungen oder einmalige oder kontinuierliche sequentielle Messungen mehrerer Kanäle durchgeführt werden. Die Wandler haben einen differentielle Nichtlinearität von < ±1LSB und sind damit monoton, was in digitalen Regelschleifen erforderlich ist.

Jedes Derivat besitzt ein oder zwei PWM-Blöcke mit 15 Bit Auflösung, meistens mit je 6 Kanälen, die extrem konfigurierbar sind, und mit Power Factor Correction (PFC) ausgestattet sind. Die wichtigsten Unterscheidungsmerkmale gegenüber herkömmlichen PWM-Blöcken sind die Totzeiteinfügung, die Möglichkeit, Konfigurationsregister gegen Überschreiben zu sperren und ein spezieller Modus, bei dem die Ausgänge automatisch in einen inaktiven Zustand geschaltet werden, wenn der Prozessor in einen Wait- oder Debug-Status springt.

Die 6 Ausgänge jedes PWM-Blocks können als 6 einzelne Kanäle oder als drei komplementäre Paare betrieben werden. Die Polarität der High- und Low-Side-Ausgänge ist individuell wählbar, die Totzeiteinfügung erfolgt unter Softwarekontrolle in Hardware. Bei den neueren Derivaten wird die Ansteuerung bürstenloser Gleichstrommotoren besonders unterstützt, indem PWM-Werte zwischen den einzelnen Phasen einfach ausgetauscht werden können und nicht neu geladen werden müssen.

Quad Timer Modul und Speicherausstattung

Jedes 56F8xxx-Derivat besitzt einen Quad Timer Modul mit 4 kaskadierbaren, identisch aufgebauten Kanälen. Jeder Kanal hat zwei Eingänge, einen Ausgang und einen 16-Bit-Auf-Ab-Zähler mit den entsprechenden Hilfsregistern. Die Auflösung entspricht der maximalen Clockfrequenz von 60 MHz bei der 56F83xx-Familie bzw. 96 MHz bei der 56F80xx-Familie. Gezählt werden können interne und externe Ereignisse, durch die zwei Eingänge sind vielfältige Gating-Möglichkeiten zur Zeit- oder Frequenzmessung gegeben.

Die maximal ausgebauten Derivate der 56F8xxx-Familie besitzen Flash- und RAM-Speicher sowohl im Programm- als auch im Datenbereich sowie ein eigenes Boot-Flash mit Power-Loss Recovery. Auf den On-Chip-Speicher, auch auf das Flash, kann mit bis zu 60 MHz wahlfrei ohne Waitstates und im gesamten Temperaturbereich bis 125oC zugegriffen werden.

Der Programmspeicher kann wortweise, auch über beliebige Schnittstellen und aus der Anwendung heraus programmiert werden und besitzt Schutzmechanismen gegen Auslesen und unbeabsichtigtes Löschen. Viele Derivate besitzen ein Businterface für externe Speicher, bestehend aus 24-Bit-Datenbus, 16-Bit-Adressbus, 8 Chip Selects, Wait-State-Generatoren und Steuerleitungen.

SPOERLE

Tel. +49(0)6103 3040

*Heinz Melion arbeitet als Field Application Engineer bei SPOERLE in Wien. Die Schwerpunkte seiner Tätigkleit liegen bei DSPs, Mikrocontrollern und in der Analogtechnik.

(ID:182587)