Home Instrumentierung Von PIC16F877 zu PIC16F18877, zwanzig Jahre PIC-Evolution

Von PIC16F877 zu PIC16F18877, zwanzig Jahre PIC-Evolution

„Die große Vielseitigkeit der NI-Produkte war entscheidend für die Anpassung an die Anforderungen des Projekts. Die Lösung bietet dem System eine automatisierte Bewegungssteuerung, die in die Überwachung der erfassten Daten integriert ist, und erfüllt so die zu Beginn des Projekts gesetzten Ziele.“ – Iván Torrano, Universität Mondragon  


die Herausforderung   

Entwicklung eines Systems zur Erfassung und Überwachung aerodynamischer Daten in Kombination mit einer 4-Achsen-Positioniersteuerung. Die Informationen werden in Echtzeit überwacht, während sie für spätere Analysen gespeichert werden. Die Positionierung des Geschwindigkeitssensors muss in drei Richtungen gesteuert werden und das zu analysierende Modell muss sich drehen, wodurch der Einfallswinkel in Bezug auf die Windrichtung variiert wird.   


die Lösung
  

Die Verwendung des Controllers NI cRIO-9031 in Verbindung mit dem 4-Achsen-Schnittstellenmodul SISU 1004 hat sich als effektive Lösung für die Steuerung von Positioniersystemen erwiesen. Darüber hinaus hat die Verwendung einer NI-LabVIEW-Projektarchitektur die Integration der in einem NI-cDAQ-9174-Chassis durchgeführten Datenerfassung mit Bewegungssteuerung in derselben grafischen Umgebung ermöglicht.   


Einführung   

Windkanäle sind die am weitesten verbreitete Versuchstechnik auf dem Gebiet der Aerodynamik und werden verwendet, um das Verhalten eines Körpers unter Windeinwirkung zu untersuchen. Es gibt zahlreiche Messsysteme, die es ermöglichen, Daten über Druck, Geschwindigkeit und die Widerstandskräfte zu erhalten, die der Wind auf das Untersuchungsobjekt ausübt. Die korrekte Positionierung sowohl der Geschwindigkeits- und Drucksensoren als auch des Modells selbst ist von entscheidender Bedeutung, um die Wiederholbarkeit und Genauigkeit der erhaltenen Daten zu gewährleisten. Die mit NI-Software und -Hardware angenommene Lösung bietet Robustheit und Zuverlässigkeit im Bewegungssteuerungssystem. Darüber hinaus reduziert die einfache und schnelle Einrichtung der Datenerfassungsgeräte die Einrichtungszeiten für jeden Test.   


Ziele  

Das Hauptziel besteht darin, ein System zu entwickeln, das zwei Bedingungen erfüllt: 1. Steuerung der Positionierung der Sensoren und/oder des Modells, um verschiedene Positionen und Konfigurationen schnell und genau zu untersuchen. 2. Überwachen und Aufzeichnen von Daten von Geschwindigkeits-, Druck-, Temperatursensoren und der dynamometrischen Waage. Schließlich ist beabsichtigt, diese beiden Funktionalitäten in derselben Umgebung zu integrieren, um die Verwendung des Erfassungs- und Kontrollsystems zu erleichtern.   


Beschreibung des Erfassungs- und Kontrollsystems  
 

Abbildung 1 gibt einen Überblick über den Windkanal. Im mittleren Teil sehen Sie den Testbereich, in dem das Modell installiert ist. Im oberen Teil befindet sich ein 3-Achs-Führungssystem. Jede Achse wird von einem Nema 23-Schrittmotor mit integriertem Treiber aus der Serie NI ISM 7400 angetrieben, der es ermöglicht, den Geschwindigkeitssensor (Pitot-Sonde oder Hitzdraht-Anemometer) an jedem beliebigen Punkt (x,y,z) vom Weltraum aus zu positionieren. Im unteren Teil des Testbereichs treibt ein vierter Motor eine Trennplatte an, die es ermöglicht, das Modell in verschiedenen Einfallswinkeln zu drehen. Auf der Indexplatte ist die Dynamometerwaage montiert, die die über den Modellträger übertragenen Widerstandskräfte misst.   


Hardware
  

