Arhitectura Microprocesoarelor

Cuprins

Tema proiectului

Circuite de cale – bloc de linie automat. Prezentare generala

Principii de urmarire in linie curenta

Structuri cu microprocesoare

introducere

principii de proiectare

Microprocesorul INTEL 8086

genaralitati

caracteristici de baza

terminalele si semnificatiile lor

arhitectura interna

setul de registre

configuratii sistem pentru INTEL 8086

Circuite aditionale INTEL

tampoane unidirectionale I8282

tampoane bidirectionale I8286

circuit de gestiune a intreruperilor I8259 A

interfata paralela programabila I8255

contor / periodizator (timer) programabil I8253

interfata seriala I8251 (USART)

Circuite de memorie

memoria RAM: 2114

memoria ROM: 2716

Prezentarea schemei electrice

29 pagini

=== MP ===

Arhitectura Microprocesoarelor

Cuprins

Tema proiectului

Circuite de cale – bloc de linie automat. Prezentare generala

Principii de urmarire in linie curenta

Structuri cu microprocesoare

introducere

principii de proiectare

Microprocesorul INTEL 8086

genaralitati

caracteristici de baza

terminalele si semnificatiile lor

arhitectura interna

setul de registre

configuratii sistem pentru INTEL 8086

Circuite aditionale INTEL

tampoane unidirectionale I8282

tampoane bidirectionale I8286

circuit de gestiune a intreruperilor I8259 A

interfata paralela programabila I8255

contor / periodizator (timer) programabil I8253

interfata seriala I8251 (USART)

Circuite de memorie

memoria RAM: 2114

memoria ROM: 2716

Prezentarea schemei electrice

T E M A P R O I E C T U L U I

Sa se realizeze un calculator de proces care sa regleze circulatia trenurilor intr-o sectie completa cu linie principala cu doua fire. Se vor folosi principiile functionale de la blocul de linie automat.

Calculatorul va avea posibilitati de legatura si comunicare cu alte unitati de calcul: calculator supraveghetor, calculatoarele de proces da la blocurile vecine, etc.

Circuitul proiectat trebuie sa indeplineasca urmatoarele criterii:

alimentare la + 5V, curent continuu

separare galvanica totala pe intrari si iesiri

microprocesorul folosit va fi INTEL 8086, cu fracventa de tact de 5 MHz

asigurarea transmiterii informatiei catre alte sectii, prin canal codificat

gama temperaturilor de functionare: 0 – 600C

Se vor folosi structurile si principiile de functionare ale blocului de linie automat pe linie principala cu doua fire.

CIRCUITE DE CALE

BLOC DE LINIE AUTOMAT

Prezentare generala

Blocul de linie automat (BLA) reprezinta un sistem perfectionat pentru reglarea siasigurarea circulatiei pe linie continua. Trenul, prin prezenta sa pe linie isi realizeaza propria sa protectie, materializata in comanda automata, fara interventia operatorilor, a indicatiei semnalelor luminoase.

Blocul de linie automat permite marirea densitatii circulatiei pe linia curenta, prin realizarea unui spatiu mic intre doua trenuri care vor circula insa in deplina siguranta.

Cel mai mic spatiu la care se urmaresc doua trenuri este cel cuprins intre doua semnale luminoase consecutive ce se numeste sector de bloc (BL).

Blocul de linie automat este indicat a fi folosit chiar daca densitatea circulatiei nu il justifica, aportul sau la siguranta circulatiei este decisiv, el eliminind practic complet (la functionare normala) posibilitatea producerii unui accident in linia curenta: ciocnire,

prindere din urma etc.

Prin introducerea blocului de linie automat, capacitatea de transport a unei sectii oarecare se mareste substantial, deoarece:

timpul de reavizare se reduce practic la zero (timpul necesar pentru raportarea primirii si gararii trenului de statia primitoare si cel necesar comandarii parcursului de iesire in statia expeditoare);

se reduce timpul de urmarire dintre doua trenuri, deoarece nu mai este necesar sa se astepte ca trenul expediat sa parcurga distanta dintre statii.

Legatura dintre tren si circuitul de cale se realizeaza in mod continuu, prin intermediul unor circuite tip senzor amplasate la calea de rulare. Tipul sistemului de supraveghere a liniei curente este o caracteristica de baza a circuitului de cale.

Blocul de linie automat folosit pe scara larga este cel cu 3 indicatii, lucrind dupa urmatorul algoritm:

sectorul de bloc ocupat: semnal pe rosu

un sector de bloc liber si unul ocupat: semnal pe galben

doua sau mai multe sectoare de bloc libere: semnal pe verde

In afara de cele trei semnale luminoase clasice (numite “focuri”), circuitele de bloc folosite in prezent impun folosirea unui al patrulea foc, de culoare rosie, numit “rosu de rezerva”, folosit pentru situatiile de avarie produse la blocul de linie curent ( situatia arderii filamentului la unul sau mai multe becuri de semnal, pierderea comunicarii cu celelalte circuite de cale din retea, avarie la circuitul de cale).

Folosirea blocului de linie automat comandat cu microprocesor are ca principale avantaje posibilitatea programarii dupa necesitati a traficului, comunicarea permanenta cu circuitele de cale din linie, posibilitatea supravegherii si conducerii circulatiei in linie cu un sistem informatic, fluidizarea si optimizarea traficului. Ca principal dezavantaj se poate invoca complexitatea mare a schemei, ceea ce duce la probabilitati de defectare mari.

