mikrocomputertechnik 3 aufbau von mikrocontrollern der 8051-familie prof. j. walter stand oktober...
TRANSCRIPT
1
Mikrocomputertechnik
Herzlich WillkommenJürgen Walter
2
Abb. 3.1 Logisches Symbol des 8051
Port 0Adress- und
Datenbus
Port 1
Port 2Port 3
Adressbus
8051
RxDTxD/INT0/INT1T0T1
/RD/WR
ALE
/PSEN
/EA
RST/V
XTAL1
XTAL2
PD
VSSVCC
3
Tabelle 3.1. Pin-Definitionen, Funktionen 8051 DILSymbol Pin In
Out Funktionen - Beschreibung
Vss 20 0-Potential - Digitale MasseVcc 40 +5V SpannungsversorgungXTAL1 19 Eingang zum Oszillatorverstärker. Wird gebraucht, wenn ein Quarz benutzt wird. Wird mit Vss verbunden,
wenn eine externe Quelle an XTAL2 benutzt wird.
XTAL2 18 Ausgang vom Oszillatorverstärker. Eingang zum internen Timing-Teil. Ein Quarz oder eine externe Quelle kann benutzt werden.
RST/VPD 9 I Reset - Ein 1-Pegel setzt den Baustein zurück. Ein kleiner, interner Pulldown-Widerstand erlaubt beim Einschalten ein Reset nur durch Zuschalten eines einfachen Kondensators. Weiterhin kann der VVPD zum Steuern von standby power verwendet werden.
/EA 31 I Bei 0-Pegel holt der 8051 alle Instruktionen vom externen Programmspeicher. Bei 1-Pegel bis zu den Adressen 4096, d.h. die unteren 2KByte vom internen Speicher.
/PSEN 29 O Program Storage Enable. Ist ein zum Controlbus gehöriges Signal für den externen Programmspeicherzugriff. Es wird alle 6 Oszillatorperioden aktiviert. Es bleibt auf 1-Pegel, wenn interner Programmspeicherzugriff erfolgt.
ALE 30 O Dient zur Steuerung des externen Adresslatches für das zeitliche Demultiplexen der Daten und Adressen. Es wird alle 6 Oszillatorperioden bei externem Speicherzugriff aktiviert.
P0.0-P0.7 39-32 I/O Port 0 ist ein bidirektionaler open drain I/O Port. Wird auch für die Adressen und Daten verwendet bei der zweiten Betriebsart.
P1.0-P1.7 1-8 I/O Ist ein 8-Bit quasibidirektionaler Ein-, Ausgangsport. P2.0-P2.7 21-28 I/O Ist ein 8-Bit quasibidirektionaler Ein-, Ausgangsport. In der zweiten Betriebsart stellt er die oberen acht Bit
der Adressen zur Verfügung.P3.0-P3.7 10-17 I/O Ist ein 8-Bit quasibidirektionaler Ein-, Ausgangsport. In der zweiten Betriebsart stellt er wichtige alternative
Funktionen zur Verfügung.
4
Abb. 3.2. Prinzipieller Aufbau eines 8051-Ports
Port
LatchCLK
Port
Treiber
PortPin
ReadLatch
WriteLatch
internerBus
D Q
/Q
ReadPin
im Baustein außerhalb freigegeben
gesperrt
5
Abb. 3.3. Datenweg: Zustand des Port-Pins lesen
PortLatchCLK
Port
TreiberPortPin
ReadLatch
WriteLatch
internerBus
D Q
/Q
ReadPin
im Baustein außerhalb freigegeben
gesperrt
6
Abb. 3.4. Datenweg: Pin beschreiben mit Speichern
Port
LatchCLK
Port
Treiber
PortPin
ReadLatch
WriteLatch
internerBus
D Q
/Q
ReadPin
im Baustein außerhalb
gesperrt
gesperrt
7
Abb. 3.5 Zustand des Port-Latches lesen
Port
LatchCLK
Port
Treiber
PortPin
ReadLatch
WriteLatch
internerBus
D Q
/Q
ReadPin
im Baustein außerhalb
freigegeben
gesperrt
8
Abb. 3.6 Aufbau des Treiberbausteins Port 1 bis 5
Port
LatchCLKPortPin
ReadLatch
WriteLatch
internerBus
D Q
/Q
ReadPin
im Baustein außerhalb
n1
VCC
VDD
ca.
50k
9
Abb. 3.7 Funktionsweise der FET’s im Controller
+5V
0V
+5V
0V
1
0 1
0D
SG
+5V
0V
A B C
Ausgang
Eingang
10
Abb. 3.8. Port 0 als Adressausg. 0-Pegel am Ausgang
Port
LatchCLK
ReadLatch
WriteLatch
internerBus
D Q
/Q
ReadPin
P0.xPin
im Baustein außerhalb
n1
VCC
VDD
Address DataControl
&
MUX
1
0 1
1 leitend
0 sperrt
0
11
Abb. 3.9 Port 0 als Adressausg. 1-Pegel am Ausgang
Port
LatchCLK
ReadLatch
WriteLatch
internerBus
D Q
/Q
ReadPin
P0.xPin
im Baustein außerhalb
n1
VCC
VDD
Address DataControl
&
MUX
1
0
1
1 leitend
0 sperrt1
12
Abb. 3.10. Port 0 als Datenausgang mit 0-Pegel
Port
LatchCLK
ReadLatch
WriteLatch
internerBus
D Q
/Q
ReadPin
P0.xPin
im Baustein außerhalb
n1
VCC
VDD
Address DataControl
&
MUX
X
X 1 leitend
0 sperrt
0
00 0
13
Abb. 3.11 Port 0 als Datenausg. 1-Pegel am Ausgang
Port
LatchCLK
ReadLatch
WriteLatch
internerBus
D Q
/Q
ReadPin
P0.xPin
im Baustein außerhalb
n1
VCC
VDD
Address DataControl
&
MUX
x
x0 sperrt
1
0
0 sperrt
11
float
14
Abb. 3.12 Port 1 als bidirektionaler Port mit internem Pull-up Widerstand
Port
LatchCLKP1.xPin
ReadLatch
WriteLatch
internerBus
D Q
/Q
ReadPin
im Baustein außerhalb
n1
VCC
VDD
ca. 50 K
15
Port
LatchCLK
ReadLatch
WriteLatch
internerBus
D Q
/Q
ReadPin
P2.xPin
im Baustein außerhalb
n1
VCC
VDD
Address Data
Control
MUX
Abb. 3.13 Port 2 als bidirektionaler Port mit internem Pull-up-Widerstand
16
Port
LatchCLK
ReadLatch
WriteLatch
internerBus
D Q
/Q
ReadPin
P3.xPin
im Baustein außerhalb
VCC
VDD
Alternate
Control
MUX
Output Function
&
Alternate Input
Function
1
Abb. 3.14 Port 3 als bidirektionaler Port mit Alternate Functions
17
Tabelle 3.2. Alternative Funktionen an Port 3
Port Pin Bezeichnung Ein-, Ausgang Alternative Funktionen
P3.0 RxD Eingang serieller Empfang
P3.1 TxD Ausgang serielles Senden
P3.2 /INT0 Eingang Interrupt 0
P3.3 /INT1 Eingang Interrupt 1
P3.4 T0 Eingang Timer 0
P3.5 T1 Eingang Timer 1
P3.6 /WR Ausgang externes Schreibsignal
P3.7 /RD Ausgang externes Lesesignal
18
Abb. 3.15 Blockdiagramm des 8051 - 8051 A
Oscillator
&Timing
4096 ByteProgram Memory
128 Byte
Data Memory
Two 16-Bit
Timer/Event
Counters
8051
CPU
64 KByte Bus
Expander
Control
Programmable
I/O
ProgrammableSerial port
Full duplex UARTSynchronous Shifter
Interrupts
Interrupts
8051A only
Frequency Reference
SerialIN
SerialOUT
Parallel Ports
Adress Data Bus
and I/O Pins
Counters
19
Abb. 3.16 Verfeinertes Blockdiagramm des 8051 - 8051 A
B-Register
Adressen
StatuswortAkkumulator
Programm
Register
Temporäresdecoder
Befehls-
Dekodierer
RAMRAM
128x8 ROM
4Kx8
Register
Temporäres
logische
Arithmetisch
Einheit
Port 2
Port 0
Port 1
Port 3
Pointer
Stack
PCL DPL
DPHPCH
DekodiererRAM-Adressen
Steuersignale
Steuerlogik
IE
IP
SCON
SBUF(Senden)
SBUF(Empfang)
TCON
TMOD
TL0
TH0
TL1
TH1
Statuswort
Zähler/Zeitgeb.
Steuerung
Unterbrechungs-
Steuerung
Port
Serielles
/EA ALE /PSEN RST
VPD
Oszillator
XTAL1 XTAL2
20
Tabelle 3.3 Verwendete Abkürzungen im verfeinerten Blockbild des 8051
Abkürzung Bedeutung engl. ErklärungRAM Random Access Memory Schreib- und LesespeicherROM Read Only Memory Nur-LesespeicherPCH Program Counter High Byte Programmzähler höherwertiges BytePCL Program Counter Low Byte Programmzähler niederwertiges ByteDPH Data Pointer High Byte Adresszeiger auf externen Datenspeicher höherwertiges Byte
DPL Data Pointer Low Byte Adresszeiger auf externen Datenspeicher niederwertiges Byte
IE Interrupt Enable Register für UnterbrechungsfreigabeIP Interrupt Priority Register für UnterbrechungsprioritätSCON Serial Control Register für Einstellungen des seriellen Interface
SBUF Serial Buffer Speicher für SendenSBUF Serial Buffer Speicher für EmpfangenTCON Timer Control Zeitgeber KontrolleTMOD Timer Mode Register für Zeitgebereinstellungen TL0, TH0 Timer 0 Low Byte,
Timer 0 High ByteLow Byte, High Byte von Zeitgeber 0
TL1, TH1 Timer 1 Low Byte, Timer 1 High Byte
Low Byte, High Byte von Zeitgeber 1
Abkürzung Bedeutung engl. Erklärung/EA External Address Bei Low-Pegel wird auf die externen Adressen zugegriffen
ALE Address Latch Enable Übernahme der zeitgemultiplexten Adressen
/PSEN Program Storage Enable Zugriff auf externen ProgrammspeicherRST / VPD Reset / Stand By Power Rücksetzen des Prozessors / Sparbetrieb
21
Tabelle 3.4 Port 3 Alternative Funktionen
Pin Bedeutung Pin Bedeutung
RxD serieller Empfang T0 Timer 0
TxD serielles Senden T1 Timer 1
/INT0 Interrupt 0 /WR externes Schreibsignal
/INT1 Interrupt 1 /RD externes Lesesignal
22
Abb. 3.17 Klassischer Aufbau eines Digitalrechners
Eingabeeinheit Ausgabeeinheit
Leitwerk Rechenwerk
¯ ¯¯¯ ¯¯
Speicher
23
Abb. 3.18 Verfeinertes Blockdiagramm des 8051 Digitalrechners
B-Register
Adressen
StatuswortAkkumu- Programm
RegisterTemporäres
decoderBefehls-
Dekodierer
RAMRAM128x8 ROM
4Kx8
RegisterTemporäres
logische
Arithmet.
Einheit
Port 2
Port 1
Port 3
Pointer
Stack
PCL DPLDPHPCH
DekodiererRAM-Adres.
Steuersignale
Steuerlogik
IE
IP
SCON
SBUF(Senden)
SBUF(Empfang)
TCON
TMOD
TL0
TH0
TL1
TH1
Statuswort
Zähler/
SteuerungUnterbrech.-
Port
Serielles
/EA ALE /PSEN RST
VPD
Oszillator
XTAL1 XTAL2
Port 0
lator
Zeitgeber
24
InterruptSystem
Sieben Kern
ROMRAM
Timer 2
A / D Watchdog
TimerWandler Ports
mitPWM
80C51
Abb. 3.19 80C535 Erweiterungen
25
Abb. 3.20. 80C515 / 80535 Blockdiagramm (weis – 8051)
Oscillator
&Timing
Data Memory
Two 16-Bit
Timer/Event
Counters
80C51
CPU
64 KByte Bus
Expanter
Control
Programmable
I/O
Interrupts
Interrupts
80C515A only
Frequency Reference
SerialIN
SerialOUT
Parallel PortsAdress Data Bus
and I/O Pins
Counters
8K x 8
ROM
256x8 Timer 2Compare/CaptureRegister
BaudratenGenerator
S&H MUX
ProgrammableSerial port
UARTSynchronous Shifter
VARef
VAGND
Watchdog
P0 P1 P2 P3 P4 P5
Progr. Ref.
Spannung
A/D
P6
7
5
26
Adressbereiche
Programmspeicher
intern/EA=1 und
Adresse <1000H
extern intern extern
Datenspeicher
/RD-/WR-Signal aktiv
MOVX A,@DPTR
obere 128 Bytes untere 128 Bytes
MOV A,RO
MOV A,PSWMOV A,@RO
SFR
MOV A,@RO
/PSEN aktiv
Abb. 3.21 Adressbereiche 8051 mit den Befehlen zum Ansprechen
27
Abb. 3.22
Von-Neumann-Architektur
Daten
Speicher
Daten
Adressen
Peri-pherie
Daten
Adressen
CPUDaten
Adressen
ProgrammProgramm
Programm
Programm
Daten
Daten
Daten-speicher
Daten
Adressen
Peri-pherie
Daten
Adressen
Programmspeicher
Daten
Adressen
CPUDaten
Adressen
Abb. 3.23
Harvard-Architektur
28
Abb. 3.24 Erzeugen der Von-Neumann-Architektur
/OE
RAM
/PSEN
vom Prozessor
/RD &
/PSEN /RD /OE0 0
0 1 01 0 01 1 1
Tabelle 3.5 Erzeugen der Von-Neumann-Architektur
29
Abb. 3.26 Prinzip für Lesen des Programmspeichers
/PSEN
Daten
AdresseA0-A15
Instr. N
Übernahme der Instruktion
aus dem Programmspeicher
vom Controller
vom EPROM
vom Controller
30
Abb. 3.27 Programmspeicher lesen ohne Multiplex-Verfahren
PSEN
Daten
Adresse
A0-A15
Instr. N
t PLIV
t AVIV
t PXIZ
Übernahme der Instruktionaus dem Programmspeicher
vom Controller
vom EPROM
vom Controller
31
Abb. 3.28 Programmspeicher lesen vereinfacht
ALE
PSEN
Port 0
Port 2
A0-A7
A8-A15
Instr. N A0-A7
tPLIV
tAVIV
t PXIZ
tLLIV
32
Abb. 3.29 Blockbild für einfache Timingberechnungen
Port 0
Port 2
ALE
/PSEN
Adress-Latch Eprom
80535
Low-Byte-Adresse / Datum
High-Byte-Adresse
Port 3
LE
74HC573
27128JL-25
TMS
/CE20
49
1150
/OE22
Low-Byte-Adresse
33
Abb. 3.30 Programmspeicher Lesezugriff vollständig
ALE
PSEN
Port 0
Port 2
A0-A7
A8-A15
Instr. N A0-A7
tLHLL
tAVLL tPLPH
tAZPL
tLLAX
tLLPL
tPLIV
tAVIV
tPXIX
t PXIZ
t PXAV
tLLIV
34
Abb. 3.31 Zeitbedingungen für EPROM und 80C535 in einem Signal-Zeit-Diagramm
ADDR:
P0:
ALE:
/PSENTPLIV
(tOE)
TPXIZtDF
TLLIV
(tCE)tDF
PCL PCLINSTR.
TAVIV
(tACC)
Tprop
35
Tabelle 3.6 Timing-Werte für Controller 80C535 und EPROM
Symbol Parameter min12MHz
max12MHz
Ein-heit
(tACC) Access time Eprom 250 ns
TAVIV Adress to valid instruction in 302 ns
(tCE) /CE to Output Valid 250 ns
TLLIV ALE to valid instruction in 233 ns
(tOE) /OE To Output Valid 70 ns
TPLIV /PSEN to valid instruction in 150 ns
(tDF) Output in High-Z 60 ns
TPXIZ Input instruction float after /PSEN 63 ns
36
Abb. 3.32 Vor und nach der Adreßspiegelung
0000H
7FFFH8000H
FFFFH
0000H
7FFFH8000H
FFFFH
ROM
bzw.
EPROM
RAM
ROM
bzw.
EPROM
RAM
Vor Adreßspiegelung Nach Adreßspiegelung
37
Abb. 3.33 Zustand nach dem Einschalten oder Reset
0 0
0
1
CE Rom
CE Ram3
A 15
PSEN
RS Tast
38
Abb. 3.34 Zustand bei Zugriff auf Adresse > 8000H
1 1
0
1
1 110
1
10
CE Rom
CE Ram
A 15
PSEN
RS Tast
39
Abb. 3.35 Funktionsweise - Timing für Adressumschaltung
D=A15
/PSEN
Q=NORE
CLK=NORA
/Q
/CE ROM
/CE RAM
40
Abb. 3.36 Blockbild für Timingberechnungen am RAM
Port 0
Port 2
ALE
Adress-Latch RAM
80535
High-Byte-Adresse
Port 3
LE
74HCT573
62256A-10L
/OE22
1150
/RD
/WE
/WR
/CS20
27
28
27
Low-Byte-AdresseLow-Byte-Adresse / Datum
41
Abb. 3.37 Signal-Zeit Diagramm für Datenspeicher lesen am 80C535
ALE
PSEN
RD
Port 0
Port2
A0-A7 fromRi or DPL
Data IN
P2.0-P2.7 or A8-A15 from DPH
tAVWL
AVDV
AVLL
LLAX2
RLDV
RLAZ
RHDZ
RHDX
t
t
t
t
t
t
A8 - A15 from PCH
A0-A7from PCL
Instr.IN
t WHLH
LLDV
LLWL RLRH
t
tt
42
Tabelle 3.7 Wichtigste Timing-Werte für Controller 80C535 externer Datenspeicher lesen (Datenbuch Siemens 80C535)
Tabelle 3.8 Wichtigste Timing-Werte für den RAM-Speicher 55257 AFL-10 (Baugleich mit 62256A‑10L) sind (Datenbuch Toshiba MOS Memory)
Symbol Parameter min max62256A
Ein-heit
(tACC) Access time RAM 100 ns
(tCE) /CE to Output Valid 100 ns
(tOE) /OE To Output Valid 50 ns
(tOD) Output in High-Z 50 ns
Symbol Parameter min12MHz
max12MHz
Ein-heit
TAVDV Adress to valid data in
585 ns
TLLDV ALE to valid data in 517 nsTRLDV /RD to valid data in 252 nsTRHDZ DATA float after
/RD97 ns
43
Abb. 3.38 Schaltungsteil zur Erzeugung der Von-Neumann-Architektur
Abb. 3.39 Zustand bei Zugriff auf Adresse > 8000h
Vcc
1
2
3J4
> = 1
> = 1
> = 1
OE RAM
PSEN
RD
RD
PSEN
OE RAMFall 1 Fall 2
44
Abb. 3.40 Signal-Zeit-Diagramm für Datenspeicher schreiben am 80C535
ALE
PSEN
RD
Port 0
Port2
A0-A7 fromRi or DPL
Data IN
P2.0-P2.7 or A8-A15 from DPH
tAVWL
AVDV
AVLL
LLAX2
RLDV
RLAZ
RHDZ
RHDX
t
t
t
t
t
t
A8 - A15 from PCH
A0-A7from PCL
Instr.IN
t WHLH
LLDV
LLWL RLRH
t
tt
45
Tabelle 3.9 Wichtigste Timing-Werte für Controller 80C535 externer Datenspeicher schreiben ( Datenbuch Siemens 80C535 )
Tabelle 3.10 Wichtigste Timing-Werte für den RAM-Speicher 55257 AFL-10 schreiben (Baugleich mit 62256A‑10L) sind ( Datenbuch Toshiba MOS Memory):
Symbol Parameter min max Einheit
(tWC) Write Cycle Time 100 ns
(tCW) Chip Selection to End of Write
90 ns
(tDS) Data Set up Time 40 ns
(tDH) Data Hold Time 0 0 ns
Symbol Parameter min12MHz
max12MHz
Ein-heit
TAVWL Adress valid to /WR 203 ns
TLLWL ALE to /WR or /RD 200 300 ns
TQVWH Data setup before /WR
288
TWHQX Data hold after /WR 13