68HC08

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

Der 68HC08 ist ein 8-Bit-Mikrocontroller (MCU) der Firma Freescale Semiconductor. Freescale Semiconductor ist die Halbleitersparte von Motorola, sie wurde 2004 ausgegliedert. Neben dem ursprünglichen 68HC08 Mikrocontroller sind weitere Varianten entstanden, sodass man inzwischen von einer HC08-Familie spricht.[1]

Der Programmcode seiner Vorgänger der 68HC05-Familie ist aufwärtskompatibel zum HC08, was eine Migration erleichtert.

Evaluationboard mit einer 68HC908JK-MCU

Architektur[Bearbeiten]

Der 68HC08 ist nach der Von-Neumann-Architektur aufgebaut. Bei der Von-Neumann-Architektur ist, anders als bei der Harvard-Architektur, der Speicherbereich nicht nach Programmcode und Daten getrennt. Es werden deshalb keine getrennten Busse benötigt, allerdings ist die Von-Neumann-Architektur langsamer im Vergleich zu Harvard-Architektur, da nicht gleichzeitig auf Programmcode und Daten zugegriffen werden kann.

Die CPU[Bearbeiten]

Der HC08 hat als Kern den 6800-Mikroprozessor(CPU), nicht zu verwechseln mit der 68000-CPU, die den Kern für die 32 Bit-Mikrocontroller-Familie von Freescale bildet.

Arithmetikbefehle[Bearbeiten]

  • Addition mit (ADC) und ohne Übertrag (ADD)
  • Subtraktion mit (SBC) und ohne Übertrag (SUB)
  • schnelle 16 * 8 unsigned Division (DIV)
  • schnelle 8*8 unsigned Multiplikation (MUL)

BCD-Arithmetik[Bearbeiten]

Um Binary-Coded-Decimal Arithmetikanwendungen auszuführen, gibt es den Decimal Adjust Accumulator(DAA) und den Nibble Swap Accumulator (NSA) -Befehl.

Hochsprachenunterstützung[Bearbeiten]

Das Index-Register, der Stack-Pointer, die 8-Bit Sprunganweisungen und die dazugehörenden Befehle ermöglichen die Benutzung von Hochsprachenkompilern. Man ist nicht mehr gezwungen, den Mikrocontroller über Assemblersprache zu programmieren.

Low-Power Unterstützung[Bearbeiten]

Um die Leistungsaufnahme der CPU zu verringern, können der WAIT- und der STOP-Befehl eingesetzt werden. Mit dem WAIT-Befehl wird der Taktgenerator der CPU angehalten, mit dem STOP-Befehl können zusätzliche periphere Taktgeneratoren gestoppt werden.

Die CPU-Register[Bearbeiten]

Index-Register[Bearbeiten]

Das Index-Register ist 16 Bit breit und erlaubt die Adressierung von bis zu 64 KByte Speicher, das zusammengesetzte Register trägt die Bezeichnung H:X, wobei das untere Byte die Bezeichnung X trägt und das obere Byte die Bezeichnung H. Das H:X ist nur dann identisch zum I:X-Register der M6805-Familie, wenn H=O ist und sich keine Befehle auf das obere Byte auswirken. Für die Adressierung können 16 verschiedene Methoden verwendet werden. Das Index-Register kann auch kurzfristig als Datenspeicher verwendet werden.

Statusregister CCR[Bearbeiten]

Das 8 Bit Statusregister CCR. Im Statusregister sind die Zustände der Interrupt Maske und des Overflow-, Half-Carry-, Negative-, Zero- und des Carry-Borrow-Flags hinterlegt.

weitere CPU-Register[Bearbeiten]

Betriebsspannungen[Bearbeiten]

Die HC08 Mikrocontroller können mit verschiedenen Betriebsspannungen betrieben werden, allerdings verringert sich mit der Spannung auch die Bustaktung. Bei einer Betriebsspannung von 5 V arbeitet der Bus mit einem Takt von 8 MHz, bei einer 3 V Betriebsspannung nur mit 4 MHz. Die Mikrocontroller der HCS08-Unterfamilie arbeiten mit einer Betriebsspannung von 1,8 V.

