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.
Architektur
BearbeitenDer 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
BearbeitenDer 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
BearbeitenUm Binary-Coded-Decimal Arithmetikanwendungen auszuführen, gibt es den Decimal Adjust Accumulator(DAA) und den Nibble Swap Accumulator (NSA) -Befehl.
Hochsprachenunterstützung
BearbeitenDas Index-Register, der Stack-Pointer, die 8-Bit Sprunganweisungen und die dazugehörenden Befehle ermöglichen die Benutzung von Hochsprachencompilern. Man ist nicht mehr gezwungen, den Mikrocontroller über Assemblersprache zu programmieren.
Low-Power Unterstützung
BearbeitenUm 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
BearbeitenIndex-Register
BearbeitenDas 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
BearbeitenDas 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- 8-Bit Akkumulator A
- 16-Bit Befehlszähler PC
- 16-Bit Stack-Pointer SP
Betriebsspannungen
BearbeitenDie 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
BearbeitenMikrocontroller 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 einem 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
BearbeitenVon 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 vonseiten des Herstellers bereits abgekündigt, und es wird davon abgeraten, diese Varianten in der Großserienproduktion zu verwenden.
Hitachi HD6301
BearbeitenHitachi 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.
Nachfolger
BearbeitenNachfolger ist der kompatible Freescale S08, der einen erweiterten Instruktionssatz, insbesondere die zur Implementierung von Hochsprachen wichtige Stapelzeiger-relative Adressierung aufweist. Daneben gibt es den stark vereinfachten Freescale RS08.
Softwareentwicklung
BearbeitenFür die Softwareentwicklung steht neben der proprietären CodeWarrior IDE auch der Small Device C Compiler mit dem 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- ↑ HC08 Documentation, abgefragt am 17. Dezember 2010, (engl.)
Weblinks
Bearbeiten- Mikrocontroller.net allgemeine Informationen zu Mikrocontrollern
- Freescale Semiconductor
- Renesas ausgegliederte Halbleitersparte von Hitachi
- Helium RTOS Echtzeitbetriebssystem für HCS08
- small device c compiler