73
GRADNIKI SISTEMOV PROCESNEGA VODENJA GSPV Procesna avtomatika - Inteligentni sistemi UNI- Elektrotehnika - Avtomatika 4. letnik (7. semester)

GRADNIKI SISTEMOV PROCESNEGA VODENJA

  • Upload
    hera

  • View
    83

  • Download
    4

Embed Size (px)

DESCRIPTION

GSPV. GRADNIKI SISTEMOV PROCESNEGA VODENJA. UNI- Elektrotehnika - Avtomatika. Procesna avtomatika - Inteligentni sistemi. 4. letnik (7. semester). NAČTOVANJE MIKRORAČUNALNIKA. Razvoj strojne opreme. Razvoj programske opreme. analiza kompleksnosti problema - PowerPoint PPT Presentation

Citation preview

Page 1: GRADNIKI SISTEMOV PROCESNEGA VODENJA

GRADNIKI SISTEMOV PROCESNEGA VODENJA

GSPV

Procesna avtomatika - Inteligentni sistemi

UNI- Elektrotehnika - Avtomatika

4. letnik (7. semester)

Page 2: GRADNIKI SISTEMOV PROCESNEGA VODENJA

NAČTOVANJE MIKRORAČUNALNIKA

Razvoj strojneopreme

Razvoj programske opreme

• izbira komponent • načrtovanje vezja• električne lastnosti• mehanske lastnosti

• zgradba prog. opreme• izbira OS in prog. jezika• krmilniki za periferijo • algoritmi in kodiranje

• analiza kompleksnosti problema• izbira osnovnih parametrov (procesor, količina pomnilnika,…)

Page 3: GRADNIKI SISTEMOV PROCESNEGA VODENJA

ZGRADBA MIKRORAČUNALNIKA

CPU ROM RAM I/O

Podatkovno vodilo

Kontrolno vodilo

Naslovno vodilo

Page 4: GRADNIKI SISTEMOV PROCESNEGA VODENJA

Mikroprocesor (CPU)

Zgradba:• CISC• RISC• DSP

Tehnologija:• NMOS• CMOS• 5m - 0.15m

Širina vodila:• 8 bitov• 16 bitov• 32 bitov• 64 bitov

Pakiranje (ohišje):• DIL• PGA ...• SO, TSOP, TQFP, BGA ...

Poraba energ.

Napajalnanapetost:• 5 V• 3.3V• 2.5V• 1.8V

Cena:1$ - 1000$

Page 5: GRADNIKI SISTEMOV PROCESNEGA VODENJA

MIKROPROCESOR MC6800

prvi Motorolin mikroprocesor (1974) 8 bitno podatkovno vodilo 16 bitno naslovno vodilo 72 ukazov 6 internih registrov 7 načinov naslavljanja frekvenca ure: 2 MHz

Page 6: GRADNIKI SISTEMOV PROCESNEGA VODENJA

Dekodirnik ukazov

+nadzor

ALU

Vmesnik za

krmiljenje vodil

OSNOVNE ENOTE MIKROPROCESORJA MC6800

Registri

Page 7: GRADNIKI SISTEMOV PROCESNEGA VODENJA

MIKROPROCESOR MC6800 - Programski model

0

0

0

0

0

0

7

7

7

15

15

15

1 1 H I N Z V C

ACCA

ACCB

IX

PC

SP

CCR

Akumulator A

Akumulator B

Indeksni register

Programski števec

Kazalec sklada

Statusni register

CarryOverflowZeroNegativeInterruptHalf Carry

Page 8: GRADNIKI SISTEMOV PROCESNEGA VODENJA

ZGRADBA MIKROPROCESORJA MC6800

Dekodirnik ukazov

+nadzor

Programski števec (H)

Kazalec sklada (H)

Indeksni register (H)

Ukazni register

Programski števec (L)

Kazalec sklada (L)

Indeksni register (L)

Akumulator A

Akumulator B

Statusni register

ALU

Podatkovni vmesnik

Vmesnik za nalove (H) Vmesnik za nalove (L)

D7 D6 D5 D4 D3 D2 D1 D0

A7 A6 A5 A4 A3 A2 A1 A0A15 A14 A13 A12 A11 A10 A9 A8

RESETNMI

HALTIRQTSCDBE

BAVMAR/W

Page 9: GRADNIKI SISTEMOV PROCESNEGA VODENJA

PRIKLJUČKI MIKROPROCESORJA MC6800

– 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– 1 Clock Phase 1– 2 Clock Phase 2– VCC Supply Voltage (+5V)– VSS Ground

Podatkovno vodiloNaslovno vodilo

Kontrolno vodilo

Napajanje

Page 10: GRADNIKI SISTEMOV PROCESNEGA VODENJA

POMNILNIŠKI PROSTOR PROCESORJA

26382A5CEF003A16000000

0000000100020003000400050006000700080009000A

46FFFEACFFFF

• •

Naslov Vsebina

Širina naslovnegavodila

Naslovljivpomnilnik

16 bitov 64K20 bitov 1MB24 bitov 16MB32 bitov 4GB

Page 11: GRADNIKI SISTEMOV PROCESNEGA VODENJA

POMNILNIŠKI PROSTOR PROCESORJA

26382A

00

3A

16

00

00

00

000000010002

00FF

3FFF

4000

7FFF

8000

4001

468001

ACFFFF

• •

Prosto

I/O (256 bytov)• •

000100• •

• •

RAM (16KB)

ROM (32KB)

• •

• •

• •

• •

64KB

Page 12: GRADNIKI SISTEMOV PROCESNEGA VODENJA

IZVRŠEVANJE UKAZA LDAA - korak 1

26382A5CEF003A

