Pinout 8086 (1)

36
Pinout 8086 (1) Scurta recapitulare Trei tipuri de pini: Adresa (output); Date (input/output); Control (input/output);

description

Pinout 8086 (1). Scurta recapitulare Trei tipuri de pini: Adresa (output); Date (input/output); Control (input/output);. Pinout 8086 (2). Bus Adresa/Date: AD15-AD0. Acest bus contine datele si adresa multiplexate Bus Adresa/Control (status): A19/S6 – A16/S3. - PowerPoint PPT Presentation

Transcript of Pinout 8086 (1)

Page 1: Pinout 8086 (1)

Pinout 8086 (1)

Scurta recapitulare

Trei tipuri de pini: Adresa (output); Date

(input/output); Control

(input/output);

Page 2: Pinout 8086 (1)

Pinout 8086 (2) Bus Adresa/Date:

AD15-AD0. Acest bus contine datele si adresa multiplexate

Bus Adresa/Control (status): A19/S6 – A16/S3.

Aceste 4 linii contin adresa si statusul, multiplexate. S6 = 0, S5 indica statusul flagului de intrerupere IF, S4 si

S3 indica segmentul care este accesat in ciclul de magistrala curent.

Page 3: Pinout 8086 (1)

Pinout 8086 (3) Magistrala de control (1):

RD’ Cand este activ indica prezenta unei operatii de read.

READY Cand este 0, uP insereaza wait-stateuri in ciclul de

procesor. INTR

Folosit de periferice pentru a semnala o intrerupere TEST’

Acest pin este testat de instructiunea WAIT, daca este activ, WAIT se comporta ca un NOP, altfel instructiunea WAIT asteapta ca TEST’ sa devina 0 logic.

NMI Semnaleaza o intrerupere nemascabila.

Page 4: Pinout 8086 (1)

Pinout 8086 (4) Magistrala de control (2)

RESET Reset

MN/MX’ Selecteaza modul minim sau maxim al procesorului.

BHE’/S7 Bus high enable este folosit in conjunctie cu bitul A0

pentru a selecta citirea datelor pe 8 sau 16 biti. Bitul S7 este 1 intotdeauna

Page 5: Pinout 8086 (1)

Pinout 8086 (5) Magistrala de control (3) / modul minim (1):

M/IO’ Indica un acces la memorie sau port I/O.

WR’ O operatie de scriere este in desfasurare.

INTA’ INTerrupt Acknowledge.

ALE Address Latch Enable – indica faptul ca pe magistrala de

Date/Adresa este o adresa. DT/R’

Indica ca pe magistrala de date se transmite / receptioneaza un cuvant de date

Page 6: Pinout 8086 (1)

Pinout 8086 (6) Magistrala de control (4) / Modul minim (2):

DEN Data Enable, activeaza bufferul extern de date.

HOLD Pin de input care este activat de un periferic pentru a

semnaliza ca are nevoie de DMA. HLDA

HoLD Acknowledge, Pin de output prin care procesorul accepta cererea de DMA.

SS0’ Equivalent to S0 pin in maximum mode.

Page 7: Pinout 8086 (1)

Pinout 8086 (7) Magistrala de control (5) / Modul maxim(1):

S2’,S1’ and S0’ Biti de status pentru ciclul curent de magistrala.

RO’/GT1’ and RO’/GT0’ Pini de cerere/accept folositi pentru DMA in modul

maxim. LOCK’

Semnalizeaza ca un periferic este scos din sistem temporar.

QS1’ and QS0 Biti de status .

Page 8: Pinout 8086 (1)

Mod minim vs. mod maxim Modul minim este cel mai usor mod de a opera

un sistem cu 8086. Toate semnalele de control a magistralei sunt generate

de procesor. Suport pentru backward compatibility cu modele mai

vechi ( 8085A ) . Modul maxim mult mai versatil, dar si mai dificil