Deasemenea, in situatia pierderii legaturii cu celelalte sisteme de bloc din retea sistemul devine greu de controlat, iar lasat independent duce la oprirea circulatiei pe blocul respectiv – fapt impus de criteriile de siguranta circulatiei.

Principii de urmarire in linie curenta

In cazul blocului de linie automat cu trei indicatii, intre doua trenuri care se urmaresc pot exista unul sau mai multe sectoare de bloc, in functie de viteza fiecarui tren. Lungimile sectoarelor de bloc se iau intotdeauna mai mari decit drumul minim de frinare si sunt cuprinse in functie de configuratia terenului intre 1200m si 2200m . Aceste distante se fixeaza tinind seama de faptul ca trenurile nu au o viteza constanta (demarare la plecari din statii si frinare la intrari in statii), de lungimile maxime ale garniturilor si de viteza medie de circulatie pe linia respectiva.

Circulatia pe blocurile de linie automata:

– urmarirea la trei sectoare de bloc

urmarirea la doua sectoare de bloc

– urmarirea la un sector de bloc

STRUCTURI CU MICROPROCESOARE

INTRODUCERE

Sistemele cu micro procesoare sunt din ce in ce mai raspindite, fiind prezente intr-o gama deosebit de larga de aplicatii, plecind de la echipamentele industriale si ajungind la diverse aparate de uz casnic. Acest fenomen se datoreaza atit functiilor multiple si flexibile pe care acestea le pot comanda, cit si avansului remarcabil al tehnologiei, care a dus la aparitia unor circuite integrate cu pret relativ redus, atit pentru uz general, cit si pentru destinatii speciale.

PRINCIPII DE PROIECTARE

Proiectarea unui sistem cu microprocesor necesita urmarirea unui proces care sa asigure indeplinirea anumitor obiective propuse initial; in continuare vor fi discutate etapele de proiectare mai importante, care sunt ilustrate schematic in figura de mai jos:

1.Stabilirea obiectivelor proiectarii

Inainte de a incepe proiectarea unui sistem, este necesar sa cunoastem exact ceea ce trebuie realizat. Stabilirea obiectivelor proiectarii nu se opreste doar la o simpla specificatie functionala. Aceasta include deasemenea nivelul de performanta, consumul de putere, spatiul disponibil, costul dorit al produsului final etc. Doar in foarte putine cazuri se alege pentru rezolvarea problemei varianta tehnica cea mai de virf, care ofera cea mai mare performanta posibila. De cele mai multe ori, trebuie facut un compromis intre cost, spatiul disponibil pe placa, cerintele de putere si pe de alta parte performanta sistemului.

2.Alegerea corecta a arhitecturii

Pentru atingerea obiectivelor propuse, trebuie aleasa o abordare corespunzatoare. La prima vedere, exista o gama foarte larga de obtiuni tehnice fezabile, de care se poate dispune. Totusi, exista diferiti factori care reduc in general foarte mult aceasta varietate de optiuni. Se vor analiza in cele ce urmeaza patru arii de decizie, a caror importanta poate varia in diferite situatii, datorita naturii particulare a unui proiect.

impartirea sistemului in blocuri functionale – duce la o mai usoara intelegere si convertire a fiecarui element intr-un circuit real.

alegerea microprocesorului – este una dintre deciziile cele mai importante, fiin dictata de cele mai multe ori de catre elementul software-ul si hardware-ul disponibile. Se poate distinge astfel ideea de standardizare pe o linie particulara de microprocesoare, functie de firma si domeniu (Apple Computers si producatorii de echipamente radio folosesc majoritar procesoare si microcontrolere Motorola, IBM a lansat seria de calculatoare personale tip PC, care lucreaza pe baza procesoarelor INTEL, companiile Epson, Xerox, Canon folosesc masiv procesoare Mitsubishi Electric si in egala masura si – au dezvoltat propriile circuite dedicate, in tehnica audio- video majoritatea producatorilor agreaza procesoarele dedicate Phillips sau General Electric).

arhitectura de magistrala – alegerea sa este importanta in special in sisteme multi-placa; exista pentru aceasta doua alternative de baza: folosirea unei magistrale standard sau dezvoltarea uneia specifice aplicatiei.

folosirea logicii specializate- in functie de particularitatile proiectului, se pune problema alegerii intre un sistem continind circuite standard si specializate, avind un microprocesor inconjurat de circuite cu destinatii speciale. Optarea pentru a doua varianta este esentiala daca spatiul sau puterea sunt limitate, sau daca produsul va fi realizat in serie mare.

3. Decizii detaliate de proiectare

Pot imbunatati considerabil producerea respectivului proiect. Ca exemplificare se poate considera memoria RAM dinamica, la care chiar daca s-a hotarit asupra volumului de octeti, trebuie ales de exemplu intre circuite de 1Mx4 sau 4Mx1. Aceasta se face in functie de o multitudine de factori, cum ar fi incrementele de memorie ce pot fi necesare, spatiul fizic disponibil sau timpii de acces la memorie.

4.Elaborarea diagramei circuitului

Se efectueaza de obicei cu ajutorul unui pachet de software specializat, dupa care se poate tipari pe o imprimanta sau un plotter; in acelasi timp, este creata o versiune a circuitului ce poate fi citita pe calculator, oferind suport pentru diverse teste de erori sau simulari ale functionarii, in functie de complexitatea schemei. Daca pe linga componentele standard este necesara si o logica programabila de catre utilizator sau un circuit specializat, atunci ele trebuie proiectate in paralel cu diagrama detaliata a circuitului.