1696244C

0020002100220023002400250026

1F451F461F471F48

971F49231F4A

• •

• •

• •

LDAA$24

INCASTAA$23

CPU RAM

Akumulator A

Programski števec

Ukazni register

1F46

Naslovno vodilo

Podatkovno vodilo

1F46

1

2

96 4

3

96

Naslovni register

Page 13: GRADNIKI SISTEMOV PROCESNEGA VODENJA

IZVRŠEVANJE UKAZA LDAA - korak 2

26382A5CEF003A

1696244C

0020002100220023002400250026

1F451F461F471F48

971F49231F4A

• •

• •

• •

LDAA$24

INCASTAA$23

CPU RAM

Akumulator A

Programski števec

Ukazni register

1F46

Naslovno vodilo

Podatkovno vodilo

1F47

1

2

96

3

24

Naslovni register

40024

Page 14: GRADNIKI SISTEMOV PROCESNEGA VODENJA

IZVRŠEVANJE UKAZA LDAA - korak 3

26382A5CEF003A

1696244C

0020002100220023002400250026

1F451F461F471F48

971F49231F4A

• •

• •

• •

LDAA$24

INCASTAA$23

CPU RAM

Akumulator A

Programski števec

Ukazni register

Naslovno vodilo

Podatkovno vodilo

0024

12

96

3

EF

Naslovni register

4EF

0024

1F46 51F48

Page 15: GRADNIKI SISTEMOV PROCESNEGA VODENJA

IZVRŠEVANJE UKAZA INCA - korak 1

26382A5CEF003A

1696244C

0020002100220023002400250026

1F451F461F471F48

971F49231F4A

• •

• •

• •

LDAA$24

INCASTAA$23

CPU RAM

Akumulator A

Programski števec

Ukazni register

1F48

Naslovno vodilo

Podatkovno vodilo

1F48

1

296

3

4C

Naslovni register

EF

0024

44C

5F0

61F49

Page 16: GRADNIKI SISTEMOV PROCESNEGA VODENJA

IZVRŠEVANJE UKAZA STAA - korak 1

26382A5CEF003A

1696244C

0020002100220023002400250026

1F451F461F471F48

971F49211F4A

• •

• •

• •

LDAA$24

INCASTAA$21

CPU RAM

Akumulator A

Programski števec

Ukazni register

1F49

Naslovno vodilo

Podatkovno vodilo

1F49

1

24C

3

97

Naslovni register

F0

0024

497

Page 17: GRADNIKI SISTEMOV PROCESNEGA VODENJA

IZVRŠEVANJE UKAZA STAA - korak 2

26382A5CEF003A

1696244C

0020002100220023002400250026

1F451F461F471F48

971F49211F4A

• •

• •

• •

LDAA$24

INCASTAA$21

CPU RAM

Akumulator A

Programski števec

Ukazni register

1F49

Naslovno vodilo

Podatkovno vodilo

1F4A

1

297

3

21

Naslovni register

F0

0024 40021

Page 18: GRADNIKI SISTEMOV PROCESNEGA VODENJA

IZVRŠEVANJE UKAZA STAA - korak 3

26382A5CEF003A

1696244C

0020002100220023002400250026

1F451F461F471F48

971F49211F4A

• •

• •

• •

LDAA$24

INCASTAA$21

CPU RAM

Akumulator A

Programski števec

Ukazni register

1F49

Naslovno vodilo

Podatkovno vodilo

0021

1

97

2

F0

Naslovni register

F0

0021

41F4B F0

3

Page 19: GRADNIKI SISTEMOV PROCESNEGA VODENJA

NAČINI NASLAVLJANJA

• 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)

Kje se nahaja operand ?

UKAZ = KODA UKAZA + OPERAND

Page 20: GRADNIKI SISTEMOV PROCESNEGA VODENJA

Načini naslavljanja: Direktno naslavljanje

Ukazn

• •

Z = Naslov operandan+1

Naslednji ukazn+2• •

K = OperandZ

ali

KH = OperandZ

KL = OperandZ+1

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.

Page 21: GRADNIKI SISTEMOV PROCESNEGA VODENJA

ZL = Naslov operanda

Načini naslavljanja: Razširjeno naslavljanje

Ukazn

• •

ZH = Naslov operandan+1

Naslednji ukazn+3• •

K = OperandZ

ali

KH = OperandZ

KL = OperandZ+1

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.

n+2

Page 22: GRADNIKI SISTEMOV PROCESNEGA VODENJA

Načini naslavljanja: Takojšnje naslavljanje

Ukazn

• •

K = Operandn+1

Naslednji ukazn+2

Ukazn

ali

KH = Operandn+1

KL = Operandn+2

Primeri:LDAA #$7A - Naloži v akumulator A vrednost $7A.LDX #$3701 - Naloži v indeksni register vrednost $3701.

n+3 Naslednji ukaz

Page 23: GRADNIKI SISTEMOV PROCESNEGA VODENJA

Načini naslavljanja: Vsebovano

Ukazn

• •

Naslednji ukazn+1

Primeri:INCA - Zvečaj vrednost v akumulatorju A.CLC - Briši (postavi na 0) bit za prenos (carry).NOP - No operation

Page 24: GRADNIKI SISTEMOV PROCESNEGA VODENJA

Načini naslavljanja: Relativno

Ukaz, ki vsebuje pogojni skokn

• •

+/- K = Dolžina skokan+1

Naslednji ukaz, če pogoj ni izpolnjenn+2

Naslednji ukaz, če je pogoj izpolnjenN+2 +/- K

