Sari la conținut

proiect cid


sam10

Postări Recomandate

EMA DE PROIECTARE

 

SISTEM ACHIZITIE DATE

 

Date tehnice de proiectare:

 

? Intrari digitale ? 16

? Intrari analogice ? 1 (cu rezolutie de cel putin 10 biti)

? Iesiri digitale ? 16

? Iesiri analogice ? 1 (cu rezolutie de 8 biti)

 

CUPRINS

 

1. PORTUL PARALEL 4

1.1 GENERALITATI 4

1.2 CONSIDERENTE HARDWARE 5

1.3 ADRESELE PORTULUI PARALEL 5

1.4 REGISTRII SOFTWARE AI PORTULUI PARALEL. 6

1.5 INSTRUCTIUNI DE INTRARE-IESIRE 7

2. PRINCIPIILE CUNOSCUTE PENTRU REALIZAREA TEMEI DE PROIECTARE. 8

3. SCHEMA BLOC. FUNCTIONARE LA NIVEL DE SCHEMA BLOC. 9

5. BLOCUL DE IESIRE DIGITALA. 11

6. BLOCUL DE IESIRE ANALOGICA. 11

7. BLOCUL DE INTRARE DIGITALA. 11

8. BLOCUL DE INTRARE ANALOGICA. 11

9. BLOCUL DE MULTIPLEXARE A INTRARILOR. 11

10. LOGICA DE COMANDA SI CONTROL. 11

 

1. PORTUL PARALEL

1.1 Generalitati

 

Portul paralel este cel mai des folosit port pentru a face interfatarea cu placi de achizitie.

Acest port permite utilizatorului accesul la 9 linii de intrare sau la 12 linii de iesire in orice moment, necesitand un minim de circuite externe pentru a implementa proiecte simple.

Portul este compus din 5 linii de stare, 4 linii de control si 8 linii de date. Este localizat de obicei in partea dein spate a PC-ului sub forma unui connector de tip 'D' cu 25 pini.

Versiunile noi de porturi sunt standardizate dupa standardul IEEE 1284, eliberat in 1994. Acest standard defineste 5 moduri de operare:

 

1. Compatibility

2. Nibbl

3. Byte

4. EPP (Enhanced Parallel Port).

5. ECP (Extended Capabilities Port).

 

Modul "Compatibility" sau "Centronics Mode" poate doar sa trimita date cu o viteza de 50 kbytes pe secunda, dar poate ajunge si la 150+ kbytes pe secunda. Pentru a primi date, utilizatorul va trebui sa comute in modul Nibble sau Byte

Modul "Nibble" poate primi doar un nibble (4 bits) de la sistemul de achizitie la computer.

Modul "Byte" foloseste facilitatea de bi-directionalitate (disponibil doar pe anumite placi de baza) pentru a primi un byte (8 bits).

Modurile "Extended" si "Enhanced Parallel Ports" folosesc hardware suplimentar pentru a genera si gestiona un protocol de transmisie/receptie (handshaking).

Pentru a trimite un byte la printer (sau un sistem de achizitie) conectat la portul paralel, folosind modul "compatibility", software-ul trebuie sa:

 

1. Scrie datele la portul de date.

2. Verifice daca printer-ul este ocupat. Daca acesta este ocupat, atunci nu va primi datele transmise, astfel incat, datele transmise vor fi pierdute.

3. Puna "Strobe" (Pin 1) in starea zero logic. Aceasta semnalizeaza printer-ului ca pe liniile de date (pinii 2-9) se afla date corecte.

4. Dupa 5 microsecunde de la trecerea lui "Strobe" in zero logic , acesta va trebui readus in unu logic, fapt ce specifica terminarea ciclului de scriere.

 

Toti acesti pasi vor limita viteza de rulare a portului. Modurile EPP si ECP realizeaza toate acestea prin intermediul hardware-ului, ceea ce inseamna ca este nevoie doar de o singura instructiune de I/O, ceea ce mareste viteza. Aceste porturi pot transfera date cu o viteza de 1-2 megabytes pe secunda.

 

1.2 Considerente hardware

 

Pin Nr. Nume semnal Directie Registru

1 nStrobe In/Out Control

2 Data 0 Out Data

3 Data 1 Out Data

