Mikrocontroller-Peripherie

Unabhängig vom Core

25. Mai 2016, 12:59 Uhr | Von Lucio Di Jasio
Diesen Artikel anhören

Fortsetzung des Artikels von Teil 3

Programmierbarer Logik: ­trügerische Versprechen

Ins Extrem weitergedacht, würden solche Konzepte zu einem System führen, in dem jedes Modul in die kleinstmöglichen logischen Einheiten (Gatter) aufgeteilt wäre. Ein solches System böte dann wie in einem CPLD oder FPGA die Fähigkeit, jedes einzelne Element von Grund auf zu erstellen. Trotz großer Anstrengungen in den letzten Jahren sind die Kosten eines solchen Konzepts unverhältnismäßig hoch; dies gilt ebenfalls für die durch die Stromaufnahme diktierten Einschränkungen. Ähnliches folgt auch aus der Komplexität und den Kosten der Werkzeuge, die für die Entwicklung solche Systeme erforderlich sind (VHDL- und Verilog-Synthese).

Core-unabhängige Peripherieschaltungen dagegen lassen sich innerhalb von Minuten beherrschen und kommen in den meisten kostengünstigen und extrem stromsparenden Bausteinen von heute zum Einsatz. Sie wenden sich besonders an Entwickler, die bereits seit Jahrzehnten im Embedded-Bereich gearbeitet haben, da sie vertraute Terminologie und bekannte Konzepte nutzen.

Die Anzahl der bisher eingeführten Core-unabhängigen Peripherieschaltungen ist in den letzten Jahren stetig gewachsen – auf jetzt 18. Eine detaillierte Beschreibung aller dieser Schaltungen würde den Rahmen dieses Artikels sprengen. Weitere Informationen finden Sie auf einer speziellen Microchip-Webseite [1]. Im Folgenden soll eine kleine Auswahl dieser Schaltungen kurz vorgestellt werden.

HLT: Hardware Limit Timer

Der Hardware Limit Timer oder HLT ist prinzipiell ein rücksetzbarer Timer. Er erweitert den CLC oder andere Peripherieschaltungen um einen zusätzlichen Reset-Eingang, mit dem sich der Timer automatisch und ohne CPU-Beteiligung neu starten lässt. Außerdem kann diese Schaltung bei ihrer Deaktivierung ein direktes Ausgangssignal (Pin, Flag oder Interrupt) erzeugen. Die gängigsten Verwendungen dieser Schaltung sind ein synchroner Watchdog, ein One-Shot-Puls- oder Delay-Generator und ein automatisches Timeout für die Aktivität anderer Peripherieschaltungen. Nützlich ist er auch zur Erkennung einer Motor-Blockierung. Leistungselektronik-Entwickler nutzen ihn zusammen mit anderen Modulen wie PWMs, Komplementärausgangsgeneratoren und analogen (Hochgeschwindigkeits-) Komparatoren zur Implementation leistungsfähiger AC/DC- und DC/DC-Topologien.

CRC-SCAN: Cyclic Redundancy Check

Dieses Cyclic-Redundancy-Check-Modul dient zur Anwendung eines bis zu 17 bit umfassenden Polynoms auf einen Datenstrom, wie dies für die meisten Kommunikationsprotokolle und Sicherheitsstandards erforderlich ist. Das Modul lässt sich eigenständig oder zusammen mit einem flexiblen Memory Scanner einsetzen und kann während des normalen CPU-Betriebs äußerst schnelle Flash-Memory-Prüfroutinen mit minimalen oder gar keinen Auswirkungen auf die CPU-Leistung ausführen. In dieser Konfiguration nutzt man das Modul hauptsächlich in sicherheitskritischen Anwendungen zum Erreichen einer UL- oder ISO-Klasse-B-Zertifizierung. Dabei ermöglicht das Modul eine deutliche Verringerung von CPU-Last, Timing Constraints und Anwendungscode-Umfang.

ZCD: Zero Cross Detect

Das Zero-Cross-Detect-Modul ist eine intelligente Lösung für die Statusüberwachung von Wechselstrom-Leitungen. Mit ihm lassen sich alle Probleme einer (Substrat-)Strom-Injektion vermeiden. Dies führt zu einer Verringerung der Anzahl externer Komponenten sowie zu maximaler Leistung und Stabilität der auf dem Chip inte­grierten Analogsignal-Kette. Typische Einsätze dieses Moduls sind Sensor-Eingänge in kleinen Haushaltsgeräten (Sicherheitsschalter) oder die Synchronisierung von Phasenanschnitts-Ausgangssteuerungen (Triac).