Primeri:BCC $04 - Če je C(carry) bit = 0, preskoči štiri naslove, sicer nadaljuj. BNE $F0 - Če je Z(zero) bit = 0, skoči nazaj za 15 naslovov, sicer nadaljuj.

• •

Page 25: GRADNIKI SISTEMOV PROCESNEGA VODENJA

Načini naslavljanja: Indeksno

Ukazn

• •

Z = Odmikn+1

Naslednji ukazn+2• •

K = OperandX+Z

ali

KH = OperandX+Z

KL = OperandX+Z+1

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 zvečani za 5.

Page 26: GRADNIKI SISTEMOV PROCESNEGA VODENJA

Nabor ukazov mikroprocesorja MC6800

Operacija Mnemonik # D X E I OpisAdd ADDA X X X X A + M ŕ A

ADDB X X X X B + M ŕ B ABA X A + B ŕ A

ADCA X X X X A + M + C ŕ A ADCB X X X X B + M +C ŕ B

And ANDA X X X X A ź M ŕ A ANDB X X X X B ź M ŕ B

Bit test BITA X X X X A ź M BITB X X X X B ź M

Clear CLR X X 00 ŕ MCLRA X 00 ŕ ACLRB X 00 ŕ B

Compare CMPA X X X X A - MCMPB X X X X B - MCBA X A - B

Ukazi za delo z akumulatorji in pomnilnikom

Page 27: GRADNIKI SISTEMOV PROCESNEGA VODENJA

Operacija Mnemonik # D X E I OpisComplement 1's COM X X !M ŕ M

COMA X !A ŕ A COMB X !B ŕ B

Complement 2's NEG X X 00 - M ŕ M NEGA X 00 - A ŕ A NEGB X 00 - B ŕ B

Decimal adjust A DAA X Binary A ŕ BCD A Decrement DEC X X M - 1 ŕ M

DECA X A - 1 ŕ ADECB X B - 1 ŕ B

Exclusive OR EORA X X X X A Ĺ M ŕ AEORB X X X X B Ĺ M ŕ B

Increment INC X X M + 1 ŕ MINCA X A + 1 ŕ AINCB X B + 1 ŕ B

Load Acumulator LDAA X X X X M ŕ ALDAB X X X X M ŕ B

Or - inclusive ORAA X X X X A + M ŕ AORAB X X X X B + M ŕ B

Ukazi za delo z akumulatorji in pomnilnikom

Page 28: GRADNIKI SISTEMOV PROCESNEGA VODENJA

Operacija Mnemonik # D X E I OpisPush Data PSHA X A ŕ MSP, SP - 1 ŕ SP

PSHB X B ŕ MSP, SP - 1 ŕ SPPull Data PULA X SP + 1 ŕ SP, MSP ŕ A

PULB X SP + 1 ŕ SP, MSP ŕ BRotate Left ROL X X M

ROLA X AROLB X B

Rotate Right ROR X X MRORA X ARORB X B

Shift Left, Aritmetic ASL X X MASLA X AASLB X B

Shift Right, Aritmetic ASR X X MASRA X AASRB X B

Shift Right, Logic LSR X X MLSRA X ALSRB X B

Ukazi za delo z akumulatorji in pomnilnikom

b0b7C

b0b7C

b0b7C0

b0b7 C0

b0b7 C

Page 29: GRADNIKI SISTEMOV PROCESNEGA VODENJA

Operacija Mnemonik # D X E I OpisStore Acumulator STAA X X X A ŕ M

STAB X X X B ŕ M Subtract SUBA X X X X A - M ŕ A

SUBB X X X X B - M ŕ B Subtract Acumulators SBA X A - B ŕ A Subttract with Carry SBCA X X X X A - M - C ŕ A

SBCB X X X X B - M - C ŕ B Transfer Acumulators TAB X A ŕ B

TBA X B ŕ ATest Zero or Minus TST X X M - 00

TSTA X A - 00TSTB X B - 00

Ukazi za delo z akumulatorji in pomnilnikom

Page 30: GRADNIKI SISTEMOV PROCESNEGA VODENJA

Operacija Mnemonik # D X E I OpisCompare Index Reg. CPX X X X X XH - M, XL - (M + 1)Decrement Index Reg. DEX X X - 1 ŕ X Decrement Stack Pointer DES X SP - 1 ŕ SP Increment Index Reg. INX X X +1 ŕ X Increment Stack Pointer INS X SP + 1 ŕ SP Load Index Reg. LDX X X X X M ŕ XH, (M + 1) ŕ XL

Load Stack Pointer LDS X X X X M ŕ SPH, (M + 1) ŕ SPL

Store Index Reg. STX X X X XH ŕ M, XL ŕ (M+1) Store Stack Pointer STS X X X SPH ŕ M, SPL ŕ (M+1) Index Reg. ŕ Stack Pntr TXS X X - 1 ŕ SP Stack Pntr ŕ Index Reg. TSX X SP + 1 ŕ X

Ukazi za delo z indeksnim registrom in kazalcem sklada

Page 31: GRADNIKI SISTEMOV PROCESNEGA VODENJA

Operacija Mnemonik # D X E I OpisClear Carry CLC X 0 ŕ C Clear Interrupt Mask CLI X 0 ŕ I Clear Overflow CLV X 0 ŕ VSet Carry SEC X 1 ŕ C Set Interrupt Mask SEI X 1 ŕ I Set Overflow SEV X 1 ŕ VAcumulator A ŕ CCR TAP X A ŕ CCR CCR ŕ Acumulator A TPA X CCR ŕ A

Ukazi za delo s statusnim registrom

Page 32: GRADNIKI SISTEMOV PROCESNEGA VODENJA