4 Data 2 Out Data

5 Data 3 Out Data

6 Data 4 Out Data

7 Data 5 Out Data

8 Data 6 Out Data

9 Data 7 Out Data

10 nAck In Status

11 Busy In Status

12 Paper-Out In Status

13 Select In Status

14 nAuto-Linefeed In/Out Control

15 nError In Status

16 nInitialize In/Out Control

17 nSelect-In In/Out Control

18 ? 25 Ground Gnd

Tabel 1 - Pinajul connectorului DB25

Iesirile portului paralel sunt, in mod normal, semnale de nivel logic TTL.

 

1.3 Adresele portului paralel

 

Portul paralel are trei adrese des folosite. Adresa de baza 3BCh era folosita inainte de porturile paralele aflate pe placile video mai vechi. Aceasta adresa nu a mai fost folosita dupa ce s-a renuntat la porturile paralele de pe placile video. Aceasta a reaparut ca o optiune pentru porturipe paralele aflate pe placile de baza

Pentru LPT1 este, in mod normal, asignata adresa 378h, iar pentru LPT2, 278h.

La pornirea calculatorului, BIOS-ul va determina numarul de porturi disponibile si le va asocia etichete (LPT1, LPT2 & LPT3), dupa care va verifica pe rand adresele 3BCh, 378h si 278h, iar daca la una din ele va gasi un port paralel, acestuia i se va asocia prima eticheta libera, dupa care va continua pana la ultima adresa disponibila.

 

1.4 Registrii software ai portului paralel.

 

Offset Nume Read/Write Bit Nr. Proprietati

Base + 0 Data Port Write (Nota) Bit 7 Data 7 (Pin 9)

Bit 6 Data 6 (Pin 8)

Bit 5 Data 5 (Pin 7)

Bit 4 Data 4 (Pin 6)

Bit 3 Data 3 (Pin 5)

Bit 2 Data 2 (Pin 4)

Bit 1 Data 1 (Pin 3)

Bit 0 Data 0 (Pin 2)

Tabel 2 - Registrul de date

Nota : Daca portul este unul bidirectional atunci sunt permise operatii atat de citire cat si de scriere a registrului de date!

 

Adresa de baza, numita uzual "Data Port" sau "Data Register" este folosita pentru trimiterea datelor pe liniile de date ale portului paralel (Pinii 2-9). In mod normal, acest registru este unul "write only". Daca utilizatorul incearca sa citeasca acest registru, el va obtine ultimul byte scris. Daca portul este unul bidirectional, se pot primi date la aceasta adresa.

 

Base + 1 Status Port Read Only Bit 7 Busy

Bit 6 Ack

Bit 5 Paper Out

Bit 4 Select In

Bit 3 Error

Bit 2 IRQ (Not)

Bit 1 Reserved

Bit 0 Reserved

Tabel 3 - Registrul de stare

Portul de stare (base address + 1) este un port "read only". Orice incercare de scriere la aceasta adresa va fi ignorata.

Portul de stare este compus din 5 linii de intrare (Pinii 10,11,12,13 & 15), un registru de intraruperi si doi biti rezervati.

 

Base + 2 Control Read/Write Bit 7 Unused

Bit 6 Unused

Bit 5 Enable bi-directional Port

Bit 4 Enable IRQ Via Ack Line

Bit 3 Select Printer

Bit 2 Initialize Printer (Reset)

Bit 1 Auto Linefeed

Bit 0 Strobe

Tabel 4 - Registrul de control

1.5 Instructiuni de intrare-iesire

 

Pentru a realiza comunicatia cu un sistem de achizitie conectat la portul paralel este nevoie de un software. Acest software este, de obicei scris intr-un limbaj de programare de nivel inalt precum Pascal sau C/C++. Instructiunile de operare cu porturile, specifice acestor limbaje de programare, vor fi prezentate in tabelul urmator:

 

Instructiuni de citire a porturilor

Limbaj de programare Instructiune Explicatii

C/C++ outportb(adr,X) In urma acestei instructiuni la adresa ?adr? se va depune continutul variabilei ?X?

Pascal port[$adr]:=X

Instructiuni de citire a porturilor

Limbaj de programare Instructiune Explicatii