5. Prototipul

Dupa realizarea diagramelor circuitului, in cele mai multe cazuri se produce un prototip, pe care se testeaza functionarea si se depisteaza eventualele erori de proiectare. Pentru acesta se poate utiliza o tehnologie de wrappare sau se merge direct la varianta multi-strat, in functie de complexitate, timp, etc.

6.Transferarea proiectului pe o placa de circuit imprimant

Se realizeaza cu ajutorul unor pachete CAD ( Computer Aided Design ); rezultatul consta intr-un set de fotoplot-uri care sunt disponibile catre producatorii de PCB ( “ Printed Circuit Boards”). In cazul prototipului, la schemele de complexitate mica sau medie se poate opta si pentru solutia manuala.

MICROPROCESORUL INTEL 8086

ARHITECTURA INTERNA

GENERALITATI

aparut in 1978, tehnologie NMOS, 40 pini, 29000 tranzistoare in structura, pe o capsula de 37 mm, alimentat cu tensiune unica, + 5V

a stat la baza primului calculator PC – XT.

a fost conceput sa lucreze intr-o structura realizata cu circuite dedicate INTEL:.

8284 generator de tact;

controler si amplificator de magistrala;

8087 coprocesor aritmetic;

8089 coprocesor I / O

CARACTERISTICI DE BAZA

magistrala de date D0 …D 15 de 16 biti;

magistrala de adrese A0…A 19 de 20 biti ( 20 linii de adresa);

magistralele AD0…AD 15 contin la momente diferite ( A0…A15 si D0…D15);

liniile A16 ,A17,A18,A19 sunt multiplexate cu un semnal de control

frecventa de tact depinde de versiunea constructiva: f=5MHz,…,8MHz;

procesorul este compatibil la nivel de instructiuni cu I-8080 si I- 8085;

procesoarele de 16 biti echivalente cu 8086 sunt Z-8000 (Zilog) si M-68000 (Motorola);

executa 94 de tipuri de instructyiuni, dar totalul acestora este peste 10000 de instructiuni;

opereaza in cod binar, BCD, Hexa,ASCII;

contine instructiuni pentru lucrul cu siruri de date (blocul de date poate avea maxim 64K);

tensiunea de alimentare +5V fata de masa.

Terminalele si semnificatiile lor

Datorita limitarii numarului de pini la 40 un numar mare de pini au dubla functie.

-AD0…AD15 sunt folositi ca magistrala de adrese A0…A15 pe durata starii T 1 a CM de adresare a memoriei;

-D0…D15 intreaga magistrala de date pe durata T2-T4 ale CM de adresare a memoriei;

– A16 / S3 (A16 multiplexat cu S3) – unde pe durata T1 este A16

-A 17 /S4 S3…S6 pe durata T2…T4 (stare);

– A18 / S5 S3,S4 – reprezinta codificat reg. Segm. Implicat in adresa dupa urmatorul tabel:

– S5 – copiaza in exterior indicatorul de intreruperi IF;

– S6 – 0 permanent;

– S7 – rezervat INTEL – linie de semnificatii nedefinita;

BHE / S7 – Bus High Enable – validarea partii superioare a magistralei

iesire cu teri stari activa in 0 disponibila pe durata T1; se activeaza cind are loc un transfer pe octetul superior al magistralei de date D8…D15 validind acest transfer (semnal de probe) -T2…T4;

RD – iesire cu trei stari activa in zero cu semnificatia citire in memorie sau port;

READY- intrare de la un dispozitiv extern pentru sincronizarea procesorului cu echipamentele mai lente – procesorul intra in starea de asteptare pina cind READY = 1;

INTR – intrare in cereri de intrerupere mascabile;

NMI – intrare in cereri de intrerupere nemascabile;

TEST – intrare utilizata de instructiunea WAIT din setul lui I8086

TEST= 0(activ) executia programului continua

TEST= 1 executia se intrerupe, procesorul intrind in starea de asteptare pina cind TEST=0

Se utilizeaza pentru sincronizarea unui coprocesor de I / O sau matematic;

CLK – intrare de tact- nivel TTL-, frecventa de 5 pina la 8MHz si factorul de umplere de 1/3.

RESET – intrare activa in logic care produce initializarea procesorului;

HOLD – intrare de la un dispozitiv extern care solicita acces la magistrala;

HOLDA – iesire catre un dispozitiv extern prin care se acorda accesul la magistrale dupa trecerea lor in starea de inalta impedanta;

MN / MX – determina obtiunea de configurare. Cind acesta este legat la masa (“0” logic), procesorul se foloseste in modul maxim iar cind este legat la + 5V (“1” logic), el functioneaza in modul minim.

WR – indica efectuarea de catre procesor a unui ciclu de scriere le memorie sau I /O in functie de starea semnalului M/IO. WR este activ in perioadele T2,T3 si TW ale oricarui ciclu de scriere. Este activ pe “0” logic si trece in starea de inalta impedanta la confirmarea cererii de HOLD pe magistrala locala.

INTA – este folosit ca strob de citire pentru ciclii de confirmare a intreruperii. Esta activ pe zero.

ALE – este furnizat de procesor pentru a retine adresa in LATCH-ul de adrese 8282/8283. Este activa pe “0” logic la T1 a oricarui ciclu magistrala.