Operacija Mnemonik PogojBranch Always BRA 1Branch if Carry Clear BCC C = 0Branch if Carry Set BCS C = 1Branch if Equal BEQ Z = 1Branch if Greater or Equal BGE N Ĺ V = 0Branch if Greater Than Zero BGT Z + (N Ĺ V) = 0Branch if Higher BHI C + Z = 0Branch if Less or Equal BLE Z + (N Ĺ V) = 1Branch if Lower or Same BLS C + Z = 1Branch if Less Than Zero BLT N Ĺ V = 1Branch if Minus BMI N = 1Branch if Not Equal BNE Z = 0Branch if Overflow Clear BVC V = 0Branch if Overflow Set BVS V = 1Branch if Plus BPL N = 0Branch to Subroutine BSR 1

Pogojne Razvejitve (relativno naslavljanje)

Page 33: GRADNIKI SISTEMOV PROCESNEGA VODENJA

Brezpogojni skoki in posebni ukazi

Operacija Mnemonik # D X E IJump JMP X XJump to Subroutine JSR X XNo operation NOP XReturn from Interrupt RTI XReturn from Subroutine RTS XSoftware Interrupt SWI XWait for Interrupt WAI X

Page 34: GRADNIKI SISTEMOV PROCESNEGA VODENJA

RESET mikroprocesorja MC6800 - korak 1

260196244C9723

16A80000

8020802180228023802480258026

FFFAFFFBFFFCFFFD

80FFFE22FFFF

• •

• •

• •

LDAA$24

INCASTAA$23

CPU RAM

Akumulator A

Programski števec Naslovno vodilo

Podatkovno vodilo

FFFE

2

3

4

80Statusni register

xx

xxxx 580xx

1 1 x x x x x x

1 1 H I N Z V C

1

1

Page 35: GRADNIKI SISTEMOV PROCESNEGA VODENJA

RESET mikroprocesorja MC6800 - korak 2

260196244C9723

16A80000

8020802180228023802480258026

FFFAFFFBFFFCFFFD

80FFFE22FFFF

• •

• •

• •

LDAA$24

INCASTAA$23

CPU RAM

Akumulator A

Programski števec Naslovno vodilo

Podatkovno vodilo

FFFF

1

23

22Statusni register

xx

80xx 48022

1 1 x 1 x x x x

1 1 H I N Z V C

Page 36: GRADNIKI SISTEMOV PROCESNEGA VODENJA

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

Page 37: GRADNIKI SISTEMOV PROCESNEGA VODENJA

Sklad - shranjevanje podatkov (PSHA, PSHB)

m - 2

• •

7F

FD

PSHANasl. Inš.

• •

• •

m - 1m

m + 1

m + 3

nn + 1

SP

63m + 2

PC

MPUkACCAmSPnPC

m - 2

• •

k7F

FD

PSHANasl. Inš.

• •

• •

m - 1m

m + 1

m + 3

nn + 1

SP

63m + 2

PC

MPUkACCA

m - 1SPn + 1PC

Pred izvršitvijo: Po izvršitvi:

Page 38: GRADNIKI SISTEMOV PROCESNEGA VODENJA

Sklad - jemanje podatkov (PULA, PULB)

m - 2

• •

k7F

FD

PULANasl. Inš.

• •

• •

m - 1m

m + 1

m + 3

nn + 1

SP

63m + 2

PC

MPUACCA

m - 1SPnPC

m - 2

• •

7F

FD

PSHANasl. Inš.

• •

• •

m - 1m

m + 1

m + 3

nn + 1

SP

63m + 2

PC

MPUkACCAmSP

n + 1PC

Pred izvršitvijo: Po izvršitvi:

Page 39: GRADNIKI SISTEMOV PROCESNEGA VODENJA

Skok na podprogram (JSR)

m - 2

• •

7F

JSR

Nasl. Inš.

• •

• •

m - 1m

m + 1

n

n + 3

SP

63m + 2

PC

MPUX

mSPnPC

MPUX

m - 2SPSPC

SHn + 1

SLn + 2

S + 1Sub.S

m - 2

• •

(n + 3)H

(n + 3)L

7F

JSR

Nasl. Inš.

• •

• •

m - 1m

m + 1

n

n + 3

SP

63m + 2

PC

SHn + 1

SLn + 2

S + 1Sub.S

+3

Page 40: GRADNIKI SISTEMOV PROCESNEGA VODENJA

Skok na podprogram (JSR x)

m - 2

• •

7F

JSR, x

Nasl. Inš.

• •

• •

m - 1m

m + 1

n

n + 2

SP

63m + 2

PC

MPUxXmSPnPC

MPUxX

m - 2SPx + kPC

kn + 1

x + k + 1Sub.x + k

m - 2

• •

(n + 2)H

(n + 2)L

7F

• •

m - 1m

m + 1

SP

63m + 2

+2

JSR

Nasl. Inš.• •

n

n + 2

PC

kn + 1

x + k + 1Sub.x + k

+x

Page 41: GRADNIKI SISTEMOV PROCESNEGA VODENJA

Relativni skok na podprogram (BSR)

m - 2

• •

7F

BSR

Nasl. Inš.

• •

• •

m - 1m

m + 1

n

n + 2

SP

63m + 2

PC

MPUX

mSPnPC

MPUX

m - 2SPn+2+kPC

kn + 1

n + 3 + kSub.n + 2 + k

m - 2

• •

(n + 2)H

(n + 2)L

7F

• •

m - 1m

m + 1

SP

63m + 2

+2

BSR

Nasl. Inš.• •

n

n + 2

PC

kn + 1

+/-

n + 3 + kSub.n + 2 + k

Page 42: GRADNIKI SISTEMOV PROCESNEGA VODENJA

Vrnitev iz podprograma

