Presentation is loading. Please wait.

Presentation is loading. Please wait.

GRADNIKI SISTEMOV PROCESNEGA VODENJA

Similar presentations


Presentation on theme: "GRADNIKI SISTEMOV PROCESNEGA VODENJA"— Presentation transcript:

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

2 Razvoj programske opreme
NAČTOVANJE MIKRORAČUNALNIKA Razvoj strojne opreme Razvoj programske opreme analiza kompleksnosti problema izbira osnovnih parametrov (procesor, količina pomnilnika,…) izbira komponent načrtovanje vezja električne lastnosti mehanske lastnosti zgradba prog. opreme izbira OS in prog. jezika krmilniki za periferijo algoritmi in kodiranje

3 ZGRADBA MIKRORAČUNALNIKA
Podatkovno vodilo Naslovno vodilo Kontrolno vodilo CPU ROM RAM I/O

4 Mikroprocesor (CPU) Cena: 1$ - 1000$ Poraba energ. Tehnologija: NMOS
CMOS 5mm mm Zgradba: CISC RISC DSP Napajalna napetost: 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 podatkovno vodilo 16 bitno naslovno vodilo 72 ukazov 6 internih registrov 7 načinov naslavljanja frekvenca ure: 2 MHz

6 Vmesnik za krmiljenje vodil
OSNOVNE ENOTE MIKROPROCESORJA MC6800 Dekodirnik ukazov + nadzor Registri Vmesnik za krmiljenje vodil ALU

7 MIKROPROCESOR MC6800 - Programski model
7 Akumulator A ACCA 7 Akumulator B ACCB 15 Indeksni register IX 15 PC Programski števec 15 SP Kazalec sklada 7 1 1 H I N Z V C CCR Statusni register Carry Overflow Zero Negative Interrupt Half Carry

8 ZGRADBA MIKROPROCESORJA MC6800
Vmesnik za nalove (H) Vmesnik za nalove (L) Dekodirnik ukazov + nadzor Programski števec (H) Programski števec (L) F1 F2 RESET Kazalec sklada (H) Kazalec sklada (L) NMI HALT Indeksni register (H) Indeksni register (L) IRQ TSC DBE Statusni register BA Akumulator A VMA R/W ALU Akumulator B Ukazni register Podatkovni vmesnik D7 D6 D5 D4 D3 D2 D1 D0

9 PRIKLJUČKI 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 F Clock Phase 1 F Clock Phase 2 VCC Supply Voltage (+5V) VSS Ground Naslovno vodilo Kontrolno vodilo Napajanje

10 POMNILNIŠKI PROSTOR PROCESORJA
Naslov Vsebina 0000 26 0001 38 0002 2A 0003 5C 0004 EF 0005 00 0006 3A 0007 16 0008 00 0009 00 000A 00 FFFE 46 FFFF AC

11 POMNILNIŠKI PROSTOR PROCESORJA
0000 26 0001 38 I/O (256 bytov) 0002 2A 00FF 00 0100 00 Prosto 3FFF 3A 64KB 4000 16 4001 00 RAM (16KB) 7FFF 00 8000 00 8001 46 ROM (32KB) FFFF AC

12 IZVRŠEVANJE UKAZA LDAA - korak 1
CPU RAM Naslovno vodilo Programski števec 0020 26 1F46 0021 38 1F46 1 0022 2A 0023 5C Akumulator A 0024 EF 0025 00 0026 3A 2 Ukazni register Podatkovno vodilo 1F45 16 96 4 1F46 96 LDAA 3 96 1F47 24 $24 1F48 4C INCA Naslovni register 1F49 97 STAA 1F4A 23 $23

13 IZVRŠEVANJE UKAZA LDAA - korak 2
CPU RAM Naslovno vodilo Programski števec 0020 26 1F46 0021 38 1F47 1 0022 2A 0023 5C Akumulator A 0024 EF 0025 00 0026 3A 2 Ukazni register Podatkovno vodilo 1F45 16 96 1F46 96 LDAA 3 24 1F47 24 $24 1F48 4C INCA Naslovni register 1F49 97 STAA 4 0024 1F4A 23 $23

14 IZVRŠEVANJE UKAZA LDAA - korak 3
CPU RAM Naslovno vodilo Programski števec 0020 26 1F46 5 1F48 0021 38 0024 1 0022 2 2A 0023 5C Akumulator A 0024 EF 4 EF 0025 00 0026 3A Ukazni register Podatkovno vodilo 1F45 16 96 1F46 96 LDAA 3 EF 1F47 24 $24 1F48 4C INCA Naslovni register 1F49 97 STAA 0024 1F4A 23 $23