de operat Semnalele de control sunt generate de controllerul de

magistrala. Procesorul poate folosi coprocesorul matematic. Procesorul poate fi folosit in sisteme multiprocesor.

Page 9: Pinout 8086 (1)

Modul minim

Page 10: Pinout 8086 (1)

Modul maxim

Page 11: Pinout 8086 (1)

Circuite de memorie Tipuri de memorie:

ROM; Flash; SRAM; DRAM.

Semnale de conectare: Adresa; Data; Selectare (CS’); Control (OE’ / WE’).

Page 12: Pinout 8086 (1)

Decodarea adresei Adresa trimisa pe magistrala trebuie decodata

pentru a selecta circuitul de memorie corespunzator.

Acest semnal decodat va selecta cipurile care vor comunica cu procesorul prin intermediul magistralelor de date si control.

Se pot folosi mai multe metode de a decoda adresa: circuite cu porti logice; circuite decodificatoare; decodificatoare cu memorie ROM; automate programabile etc.

Page 13: Pinout 8086 (1)

Maparea unei memorii EPROM Cum mapam o memorie EPROM intr-un

anumit spatiu de adresa ? Cerinte tipice:

Schema bloc, cu evidentierea modului de functionare a procesorului ( mod minim / maxim)

Detalierea memoriei EPROM Schema Mapare

Page 14: Pinout 8086 (1)

Maparea mem. EPROM (2) Exemplu: O structura cu 8086 ce contine

64kB memorie EPROM mapata in spatiul FFFFFH- F0000H, folosind cipuri de memorie de 8k * 8

(1) Schema bloc: se obtine din evidentierea in schemei bloc generala pentru modul minim / maxim (slide 9 si 10) a circuitului de memorie EPROM.

Page 15: Pinout 8086 (1)

Maparea mem. EPROM (3) (2) Detalierea memoriei EPROM

Identificarea numarului de cipuri necesare: Spatiul de adresa = 64k Capacitatea memoriei = 8k

Modul de adesare al cipurilor 8k * 8 inseamna 8 * 1024 de cuvinte de 8 biti de date Dimensiune memorie : 23 * 210 13 biti de adresa Lungimea unui cuvant 8 biti 8 biti de date Q: Cum facem sa avem cuvinte de date mai mari de 8

biti, daca avem cipuri de 8 biti ? A: Punem in paralel mai multe cipuri de memorie

8 cipuri

Page 16: Pinout 8086 (1)

Maparea mem. EPROM (4) Cateva exemple de adresare pentru cipuri:

Tip cip Numar pini de adresa

Pentru accesare dateCapacitate (in octeti)8 biti 16 biti 32 biti

8k * 8 13 (3 + 10) 1 celula2 celule in

paralel4 celule in

paralel 8k

16k * 8 14 (4 + 10) 1 celula2 celule in

paralel4 celule in

paralel 16k

32k * 8 15 (5 + 10) 1 celula2 celule in

paralel4 celule in

paralel 32k

8k * 16 13 (3 + 10) - 1 celula2 celule in

paralel 16k

Page 17: Pinout 8086 (1)

Maparea mem. EPROM (5) Pentru un procesor 8086, lungimea cuvintului

este de 16 biti In cazul nostru, cu cipuri 8k * 8 2 celule in

paralel Fiecare chip are doua semnale importante:

CS’ (semnal pe logica negativa) – Chip Select Daca nu este 0, cipul nu este activ

OE’ (semnal pe logica negativa) – Output Enable Daca pe acest pin se trimite 0, circuitul va trimite datele

la iesire

Page 18: Pinout 8086 (1)

Maparea mem. EPROM (6) Primul pas in decodificarea adresei este

stabilirea semnalului de selectie a zonei mapate Prima adresa din zona mapata: 1111 0000 0000

0000 0000 Ultima adresa din zona mapata: 1111 1111 1111

1111 1111 Memoria EPROM e selectata cand A19,A18,A17,A16