DT/R – este necesar intr-un sistem minim care doreste folosirea unui transceiver 8286/8287 pe magistrala de date. Ea este utilizata pentru a utiliza directia fluxului de date prin receiver.

DEN – este dat ca o activare a iesirii pentru 8286/8287, intr-un sistem minim ce utilizeaza transceiver. Este activ pe zero la fiecare acces la memorie sau la porturile de I / O si la ciclii INTA. Pentru un ciclu INTA sau de citire, el este activ de la mijlocul lui T2 pina la mijlocul lui T4, iar pentru un ciclu de scriere este activ de la inceputul lui T2 pina la mijlocul lui T4. DEN trece in starea de inalta impedanta la confirmarea cererii de HOLD pe magistrala locala.

VCC – este pinul de alimentare + 4V;

GND – ground – pinul de alimentare nula, care este si “masa” intregului sistem (fata de care se raporteaza toate potentialele si semnalele logice).

Arhitectura interna

– schema interna a microprocesorului este urmatoarea:

Structura interna a microprocesorului este impartita in doua zone:

1. BIU – Bus Interface Unit 2. EU – Execution Unit.

Unitate BIU: realizeaza conectarea microprocesorului cu exteriorul prin intermediul unei magistrale de adrese de 20 de linii si magistrale de date de 16 linii;

genereaza semnale de comanda pentru citirea si scrierea operanzilor in/din memorie si pentru efectuarea operatiilor de I /O cu porturile.

Extrage instructiuni din memorie in avans si le stocheaza intr-un fisier de instructiuni format din 6 registre de 8 biti (Coada);

Coada de instructiuni functioneaza dupa principiul FIFO;

Completeaza coada pina la umplerea ei;

Daca instructiunea curenta este o instructiune de salt, BIU anuleaza informatia din coada de instructiuni si o reincarca de la adresa de salt.

Unitatea EU: decodifica si executa instructiunile extrase din fisierul de instructiuni; daca pentru executie este nevoie de un operand din memorie, transmite unitatii BIU adresa operandului care va fi extras cu prioritate;

in timpul executiei testeaza si pozitioneaza adresele de lucru si stiva.

Setul de registre:

Este format din 4 categorii de register, acestea fiind de 16 biti.

Registrele de date: ele se mai numesc si registre de uz general, desi unele dintre ele au anumite functii in unele operatii:

sunt registre AX,BX,CX,DX, de 16 biti ele mai putind fi folosite si ca registre de 8 biti AH,AL,BH,BL,CH,CI,DH,DL;

oricare din aceste 4 registre pot fi folosite in operatii aritmetice si logice sau au si atributii specifice.

AX – registru de uz general

AL – inmultie / impartire pe 8 biti si I / O pe 8 biti;

AH – idem cu AL;

BX – are ca functie principala functia de registru de baza – pentru adresarea indexata ;

CX – contor in operatiile pentru siruri de date;

Cl – contor in deplasari si rotatii;

DX – op. De inm / imp pe 16 biti, in care memoreaza o parte din produs sau catul;

Registrul A are rol de acumulator.

Registre segment: – registre de 16 biti ( CS,DS,ES,SS );

CS – cod segment, DS – data segment, ES – extra segment ( segment suplimentar de date ), SS – stack segment;

oricare din aceste segmente contine o adresa pe 16 biti care reprezinta adresa de baza a unei zone de memorie externa – segment;

CS – se utilizeaza pentru stocarea programului sub forma de instructiuni;

DS – se utilizeaza pentru stocarea operanzilor utilizati de programe;

ES – segment suplimentar de date;

SS – zona de memorie organizata ca memorie stiva ( memoria trebuie sa fie RAM )

Configuratii sistem pentru INTEL 8086

Pentru a se adapta pe cit posibil la cit mai multe situatii, I 8086 a fost prevazut cu doua moduri de operare, modul minim si modul maxim.

Modul minim se foloseste pentru sisteme mici, cu un singur microprocesor, sisteme in care 8086 genereaza direct toate semnalele de comanda ale magistralei (minimizind astfel logica de comanda a magistralei necesara).

Modul maxim este pentru sisteme de marime medie si mare, care include adesea doua sau mai multe procesoare. In modul maxim 8086 codifica semnalele de comanda de baza ale magistralei de 3 biti de stare si foloseste pinii de comanda ramasi pentru a furniza informatii aditionale, necesare pentru a sustine o configuratie multiprocesor.

Configuratia in mod minim utilizeaza tampoane unidirectionale si bidirectionale (circuitele 8282 si 8286, prezentate in cele ce urmeaza) pentru formarea magistralei de adrese si a magistralei de date. Liniile magistralei de comenzi sunt generate, in acest mod de lucru, direct de procesor. Semnalele CLK, RESET si READY sunt obtinute de la un circuit generator de ceas (8284).

Configuratia in modul maxim utilizeaza aceleasi circuite, in plus fiind necesar si un circuit care sa preia semnalele de stare de la microprocesor si sa formeze magistrala de comenzi ( circuitul 8288, controller de magistrala).

Circuitele aditionale INTEL

Tampoane unidirectionale INTEL 8282

I8282 – tampon unidirectional de 8 biti (“octal latch”), avind buffere cu iesiri 3-state;

-STB (input) – este un plus de intrare , folosit pentru a stroba ( a permite sau nu memorarea ) datele de pe pinii de intrare (D10- D17) in tamponul de date. Semnalul este activ pe 1. Datele sunt tranzitia lui STB din 1 in 0.

