8.10. Transmitere pe magistrală


Un transceiver (transmițător) poate fi utilizat pentru a furniza control bidirecțional, de intrare sau de ieșire, de la dispozitive digitale sau analogice la o magistrală comună de date. Spre deosebire de buffer, transmițătoarele sunt dispozitive bidirecționale care permit ca datele să treacă prin ele în ambele direcții.

Astfel, numele lor „transceiver“ este un cuvânt portmanteau care vine din amalgamarea celor două cuvinte trans-mitter și re-ceive (emițător/receptor). Transmițătoarele sunt cunoscute și cu numele de: dispozitive de trimitere/recepție sau de driver/receptor.

În Tutorialul Buffer Digital am văzut că un buffer nu are capacități de inversare sau de luare a deciziilor, spre deosebire de porțile logice digitale cu două sau mai multe intrări, dar produce o condiție de ieșire care se potrivește exact cu cea a intrărilor. Astfel, un buffer este un dispozitiv „ne-inversor“ care produce expresia booleană: Q = A.

Buffer digital

Un Buffer digital, ca cel prezentat mai sus, este un dispozitiv unidirecțional, adică semnalul trece prin el într-o singură direcție, de la intrarea "A" la ieșirea "Q".

Astfel, când intrarea A este la "1" logic , ieșirea Q este la "1" logic, iar atunci când intrarea A este la "0" logic, ieșirea Q este la "0" logic pentru un dispozitiv cu logică pozitivă, cum ar fi CMOS 74HC4050 Hex Buffer Gate.

Buffer-ele pot fi utilizate pentru a izola alte porți sau etaje de circuit unul față de celălalt, împiedicând impedanța sau funcționarea unui circuit să afecteze impedanța sau funcționarea altuia. De asemenea, pe cont propriu, buffer-ele pot fi utilizate ca driver pentru sarcini de curent înalt, cum ar fi comutatoare cu tranzistoare, deoarece capacitatea lor de comandă la ieșire (fan-out) este în general mult mai mare decât cerințele semnalului de intrare. De exemplu, TTL 74LS07 Hex buffer/driver with open collector, high-voltage (30 volts) outputs.

Bufferul digital TTL 74LS07

Funcția de buffer ne-inversor digital poate fi făcută și prin utilizarea unor porți logice de schimb AND sau porți logice OR sau prin utilizarea unor perechi de porți NOT (inversoare) așa cum se arată.

Forme de buffer echivalente

Unul dintre dezavantajele unui buffer digital cu o singură intrare este că ieșirea la Q va fi întotdeauna la același nivel logic ca intrarea care ar putea afecta orice circuit sau dispozitiv este conectat la terminalul de ieșire al buffer-ului. O modalitate de a depăși acest lucru este de a transforma buffer-ul de bază într-un buffer cu 3 stări, mai cunoscut sub numele de Tri-State Buffer.

"Tri-state Buffer" - Bufferul cu trei stări

Un Buffer Tri-State este un alt tip de circuit buffer care poate fi folosit pentru a controla trecerea unui semnal logic de la intrarea lui la ieșirea lui. Buffer-ul tri-state este un dispozitiv combinațional a cărui ieșire poate fi comutată electronic "ON" sau "OFF" prin intermediul unei intrări de semnal extern "Control" sau "Enable" (EN) care îi permite să fie utilizat în sisteme cu magistrală.

După cum sugerează și numele, ieșirea la "Q" pentru un Buffer tri-state poate lua una din cele trei stări posibile, logic "0", logic "1" și High-Z (impedanță ridicată), deci un circuit deschis.

Semnalul enable sau control al buffer-ului poate fi un semnal logic "0", sau un semnal de nivel logic "1", ieșirea fiind inversată și neinversată, pe măsură ce semnalul digital trece prin el. Cele două cele mai frecvent utilizate IC buffer-e tri-state sunt TTL 74LS125 și TTL 74LS126.

Astfel, un buffer tri-state necesită două intrări. Una fiind intrarea datelor (A), iar cealaltă fiind intrarea control sau enable (EN), așa cum se arată.

Comutator echivalent cu Tri-State Buffer

Simbolul buffer-ului tri-state este foarte similar cu simbolul buffer-ului standard de mai sus dar cu adăugarea unei a doua intrări reprezentând funcția de control activare/dezactivare. Când intrarea enable (EN) este la un nivel logic „1“ (pentru logica pozitivă), el acționează ca un buffer obișnuit permițând semnalului de intrare A să treacă direct la ieșire la Q, indiferent dacă este un logic "0" sau un logic "1".

Când intrarea enable este la "0" logic, buffer-ul tri-state este activat în cea de-a treia stare și dezactivează sau comută ieșirea "OFF" producând o stare de circuit deschis. Această a treia condiție nu este nici la "1" logic (high) nici la "0" logic (low), ci o stare de ieșire care are o impedanță foarte mare, High-Z, mai frecvent scrisă ca: Hi-Z.

Astfel, un buffer tri-state are două intrări de stare logică "0" sau "1", dar poate produce trei stări diferite de ieșire "0", "1" sau "Hi-Z" ceea ce este numit un dispozitiv "Tri" sau "3-state". Rețineți că această a treia stare NU este egală cu un nivel logic "0" sau un "1", dar este o stare de impedanță ridicată, deoarece ieșirea ei este deconectată electric.

Atunci, putem spune corect pentru un buffer tri-state activat pozitiv că:

  • Dacă semnalul enable este HIGH, logic "1", semnalul de intrare al porții buffer este trecut direct la ieșirea sa.

  • Dacă semnalul enable este LOW, logic "0", ieșirea porții buffer acționează ca un circuit deschis, adică impedanță mare (Hi-Z).

și putem prezenta tabelul de adevăr pentru un buffer tri-state ca:

Buffer-ele tri-state sunt disponibile în formă integrată ca buffer/driver quad, hex sau octal, cum ar fi TTL 74LS244, așa cum se arată.

74LS244 Octal Tri-state Buffer

Observați că cele opt buffer-e sunt configurate în două grupuri de patru, primul grup (A1 la A4) fiind controlat de intrarea enable CA, iar cel de-al doilea grup (A5 la A8) este controlat de intrarea enable CB. Dispozitivul 74LS244 are capacități foarte ridicate de absorbție (sink) și furnizare (source), dacă este necesar pentru sarcinile tranzistoarelor de comutare.

Controlul unui Tri-state Buffer

Buffer-ele cu trei stări pot permite mai multor dispozitive să împartă un fir sau o magistrală comune de ieșire având un singur dispozitiv tri-state care acționează magistrala de fire în orice moment, în timp ce toate celelalte buffer-e rămân în starea lor Hi-Z. Luați în considerare circuitul de mai jos.

Multiple tri-state Buffer-e pe o singură magistrală

Ieșirile de la fiecare buffer tri-state sunt conectate la o magistrală comună, dar intrările lor enable sunt conectate la un decodor binar. Decodorul garantează că numai un singur buffer tri-state va fi activ la un moment, datorită semnalului său de activare. Acest lucru permite ca datele buffer-ului activ să treacă direct pe magistrala comună, în timp ce ieșirile celorlalte buffer-e neactivate sunt efectiv deconectate și în starea lor de înaltă impedanță. Astfel, buffer-ul care este conectat la linia comună va depinde de valoarea binară a intrărilor de selectare a decodoarelor.

Prin urmare, nu mai mult de un buffer tri-state poate fi într-o "stare activă" la un moment dat. S-ar putea să fi observat că o combinație posibilă de intrări de date diferite conectate la o singură linie de ieșire de mai sus seamănă cu cea a unui multiplexor de 4-la-1 linii și ar fi bine, circuitele multiplexor pot fi construite cu ușurință folosind buffer-e tri-state.

Orice element buffer tri-state poate fi convertit cu ușurință într-un buffer digital normal prin simpla conectare a intrării de activare (EN) direct la + Vcc sau la masă, în funcție de buffer-ul tri-state utilizat. Deci, ieșirea este permanent activată, astfel încât orice semnal de intrare prezent la "A" să treacă direct prin buffer la ieșirea "Q".

Am văzut până acum că putem folosi buffer-e tri-state pentru a trimite informații într-un mod unidirecțional pe un fir sau magistrală comune. Dar cum am putea să le folosim pentru a trimite date în ambele direcții, adică să trimitem date și să primim date de la o magistrală comună.

Controlul Buffer-ului bidirecțional

Este, de asemenea, posibilă conectarea buffer-elor Tri-State "back-to-back" (paralel invers) pentru a produce ceea ce se numește circuit buffer bidirecțional sau transceiver. Prin utilizarea unui inversor suplimentar, un buffer tri-state este ca un "buffer activ-high", în timp ce celălalt funcționează ca un "buffer activ-low", așa cum se arată.

Aici, cele două buffer-e tri-state sunt conectate în paralel, dar în sens invers față de "A" la "B" cu intrarea de comandă a activării EN acționând mai mult ca un semnal de control direcțional, permițând atât citirea datelor "de la" cât și transmiterea "la" același terminal de date.

Astfel, în acest exemplu simplu, când intrarea de activare este HIGH, (EN este logic "1"), datele pot fi trecute de la A la B prin buffer 1 și când intrarea de activare este LOW (EN este logic "0") datele trec de la B la A prin buffer 2.

Astfel, intrarea de activare "EN" acționează ca un control al direcției care permite transmiterea datelor în oricare din direcții, în funcție de starea logică a acestei intrări de comandă. În acest tip de aplicație poate fi utilizat un buffer tri-state cu capacitate de comutare bidirecțională, cum ar fi TTL 74LS245 sau CMOS inversor 74ALS620, producând ceea ce se numește un transceiver de magistrală.

Transceiver-e de magistrală

Transceiver-ele de magistrală sunt dispozitive bi-direcționale tri-state care permit fluxul de date între două puncte, făcându-le compatibile cu sistemele orientate pe magistrală sau cu controlul bidirecțional (intrare sau ieșire) al circuitelor de interfață. Transceiver-ele de magistrală pot fi dispozitive inversoare, TTL 74LS242 sau ne-inversoare, TTL 74LS243.

Astfel, putem folosi un transceiver octal cu 8 linii pentru interfața oricărui dispozitiv de intrare/ieșire cu o magistrală de date pe 8 biți, cel mai comun IC transceiver de magistrală folosit pentru trimiterea și primirea datelor este TTL 74LS245 dat mai jos.

Transceiver de magistrală 74LS245

TTL 74LS245 este un octal bus transceiver (transmițător/receptor) proiectat pentru comunicații asincrone bidirecționale între două magistrale de date sau dispozitive de intrare/ieșire. Transceiver-ul permite transmiterea datelor de la terminalele A la terminalele B sau invers, în funcție de nivelul logic de la intrarea de comandă a direcției (DIR) (pinul 1).

De exemplu, dacă intrarea de comandă a direcției este HIGH la nivel logic "1", atunci datele vor trece de la terminalele A la terminalele B. Dacă intrarea de comandă a direcției este LOW la nivel logic "0", atunci datele vor trece în direcția inversă de la terminalele B la terminalele A. Când se menține HIGH la nivel logic "1", intrarea enable (CE) a cipului de ieșire, (pinul 19) poate fi utilizată pentru a dezactiva dispozitivul astfel încât terminalele și, prin urmare, magistralele de date conectate sunt izolate efectiv unele de altele.