m - 2

• •

(n + 2)H

(n + 2)L

7F

BSR

Nasl. Inš.

• •

• •

m - 1m

m + 1

n

n + 2

SP

63m + 2

PC

MPUX

m - 2SPSnPC

MPUX

mSPn + 2PC

kn + 1

RTSSnS(n-1)

m - 2

• •

7F

• •

m - 1m

m + 1SP

63m + 2

BSR

Nasl. Inš.•

n

n + 2PC kn + 1

RTSSnS(n-1)

Page 43: GRADNIKI SISTEMOV PROCESNEGA VODENJA

Prekinitev (Interrupt)

m - 2

• •

Inšt. k

• •

• •

m - 1m

n

SP

PC

MPUmSPnPC

Inšt. k +1n + 1

P + 1Interr.P

m - 3m - 4m - 5m - 6m - 7

PH

PL

Vektor

FFFCFFFD

XLm - 2

• •

(n + 1)H

(n + 1)L

Inšt. k

• •

• •

m - 1m

n

SP

PC

MPUm - 7SP

PPC

Inšt. k +1n + 1

P + 1Interr.P

XHm - 3Am - 4Bm - 5

CCRm - 6m - 7

PC, X, A, B, CCR

Page 44: GRADNIKI SISTEMOV PROCESNEGA VODENJA

Vrnitev iz prekinitve

m - 2

• •

Inšt. k

• •

• •

m - 1m

n

SP

PC

MPUm - 7SPPnPC

Inšt. k +1n + 1

m - 3m - 4m - 5m - 6m - 7

XLm - 2

• •

(n + 1)H

(n + 1)L

Inšt. k

• •

• •

m - 1m

n

SP

PC

MPUmSP

n + 1PC

Inšt. k +1n + 1

RTIPnP(n-1)

XHm - 3Am - 4Bm - 5

CCRm - 6m - 7

RTI

P(n-1)Pn

CCR, B, A, X, PC

Page 45: GRADNIKI SISTEMOV PROCESNEGA VODENJA

Prekinitveni vektorji

NMI LFFFD

RESET HRESET L

FFFEFFFF

NMI HFFFCSWI LFFFBSWI LFFFAIRQ LFFF9IRQ LFFF8

Interrupt Request

Software Interrupt

Non Maskable Interrupt

Reset

Page 46: GRADNIKI SISTEMOV PROCESNEGA VODENJA

Zbirnik - AssemblerPisanje in prevajanje programov

* Primer programa, ki vrednosti, shranjene na* naslovih $800, $801 in $802, zveča za 10 *

ORG $8000 ; zacetek programa na naslovu $8000*

LDAA $800 ; preberemo prvo številoADDA #10 ; prištejemo mu 10STAA $800 ; shranimo vsotoLDAA $801 ; preberemo drugo številoADDA #10 ; prištejemo mu 10STAA $801 ; shranimo vsotoLDAA $802 ; preberemo tretje številoADDA #10 ; prištejemo mu 10STAA $802 ; shranimo vsoto

*

• komentarji• ukazi procesorja• ukazi zbirnika• spremenljivke (labele)• konstante• aritmetični in logični izrazi

Page 47: GRADNIKI SISTEMOV PROCESNEGA VODENJA

* Primer programa, ki vrednosti, shranjene na* naslovih $800, $801 in $802, zveča za 10 *RAM EQU $6000 ; naslov pomnilnika RAMST1 EQU $800 ; naslov prvega stevilaST2 EQU ST1+1 ; naslov drugega stevilaST3 EQU ST1+2 ; naslov trejega stevilaKONST EQU 10 ; konstanta, ki jo prištevamo *

ORG RAM ; začetek programa v RAM-u*

LDAA ST1 ; preberemo prvo številoADDA #KONST ; prištejemo mu 10STAA ST1 ; shranimo vsotoLDAA ST2 ; preberemo drugo številoADDA #KONST ; prištejemo mu 10STAA ST2 ; shranimo vsotoLDAA ST3 ; preberemo tretje številoADDA #KONST ; prištejemo mu 10STAA ST3 ; shranimo vsoto

*

• komentarji• ukazi procesorja• ukazi zbirnika• spremenljivke (labele)• konstante• aritmetični in logični izrazi

Page 48: GRADNIKI SISTEMOV PROCESNEGA VODENJA

* Primer programa, ki vrednosti, shranjene na* naslovih $800, $801 in $802, zveča za 10 *RAM EQU $6000 ; naslov pomnilnika RAMST1 EQU $800 ; naslov prve vrednostiN EQU 3 ; stevilo bytovKONST EQU 10 ; konstanta, ki jo prištevamo *

ORG RAM ; začetek programa v RAM-u*

LDX #ST1 ; naložimo naslov prve vrednosti v XLDAB #N ; naložimo število bytov v B

ZANKA LDAA 0,X ; preberemo prvo številoADDA #KONST ; prištejemo mu 10STAA 0,X ; shranimo vsotoINX ; zvecamo X (naslednja vrednost)DECB ; zmanjsamo števec bytovBNE ZANKA ; ce števec ni enak 0, nadaljujemo

*

Page 49: GRADNIKI SISTEMOV PROCESNEGA VODENJA

* Primer programa, ki vrednosti, shranjene na* naslovih $800, $801 in $802, zveča za 10 *RAM EQU $6000 ; naslov pomnilnika RAMST1 EQU $800 ; naslov prve vrednostiKONST EQU 10 ; konstanta, ki jo prištevamo *

ORG RAM ; začetek programa v RAM-u*PRIMER LDX #ST1 ; naložimo naslov prve vrednosti v X

