PIC-Mikrocontroller

FONT SIZE:
fontsize_dec
fontsize_inc
März 30, 2016 Anke Rickert P 0 49

PIC ist eine Familie von modifizierten Harvard-Architektur-Mikrocontroller von Microchip Technology hergestellt, aus dem PIC1650 ursprünglich von Mikroelektronik Abteilung General Instrument entwickelt, abgeleitet. Der Name PIC eingangs genannten "Peripheral Interface Controller" jetzt ist es "PIC" nur.

PICs sind aufgrund ihrer niedrigen Kosten, breite Verfügbarkeit, große Nutzerbasis, umfangreiche Sammlung von Anwendungshinweisen, Verfügbarkeit von kostengünstigen oder kostenlosen Entwicklungswerkzeuge und serielle Programmierfähigkeit mit beiden industrielle entwickler und Hobbyisten gleichermaßen beliebt.

Geschichte

Die ursprüngliche PIC wurde gebaut, um mit General Instrument der neuen CP1600 16-Bit-CPU verwendet werden. Während in der Regel eine gute CPU hatte die CP1600 schlechte E / A-Leistung, und die 8-Bit-PIC wurde 1975 entwickelt, um die Leistung des Gesamtsystems durch Auslagerung I / O-Aufgaben von der CPU zu verbessern. Der PIC verwendet einfache Microcode im ROM gespeichert, um ihre Aufgaben zu erfüllen, und obwohl der Begriff wurde nicht zu der Zeit verwendet wird, teilt es einige gemeinsame Merkmale mit RISC-Designs.

Im Jahr 1985 drehte General Instrument ihre Mikroelektronik Division und die neuen Eigentümer aufgehoben fast alles, was bis zu diesem Zeitpunkt war meistens out-of-date. Der PIC wurde jedoch mit einem internen EPROM, ein programmierbarer Kanalcontroller erzeugen wertet. Heute ist eine Vielzahl von PICs sind mit verschiedenen On-Board-Peripheriegeräten und Programmspeicher von 256 Worten, um 64k Worten und mehr.

PIC und PICmicro sind eingetragene Marken von Microchip Technology. Es wird allgemein angenommen, dass PIC steht für Peripheral Interface Controller, obwohl General Instruments 'original Akronym für den Anfangs PIC1640 und PIC1650 Geräten war "Programmable Interface Controller". Das Akronym wurde schnell mit "Programmable Intelligent Computer" ersetzt.

Der Microchip 16C84, 1993 eingeführt, war die erste Microchip CPU mit On-Chip-EEPROM-Speicher. Diese elektrisch löschbaren Speicher machte es weniger als CPUs, die einen Quarz "löschen Fenster" zum Löschen von EPROM benötigt kosten.

Bis 2013 Microchip wurde Versand über eine Milliarde PIC-Mikrocontroller jedes Jahr.

Core-Architektur

Das PIC-Architektur zeichnet sich durch mehrere Attribute gekennzeichnet:

  • Separate Code und Datenräumen.
  • Eine kleine Anzahl von Befehlen festgelegter Länge
  • Die meisten Befehle sind Single-Cycle-Ausführung, mit einem Verzögerungszyklus auf Zweigen und überspringt
  • Einen Akkumulator, dessen Verwendung impliziert
  • Alle RAM-Speicherstellen fungieren als Register als Quelle und / oder Bestimmung der Mathematik und andere Funktionen.
  • Ein Hardware-Stack zum Speichern von Absenderadressen
  • Eine kleine Menge von adressierbaren Datenraum über das Bank- ausgedehnt
  • Datenraum abgebildet CPU, Port und peripheren Registern
  • ALU-Statusflags in den Datenraum abgebildet
  • Der Programmzähler wird ebenfalls in den Datenraum und beschreibbare abgebildet.

Es ist kein Unterschied zwischen Speicherraum und Registerraum, da der RAM dient die Arbeit sowohl der Speicher und die Register, und das RAM ist in der Regel nur als Registerdatei oder einfach als Register bezeichnet.

Datenraum

PICs haben einen Satz von Registern, die als Allzweck-RAM funktionieren. Sonder-Steuerregister für On-Chip-Hardware-Ressourcen sind auch in den Datenraum abgebildet. Die Adressierbarkeit Speicher variiert je nach Geräteserie je, und alle PIC-Geräte haben einige Bankenmechanismus zu verlängern Adressierung an zusätzlichen Speicher. Später Reihe von Geräte verfügen bewegen Anweisungen, die die gesamte Adressraum, unabhängig von der ausgewählten Bank abdecken kann. In früheren Geräten, hatten jede Register Umzug nach über den Akkumulator erzielt werden.

Zur Umsetzung der indirekten Adressierung ", wählen Sie Datei zu registrieren" ein und "indirekter Register" verwendet. Eine Registernummer an die FSR geschrieben, danach liest oder schreibt INDF tatsächlich zu oder aus dem Register, auf das durch FSR ist. Später Geräte erweitert dieses Konzept mit Post- und Pre- Inkrement / Dekrement für mehr Effizienz beim Zugriff sequentiell gespeicherten Daten. Dies ermöglicht auch FSR fast wie ein Stapelzeiger behandelt werden.

