Title: GRADNIKI SISTEMOV PROCESNEGA VODENJA
1GSPV
GRADNIKI SISTEMOV PROCESNEGA VODENJA
Elektrotehnika - Avtomatika
Procesna avtomatika - Inteligentni sistemi
4. letnik (7. semester)
2NACTOVANJE MIKRORACUNALNIKA
Razvoj strojne opreme
Razvoj programske opreme
- analiza kompleksnosti problema
- izbira osnovnih parametrov (procesor, kolicina
pomnilnika )
- izbira komponent
- nacrtovanje vezja
- elektricne lastnosti
- mehanske lastnosti
- zgradba prog. opreme
- izbira OS in prog. jezika
- krmilniki za periferijo
- algoritmi in kodiranje
3ZGRADBA MIKRORACUNALNIKA
Podatkovno vodilo
Naslovno vodilo
Kontrolno vodilo
CPU
ROM
RAM
I/O
4Cena 1 - 1000
Poraba energ.
- Tehnologija
- NMOS
- CMOS
- 5mm - 0.15mm
- Napajalnanapetost
- 5 V
- 3.3V
- 2.5V
- 1.8V
Mikroprocesor (CPU)
- Širina vodila
- 8 bitov
- 16 bitov
- 32 bitov
- 64 bitov
- Pakiranje (ohišje)
- DIL
- PGA ...
- SO, TSOP, TQFP, BGA ...)
5MIKROPROCESOR MC6800
- prvi Motorolin mikroprocesor (1974)
- 8 bitno podatkobno vodilo
- 16 bitno naslovno vodilo
- 72 ukazov
- 6 internih registrov
- 7 nacinov naslavljanja
- frekvenca ure 2 MHz
6OSNOVNE ENOTE MIKROPROCESORJA MC6800
Dekodirnik ukazov nadzor
Vmesnik za krmiljenje vodil
Registri
ALU
7MIKROPROCESOR MC6800 - Programski model
0
7
Akumulator A
ACCA
0
7
Akumulator B
ACCB
0
15
Indeksni register
IX
0
15
Programski števec
PC
0
15
Kazalec sklada
SP
0
7
1
1
H
I
N
Z
V
C
Statusni register
CCR
Carry
Overflow
Zero
Negative
Interrupt
Half Carry
8ZGRADBA MIKROPROCESORJA MC6800
A7
A6
A5
A4
A3
A2
A1
A0
A15
A14
A13
A12
A11
A10
A9
A8
Vmesnik za nalove (H)
Vmesnik za nalove (L)
Dekodirnik ukazov nadzor
Programski števec (H)
Programski števec (L)
F1
F2
Kazalec sklada (H)
Kazalec sklada (L)
RESET
NMI
HALT
Indeksni register (H)
Indeksni register (L)
IRQ
TSC
DBE
Statusni register
Akumulator A
BA
VMA
R/W
Akumulator B
ALU
Ukazni register
Podatkovni vmesnik
D7
D6
D5
D4
D3
D2
D1
D0
9PRIKLJUCKI MIKROPROCESORJA MC6800
Podatkovno vodilo
- D0 - D7 Data Bus
- A0 - A15 Address Bus
- DBE Data Bus Enable
- BA Bus Available
- R/W Read / Write
- RESET Reset
- IRQ Interupt Request
- NMI Non Maskable Interrupt
- VMA Valid Memory Address
- TSC Three-State Control
- HALT Halt
- F1 Clock Phase 1
- F2 Clock Phase 2
- VCC Supply Voltage (5V)
- VSS Ground
Naslovno vodilo
Kontrolno vodilo
Napajanje
10POMNILNIŠKI PROSTOR PROCESORJA
Naslov
Vsebina
26
0000
38
0001
2A
0002
5C
0003
EF
0004
00
0005
3A
0006
16
0007
00
0008
00
0009
00
000A
46
FFFE
AC
FFFF
11POMNILNIŠKI PROSTOR PROCESORJA
26
0000
38
0001
I/O (256 bytov)
2A
0002
00
00FF
00
0100
Prosto
3A
3FFF
64KB
16
4000
00
4001
RAM (16KB)
00
7FFF
00
8000
46
8001
ROM (32KB)
AC
FFFF
12IZVRŠEVANJE UKAZA LDAA - korak 1
CPU
RAM
Naslovno vodilo
Programski števec
26
0020
38
0021
1F46
2A
0022
5C
0023
Akumulator A
EF
0024
00
0025
3A
0026
Podatkovno vodilo
Ukazni register
16
1F45
96
1F46
LDAA
24
1F47
24
4C
1F48
INCA
Naslovni register
97
1F49
STAA
23
1F4A
23
13IZVRŠEVANJE UKAZA LDAA - korak 2
CPU
RAM
Naslovno vodilo
Programski števec
26
0020
38
0021
1F46
2A
0022
5C
0023
Akumulator A
EF
0024
00
0025
3A
0026
Podatkovno vodilo
Ukazni register
16
1F45
96
96
1F46
LDAA
24
1F47
24
4C
1F48
INCA
Naslovni register
97
1F49
STAA
23
1F4A
23
14IZVRŠEVANJE UKAZA LDAA - korak 3
CPU
RAM
Naslovno vodilo
Programski števec
26
0020
1F46
38
0021
2A
0022
5C
0023
Akumulator A
EF
0024
00
0025
3A
0026
Ukazni register
Podatkovno vodilo
16
1F45
96
96
1F46
LDAA
24
1F47
24
4C
1F48
INCA
Naslovni register
97
1F49
STAA
23
1F4A
23
0024
15IZVRŠEVANJE UKAZA INCA - korak 1
CPU
RAM
Naslovno vodilo
Programski števec
26
0020
38
0021
1F48
2A
0022
5C
0023
Akumulator A
EF
0024
00
0025
EF
3A
0026
Ukazni register
Podatkovno vodilo
16
1F45
96
96
1F46
LDAA
24
1F47
24
4C
1F48
INCA
Naslovni register
97
1F49
STAA
23
1F4A
23
0024
16IZVRŠEVANJE UKAZA STAA - korak 1
CPU
RAM
Naslovno vodilo
Programski števec
26
0020
38
0021
1F49
2A
0022
5C
0023
Akumulator A
EF
0024
00
0025
F0
3A
0026
Ukazni register
Podatkovno vodilo
16
1F45
4C
96
1F46
LDAA
24
1F47
24
4C
1F48
INCA
Naslovni register
97
1F49
STAA
21
1F4A
21
0024
17IZVRŠEVANJE UKAZA STAA - korak 2
CPU
RAM
Naslovno vodilo
Programski števec
26
0020
38
0021
1F49
2A
0022
5C
0023
Akumulator A
EF
0024
00
0025
F0
3A
0026
Ukazni register
Podatkovno vodilo
16
1F45
97
96
1F46
LDAA
24
1F47
24
4C
1F48
INCA
Naslovni register
97
1F49
STAA
21
1F4A
21
0024
18IZVRŠEVANJE UKAZA STAA - korak 3
CPU
RAM
Naslovno vodilo
Programski števec
26
0020
38
0021
1F49
2A
0022
5C
0023
Akumulator A
EF
0024
00
0025
F0
3A
0026
Podatkovno vodilo
Ukazni register
16
1F45
97
96
1F46
LDAA
24
1F47
24
4C
1F48
INCA
Naslovni register
97
1F49
STAA
21
1F4A
21
0021
19NACINI NASLAVLJANJA
UKAZ KODA UKAZA OPERAND
Kje se nahaja operand ?
- V prvih 256 bytih pomnilnika Direktno (Direct)
- V pomnilniku Razširjeno (Extended)
- Takoj za kodo ukaza Takojšnje (Immediate)
- Operanda ni ali je v akumulatorju Vsebovano
(Inherent) - Naslov operanda PC /- odmik,
- ki je za kodo ukaza Relativno (Relative)
- Nalov operanda X odmik,
- ki je za kodo ukaza Indeksno (Indexed)
20Nacini naslavljanja Direktno naslavljanje
Ukaz
n
Z Naslov operanda
n1
Naslednji ukaz
n2
K Operand
Z
ali
KH Operand
Z
KL Operand
Z1
Primeri LDAA F0 - Preberi v akumulator A
vrednost, ki je shranjena na naslovu F0. ADDA
17 - Prištej akumulatorju A vrednost, ki je
shranjena na naslovu 17.
21Nacini naslavljanja Razširjeno naslavljanje
Ukaz
n
ZH Naslov operanda
n1
ZL Naslov operanda
n2
Naslednji ukaz
n3
K Operand
Z
ali
KH Operand
Z
KL Operand
Z1
Primeri LDAA 7AF0 - Preberi v akumulator A
vrednost, ki je shranjena na naslovu 7AF0. LDX
1700 - Naloži v indeksni register vrednost,
ki je shranjena na naslovih 1700 in
1701.
22Nacini naslavljanja Takojšnje naslavljanje
Ukaz
n
K Operand
n1
Naslednji ukaz
n2
ali
Ukaz
n
KH Operand
n1
KL Operand
n2
n3
Naslednji ukaz
Primeri LDAA 7A - Naloži v akumulator A
vrednost 7A. LDX 3701 - Naloži v indeksni
register vrednost 3701.
23Nacini naslavljanja Vsebovano
Ukaz
n
Naslednji ukaz
n1
Primeri INCA - Zvecaj vrednost v akumulatorju
A. CLC - Briši (postavi na 0) bit za prenos
(carry). NOP - No operation
24Nacini naslavljanja Relativno
Ukaz, ki vsebuje pogojni skok
n
/- K Dolžina skoka
n1
Naslednji ukaz, ce pogoj ni izpolnjen
n2
Naslednji ukaz, ce je pogoj izpolnjen
N2 /- K
Primeri BCC 04 - Ce je C(carry) bit 0,
preskoci štiri naslove, sicer nadaljuj. BNE F0
- Ce je Z(zero) bit 0, skoci nazaj za 15
naslovov, sicer nadaljuj.
25Nacini naslavljanja Indeksno
Ukaz
n
Z Odmik
n1
Naslednji ukaz
n2
K Operand
XZ
ali
KH Operand
XZ
KL Operand
XZ1
Primeri LDAA 0,X - Preberi v akumulator A
vrednost, ki je shranjena na naslovu, ki je
shranjen v indeksnem registru (X). ADDA 5,X -
Prištej akumulatorju A vrednost, ki je shranjena
na naslovu, ki je enak vrednosti v indeksnem
registru zvecani za 5.
26Nabor ukazov mikroprocesorja MC6800
Ukazi za delo z akumulatorji in pomnilnikom
27Ukazi za delo z akumulatorji in pomnilnikom
28Ukazi za delo z akumulatorji in pomnilnikom
29Ukazi za delo z akumulatorji in pomnilnikom
30Ukazi za delo z indeksnim registrom in kazalcem
sklada
31Ukazi za delo s statusnim registrom
32Pogojne Razvejitve (relativno naslavljanje)
33Brezpogojni skoki in posebni ukazi
34RESET mikroprocesorja MC6800 - korak 1
CPU
RAM
Naslovno vodilo
Programski števec
26
8020
xxxx
01
8021
96
8022
LDAA
24
8023
24
Akumulator A
4C
8024
INCA
97
8025
STAA
xx
23
8026
23
Podatkovno vodilo
16
FFFA
A8
FFFB
00
FFFC
Statusni register
00
FFFD
80
FFFE
1
1
x
x
x
x
x
x
22
FFFF
1
1
H
I
N
Z
V
C
35RESET mikroprocesorja MC6800 - korak 2
CPU
RAM
Naslovno vodilo
Programski števec
26
8020
80xx
01
8021
96
8022
LDAA
24
8023
24
Akumulator A
4C
8024
INCA
97
8025
STAA
xx
23
8026
23
Podatkovno vodilo
16
FFFA
A8
FFFB
00
FFFC
Statusni register
00
FFFD
80
FFFE
1
1
x
1
x
x
x
x
22
FFFF
1
1
H
I
N
Z
V
C
36Operacije s skladom
- shranjevanje podatkov PSHA, PSHB
- jemanje podatkov PULA, PULB
- skok na podprogram BRS, JSR
- vrnitev iz podprograma RTS
- prekinitev SWI, IRQ, NMI
- vrnitev iz prekinitve RTI
- operacije s kazalcem sklada LDS, STS, INS, DES
37Sklad - shranjevanje podatkov (PSHA, PSHB)
Pred izvršitvijo
Po izvršitvi
MPU
MPU
k
ACCA
k
ACCA
m
SP
m - 1
SP
n
PC
n 1
PC
m - 2
m - 2
m - 1
m - 1
SP ?
m
SP ?
k
m
7F
m 1
7F
m 1
63
m 2
63
m 2
FD
m 3
FD
m 3
PSHA
n
PC ?
PSHA
n
Nasl. Inš.
n 1
Nasl. Inš.
n 1
PC ?
38Sklad - jemanje podatkov (PULA, PULB)
Pred izvršitvijo
Po izvršitvi
MPU
MPU
ACCA
k
ACCA
m - 1
SP
m
SP
n
PC
n 1
PC
m - 2
m - 2
m - 1
SP ?
m - 1
k
m
m
SP ?
7F
m 1
7F
m 1
63
m 2
63
m 2
FD
m 3
FD
m 3
PULA
n
PC ?
PSHA
n
Nasl. Inš.
n 1
Nasl. Inš.
n 1
PC ?
39Skok na podprogram (JSR)
MPU
MPU
X
X
m
SP
m - 2
SP
n
PC
S
PC
3
m - 2
m - 2
SP ?
m - 1
(n 3)H
m - 1
m
SP ?
(n 3)L
m
7F
m 1
7F
m 1
63
m 2
63
m 2
JSR
n
PC ?
JSR
n
SH
n 1
SH
n 1
SL
n 2
SL
n 2
Nasl. Inš.
n 3
Nasl. Inš.
n 3
Sub.
S
PC ?
Sub.
S
S 1
S 1
40Skok na podprogram (JSR x)
MPU
MPU
x
X
x
X
m
SP
m - 2
SP
n
PC
x k
PC
2
m - 2
m - 2
SP ?
m - 1
(n 2)H
m - 1
m
SP ?
(n 2)L
m
x
7F
m 1
7F
m 1
63
m 2
63
m 2
JSR, x
n
PC ?
JSR
n
k
n 1
k
n 1
Nasl. Inš.
n 2
Nasl. Inš.
n 2
Sub.
x k
PC ?
Sub.
x k
x k 1
x k 1
41Relativni skok na podprogram (BSR)
MPU
MPU
X
X
m
SP
m - 2
SP
n
PC
n2k
PC
2
m - 2
m - 2
SP ?
m - 1
(n 2)H
m - 1
m
SP ?
(n 2)L
m
/-
7F
m 1
7F
m 1
63
m 2
63
m 2
BSR
n
PC ?
BSR
n
k
n 1
k
n 1
Nasl. Inš.
n 2
Nasl. Inš.
n 2
Sub.
n 2 k
PC ?
Sub.
n 2 k
n 3 k
n 3 k
42Vrnitev iz podprograma
MPU
MPU
X
X
m - 2
SP
m
SP
Sn
PC
n 2
PC
m - 2
SP ?
m - 2
(n 2)H
m - 1
m - 1
(n 2)L
m
m
SP ?
7F
m 1
7F
m 1
63
m 2
63
m 2
BSR
n
BSR
n
k
n 1
k
n 1
Nasl. Inš.
n 2
Nasl. Inš.
n 2
PC ?
S(n-1)
S(n-1)
PC ?
RTS
Sn
RTS
Sn
43Prekinitev (Interrupt)
MPU
MPU
Vektor
m
SP
m - 7
SP
PH
FFFC
n
PC
P
PC
PL
FFFD
m - 7
SP ?
m - 7
m - 6
CCR
m - 6
m - 5
B
m - 5
m - 4
A
m - 4
PC, X, A, B, CCR
m - 3
XH
m - 3
m - 2
XL
m - 2
m - 1
(n 1)H
m - 1
m
SP ?
(n 1)L
m
Inšt. k
n
PC ?
Inšt. k
n
Inšt. k 1
n 1
Inšt. k 1
n 1
Interr.
P
PC ?
Interr.
P
P 1
P 1
44Vrnitev iz prekinitve
MPU
MPU
m - 7
SP
m
SP
Pn
PC
n 1
PC
m - 7
SP ?
m - 7
CCR, B, A, X, PC
m - 6
CCR
m - 6
m - 5
B
m - 5
m - 4
A
m - 4
m - 3
XH
m - 3
m - 2
XL
m - 2
m - 1
(n 1)H
m - 1
m
SP ?
(n 1)L
m
Inšt. k
n
Inšt. k
n
PC ?
Inšt. k 1
n 1
Inšt. k 1
n 1
P(n-1)
P(n-1)
PC ?
RTI
Pn
RTI
Pn
45Prekinitveni vektorji
IRQ L
FFF8
Interrupt Request
IRQ L
FFF9
SWI L
FFFA
Software Interrupt
SWI L
FFFB
NMI H
FFFC
Non Maskable Interrupt
NMI L
FFFD
RESET H
FFFE
Reset
RESET L
FFFF
46Pisanje in prevajanje programov
Zbirnik - Assembler
- komentarji
- ukazi procesorja
- ukazi zbirnika
- spremenljivke (labele)
- konstante
- aritmeticni in logicni izrazi
Primer programa, ki vrednosti, shranjene
na naslovih 800, 801 in 802, zveca za 10
ORG 8000 zacetek programa na naslovu
8000 LDAA 800 preberemo prvo
število ADDA 10 prištejemo mu 10 STAA 800
shranimo vsoto LDAA 801 preberemo drugo
število ADDA 10 prištejemo mu 10 STAA 801
shranimo vsoto LDAA 802 preberemo tretje
število ADDA 10 prištejemo mu 10 STAA 802
shranimo vsoto
47 Primer programa, ki vrednosti, shranjene
na naslovih 800, 801 in 802, zveca za 10
RAM EQU 6000 naslov pomnilnika
RAM ST1 EQU 800 naslov prvega
stevila ST2 EQU ST11 naslov drugega
stevila ST3 EQU ST12 naslov trejega
stevila KONST EQU 10 konstanta, ki jo
prištevamo ORG RAM zacetek programa v
RAM-u LDAA ST1 preberemo prvo
število ADDA KONST prištejemo mu
10 STAA ST1 shranimo vsoto LDAA ST2
preberemo drugo število ADDA KONST prištejemo
mu 10 STAA ST2 shranimo vsoto LDAA ST3
preberemo tretje število ADDA KONST
prištejemo mu 10 STAA ST3 shranimo vsoto
- komentarji
- ukazi procesorja
- ukazi zbirnika
- spremenljivke (labele)
- konstante
- aritmeticni in logicni izrazi
48 Primer programa, ki vrednosti, shranjene
na naslovih 800, 801 in 802, zveca za 10
RAM EQU 6000 naslov pomnilnika
RAM ST1 EQU 800 naslov prve vrednosti N EQU 3
stevilo bytov KONST EQU 10 konstanta, ki jo
prištevamo ORG RAM zacetek programa v
RAM-u LDX ST1 naložimo naslov prve
vrednosti v X LDAB N naložimo število bytov v
B ZANKA LDAA 0,X preberemo prvo
število ADDA KONST prištejemo mu
10 STAA 0,X shranimo vsoto INX zvecamo X
(naslednja vrednost) DECB zmanjsamo števec
bytov BNE ZANKA ce števev ni enak 0,
nadaljujemo
49 Primer programa, ki vrednosti, shranjene
na naslovih 800, 801 in 802, zveca za 10
RAM EQU 6000 naslov pomnilnika
RAM ST1 EQU 800 naslov prve vrednosti KONST EQU
10 konstanta, ki jo prištevamo ORG RAM
zacetek programa v RAM-u PRIMER LDX ST1
naložimo naslov prve vrednosti v X JSR ZVECAJ
zvecamo prvo vrednost JSR ZVECAJ zvecamo drugo
vrednost JSR ZVECAJ zvecamo tretjo
vrednost nadanjevanje Podprogram, ki
zveca za KONST, spominsko lokacijo, na katero
kaže X ZVECAJ LDAA 0,X preberemo vrednost na
katero kaže X ADDA KONST prištejemo
10 STAA 0,X shranimo vsoto INX zvecamo X
(naslednja vrednost) RTS
500001 Primer
programa, ki vrednosti, shranjene na 0002
naslovih 800, 801 in 802,
zveca za 10 0003
0004 RAM EQU 6000 naslov pomnilnika
RAM 0005 ST1 EQU 800 naslov prve
vrednosti 0006 KONST EQU 10 konstanta, ki jo
prištevamo 0007 0008
6000 ORG RAM zacetek
programa v RAM-u 0009
0010 6000 CE 08 00 PRIMER LDX ST1 naslov
prve vrednosti ? X 0011 6003 BD 60 0C
JSR ZVECAJ zvecamo prvo vrednost 0012
6006 BD 60 0C JSR ZVECAJ
zvecamo drugo vrednost 0013 6009 BD 60 0C
JSR ZVECAJ zvecamo tretjo
vrednost 0014
nadanjevanje 0015
0016 0017
Podprogram, ki zveca za KONST,
spominsko lokacijo, 0018
na katero kaže X 0019
0020 600C A6 00 ZVECAJ LDAA 0,X preberemo
vrednost na katero kaže X 0021 600E 8B 0A
ADDA KONST prištejemo 10 0022 6010 A7 00
STAA 0,X shranimo vsoto 0023
6012 08 INX zvecamo X
(naslednja vrednost) 0024 6013 39
RTS 0025
51Prevajanje programa
TEST.ASM
Primer programa, ki vrednosti, shranjene
na naslovih 800, 801 in 802, zveca za 10
RAM EQU 6000 naslov pomnilnika
RAM ST1 EQU 800 naslov prve vrednosti KONST EQU
10 konstanta, ki jo prištevamo ORG RAM
zacetek programa v RAM-u PRIMER LDX ST1
naložimo naslov prve vrednosti v X JSR ZVECAJ
zvecamo prvo vrednost JSR ZVECAJ zvecamo drugo
vrednost JSR ZVECAJ zvecamo tretjo
vrednost nadanjevanje Podprogram, ki
zveca za KONST, spominsko lokacijo, na katero
kaže X ZVECAJ LDAA 0,X preberemo vrednost na
katero kaže X ADDA KONST prištejemo
10 STAA 0,X shranimo vsoto INX zvecamo X
(naslednja vrednost) RTS
C\gt ASM TEST
TEST.HEX (Motorola S format)
S0030000FC S1176000CE0800BD600CBD600CBD600CA6008B0
AA700083914 S9030000FC
52ABC.HEX (Motorola S format)
S0030000FC S1136000CE0800BD600CBD600CBD600CA6008B0
A14 S11360103974F39B0381A0387EF02BA565D76479A3 S11
36020A700083928FA39E0AA010198029A7BA0F2 S106603003
7F197F S1136800013936345FA28BA9034903790AA2882142
S105681028BA8C S107FFFC60006800AA S90300003B
Oznaka
Število znakov v vrstici
Naslov
Vsebina (podatki)
Kontrola parnosti
53- Osnovni ukazi zbirnika
- EQU Equal
- ORG Origin
- RMB Reserve Memory Bytes (ds - define space)
- FCB Form Constant Byte (db - define byte)
- FDB Form Double Byte (dw - define word)
- FCC Form Constant Character
- END End
540001 0000 K1 EQU 128 0002 0000
K2 EQU 1234 0003 0000 K3 EQU 01001001 0004
0005 8100 ORG 8100 0006 8100
0A148049 NASL0 FCB 10, 20, K1, K3 0007 8104
AABB12A21033 FDB AABB, 12A2, 1033 0008 810A
8100 FDB NASLO0 0009 810C F2 FCB
11110010 0010 810D 544F204A4520
54455354 FCC TO JE TEST 0011 8117
000000 VAR1 RMB 3 0012 811A 00
VAR2 RMB 1 0013 811B 8117 NA1 FDB VAR1 0014
0015 8000 ORG 8000 0016 8000
CE811B LDX NA1 0017 8003 FE811B LDX NA1 0018
8006 08 INX
55POMNILNIKI
- RAM
- Staticni
- Dinamicni
- Dual port
- Zero power
- EEPROM
- Serijski
- Paralelni
- Flash EPROM
- Serijski (Data flash)
- Paralelni
56POMNILNIKI - Povezava s CPU
D0
D0
RAM (8K)
A0
A0
CPU
D1
D1
A1
A1
D2
D2
A2
A2
D3
D3
A3
A3
D4
D4
A4
A4
D5
D5
A5
A5
D6
D6
A6
A6
D7
D7
A7
A7
A8
A8
A9
A9
A10
A10
A11
A11
A12
A12
A13
DEKODIRNIK NASLOVOV
A14
A15
CS
E(?2)
VMA
R/W
R/W
57DEKODIRANJE NASLOVOV
I/O
0000
0001
0000
0002
0001
0003
I/O (4 byte)
0002
0003
0004
RAM
Prosto
0000
0001
9FFF
A000
A001
1FFF
RAM (8KB)
BFFF
C000
ROM
C001
0000
ROM (16KB)
0001
FFFF
3FFF
581. Linearno dekodiranje naslovov
ROM (8 KB)
RAM (8 KB)
I/O (4 B)
D0 - D7
D0 - D7
D0 - D7
A0 - A12
A0 - A12
A0 - A1
CS
CS
CS
A15
A14
A13
- Ni dekodirnega vezja
- Nizka cena
- Slaba izkorišcenost naslovnega prostora
- Potrebna je previdnost pri programiranju
590000
Prosto
8K
1FFF
2000
I/O
8K
3FFF
4000
RAM
8K
5FFF
6000
Prepovedano
8K
7FFF
8000
ROM
8K
9FFF
A000
Prepovedano
8K
BFFF
C000
Prepovedano
8K
DFFF
E000
8K
Prepovedano
FFFF
Linearno dekodiranje
602. Delno dekodiranje naslovov
ROM (16 KB)
RAM (8 KB)
I/O (4 B)
E(?2)
A14
A15
VMA
D0 - D7
D0 - D7
D0 - D7
A0 - A13
A0 - A12
A0 - A1
CS
CS
CS
- Majhno število elementov
- Ni možnosti trcenja na podatkovnem vodilu
- Naslovni prostor ni popolnoma izkorišcen
610000
0-DRA
4000
1-CRA
4001
Prosto 16K
2-DRB
4002
3-CRB
4003
3FFF
0-DRA
4004
4000
1-CRA
4005
2-DRB
4006
I/O 16K
3-CRB
4007
0-DRA
4008
7FFF
8000
RAM 8K
9FFF
0-DRA
7FFC
A000
1-CRA
7FFD
RAM 8K
2-DRB
7FFE
BFFF
3-CRB
7FFF
C000
ROM 16K
FFFF
Delno dekodiranje
623. Popolno dekodiranje naslovov
ROM (16 KB)
RAM (8 KB)
I/O (4 B)
E(?2)
A14
A15
VMA
A13
D0 - D7
D0 - D7
D0 - D7
A0 - A13
A0 - A12
A0 - A1
CS
CS
CS
- Vsak register je dostopen le na enem naslovu
- Velio število elementov
- Visoka cena
- Naslovni prostor je popolnoma izkorišcen
A2
A12
630000
0-DRA
4000
I/O 4B
0003
1-CRA
4001
0004
2-DRB
4002
3-CRB
4003
Prosto 40KB
9FFF
A000
RAM 8K
BFFF
C000
ROM 16K
FFFF
Popolno dekodiranje
64VHODNO IZHODNI VMESNIKI
ŠTEVCI
- SERIJSKI
- Sinhroni / Asinhroni
- RS232
- Ethernet
- ISDN
- FDDI
- USB
- E1, T1
- ATM .
- ANALOGNI
- A/D in D/A
- Paralelni ali serijski
- Locljivost (8 - 20 bitov)
- Nacin pretvorbe
- Hitrost
- Število vhodov (multipleks)
- Vgrajeni filtri
- Za posebne aplikacije (codec)
- PARALELNI
- Digitalno krmiljenje
- Senzorji
- Tiskalnik
- SCSI
- PCI
65MC6821 PIA (Peripheral Interface Adapter)
IRQA
Interrupt Control A
Control Reg. A
CA1
CA2
Data Bus Buffers
D0
Pheripheral Interface A
Data Dir. Reg. A
PA0
Data Reg. A
D7
PA7
Pheripheral Interface B
Data Reg. B
Chip Select R/W Control
PB0
CS0
CS1
CS2
RS0
Data Dir. Reg. B
RS1
PB7
R/W
E
Interrupt Control B
RESET
Control Reg. B
CB1
CB2
IRQB
66MC6821 PIA - Registri
67MC6821 PIA - Kontrolni register A
b7
b6
b5
b4
b3
b2
b1
b0
IRQA1 Flag
IRQA2 Flag
CA2 Control
DDR Access
CA1 Control
Zahteva za prekinitev 1 1 - po aktivnem
prehodu na vhodu CA1 0 - po branju podatkovnega
registra DRA
Omogocena prekinitev 1 1 - CA1 sproži IRQA 0
- CA1 ne sproži IRQA
Aktivni prehod za CA1 1 - aktiven je prehod iz
0 na 1 0 - aktiven je prehod iz 1 na 0
Statusni biti
Dostop do smernega/podat. reg. 1 - dosopen je
podatkovni register 0 - dostopen je smerni
register
Kontrolni biti
68MC6821 PIA - Kontrolni register A
Zahteva za prekinitev 1 1 - po aktivnem
prehodu na vhodu CA2, ce je CA2 definiran
kot vhod 0 - po branju podatkovnega registra DRA
CA2 Smer 0 - CA2 je vhod 1 - CA2 je izhod
b7
b6
b5
b4
b3
b2
b1
b0
IRQA1 Flag
IRQA2 Flag
CA2 Control
DDR Access
CA1 Control
CA2 je vhod
CA2 je izhod
Aktivni prehod za CA2 1 - aktiven prehod 0 ?
1 0 - aktiven prehod 1 ? 0
Funkcija CA2 1 - navaden izhod 0 - posebna
funkcija
Stanje CA2 / posebna funkcija 1 - 1 / Read
strobe with E restore 0 - 0 / Read strobe
with CA1 restore
Omogocena prekinitev CA2 1 - CA2 sproži IRQA
0 - CA2 ne sproži IRQA
69MC6821 PIA - Inicializacija
1. Zagotovimo dostop do podatkovnega reg. (DRA)
04 ? CRA 2. Nastavimo zacetne vrednosti
izhodov XX ? DRA 3. Zagotovimo dostop do
smernega registra (DDRA) 00 ? CRA 4.
Nastavimo smer posameznih bitov YY ? DDRA
5. Ponovno omogocimo dostop do podatkovnega
registra (DRA) in, ce je potrebno, omogocimo
prekinitve in nastavimo delovanje linij CA1 in
CA2 xxxxx1xx ? CRA
70MC6850 ACIA (Asynchronous Communications
Interface Adapter)
Data Bus Buffers
Transmitter
Transmit Data (TD)
Data Bus
Receiver
Receive Data (RD)
Selection Control
Address Control Interrupt
Pheripheral / Modem Control
Clear to Send (CTS) Request to Send (RTS) Data
Carrier Detect (DCD)
71MC6850 ACIA
Parity Gen.
Clock Gen.
T Clock
Transmit Shift Reg.
Transmit Data Reg.
Data Bus Buffers
TD
D0
Transmit Control
Status Register
D7
CTS
Interupt Logic
IRQ
DCD
Chip Select R/W Control
Control Register
RTS
CS0
CS1
Receive Control
Parity Check
CS2
RS
R/W
Receive Shift Reg.
Receive Data Reg.
E
RD
Sync Logic
Clock Gen.
R Clock
72MC6850 ACIA - Registri
73Kontrolni register ACIA
b7
b6
b5
b4
b3
b2
b1
b0
RIE
TC2
TC1
WS1
CDS2
WS3
WS2
CDS1
74MC6803
XTAL
EXTAL
E
NMI
IRQ
RESET
Mode
Expanded Multiplexed
Expanded Non Multiplexed
MPU
Single Chip
Port 3
Port 3
P20
A7/D7
D7
P37
P21
A6/D6
D6
P36
P22
A5/D5
D5
P35
P23
A4/D4
D4
P34
P24
A3/D3
D3
P33
A2/D2
D2
P32
IRQ1
IRQ2
A1/D1
D1
P31
Timer
A0/D0
D0
P30
R/W
R/W
SC2
2048 x 8 ROM
AS
IOS
SC1
SCI
Port 4
Port 3
P10
A15
A7
P47
Address
P11
A14
A6
P46
P12
A13
A5
P45
Data
P13
A12
A4
P44
P14
A11
A3
P43
128 x 8 RAM
P15
A10
A2
P42
P16
A9
A1
P41
P17
A8
A0
P40
75MC6803 - Programski model
ACCA
ACCB
0
0
7
7
8-bitna akumulatorja A in B ali 16-bitni
akumulator D
0
15
ACCD
0
15
Indeksni register
IX
0
15
Programski števec
PC
0
15
Kazalec sklada
SP
0
7
1
1
H
I
N
Z
V
C
Statusni register
CCR
Carry
Overflow
Zero
Negative
Interrupt
Half Carry
76MC6803 - Naslovni prostor
Mode 2
Mode 7
Mode 3
(MC6801)
0000
0000
0000
Interni registri
Interni registri
Interni registri
001F
001F
001F
0020
0020
0020
Prosto
0079
0079
0080
0080
Interni RAM
Interni RAM
00FF
00FF
0100
0100
Prosto
Prosto
F7FF
F800
Interni ROM
FFEF
FFEF
FFEF
FFF0
Vektorji
FFF0
Vektorji
FFF0
FFFF
FFFF
FFFF
77(No Transcript)
78MC6803 - Novi ukazi
ABX - prišteje indeksnemu registru vrednost iz
akumulatorja A ADDD - prišteje akumulatorju D
16-bitno vrednost iz pomnilnika SUBD - odšteje od
akumulatorja D 16-bitno vrednost iz
pomnilnika MUL - zmnoži vrednosti v akumulatorjih
A in B, rezultat je v D LSLD - premakne vsebino
akumulatorja D v levo LSRD - premakne vsebino
akumulatorja D v desno BHS - branch if higher or
same - enako kot BCC BLO - branch if lower -
enako kot BCS BRN - branch never - podobno kot
NOP (le traja 3 cikle) JSR - skok na podprogram z
direktnim nacinom naslavljanja LDD - naloži
16-bitno vrednost v akumulator D STD - shrani
vsebino registra D v pomnilnik PSHX - shrani
indeksni register na sklad PULX - vzame vsebino
indeksnega registra s sklada
79MC6803 - Prekinitveni vektorji
80MC6803 - Programmable Timer
Data Bus
Output Compare Register
Free Running Counter
Input Capture Register
Output Compare
Overflow Detect
Edge Detect
D
Q
Timer Control Status Register
ICF
OCF
TOF
EICI
EOCI
ETOI
IEDG
OLVL
DDR 2 Bit 1
Port 2 Bit 1 (Output)
Port 2 Bit 0 (Input)
IRQ