JSR ZVECAJ ; zvecamo prvo vrednostJSR ZVECAJ ; zvecamo drugo vrednostJSR ZVECAJ ; zvecamo tretjo vrednost

* … nadanjevanje *** Podprogram, ki zveča za KONST, spominsko lokacijo,* na katero kaže X*ZVECAJ LDAA 0,X ; preberemo vrednost na katero kaže X

ADDA #KONST ; prištejemo 10STAA 0,X ; shranimo vsotoINX ; zvecamo X (naslednja vrednost)RTS

*

Page 50: GRADNIKI SISTEMOV PROCESNEGA VODENJA

0001 * Primer programa, ki vrednosti, shranjene na0002 * naslovih $800, $801 in $802, zveča za 100003 *0004 RAM EQU $6000 ; naslov pomnilnika RAM0005 ST1 EQU $800 ; naslov prve vrednosti0006 KONST EQU 10 ; konstanta, ki jo prištevamo0007 *0008 6000 ORG RAM ; začetek programa v RAM-u0009 *0010 6000 CE 08 00 PRIMER LDX #ST1 ; naslov prve vrednosti X0011 6003 BD 60 0C JSR ZVECAJ ; zvecamo prvo vrednost0012 6006 BD 60 0C JSR ZVECAJ ; zvecamo drugo vrednost0013 6009 BD 60 0C JSR ZVECAJ ; zvecamo tretjo vrednost0014 * … nadaljevanje0015 *0016 *0017 * Podprogram, ki zveča za KONST, spominsko lokacijo,0018 * na katero kaže X0019 *0020 600C A6 00 ZVECAJ LDAA 0,X ; preberemo vrednost na katero kaže X0021 600E 8B 0A ADDA #KONST ; prištejemo 100022 6010 A7 00 STAA 0,X ; shranimo vsoto0023 6012 08 INX ; zvecamo X (naslednja vrednost)0024 6013 39 RTS0025 *

Page 51: GRADNIKI SISTEMOV PROCESNEGA VODENJA

Prevajanje programa

C:\> ASM TEST

TEST.ASM

TEST.HEX (Motorola S format)

S0030000FCS1176000CE0800BD600CBD600CBD600CA6008B0AA700083914S9030000FC

* Primer programa, ki vrednosti, shranjene na* naslovih $800, $801 in $802, zveča za 10 *RAM EQU $6000 ; naslov pomnilnika RAMST1 EQU $800 ; naslov prve vrednostiKONST EQU 10 ; konstanta, ki jo prištevamo *

ORG RAM ; začetek programa v RAM-u*PRIMER LDX #ST1 ; naložimo naslov prve vrednosti v X

JSR ZVECAJ ; zvecamo prvo vrednostJSR ZVECAJ ; zvecamo drugo vrednostJSR ZVECAJ ; zvecamo tretjo vrednost

* … nadanjevanje *** Podprogram, ki zveča za KONST, spominsko lokacijo,* na katero kaže X*ZVECAJ LDAA 0,X ; preberemo vrednost na katero kaže X

ADDA #KONST ; prištejemo 10STAA 0,X ; shranimo vsotoINX ; zvecamo X (naslednja vrednost)RTS

*

Page 52: GRADNIKI SISTEMOV PROCESNEGA VODENJA

ABC.HEX (Motorola S format)

S0030000FCS1136000CE0800BD600CBD600CBD600CA6008B0A14S11360103974F39B0381A0387EF02BA565D76479A3S1136020A700083928FA39E0AA010198029A7BA0F2S1066030037F197FS1136800013936345FA28BA9034903790AA2882142S105681028BA8CS107FFFC60006800AAS90300003B

OznakaNaslovKontrola parnosti

Število znakov v vrsticiVsebina (podatki)

Page 53: GRADNIKI SISTEMOV PROCESNEGA VODENJA

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

Page 54: GRADNIKI SISTEMOV PROCESNEGA VODENJA

0001 0000 K1 EQU 1280002 0000 K2 EQU $12340003 0000 K3 EQU %010010010004 *0005 8100 ORG $81000006 8100 0A148049 NASL0 FCB 10, 20, K1, K30007 8104 AABB12A21033 FDB $AABB, $12A2, $10330008 810A 8100 FDB NASLO00009 810C F2 FCB %111100100010 810D 544F204A4520 54455354 FCC ‘TO JE TEST’0011 8117 000000 VAR1 RMB 30012 811A 00 VAR2 RMB 10013 811B 8117 NA1 FDB VAR10014 *0015 8000 ORG $80000016 8000 CE811B LDX #NA10017 8003 FE811B LDX NA10018 8006 08 INX

Page 55: GRADNIKI SISTEMOV PROCESNEGA VODENJA

POMNILNIKI

RAM• Statični• Dinamični• Dual port• Zero power

ROM• ROM• PROM(OTP)• EPROM

EEPROM• Serijski• Paralelni

Flash EPROM• Serijski (Data flash)• Paralelni

Page 56: GRADNIKI SISTEMOV PROCESNEGA VODENJA

POMNILNIKI - Povezava s CPU

A0A0A1A1A2A2A3A3A4A4A5A5A6A6A7A7A8A9

A10A11A12

A8A9A10A11A12A13A14A15

E(2)VMAR/W

DEKODIRNIK

NASLOVOVCS

R/W

D0D1D2D3D4D5D6D7

D0D1D2D3D4D5D6D7

CPU RAM(8K)

Page 57: GRADNIKI SISTEMOV PROCESNEGA VODENJA

DEKODIRANJE NASLOVOV

0000000100020003

9FFFA000

BFFFC000

A001

C001

FFFF

• •

Prosto

I/O (4 byte)

0004• •

• •