Externen Datenspeicher nicht direkt adressierbar außer in einigen hohen Pinzahl PIC18-Geräte.

Coderaum

Die Coderaum wird allgemein als ROM, EPROM oder Flash-ROM implementiert. In der Regel externe Codespeicher wird nicht direkt durch das Fehlen einer externen Speicherschnittstelle adressierbar. Die Ausnahmen sind PIC17 und wählen hoher Pinzahl PIC18-Geräte.

Wortgröße

Alle Fotos hand Daten in 8-Bit-Blöcken. Allerdings ist die Einheit der Adressierbarkeit des Coderaum im Allgemeinen nicht das gleiche wie das Datenraum. Zum Beispiel PICs in der Baseline-und Mid-Range Familien Programmspeicher adressierbare in der gleichen Wortgröße als Befehlsbreite, dh 12 oder 14 Bit. Hingegen in der PIC18 Serie, der Programmspeicher in 8-Bit-Schritten, die von der Befehlsbreite von 16 Bits unterscheidet gerichtet.

Um klar zu sein, wird das Programm Speicherkapazität in der Regel in Anzahl der Befehle angegeben, anstatt in Byte.

Stacks

PICs haben einen Hardware-Call-Stack, der verwendet wird, um Rücksprungadressen zu speichern. Die Hardware-Stapel nicht Software auf älteren Geräten zu erreichen, aber das änderte sich mit der 18-Serie-Geräte.

Hardware-Unterstützung für eine Allzweck-Parameter-Stack fehlte in der frühen Serie, aber das stark in der Reihe 18 verbessert, so dass der 18-Serie Architektur freundlicher Hochsprache-Compiler.

Befehlssatz

A pic Angaben variieren von etwa 35 Anweisungen für die Low-End-PICs auf über 80 Anweisungen für die High-End-PICs. Der Befehlssatz Befehle enthält, um eine Vielzahl von Operationen an Registern direkt der Akkumulator und eine Literalkonstante oder der Akkumulator und ein Register, als auch für eine bedingte Ausführung, und Programmverzweigung ausführen.

Einige Operationen, wie Bit-Einstellung und Prüfung, kann auf jeder nummerierte Register durchgeführt werden, aber alle zwei Operanden arithmetische Operationen beinhalten immer W, schreibt das Ergebnis zurück in entweder W oder des anderen Operandenregister. Um eine konstante Last, ist es notwendig, sie in W zu laden, bevor es in einem anderen Register verschoben werden. Auf älteren Kernen, alle Register benötigt bewegt sich durch W passieren, aber das änderte sich an den "High-End" Cores.

PIC Kerne überspringen Anweisungen, die für die bedingte Ausführung und Verzweiger eingesetzt werden. Die Skip-Befehle 'überspringen, wenn Bit gesetzt "und" überspringen, wenn nicht gesetzt ". Weil Kerne vor PIC18 hatte nur unbedingten Sprungbefehlen, sind bedingte Sprünge von einem bedingten Sprung gefolgt von einer unbedingten Verzweigung implementiert. Skips sind auch von Nutzen für die bedingte Ausführung von Soforteinzel folgende Anleitung. Es ist möglich, Sprunganweisungen überspringen. Beispielsweise kann die Befehlsfolge "überspringen, wenn A, überspringen, wenn B; C" wird ausgeführt, C, wenn A wahr ist oder wenn B falsch ist.

Die Serie 18 implementiert Schattenregister, die während einer Unterbrechung mehrere wichtige Register zu speichern, bietet Hardware-Unterstützung für das automatische Speichern Prozessorzustand bei der Wartung Interrupts.

In der Regel fallen PIC Anleitung in 5 Klassen:

  • Betrieb am Arbeitsregister mit 8-Bit-Direktoperanden. Z.,. Eine Anweisung typisch für die PIC ist, Last sofort in WREG und zurück, die mit berechnet verzweigt in Lookup-Tabellen verwendet wird.
  • Der Betrieb mit WREG und indizierten Register. Das Ergebnis kann entweder an das Arbeitsregister geschrieben werden. oder die ausgewählte Register.
  • Bit-Operationen. Diese nehmen eine Registernummer und eine Bitnummer, und führen Sie eine der 4 Aktionen: setzen oder zu löschen ein bisschen, und Test und fahren am Set / clear. Letztere werden zur bedingten Verzweigungen auszuführen. Die üblichen ALU-Statusflags sind in einer nummerierten Register so Operationen wie "Zweig auf carry clear" sind möglich.
  • Die Steuerung geht. Andere als die zuvor genannten Sprunganweisungen, gibt es nur zwei, und.
  • Ein paar verschieden Null-Operanden-Befehle, wie beispielsweise Rückkehr von Unterprogramm, und Low-Power-Modus zu gelangen.

Leistung

