On-Chip-Peripherie

Mehr Flexibilität durch programmierbare Logik

11. November 2023, 14:00 Uhr | Von Robert Perkel
Diesen Artikel anhören

Fortsetzung des Artikels von Teil 1

Hardwarebeschleunigte Paritätsberechnung

Listing 3 zu SR-Port: Signal Routing
Listing 3
© Microchip Technology

Manchmal ist es notwendig, ein Paritätsbit für die Datenübertragung oder Kommunikation zu generieren. Die Berechnung der Parität in Software ist trivial, aber langsamer als in Hardware. Nachfolgend wird eine einfache Funktion gezeigt (Listing 3).

Hinweis: Für diese einfachen Beispiele wird das ausgewertete Testmuster global gespeichert.

Zur Beschleunigung der Berechnungen kann eine SPI-Peripherie mit einem CLC verwendet werden, um einen Hardware-Paritätsrechner aufzubauen. Die SPI-Hardware (Bild 5) enthält ein serielles Schieberegister zum Senden und Empfangen von Daten. Das Ausgangssignal der SPI-Hardware (das Schieberegister) kann in einen CLC eingespeist werden, um einen Paritätsrechner aufzubauen, der wesentlich schneller arbeitet als die Softwareversion.

Hardware- Implementierung der Paritätsberechnung
Bild 5. Hardware- Implementierung der Paritätsberechnung
© Microchip Technology

Diese Implementierung kann auch ein vorhandenes SPI-Peripheriegerät wiederverwenden, was die Implementierungskosten weiter senkt. Das liegt daran, dass die Chip-Select-Leitung (CS) normalerweise aktiviert sein muss, um mit anderen SPI-Bausteinen kommunizieren zu können. Ist diese nicht aktiviert, wird die Kommunikation ignoriert.
 
Zur Ausführung der hardwarebeschleunigten Version muss man zunächst den aktuellen gelatchten Wert im CLC erfassen. Anschließend werden die Daten zur Paritätsberechnung übertragen, wobei CS nicht aktiviert ist. Als nächstes wird der neue im CLC gespeicherte Wert betrachtet. Stimmt der neue Wert mit dem vorherigen überein, so wurde eine gerade Anzahl von Einsen gezählt. Wenn die Werte nicht gleich sind, wurde eine ungerade Anzahl von Einsen gezählt. Nachfolgend ist die Software zur Berechnung einer ungeraden Parität dargestellt.

Leistungsunterschiede zwischen Software- und Hardware-Implementierung – 10-Byte-Sequenz
Tabelle. Leistungsunterschiede zwischen Software- und Hardware-Implementierung – 10-Byte-Sequenz.
© Microchip Technology

Um den Geschwindigkeitsvorteil zu demonstrieren, wurde ein kleines Demoprogramm auf der Microcontrollerfamilie PIC16F18146 von Microchip erstellt. Einer der internen Timer, Timer 1, wird zum Zählen der Taktzyklen (FOSC/4) verwendet, die zur Durchführung der Hardware- und Software-Paritätsberechnungen erforderlich sind. Das Ergebnis wird zur Analyse an ein serielles Terminal ausgegeben. Die Leistungswerte für verschiedene Compiler-Optimierungsstufen sind in der Tabelle aufgeführt.

Deutliche Steigerung der Leistung

Die hier gezeigte Leistungssteigerung ist abhängig von der Taktfrequenz des Mikrocontrollers und der SPI-Peripherie. Der Quellcode dieses Programms ist auf Github verfügbar.

Hardware-Peripheriegeräte sind ein wichtiger Bestandteil von Embedded-Systemen. Ihr Einsatz kann Mikrocontroller performanter, effizienter und leistungsfähiger machen. Logikelemente und flexible Peripheriemodule sind besonders leistungsfähige Werkzeuge, um einfache Aufgaben wie Entprellung oder Quadraturdecodierung durchzuführen. Der kreative Einsatz von Hardware-Peripheriegeräten verbessert Designs und erweitert die Grenzen dessen, was mit einem Mikrocontroller möglich ist.

 

Der Autor

 

Robert Perkel von Microchip
Robert Perkel, Microchip.
© Microchip Technology

Robert Perkel

erwarb 2019 einen Bachelor-Abschluss in Computer Engineering am Virginia Polytechnic Institute and State University. Er ist Application Engineer bei Microchip in Chandler, Arizona, und beschäftigt sich mit Hardware-/Softwareentwicklung u. a. mit Altium-Tools für Mikrocontroller


  1. Mehr Flexibilität durch programmierbare Logik
  2. Hardwarebeschleunigte Paritätsberechnung

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 Programmierbare Logik-ICs