-OE – (input) – este un semnal de comanda care, cind activ in 0 permite continutului tamponului de date sa fie transmis la pinii de iesire DO 0 – DO 7. Cind OE este inactiv (“1”) forteaza buferele de iesire sa teaca in starea de inalta impedanta.

– D10 – D17 – sunt pinii de intrare a datelor. Datele de pa acesti pini sunt strobate (STB activ) si memorate.

-DO 0 – DO 7 – sunt pinii de iesire a datelor. Cind OE este activ, datele sunt memorate sunt prezentate pe acesti pini neinversate.

Descrierea functionarii: datele satisfacind anumite conditii de timp sunt pastrate in aceste circuite prin strobarea liniei STB de pe 1 pe 0. Pe inerea liniei STB in starea; activa 1 duce la o comportare transparenta a circuitului. Datele sunt prezentate la pinii de iesire prin activarea liniei de intrare OE. Cind OE este inactiva, bufferele se afla in starea de inalta impedanta.

Tampoanele bidirectionale INTEL 8286

I8286 – tampon bidirectional de 8 biti (“octal bus transceiver”), de trei stari.

– T (input) – transmit – este un semnal de intrare folosit pentru a comanda directia tamponului. Cind este 1, el configureaza B0 – B7 ca iesiri si A0 – A7 ca intrari, iar cind este zero, se configureaza B0-B7 ca intrari si A0-A7 ca iesiri.

– OE (input) – este un semnal de intrare folosit pentru a permite driver-ului de iesire corespunzator (selectat prin T) sa elibereze datele pe magistrala respectiva. Semnal activ pe “0”.

-A0 – A7 (input/output) – pinii de date ai magistralei locale servesc fie pentru a depune, fie pentru a accepta datele de pe magistrala locala a procesorului, in functie de starea pinului T.

– B0-B7 (input/output) – pinii de date ai magistralei sistem servesc fie pentru a depune, fie pentru a accepta de pe magistrala sistem, in functie de starea pinului T.

Descrierea functionarii: daca T si OE sunt active ( pe 1, respectiv 0) datele de la pinii Ao –A7 sunt conduse la pinii B0 – B7 iar daca T este inactiv 0 si OE este activ 0 datele de la pinii Bo – B7 sunt conduse la pinii Ao – A7.

Circuitul de gestiune a intreruperilor INTEL 8259 A

I8259 A contine 28 de pini si necesita o singura sursa de alimentare de + 5V

– INTA (input) – receptioneaza semnalele de confirmare a intreruperii de la UCP. 8259 A presupune ca o confirmare consta din doua pulsuri negative;

– RD (input) – semnalizeaza 8259 A ca trebuie sa plaseze pe magistrala de date continutul unuia dintre registrele IMR, ISR sau IRR, sau un nivel de prioritate. Care dintre ele va fi plasat se va comunica mai departe.

-WR (input) – semnalizeaza 8259 A ca trebuie sa accepte date de pe magistrala de date si sa le foloseasca pentru a seta bitii din cuvintele de comanda.

-AO (input) – indica portul din 8259 A care este accesat. Pentru fiecare circuit 8259 A din sistem trebuie rezervate 2 adrese in spatiul de adresare.

– IR 7 – IR 0 (input) – receptioneaza cererile de intrerupere de la interfetele I /O sau de la alte circuite 8259 A, care au rolul de “slava”.

-CAS 2 – CAS 0 (input / output) – identifica un anumit dispozitiv “slave”