RAM (8KB)

ROM (16KB)

• •

• •

• •

1FFF

• •

• •

0000

3FFF

0001• •

• •

00000001

00000001

RAM

ROM

I/O

00020003

Page 58: GRADNIKI SISTEMOV PROCESNEGA VODENJA

1. Linearno dekodiranje naslovov

ROM(8 KB)

CS

RAM(8 KB)

CS

I/O(4 B)

CS

A15A14A13

A0 - A12

D0 - D7

A0 - A12

D0 - D7

A0 - A1

D0 - D7

NASLOV (A15 - A0) NASLOVLJENO VEZJE100X XXXX XXXX XXXX ROM010X XXXX XXXX XXXX RAM001X XXXX XXXX XXXX I/O

000X XXXX XXXX XXXX PROSTO

110X XXXX XXXX XXXX PREPOVEDAN NASLOV101X XXXX XXXX XXXX PREPOVEDAN NASLOV011X XXXX XXXX XXXX PREPOVEDAN NASLOV111X XXXX XXXX XXXX PREPOVEDAN NASLOV

• Ni dekodirnega vezja• Nizka cena• Slaba izkoriščenost naslovnega prostora• Potrebna je previdnost pri programiranju

Page 59: GRADNIKI SISTEMOV PROCESNEGA VODENJA

0000

1FFFProsto

I/O

RAM

ROM

• •

2000

3FFF

• •

4000

5FFF

• •

6000

7FFF

• •

8000

9FFF

• •

A000

BFFF

• •

C000

DFFF

• •

E000

FFFF

• •

Prepovedano

Prepovedano

Prepovedano

Prepovedano

8K

8K

8K

8K

8K

8K

8K

8K

Linearno dekodiranje

Page 60: GRADNIKI SISTEMOV PROCESNEGA VODENJA

2. Delno dekodiranje naslovov

ROM(16 KB)

CS

RAM(8 KB)

CS

I/O(4 B)

CS

E(

2)A

14A

15

A0 - A13

D0 - D7

A0 - A12

D0 - D7

A0 - A1

D0 - D7

• Majhno število elementov• Ni možnosti trčenja na podatkovnem vodilu• Naslovni prostor ni popolnoma izkoriščen

VM

A

Page 61: GRADNIKI SISTEMOV PROCESNEGA VODENJA

0000

3FFF4000

7FFF8000

9FFFA000

BFFFC000

FFFF

RAM8K

RAM8K

I/O16K

ROM16K

0-DRA1-CRA2-DRB3-CRB0-DRA1-CRA2-DRB3-CRB0-DRA

0-DRA1-CRA2-DRB3-CRB

• • •

400040014002400340044005400640074008

7FFC7FFD7FFE7FFF

Dostop do prvega byta RAM-a:

10X0 0000 0000 00008000 1000 0000 0000 0000A000 1010 0000 0000 0000

Dostop do prvega registra I/O (DRA):

01XX XXXX XXXX XX004000 0100 0000 0000 00004004 0100 0000 0000 01004008 0100 0000 0000 1000400C 0100 0000 0000 11004010 0100 0000 0001 0000

. . .5AF4 0101 1010 1111 0100

. . .7FFC 0111 1111 1111 1100

Prosto16K

Delno dekodiranje

Page 62: GRADNIKI SISTEMOV PROCESNEGA VODENJA

3. Popolno dekodiranje naslovov

ROM(16 KB)

CS

RAM(8 KB)

CS

I/O(4 B)

CS

E(

2)

A14

A15

A0 - A13

D0 - D7

A0 - A12

D0 - D7

A0 - A1

D0 - D7

• Vsak register je dostopen le na enem naslovu • Veliko število elementov• Visoka cena• Naslovni prostor je popolnoma izkoriščen

VM

A

A13

A2

A12• •

Page 63: GRADNIKI SISTEMOV PROCESNEGA VODENJA

0000

00030004

9FFFA000

BFFFC000

FFFF

RAM8K

ROM16K

0-DRA1-CRA2-DRB3-CRB

0000000100020003

I/O4B

Prosto~40KB

Popolno dekodiranje

Page 64: GRADNIKI SISTEMOV PROCESNEGA VODENJA

VHODNO IZHODNI VMESNIKI

PARALELNI• Digitalno krmiljenje• Senzorji• Tiskalnik• SCSI• PCI

SERIJSKI• Sinhroni / Asinhroni• RS232• Ethernet• ISDN• FDDI• USB• E1, T1• ATM ….

ANALOGNI• A/D in D/A• Paralelni ali serijski• Ločljivost (8 - 20 bitov)• Način pretvorbe• Hitrost• Število vhodov (multipleks)• Vgrajeni filtri• Za posebne aplikacije (codec)

ŠTEVCI

Page 65: GRADNIKI SISTEMOV PROCESNEGA VODENJA

MC6821 PIA (Peripheral Interface Adapter)

PheripheralInterface

A

PheripheralInterface

B

InterruptControl B

InterruptControl A

Data Dir. Reg. A

Control Reg. A

Data Reg. A

Data Dir. Reg. B

Control Reg. B

Data Reg. B

Data BusBuffers

Chip Select

&R/W

Control

D0

D7

PA0

PA7

PB0

PB7

• • • •

• • • •

• • • •

IRQA

IRQB

CS0CS1CS2RS0RS1R/W

ERESET

CA1CA2

CB1CB2

Page 66: GRADNIKI SISTEMOV PROCESNEGA VODENJA

MC6821 PIA - Registri

Bit v kontrolnem reg.RS1 RS0 CRA-2 CRB-2 Izbrani register