Die architektonischen Entscheidungen auf der Maximierung der Geschwindigkeit-to-Cost-Verhältnis gerichtet. Das PIC-Architektur war einer der ersten Skalar-CPU-Designs und ist immer noch zu den einfachste und billigste. Die Harvard-Architektur, bei der Instruktionen und Daten aus getrennten Quellen vereinfacht Timing und Mikroschaltungsentwurf erheblich und dieser nützt Taktgeschwindigkeit, den Preis und den Stromverbrauch.

Das PIC-Befehlssatz wird um die Umsetzung der schnellen Lookup-Tabellen im Programmraum geeignet. Solche Suchvorgänge nehmen einen Befehl und zwei Befehlszyklen. Viele Funktionen lassen sich auf diese Weise modelliert werden. Die Optimierung wird durch die relativ große Programmraum des PIC und durch das Design des Befehlssatzes, der für eingebettete Konstanten ermöglicht erleichtert. Zum Beispiel können Ziel ein Verzweigungsbefehl ist durch W indiziert werden, und führen Sie eine "RETLW", die, wie es genannt wird, hat - Rückkehr mit wörtlichen in W.

Interrupt-Latenzzeit ist auf drei Befehlszyklen konstant. Externe Interrupts, mit dem Viertaktbefehlszyklus synchronisiert werden, sonst kann es ein einem Befehlszyklus Jitter. Interne Unterbrechungen werden bereits synchronisiert. Die ständige Interrupt-Latenzzeit ermöglicht PICs, um unterbrechungsgesteuerte niedrigem Jitter Timing-Sequenzen zu erreichen. Ein Beispiel hierfür ist ein Video-Sync-Impulsgenerator. Dies gilt nicht mehr, in den neuesten PIC Modelle, da sie einen synchronen Interrupt-Latenzzeit von drei oder vier Zyklen aufweisen.

Vorteile

  • Kleine Befehlssatz zu lernen
  • RISC-Architektur
  • In Oszillator mit wählbaren Geschwindigkeiten Eingebaute
  • Easy-Entry-Level, In-Circuit-Programmierung und In-Circuit-Debugging PICKit Einheiten verfügbar für weniger als $ 50
  • Preiswert-Mikrocontroller
  • Große Auswahl an Schnittstellen wie I²C, SPI, USB, USART, A / D, programmierbare Komparatoren, PWM, LIN, CAN, PSP, und Ethernet-
  • Verfügbarkeit der Prozessoren im DIL-Gehäuse machen sie einfach, für Hobbyzwecke zu behandeln.

Begrenztheit

  • Einen Akkumulator
  • Registerbankumschaltung erforderlich ist, das gesamte RAM vieler Geräte zugreifen
  • Operationen und Registern nicht orthogonal sind; Einige Befehle können RAM und / oder unmittelbaren Konstanten anzugehen, während andere den Akkumulator nur.

Die folgenden Stack Einschränkungen wurden in der PIC18-Serie angesprochen worden, aber immer noch gelten für frühere Adern:

  • Die Hardware-Call-Stack ist nicht adressierbar, so dass präventive Aufgabenwechsel nicht umgesetzt werden können
  • Software-implementierte Stacks sind nicht effizient, so dass es schwierig ist, reentrant-Code zu generieren und unterstützen lokale Variablen

Mit ausgelagerten Programmspeicher gibt es zwei Seitengrößen zu kümmern: eine für CALL-und GOTO und eine andere für berechnete GOTO. Zum Beispiel auf PIC16 CALL und GOTO haben 11 Bit-Adressierung, so dass die Seitengröße ist 2048 Befehlswörter. Für berechnet GOTOs, wo Sie PCL hinzufügen, ist die Seitengröße 256 Befehlswörter. In beiden Fällen werden die oberen Adressbits vom PCLATH Register vorgesehen. Dieses Register muss jedes Mal die Steuerung zwischen den Seiten gewechselt werden. PCLATH müssen auch bei einer Unterbrechungsroutine erhalten.

Compiler Entwicklung

Während mehrere kommerzielle Compiler zur Verfügung stehen, im Jahr 2008, Microchip veröffentlicht ihre eigene C-Compiler, C18 und C30, für die Linie der 18F 24F und 30 / 33F Prozessoren.

Ab 2013 bietet Microchip ihre XC Serie von Compilern, für die Verwendung mit MPLAB X. Microchip wird schließlich Ausstieg aus ihrer älteren Compilern wie C18, und empfiehlt die Verwendung ihrer XC Serie Compiler für neue Designs.

Die einfach zu RISC-Befehlssatz des PIC-Assembler-Code lernen kann der Gesamtfluss schwer verständlich zu machen. Gezielte Einsatz von einfachen Makros können die Lesbarkeit der PIC-Assembler-Sprache zu erhöhen. Zum Beispiel hat die ursprüngliche Parallax PIC Assembler-Makros, die W verbergen und die PIC aussehen wie ein Zwei-Adresse des Geräts. Es verfügt über Makrobefehle wie "" und "". Es verbirgt sich auch die Sprunganweisungen durch Drei-Operanden Zweigmakrobefehle wie "".

Familie Kern architektonischen Unterschiede