C/C++ X=imbortb(adr) In urma acestei instructiuni variabila ?X? ne va da continutul adresei ?adr?

Pascal X:=port[$adr]

Tabel 5 - Istructiuni de intrare/iesire

 

2. Principiile cunoscute pentru realizarea temei de proiectare.

 

In functie de exigentele sistemului de achizitie (viteza de transfer, securitatea datelor, existenta unui protocol de comunicatie), se poate opta pentru diferite principii de abordare.

 

Daca se doreste existenta unui protocol de comunicatie (de tip handshaking), atunci este necesar ca portul paralel sa fie configurat pentru a putea lucra in modul EPP sau ECP (in aceste moduri, handshaking-ul este controlat de hardware-ul portului, respectiv al sistemului de achizitie).

Dezavantajul folosirii unuia dintre aceste moduri este necesitatea unui controler specializat care sa genereze semnalele necesare handshaking-ului, si deci, un pret de productie mai ridicat.

Avantajul, in schimb, este viteza mult mai mare (pana la 1-2 Mbits pe secunda) si gradul ridicat de siguranta (transferurile fiind insotite de semnale de tip ?Strobe?).

 

Daca se doreste ca sistemul de achizitie sa fie unul cu un pret de productie cat mai redus, in detrimentul vitezei de comunicatie, atunci se va opta pentru un port paralel configurat in modul de operare standard, fara protocol de comunicatie.

Dezavantajul este viteza redusa (intre 50 si 150 Kbytes pe secunda).

 

Pentru realizarea temei de proiectare s-a ales un port paralel configurat in modul standard, fara protocol de transmisie, sistemul de achizitie folosind circuite logice elementare (latch-uri, multiplexoare, demultiplexoare, porti logice, etc), circuite cu un pret cat mai mic.

 

3. Schema bloc. Functionare la nivel de schema bloc.

 

Figura 1 - Schema bloc

 

Functionare la nivel de schema bloc:

 

? Blocul de iesire digitala primeste la intrare datele de la portul paralel si comenzi de la logica de control. Intrarea de la portul paralel este pe 8 biti, iar iesirea este pe 16 biti, astfel, este nevoie de doua operatii de scriere pentru a se putea forma cei 16 biti la iesire.

? Blocul de iesire analogica primeste 8 biti de la portul paralel si comanda de la logica de control, iar la iesire da un semnal analogic in functie de cei 8 biti de la intrare.

? Blocul de intrare digitala primeste la intrare datele din exterior (16 biti), comenzi de la logica de control, iar iesirea este directionata catre portul paralel (4 biti). Iesirea fiind pe 4 biti, iar intrarea pe 16 biti, vor fi necesare 4 operatii de citire.

? Blocul de intrare analogica primeste la intrare un semnal analogic, il converteste in semnal digital pe 12 biti si il trimite portului paralel in trei pachete de cate 4 biti. Logica de control da comenzi blocului de intrare analogic si verifica daca acesta este ocupat.

? Logica de control comanda restul blocurilor de intrare-iesire pentru a executa comenzile primite de la portul paralel.

 

5. Blocul de iesire digitala.

 

Figura 2 - Blocul de iesire digitala

Pentru a realiza transmisia de date de la portul paralel catre sistemul de achizitie (iesirea digitala pe 16 biti), s-a folosit schema din figura de mai sus.

Datorita faptului ca iesirea de date a portului paralel este decat pe 8 biti, iar noua ne trebuie 16 biti, s-au folosit doua latch-uri octale pentru a memora, pe rand, cei doi octeti, ca in final sa se obtina o iesire digitala pe 16 biti.

 

Transmisia celor 16 biti se face urmand pasii:

 

? Se trimite pe liniile de date ale portului paralel (Pinii 2-9) octetul cel mai putin semnificativ;

? Logica de comanda si control comanda primul latch prin semnalul ?WL?, memorandu-se octetul cel mai putin semnificativ;

? Se trimite pe luniile de date ale portului paralel octetul cel mai semnificativ;

? Logica de comanda si control comanda cel de-al doilea latch prin semnalul ?WH?, memorandu-se si octetul cel mai semnificativ.

 

Dupa executia acestor pasi sistemul de achizitie poate prelua cei 16 biti de la cele doua latch-uri.