15 IZVRŠEVANJE UKAZA INCA - korak 1
CPU RAM Naslovno vodilo Programski števec 0020 26 1F48 6 1F49 0021 38 1F48 1 0022 2A 0023 5C Akumulator A 0024 EF EF 0025 00 5 F0 0026 3A Ukazni register Podatkovno vodilo 2 1F45 16 96 4 4C 1F46 96 LDAA 3 4C 1F47 24 $24 1F48 4C INCA Naslovni register 1F49 97 STAA 0024 1F4A 23 $23

16 IZVRŠEVANJE UKAZA STAA - korak 1
CPU RAM Naslovno vodilo Programski števec 0020 26 1F49 0021 38 1F49 1 0022 2A 0023 5C Akumulator A 0024 EF F0 0025 00 0026 3A Ukazni register Podatkovno vodilo 2 1F45 16 4C 4 97 1F46 96 LDAA 3 97 1F47 24 $24 1F48 4C INCA Naslovni register 1F49 97 STAA 0024 1F4A 21 $21

17 IZVRŠEVANJE UKAZA STAA - korak 2
CPU RAM Naslovno vodilo Programski števec 0020 26 1F49 0021 38 1F4A 1 0022 2A 0023 5C Akumulator A 0024 EF F0 0025 00 0026 3A Ukazni register Podatkovno vodilo 2 1F45 16 97 1F46 96 LDAA 3 21 1F47 24 $24 1F48 4C INCA Naslovni register 1F49 97 STAA 0024 4 0021 1F4A 21 $21

18 IZVRŠEVANJE UKAZA STAA - korak 3
CPU RAM Naslovno vodilo Programski števec 0020 26 1F49 4 1F4B F0 3 0021 38 0021 1 0022 2A 0023 5C Akumulator A 0024 EF F0 0025 00 0026 3A Ukazni register Podatkovno vodilo 1F45 16 2 F0 97 1F46 96 LDAA 1F47 24 $24 1F48 4C INCA Naslovni register 1F49 97 STAA 0021 1F4A 21 $21

19 NAČINI 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 Načini naslavljanja: Direktno naslavljanje
Ukaz n+1 Z = Naslov operanda n+2 Naslednji ukaz Z K = Operand ali Z KH = Operand Z+1 KL = Operand 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 Načini naslavljanja: Razširjeno naslavljanje
Ukaz n+1 ZH = Naslov operanda n+2 ZL = Naslov operanda n+3 Naslednji ukaz Z K = Operand ali Z KH = Operand Z+1 KL = Operand Primeri: LDAA $7AF0 - Preberi v akumulator A vrednost, ki je shranjena na naslovu $7AF0. LDX $ Naloži v indeksni register vrednost, ki je shranjena na naslovih $1700 in $1701.

22 Načini naslavljanja: Takojšnje naslavljanje
Ukaz n+1 K = Operand n+2 Naslednji ukaz ali n Ukaz n+1 KH = Operand n+2 KL = Operand n+3 Naslednji ukaz Primeri: LDAA #$7A - Naloži v akumulator A vrednost $7A. LDX #$ Naloži v indeksni register vrednost $3701.

23 Načini naslavljanja: Vsebovano
Ukaz n+1 Naslednji ukaz Primeri: INCA - Zvečaj vrednost v akumulatorju A. CLC - Briši (postavi na 0) bit za prenos (carry). NOP - No operation

24 Primeri: Načini naslavljanja: Relativno Ukaz, ki vsebuje pogojni skok
+/- K = Dolžina skoka n+1 Naslednji ukaz, če pogoj ni izpolnjen n+2 Naslednji ukaz, če je pogoj izpolnjen N+2 +/- K Primeri: BCC $ Če je C(carry) bit = 0, preskoči štiri naslove, sicer nadaljuj. BNE $F Če je Z(zero) bit = 0, skoči nazaj za 15 naslovov, sicer nadaljuj.

25 Načini naslavljanja: Indeksno
Ukaz n+1 Z = Odmik n+2 Naslednji ukaz X+Z K = Operand ali X+Z KH = Operand X+Z+1 KL = Operand 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.

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
b0 b7 C b0 b7 C b0 b7 C b0 b7 C b0 b7 C

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 8020 26 xxxx 5 80xx 8021 01 FFFE 2 8022 96 LDAA 8023 24 $24 Akumulator A 8024 4C INCA xx 8025 97 STAA 8026 23 $23 Podatkovno vodilo FFFA 16 FFFB A8 4 80 FFFC 3 00 1 Statusni register FFFD 00 FFFE 80 1 1 x x x x x x FFFF 22 1 1 H I N Z V C