PICmicro-Chips haben eine Harvard-Architektur, und Befehlsworte sind ungewöhnliche Größen. Ursprünglich umfasste 12-Bit-Befehle 5 Adressbits, um den Speicheroperanden angeben und 9-Bit-Verzweigungsziele. Spätere Revisionen hinzugefügt Opcode-Bits, so dass zusätzliche Adreßbits.

Baseline-Core-Geräte

Diese Geräte verfügen über einen 12-Bit breiten Code-Speicher, eine 32-Byte-Register-Datei, und eine winzige zwei Ebenen tief Call-Stack. Sie werden durch die PIC10 Reihe sowie von einigen PIC12 und PIC16 Vorrichtungen dargestellt. Baseline-Geräte sind in 6-Pin auf 40-Pin-Gehäusen.

Im Allgemeinen sind die ersten 7-9 Bytes der Registerdatei sind Spezialzweckregistern, und die restlichen Bytes werden Allzweck-RAM. Zeiger werden mit einem Registerpaar implementiert: nach dem Schreiben eine Adresse an den FSR, wird die INDF Register einen Alias ​​für den adressierten Register. Wenn Steil RAM implementiert ist, wird die Banknummer durch die hohen 3 Bits des FSR gewählt. Dies wirkt sich auf Registernummern 16-31; Register 0-15 sind global und nicht von den Bankauswahlbits betroffen.

Wegen der sehr begrenzten Registerraum wurden 4 selten Leseregister nicht-Adressen zugewiesen, sondern durch besondere Anweisungen geschrieben.

Der ROM-Adressraum ist 512 Worte, die zu 2048 Worte Banken verlängert werden kann. und Anweisungen geben die niedrigen 9 Bits des neuen Codes Ort; zusätzliche Bits hoher Ordnung werden von dem Statusregister übernommen. Beachten Sie, dass eine CALL-Anweisung enthält nur 8-Bit-Adresse, und dürfen nur Adressen angeben in der ersten Hälfte eines jeden 512-Wort-Seite.

Lookup-Tabellen werden mit einem berechneten in eine Tabelle von Befehlen implementiert.

Der Befehlssatz ist wie folgt. Registernummern werden als "f" bezeichnet, während Konstanten werden als "k" bezeichnet. Bit-Zahlen werden durch "b" ausgewählt. Das "d" Bit wählt den Ziel: 0 zeigt W, während 1 bedeutet, dass das Ergebnis wird wieder in Quellregister f geschrieben. Die C- und Z-Statusflags kann auf Grundlage des Ergebnisses festgelegt werden; sonst sind sie unverändert. Addieren und subtrahieren Anweisungen, C auch die DC-Flag, den Übertrag von Bit 3 bis Bit 4, die nützlich für die BCD-Arithmetik ist eingestellt.

ELAN Microelectronics Klone

ELAN Microelectronics Corp. machen eine Reihe von PICmicro-like-Mikrocontroller mit 13-Bit-Befehlswort. Die Anweisungen sind weitgehend kompatibel mit der Mid-Range-14-Bit-Befehlssatz, sondern beschränkt sich auf eine 6-Bit-Register-Adresse und einer 10-Bit-Programm Raum.

Die 10-Bit-Programmzähler ist zugänglich wie R2. Liest Zugang nur die Low-Bits, und schreibt deaktivieren Sie die High-Bits. Eine Ausnahme ist die TBL-Befehl, der die Low-Byte ändert unter Wahrung Bits 8 und 9.

Die 7-Akkumulator unmittelbaren Anweisungen in Bezug auf die 14-Bit PICmicro neu nummeriert, um in 3 Operationscodebits anstatt 4 zu passen, aber sie sind alle da, sowie ein zusätzliches Software-Interrupt-Befehl gibt.

Es gibt ein paar zusätzliche sonstige Anweisungen, und es gibt einige Änderungen an der Terminologie, aber die Mittel sind offensichtlich.

*: Same Opcode als 12-Bit-PIC
†: Anweisung eindeutig EM78-Befehlssatz ohne PIC gleichwertige

Einige Modelle unterstützen mehrere ROM oder RAM Banken, in einer ähnlichen Weise wie andere PIC-Mikrocontroller.

Mid-Range-Core-Geräte

Diese Geräte verfügen über einen 14-Bit breiten Code-Speicher und ein verbessertes 8 Ebene tiefer Call-Stack. Der Befehlssatz unterscheidet sich kaum von der Grundlinie Geräte, aber die 2 zusätzlichen Opcode-Bits erlauben 128 Register und 2048 Worte Code direkt angesprochen werden. Es gibt ein paar zusätzliche sonstige Anweisungen und zwei weitere 8-Bit-wörtliche Anweisungen, addieren und subtrahieren. Die Mid-Range-Kern ist in der Mehrzahl der Geräte markiert PIC12 und PIC16.

Die ersten 32 Bytes des Registerraums auf besonderen Zweckregister zugeordnet ist; die restlichen 96 Byte sind für allgemeine Zwecke RAM verwendet. Wenn Steil RAM verwendet wird, sind die hohen 16 Register global, so sind ein paar der wichtigsten Spezialregister, einschließlich des Status-Register, das die RAM-Bank-Select-Bits enthält.