Daca se doreste ca sistemul de achizitie sa fie semnalizat in privinta validitatii datelor (daca procesul de transmisie a luat sfarsit, iar datele sunt valide), se poate urmari activarea semnalului ?WH?, se asteapta un timp necesar latch-ului pentru incarcare si apoi se pot prelua datele.

 

Pentru realizarea practica, pentru latch-uri, se pot alege circuitele:

 

? 74HCT573 (latch-uri octale cu iesiri 3-state), avand ?OE?(Output Enable) conectat la masa, iar ?L?(Load) conectat printr-un inversor la semnalul ?WL? (?WH?) de la logica de comanda.

? LATCH octal avand ?L? sau ?CLK? conectat la ?WL? sau ?WH?. Semnalele ?WL? si ?WH? sunt active zero logic si de aceea, daca semnalele ?L? sau ?CLK? (de la LATCH) sunt active unu logic ele trebuie conectate printr-un inversor.

 

6. Blocul de iesire analogica.

 

 

Figura 3 - Blocul de iesire analogica

Pentru a realiza iesirea analogica s-a folosit un convertor digital/analog cu o rezolutie de 8 biti, o sursa de tensiune de referinta si un Latch octal care sa memoreze datele trimise de portul paralel.

 

Petru a transmite un semnal analogic se urmeaza pasii:

 

? Se trimite valoarea digitala catre liniile de date ale portului paralel;

? Logica de control activeaza semnalul ?WA? care comanda Latch-ul sa memoreze datele.

 

Dupa executia acestor pasi convertorul digital/analog va calcula noua valoare a semanlului analogic in functie de noile date primite si de tensiunea de referinta si va da la iesire tensiunea dorita.

 

7. Blocul de intrare digitala.

 

Figura 4 - Blocul de intrare digitala.

 

Blocul de intrare digitala realizeaza multiplexarea celor 16 biti de intrare in pachete de cate 4 biti prin intermrdiul Blocului de multiplexare si a semnalelor de selectie generate de logica de comanda.

 

Pentru a executa o operatie de citire pe 16 biti sunt necesari urmatorii pasi:

 

? Se selecteaza nibble-ul cel mai putin semnificativ (primii 4 biti) al cuvantului de intrare (cei 16 biti);

? Se citeste registrul de stare al portului paralel;

? Se selecteaza al doilea nibble;

? Se citeste registrul de stare;

? Se selecteaza cel de-al treilea nibble;

? Se citeste registrul de stare;

? Se selecteaza nibble-ul cel mai semnificativ (ultimii 4 biti);

? Se citeste registrul de stare;

? Cele patru valori citite (cate 4 biti) se unesc si se formeaza cuvantul (16 biti) care trebuia citit.

 

Dezavantajul, in aceasta configuratie, consta in faptul ca, daca starea intrarilor se schimba inainte de terminarea procesului de achizitie, datele citite nu vor corespunde cu ceea ce sa dorit initial a fi achizitionat datorita schimbarii produse.

Pentru a inlatura aceasta problema vor fi necesare doua latch-uri conectate inainte de intrarea blocului de multiplexare, astfel incat, inainte de inceperea citirii nibble-urilor, logica de selectie sa comande intrarile ?L? sau ?CLK? ale celor doua Latch-uri in vederea memorarii datelor ce doresc a fi achizitionate, dupa care se va incepe achizitionarea, pe rand, a celor patru nibble-uri, evitandu-se astfel situatia in care starea liniilor de intrare ale sistemului de achizitie se poate schimba inaintea terminarii achizitiei.

 

8. Blocul de intrare analogica.

 

Figura 5 - Blocul de intrare analogica.

 

Blocul de intrare analogica realizeaza achizitia unui semnal analogic, convertirea acestuia prin intermediul convertorului analog/digital (cu o rezolutie de 12 biti) si in final trimiterea acestuia catre portul paralel in vederea preluarii de catre acesta.

 

Pentru achizitia unui semnal analogic se au in vedere:

 

? Se comanda de catre logica de control convertorului analog/digital pornirea conversiei (activarea semnalului Start Convercion);

? Se scaneaza indicatorul End Convercion in vederea detectarii sfarsitului conversiei;