35 RESET mikroprocesorja MC6800 - korak 2
CPU RAM Naslovno vodilo Programski števec 8020 26 80xx 4 8022 8021 01 FFFF 1 8022 96 LDAA 8023 24 $24 Akumulator A 8024 4C INCA xx 8025 97 STAA 8026 23 $23 Podatkovno vodilo FFFA 16 FFFB A8 3 22 FFFC 00 Statusni register 2 FFFD 00 FFFE 80 1 1 x 1 x x x x FFFF 22 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 ACCA k ACCA k SP m SP m - 1 PC n PC n + 1 m - 2 m - 2 m - 1 SP  m - 1 SP  m m k m + 1 7F m + 1 7F m + 2 63 m + 2 63 m + 3 FD m + 3 FD PC  n PSHA n PSHA n + 1 Nasl. Inš. PC  n + 1 Nasl. Inš.

38 Sklad - jemanje podatkov (PULA, PULB)
Pred izvršitvijo: Po izvršitvi: MPU MPU ACCA ACCA k SP m - 1 SP m PC n PC n + 1 m - 2 m - 2 SP  m - 1 m - 1 m k SP  m m + 1 7F m + 1 7F m + 2 63 m + 2 63 m + 3 FD m + 3 FD PC  n PULA n PSHA n + 1 Nasl. Inš. PC  n + 1 Nasl. Inš.

39 Skok na podprogram (JSR)
MPU MPU X X SP m SP m - 2 PC n PC S +3 m - 2 SP  m - 2 m - 1 m - 1 (n + 3)H SP  m m (n + 3)L m + 1 7F m + 1 7F m + 2 63 m + 2 63 PC  n JSR n JSR n + 1 SH n + 1 SH n + 2 SL n + 2 SL n + 3 Nasl. Inš. n + 3 Nasl. Inš. S Sub. PC  S Sub. S + 1 S + 1

40 Skok na podprogram (JSR x)
MPU MPU X x X x SP m SP m - 2 PC n PC x + k +2 m - 2 SP  m - 2 m - 1 m - 1 (n + 2)H SP  m +x m (n + 2)L m + 1 7F m + 1 7F m + 2 63 m + 2 63 PC  n JSR, x n JSR n + 1 k n + 1 k n + 2 Nasl. Inš. n + 2 Nasl. Inš. x + k Sub. PC  x + k Sub. x + k + 1 x + k + 1

41 Relativni skok na podprogram (BSR)
MPU MPU X X SP m SP m - 2 PC n PC n+2+k +2 m - 2 SP  m - 2 m - 1 m - 1 (n + 2)H SP  m +/- m (n + 2)L m + 1 7F m + 1 7F m + 2 63 m + 2 63 PC  n BSR n BSR n + 1 k n + 1 k n + 2 Nasl. Inš. n + 2 Nasl. Inš. n k Sub. PC  n k Sub. n k n k

42 Vrnitev iz podprograma
MPU MPU X X SP m - 2 SP m PC Sn PC n + 2 SP  m - 2 m - 2 m - 1 (n + 2)H m - 1 m (n + 2)L SP  m m + 1 7F m + 1 7F m + 2 63 m + 2 63 n BSR n BSR n + 1 k n + 1 k n + 2 Nasl. Inš. PC  n + 2 Nasl. Inš. S(n-1) S(n-1) PC  Sn RTS Sn RTS

43 Prekinitev (Interrupt)
MPU MPU Vektor SP m SP m - 7 FFFC PH PC n PC P FFFD PL m - 7 SP  m - 7 m - 6 m - 6 CCR m - 5 m - 5 B m - 4 m - 4 A PC, X, A, B, CCR m - 3 m - 3 XH m - 2 m - 2 XL m - 1 m - 1 (n + 1)H SP  m m (n + 1)L PC  n Inšt. k n Inšt. k n + 1 Inšt. k +1 n + 1 Inšt. k +1 P Interr. PC  P Interr. P + 1 P + 1

44 Vrnitev iz prekinitve MPU MPU SP m - 7 SP m PC Pn PC n + 1 SP  m - 7
CCR, B, A, X, PC m - 7 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 (n + 1)L SP  m n Inšt. k n Inšt. k n + 1 Inšt. k +1 PC  n + 1 Inšt. k +1 P(n-1) P(n-1) PC  Pn RTI Pn RTI

45 Prekinitveni vektorji
FFF8 IRQ L Interrupt Request FFF9 IRQ L FFFA SWI L Software Interrupt FFFB SWI L FFFC NMI H Non Maskable Interrupt FFFD NMI L FFFE RESET H Reset FFFF RESET L