Es zeigt schematisch das Erfassungs- und Steuersystem. Der Embedded-Controller NI cRIO-9031 ist verantwortlich für die Echtzeitsteuerung der Motoren zusammen mit dem 4-Achsen-Schnittstellenmodul SISU 1004. Jeder Motor wird von einem NI PS-12-Netzteil gespeist und ist über Klemmen mit dem SISU 1004 verbunden SISU RJ-45 Zusätzlich gibt es ein NI-cDAQ-9174-Chassis mit 4 Steckplätzen, das über USB mit dem PC verbunden wird. Um die Signale zu erfassen, die von den Sensoren kommen, die die folgenden Module verwenden; NI 9215 für die Pitot-Sonde, NI 9201 für den Drehmomentausgleich und NI 9219 für den RTD-Temperatursensor und das Anemometer.   


Software
 

Die folgenden Programme wurden verwendet: – NI LabVIEW: Die Projektstruktur hat es cDAQ und cRIO ermöglicht, mit dem PC zu kommunizieren und eine einzige grafische Umgebung zu erzeugen, von der aus die Bewegung gesteuert wird, während die Ergebnisse überwacht werden. Die Programmierung des Codes durch die Verwendung einer Zustandsmaschine ermöglicht die Synchronisation der Tasks. Beispielsweise zeigt Abbildung 3 das generierte Projekt, in dem verschiedene Zustände synchronisiert werden, wie z. Lesen Sie die Koordinate aus einer Textdatei, bewegen Sie sich zu dieser Koordinate, Datenerfassung usw. Auf diese Weise kann der Prozess automatisiert werden, um 2D-Geschwindigkeitskonturen, Grenzschichtstudien, die Messung der Entwicklung der vom Untersuchungsobjekt entwickelten Nachlaufturbulenz oder jede andere Bewegung im Raum durchzuführen. – NI LabVIEW Real-Time und NI Lab-VIEW FPGA: Diese Plattformen sind unerlässlich, um die generierten Trajektorien zu kompilieren und eine Echtzeitsteuerung und Rückmeldung der Motoren durchzuführen. – NI SoftMotion: Die Bibliothek programmierter Bewegungen zur vereinfachten Entwicklung des Bewegungsprofils hat sich als sehr nützlich für die Entwicklung vordefinierter Trajektorien erwiesen.

Es erleichtert die Konfiguration der Achsen erheblich, was eine einfache Einrichtung des Systems bedeutet. Darüber hinaus können Sie durch die Möglichkeit, diese Trajektorien in virtuellen Solidworks-Achsen zu simulieren, vorab überprüfen, ob es zu keinen Kollisionen mit dem Modell oder mit den Wänden des Windkanals kommt.   


Schlussfolgerungen  
 

Die große Vielseitigkeit der NI-Produkte war entscheidend für die Anpassung an die Anforderungen des Projekts. Die Lösung versieht das System mit einer automatisierten Bewegungssteuerung, die in die Überwachung der erfassten Daten integriert ist, und erfüllt so die Ziele, die für die Mehrheit der PIC-Entwickler in C-Sprache gesetzt wurden; schließlich ist dies genau die Art von Details, die Compiler abstrahieren müssen. Dies ist einer der Gründe, warum die MIPS-Zahlen des alten 877er Mikrocontrollers nicht direkt mit den MIPS-Zahlen der neueren F1-Kerne in Tabelle 1 verglichen werden können.  


Änderungen in Unterbrechungen  

Das andere Element der Architektur, das erheblich verbessert wurde, ist das Ausfallmanagementsystem. Während der neue PIC16F1-Kern das ursprüngliche Einzelvektor-Interrupt-Design beibehält, wurde ein neuer Satz von vier Schattenregistern hinzugefügt, um die Sicherungs- und Abrufsequenzen für den Interrupt-Kontext zu optimieren. Listing 1 zeigt den traditionellen PIC16-Prolog/Epilog: Der Standard-Interrupt-Prolog und -Epilog dauerte früher bis zu 56 Taktzyklen. Mit dem neuen Schattenregistermechanismus des PIC16F1 entfällt die Notwendigkeit von zwei Sequenzen vollständig und die Kosten eines Interrupts werden auf die vier Grundzyklen reduziert, die für den CPU-Bypass erforderlich sind. Das Ergebnis ist eine erhebliche Erhöhung der Reaktionsgeschwindigkeit des Mikrocontrollers bzw. seiner Echtzeitfähigkeit um bis zu einer Größenordnung.  


Flexibilität  