? Se incepe multiplexarea celor 12 biti rezultati in urma conversiei si se achizitioneaza de catre portul paralel in pachete de cate patru biti, lafel ca la blocul de intrare digitala.

 

9. Blocul de multiplexare a intrarilor.

 

Figura 6 - Blocul de multiplexare a intrarilor.

 

Datorita faptului ca portul paralel nu permite intrarea decat a 4 biti simultan, iar sistemul de achizitie are doua surse de intrare, una pe 16 biti, iar cealalta pe 12 biti, a fost necesara constructia unui bloc de multiplexare a intrarilor.

In acest scop s-au folosit patru multiplexoare 8:1.

 

Intrarile de selectie de acelasi tip (S0,S1,S2) au fost cuplate, astfel incat multipexoarele sa lucreze in grup, iar per ansamblu sa obtinem un bloc de multiplexare a 8 surse de intrare pe 4 biti la 1 iesire pe 4 biti, cu trei semnale de selectie.

 

Sursele de intrare (digitala pe 16 biri si de la iesirea convertorului analogic ? 12 biti) in blocul de multiplexare au fost conectate astfel incat sa fie respectat tabelul de mai jos:

 

S2 S1 S0 Sursa intrare

0 0 0 Digitala D0?3

0 0 1 Digitala D4?7

0 1 0 Digitala D8?11

0 1 1 Digitala D12?15

1 0 0 Analogica A0?3

1 0 1 Analogica A4?7

1 1 0 Analogica A8?11

1 1 1 ---

Tabel 6 - Selectie bloc multiplexare

 

10. Logica de comanda si control.

 

Figura 7 - Logica de comanda si control.

 

Logica de comanda ci control are rolul de a arbitra executarea comenzilor primite de la portul paralel.

Datorita faptului ca nu sunt disponibile decat patru linii de iesire si una de intrare, iar sistemul de achizitie necesita o linie de intrare (iesirea End Convercion de la convertorul analog/digital) si sapte iesiri (trei pentru semnalele de selectie de la blocul de multiplexare a intrarilor, S0,S1 si S2, doua pentru comanda blocului de iesire digitala, ?WL? si ?WH?, una pentru comanda blocului de iesire analogica ?WA? si una pentru comanda blocului de intrare analogica ?Start Convercion?), se va folosi un Demultiplexor 74HCT138 conectat ca in figura de mai sus.

Astfel, linia de intrare (End Convercion) este conectata direct la linia Busy a portului paralel, liniile de selectie ale blocului de multiplexare a intrarilor sunt conectate la liniile (Strobe, Auto Feed si Init), liniile de comanda ale blocurilor de iesire (?WL?, ?WH?, ?WA?) si al blocului de intrare analogica (?SC?) sunt obtinute prin demultiplexarea tot a liniilor portului de comenzi (Strobe, Auto Feed si Init).

Pentru separarea comenzilor blocurilor de intrare/iesire de comenzile de selectie a blocului de multiplexare a intrarilor s-a folosit linia ?Sel In? a portului paralel.

Astfel, operatiile de scriere/citire se vor executa in functie de tabelul urmator:

 

E C B A Comanda executata

0 0 0 0 Activare ?WL? ? Incarcare Latch 1 de la blocul de iesire digitala

0 0 0 1 Activare ?WH? ? Incarcare Latch 2 de la blocul de iesire digitala

0 0 1 0 Activare ?WA? ? Incarcare Latch de la blocul de iesire analogica

0 0 1 1 Activare ?SC? ? pornire conversie analog/digitala

0 1 0 0 Combinatie nefolosita

0 1 0 1 Combinatie nefolosita

0 1 1 0 Combinatie nefolosita

0 1 1 1 Combinatie nefolosita

1 0 0 0 Selectie nibble 1 de la intrarea digitala pe 16 biti

1 0 0 1 Selectie nibble 2 de la intrarea digitala pe 16 biti

1 0 1 0 Selectie nibble 3 de la intrarea digitala pe 16 biti

1 0 1 1 Selectie nibble 4 de la intrarea digitala pe 16 biti

1 1 0 0 Selectie nibble 1 de la iesirea convertorului analog/digital

1 1 0 1 Selectie nibble 2 de la iesirea convertorului analog/digital