46 Pisanje in prevajanje programov
Zbirnik - Assembler komentarji ukazi procesorja ukazi zbirnika spremenljivke (labele) konstante aritmetični in logični izrazi * 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 število ADDA #10 ; prištejemo mu 10 STAA $800 ; shranimo vsoto LDAA $801 ; preberemo drugo število STAA $801 ; shranimo vsoto LDAA $802 ; preberemo tretje število STAA $802 ; shranimo vsoto

47 * Primer programa, ki vrednosti, shranjene na
* naslovih $800, $801 in $802, zveča za 10 * RAM EQU $6000 ; naslov pomnilnika RAM ST1 EQU $800 ; naslov prvega stevila ST2 EQU ST1+1 ; naslov drugega stevila ST3 EQU ST1+2 ; naslov trejega stevila KONST EQU 10 ; konstanta, ki jo prištevamo ORG RAM ; začetek programa v RAM-u LDAA ST1 ; preberemo prvo število ADDA #KONST ; prištejemo mu 10 STAA ST1 ; shranimo vsoto LDAA ST2 ; preberemo drugo število STAA ST2 ; shranimo vsoto LDAA ST3 ; preberemo tretje število STAA ST3 ; shranimo vsoto komentarji ukazi procesorja ukazi zbirnika spremenljivke (labele) konstante aritmetični in logični izrazi

48 * Primer programa, ki vrednosti, shranjene na
* naslovih $800, $801 in $802, zveča 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 ; začetek 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 števec ni enak 0, nadaljujemo

49 * Primer programa, ki vrednosti, shranjene na
* naslovih $800, $801 in $802, zveča za 10 * RAM EQU $6000 ; naslov pomnilnika RAM ST1 EQU $800 ; naslov prve vrednosti KONST 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 vrednost JSR ZVECAJ ; zvecamo drugo vrednost JSR 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 10 STAA 0,X ; shranimo vsoto INX ; zvecamo X (naslednja vrednost) RTS

50 0001 * Primer programa, ki vrednosti, shranjene na
* naslovih $800, $801 in $802, zveča za 10 * RAM EQU $6000 ; naslov pomnilnika RAM ST1 EQU $800 ; naslov prve vrednosti KONST EQU 10 ; konstanta, ki jo prištevamo * ORG RAM ; začetek programa v RAM-u * CE PRIMER LDX #ST1 ; naslov prve vrednosti  X BD 60 0C JSR ZVECAJ ; zvecamo prvo vrednost BD 60 0C JSR ZVECAJ ; zvecamo drugo vrednost BD 60 0C JSR ZVECAJ ; zvecamo tretjo vrednost * … nadaljevanje * * * Podprogram, ki zveča za KONST, spominsko lokacijo, * na katero kaže X * C A6 00 ZVECAJ LDAA 0,X ; preberemo vrednost na katero kaže X E 8B 0A ADDA #KONST ; prištejemo 10 A STAA 0,X ; shranimo vsoto INX ; zvecamo X (naslednja vrednost) RTS *

51 TEST.HEX (Motorola S format)
Prevajanje programa TEST.ASM * Primer programa, ki vrednosti, shranjene na * naslovih $800, $801 in $802, zveča za 10 * RAM EQU $6000 ; naslov pomnilnika RAM ST1 EQU $800 ; naslov prve vrednosti KONST 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 vrednost JSR ZVECAJ ; zvecamo drugo vrednost JSR 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 10 STAA 0,X ; shranimo vsoto INX ; zvecamo X (naslednja vrednost) RTS C:\> ASM TEST TEST.HEX (Motorola S format) S FC S CE0800BD600CBD600CBD600CA6008B0AA S FC

52 ABC.HEX (Motorola S format)
S FC S CE0800BD600CBD600CBD600CA6008B0A14 S F39B0381A0387EF02BA565D76479A3 S A FA39E0AA A7BA0F2 S F197F S FA28BA AA S BA8C S107FFFC AA S B 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 K1 EQU 128 K2 EQU $1234 K3 EQU % * ORG $8100 A NASL0 FCB 10, 20, K1, K3 AABB12A FDB $AABB, $12A2, $1033 A FDB NASLO0 C F2 FCB % D 544F204A4520 FCC ‘TO JE TEST’ VAR1 RMB 3 A VAR2 RMB 1 B NA1 FDB VAR1 * ORG $8000 CE811B LDX #NA1 FE811B LDX NA1 INX

