|
Mikroprozessor 68HC11
Der Prozessor - ist zuständig für die sequentielle Instruktionsausführung(Instruktion entspricht einer Zustandsänderug im Speicher oder in einemRegister).
- Ausführung synchron durch internen Taktgenerator (dieser wird beim 68HC11 durch einen externen Quarz-Oszillator gesteuert).
- Systemtakt des 68HC11: 2 MHz
(entsprach zur Entwicklungszeit der maximalen Taktfrequenz eines externen EPROMs) - Systemtakt wird für externe Zwecke (an Pin E) zur Verfügung gestellt.
- eine Instruktion benötigt beim 68HC11 mindestens 2 Takte = 1 Mikrosekunde
- längste Operation: Division (FDIV) mindestens 41 Takte = 20,5 Mikrosekunden
Beim 68HC11 gibt es diverse Varianten, die sich hauptsächlich im integrierten Speicher unterscheiden. Zusammenfassend ergeben sich folgende Eigenschaften: - CPU mit 8 Bit Daten und 16 Bit Adressen
- 256 Byte RAM
- 2 - 8 KByte ROM
- 515 - 2048 Byte EEPROM
- Asynchrone serielle Kommunikationsschnittstelle
- Echtzeit-Interrupts
- 38 digitale Ein- und Ausgänge, teils mit Handshake-Funktion
- 2 Hardware-Interrupts
- Impulszähler
- 16-Bit-Timer-System mit 3 Zeitmeß-Eingängen und 4 PWM-Ausgängen
- Analog-Digital-Wandler mit 8 gemultiplexten Eingängen
- Synchrone serielle Schnittstelle
Der Prozessor arbeitet mit einer Taktfrequenz von 2 MHz, die von einem 8-MHz-Quarz
abgeleitet wird. Die Betriebsspannung beträgt 5 V, die Stromaufnahme etwa 15 mA,
wobei jedoch bei Batteriebetrieb der Mikrocontroller in Arbeitspausen durch
Software-Befehle in einen Stromsparzustand geschaltet werden kann.
Die wichtigsten Anschlußpins
Name |
Anzahl |
Art |
Bedeutung |
Vss (GND) |
1 |
E |
Versorgungsspannung 0V |
VDD |
1 |
E |
Versorgungsspannung 5V |
EXTAL |
1 |
E |
Quarz (oder externer, CMOS-kompatiblerTaktgenerator) |
XTAL |
1 |
A |
Quarz |
E |
1 |
A |
Bus-Takt L: interne Aktivität
H: externe Aktivität (Datenverkehr) |
RESET |
1 |
E |
Rücksetzen des M68HC11 X-Bit und I-Bit = 1,
(FFFE,FFFF) Befehlszähler |
MODA |
1 |
E |
L: single chip mode (nur interne Komponenten)
H: expanded mode (externe Komponenten möglich) |
MODB |
1 |
E |
L: special variation (down load or test)
H: normal variation (applications) |
XIRQ |
1 |
E |
unbedingte Unterbrechung (non maskable interrupt)
maskiert durch X-Bit im CCR |
IRQ |
1 |
E |
bedingte Unterbrechung (interrupt request)
maskiert durch I-Bit im CCR |
PAi |
3 4 1 |
E A E/A |
Port A: 3 Digitaleingänge,
4 Digitalausgänge,
1 Digitalein/ausgang oder Pulsakku-Eingang (unterbrechungsfähig) |
PB A15-8 |
8 |
A |
Port B: 8 Digitalausgänge oder
8 Adressleitungen |
PCAD7-0 |
8 |
E/A |
Port C: 8 Digitalein/ausgänge oder
8 Adress/Datenleitungen (gemultiplext) |
STRA AS |
1 |
E/A |
Steuerleitung (Eingang, unterbrechungsfähig) oder
Adress/Datenleitungs-Steuerung |
STRB R/W |
1 |
A |
Steuerleitung (Ausgang) oder Datenrichtung (read/write) |
PD |
6 |
E/A |
Port D: 6 Digitalein/ausgänge oder 1 SCI und 1 SPI |
PE |
8 |
E |
Port E: 8 Digitaleingänge oder
8 Analogeingänge für A/D-Wandler |
Vrefh |
1 |
E |
Referenz-Spannung für A/D-Wandler |
Vrefl |
1 |
E |
Referenz-Spannung für A/D-Wandler |
Reset
Der Reset-Eingang wird dazu benutzt, den Mikroprozessor in einen definierten Anfangszustand
zu bringen. Da für einige der intern ablaufenden Vorgänge zwingend ein
Oszillatortakt benötigt wird, sollte ein Reset-Signal erst nach Stabilisierung des
Oszillator-Kreises gegeben werden. Sobald der Prozessor die Reset-Bedingung gültig
erkennt, werden alle internen Schaltungsgruppen in einen definierten Anfangszustand versetzt:
- Nach dem Reset-Signal lädt die CPU den Reset-Vektor aus dem der gewählten
Betriebsart entsprechenden Adressbereich in den Programcounter. Dies ist ($FFFE, $FFFF)
im Normalbetrieb oder ($BFFE, $BFFF) in den Betriebsarten "Special Test" und "Bootstrap".
Der Stackpointer und die anderen Register der CPU sind nach dem Reset weiterhin
undefiniert, nur das X- und das I-Bit im CCR-Register werden gesetzt, um undefinierte
Interrupts zu verhindern.
- Das INIT-Register wird beim Reset auf $01 gesetzt. Damit liegt das interne Prozessor-RAM
im Adressbereich $0000 bis $OOFF, die Control-Register liegen auf den Adressen $1000 bis $103F.
Der Prozessor-Reset hat keinen Einfluß auf das Mapping der ROM- und EEPROM-Bereiche, da
die beiden Bits, die die Zugriffe auf diese Bereiche kontrollieren, EEPROM-Zellen des
Config-Registers sind.
- Durch das Reset-Signal wird das prozessorinterne Timer-System auf $0000 gesetzt, alle
Prescaler-Bits werden gelöscht und sämtliche Output-Compare-Register erhalten
den Wert $FFFF. Der Inhalt der Input-Capture-Register ist undefiniert. Damit keine
undefinierten Signale an den E/A-Pins des Prozessors durch das Timer-Systern ausgegeben
werden können, werden alle Output-Compare-Systeme so initialisiert, daß sie
keinen Einfluß auf die logischen Zustände der zugeordneten E/A-Pins haben.
Die Flankenerkennung der drei Input-Capture-Register wird durch das Reset-Signal
ausgeschaltet, alle dem Timer-System zugeordnete Interrupt-Flags werden gelöscht
und alle neun Timer-Interrupt-Quellen werden gesperrt.
- Die Behandlung der E/A-Ports bei einem Reset-Signal ist von der eingestellten
Betriebsart abhängig; in der Betriebsart "Extended" sind die 18 E/A-Pins des
68HC11 den verschiedenen Bussystemen zugeordnet. In der Betriebsart "Single-Chip",
werden alle Interrupt-Quellen, die mit den E/A-Ports in Verbindung stehen,
gelöscht. Dazu gehören die Bits STAF, STAI und HNDS im PIOC-Register. Die
Betriebsart der E/A-Ports wird durch das gelöschte HNDS-Bit auf "Simple
Strobed E/A" festgelegt.
Port C ist nach dem Reset als Eingang definiert, sein Datenrichtungsregister demnach
mit $00 besetzt. Port B ist als Ausgang mit auf Null gesetzten Ausgangssignalen
initialisiert. Der flankenempfindliche Eingang STRA reagiert auf die ansteigende
Flanke eines Signals.
- Nach einem Reset-Signal ist die Baud-Rate des seriellen Interfaces in
jedem Fall undefiniert und muß durch das Anwenderprogramm festgelegt werden.
Sämtliche Interrupt-Quellen der seriellen Schnittstelle sind deaktiviert und die
Zuordnung der Empfangs- und Sendeleitungen zu den entsprechenden E/A-Pins ist
aufgehoben, so daß diese Pins als normale E/A-Pins zur Verfügung stehen.
Das Übertragungsformat der seriellen Schnittstelle ist auf 8 Bit eingestellt. Im
Statusregister des seriellen Systems werden die TDRE- und TC-Bits gesetzt.
- Das Puls-Akkumulator-System des 68HC11 ist nach einem Reset ausgeschaltet, der
Eingang (PAI) ist als normaler E/A-Pin geschaltet.
- Die interne Prozessorüberwachung (COP) verhält sich entsprechend dem
NOCOP-Bit im Config-Register(NOCOP-Bit = 1: Überwachung aus, NOCOP-Bit = 0:
Überwachung ein). In diesem Fall wird das Time-Out-Intervall des COP-Systems
auf die kleinste verfügbare Zeit gesetzt.
- Das serielle Peripherie-Interface (SPI) wird durch ein Reset-Signal ausgeschaltet. Die
zugehörigen E/A-Leitungen stehen als normale E/A-Pins zur Verfügung.
- Die Definition des A/D-Wandler-Systems ist undefiniert. Nur das ADPU-Bit wird
gelöscht, so daß das A/D-System deaktiviert bleibt.
- Sämtliche EEPROM-Steuerbits, die zur Programmierung benötigt werden, sind nach
einem Reset gelöscht, so daß aus dem EEPROM nur gelesen werden kann.
- Der externe Interrupt bekommt die höchste Interrupt-Priorität zugewiesen,
das Interrupt-Signal wird auf pegelabhängig geschaltet, so daß ein
Standard-Interruptsystem mit mehreren Quellen möglich ist.
Als Reset-Quelle steht beim 68HC11 nicht nur der externe Reset-Eingang zur Verfügung.
Es gibt drei weitere interne Reset-Quellen: Power-On-Reset (POR), Watchdog-Timer
(COP), Taktüberwachung (CMR). Jeder dieser Reset-Quellen ist ein eigener Reset-Vektor
zugeordnet, der auf das zugehörige Interrupt-Programm zeigt.
Der Bus
- Verbindung zwischen den Komponenten (speziell: Verbindung der CPU mit dem
Speicher)
- Adreßbusbreite beim 68HC11: 16Bit = 216 = 65536 verschiedenen
Speicherplätze mit je 8-bit Datenwort (64 KByte)
- Bus im Multiplexbetrieb = Daten und Adressen über gleiche Leitungen
(Kontrolle über Steuerleitungen)
- Steuerleitungen geben den Bus-Zustand an (Daten/Adressen, schreiben/lesen)
- Zugriff auf E/A-Ports: speicherabbgebildet
Der Speicher
Der Speicher nimmt Instruktionen und Daten auf (wie beim klassischen von-Neuman
Rechner). Speicherarten:
- RAM: schreiben und lesen, sehr schnell, Speicherinhalt flüchtig (evtl.
mit Batterie puffern)
- ROM: nicht flüchtig, Inhalt nicht änderbar
- PROM: 1x änderbar, nicht flüchtig
- EPROM: löschen durch UV-Licht
- EEPROM: lesen und schreiben, langsam (ms, bei RAM ns), begrenzte Lebensdauer
Als Speicher hat der MC68HC811 ein ROM, ein EEPROM und ein RAM an Board. Programme
können in jeden dieser Speicherbereiche geladen und in jedem Bereich
ausgeführt werden. Das ROM kann allerdings nur während des
Herstellungsprozesses programmiert werden, so daß diese Variante erst bei
Abnahme von mehreren tausend Stück interessant wird. Ein Teil des ROM ist
jedoch stets vorhanden, da es das Bootloader-Programm enthält. Bei kleinen
Stückzahlen oder Einzelstücken ist das EEPROM der bevorzugte Programmspeicher.
Da Programme im RAM nicht dauerhaft gespeichert werden, dient dieses zur temporären
Speicherung von Rücksprungadressen im Stack-Bereich oder von Zwischenergebnissen
des Programmlaufs. Die folgende Liste zeigt eine Zusammenfassung der Prozessorvarianten:
Innerhalb der Familie gibt es nur geringe Unterschiede in Speicher (Art, Menge) und
Ports (Anzahl, Art). Bei allen Varianten ist der Befehlssatz gleich
gleiche (Assenbler-)Programme.
Belegung des Adressraums bei verschiedenen Prozessortypen
Asynchrone serielle Schnittstelle
Über die asynchrone serielle Schnittstelle (SCI) wird das Programm vom PC in
den Mikrocontroller geladen. Sie dient unter anderem auch dazu, beim Testen des
Programms Statuswerte oder Zwischenergebnisse am Bildschirm darzustellen.
Die Anschlüsse der seriellen Schnittstelle sind PD0 = RxD (Dateneingang)
und PD1 = TxD (Datenausgang).
Timer-System
Das Timer-System steuert solche Funktionen, die einen Bezug zur Realzeit benötigen,
also unabhängig von Befehlsausführungszeiten sein sollen. Intern werden
alle Funktionen von einem konstant durchlaufenden, nicht beeinflußbaren
16-Bit-Taktzähler abgeleitet:
- Der Real-Time-Interrupt (Echtzeitunterbrechung) dient dem Zweck,
in genau periodischen Zeitabständen einen bestimmten Vorgang auszulösen.
- Die 3 Input-Capture-Funktionen (Zeiterfassungsfunktionen) IC1 bis IC3
dienen zur Zeitmessung von Eingangssignalen an den Eingängen PA0 bis PA2.
- Mit den 4 Output-Compare-Funktionen (Zeitvergleichsfunktionen) OC1 bis
OC4 können bei bestimmten Timer-Zählerständen H-Pegel bzw. L-Pegel
an den Anschlüssen PA3 bis PA6 ausgegeben werden.
- Der COP-Watchdog-Timer sorgt dafür, daß die
Programmlaufüberwachung innerhalb einer überwachungsperiode rechtzeitig
zurückgesetzt wird. Im Fehlerfall wird ein Reset (Neustart) des Rechners
veranlaßt.
Digitale Ein- und Ausgänge
Je 8 Ein- bzw. Ausgänge sind in den Ports A, B, C und E zusammengefaßt.
Die meisten dieser Anschlüsse haben mehrere Funktionen, die softwaremäßig
festzulegen sind. Die jeweilige Pfeilrichtung im Blockschaltbild kennzeichnet den
Anschluß als Eingang oder Ausgang. Der Zugriff erfolgt wie auf den
Speicher. Eigenschaften der fünf Ports:
- Port A: (verbunden mit 16-bit Zähler)
3 Eingänge (sichern des aktuellen Zählerstandes in ein Register
durch ein Eingangssignal)
4 Ausgänge (Vergleichsausgänge des Zählers: sobald der
Zähler den im zugehörigen Register gespeicherten Wert erreicht
hat, wird hier eine 1-Signal erzeugt)
1 Ein- und Ausgang (Impulszähler)
- Port B und C: Funktion hängt von der Betriebsart der Microcontrollers
ab. Der 68HC11 kennt vier Betriebmodi (einstellbar an den Pins MODA, MODB):
single chip Mode |
normal |
Nur der interne Speicher ist verfügbar, Port B: digitale Ausgabeschnittstelle,
Port C: digitale Eingabe- oder Ausgabe-Schnittstelle,
STRB,STRA beliebig verwendbar (digitale Ein- bzw. Ausgänge) |
special |
special bootstrap mode:
In diesem Modus lädt die Firmware über die serielle Schnittstelle
(Port D) ein 255 Bytes großes Grundprogramm, welches anschliesend
ausgeführt wird. |
expanded Mode |
normal |
Dieser Mode dient zum Anschließen externer Peripherie und
externer Speicher. Der 68HC11 stellt sich dann wie ein normaler
Mikroprozessor dar:
Port B: Buserweiterung
Port C: Buserweiterung
STRA, STR B: Steuerleitungen |
special |
spezieller Testmodus |
- Port D:
zwei Ein- /Ausgänge (serielle Schnittstelle)
vier Ein- /Ausgänge (für synchronen Datenaustausch mit anderen
68HC11)
- Port E:
8-Kanal A/D-Wandler (Genauigkeit: 8-bit)
Impulszähler
Der Impulszähler dient je nach Software-Vorgabe zur Zählung von Pulsen oder
zur Bestimmung einer Pulsdauer, wobei er im letzteren Fall auf das Timer-System zugreift.
Analog-Digital-Wandler
Die 8 Anschlüsse des Ports E können je nach Bedarf im Multiplexbetrieb auf
einen Analog-Digital-Wandler geschaltet werden. Der Wandler arbeitet mit einer
Auflösung von 8 Bit und beinhaltet eine Sample-and-Hold-Funktion, so daß
auch zeitveränderliche Signale amplitudengetreu verarbeitet werden.
Synchrone serielle Peripherieschnittstelle
Die synchrone serielle Peripherieschnittstelle (SPI) dient zum Datenaustausch mit
einem anderen Mikrocontroller oder speziell dafür entwickelten
Peripheriebausteinen, die an PD2 bis PD5 angeschlossen werden.
Vereinfachtes Blockschaltbild des 68HC11
|
|
|