sunt 1 EPROMSEL = A19^A18^A17^A16

Page 19: Pinout 8086 (1)

Maparea mem. EPROM (7) Semnalele CS

Sunt comune pentru cipurile care vor outputa in acelasi cuvant de date

In cazul nostru, cele 4 perechi de cipuri se aleg pe baza bitiilor A15-A14

Cel mai usor in cazul nostru este sa folosim un decodificator care va fi activat de semnalul EPROMSEL

A15 A14 Semnal

0 0 CS0 – selectare linia 0

0 1 CS1 – selectare linia 1

1 0 CS2 – selectare linia 2

1 1 CS3 – selectare linia 3

Page 20: Pinout 8086 (1)

Maparea mem. EPROM (8) Adresarea in cip

In interiorul cipului adresarea se face pe 13 biti, deci bitii A13-A1

Citirea are loc numai pentru cipurile in care CS este activ Disponibilitatea datelor pe octeti

Pentru 8086 sunt 3 moduri: D15-D8, D7-D0, D15-D0

BHE’ si A0 codifica: cele 3 moduri valide pe 8086 Daca arhitectura ar fi fost proprie, atunci se putea folosi

doar bitul A0 pentru a comanda care din cele 2 cipuri va outputa octetul de citit

Page 21: Pinout 8086 (1)

Maparea mem. EPROM (9)BHE’ A0 Date

0 0 Date citite pe 16 biti, de la adrese pare, pe D0-D15

0 1 -

1 0 Date citite pe 8 biti, de pe D0-D7

1 1 Date citite pe 8 biti, de pe D8-D15

Page 22: Pinout 8086 (1)

Maparea mem. EPROM (10)

Page 23: Pinout 8086 (1)

Maparea mem. EPROM (11) Concluzii

Maparea unei memorii de orice fel se face asemanator

Fiti atenti la: Nr. de biti de adresa ai procesorului Nr. de biti de date ai procesorului Tipul memoriei ( lungime cuvant si dimensiunea cipului) DRAM are nevoie si de refresh (timer)

Page 24: Pinout 8086 (1)

Maparea unui timer (1)

Cum mapam un timer la o anumita adresa astfel incat acesta sa genereze semnale cu o anumita frecventa?

Cerinte tipice Dandu-se un model de timer, sa se stabileasca

schema Detalierea modului de a genera semnale

(intreruperi) cu o anumita periodicitate

Page 25: Pinout 8086 (1)

Maparea unui timer (2)

Exemplu: Se considera o structura cu 8086 la care se mapeaza un timer cu ceas de 5 MHz care genereaza intreruperi la fiecare 20 ms, avand adresa de baza 20H.

Cerinte: Schema, detalierea modului de lucru, setarea

divizorului

Page 26: Pinout 8086 (1)

Maparea unui timer (3)

Circuitul de ceas standard la 8086 este 8253 3 timere pe 16 biti (IRQ0, DRAM refresh, speaker) Fiecare timer are doi pini de intrare (CLK0-2 si GATE0-2) si

unul de iesire Semnalul de selectie TIMERCS poate fi obtinut

(adresa este 20H = 0000 0000 0000 0010 0000): Cu porti logice pe baza bitilor de adresa (¬A19¬A18…

¬A7¬A6A5¬A4¬A3¬A2¬A1¬A0) (urat!) Cu ajutorul unui decodificator

Poate decodifica mai multe adrese Mai ieftin de implementat

Page 27: Pinout 8086 (1)

Maparea unui timer (4)

Decodificarea cu circuit de decodificare In general perifericele se pun la adrese multiple

de 16 (10H, 20H…) Folosim bitii A7,A6,A5,A4 ca input in decodifcator In cazul nostru pinul de iesire 2 al

decodificatorului este TIMERCS Semnalul EN al decodificatorului este

(IORD+IOWR) ¬A19¬A18…¬A9