Winkel-Timer

Der Angular Timer ermöglicht eine transparente Umwandlung von Winkeln (ausgedrückt in Grad) in eine proportionale Verzögerungszeit (Taktzyklen) auf der Basis eines gegebenen periodischen Eingangssignals. Die Schaltung entlastet die CPU von umfangreichen mathematischen Berechnungen wie Multiplikationen und Divisionen in 16- oder 32-bit-Präzision; dies verringert den Codeumfang, vermeidet Look-up-Tabellen und vereinfacht die Anwendung. Typische Einsatzgebiete sind Motorsteuerungen, in denen das Modul fehlende Pulse erkennen sowie Phase und Kommutation synchronisieren kann, und Phasenanschnitts-Ausgangssteuerungen (Triac).

PID-Mathematik- Beschleuniger

Der PID-Algorithmus zählt zu den grundlegenden und am häufigsten genutzten Algorithmen in Embedded-Steuerungen. Die Beschleunigerschaltung enthält eine 16 bit breite Festkomma-Arithmetik-Hardware. Diese Hardware kann die Berechnungen für die innere PID-Schleife in nur sieben Taktzyklen ausführen, anstatt Tausende von In­struk­tionszyklen wie bei einer typischen Software-Implementierung zu benötigen. Die Einsatzgebiete dieses Beschleunigers reichen von Temperatursteuerung über Drehzahl- und Drehmomentsteuerung bis zu einer fast endlosen Liste weiterer möglicher Verwendungen.

Vielfältig kombinierbar

Die hier stellvertretendend vorgestellten Core-unabhängigen Peripherieschaltungen lassen sich mit digitalen und analogen Modulen verschalten und ermöglichen die Implementierung flexibler Funktionen speziell für die Bedürfnisse realer Anwendungen. Auch wenn 8-bit-PIC-Mikrocontroller nicht die gleiche Aufmerksamkeit in den Medien genießen wie größere 32-bit-Architekturen, können sie mit Stabilität und einfacher Einsetzbarkeit punkten. Core-unabhängige Peripherieschaltungen helfen bei der Verringerung der Software-Komplexität, da sie dem Entwickler die Möglichkeit zum Aufbau flexibler Hardware-Funktionen sowie die Chance zur Integration intelligenterer Analogfunktionen bieten. Letztendlich geht es um die Konzentration auf die wirklich wichtigen Aspekte in der Entwicklung von Embedded-Steuerungen: Senkung von Stromverbrauch, Kosten und Komplexität. Und das ist keine Zauberei.

Literatur:

[1] Core Independent Peripherals – ein Abschnitt der Microchip-Webpräsenz für 8-bit-PIC-Mikrocontroller, der sich speziell den neuen CIPs widmet. www.microchip.com/cip
[2] MPLAB Code Configurator – ein MPLAB X IDE Plug-in, mit dem sich alle CIPs initialisieren lassen. www.microchip.com/mplab/
[3] Di Jasio; Lucio: This is (not) Rocket Science. Im Selbstverlag erschienen, 2015. lulu.com.
[4] AN1473 – Applikationsbericht (englisch): Various Solutions for Calculating a Pulse and Duty Cycle. Zugänglich über Suchfunktion auf www.microchip.com

Der Autor:

Lucio Di Jasio
ist EMEA Business Development Manager bei Microchip Technology Inc. In den letzten 20 Jahren hatte er eine Reihe von technischen und Marketing-Positionen innerhalb der 8-, 16- und 32-bit-Mikrocontroller-Abteilungen des Unternehmens inne. Als meinungsstarker und kompetenter technischer Autor hat Lucio Di Jasio zahlreiche Fachartikel und etliche Bücher über die Programmierung von Embedded-Control-Anwendungen verfasst. Als passionierter Hobbyflieger hat er Privatpiloten-Flugscheine der FAA und EASA erworben. Seinen Blog finden Sie unter blog.flyingpic24.com.

lucio.dijasio@microchip.com



  1. Unabhängig vom Core
  2. Die Analyse auf drei Basisfälle beschränkt
  3. Der Signal Measurement Timer
  4. Programmierbarer Logik: ­trügerische Versprechen

Lesen Sie mehr zum Thema


Das könnte Sie auch interessieren

Jetzt kostenfreie Newsletter bestellen!

Weitere Artikel zu Microchip Technology GmbH

Weitere Artikel zu Mikrocontroller

Weitere Artikel zu Mikroprozessoren