Scrigroup - Documente si articole

     

HomeDocumenteUploadResurseAlte limbi doc
AccessAdobe photoshopAlgoritmiAutocadBaze de dateC
C sharpCalculatoareCorel drawDot netExcelFox pro
FrontpageHardwareHtmlInternetJavaLinux
MatlabMs dosPascalPhpPower pointRetele calculatoare
SqlTutorialsWebdesignWindowsWordXml

Interfete programabile

calculatoare



+ Font mai mare | - Font mai mic



Interfete programabile

1. Introducere



Dupa cum a fost prcizat in capitolele anteriaoare, unitatea centrala de procesare intr-un sistem cu microprocesor, comunica cu mediul exterior prin asa numitele porturi sau interfete, ce permit conversia sau adaptarea semnalelor externe la numere pe magistrala de date, numere ce pot fi prelucrate intern. Exista

- interfete pentru semnale logice (numerice), asa numitele porturi paralele sau numerice,

- interfete pentru semnale analogice (continue)- convertoare analog-numerice si numeric-analogice,

interfete de numarare si temporizare (timere),

interfete de comunicare seriala cu alte echipamente numerice.

In acest capitol vor fi prezentate cateva circuite specializate, programabile, care indeplinesc aceste functii, de interfatare a sistemului cu microprocesor cu mediul exterior. Ele au fost realizate in anii 80de firma Intel, si au fost destinate echiparii sistemelor cu microprocesoare de prima generatie (I8080), insa, datorita performantelor lor remarcabile, echipeaza si astazi, cu mici modificari, placile cu microprocesor.

2. Interfata seriala programabila 8251

Interfata seriala programabila (USART- Universal Synchronous-Asynchronous Receiver Transmitter) este un circuit (vezi fig.1.)ce accepta date sub forma de caractere , transmise in paralel de catre unitatea centrala, le converteste intr-un format serial si le transmite catre un destinatar. Totodata, poate recptiona date sub forma seriala de la un emitator, le converteste in caractere si le transfera paralel catre unitatea centrala.

Pentru a realiza acestea, 8251 are in structura sa blocurile prezentate in fig.2 .

Frecventa comunicatiei (de bit) este generata catre 8251 de la un timer. Frecventa de bit a emitatorului trebuie sa fie identica cu frecventa de bit a receptorului. Totusi este necesara o sincronizare pentru a alinia fazele. Sincronizarile se fac diferit in functie de modurile de lucru.

Are doua de lucru de baza - sincron si asincron. In modul sincron datele sunt transmise sau receptionate in blocuri, sincronizarea facandu-se prin caractere speciale de sincronizare SYN transmise dupa un numar oarecare de biti. In modul asincron, este transmis sau receptionat un singur caracter de 5,6,7 sau 8 bit, incadrat la inceput de un bit de START, cu rol de sincronizare, si la sfarsit de un  bit de paritate (daca e


cazul) si de 1 sau 2 bit de STOP.

Fig.2. Structura interna a circuitului 8251

Circuitul 8251 contine un registru de comanda (care se scrie), un registru de stare (care se citeseste) si un registru de date (fizic sunt doua locatii dar cu aceeasi adresa, una pentru transmisie si una pentru receptie). El este programat prin 2 cuvinte de comanda succesive, primul cuvint de comanda este primul transmis catre circuit dupa RESET, si are functia de selectare a modului de lucru. Dupa acesta, toate cuvintele de comanda au rolul de tratare a comunicatiei. 

Starea comunicatiei este citita din registrul de stare.

Datele sunt trimise catre 8251 (pentru transmisie) sau citite  (de la receptie) din registrul de date.

Adresarea se face conform tabelului.

-CS

C/-D

-RD

-WR

Functia

Citire data de unitatea centrala

Citire stare

Scriere data

Scriere comanda

x

x

x

Circuit neselectat

Terminal

Descriere

Tip

D0-D7

Conexiuni la magistrala de date a microsostemului

In-Out

RESET

Aducere in conditii initiale

In

CLK

Ceasul dispozitivului

In

C/-D

Selectie comanda-data

In

-RD

Citeste data sau starea

In

-WR

Scrie comanda sau data

In

-CS

Selectie circuit

In

-DSR

Modem pregatit

In

-DTR

Interfata pregatita pentru comunicatie cu modem

Out

-CTS

Acceptare transmisie de la modem

In

-RTS

Cerere de transmisie catre modem

Out

TxD

Iesire seriala de date

Out

TxRDY

Circuit pregatit de a primi date pe magistrala pt Tr

Out

TxE

Circuit gol (nu mai are date de transnmis)

Out

-TxC

Clock pentru transmisia seriala

Out

RxD

Intrarea seriala

In

RxRDY

Caracter pregatit pentru a fi transmis pe mag. date

Out

-RxC

Clock pentru receptia seriala

In

SYNDET

Detectie sau fortare caracter sincronizare

In-Out

3. Interfata paralela programabila 8255

Circuitul 8255 reprezinta o interfata paralela (numerica) pentru citirea/scrierea semnalelor logice la/de la mediul exterior. El contine 24 terminale ce pot fi configurate ca 3 porturi de 8 bit bidirectionale.