55 POMNILNIKI RAM ROM EEPROM Flash EPROM Statični Dinamični Dual port
Zero power ROM PROM(OTP) EPROM EEPROM Serijski Paralelni Flash EPROM Serijski (Data flash) Paralelni

56 POMNILNIKI - Povezava s CPU
D0 CPU A0 A0 RAM (8K) D0 D1 A1 A1 D1 D2 A2 A2 D2 D3 A3 A3 D3 D4 A4 A4 D4 D5 A5 A5 D5 D6 A6 A6 D6 D7 A7 A7 D7 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 I/O (4 byte) RAM Prosto RAM (8KB) ROM
0000 0001 0000 0002 0001 I/O (4 byte) 0003 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ščenost naslovnega prostora Potrebna je previdnost pri programiranju

59 Prosto I/O RAM Prepovedano ROM Prepovedano Prepovedano Prepovedano 8K
0000 Prosto 8K 1FFF 2000 I/O 8K 3FFF 4000 RAM 8K 5FFF 6000 Prepovedano 8K 7FFF 8000 ROM 8K 9FFF A000 8K Prepovedano BFFF C000 8K Prepovedano DFFF E000 8K Prepovedano FFFF Linearno dekodiranje

60 2. Delno dekodiranje naslovov
ROM (16 KB) RAM (8 KB) I/O (4 B) VMA E(2) A14 A15 D0 - D7 D0 - D7 D0 - D7 A0 - A13 A0 - A12 A0 - A1 CS CS CS Majhno število elementov Ni možnosti trčenja na podatkovnem vodilu Naslovni prostor ni popolnoma izkoriščen

61 0-DRA 1-CRA Prosto 16K 2-DRB 3-CRB 0-DRA 1-CRA 2-DRB I/O 16K 3-CRB
0000 4000 0-DRA 4001 1-CRA Prosto 16K 4002 2-DRB 4003 3-CRB 3FFF 4004 0-DRA 4000 4005 1-CRA 4006 2-DRB I/O 16K 4007 3-CRB 4008 0-DRA 7FFF 8000 RAM 8K 9FFF 7FFC 0-DRA A000 7FFD 1-CRA RAM 8K 7FFE 2-DRB BFFF 7FFF 3-CRB C000 ROM 16K FFFF Delno dekodiranje

62 3. Popolno dekodiranje naslovov
ROM (16 KB) RAM (8 KB) I/O (4 B) VMA E(2) A13 A14 A15 D0 - D7 D0 - D7 D0 - D7 A0 - A13 A0 - A12 A0 - A1 CS CS CS Vsak register je dostopen le na enem naslovu Veliko število elementov Visoka cena Naslovni prostor je popolnoma izkoriščen A2 A12

63 I/O 0-DRA 4B 1-CRA 2-DRB 3-CRB Prosto ~40KB RAM 8K ROM 16K 0000 0000
0003 0001 1-CRA 0004 0002 2-DRB 0003 3-CRB 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 Ločljivost ( bitov) Način 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 Control Reg. A Interrupt Control A CA1 CA2 Data Bus Buffers D0 Data Dir. Reg. A Pheripheral Interface A PA0 D7 Data Reg. A PA7 Chip Select & R/W Control Data Reg. B Pheripheral Interface B PB0 CS0 CS1 CS2 RS0 Data Dir. Reg. B RS1 PB7 R/W E RESET Interrupt Control B 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 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 biti Kontrolni biti

68 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 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 Omogočena prekinitev CA2: 1 - CA2 sproži IRQA 0 - CA2 ne sproži IRQA Stanje CA2 / posebna funkcija: 1 - 1 / “Read strobe with E restore” 0 - 0 / “Read strobe with CA1 restore”

69 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

70 Data Carrier Detect (DCD)
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 Clock Gen. Parity Gen. Data Bus Buffers Transmit Data Reg. Transmit
MC6850 ACIA Clock Gen. Parity Gen. T Clock Data Bus Buffers Transmit Data Reg. Transmit Shift Reg. D0 TD Transmit Control Status Register D7 CTS Interupt Logic IRQ Chip Select & R/W Control DCD Control Register CS0 RTS CS1 Receive Control Parity Check CS2 RS R/W Receive Data Reg. Receive Shift Reg. E RD Clock Gen. Sync Logic R Clock

72 MC6850 ACIA - Registri

73 Kontrolni register ACIA:
b7 b6 b5 b4 b3 b2 b1 b0 RIE TC2 TC1 WS3 WS2 WS1 CDS2 CDS1


Download ppt "GRADNIKI SISTEMOV PROCESNEGA VODENJA"

Similar presentations


Ads by Google