0 0 1 X Podatkovni register A (DRA)0 0 0 X Smerni register A (DDRA)0 1 X X Kontrolni register A (CRA)1 0 X 1 Podatkovni register B (DRB)1 0 X 0 Smerni register B (DDRB)1 1 X X Kontrolni register B (CRB)

Page 67: GRADNIKI SISTEMOV PROCESNEGA VODENJA

IRQA1Flag

IRQA2Flag

CA2Control

DDRAccess

CA1Control

b7 b6 b5 b4 b3 b2 b1 b0

MC6821 PIA - Kontrolni register A

Zahteva za prekinitev 1: 1 - po aktivnem prehodu na vhodu CA1 0 - po branju podatkovnega registra DRA

Omogočena 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

Dostop do smernega/podat. reg. 1 - dosopen je podatkovni register 0 - dostopen je smerni register

Statusni bitiKontrolni biti

Page 68: GRADNIKI SISTEMOV PROCESNEGA VODENJA

IRQA1Flag

IRQA2Flag

CA2Control

DDRAccess

CA1Control

b7 b6 b5 b4 b3 b2 b1 b0

MC6821 PIA - Kontrolni register A

Zahteva za prekinitev 1: 1 - po aktivnem prehodu na vhodu CA2, če je CA2 definiran kot vhod 0 - po branju podatkovnega registra DRA

CA2 Smer 0 - CA2 je vhod 1 - CA2 je izhod

Aktivni prehod za CA2: 1 - aktiven prehod 0 1 0 - aktiven prehod 1 0

Omogočena prekinitev CA2: 1 - CA2 sproži IRQA 0 - CA2 ne sproži IRQA

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”

CA2 je vhod: CA2 je izhod:

Page 69: GRADNIKI SISTEMOV PROCESNEGA VODENJA

MC6821 PIA - Inicializacija

1. Zagotovimo dostop do podatkovnega reg. (DRA) $04 CRA 2. Nastavimo začetne vrednosti izhodov $XX DRA 3. Zagotovimo dostop do smernega registra (DDRA) $00 CRA 4. Nastavimo smer posameznih bitov $YY DDRA 5. Ponovno omogočimo dostop do podatkovnega registra (DRA) in, če je potrebno, omogočimo prekinitve in nastavimo delovanje linij CA1 in CA2 %xxxxx1xx CRA

Page 70: GRADNIKI SISTEMOV PROCESNEGA VODENJA

MC6850 ACIA (Asynchronous Communications Interface Adapter)

TransmitterData BusBuffers

Selection&

Control

Data Bus

ReceiverAddressControl

&Interrupt

TransmitData (TD)

ReceiveData (RD)

Pheripheral / Modem Control

Clear to Send (CTS)Request to Send (RTS)

Data Carrier Detect (DCD)

Page 71: GRADNIKI SISTEMOV PROCESNEGA VODENJA

MC6850 ACIA

ReceiveControl

ReceiveShift Reg.

TransmitShift Reg.

StatusRegister

TransmitData Reg.

ControlRegister

Data BusBuffers

Chip Select

&R/W

Control

D0

D7

• • • •

T Clock

R Clock

CS0CS1CS2RS

R/WE

TD

ReceiveData Reg.

TransmitControl

InteruptLogic

ParityGen.

ClockGen.

ParityCheck

SyncLogic

ClockGen.

CTS

IRQ

DCD

RTS

RD

Page 72: GRADNIKI SISTEMOV PROCESNEGA VODENJA

RS TDR RDR Control Reg. Status reg.0 Write Read

1 Write Read

bit TDR RDR Control Reg. Status reg.

0 Data bit 0 Data bit 0 Counter Devide Select 1 CDS1

Receive Data Register Full RDRF

1 Data bit 1 Data bit 1 Counter Devide Select 2 CDS2

Transmit Data Register Empty - TDRE

2 Data bit 2 Data bit 2 Word Select 1 WS1

Data Carrier Detect DCD

3 Data bit 3 Data bit 3 Word Select 2 WS2

Clear to Send CTS

4 Data bit 4 Data bit 4 Word Select 3 WS3

Framing Error FE

5 Data bit 5 Data bit 5 Transmit Control 1 TC1

Receiver Overrun OVRN

6 Data bit 6 Data bit 6 Transmit Control 2 TC2

Parity Error PE

7 Data bit 7 Data bit 7 Receive Interrupt Enable RIE

Interrupt Request IRQ

MC6850 ACIA - Registri

Page 73: GRADNIKI SISTEMOV PROCESNEGA VODENJA

Counter Devide Select:

CDS1 CDS2 Funkcija0 0 ÷ 1

0 1 ÷ 16

1 0 ÷ 64

1 1 Master Reset

Word Select:

WS1 WS2 WS3 Funkcija0 0 0 7 bitov, soda parnost, 2 stop bita

0 0 1 7 bitov, liha parnost, 2 stop bita

0 1 0 7 bitov, soda parnost, 1 stop bit

0 1 1 7 bitov, liha parnost, 1 stop bit

1 0 0 8 bitov, 2 stop bita

1 0 1 8 bitov, 1 stop bit

1 1 0 8 bitov, soda parnost, 1 stop bit

1 1 1 8 bitov, liha parnost, 1 stop bit

RIE TC2 TC1 WS1 CDS2

b7 b6 b5 b4 b3 b2 b1 b0

WS3 WS2 CDS1

Kontrolni register ACIA:

Transmit Control:

TC1 TC2 Funkcija0 0 RTS=0, Prekinitve onemogočene

0 1 RTS=0, Prekinitve omogočene

1 0 RTS=1, Prekinitve onemogočene

1 1 RTS=0, Prekinitve onemogočene, Oddajnik oddaja signal "Break"