Die PCLATH Register liefert High-order Befehlsadresse Bits, wenn die 8 Bits durch einen Schreibvorgang in den PCL-Register zugeführt wird, oder die 11 Bits, die durch ein oder Anweisung zugeführt wird, reicht nicht aus, um die verfügbaren ROM Raum anzugehen.

Verbesserte Mid-Range-Core-Geräte

Verbesserte Mid-Range-Core-Geräte einzuführen, ein tieferes Hardware-Stapel, zusätzliche Rücksetzverfahren, 14 zusätzliche Anweisungen und "C" Programmiersprache Optimierungen. Insbesondere. zwei und zwei entsprechende Registerpaaren. Spezielle Anweisungen verwenden Registern wie Adressregister, mit einer Vielzahl von Adressierungsarten.

PIC17 High-End-Core-Geräte

Die 17-Serie wurde nie populär und wurde von der PIC18 Architektur abgelöst. Es ist nicht für neue Designs empfohlen, und die Verfügbarkeit können begrenzt werden.

Verbesserungen gegenüber früheren Kerne sind 16-Bit breite Befehlscodes, und ein 16-Ebene tiefer Call-Stack. PIC17-Geräte wurden in Paketen von 40 bis 68 Stifte produziert.

Die 17-Serie eingeführt, eine Reihe von wichtigen neuen Funktionen:

  • einen Speicher abgebildet Speicher
  • Lesezugriff auf Codespeicher
  • Direkt Register bewegt sich zu registrieren
  • ein externes Programm-Speicherschnittstelle, um die Code-Raum ausbauen
  • eine 8-Bit · 8-Bit-Hardware-Multiplizierer
  • einen zweiten indirekten Registerpaar
  • Auto-Inkrement / Dekrement-Adressierung durch Steuerbits in einem Statusregister gesteuert

PIC18 High-End-Core-Geräte

Im Jahr 2000 führte die Microchip PIC18 Architektur. Im Gegensatz zu den 17-Reihe, hat es sich als sehr beliebt, mit einer großen Anzahl von Gerätevarianten gegenwärtig bei der Herstellung. Im Gegensatz zu früheren Geräten, die mehr als oft nicht in der Montage programmiert waren, C hat sich die vorherrschende Entwicklungssprache.

Die Serie 18 erbt die meisten Funktionen und Anweisungen des 17-Serie, während es eine Reihe von wichtigen neuen Funktionen:

  • Call-Stack ist 21 Bit breit und viel tiefer
  • die Call-Stack kann gelesen und geschrieben werden
  • bedingte Verzweigungsbefehle
  • indizierten Adreßmodus
  • Verlängerung der FSR-Register zu 12 Bits, so dass sie den gesamten Daten Adreßraum linear adressieren
  • die Zugabe von anderen FSR Register

Der RAM-Speicher ist 12 Bits, mit einem 4-Bit-Bankauswahlregister und ein 8-Bit-Offset in jedem Befehl gerichtet. Eine zusätzliche "access" Bit in jedem Befehl wählt zwischen Bank 0 und dem von der BSR ausgewählten Bank.

A 1-Level-Stack ist auch für die STATUS zur Verfügung, WREG und BSR registriert. Sie werden gespeichert, auf jeden zu unterbrechen, und kann bei der Rückkehr wieder hergestellt werden. Wenn Interrupts deaktiviert sind, können sie auch auf Unterprogramm-Aufruf / Rückkehr, indem Sie den s-Bit verwendet werden.

Die Auto-Inkrement / Dekrement-Funktion wurde durch Entfernen der Steuer-Bits und das Hinzufügen von vier neuen indirekten Register pro FSR verbessert. Je nachdem, welche indirekten Dateiregister zugegriffen wird es möglich, postdecrement, Postinkrement oder Prä-FSR; oder bilden die effektive Adresse durch Zugabe von W bis FSR.

In fortgeschritteneren PIC18-Geräte, ist ein "Erweiterten Modus" zur Verfügung, was die Adressierung noch günstiger zu kompilierten Code:

  • eine neue Offset-Adressierungsmodus; Einige Adressen, die relativ zu dem Zugangs Bank waren, sind nun relativ zu dem FSR2 Register interpretiert
  • die Zugabe von mehreren neuen Anweisungen, zeichnen sich die Manipulation der FSR-Register.

Diese Veränderungen wurden in erster Linie zur Verbesserung der Effizienz einer Daten Stack-Implementierung ab. Wenn FSR2 wird entweder als Stapelzeiger oder Rahmenzeiger verwendet, Stapel Gegenstände leicht indiziert werden eine effizientere Wiedereintrittscode. Microchip MPLAB C18 C-Compiler wählt FSR2 als Rahmenzeiger zu verwenden.

PIC24 und dsPIC 16-Bit-Mikrocontroller

2001 führte die Microchip dsPIC Reihe von Chips, die Massenproduktion Ende 2004 trat sie sind von Natur aus Microchip ersten 16-Bit-Mikrocontroller. PIC24 Geräte sind als Allzweck-Mikrocontroller entwickelt. dsPIC-Geräte zählen digitale Signalverarbeitungsfähigkeiten zusätzlich.