Wenn Sie sich das Ende von Tabelle 1 genau ansehen, können Sie eine weitere interessante Tatsache erkennen: Die Anzahl der I/Os allgemeiner Anwendung, die für die beiden Geräte verfügbar sind, ist trotz der angeblichen Kompatibilität zwischen Pins unterschiedlich. Wie sich herausstellt, multiplexen die neuen Geräte drei weitere Pins, die zuvor für einen Quarzoszillator und einen externen Reset reserviert waren und jetzt optional als Allzweck-I/O verfügbar sind. Aber nur wenn Sie tiefer in das Datenblatt graben, finden Sie das wahre Goldnugget: ALLE digitalen Ein-/Ausgänge der Peripherie sind jetzt auf jedem Pin des Geräts gemultiplext! Diese Funktion heißt Peripheral Pin Select (PPS) und bietet den PIC16F18877-Bausteinen und einigen ähnlichen PIC16F1-Familien einen enormen Flexibilitätssprung.

In ähnlicher Weise wird das A/D-Wandlungsmodul auf den neuen PIC16F1-Geräten jetzt mit einem [sehr] großen analogen Eingangsmultiplexer kombiniert, der bis zu 35 der gleichen Pins in mögliche analoge Eingänge umwandelt. In der Praxis bedeutet dies, dass jedes analoge und/oder digitale Signal, das zum/vom Mikrocontroller geleitet wird, nun optimal auf der Leiterplatte geroutet werden kann, um Rauschen zu kontrollieren, die Robustheit zu erhöhen, das Plotten zu vereinfachen und zu beschleunigen und möglicherweise die Anzahl der Schichten zu reduzieren und Wege und trägt damit letztlich zur Kostensenkung bei.  


Kernelunabhängige Peripheriegeräte  

Leider wird die Analyse jeder Zeile in Tabelle 1 niemals das wahre Ausmaß der Funktionsänderung offenbaren, die an den PIC16F1-Geräten der neuesten Generation vorgenommen wurde: das Vorhandensein von Core Independent Peripherals (CIPs). Mehr als jede der Peripheriefunktionen (SMT, HLT, CWG, NCO, CLC etc.), über die wir ganze Bücher schreiben könnten (und hätten) und die im neuen Datenblatt den Großteil der 400 hinzugefügten Seiten einnehmen, Was zählt, ist die Designphilosophie dahinter.  

Die neuen Peripheriegeräte unterscheiden sich dadurch, dass sie darauf ausgelegt sind, direkt miteinander zu kommunizieren und unabhängig vom Kernel autonome Funktionen auszuführen. Abbildung 1 zeigt ein Beispiel, in dem eine Reihe von analogen Peripheriegeräten so konfiguriert sind, dass sie eine Stromversorgungsfunktion (500-kHz-DC/DC-Aufwärtstopologie) bilden, die in der Lage ist, eine Reihe von LEDs mit Konstantstromsteuerung anzusteuern, und ein 16-Bit PWM-Dimmsignal ohne Eingreifen des Mikrocontrollerkerns zur Anfangskonfiguration hinzugefügt.

CIPs bieten Hardwareunterstützung für den Mikrocontroller, um durch die CPU verursachte Systemengpässe zu vermeiden. Wenn CIPs miteinander verbunden werden, um eine Funktion auszuführen, werden Interrupts nicht nur schneller ausgeführt, sondern vollständig aus der Anwendung entfernt. Das Ergebnis ist ein ausgewogeneres Design, bei dem konfigurierbare Hardwareparallelität und -effizienz auf Softwareflexibilität treffen. Darüber hinaus gibt es andere CIPs (in der Abbildung nicht gezeigt), die auf anderen PIC-Mikrocontrollern verfügbar sind und es Entwicklern ermöglichen, die Lösung auszuwählen, die ihren Anforderungen am besten entspricht.


Robustheit

Ein erheblicher Teil der neuen Hardwaremodule im PIC16F18877 dient der Verbesserung der Robustheit des Mikrocontrollers. Die herkömmliche Überwachungsschaltung wird durch ein Fenstersystem ersetzt, das viele skalierbare Optionen bietet. Die Brown-Out-Reset-Schaltung (BOR) verfügt über mehrere Schwellenwerte, Stromsparmodi und eine dedizierte CRC-SCAN-Schaltung, mit der die Integrität des Speicherinhalts im Hintergrund ständig überwacht werden kann, ohne dass dies die Leistung des Mikrocontrollers beeinträchtigt .


Geringer Stromverbrauch

Neben der Aufrechterhaltung der Fähigkeit, bei 5 V zu arbeiten und noch höhere Dauerströme an seine I/Os (bis zu 50 mA) zu liefern, bieten uns die elektrischen Eigenschaften des PIC16F18877-Bausteins viel niedrigere Verbrauchswerte im aktiven Modus (ungefähr ein Faktor von 1,8). vier) beim Arbeiten im gesamten Spannungsbereich (5,5 V – XNUMX V).