1 1 1 0 Selectie nibble 3 de la iesirea convertorului analog/digital

1 1 1 1 Combinatie nefolosita

 

Intrebarea este ce trebuie sa fac sa sa fie iesirea analogica pe 10 biti si la ce pot utiliza dispozitivul intro aplicatie concreta

 

va rog ajutati-ma ca maine tre sa predau proiectu..si sunt nestiutor rau de tot

Link spre comentariu
Distribuie pe alte site-uri

Hei, dar nu se vad figurile ??? Am inteles eu bine: cauti un circuit ca sa-ti faca conversia semnalului achizitionat de pe 10 biti in 8 biti sau viceversa ? angel.gif

Link spre comentariu
Distribuie pe alte site-uri

mda imi tre o placa de achizitie de date ...............nici io nu stiu prea bine ce mi tre pentru proiectu asta

Ar trebui totusi sa raspundeti la anumite intrebari, ca ale colegului de mai sus, pentru ca altfel nu ajungem nicaieri. Din vasta teorie de mai sus nu reiese clar un memoriu justificativ in care sa spuneti ce vreti sa faceti. Expun doar doua semne de intrebare:

1. Vreti sa folositi portul paralel pentru achizitie de date ? Daca da, in ce domeniu de semnal unificat ati dori sa redea circuitul atasat portului. Apoi nu vad schema cu C.I. 74HCT573 de care amintiti mai sus ? Apoi "Figura 4 - Blocul de intrare digitala" ???

Pentru realizarea temei de proiectare s-a ales un port paralel configurat in modul standard, fara protocol de transmisie, sistemul de achizitie folosind circuite logice elementare (latch-uri, multiplexoare, demultiplexoare, porti logice, etc), circuite cu un pret cat mai mic.

2. Din afirmatia de mai sus reiese ca doriti sa construiti o placa de achizitie pe care sa o atasati la portul paralel ???

 

P.S. Mai bine convertiti fisierul Word pe care il aveti, care include si figurile, in format PDF si il atasati direct in post. Poate, citind tot materialul, pe care cred ca nu l-ati postat aici, o sa intelegem mai bine ce vreti sa faceti. Totusi, daca cunostintele dvs. sunt 0 in practica la electronica, ar fi recomandat sa va gasiti alt proiect mai simplu si care sa intelegeti "ce trebuie sa faceti".

Link spre comentariu
Distribuie pe alte site-uri

  • 3 weeks later...

Proiectul asta e numai pe hartie sau trebuie realizat practic?

oricare ar fi raspunsul e un cadidat perfect pentru un CPLD / FPGA de marime redusa, cel putin partea digitala a proiectului.

interfata cu PC-ul pe portul paralell e explicata destul de clar pe o gramada de pagini de web, chiar si exemple de implemntare in FPGA (http://www.msigi.net/electronics-parallel.shtml)

sper sa te ajute

Roadrunner

 

PS - asa o tema de proiectare pe un forum din strainatate era imediat descalificata cu raspunsul - home work! dar sunt de parere ca tinerii trebuie ajutati atat cat sa se poata ajuta singuri.

Link spre comentariu
Distribuie pe alte site-uri

Creează un cont sau autentifică-te pentru a adăuga comentariu

Trebuie să fi un membru pentru a putea lăsa un comentariu.

Creează un cont

Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!

Înregistrează un nou cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum
  • Navigare recentă   0 membri

    • Nici un utilizator înregistrat nu vede această pagină.
×
×
  • Creează nouă...

Informații Importante

Folosim cookie-uri și tehnologii asemănătoare pentru a-ți îmbunătăți experiența pe acest website, pentru a-ți oferi conținut și reclame personalizate și pentru a analiza traficul și audiența website-ului. Înainte de a continua navigarea pe www.tehnium-azi.ro te rugăm să fii de acord cu: Termeni de Utilizare.

ATENTIE !!! Functionarea Tehnium Azi depinde de afisarea de reclame.

Pentru a putea accesa in continuoare site-ul web www.tehnium-azi.ro, va rugam sa dezactivati extensia ad block din browser-ul web al vostru. Dupa ce ati dezactivat extensia ad block din browser dati clic pe butonul de mai jos.

Multumim.

Apasa acest buton dupa dezactivarea extensiei Adblock