Obwohl immer noch ähnlich wie zuvor PIC-Architekturen gibt es deutliche Verbesserungen:

  • Alle Register sind 16 Bit breit
  • Datenadressraum auf 64 KB erweitert
  • Ersten 2 KB ist für periphere Steuerregister vorbehalten
  • Datenbankumschaltung ist nicht erforderlich, es sei denn, RAM 62 KB überschreitet
  • "f Operanden" direkten Adressierung auf 13 Bits erweitert
  • 16 W Register für Register-Register-Operationen zur Verfügung.
  • Programmzähler 22 Bit
  • Anweisungen sind 24 Bit breit
  • Anweisungen kommen in Byte und Wortformen
  • Stack ist im RAM; gibt es keine Hardware-Stapel
  • W14 ist die Frame-Pointer
  • Im ROM gespeicherten Daten können direkt angesprochen werden
  • Interrupt-Vektoren für verschiedene Interrupt-Quellen unterstützt.

Einige Funktionen sind:

  • Hardware-MAC-
  • Barrel Verschiebung
  • Bit-Auflösung
  • Bit-Single-Cycle Multiplikation und andere DSP-Operationen
  • Hardware-Kluft zu unterstützen
  • Hardware-Unterstützung für Schleife Indexierung
  • Direktspeicherzugriffs

dsPICs kann in C mit Microchips XC16 Compiler, der eine Variante des GCC ist programmierbar.

Befehls-ROM ist 24 Bit breit. Software kann ROM in 16-Bit-Worten, wo sogar Worten halten die niedrigstwertigen 16 Bits jedes Befehls, und ungerade Worten halten die höchstwertigen 8 Bits zuzugreifen. Die hohe Hälfte ungerade Worte lautet null. Der Programmzähler 23 Bits breit, aber das niedrigstwertige Bit ist immer 0, so gibt es 22 Bits modifizierbar.

Anweisungen kommen in 2 Hauptvarianten. Eine ist wie die klassischen PIC Anweisungen gegeben, die eine Operation zwischen W0 und einem Wert in einem bestimmten Register e, und einem Ziel-Auswahlbit auszuwählen, welche mit dem Ergebnis aktualisiert wird. Die W-Register sind Memory-Mapped. so dass die f Operanden kann jedes W-Register sein,

Die andere Form, neu in der PIC24, legt 3 W Registeroperanden, von denen 2 ein 3-Bit-Adressierungsmodus-Spezifikation erlaubt:

Das Register Offset-Adressierungsmodus ist nur für 2-Operanden-Befehle zur Verfügung. 3-Operanden-Befehle verwenden Ww als zweiten Quellenoperanden, und verwenden Sie diese Codierung für ein unsigned 5-Bit-Direktquelle. Beachten, dass die gleiche Ww kann sowohl Wd und Ws zugesetzt werden.

Ein paar Anweisungen sind 2 Worte lang. Das zweite Wort ist ein NOP, das bis zu 16 Bits der zusätzlichen Direktoperanden enthält.

PIC32 32-bit Mikrocontroller

Im November 2007 führte die neue Microchip PIC32MX Familie von 32-Bit-Mikrocontroller. Die anfängliche Einrichtung Line-up wird auf dem Industriestandard MIPS32 M4K Kern. Das Gerät kann mit Hilfe der Microchip MPLAB C Compiler für PIC32-MCUs, einer Variante des GCC-Compiler programmiert werden. Die ersten 18 Modelle, die gerade in Produktion sind Pin zu Pin-kompatibel und haben die gleichen Peripheriegeräte mit dem PIC24FxxGA0xx Familie von Geräten, die die Verwendung von gemeinsamen Bibliotheken, Software-und Hardware-Tools gesetzt. Heute findet ab 28 pin in kleinen QFN-Gehäusen bis zu Hochleistungs-Geräte mit Ethernet, CAN und USB-OTG, vollständige Familie Reihe von Mid-Range-32-Bit-Microcontroller zur Verfügung stehen.

Die PIC32 Architektur bringt eine Reihe von neuen Features, um Microchip-Portfolio, einschließlich:

  • Die höchsten Ausführungsgeschwindigkeit 80 MIPS
  • Die größten Flash-Speicher: 512 KB
  • Einen Befehl pro Taktzyklus Ausführung
  • Der erste Prozessor zwischengespeichert
  • Erlaubt die Ausführung von RAM
  • Full Speed ​​Host / Doppelrolle und OTG USB-Fähigkeiten
  • Voll JTAG und 2-Draht-Programmierung und Debugging
  • Echtzeit-Trace

Ein bevorstehendes Produkt von Microchip ist die PIC32MZ Mikrocontroller-Familie.

Gerätevarianten und Hardware-Features

PIC-Bausteine ​​verfügen über:

  • Schlafmodus
  • Watchdog-Timer
  • Verschiedener Kristall oder RC-Oszillator-Konfigurationen, oder ein externes Takt

