Curs_7 - Universitatea Politehnica Timişoara
Download
Report
Transcript Curs_7 - Universitatea Politehnica Timişoara
Proiectarea Microsistemelor Digitale
Curs 7
1
Proiectarea Microsistemelor Digitale
5. Circuite specializate programabile (CSP)
5.1. Definiţie şi caracteristici
Standardizarea soluţiilor pentru diversele tipuri de aplicaţii
rezolvabile cu sisteme cu microprocesoare → circuite specializate
pe o problemă.
Cerinţe:
Flexibilitate: pentru a acoperi toate modurile de lucru;
Programabilitate: pentru comunicare cu programatorul.
Un circuit specializat este programabil în sensul că i se poate cere,
prin intermediul unuia sau mai multor cuvinte de comandă, alegerea
unor particularităţi ale tipului de aplicaţie pentru care circuitul a fost
conceput.
Cuvintele de comandă sunt transmise circuitului de unitatea
centrală.
Oferă informaţie de stare legată de ultimul transfer.
2
Proiectarea Microsistemelor Digitale
Trăsături generale ale CSP:
referitor la structura lor internă, circuitele specializate sunt văzute de
unitatea centrală ca un grup de porturi de intrare/ ieşire ale căror adrese au
un câmp comun, diferind, în general, prin valorile pe care le iau ultimele 1 –
2 ranguri;
tot referitor la structura lor internă, se pot distinge 3 tipuri de porturi în cadrul
circuitelor specializate:
porturi de comandă, care primesc de la unitatea centrală octeţii de comandă prin
care i se cere circuitului să aleagă un mod de lucru şi anumite caracteristici ale
sale,
porturi de date, prin care circuitul transferă date între el şi unitatea centrală şi
porturi de stare, care oferă informaţii asupra stării curente a circuitului şi asupra
modului cum a decurs ultimul transfer de date; din informaţia de stare, unitatea
centrală mai poate afla care este momentul în care circuitul poate accepta un nou
transfer;
referitor la terminalele acestor circuite, ele se pot grupa în 2 mari categorii:
3
Proiectarea Microsistemelor Digitale
una care realizează dialogul unitate centrală – circuit şi
una care realizează dialogul circuit – periferic;
În prima categorie intră:
linii de date: realizează o magistrală de date compatibilă cu cea a
microprocesoarelor; prin intermediul liniilor de date se transferă octeţi de
comandă, de date şi de stare;
un semnale de selecţie a circuitului, /CS sau /CE, cu rolul de a selecta circuitul
şi a permite funcţionarea sa; dacă această intrare este inactivă, adică la 1
logic, circuitul este decuplat de la magistrala de date a sistemului,
neinfluenţând nicicum funcţionarea acestuia; linia trebuie activată ori de câte
ori se doreşte un transfer între circuit şi unitatea centrală;
un semnal pentru comanda de citire, /RD, care atunci când este activ,
împreună cu semnalul de selecţie, arată circuitului că unitatea centrală doreşte
să citească de la el;
un semnal pentru comanda de scriere, /WR, care atunci când este activ,
împreună cu semnalul de selecţie, arată circuitului că unitatea centrală doreşte
să scrie la el;
una sau două linii pentru selecţia porturilor din interiorul circuitului: aceste
intrări se notează cu A0 şi A1 sau CS0 şi CS1 şi se conectează la linii mai puţin
semnififcative din magistrala de adrese;
în funcţie de circuitul specializat şi de microprocesorul din a cărui familie face
parte, mai există şi alte terminale: astfel, unele circuite specializate au şi intrare
de iniţializare, RESET, altele au şi intrare de tact etc.
4
Proiectarea Microsistemelor Digitale
În a 2-a categorie:
nu se pot determina trăsături comune între terminale întrucât ele sunt orientate pe
tipul de aplicaţie pentru care a fost conceput circuitul;
astfel:
un circuit pentru interfaţă serială va avea un terminal pentru recepţia serială de la
periferic şi unul pentru transmisia serială la periferic,
un circuit pentru interfaţă paralelă va avea cel puţin un grup de 8 linii de date
pentru transferul simultan a rangurilor unui octet, plus cel puţin 2 linii pentru
realizarea unui dialog etc.
referitor la tehnologie, sunt circuite realizate în tehnologia MOS, introducând
încărcări mici, de ordinul A;
referitor la viteza de lucru a acestor circuite, ea este adaptată la viteza de
lucru a microprocesorului din a cărui familie fac parte.
CSP fac parte din familia unui microprocesor:
pot fi conectate direct la microprocesorul respectiv,
Pot fi conectate direct sau uşor, cu minim de circuite, la un microprocesor obţinut
din primul prin evoluţie,
Se conectează dificil, cu multe circuite, la alte microprocesoare;
5
Proiectarea Microsistemelor Digitale
5.2. Interfaţa serială
Interfaţa serială constă în totalitatea circuitelor şi programelor de
bază care asigură comunicarea între unitatea centrală şi un
echipament periferic, aceasta fiind de tip bit după bit.
Transferul serial este foarte util atunci când există distanţe mari
(peste 3 m) între echipamentele care comunică.
Există două motive care susţin această recomandare: costul şi
rezistenţa la perturbaţii:
Costul este determinat de numărul firelor din cablul care leagă cele 2
echipamente: dacă acest număr este mai mic, costul va fi mai redus;
Transferul serial are o rezistenţă mai mare la perturbaţii decât cel paralel
din două motive:
posibilitatea de perturbare a liniilor scade dacă numărul acestora este mai mic
şi
distanţa dintre nivelele de tensiune corespunzătoare celor 2 nivele logice este
mai mare decât la transferul paralel.
6
Proiectarea Microsistemelor Digitale
Există multe tipuri de interfeţe seriale:
Fără fir: Bluetooth, WiFi, ZigBee etc.
Cu fir: RS232, RS485, I2C, CAN, USB, Flexray etc.
Diferă prin:
Mediul de transmitere a informaţiei,
Modalitatea de alocare a tensiunilor nivelelor logice,
Parametri: rată de transfer, rezistenţa la perturbaţii, corecţie a erorilor, metode
de codificare, utilizarea sau nu a tactului, numărul de module care se pot
conecta, ierarhizarea modulelor etc.
La PC: RS232 şi USB.
Cea mai veche dar şi cea mai răspândită: RS232; se foloseşte la
transmiterea la distanţă a datelor;
În mediu industrial: RS485;
În domeniile audio, video: I2C;
În industria automobilelor: CAN, Flexray etc.
7
Proiectarea Microsistemelor Digitale
Caracteristici de bază ale interfeţei RS232:
Nivelele de tensiune:
Nu sunt TTL ci EIA şi au următoarele valori:
- 25V ÷ - 3V pentru “1” logic şi
+ 3V ÷ + 25V pentru “0” logic.
Sunt necesare circuite de conversie TTL → EIA şi EIA → TTL: 232
8
Proiectarea Microsistemelor Digitale
Direcţia de deplasare a datelor:
transferuri simplex:
transferuri semi-duplex sau half duplex:
sunt transferuri unidirecţionale;
un echipament este întotdeauna transmiţătorul, celălalt este întotdeauna
receptorul iar transferul are loc întotdeauna de la transmiţător la receptor;
se realizează pe o singură linie de semnal, însoţită de linia de masă
corespunzătoare;
sunt transferuri bidirecţionale dar la momente de timp diferite;
ambele echipamente sunt transmiţătoare şi receptoare, iar transferurile pot avea
loc în orice direcţie dar la momente de timp diferite;
necesită o singură linie de semnal, însoţită de linia de masă corespunzătoare;
transferuri duplex sau full duplex:
sunt transferuri bidirecţionale ce pot avea loc simultan;
ambele echipamente sunt transmiţătoare şi receptoare;
necesită două linii pentru semnal însoţite de linia sau liniile de masă
corespunzătoare.
9
Proiectarea Microsistemelor Digitale
Viteza:
Mică;
Există două unităţi de măsură a vitezei transferului: bit pe secundă (bps)
şi baud.
Un baud se defineşte ca o tranziţie electrică a liniei.
Dacă transferul între cele două echipamente, de exemplu două
calculatoare, se desfăşoară sub formă digitală, adică cele două
echipamente sunt legate la liniile seriale direct, fără MODEM, atunci 1
bps = 1 baud.
Dacă transferul se desfăşoară sub formă analogică, pe linii telefonice
între două MODEM-uri, de exemplu, atunci 1 bps ≠ 1 baud.
Relaţia între ele depinde de metoda de codificare a datelor pe linii
folosită de MODEM-uri.
Se obişnuieşte să se lucreze cu anumite viteze. Treptele de viteză mai
utilizate sunt: 300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600,
115200 mai rar 230400, 460800 bps.
10
Proiectarea Microsistemelor Digitale
Sincronizarea între emiţător şi receptor:
Transfer sincron,
Transfer asincron: transfer pe caracter, un caracter poate fi transmis în
orice moment;
Forma de undă a unui caracter:
Caracteristici:
Sincronizare la nivel de caracter prin bitul START,
5 – 8 biţi de date,
Opţional bit de paritate,
1, 1.5, 2 biţi de STOP.
11
Proiectarea Microsistemelor Digitale
Rejecţia impulsurilor de START false şi citirea informaţiei la receptor:
Cum află receptorul când să citească linia?
Notaţie consacrată:
8n2 înseamnă transfer asincron cu 8 biţi de date, fără paritate şi cu 2 biţi de
STOP,
7e1 înseamnă transfer cu 7 biţi de date, paritate pară şi cu 1 bit de STOP etc.
Litera e indică paritate pară (“even”) iar litera o indică paritate impară (“odd”).
12
Proiectarea Microsistemelor Digitale
Există posibilitatea desincronizării între transmiţător şi receptor.
Cele două echipamente lucrează sub controlul unor tacturi diferite şi,
deşi sunt programate să lucreze cu aceeaşi viteză serială, defazajul între
tacturi face ca receptorul să nu poată citi bitul emis exact la jumătatea
duratei sale ci decalat; acest decalaj se cumulează şi, dacă este prea
mare, apare riscul ca ultimul sau ultimii biţi să nu mai fie citiţi; riscul de
pierdere a informaţiei este minimizat pe două căi:
Avantaje:
biţii sunt citiţi la mijlocul duratei lor ceea ce oferă o marjă de siguranţă şi
cumularea se face doar până la nivelul unui singur caracter, adică a maxim 12
biţi, întrucât la următorul caracter transmiţătorul şi receptorul se
resincronizează şi cumularea anterioară dispare;
Transmiţătorul poate transmite un caracter oricând doreşte,
Simplu de implementat.
Dezavantaje:
Se transferă şi informaţie inutilă (de cadrare): minim 20%,
Rată de transfer mică.
13
Proiectarea Microsistemelor Digitale
Transfer sincron: transfer pe bloc, transferul se face la nivel de bloc sau
de mesaj.
Transmiţătorul poate începe oricând doreşte transmisia unui bloc dar,
odată începută, trebuie să transmită toate caracterele care-l alcătuiesc.
Un bloc începe cu unul până la cinci caractere speciale, care au rol de
sincronizare.
Receptorul testează permanent linia, asamblează datele primite şi le
compară cu caracterele de sincronizare.
Din faza de programare, receptorul cunoaşte câte caractere de
sincronizare foloseşte transmiţătorul şi care sunt acestea.
Dacă s-a detectat apariţia acestora, urmează asamblarea biţilor
caracterelor care alcătuiesc mesajul transmis.
Dacă la transferul asincron există o sincronizare la nivel de caracter,
realizată prin bitul de START, aici există o sincronizare la nivel de bit;
fiecare bit este transmis la momente de timp bine determinate fixate de
un tact, comandat de transmiţător.
Există tehnici pentru combinarea datelor şi a tactului pe aceeaşi linie.
14
Proiectarea Microsistemelor Digitale
Avantaj:
Asigură viteză mai mare datorită:
Dezavantaje:
Existenţei tactului,
Elimină informaţia de cadrare la nivel de caracter.
Sunt necesare caractere de sincronizare deci dacă blocul este scurt, sub 8
caractere, modul sincron nu mai este eficient;
Linia suplimentară de tact.
Codificarea informaţiei alfanumerice: prin coduri:
BAUDOT: folosea doar 5 biţi pentru codificarea unui caracter, ceea ce a
limitat la 32 numărul de caractere ce puteau fi transferate;
EBCDIC;
ASCII (“American Standard Code for Information Interchange”): 96 de
octeţi corespund la litere, numere sau caractere speciale, iar 32 de octeţi
corespund la caractere de comandă.
15
Proiectarea Microsistemelor Digitale
Controlul fluxului: cum află transmiţătorul că receptorul nu mai poate
prelua caractere? - din diferite motive, de exempu: tamponul său
este plin, este deconectat de la linie etc., ca urmare nu mai are rost
să le trimită fiindcă, în caz contrar, acestea se pierd.
Există trei soluţii:
fără control;
cu control software ( “software handshaking” ) şi
cu control hardware ( “ hardware handshaking” ).
Prima soluţie: emiţătorul şi receptorul lucrează la aceeaşi viteză, mică;
A doua soluţie: utilizarea a două caractere de control: XON având codul
DC1 (11h) şi XOFF având codul DC3 (13h); receptorul trimite XON dacă
doreşte transfer şi XOFF dacă nu doreşte transfer.
A treia soluţie: realizează un dialog între transmiţător şi receptor prin
intermediul a două semnale. Atunci când transmiţătorul doreşte să
transfere ceva, activează linia RTS. Dacă receptorul poate primi
informaţia, va răspunde prin activarea liniei CTS iar când nu mai poate
primi informaţie va dezactiva linia CTS. Această soluţie este mai rapidă
decât cea dinainte dar cere un cablu cu 2 fire în plus.
16
Proiectarea Microsistemelor Digitale
Erori:
de cadrare (“Frame Error“),
de paritate (“Parity Error”),
de ritm (“Overrun Error”) şi
de oprire (“Break”).
“Break”: o situaţie deosebită creată în mod voit de transmiţător; în mod
normal, dacă linia este inactivă, ea este la 1 logic; condiţia de Break este
forţată de transmiţător care trece linia la 0 logic pentru o perioadă relativ
lungă, 0,25 – 0,5 sec. şi este sesizată de receptor.
În cazul tuturor erorilor, circuitul specializat nu opreşte transferul ci le
anunţă doar prin activarea unor ranguri din octetul sau octeţii săi de
stare; este sarcina software-ului să trateze aceste situaţii, de exemplu
cerând retransmisia octeţilor.
Standardizare:
Electronic Industries Association (EIA): standardul RS232, ...
International Telegraph and Telephone Consultative Communitee (CCIT)
care şi-a schimbat denumirea în International Telecommunications Union
(ITU): standardul V24, ...
17
Proiectarea Microsistemelor Digitale
Circuitul specializat programabil 8251
Specializat pentru transferurile seriale;
Face parte din categoria circuitelor de tip USART (“Universal
Synchronous Asynchronous Receiver Transmitter”); moduri de lucru:
Poate să primească un octet în paralel de la unitatea centrală, să – l
serializeze şi să – l transmită la un echipament serial;
Poate să preia de pe linie, de la un echipament periferic serial, un octet,
să – l asambleze şi să – l predea, în paralel, unităţii centrale;
Circuitul comunică unităţii centrale când are un caracter gata pentru ea
sau când a terminat de transmis un octet şi poate prelua altul; poate
comunica:
Sincron,
Asincron;
Prin program,
Prin întreruperi;
Transmisie şi recepţie cu dublu tampon
18
Proiectarea Microsistemelor Digitale
Configuraţia şi semnificaţiile terminalelor:
19
Proiectarea Microsistemelor Digitale
Legătura între operaţiile realizate de circuit şi starea terminalelor de
comandă
/CS
/RD
/WR
C//D
Operaţie
1
X
X
X
Magistrala de date în a 3-a stare
0
1
1
X
Magistrala de date în a 3-a stare
0
0
1
1
Citire a octetului de stare
0
0
1
0
Citire a datei
0
1
0
1
Scriere a cuvintelor de comandă
0
1
0
0
Scriere a datei
20
Proiectarea Microsistemelor Digitale
Structura internă a circuitului:
21
Proiectarea Microsistemelor Digitale
Recepţia:
Pentru creşterea vitezei, a fost implementat conceptul de suprapunere.
Tamponul recepţie este alcătuit din 2 registre, RA şi RB;
Datele sunt preluate de pe linia serială în registrul RB, se elimină
informaţia de cadrare, şi, după asamblarea unui caracter, acesta este
transferat în registrul RA şi, simultan, este activat terminalul RXRDY şi
rangul cu acelaşi nume din registrul de stare.
Prin acest semnal, circuitul anunţă microprocesorul că are un caracter
asamblat pe care poate să i – l ofere.
Microprocesorul va trebui să preia conţinutul registrului RA în timpul cât
se asamblează un nou caracter în registrul RB.
Dacă nu este îndeplinită această cerinţă, vechiul caracter se pierde,
întrucât în RB se va transfera noul caracter şi circuitul va detecta eroare
de ritm şi va poziţiona un rang din registrul de stare, anunţând astfel
exteriorul că a apărut această eroare.
În acest fel, s – a realizat suprapunerea între timpul necesar preluării şi
asamblării unui caracter de pe linia serială cu timpul necesar citirii
caracterului asamblat de către microprocesor.
Semnalul RXRDY este dezactivat doar de un semnal activ pe linia /RD,
ceea ce corespunde unei citiri din partea microprocesorului.
22
Proiectarea Microsistemelor Digitale
Schema bloc a Tamponului recepţie şi a Tamponului transmisie:
Suprapunerea la recepţie:
23
Proiectarea Microsistemelor Digitale
Transmisia:
Suprapunerea;
Tamponul transmisie este alcătuit din 2 registre, TA şi TB.
Unitatea centrală încarcă un caracter în registrul TA, circuitul îl transferă
în registrul TB, de unde caracterul este serializat şi transmis pe linie.
După transferul conţinutului registrului TA în TB, circuitul activează
semnalul TXRDY comunicând microprocesorului că poate prelua un nou
caracter.
Simultan este activat şi rangul cu acelaşi nume din registrul de stare.
Dezactivarea terminalului TXRDY se face de primul front al semnalului
/WR care corespunde operaţiei de scriere a unui nou caracter de către
microprocesor.
Terminalul TXRDY este activat la îndeplinirea condiţiilor descrise mai sus
doar dacă transmisia poate avea loc, adică rangul TXE din cuvântul de
comandă este 1 şi terminalul /CTS = 0;
De remarcat că rangul TXRDY din registrul de stare este activat
indiferent de starea rangului TXE şi a terminalului /CTS.
24
Proiectarea Microsistemelor Digitale
Terminalul TXE este activat atunci când caracterul din TB a fost serializat
şi transmis, indicând microprocesorului că tamponul de transmisie este
gol.
Dacă microprocesorul nu scrie o nouă dată în registrul TA, până când
circuitul a terminat de serializat caracterul din TB, acesta va detecta
eroare de ritm la transmisie şi va poziţiona rangul corespunzător din
registrul de stare.
De remarcat că eroarea de ritm la recepţie este distructivă, în sensul că
se pierd caractere pe când la transmisie nu este distructivă, provocând
doar scăderea vitezei transmisiei.
Suprapunerea la transmisie:
Semnalele TxRDY şi RxRDY pot fi surse de cereri de întrerupere.
25
Proiectarea Microsistemelor Digitale
Programarea circuitului:
26
Proiectarea Microsistemelor Digitale
Structura cuvântului de mod, pentru mod asincron:
27
Proiectarea Microsistemelor Digitale
Structura cuvântului de mod, pentru mod sincron:
28
Proiectarea Microsistemelor Digitale
Structura cuvântului de comandă:
29
Proiectarea Microsistemelor Digitale
Structura cuvântului de stare:
30
Proiectarea Microsistemelor Digitale
Aplicaţii:
Să se proiecteze o interfaţă serială cu circuitul 8251, conectată la o
UC cu 8086, transferul făcându – se prin program. Datele iniţiale ale
transferului sunt:
8 biţi de date,
Fără paritate,
2 biţi de STOP,
Factor de multiplicare 16,
Rata de transfer: 9600 bps.
Se vor prezenta:
Schema interfeţei,
Rutina de programare a circuitului specializat,
Rutinele de emisie şi recepţie.
31
Proiectarea Microsistemelor Digitale
Schema interfeţei:
32
Proiectarea Microsistemelor Digitale
Adresele de port: 00H pentru date şi 02H pentru comenzi/ stări;
Rutina de programare:
MOV
AL,0CEH ; cuvânt de mod
OUT
02H,AL
MOV
AL,15H ; cuvânt de comandă
OUT
02H,AL
Rutina de transmisie caracter:
TR: IN
AL,02H ; citire şi testare rang TxRDY din cuvântul de stare
RCR
AL,1
JNC
TR
MOV
AL,CL ; se preia data din registrul CL
OUT
00H,AL
RET
33
Proiectarea Microsistemelor Digitale
Rutina de recepţie caracter:
REC: IN
AL,02H ; citire şi testare rang RxRDY din cuvântul de stare
RCR
AL,2
JNC
REC
IN
AL,00H ; se preia data de la 8251
MOV
CL,AL ; se depune data în registrul CL
RET
Soluţia prezentată realizează transferul serial prin program.
Dezavantaj: utilizarea ineficientă a timpului microprocesorului, întrucât
acesta va trebui să aştepte mult timp până când circuitul 8251 poate
realiza un transfer.
Alternativa o constituie transferul serial prin întreruperi, în care
microprocesorul execută un program şi va fi întrerupt de circuitul 8251
doar când acesta poate realiza un transfer.
Se vor utiliza terminalele RxRDY şi TxRDY.
34