GRADNIKI SISTEMOV PROCESNEGA VODENJA - PowerPoint PPT Presentation

1 / 80
About This Presentation
Title:

GRADNIKI SISTEMOV PROCESNEGA VODENJA

Description:

GSPV GRADNIKI SISTEMOV PROCESNEGA VODENJA Elektrotehnika - Avtomatika Procesna avtomatika - Inteligentni sistemi 4. letnik (7. semester) – PowerPoint PPT presentation

Number of Views:49
Avg rating:3.0/5.0
Slides: 81
Provided by: mario
Category:

less

Transcript and Presenter's Notes

Title: GRADNIKI SISTEMOV PROCESNEGA VODENJA


1
GSPV
GRADNIKI SISTEMOV PROCESNEGA VODENJA
Elektrotehnika - Avtomatika
Procesna avtomatika - Inteligentni sistemi
4. letnik (7. semester)
2
NACTOVANJE 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

3
ZGRADBA MIKRORACUNALNIKA
Podatkovno vodilo
Naslovno vodilo
Kontrolno vodilo
CPU
ROM
RAM
I/O
4
Cena 1 - 1000
Poraba energ.
  • Tehnologija
  • NMOS
  • CMOS
  • 5mm - 0.15mm
  • Zgradba
  • CISC
  • RISC
  • DSP
  • 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 ...)

5
MIKROPROCESOR 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

6
OSNOVNE ENOTE MIKROPROCESORJA MC6800
Dekodirnik ukazov nadzor
Vmesnik za krmiljenje vodil
Registri
ALU
7
MIKROPROCESOR 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
8
ZGRADBA 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
9
PRIKLJUCKI 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
10
POMNILNIŠ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
11
POMNILNIŠ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
12
IZVRŠ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

13
IZVRŠ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

14
IZVRŠ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

15
IZVRŠ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

16
IZVRŠ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

17
IZVRŠ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

18
IZVRŠ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

19
NACINI 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)

20
Nacini 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.
21
Nacini 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.
22
Nacini 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.
23
Nacini 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
24
Nacini 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.
25
Nacini 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.
26
Nabor ukazov mikroprocesorja MC6800
Ukazi za delo z akumulatorji in pomnilnikom
27
Ukazi za delo z akumulatorji in pomnilnikom
28
Ukazi za delo z akumulatorji in pomnilnikom
29
Ukazi za delo z akumulatorji in pomnilnikom
30
Ukazi za delo z indeksnim registrom in kazalcem
sklada
31
Ukazi za delo s statusnim registrom
32
Pogojne Razvejitve (relativno naslavljanje)
33
Brezpogojni skoki in posebni ukazi
34
RESET 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

35
RESET 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

36
Operacije 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

37
Sklad - 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 ?

38
Sklad - 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 ?

39
Skok 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
40
Skok 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
41
Relativni 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
42
Vrnitev 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
43
Prekinitev (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
44
Vrnitev 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
45
Prekinitveni 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
46
Pisanje 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
50
0001 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
51
Prevajanje 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
52
ABC.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

54
0001 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
55
POMNILNIKI
  • RAM
  • Staticni
  • Dinamicni
  • Dual port
  • Zero power
  • ROM
  • ROM
  • PROM(OTP)
  • EPROM
  • EEPROM
  • Serijski
  • Paralelni
  • Flash EPROM
  • Serijski (Data flash)
  • Paralelni

56
POMNILNIKI - 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
57
DEKODIRANJE 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
58
1. 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

59
0000
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
60
2. 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

61
0000
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
62
3. 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
63
0000
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
64
VHODNO 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

65
MC6821 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
66
MC6821 PIA - Registri
67
MC6821 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
68
MC6821 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
69
MC6821 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
70
MC6850 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)
71
MC6850 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
72
MC6850 ACIA - Registri
73
Kontrolni register ACIA
b7
b6
b5
b4
b3
b2
b1
b0
RIE
TC2
TC1
WS1
CDS2
WS3
WS2
CDS1
74
MC6803
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
75
MC6803 - 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
76
MC6803 - 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)
78
MC6803 - 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
79
MC6803 - Prekinitveni vektorji
80
MC6803 - 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
Write a Comment
User Comments (0)
About PowerShow.com