Varianten

Innerhalb einer Serie, gibt es noch viele Gerätevarianten je nachdem, welche Hardware-Ressourcen der Chip Eigenschaften:

  • General Purpose I / O-Pins
  • Interne Taktoszillatoren
  • 8/16/32 Bit Timer
  • Internen EEPROM-Speicher
  • Synchron- / Asynchronous Serial Interface USART
  • MSSP Peripheral für I²C und SPI-Kommunikation
  • Capture / Compare und PWM-Module
  • Analog-Digital-Umsetzer
  • USB, Ethernet, CAN-Schnittstellen-Unterstützung
  • Externe Speicherschnittstelle
  • Integrierte analoge HF-Frontends.
  • KEELOQ Rolling-Code-Verschlüsselung Peripherie
  • Und viele mehr

Trends

Die erste Generation von Bildern mit EPROM-Speicher werden fast vollständig von Chips mit Flash-Speicher ersetzt. Ebenso hat die ursprüngliche 12-Bit-Befehlssatz des PIC1650 und seine direkte Nachkommen von 14-Bit und 16-Bit-Befehlssätze ersetzt. Microchip noch verkauft OTP und Fensterversionen einiger seiner EPROM basierend PICs für Legacy-Unterstützung oder Volumenaufträge. Der Microchip Website listet PICs, die nicht löschbaren als OTP sind elektrisch. UV-löschbaren Fenster Versionen dieser Chips können bestellt werden.

Teilenummer-Suffixe

Die F in einem Namen in der Regel zeigt der PICmicro nutzt Flash-Speicher und kann elektronisch gelöscht werden. Umgekehrt bedeutet eine C im allgemeinen kann sie nur durch Belichten der Matrize mit ultraviolettem Licht gelöscht werden. Eine Ausnahme von dieser Regel ist die PIC16C84 das EEPROM verwendet und ist somit elektrisch löschbaren.

Ein L im Namen zeigt das Teil bei einer niedrigeren Spannung mit Frequenzgrenzen auferlegt laufen, oft.

Teile speziell für Niederspannungsbetrieb innerhalb eines strikten Bereich von 3 entwickelt, - 3,6 Volt, mit einem J in der Teilenummer gekennzeichnet. Diese Teile sind auch eindeutig I / O tolerant, wie sie bis zu 5 V als Eingänge zu akzeptieren.

PIC-Klone

Drittherstellern machen kompatible Produkte, beispielsweise die Parallax SX.

Entwicklungswerkzeuge

Microchip bietet eine Freeware-IDE-Paket namens MPLAB, die einen Assembler, Linker, Software-Simulator und Debugger beinhaltet. Sie verkaufen auch C-Compiler für die PIC18 und dsPIC, die sauber mit MPLAB integrieren. Kostenlose Studentenversionen der C-Compiler sind auch mit allen Funktionen. Aber für die freien Versionen, werden Optimierungen nach 60 Tagen deaktiviert zu sein.

Mehrere Dritte machen Sprache C-Compiler für PICs, von denen viele zu integrieren, um MPLAB und / oder verfügen über eine eigene IDE. Eine voll funktionsfähige Compiler für die PICBASIC Sprache auf PIC-Mikrocontroller zu programmieren ist von melabs bietet Inc. Mikroelektronika PIC-Compiler in C, Basic und Pascal Programmiersprachen.

Eine grafische Programmiersprache, Flowcode existiert in der Lage, die Programmierung 8 und 16 Bit PIC-Geräte und zum Erzeugen von PIC kompatiblen C-Code. Es gibt sie in zahlreichen Varianten von einem kostenlosen Demo zu einem vollständigeren Professional Edition.

Die einzige Opensource-Compiler für die PIC16 und PIC18-Familie ist die SDCC. Es nutzen gputils für Linker und Assembler Werkzeugen. Ein Plugin ist erforderlich, um sie in MPLAB oder MPLABX installieren.

Entwicklungswerkzeuge sind für die PIC fam verfügbarmily unter der GPL oder andere freie Software oder Open-Source-Lizenzen.

Programmiergeräte

Devices namens "Programmierer" werden traditionell verwendet, um Programmcode in die Ziel PIC zu bekommen. Die meisten, die Microchip PICs derzeit verkaufen Merkmal ICSP und / oder LVP-Funktionen, so dass der PIC programmiert werden, während es in der Zielschaltung sitzt. ICSP Programmierung erfolgt über zwei Stifte, Takt und Daten, während eine hohe Spannung auf der Vpp / MCLR Pin vorhanden ist. Niederspannungs-Programmierung entfällt die hohe Spannung, sondern behält ausschließliche Verwendung eines I / O-Pin und somit deaktiviert, um den Stift für andere Verwendungen gewinnen.

Es gibt viele Programmierer für PIC-Mikrocontroller, die von den extrem einfache Designs, die auf ICSP verlassen, um den Film ruckelfrei und der Code von einem Host-Computer, um intelligente Programmierer, der das Gerät an mehreren Versorgungsspannungen überprüfen kann ermöglichen. Viele dieser komplexen Programmierer verwenden einen vorprogrammierten PIC sich, die Programmierbefehle, die dem PIC, die programmiert werden soll zu senden. Die intelligente Art der Programmierer benötigt wird, um frühere PIC Modelle, die nicht unterstützen In-Circuit-Programmierung programmieren.