Varianten des 68HC08[Bearbeiten]

Mikrocontroller der HC08-Familie sind in einer breiten Palette verfügbar. Bei den Gehäusen reicht die Auswahl von einem 8-Pin DIP-Gehäuse bis zu einem 64-Pin LQFP-Gehäuse, der Nutzer kann daneben zwischen verschiedenen Typen und Anzahl der Analog/Digital-Wandler oder unterschiedlichen Möglichkeiten der Peripheriekommunikation auswählen. Die untenstehende Tabelle zeigt einige Eigenschaften von aktuell verfügbaren HC08-Untergruppen (Stand: September 2010).

Untergruppe Internal Flash (kB) Internal RAM (kB) Interfacetypen A/D-Bitbreite A/D-Wandler-Kanäle
HC08AB 32 1; 0,512 SCI,SPI 8 8
HC08AP 32; 16; 8 2; 1 IRSCI,SPI,I2C 10 8
HC08BD 48 1; 0,512 USB 1.0,I2C 8 6
HC08JB/JT/JW 32; 16; 12; 8 1; 0,384; 0,256; 0,128 USB 1.0, USB 2.0, SCI, SPI, IRSCI, SCI 0 0
HC08JK/JL 16; 8; 4; 1,5 0,512; 0,256; 0,128 SCI 0 0
HC08LD 60 2; 1 I2C,USB 1.0 8 6
HC08LV 8 0,512 IRSCI,SPI,I2C 10 6

Daneben gibt es die RS08-Familie die im Prinzip auf einen abgespeckten HC08 beruhen. Die RS08-MCU können keine Adressstapel verarbeiten und das Statusregister verfügt lediglich über Carry- und Zeroflagbits. Sein Speicherbereich ist auf 16 KB begrenzt. Die bereits erwähnte Weiterentwicklung HCS08 hat ihren Schwerpunkt in einer geringen Leistungsaufnahme, so verfügt er über verschiedene Modi zur Verbrauchseinsparung.

Verfügbarkeit[Bearbeiten]

Von den Mikrocontrollern der HC08-Familie sind trotz ihres Alters immer noch viele Varianten verfügbar da sie, vor allem, in industriellen Anwendungen kostengünstig eingesetzt werden können. Einige Varianten sind aber von seiten des Herstellers bereits abgekündigt und es wird davon abgeraten diese Varianten in der Großserienproduktion zu verwenden.

Hitachi HD6301[Bearbeiten]

Hitachi verfügte mit den HD6301 und HD6303 über Mikrocontroller die auf dem Design der 6800 CPU beruhten und als second source-Produkte eingesetzt werden konnten. Der Befehlssatz der Hitachi-Mikrocontroller ist um einige Befehle erweitert worden was die Funktionalität vergrößerte. Inzwischen sind diese Mikrocontroller aber weder bei Hitachi noch bei der inzwischen ausgegliederten Halbleitersparte Renesas Electronics verfügbar.

Softwareentwicklung[Bearbeiten]

Für die Softwareentwicklung steht neben der proprietären CodeWarrior IDE auch die Small Device C Compiler und der SDCC-UCSIM-Simulator zur Verfügung. Inzwischen ist mit dem Helium-OS auch ein Echtzeit- Betriebssystem für den HCS08 im Einsatz.

Literatur[Bearbeiten]

  • Harald Kreidl, Gerald Kupris, Peter Dilger : 68HC08 Mikrocontroller erfolgreich anwenden. Franzis’ Verlag, Poing 2000, ISBN 3-7723-5824-1.

Einzelnachweise[Bearbeiten]

  1. HC08 Documentation, abgefragt am 17. Dezember 2010, (engl.)

Weblinks[Bearbeiten]