– SP / EN (input /output) – ca intrare acest pin identifica daca 8259 A este “master” (SP // EN =1) sau “slave” ( SP // EN /=0). Ca iesire, folosit pentru a dezactiva tampoanele bidirectionale ale magistralei de date, cind sunt transferate date de la 8259 A la UCP.

Configurarea acestui pin ca intrare sau ca iesire depinde de modul buffer.

Descrierea functionarii; Registru IRR (Intrerrupt Request – Registru cererilor de intrerupere) impreuna cu logica de mascare asociata si registrul IMR (Interrupt Mask Register – Registrul de marcare a intreruperilor), discriminatorul de prioritati si ISR ( In Service Register – Registrul intreruperilor in curs de servire) sunt folositi pentru a receptiona si controla intreruperile care sosesc la pinii IR 7 – IR 0. Registrul IRR memoreaza cererile care sosesc pe liniile IR 7 –IR 0 si impreuna cu discriminatorul de prioritati permite cererilor mascate, cu prioritate suficienta, sa transmita un “1” pe pinul INT. Discriminatorul de prioritati determina prioritatile cererilor din IRR, iar registrul ISR memoreaza cererile aflate in curs de prelucrare.

In plus fata de ceea ce apare in figura de mai sus, 8259 A mai contine 7 registre de 8 biti pentru programare. Aceste registre se divid in doua grupuri, unul continind cuvintele de initializare (ICW s – Initialization Command Words) iar celalalt cuvintele de operare ( OCWs – Operation Command Words). Cuvintele de comanda a initializarii sunt setate, in mod normal, de catre o rutina de initializare si raman constante in timpul functionarii. Dimpotriva, cuvintele de comanda a operarii sunt folosite pentru a controla dinamic procesarea intreruperilor.

Functionarea efectiva este descrisa in continuare. Dupa ce un bit din IRR este setat, el este comparat cu bitul corespunzator de mascare din IMR. Daca bitul de mascare este 0, cererea este trecuta catre discriminatorul de prioritati, astfel cererea este blocata. La intrarea unei cereri de intrerupere in discriminatorul de prioritati, acesta examineaza prioritatea fata de starea curenta si daca intreruperea trebuie trimisa la UCP, se activeaza linia INT.

Presupunand ca IF=1 (intreruperile sunt activate) UCP va intra in secventa sa de intrerupere la terminarea instructiunii curente si va intoarce doua pulsuri negative pe linia INTA. Latch-urile din IRR sun dezactivate pina la sosirea primului puls, astfel incat IRR va ignora alte semnale venite pe liniile IR 7- IR 0. Aceasta stare este mentinuta pina la sfirsitul celui de-al doilea puls INTA. Primul puls INTA va mai determina si setarea unui bit din ISR corespunzator bitului respectiv din IRR, care va fi sters. Al doilea puls INTA determina plasarea pe D7-D0 a continutului curent al cuvintului de initializare ICW2, octet pe care UCP il foloseste ca tip al intreruperii. Daca bitul AEOI (Automatic End Of Interrupt – Sfirsit automat al intreruperii) din ICW1 este 1, bitul din ISR care a fost setat de primul puls INTA este sters automat la sfirsitul celui de-al doilea puls, astfel el este mentinut in 1 pana cand este trimisa comanda de sfarsit al intreruperii EOI (End Of Interrupt) catre cuvintul de operare OCW2.

Interfata paralela programabila INTEL 8255

Circuit integrat pe scara larga realizat cu tehnica NMOS, 40 de pini, +5V

– I /O compatibil TTL; 24 de intrari/iesiri (3 porturi de 8 biti) PA,PB,PC.

-PA si PB pot fi de intrare / iesire fiecare iar portul C are proprietati speciale, poate fi programat ca port de I / O cu toti cei 8 biti sau 4 biti intrare si 4 biti iesire.

-TD – tampon bidirectional de date;

– LOG C-da – logica de comanda;

– GRA,GRB – comanda grup A ( PA si PC4 – PC7);

– comanda grup B ( PB si PC0 – PC3);

Porturile PA, PB, PC au memorie in modul de lucru “iesire” , adica ele tin stabil nivelul logic la iesire un timp nedeterminat.

Ca linii de intrare sunt fara memorie, ceea ce inseamna ca in momentul citirii starilor de catre procesor se inregistreaza valoarea logica din momentul citirii.

Blocurile GRA si GRB contin registre pentru memorarea cuvintelor de programare;

– RD – intrare activa in zero cu semnificatia citeste port de intrare;

– WR – semnal generat de UC activ in zero cu semnificatia scrie in port:

iesire sau cuvant de programare

biti WR si RD nu pot fi activi simultan;

– A0,A1 – sunt liniile de adresa din magistrala A0 – A15 sau A0 – A19 si servesc pentru stabilirea adresei portului.

– RESET – semnal de initializare activ in “1” comun cu semnalul reset al procesorului;

– CS – semnal pentru selectie circuit activ in “0” generat in procesul de adrese.

-A1, A0 – selectie port;

-Bitii 7,6,5,4,3,2 – selectie circuit

Modul de lucru : I8255 poate fi programat in 3 moduri de lucru:

Mod 0: este modul de baza in care porturile pot fi programate independent ca porturi de intrare/iesire. Mai mult, portul C poate fi manevrat ca doua porturi de 4 biti numite PCsuperior si PC inferior si in plus liniile de iesire ale portului C pot fi pozitionate individual in 0 sau in 1.

Mod 1 si Mod 2; utilizeaza portul A si B ca port de date iar portul C este folosit ca port de comanda (liniile lui C sunt folosite pentru STROBE, pentru validarea transferutilor la porturile A si B); Liniile portului C pot fi utilizate drept cereri de intrerupere catre procesor.

Contor / periodizator programabil INTEL 8253 (Timer)

Circuit realizat in tehnologie NMOS 24 pini, alimentat la +5V. Contine trei numaratoare de 16 biti programabile;

Trei contoare de 16 biti:

sunt independente si fiecare are cate 3 pini pentru conectarea cu exteriorul:

“O” iesire de la celula de numarare a 16-a;

CLK intrare de tact;

G- poarta – reprezinta o intrare de comanda hardware, G=0 numaratorul este blocat in starea in care se gaseste;

RD – memoreaza datele de pe magistrala: iesirile trec in stare de Hiz daca circuitul nu este selectat;

Log R/W – coordoneaza activitatea contoarelor si a registrilor;

– RD – citire contor;

– WR – scriere date in contor, scriere cuvint de programare in registrul cuv. De comanda;

– A0,A1 – liniile magistralei de adrese;

– CS – activ in “0” , intrare de selectie circuit generata prin decodificare sau de la linie de adresa in cazul adresarii liniare.

Descrierea functionarii:

– poate fi programat sa functioneze in binar sau in cod BCD;

– modul de functionare se stabileste prin software la programare;

-fiecare numarator functioneaza prin decrementare de la o valoare initiala pana la valoarea zero. Decrementarea se face la fiecare front scazator al impulsului de tact corespunzator fiecarui numarator;

-semnalele de tact CLK 0, 1, 2 pot fi sincrone cu tactul procesorului sau asincrone (generate de un dispozitiv extern). In cazul asincron numaratorul poate fi folosit la contorizarea unor evenimente externe aleatoare;

– frecventa semnalului de tact poate fi de , intre 0 – 3 MHz ( la tip A sau pana la 8 MHz, la tip B);

– intrarea pe poarta G poate activa sau bloca functionarea contorului respectiv (0 – blocat, 1- activat); Iesirile pot fi utilizate in functie de programare ca impulsuri singulare, pot fi utilizate drept cereri de intrerupere sau ca impulsuri de tact pentru alte circuite.

Fiecare numarator poate fi programat in mod independent prin cuvintul de comanda in unul din cele 6 moduri de lucru:

Modul 0:

– numaratorul este tratat ca numarator inapoi de la o stare initiala la o stare finala in care la iesire se obtine o tranzitie 0 –1 utilizabila ca o cerere de intrerupere la terminarea numararii.

Decrementarea este blocata pe durata G=0 si continua dupa revenirea lui G in 1.

Modul 1 :

Modul de lucru monostabil retrigherabil (de cate ori vine comanda el incepe sa numere pana ajunge in stare normala);

– monostabil retrigherabil program declansat de o tranzitie 0 –1 pe intrarea GATE;

– iesirea numaratorului sta in zero pe durata numararii si revine in unu la incheierea numararii;

– daca in timpul decrementarii apare o noua tranzitie 0—1 pe intrarea GATE se reia decrementarea de la numarul initial inscris in numaratorul indiferent in ce stare se afla in momentul tranzitiei pe GATE.

Numararea se reia de la valoarea initiala pentru orice front crescator pe intrarea GATE.

Modul 2 :

– modul numarator programabil de 16 biti, binar sau zecimal;

– dupa incarcarea numaratorului acesta numara inapoi pana ajunge in starea zero dupa care se incarca in mod automat la valoarea initiala si operatiile se repeta. Iesirea trece in “0” pe durata unei perioade de tact la terminarea fiecarei decrementari.

– divizor de frecventa: Tc – perioada de ceas; N – numarul incarcat; T =N *Tc (unde N=5)

– daca in timpul numararii intrarea G trece in “0” , numararea se opreste pana cand G=1, decrementarea fiind reluata de la valoare initiala incarcata si nu de unde ramasese.

Acest mod de lucru permite sincronizarea numaratorului cu anumite evenimente interne sau externe.

Modul 3 : Divizor de frecventa cu factorul de umplere ½;

sta in starea “1” sta in starea “0”

Modul 4 : caracterizat prin generarea unui semnal de tip STROBE. Controlat soft;

Semnalul este unic

MVI A,F8 cuvant programare

OUT 07 trim. cuvant

1111 100 0 F8 N = 1234h MVI A,12h octet superior

OUT 06 trim octet superior

MVI A, 32h octet inferior

OUT 06 trim. octet inferior

Continutul cuvintului de comanda este prezentat in figura de mai jos. Se constata ca: – bitii 7,6 sunt folositi pentru selectarea contorului la care se refera comanda respectiva;

– bitii 5,4 specifica modalitatile de manipulare ale continuturilor octetilor inferior si superior;

– bitii 3,2,1 indica modul de operare;

– bitul 0 caracterizeaza functionarea binara ( valoarea maxima: 65536 (10)) sau zecimala codificata binar (valoarea maxima: 9999(10), ale contorului dat.

Interfata seriala INTEL 8251 (USARD)

Circuit integrat pe scara larga, 28 pini, tehnologie NMOS, alimentat unic la +5V;

Circuitul primeste date in paralel pe magistrala D0-D7 de la procesor, le asambleaza in forma seriala si le trimite pe o linie bifilara de comunicatiie (bitii unul dupa altul );

Receptioneaza date seriale de pe o linie de comunicatie le asambleaza in format paralel si le transmite catre procesor pe magistrala D0-D7 (K-receptor)

Arhitectura interna INTEL 8251:

Blocul logica de comanda stabileste legatura cu procesorul si asigura programarea si selectia circuitului.

Interfata modem circuit specializat in generarea celor patru semnale;

Blocul transmisie – are o logica de comanda;

– memoreaza cuvintul de programare;

– TRANSM asigura conectarea la linia externa de comunicatie

seriala;

Blocul de receptie – genereaza intreruperi

– RECEPTOR circuit specializat, conectat la o linie externa

de comunicatie

Registrul de date si comenzi este un buffer care memoreaza temporar continutul magistralei interne;

R Rec. – registru de receptie – memoreaza temporar cuvantul receptionat;

R Transm – registrul de transmisie – memoreaza temporar cuvantul ce urmeaza a fi transmis;

Semnificatia pinilor si semnalelor;

-RESET – semnal de initializare activ in “1” comun cu cel al procesorului;

este necesar pentru sincronizarea cu procesorul privind folosirea magistralei de date;

-C/D – este semnal de selectie generat din exteriorul pentru selectia modului de lucru: programare sau schimb de date: cand semnalul este “1” atunci programare sau citire stare, iar cand semnalul este “0” atunci citire sau scriere date;

– R/D – citire date sau citire stare

semnal de la procesor;

– WR – scriere date sau scriere cuvant de programare; semnal de la procesor;

-CS – chip select – intrare de activare circuit, activ in “0” .Este un semnal de selectie a circuitului in vederea unei operatii de citire sau scriere.

-TxD – iesire seriala de (T-transmisie, D-date) catre linia de comunicatii;

-TxRDY – semnal activ in “1” care arata ca s-a incheiat transmisia caracterului curent si procesorul poate sa trimita caracterul urmator;

-TxC – intrare de tact (C-CLK), determina viteza de transmisie in biti/sec., pentru transmisie;

-TxE – transmitator vid, s-a incheiat transmisia cuvantului curent iar registrul Rtans. Este gol;

-RxRDY – receptie gata; s-a incheiat receptia unui caracter, el trebuie preluat de catre procesor;

-RxC – intrare de tact pentru receptor; determina viteza de receptie in biti/sec.

-SYNDET – syncron detection – detectie a caracterului de sincronizare;

-DTR – Data Terminal Ready- terminal de date gata, activ in “o”. Informeaza modemul ca 8251 este pregatit pentru receptie/ transmisie de la modem

-RTS – Request to Send – cerere de emisie, cerere adresata modemului ca sa testeze daca este pregatit;

-DSR – Data Set Ready – echipament de date gata (pregatit), semnal de raspuns al modemului;

-CTS –Clear to Send – initializare in vederea transmisiei, reprezinta raspunsul modemului catre 8251 cu privire la inceperea operatiei de transmisie.

Circuitele de memorie

Memoria RAM 2114

Se realizeaza cu I2114, circuit RAM static, cu capacitate de 1Kb x 4 biti

– A0 – A9 – intrari de adrese;

-I/O1 – i/ O4 – intrari / iesiri de date, 3 stari, compatibil TTL

-CS – selectie circuit, activ in “0”;

-WE – activare mod “seriere” (in “0” logic)

Memoria ROM tip EPROM 2716

Se realizeaza cu ajutorul circuitelor EPROM tip I2716, cu capacitate de 2Kb x 8 biti. Acest tip de PROM poate fi sters numai cu raze ultraviolete si apoi inscris. Lucreaza cu nivele TTL, iar dupa programare se face “arderea” memoriei la o tensiune mai mare decat cea nominala (12,5V, model LS sau 25V clasic). Poate fi inlocuit cu I2616 ( cu care este perfect compatibil functional si din punct de vedere al configuratiei), dar care este PROM – este “sters” in fabrica si poate fi programat o singura data. Are avantajul de a fi mai stabil in functionare iar informatia cuprinsa in el nu poate fi alterata accidental (iradiere accidentala cu raze ultraviolete) si are durata de viata mult mai lunga.

-A0 – A10 – intrari de adrese compatibil TTL;

-D0 – D7 – iesiri de date, trei stari, compatibil TTL

-CE – selectie circuit, activ in “0” logic;

– OE – selectie iesiri activ, in “0” logic, util si la programare;

-Vpp – tensiune de comanda: in perioada programarii se leaga la + 25V

PREZENTAREA SCHEMEI ELECTRICE

Schema electrica utilizata in aplicatie poate fi separata in patru blocuri functionale:

– unitatea centrala, in esenta un calculator de proces proiectat in jurul procesorului I8086, avind 2Kb RAM ( static, din motive de simplitate, astfel eliminandu-se circuitele pentru refresh), 4Kb ROM ( memorie PROM sau EPROM) si functionand cu ceas de 5 Mhz(pilotat cu cristal de cuartz). Intreg programul de lucru a fost conceput pentru a fi scris in memoria ROM a calculatorului, astfel eliminandu-se problemele de initializare. Unitatea centrala a fost conceputa pentru a putea fi conectata la un MODEM astfel existand posibilitatea comunicarii cu celelalte circuite de cale din linie (anterior si posterior) si deasemenea posibilitatea comunicarii cu un calculator de supraveghere si comanda.

– circuitele de supraveghere a caii de circulatie, independente pentru fiecare fir de circulatie, concepute cu senzori optici (pentru numararea vagoanelor) sau magnetici(aflati la baza sinei, si care evidentiaza prezenta osiilor – sistem care are avantajul posibilitatii masurarii vitezei vagoanelor). De la senzori, aflati la intrarea si la iesirea de pe bloc semnalele merg la circuite numaratoare reversibile, care practic realizeaza diferenta dintre numarul de osii intrat pe bloc si numarul de osii iesite de pe bloc. Astfel, atunci cand numaratorul este in starea “0” logic, indica faptul ca pe bloc nu este tren. In caz contrar transmite unitatii centrale informatia referitoare la existenta trenului pe linie. Folosit in acord cu un circuit tip baza de timp (realizat cu unul din numaratoarele programabile ale unitatii centrale) su\istemul va transmite sistemului de calcul si vitezele de intrare, respectiv iesire a trenului de pe bloc.

– interfata de forta, constituita din circuite menite sa realizeze comanda fizica a semnalelor luminoase. Deasemenea, aceasta interfata realizeaza si supravegherea bunei functionari a “focurilor” , defectarea unuia dintre acestea ducand la declansarea procedurilor de avarie si trecere pe circuite de rezerva. Principala caracteristica a interfatei de forta este aceea a separarii galvanice a calculatorului de circuitele externe. Aceasta se face cu ajutorul circuitelor electronice cuplate cu ajutorul optocuploarelor si releelor.

modulul de comanda a focurilor, realizat cu relee, reprezinta ultima

parte a circuitelor de forta. Contactele releelor se conecteaza in configuratie “cascada”, comanda permisiva (“foc verde”) fiind data numai atunci cand toate releele sunt comandate corespunzator.Acest modul este prevazut si cu potentiometri de reglare a intensitatii luminoase a becurilor atat pentru regimul normal cat si pentru regimul zi / noapte.

Similar Posts