Viele der höheren End-Flash-basierte PICs können auch selbst Programm. Demo-Boards sind mit einem kleinen Bootloader Werk programmiert, die verwendet werden können, um Benutzerprogramme über eine Schnittstelle zu laden, wie beispielsweise RS-232- oder USB, wodurch die Notwendigkeit für eine Programmiervorrichtung. Alternativ gibt es Bootloader Firmware zur Verfügung, dass der Benutzer auf den PIC mit ICSP laden. Die Vorteile eines Bootloader über ICSP ist die weit überlegenen Programmiergeschwindigkeiten unmittelbaren Programmausführung folgende Programmierung, und die Fähigkeit, sowohl Debug- und Programm über die gleichen Kabel.

Programmierer / Debugger auf Anfrage direkt von Microchip. Dritte Programmierer reichen von Plänen, um Ihre eigenen zu bauen, um die Selbstorganisation Kits und ready-to-go-Einheiten vollständig getestet. Einige sind einfache Konstruktionen, die einen PC benötigen, um die Low-Level-Programmierung Signalisierung zu tun, während andere die Programmlogik in sie aufgebaut haben.

Die folgenden sind die offizielle PICkit Programmer / Debugger von Microchip:

PICKit 2 Klonen und Open-Source-

PICKit 2 war eine interessante PIC Programmierer von Microchip. Es kann die meisten PICs und Debug meisten PICs zu programmieren. Seit seiner ersten Veröffentlichungen, die alle Software-Quellcode und Hardware schema sind für die Öffentlichkeit zugänglich. Dies macht es relativ einfach für ein Endbenutzer, die Programmierer für die Verwendung mit einem Nicht-Windows-Betriebssystem wie Linux oder Mac OS zu ändern. In der Zwischenzeit, schafft es auch viele DIY Zinsen und Klonen. Das Open-Source-Struktur bringt viele Funktionen, um die PICKit 2 Gemeinschaft wie Programmer-to-Go, die UART-Tool und die Logic-Tool, das von PICKit 2 Benutzern beigetragen wurden. Benutzer haben auch die PICKit 2 hinzugefügt Funktionen wie 4MB Programmer-to-go-Fähigkeit, USB-Buck / Boost-Schaltungen, RJ12-Buchsen und andere.

Debugging

Software-Emulation

Kommerzielle und kostenlosen Emulatoren gibt es für die PIC-Familie Prozessoren.

In-Circuit-Debugging

Später Modell PICs bieten ein ICD-Schnittstelle, in den CPU-Kern aufgebaut. ICD-Debugger kann mit dieser Schnittstelle mit drei Linien zu kommunizieren. Diese billige und einfache Debugging-System kommt zu einem Preis allerdings, nämlich begrenzte Haltepunktzahl, Verlust einiger IO und den Verlust einiger Funktionen des Chips. Für kleine PICs, wo der Verlust von IO mit dieser Methode verursacht wäre inakzeptabel, werden spezielle Überschriften gemacht, welche mit PICs, die speziell für das Debuggen zusätzliche Stifte angebracht sind.

In-Circuit-Emulatoren

Microchip bietet drei volle In-Circuit-Emulatoren: die MPLAB ICE2000; die neuere MPLAB ICE4000; und zuletzt das REAL ICE. Alle diese ICE-Tools können mit dem MPLAB IDE für die vollständige Source-Level-Debugging von Code auf dem Ziellauf verwendet werden.

Die ICE2000 erfordert Emulator-Module, und der Test-Hardware muss eine Fassung, die entweder einen Emulator Modul oder eine Produktionseinrichtung erfolgen kann.

Die REAL ICE schließt direkt an Produktionseinrichtungen, die In-Circuit-Emulation unterstützt durch die PGC / PGD Programmierschnittstelle oder über eine Hochgeschwindigkeitsverbindung, die zwei weitere Stifte verwendet. Laut Microchip unterstützt sie "die meisten" Flash-PIC, PIC24 und dsPIC-Prozessoren.

Die ICE4000 nicht mehr direkt auf Microchip-Website beworben, und die Kauf Seite heißt es, dass es nicht für neue Designs empfohlen.

Betriebssysteme

Ein Open-Source-Projekt von Serge Vakulenko passt 2.11BSD auf die PIC32 Architektur unter dem Namen RetroBSD. Dies bringt eine vertraute Unix-ähnliches Betriebssystem, einschließlich einer an Bord Entwicklungsumgebung, mit dem Mikrocontroller, innerhalb der Grenzen der integrierte Hardware.

(0)
(0)
Kommentare - 0
Keine Kommentare

Fügen Sie einen Kommentar

smile smile smile smile smile smile smile smile
smile smile smile smile smile smile smile smile
smile smile smile smile smile smile smile smile
smile smile smile smile
Zeichen übrig: 3000
captcha