Page 28: Pinout 8086 (1)

Maparea unui timer (5)

Setarea divizorului F = 5MHz T = 200 ns Dorim sa obtinem 20 ms, deci factorul de divizare este

20ms / 200 ns = 100 000 Timerul 8253 are cele trei countere pe 16 biti nu putem

folosi doar un singur counter Folsim doua countere

Primul il conectam la clockul de 5 MHz, initializam cu 50000 si scadem spre 0, cand atinge 0 lansam un semnal pe output T = 10 ms (mod 0)

Celui de-al doilea ii conectam CLK la iesirea primului si il initializam cu 2, cand scade si atinge 0 lanseaza semnal pe output semnal cu T = 20 ms

Page 29: Pinout 8086 (1)

Maparea unui timer (6)

Page 30: Pinout 8086 (1)

Circuit de monitorizat accese (1) Exemplu: Sa se urmareasca accesele de

scriere la portul 70H. Toate datele scrise la acest port sunt stocate intr-o memorie SRAM de 2k*8 mapata in spatiul 80000H-80800H. Cand memoria este umpluta se genereaza o intrerupere pe IRQ3. Memoria SRAM este accesata de procesor numai pe 8 biti.

Page 31: Pinout 8086 (1)

Circuit de monitorizat accese (2) Schema circuitului va contine urmatoarele

blocuri: Decodificator pentru adresa port (DEC) Un numarator pe 11 biti care va genera

urmatoarea adresa din SRAM Blocul de memorie SRAM Un multiplexor care va selecta in functie de

actiunea asupra memoriei adresa care trebuie furnizata

Page 32: Pinout 8086 (1)

Circuit de monitorizat accese (3) Decodificatorul

Primeste ca intrare adresa de pe magistrala de adrese supravegheata si activeaza iesirea daca a primit adresa corespunzatoare perifericului care trebuie supravegheat

Intrarea: A7-A4

Enable este dat de semnalul IOWR’ de la procesor In cazul nostrul, adresa = 70H, se va alege al saptelea bit

de iesire Outputul decodificatorului va fi 1 de fiecare data cand se

face un acces la scriere la adresa 70H

Page 33: Pinout 8086 (1)

Circuit de monitorizat accese (4) Numaratorul

Furnizeaza urmatoarea adresa libera din SRAM in care se scriu datele.

In cazul nostru, semnalul de ceas este output-ul decodificatorului

Dimensiunea lui este data de dimensiunea blocului pentru care el furnizeaza adrese

In cazul nostru, 2k = 211, deci trebuie sa fie pe 11 biti Umplerea memoriei este semnalata tot de numarator, prin

semnalul CARRY al acestuia In cazul nostru, semnalul CARRY este legat la IRQ3

Page 34: Pinout 8086 (1)

Circuit de monitorizat accese (5) Multiplexorul

Selecteaza in functie de actiunea asupra memoriei, adresa care trebuie furnizata. Daca are loc o operatiune de scriere, adresa este

furnizata de la numarator Daca are loc o operatiune de citire, va fi data adresa de

la procesor (ultimii 11 biti) Semnalul de selectie este iesirea decodificatorului Intrarea 1 este iesirea numaratorului NUM0-NUM10

Intrarea 2 este A0-A10

Page 35: Pinout 8086 (1)

Circuit de monitorizat accese (6) Memoria SRAM

Memoreaza datele care sunt scrise in portul 70H Este mapat la adresa 80000H Este accesibil pentru scriere, semnalul WR fiind activat de

o scriere la portul 70H Este accesibil pentru citire, semnalul RD fiind activat de

procesor Semnalul de activare SRAMCS este dat de o scriere sau o

citire: DECOUT + SelectRAMRead SelectRAMRead este activat atunci cand adresa este in

intervalul A0-A19 si MEMRD este activ

Page 36: Pinout 8086 (1)

Circuit de monitorizat accese (7)