Motorola 68HC12 - Motorola 68HC12

68HC12
Designer Freescale Semiconductor
Bits 8-Bit/ 16-Bit
Entwurf CISC
Codierung Variable
Endianität Groß
Register
8
Dragon12-P Mikrocontroller-Evaluierungsboard mit 68HC12

Der 68HC12 (6812 oder kurz HC12) ist eine Mikrocontroller- Familie von Freescale Semiconductor . Die ursprünglich Mitte der 1990er Jahre eingeführte Architektur ist eine Weiterentwicklung des Freescale 68HC11 . Programme, die für den HC11 geschrieben wurden, sind normalerweise mit dem HC12 kompatibel, der einige zusätzliche Anweisungen enthält . Die ersten 68HC12-Derivate hatten eine maximale Busgeschwindigkeit von 8  MHz und Flash-Speichergrößen bis 128  KB .

Architektur des 68HC12

Wie der 68HC11 verfügt der 68HC12 über zwei 8-Bit- Akkumulatoren A und B (wird als einzelner 16-Bit-Akkumulator D bezeichnet, wenn A und B kaskadiert werden, um Operationen mit 16  Bits zu ermöglichen ), zwei 16-Bit- Register X und Y, einen 16-Bit-Programmzähler, einen 16-Bit-Stack-Zeiger und ein 8-Bit- Bedingungscoderegister . Im Gegensatz zum 68HC11 verfügt der Prozessor über interne 16-Bit-Datenpfade

Der 68HC12 ergänzt und ersetzt eine kleine Anzahl von 68HC11-Befehlen durch neue Formen, die näher am 6809- Prozessor liegen. Noch wichtiger ist, dass die Befehlskodierungen viel dichter sind und viele 6809-ähnliche Indizierungsfunktionen hinzugefügt werden, einige mit noch mehr Flexibilität. Das Nettoergebnis ist, dass die Codegrößen normalerweise um 30 % kleiner sind.

HCS12/MC9S12-Derivate

Ab 2000 wurde die Familie durch die Einführung der MC9S12-Derivate mit Busgeschwindigkeiten bis 25 MHz und Flash-Größen bis 512 KB erweitert.

Der MC9S12NE64 wurde von Freescale im September 2004 vorgestellt und behauptet, der "erste Single-Chip Fast-Ethernet Flash-Mikrocontroller der Branche zu sein". Es verfügt über eine 25 MHz HCS12 CPU, 64 KB FLASH EEPROM, 8 KB RAM und einen Ethernet 10/100  Mbit/s Controller.

MC9S12X-Derivate

Der 2004 eingeführte MC9S12XDP512 verfügt über eine Busgeschwindigkeit von 40 MHz und einen peripheren Co-Prozessor namens XGATE, der es ermöglicht, einige Aufgaben von der CPU zu entlasten. Die CPU des S12X-Derivats verfügt zudem über mehrere neue Anweisungen zur Leistungssteigerung.

Freescale kündigte im Mai 2006 den MC9S12XEP100 an, um die S12X-Familie auf eine Busgeschwindigkeit von 50 MHz zu erweitern und eine Speicherschutzeinheit (basierend auf Segmentierung ) sowie ein Hardware-Schema für emuliertes EEPROM hinzuzufügen .

HCS12-Produkte enthalten einen einzigen Prozessor, die HCS12X verfügen über den zusätzlichen XGATE-Peripherieprozessor.

Die S12X-Familie bietet zwei Hauptmethoden, um mehr als 64 KByte zu adressieren.

  • Ausgelagerte Speicherbereiche in der 64 KB lokalen Karte: PPAGE für ausgelagerte Programmdaten, RPAGE für ausgelagertes RAM, EPAGE für ausgelagertes EEPROM/Flash
  • Die globale Adressierung erlaubt den Zugriff auf beliebige Adressen im 8  MB Adressraum. GPAGE wird in Verbindung mit speziellen Opcodes verwendet. (gldaa usw.)

XGATE

Der XGATE-Coprozessor ist ein 16-Bit-RISC-Prozessor, der mit dem Doppelten des Hauptbustakts arbeitet. Es entlädt die Arbeit vom S12X-Kern, indem es nur Interrupts verarbeitet und keine Hintergrundschleife ausführt. Die ersten Versionen des XGATE erlauben nicht, dass Interrupts mit höherer Priorität einem aktuell behandelten Interrupt zuvorkommen, aber das "XGATEV3", wie es im 9S12XEP100 (und anderen) enthalten ist, erlaubt dies. Der S12X kann Software-Interrupts auf dem XGATE-Kern auslösen und umgekehrt. Ein Semaphorsystem ist implementiert, um es den S12X- und XGATE-Kernen zu ermöglichen, den Zugriff auf Peripheriegeräte zu synchronisieren.

Normalerweise wird der XGATE-Code beim Gerätestart in den RAM kopiert und dann aus Geschwindigkeitsgründen vom RAM ausgeführt. Das XGATE hat einen teilweisen 64KByte Adressraum ohne Paging. Die Register teilen sich Adressen, aber Flash und RAM erscheinen an unterschiedlichen Adressen zwischen den Kernen. (Weitere Informationen finden Sie im Datenblatt.)

Verweise

Externe Links