Noch beeindruckender ist der Stromverbrauch im passiven (Standby) Modus, der eine Reduzierung um fast zwei Größenordnungen (100x) verspricht. Auch hier verrät erst eine detaillierte Analyse des Gerätedatenblatts Neuigkeiten zu den Features, die die Möglichkeit der Verbrauchssteuerung deutlich präziser erweitern und viele Zwischenmodi (u. a. Idle und Doze) bieten. Auch ein neuer Satz von Registern (PMD) erhöht die Fähigkeit, den Verbrauch zu steuern, so dass jedes Peripheriegerät das maximale Maß an Flexibilität erreicht.


Es hängt alles von den Werkzeugen ab

Alle oben beschriebenen neuen Funktionen sind jedoch möglicherweise in der modernen Designwelt irrelevant, in der die Designkosten von der Markteinführungszeit bestimmt werden, die Designzyklen kontinuierlich sind und alle Anwendungen miteinander verbunden sind. Das wichtigste Merkmal der neuen PIC16F18877-Bausteine ​​könnte die Verfügbarkeit von schnellen Entwicklungstools sein, um die Codegenerierung um eine Größenordnung gegenüber dem, was zuvor möglich war, zu automatisieren und zu beschleunigen.

Die PIC-Mikrocontroller der neuesten Generation werden vom MPLAB® Code Configurator (MCC) unterstützt. Es ist ein Tool, das den langwierigen Prozess der Initialisierung der Peripheriegeräte jedes Geräts um einige Minuten statt um Stunden beschleunigen kann, und einige behaupten, es kann das Lesen des Datenblatts insgesamt (oder zumindest einen Großteil dieser Zeit) überflüssig machen. ). Hinzu kommt eine umfassende Suite von Cloud-basierten Tools, MPLAB Xpress, die zum Testen und Prototyping verfügbar sind und so schnell und einfach wie das Öffnen eines Browsers und das Laden einer einzelnen Webseite machen. Vorbei ist die Notwendigkeit, eine integrierte Entwicklungsumgebung (IDE) und einen Compiler herunterzuladen, die sich auf Hunderte von Megabyte summieren. Die Zeit, die für ihre Installation und Wartung erforderlich ist, ist ebenfalls verschwunden, damit sie korrekt konfiguriert und aktualisiert werden. Jeder kann ein neues Mikrocontroller-Modell evaluieren, indem er ein Projekt (Muster) in wenigen Minuten statt in Stunden öffnet, anpasst und erstellt.


Sie werden eine großartige Gelegenheit verpassen!

Das Engagement von Microchip, Produkte nicht aufzugeben, solange die Nachfrage besteht, gibt Designern die Möglichkeit, die Kontrolle über ihren Innovationszyklus zu übernehmen. Jeder Entwickler kann entscheiden, ob und wann er ein bestehendes Design überarbeiten oder einfach so lassen möchte, wie es ist, und sich stattdessen darauf konzentrieren, neue Produkte zu entwickeln, die neue Geschäftsmöglichkeiten und neue Einnahmen bringen können.

Bei der Einführung eines neuen Designs ist es jedoch wichtig, sich darüber im Klaren zu sein, dass die Auswahl desselben vertrauenswürdigen und authentischen (beliebten) Mikrocontrollers dazu führen kann, dass viele neue Funktionen und Fähigkeiten verpasst werden. Die Beständigkeit des Unternehmens im Laufe der Jahre und sein obsessives Engagement für [Abwärts-] Kompatibilität könnten Sie glauben machen, dass sich die PIC-Mikrocontroller-Architekturen im Laufe der Jahrzehnte nicht wesentlich verändert haben, aber das könnte nicht weiter von der Realität entfernt sein.

CIPs haben das alte Paradigma der eingebetteten Steuerung auf den Kopf gestellt, und neue Cloud- und Codegenerierungstools können die Effizienz des Designprozesses erheblich verbessern. Wenn Sie das nächste Mal die Möglichkeit haben, einen Mikrocontroller für eine neue Anwendung auszuwählen, nehmen Sie sich ein paar Minuten Zeit, um mehr über die neueste PIC-Mikrocontroller-Familie* zu erfahren, sonst verpassen Sie sicher etwas sehr Wichtiges! (*Hinweis: Teilenummer beginnt mit PIC16F1 gefolgt von vier Ziffern)


Stichworte
Bild 16f877