Configuratia pinilor este prezentata in fig. 3 cu descrierea pinilor in tabel, iar in fig.4

Fig.3. Configuratia pinilor la circuitul 8255



Fig.4. Structura interna a circuitului 8255

Terminal

Descriere

Tip

D0-D7

Magistrala de date bidirectionala

In-Out

PA0-PA7

Port A

In-Out

PB0-PB7

Port B

In-Out

PC0-PC7

Port C

In-Out

-RD

Comanda citire

In

-WR

Comanda scriere

In

RESET

RESET, aducere registri la starea initiala

In

-CS

Selectie circuit

In

A0, A1

Intrari selectie porturi

In

Circuitul 8255 poate lucra in 3 moduri.

Modul 0 este modul de intrare iesire in care se scrie o data in registrul de data corespunzator portului, iar aceasta este plasata pe liniile portului de iesire. La citire, data primita pe linmiile portului de intrare este citita de la registrul de date cu o instructiune de citire.

Modul 1 (asemanator cu modul 2) permite o conversatie cu un dispozitiv corespondent. Astfel, la citire (intrare), dispozitivul extern plaseaza un cuvant pe liniile portului A si activeaza semnalul -STBA. Circuitul 8255 preia continutul liniilor si le depune intr-un registru de date, activand semnalul IBFA care indica faptul ca datele sunt in registru. Totodata genereaza si o intrerupere catre unitatea centrala pe linia -INTRA. Microprocesorul citeste continutul registrului de date inactivand linia -IBFA si permitand inceperea unui nou ciclu. La scriere in exterior (iesire), circuitul 8255 plaseaza un caracter pe liniile portului A, generand semnalul -OBFA. Circuitul destinatar este semnalizat de semnalul -OBFA, preia datele si raspunde cu semnalul -ACK. Acesta inactiveaza -OBFA si genereaza intrerupere catre microprocesor pentru a transmite un nou caracter. Semnalele sunt prezentate in fig. 5.

Fig.5. Semnalele la circuitul 8255 in modul de lucru 1

Pentru programarea si transferul datelor de la si catre circuitul 8255, acesta contine 3 registri de date, cate unul pentru fiecare port, care pot fi cititi si scrisi, si un cuvant de comanda ce poate fi scris. Selectia acestora se face cu bitii A0 si A1 conform tabelului urmator.

-CS

A1

A0

-RD

-WR

Functia

Scriere data de unitatea centrala la portul A

Scriere data de unitatea centrala la portul B

Scriere data de unitatea centrala la portul C

Scriere data de unitatea centrala in registrul de comanda

Citire data de unitatea centrala de la portul A

Citire data de unitatea centrala de la portul B

Citire data de unitatea centrala de la portul C

x

x

x

Circuit neselectat

5. Arbitrul de intreruperi programabil 8259

Arbitrul de intreruperi este un circuit ce poate manipula pana la 8 cereri de intrerupere externa asigurand o varietate de modalitati programabile pentru arbitrarea prioritatilor acestora. Pentru a creste numarul de intreruperi gestionate la 64, 8 circuite 8259 pe post de slave pot fi conectate la un circuit 8259 master.

Configuratia pinilor este prezentata in fig.6, iar structura interna este prezentata in fig.7.

Fig.6. Configuratia pinilor la circuitul 8259

Fig.7. Structura interna a circuitului 8259

O cerere de intrerupere de la o sursa externa pozitioneaza pe 1 un bistabil din Registrul Cererilor de intrerupere (RCI). Pozitionarea pe 1 a unuia sau mai multor bistabili din RCI duce la generarea unui semnal de intrerupere INT catre microprocesor. Raspunsul INTA pune pe 0 bistabilul cererii care uremeaza sa fie tratata si pozitioneaza pe 1 un bistabil in Registrul Cererilor de intrerupere tratate (RCIT). Acest bit va fi adus la 0 dupa ce se incheie rutina de tratare a intreruperii. Circuitul pentru rezolvarea prioritatilor stabileste care este intreruperea ce va fi tratata in functie de prioritatile prestabilite.

Semnalul de recunoastere a intreruperii INTA face ca 8259 sa forteze pe liniile de date codul instructiei CALL, circuitul specializat 8228 va genera inca 2 semnale INTA iar 8259 fa forta pe liniile de date adresa rutinei de intrerupere.

Registrul de mascare a intreruperilor va masca intreruperile ce trebuie invalidate accesand bitii din RCI si RCIT.

Terminal

Descriere

Tip

D0-D7

Magistrala de date bidirectionala

In-Out

A0

Identifica unitatea ca port de I/O sau celula de memorie

In

-IOR

Semnal de citire

In

-IOW

Semnal de scriere

In

INT

Semnal de intrerupere trimis de 8259

Out

-INTA

Recunoastere intrerupere

In

C0, C1, C2

Linii de selctie a 8259 slave

Out catre master

SP

Identifica 8259 ca master sau slave

In



Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 2193
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved