Che materia stai cercando?

Anteprima

ESTRATTO DOCUMENTO

Transistore(bipolare(

!

Il+ transistore+ bipolare+ è+ composto+ da+ collettore+ (C),+ base+ (B)+ ed+ N+

N+ P+

emettitore+ (E)+ e+ possono+ essere+ modellizzati+ in+ diversi+ modi+ a+

seconda+di+quali+aspetti+si+vuole+privilegiare.+

Possono+ essere+ rappresentati+ + con+ una+ barretta+ di+ semiconduttore+ C+ E+

(silicio)+ai+cui+lati+ed+al+centro+sono+presenti+i+morsetti.+La+barretta+è+

stata+ drogata+ agli+ estremi+ in+ modo+ da+ aumentare+ il+ numero+ di+

elettroni+ liberi+ (drogaggio+ di+ tipo+ N)+ mentre+ al+ centro+ in+ modo+ che+ B+

assorba+un+numero+elevato+di+elettroni+(drogaggio+di+tipo+P).+

A+ separare+ le+ diverse+ parti+ sono+ presenti+ la+ giunzione+ collettore6base+ e+ la+ giunzione+ base6emettitore;+ i+ transistori+

funzionano+grazie+agli+scambi+di+carica+tra+le+giunzioni.+

Il+transistore+può+essere+quindi+definito+di+tipo+NPN+ma+è+anche+possibile+realizzare+il+suo+complementare+PNP+che+si+

differenzierà+per+la+direzione+delle+correnti+al+suo+interno.+

Quando+sono+nati,+negli+anni+’60,+era+più+semplice+realizzare+i+PNP+che+all’epoca+erano+costruiti+col+germanio+mentre+

successivamente,+con+l’uso+silicio,+erano+di+più+facile+realizzazione+gli+NPN.+

È+ importante+ sapere+ quali+ modelli+ rappresentano+ meglio+ ciò+ che+ usiamo+ e+ nel+ caso+dei+transistori+il+circuito+è+quello+

raffigurato.+

Studio(del(modello(del(transistore(in(continua(

Il+circuito+lo+consideriamo+polarizzato+direttamente.+

Se+voglio+caratterizzare+la+giunzione+B6E+costruisco+un+grafico+in+cui+! +è+in+funzione+di+! +ed+

! !"

osservo+che+si+comporta+come+un+diodo+in+cui+il+ginocchio+è+a+circa+0,6!!+e+da+lì+variazioni+di+

+sono+minime+per+cui+posso+modellizzare+la+giunzione+B6E+con+un+generatore+di+tensione+

!

!"

di+valore+! .+

!"

Il+collettore+sarà,+invece,+modellizzato+con+un+generatore+di+corrente+pilotato+in+corrente+in+

cui+! +sarà+la+somma+delle+due+correnti.+

≈ 10 − 100;+infine+!

! 0,6+V+

+

! !+ !+

! +

!

!

+

!

!

+

!

!

+

!

+

! +

!

!

! !"

+

!

!" +

! = !!

! !

+

!

! +

!

+

! !

!" +

!

!

!+

Potenza(dissipata(

!

Un+circuito+per+funzionare+richiede+una+certa+potenza+che+è+importante+da+quantificare.+

Parte+dell’energia+fornita+al+modulo+logico+è+utilizzata+dal+modulo+stesso+per+funzionare,+parte+per+generare+il+segnale+

d’uscita+e+parte+è+trasformata+in+calore.+

L’energia+ necessaria+ è+ fornita+ attraverso+ la+ tensione+ di+ alimentazione+ ;+ la+ porta+ durante+ il+ suo+ funzionamento+

!

!"

assorbe+una+corrente+! +e+conseguentemente+la+potenza+sarà+! .+

= ! ⋅ !

!"" !" !""

Nelle+porte+logiche+distinguiamo+due+diversi+tipi+di+potenza:+

potenza, statica+ potenza+ assorbita+ dalle+ porte+ in+ assenza+ di+ commutazione;+ per+ conoscerla+ moltiplico+ la++

→+

• ++++++++++++++++++++++++++++++++++++tensione+ misurata+ tra+ il+ riferimento+ e+ la+ tensione+ di+ alimentazione+ con+ la+ corrente+ che+++

++++++++++++++++++++++++++++++++++++scorre+nel+carico+(sfrutto+un+amperometro+in+serie+al+carico);+

potenza,dinamica+→+potenza+assorbita+per+eseguire+una+commutazione;+in+questo+caso+parte+della+corrente+è++

• +++++++++++++++++++++++++++++++++++++++usata+per+far+commutare+la+porta+ed+una+parte+è+trasferita+al+carico.+

Nelle+ porte+ TTL,+ quando+ sono+ scollegate+ dal+ carico,+ la+ potenza+ statica+ è+ prevalente+ rispetto+ a+ quella+ dinamica+ a+

differenza+ di+ quello+ che+ capita+ nelle+ porte+ C6MOS+ in+ cui+ la+ potenza+ statica+ è+ quasi+ trascurabile+ rispetto+ a+ quella+

dinamica.+Nelle+porte+C6MOS+la+potenza+dinamica+è+legata+alla+frequenza+di+commutazione.+

+

Vedi+SLIDE+CALCOLO+CONSUMO.+

+ Progettazione+di+Dispositivi+Biomedici+Programmabili+6+Appunti+ 19+

!

Per+ridurre+la+potenza+dissipata+! +ci+sono+più+soluzioni:+

= ! ⋅ ! ⋅ !"

!

ridurre+la+frequenza+di+commutazione+!+con+un+conseguente+rallentamento+della+rete;+

• utilizzare+ algoritmi+ elementari+ che+ fanno+ commutare+ un+ minor+ numero+ di+ volte+ la+ porta+ ottenendo+ lo+ stesso+

• risultato;+

ridurre+la+capacità+ma+è+un+problema+tecnologico;+

• ridurre+ la+ differenza+ di+ tensione+ perché+ la+ tensione+ nel+ calcolo+ della+ potenza+ è+ un+ termine+ al+

! − ! = !"+

• ! !

quadrato+per+cui+dimezzando+!"+la+potenza+si+riduce+di+un+quarto.+

+

Prodotto(potenza>ritardo(di(propagazione(

In+un+circuito+logico+ideale+non+sono+presenti+né+dissipazione+di+potenza+né+ritardo+di+propagazione+però+i+circuiti+sono+

reali+ e+ per+ questo+ motivo+ è+ conveniente+ cercare+ di+ mantenere+ il+ prodotto+ + il+ più+ basso+ possibile.+ Alcuni+

! ⋅ !

! !

produttori+specificano+questo+valore+così+come+le+condizioni+di+carico+con+cui+hanno+ottenuto+questo+stesso+valore.+

+

+ Circuiti(sequenziali(e(combinatori(

!

Si+parla+di+sistema,logico,sequenziale+quando+esiste+la+possibilità+che+nello+stesso+ +

!

istante+ci+siano+diversi+stati+delle+uscite+in+base+alla+memoria+del+microcontrollore.+ !

Il+ circuito+ più+ semplice+ di+ memoria+ è+ il+ FlipSFlop+ che+ può+ contenere+ 1+ bit+

d’informazione.+

Se+ colleghiamo+ due+ inverter+ ad+ anello+ e+ supponiamo+ che+ l’uscita+ + sia+ a+ livello+

!

! +

!

logico+alto+(1),+l’uscita+! +sarà+conseguentemente+a+livello+logico+basso+(0);+queste+ !

!

due+condizioni+permarranno+fino+a+quando+il+circuito+sarà+alimentato.+

È+possibile+costruire+un+circuito+simile+collegando+tra+loro+due+porte+NOR+in+modo+

che+le+uscite+delle+due+porte+siano+collegate+ad+uno+degli+ingressi+della+seconda+porta+e+ottenere+anche+un+ingresso+per+

il+controllo+dall’esterno.+

Anche+per+questi+circuiti+è+possibile+costruire+una+tavola+delle+verità+ma+sarà+ !"#"$+

un+ po’+ diversa+ rispetto+ a+ quella+ dei+ circuiti+ logici+ semplici+ perché+ nei+ circuiti+ +

!

!

sequenziali+è+presente+memoria.+

Se+ consideriamo+ il+ circuito+ rappresentato+ a+ lato+ avremo+ quattro+ possibili+

!

combinazioni+ (2 + combinazioni+ dove+ è+ il+ numero+ degli+ ingressi)+ degli+

!+

ingressi.+ +

, ,

!"#, !"#"$, ! !

! ! +

!

!

1+ 0+ 1+ 0+ !"#+

condizioni+di+comando+

0+ 1+ 0+ 1+ mantiene+le+uscite+precedenti+=+ +

+ +

! !

0+ 0+ ! ! memoria+

!!! !!! +

condizione+non+permessa+ma+ +

1+ 1+ 0+ 0+ possibile+ +

Le+prime+due+righe+della+tabella+sono+dette+condizioni,di,comando,+la+terza+è+detta+condizione,di,memoria+e+l’ultima+è+

la+condizione,non,permessa.+ +

FLIPSFLOP,SET,RESET, Il+ simbolo+ funzionale+ e+ la+ tavola+ della+ verità+ sono+ quelli+ a+ lato;+ siccome+ nelle+

condizioni+di+comando+e+di+memoria+le+due+uscite+del+flip6flop+sono+sempre+una+la+

!"#+ !+ ∗

complementare+dell’altra,+per+convenzione+! +sarà+chiamata+! +(!+negato).+

!

+

∗ +

!

!"#"$+ Per+evitare+la+condizione+non+permessa,+solitamente,+si+realizza+un+circuito+esterno+

, che+impedisca+che+questa+situazione+si+verifichi.+

INPUT, OUTPUT, Lo+stesso+circuito+realizzato+da+porte+NOR+può+essere+realizzato+in+altri+modi+come,+

∗ ,

!"#, !"#"$, !, ! per+ esempio,+ porte+ NAND+ e+ quattro+ invertitori.+ Così+ facendo+ si+ ottiene+ un+

1+ 0+ 1+ 0+ componente+ molto+ simile+ ma+ non+ uguale+ e+ che+ quindi+ avrà+ un’altra+ tavola+ delle+

0+ 1+ 0+ 1+ verità.+

0+ 0+ + +

! !

!!! !!! +

1+ 1+ 0+ 0+

20+ Progettazione+di+Dispositivi+Biomedici+Programmabili+6+Appunti+

+

Un+ulteriore+modo+per+descrivere+i+circuiti+sequenziali,+senza+utilizzare+la+tavola+delle+verità+che+a+volte+può+diventare+

complessa,++è+mediante+il+proprio+diagramma,temporale.+

!"#"$+

!"#+

!+

∗ +

! +

In+tutte+le+porte+logiche+reali+sarà+presente+un+ritardo+e+una+domanda+lecita+da+porsi+è+quanto+debba+essere+la+minima+

durata+dell’impulso+di+set+o+reset+perché+abbia+effetto.+

L’impulso+ deve+ durare+ almeno+ quanto+ la+ differenza+ tra+ i+ ritardi+ tra+ le+ variazioni+ di+ stato+ delle+ due+ porte;+

conseguentemente+è+meglio+avere+ritardi+diversi+delle+due+porte+altrimenti,+se+i+ritardi+fossero+uguali,+la+loro+differenza+

sarebbe+nulla+e+sarebbe+sufficiente+un+impulso+infinitesimo+per+far+variare+lo+stato+della+porta.+

+ +

!

Un’applicazione+ dei+ flip6flop+ set+ reset+ è+ ampiamente+ !"

implementata+nei+circuiti+delle+tastiere;+in+questo+caso+sono+ + +

! !

presenti+ dei+ contatori+ il+ cui+ scopo+ è+ quantificare+ le+ !! !!

! !

commutazioni.+

Se+ si+ sfruttasse+ un+ semplice+ deviatore+ composto+ da+ un+

interruttore+ meccanico,+ si+ presenterebbe+ costantemente+ il+

problema+ dei+ rimbalzi+ per+ cui+ per+ ogni+ vera+ commutazione+

ne+ avrei+ altre+ “parassite”.+ Per+ questo+ motivo+ si+ sfrutta+ un+

semplice+circuito+composto+da+un+flip6flop+set+reset.+

+

+ Circuiti(sincroni(o(asincroni(

!

Il+ flip6flop+ è+ un+ circuito+ asincrono+ ovvero+ il+ segnale+ di+ comando+ può+ intervenire+ in+ un+ istante+ qualunque;+ ci+ sono,+

tuttavia,+altri+tipi+di+circuiti,+detti+sincroni,+in+cui+i+segnali+di+comando+possono+agire+solamente+in+determinati+istanti+di+

tempo+o+intervalli+di+tempo.+

+ Latch=Enable(

o

Il+LatchSEnable+è+un+esempio+di+circuito+sincrono+in+cui+i+segnali+di+comando+di+set+e+reset+possono+agire+solamente+se+il+

comando+di+Latch6Enable+(LE)+è+a+livello+logico+alto+(1)+altrimenti+è+forzato+nel+flip6flop+lo+stato+di+memoria.+In+questo+

modo+è+possibile+controllare+il+funzionamento+del+flip6flop.+

!"#+ !+ !+

!"#+

!"+ !"+

∗ ∗

+

! +

!

!"#"$+

!"#"$+

+

+

+ Progettazione+di+Dispositivi+Biomedici+Programmabili+6+Appunti+ 21+

Latch(D(

o

Un+altro+circuito+sincrono+è+il+Latch,D,+costituito+da+due+soli+ingressi+in+cui+il+reset+è+sempre+il+negato+del+comando+D.+In+

questo+modo+è+esclusa+automaticamente+la+condizione+non+permessa+ma+anche+la+condizione+di+memoria+propria+del+

flip6flop+che+però+è+sopperita+dal+comando+di+latch.++ +

!"#+

!+ !+ !+

!+

!"+ !"+

∗ +

! ∗ +

!

!"#"$+

+

Un+sistema+di+questo+tipo+porta+all’uscita+!+il+comando+presente+su+!+quando+il+latch6enable+è+attivo+(stato+logico+alto).+

Il+suo+scopo+è+quindi+isolare+lo+stato+dell’ingresso+in+un+intervallo+di+tempo+definito+quindi+memorizzalo+prima+che+il+

latch6enable+si+disattivi+(stato+logico+basso).+

Questo+tipo+di+flip6flop+può+funzionare+anche+a+10!– !20!!"#.+

Quando+si+alimenta+un+flip6flop+le+sue+uscite+possono+andare+in+stati+che+non+sono+noti+a+priori+quindi+sarebbe+comodo+

poter+ forzare+ lo+ stato+ di+ indipendentemente+ dal+ latch6enable.+ Questo+ è+ possibile+ farlo+ inserendo+ porte+ OR+ sulla+

!+

catena+del+set+e+del+reset+che+dunque+avranno+anche+due+comandi+asincroni:+il+!"#$#%+ed+il+!"#$%.+

Una+soluzione+di+questo+tipo+introduce+un+ulteriore+ritardo+nella+propagazione+del+comando+dovuto+alla+nuova+porta.+

!"#$#%+

!"#$#%+ !+

!"#+ !+

!"#+

!"+ !"+

∗ +

!"#"$+ ! ∗ +

!

!"#"$+

!"#$%+ !"#$%+

L’idea+base+che+ha+portato+alla+progettazione+di+questi+circuiti+era+poter+memorizzare+un+segnale++in+una+certa+finestra+

temporale+stretta+abbastanza+da+garantire+il+cambio+di+stato+del+segnale.+

+

+ Flip=Flop(Master=Slave(

o

Se+ voglio+ che+ il+ flip6flop+ sia+ sensibile+ ad+ un+ istante+ preciso+ di+ tempo+ devo+ mettere+ in+ cascata+ due+ flip6flop+ latched.+

Questa+configurazione+prende+il+nome+di+FlipSFlop,MasterSSlave.+

+ Master! Slave! !+

!"#! ∗ +

!

!"#"$!

!"#!$!

Il+primo+latch6enable+è+collegato+ad+un+segnale+detto+clock+mentre+il+secondo+latch6enable+al+clock+invertito.+Il+segnale+

di+clock+è+un’onda+quadra+con+duty+cycle+al+50%.+

22+ Progettazione+di+Dispositivi+Biomedici+Programmabili+6+Appunti+

Quado+il+clock+è+ad+1+il+master+sente+i+comandi+e+lo+slave+no+mentre,+quando+il+clock+è+a+0,+è+abilitato+lo+slave.+Il+flip6

flop,+in+queso+modo+memorizza+l’uscita+sul+fronte+di+discesa+del+clock+e+per+questo+motivo+è+detto+FlipSFlop,NegativeS

Edge,Triggered.+

+

+ Flip=Flop(Master=Slave(D(

o

Il+FlipSFlop,MasterSSlave,D+è+analogo+del+master6slave+semplice+ma+in+questo+caso+l’uscita+memorizza+il+comando+!+in+

corrispondenza+dei+fronti+di+discesa+del+clock+quindi+trasferisce+il+segnale+d’ingresso+all’uscita+in+istanti+precisi.+

Master! Slave!

!! !+

!"#!$!

+ Flip=Flop(Dual(Edge( !!

o +

!

È+possibile+realizzare+un+flip6flop+sensibile+ad+entrambi+i+fronti+ !

sfruttando+due+flip6flop+D+latched+e+un+commutatore,+guidato+

dal+ clock,+ sensibile+ ai+ fronti+ di+ discesa+ quando+ il+ clock+ è+ allo+ !+

stato+ logico+ alto+ ed+ ai+ fronti+ di+ salita+ quando+ il+ clock+ è+ allo+ ∗ +

!

stato+ logico+ basso.+ Questo+ circuito+ è+ chiamato+ FlipSFlop, D,

Dual, Edge.+ Sfruttando+ questo+ sistema+ si+ può+ lavorare+ a+

frequenza+doppia+consumando+la+metà.+ +

!

!

+

+

+

+

+ !"#!$!

+

+

+

Per+identificare+che+il+comando+è+attivo+sui+fronti+si+usa+il+simbolo+ ,+ mentre,+ se+ il+ flip6flop+ è+ attivo+ sui+ livelli+

si+ usa+ un+ altro+ simbolo+++++++++++++++ .+

+

Ovviamente++il+comando+può+essere+attivo+anche+sui+fronti+di+discesa+del+clock+e+sui+livelli+bassi+per+cui+i+simboli+saranno+

modificati+aggiungendo+la+negazione:+++++++++++++++++++++

+

+ !"#$#%+

+

A+ questo+ punto+ è+ possibile+ progettare+ flip6flop+ sensibile+ ad+ entrambi+ i+

fronti+e+con+la+possibilità+di+presettare+le+uscite.+ !+ !+

+

+ !"#!$+

+ ∗ +

!

+

+

+ !"#$%+

Progettazione+di+Dispositivi+Biomedici+Programmabili+6+Appunti+ 23+

Flip=Flop(JK(

o

Il+FlipSFlop,JK+è+un+particolare+tipo+di+flip6flop+che+sfrutta+la+condizione+non+permessa.+ !

Se+!+e+!+sono+a+livello+logico+alto,+il+circuito+funziona+da+divisore+di+frequenza+ed+in+particolare+divide+per+2 +dove+!+

rappresenta+il+numero+di+quante+componenti+di+questo+tipo+sono+collegate+in+cascata.+

Questo+tipo+di+flip6flop+si+può+realizzare+con+un+flip6flop+set6reset+sensibile+ai+fronti+e+due+porte+AND+condizionate+da+!+e+

!.+ FLIPSFLOP,J,K, !+

!+

!+ !"+

!+ ∗

!+ +

!

!"#!$+ ,

!+ INPUT, OUTPUT,

∗ +

! ∗ ,

!, !, !, !

0+ 0+ + +

! !

!!! !!!

0+ 1+ 0+ 1+

+ 1+ 0+ 1+ 0+

+ ∗

1+ 1+ + +

! !

!!!

!!!

+

+

In+ tutti+ i+ tipi+ di+ circuiti+ analizzati+ precedentemente+ si+ può+ verificare+ un+ problema+ se+ il+ comando+ cambia+ proprio+ in+

corrispondenza+del+fronte+del+clock+perché,+in+questo+caso,+l’uscita+potrebbe+oscillare+per+lungo+tempo+senza+portarsi+

ad+ una+ valore+ preciso.+ Per+ evitare+ che+ questo+ accada+ e+ consentire+ al+ flip6flop+ di+ cambiare+ stato+ in+ modo+ stabile,+ i+

comandi+di+set+e+reset+devono+avere+una+durata+tale+da+garantire+la+loro+propagazione+lungo+tutta+la+struttura.+

+

+

+ Registri(

!

Il+registro+è+un+dispositivo+che+permette+il+trasferimento+di+segnali+di+ingresso+ +

!

alle+uscite+e+di+mantenerle+stabili+tra+due+transizioni+del+registro+stesso.+Se+è+ +

! !

!

attivato+ il+ comando+ di+ reset+ tutte+ le+ uscite+ vengono+ portate+ a+ 0+

!+ ∗ +

!

!

contemporaneamente.+ +

! +

!

!

Questo+ registro,+ poichè+ ingressi+ ed+ uscite+ sono+ paralleli,+ viene+ chiamato+ !

∗ +

!

registro,ParallelSIn,ParallelSOut+(PIPO).+ ! +

Un+ registro+ di+ questo+ tipo+ può+ servire+ come+ registro+ di+ sincronizzazione+ !

+

! !

!

oppure+può+essere+usato+per+sfruttare+uno+stesso+bus+dati+per+informazioni+ ∗ +

!

!

diverse.+ +

! +

!

!

Ci+ sono+ anche+ registri,+ detti+ ShiftSRegister,+ che+ permettono+ di+ “convertire”+ !

∗ +

!

un+segnale+seriale+in+parallelo+e+sono+chiamati+SerialSIn,ParallelSOut+(SIPO).+ !

+

+

+ !"#!$+ !"#"$+

Segnale++

seriale+ +

!"#!$+ +

+

+ +

!

+ +

! !

+ !

! !

24+ Progettazione+di+Dispositivi+Biomedici+Programmabili+6+Appunti+

Esistono+ anche+ registri+ un+ po’+ più+ complicati+ che+ consentono+ di+ +

! +

!

caricare+ il+ dato+ nel+ registro+ stesso+ sia+ in+ parallelo+ sia+ in+ forma+ ! !

seriale,+sempre+ovviamente+quando+il+clock+è+attivo.+ +

! +

!

!

Per+far+capire+al+registro+che+deve+caricare+il+dato+in+modo+parallelo+ !

deve+ essere+ attivo+ il+ segnale+ di+ (!")+ che+ è+

!"#"$$%$ − !"#$+ +

! +

!

! !

totalmente+asincrono+dal+segnale+di+clock.++

A+ volte+ in+ questi+ circuiti+ può+ essere+ utile+ avere+ tutte+ le+ uscite+ a+ + +

! !

! !

livello+logico+basso+(0)+e+dunque+è+presente+il+comando+di+reset.+

Una+ volta+ caricato+ il+ dato,+ questo+ sarà+ disponibile+ sia+ all’uscita+

parallela+sia+a+quella+seriale+ma+ritardato.+ Serial+Out+

Serial+In+

Questo+ tipo+ di+ registri+ può+ servire,+ quando+ si+ lavora+ con+

microcontrollori,+ad+aumentare+il+numero+di+ingressi+ed+uscite+del+

controllore+stesso.+

Un+registro+di+questo+tipo+permette+anche+di+“convertire”+un+dato+ !"#!$! !"! !"#"$!

parallelo+in+seriale+caricandolo+con+parallel6load+e+successivamente+

trasmettere+ad+ogni+clock+il+dato+in+modo+seriale.+Per+questo+motivo+è+definito+ParallelSIn,Serial,Out+(PISO).+

,

,

ESEMPIO:+ se+ si+ vogliono+ segnalare+ quattro+ condizioni+ diverse+ tramite+ led+ si+ possono+ collegare+ le+ quattro+ uscite+

parallele+ del+ registro+ a+ quattro+ led+ tramite+ quattro+ resistori+ di+ caduta.+ Se+ si+ vogliono+ accendere+ i+ led+ 0+ e+ 3+ saranno+

necessari+4+cicli+di+clock.+

Al+primo+ciclo+il+dato+(corrispondente+all’1+logico)+sarà+disponibile+all’uscita+! ,+al+secondo+ciclo+di+clock+il+dato+presente+

!

in+! +passa+in+! +e+il+dato+nuovo+(in+questo+caso+uno+0)+passa+in+! +e+così+per+altri+due+cicli+fino+a+quando,+al+quarto+

! ! !

ciclo+tutti+i+dati+saranno+nelle+porte+desiderate+e+conseguentemente+saranno+accesi+i+led+0+e+3.+

+

!

! +

!

!"#!$+ ! +

!

! +

!

!

Serial6In+

Segnale+ ++++1++++++++++++++++0++++++++++++++++0+++++++++++++++1+ !"#!$!

+

Durante+il+caricamento+del+segnale+il+primo+dato+(1+logico)+passa+attraverso+tutte+le+porte+per+cui+si+dovrebbero+vedere+

accesi,+seppur+per+tempo+molto+ridotto,+anche+i+led+intermedi;+per+ovviare+a+questo+problema+il+segnale+di+clock+deve+

essere+molto+veloce,+circa+frazioni+di+!",+il+che+significa+frequenze+dell’ordine+del+!"#.+Con+queste+tempistiche+i+led,+la+

cui+variazione+di+luminosità+si+nota+in+circa+20!!",+sembrano+spenti.+

+ Divisore(di(frequenza(

o

In+precedenza+è+già+stato+detto+che+è+possibile+sfruttare+i+flip6flop+JK+per+questo+tipo+di+circuito+però+una+loro+possibile+

alternativa,+consiste++nell’utilizzare+due+flip6flop+di+tipo+D+in+cui+l’uscita+!+del+primo+flip6flop+è+sfruttata+come+segnale+di+

clock+dal+secondo+blocco.+ !+ !+

!+

!"#!$+

+ !

La+frequenza+di+clock+è+dunque+divisa+per+2 +dove+!+è+il+numero+di+componenti+utilizzate.+

Progettazione+di+Dispositivi+Biomedici+Programmabili+6+Appunti+ 25+

Contatore(asincrono(

o

Lo+stesso+circuito+precedente+può+essere+considerato+in+modo+diverso+perché+le+uscite+negate+si+ripetono+ogni+quattro+

cicli+di+clock+formando+i+numeri+decimali+0,+1,+2,+3+originando+così+un+contatore+crescente+mentre,+se+considero+!,+avrò+

un+contatore+decrescente+3,+2,+1,+0.+ !

Questo+ fa+ intuire+ che+ è+ possibile+ facilmente+ realizzare+ contatori+ di+ modulo+ .+ Questi+ contatori+ possono+ servire+ per+

2

verificare+quante+volte+si+verifica+un+evento.+

+

+ Macchine(a(stati(finiti((FSM(=(Finite(State(Machines)(

o

Dato+che+noi+siamo+abituati+a+contare+in+modulo+10+può+essere+utile+avere+contatori+che+contano+come+noi+per+cui+se+

metto+in+cascata+4+flip6flop+posso+realizzare+contatori+di+16+eventi+(da+0+a+15).+Questi+flip6flop+hanno+gli+ingressi+clear+

collegati+tra+loro+mentre+l’uscita+!+di+un+flip6flop+è+collegata+all’ingresso+di+quello+successivo.+

Inizialmente+tutte+le+uscite+!+sono+a+0+grazie+ad+un+segnale+di+clear.+

+ + + +

! ! ! !

! ! ! !

Segnale+

!"#$%+

+

+

Al+nono+colpo+di+clock+dovrebbe+essere+codificato+il+numero+decimale+10+(sarebbe+11+ma+si+parte+da+0)+per+cui+a+questo+

punto+ si+ dovrebbe+ “resettare”+ il+ contatore.+ Per+ fare+ questo+ è+ necessario+ collegare+ le+ uscite+ ad+ una+ porta+ AND+ a+ 4+

ingressi+e+codificarla+in+modo+che+al+numero+decimale+10+resettino+il+contatore.+Questo+significa+che+gli+ingressi+della+

porta+AND+devono+essere+tutti+contemporaneamente+allo+stato+logico+alto+per+portare+l’uscita+ad+un+conseguente+stato+

logico+ alto+ e+ resettare+ il+ circuito.+ Il+ numero+ decimale+ 10+ è+ codificato+ dal+ numero+ binario+ 0101+ in+ cui+ il+ bit+ meno+

significativo+è+a+destra+e+quello+più+significativo+a+sinistra,+di+conseguenza,+perché+la+porta+AND+abbia+in+ingresso+tutti+

stati+logici+alti,+è+necessario+invertire+i+segnali+che+provengono+dall’uscita+! +e+! .++

! !

+ + + +

! ! ! !

! ! ! ! Serial6Out+

Serial6In+

+

È+facilmente+intuibile+che+il+reset+del+contatore+non+sarà+istantaneo+ma+impiegherà+pochissimi+!".+

Il+contatore+è+l’esempio+più+facile+di+macchina+a+stati+finiti+in+cui+le+transizioni+sono+finite+e+cicliche+per+cui+è+possibile+

prevedere+lo+stato+futuro+del+sistema.+

È+possibile,+quindi,+associare+ad+ogni+combinazione+delle+uscite+uno+stato+e+realizzare+diagrammi+che+li+rappresentano+

con+la+conseguente+tavola+della+verità.+

26+ Progettazione+di+Dispositivi+Biomedici+Programmabili+6+Appunti+

Elaborazione(di(un(segnale(

!

Una+ catena+ completa+ di+ elaborazione+ del+ segnale+ può+ essere+ composta+ da+ una+ prima+ parte+ analogica+ una+ seconda+

digitate+ed+un’ultima+nuovamente+analogica.+

Il+ limitatore+ serve+ per+ ridurre+ la+ dinamica+ del+ segnale,+ l’amplificatore,+ ovviamente,+ amplifica+ il+ segnale,+ il+ filtro+ è+ un+

passabasso+ anti+ alising+ che+ può+ essere+ solamente+ analogico,+ dopo+ ci+ sono+ un+ campionatore+ ed+ un+ convertitore+

analogico6digitale+così+da+permettere+allo+stadio+successivo+l’elaborazione+digitale+(in+questa+fase+sono+presenti+anche+

filtri+che+in+analogico+sarebbero+molto+complicati).+

Il+filtro+di+ricostruzione+successivo+al+convertitore+digitale6analogico+è+un+altro+passabasso+utile+ad+estrarre+lo+spettro+

principale+del+segnale.+

Il+ sistema+ di+ elaborazione+ digitale+ deve+ essere+ tale+ da+ non+ consentire+ accumulo+ interno+ per+ cui,+ ad+ ogni+ dato+

d’ingresso,+deve+corrispondere+un+dato+d’uscita;+questo+significa+che+il+sistema+di+elaborazione+deve+produrre+un+dato+

!

valido+in+uscita+ogni+! ++dove+! +è+il+throughput,inteso+come+la+quantità+di+dati+forniti+al+secondo.+

=

! !

!

!

Nell’elaborazione+sarà+presente+un+ritardo+di+elaborazione+! +proprio+del+sistema+che+però+non+ha+nessun+legame+con+

!"

.,

!

!

Il+blocco+di+elaborazione+digitale+può+lavorare+in+alcuni+modi+differenti:+

puramente+combinatorio+a+patto+di+fornire+un+dato+in+uscita+ogni+! ,+questo+è+possibile+solo+se+l’elaborazione+

• !

non+ è+ complessa;+ in+ questa+ modalità+ il+ tempo+ di+ ritardo+ + dipende+ solo+ dal+ ritardo+ + presente+ nei+ circuiti+

! !

!" !

logici+del+modulo+di+elaborazione.+In+questo+caso+l’elaborazione,è,completamente,asincrona;+

+

!

! + + + +

! ! ! !

+

! !" !" !" !"

!" ! ! ! !

Elaborazione+

Combinatoria+ +

!

!"

(ritardo+! )+ +

! + + + +

! ! ! !

! !"# !"# !"# !"# !"#

! ! ! !

+

dato+ che+ l’elaborazione+ dei+ dati+ deve+ svolgersi+ ogni+ ,+ i+ blocchi+ di+ elaborazione+ digitale+ lavorano+ in+ modo+

!

• !

sincrono+col+segnale+di+clock,+con+frequenza+! .+

= !

! !"

In+questo+caso+avremo+un’+elaborazione,sincrona.++

Questa+modalità+sfrutta+i+registri+che+leggono+il+dato+in+ingresso+! +in+corrispondenza+di+un+ciclo+di+clock+e+lo+

!"

mantengono+stabile+all’uscita+! +fino+al+ciclo+successivo+di+clock.++

! +

!

!

+ + + +

! ! ! !

!" !" !" !"

! ! !

Latch+ + + +

! ! !

+

! !"# !"# !"#

!"# ! ! !

!"#!$+ +

Nella+catena+sono+inseriti+registri+con+funzione+di+sincronizzazione+perché+il+tempo+di+elaborazione+! +dipende+

!"

dal+periodo+! +del+segnale+di+sincronizzazione+per+cui+perché+sia+! +,+! +deve+essere+maggiore+di+! .+

= !

! !" ! ! !

+

!

!

Elaborazione+Sincrona+ + +

! !

+

! +

!

!! !!

!! !!

! !

! !

Elaborazione

+

! +

!

R+ R+

!" !"#

combinatoria+ +

! +

! + +

! !

!"

(ritardo+! )+ !! !! !!

! ! ! !

+

! = !

! !" Progettazione+di+Dispositivi+Biomedici+Programmabili+6+Appunti+ 27+

suddividendo+l’elaborazione+in+più+fasi+in+cascata+utilizzando+elementi+di+memoria+intermedi.+In+questo+caso+si+

• può+aumentare+la+complessità+dell’elaborazione+utilizzando+più+moduli+in+cascata.+Questa+è+detta+elaborazione,

pipeline.+

Anche+in+questo+caso+sono+presenti+elementi+di+risincronizzazione.+

In+questa+modalità+il+tempo+di+elaborazione+! +è+un+multiplo+di+! +per+cui+! +con+! +

= !! > !

!" ! !" ! ! !

+

Uno+dei+fattori+che,+alle+volte,+favorisce+l’elaborazione+pipeline+è+la+necessità+di+ottenere+tempi+di+propagazione+

+ inferiori+ all’interno+ dei+ sistemi+ di+ elaborazione+ per+ poter+ lavorare+ a+ + inferiori+ e+ conseguentemente+ a+

! !

! !

frequenze+ + maggiori.+ Così+ facendo+ posso+ aumentare+ il+ throughput+ che+ è+ il+ modo+ più+ efficace+ per+ avere+

!

!

sistemi+più+veloci.+ +

Purtroppo+ queste+ strutture+ sono+ rigide+ e+ quello+ che+ è+ possibile+ fare+ dipende+ dai+ blocchi+ perché,+ bisogna+ ricordare,+ i+

moduli+sono+costituiti+da+componenti+logiche+che+permettono+solo+determinate+funzioni.+Un+altro+problema+introdotto+

da+questo+tipo+di+porte+è,+inevitabilmente+il+ritardo.+

+ Elaborazione(a(programma(

o

Per+ passare+ ad+ una+ struttura+ meno+ rigida+ è+ possibile+ sfruttare+ un’unità, di, elaborazione, logico, aritmetica+ (ALU)+ che+

permette+ di+ eseguire+ diverse+ funzioni+ sfruttando+ uno+ stesso+ hardware+ perché+ il+ tipo+ di+ operazioni+ da+ eseguire+ è+

comandato+dalle+istruzioni+e+la+sequenza+delle+istruzioni+forma+il+programma.+

VANTAGGIO:+la+struttura+ha+meno+hardware.++

SVANTAGGIO:+nonostante+tutto+i+ritardi+rimangono.+

+

+ Elaborazione+a+programma+

+

+

+

+ ! !

ALU+ R+

+ !"#

+ R+

! !

!"

+

+

+ CK+ CK+

Programma+

+ Istruzione+

+

+

+

28+ Progettazione+di+Dispositivi+Biomedici+Programmabili+6+Appunti+

Nel+ caso+ in+ cui+ la+ “funzione”+ digitale+ da+ eseguire+ sui+ dati+ sia+ particolarmente+ complessa+ può+ risultare+ conveniente+

utilizzare+come+blocco+digitale+un+microprocessore+o+un+processore+per+l’elaborazione+digitale+dei+segnali+(Digital+Signal+

Processor+ 6+ DSP).+ L’utilizzo+ di+ un+ DSP,+ però,+ può+ introdurre+ una+ latenza+ più+ elevata+ rispetto+ all’utilizzo+ di+ hardware+

dedicati+ad+eventuali+scopi. DSP+

! ! ! !

!" !"#

Istruzioni+ CLOCK+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+ Progettazione+di+Dispositivi+Biomedici+Programmabili+6+Appunti+ 29+

M ICROCONTROLLORE!

Introduzione(

!

Negli+ ultimi+ decenni+ si+ è+ verificata+ una+

crescita+ notevole+ di+ dispositivi+ che+

possiedono+ al+ loro+ interno+ o+ un+

microprocessore+ o+ un+ microcontrollore+

tanto+ che+ è+ stata+ formulata+ una+ legge+

empirica+detta+legge,di,Moore,+secondo+cui+

ogni+ 12/18+ mesi+ raddoppia+ il+ numero+ di+

dispositivi+ integrabili.+ Questo+ significa+ che,+

per+ esempio,+ a+ parità+ di+ dimensioni+ dopo+

12/18+mesi+è+possibile+realizzare+i+circuiti+su+

piastre+di+silicio+più+grandi,+il+che+non+è+così+

scontato+ perché+ lavorare+ il+ silicio+ per+ i+

circuiti+prevede+tecnologie+avanzate.+

Contestualmente,+ maggiore+ è+ il+ numero+ di+

pezzi+ minori+ sono+ i+ costi+ per+ bit+ dei+ circuiti+

integrati.+

È+possibile+individuare,+nel+tempo,+diverse+densità+di+integrazione:+

SSI+(Small'Scale'Integration)+→+dagli+anni+’65+al+’70+in+cui+erano+presenti+da+2+a+200+transistori;+

• MSI+(Medium'Scale'Integration)+→+dal+’70+al+’75+in+cui+erano+presenti+da+200+a+2000+transistori;+

• LSI+(Large'Scale'Integration)+→+dal+’75+al+’85+in+cui+erano+presenti+da+2000+a+20000+transistori;+

• VLSI+(Very'Large'Scale'Integration)+→+dal+’85+ai+primi+anni+’90+in+cui+si+raggiungeva+il+milione+di+transistori;+

• ULSI+(Ultra'Large'Scale'Integration)+→+dagli+anni+’90+ad+oggi,+con+oltre+un+milione+di+transistori.+

Progettare+ un+ circuito+ integrato+ negli+ anni+ ’70+ che+ contenesse+ 1506200+ transistori+ era+ difficile+ perché+ esistevano+

pochissimi+supporti+alla+progettazione,+tanto+che+erano+progettati+solo+presso+le+poche+silicon+foundry.+Dagli+anni+’80+

iniziarono+ ad+ essere+ sviluppati+ i+ CAD+ che+ permettevano+ di+ progettare+ in+ modo+ autonomo+ circuiti+ integrati+ per+

applicazioni+ specifiche,+ detti+ ASIC+ (Application' Specific' Integrated' Circuit).+ I+ CAD+ erano+ paradossalmente+ sviluppati+

dalle+ditte+che+ne+avevano+bisogno+e,+solo+successivamente,+il+loro+sviluppo+si+spostò+nelle+aziende+specializzate+e+nelle+

università.+

Il+ loro+ sviluppo+ permise+ vantaggi+ notevoli+ nella+ realizzazione+ di+ componenti+ custom+ permettendone+ uno+ sviluppo+

ottimale+ad+alte+prestazioni,+una+maggior+scelta+tra+diverse+tecnologie+ottimizzando+così+anche+il+costo.+

Alle+ volte+ la+ scrittura+ del+ software+ può+ essere+ anche+ tre+ o+ quattro+ volte+ più+ complessa+ dello+ sviluppo+ hardware;+ per+

questo+motivo+è+conveniente+sviluppare+software+di+buona+portabilità.+

+

+

+ Metodiche(di(progetto(

!

La+realizzazione+su+silicio+di+circuiti+integrati+può+seguire+tre+diversi+metodi+di+progettazione:+

full+custom,+

• standard+cell,+

• gate+array.+

Le+differenze+sono+legate+solamente+alla+base+di+partenza,+alle+prestazioni+richieste,+ai+costi+e+tempi+di+progettazione+(in+

base+anche+alla+disponibilità+di+CAD)+ed+ai+costi+e+tempi+di+produzione.+

+ Full(custom(

o

In+ questo+ metodo+ di+ progettazione+ non+ si+ ha+ alcuna+ base+ di+ partenza+ ma+ solamente+ vincoli+ tecnologici+ dettati+ dalle+

silicon+ foundry.+ Vengono+ progettate+ tutte+ le+ componenti+ necessarie+ per+ realizzare+ le+ funzioni+ del+ circuito+ come+

transistori,+ resistenze,+ porte+ logiche+ ed+ elementi+ di+ memoria.+ Una+ volta+ progettati+ i+ blocchi+ bisogna+ progettare+ le+

30+ Progettazione+di+Dispositivi+Biomedici+Programmabili+6+Appunti+

interconnessioni+tra+i+blocchi+base+così+da+determinare+la+funzione+(sommatore,+processore,+…)+senza+dimenticare+tutti+

i+circuiti+d’interfaccia+I/O+legati+alle+caratteristiche+elettriche+richieste.+

Questo+tipo+di+progettazione+richiede+necessariamente+tutti+i+passi+di+progetto+e+fabbricazione.+

VANTAGGI:+massima+flessibilità+di+progetto+e+massima+ottimizzazione.+

SVANTAGGI:+elevato+tempo+di+sviluppo,+complessità+di+verifica+ed+alti+costi.+

È+ consigliato+ utilizzare+ una+ metodica+ full+ custom+ solo+ se+ sono+ prodotti+ grandi+ volumi+ così+ da+ coprire+ i+ costi+ e+ se+ le+

prestazioni+richieste+non+sono+ottenibili+attraverso+altri+metodi.+

+ Standard(cell(

o

Con+questa+tipologia+di+progetto+l’unica+base+è+costituita+da+libreria+di+elementi+logici+di+base+quali+porte+logiche,+flip6

flop+il+cui+funzionamento+è+garantito+dalla+sillicon+foundry;+si+progetta+in+seguito+la+struttura+complessiva+definendo+i+

vari+moduli+e+le+rispettive+interconnessioni+così+da+determinare+la+funzione+logica+(sommatore,+registro,+…).+Una+volta+

stabilita+la+funzione+sono+assegnati+i+segnali+di+I/O+ed+eventuali+sequenze+di+progetto+gerarchiche+(moduli+semplici+e+

moduli+complessi).+

Questo+ flusso+ di+ progetto+ prevede+ solo+ alcuni+ passi+ in+ fase+ di+ progetto+ (le+ porte+ logiche+ di+ base+ sono+ già+ progettate+

dalla+silicon+foundry)+ma+tutti+i+passi+di+fabbricazione.+

VANTAGGI:+estrema+flessibilità+di+progetto+ed+elevato+grado+di+ottimizzazione.+

SVANTAGGI:+medio+tempo+di+sviluppo,+media+complessità+di+verifica+e+di+costi.+

Come+ per+ la+ metodica+ full+ custom,+ anche+ questo+ processo+ è+ da+ preferirsi+ se+ i+ grandi+ volumi+ coprono+ i+ costi+ di+

produzione+e+se+le+prestazioni+desiderate+si+possono+ottenere+attraverso+l’utilizzo+delle+librerie+a+disposizione.+

+ Gate(array(

o

In+questo+flusso+di+progetto+la+base+è+costituita+da+un+circuito+integrato+(anche+solo+parzialmente+lavorato)+sul+quale+il+

costruttore+ha+già+realizzato+o+predisposto+le+strutture+logiche+elementari,+matrici+di+interconnessioni+e+le+celle+di+I/O+

generiche.+Successivamente+sono+definite+le+funzioni+logiche+fissando+la+configurazione+dei+blocchi+logici+elementari+e+

configurando+le+connessioni+tra+i+blocchi+logici+e+si+assegnano+i+segnali+alle+celle+di+I/O.+

Questo+metodo+prevede+solo+alcuni+passi+di+progetto+ed+alcuni+passi+di+fabbricazione.+

VANTAGGI:+basso+tempo+di+sviluppo+e+ridotta+complessità+di+verifica+che+portano+a+bassi+costi.+

SVANTAGGI:+medio6bassa+flessibilità+nel+progetto,+medio+grado+di+ottimizzazione.+

A+differenza+delle+metodiche+precedenti+questa+scelta+permette+volumi+di+produzione+non+grandi+però+con+prestazioni+

non+elevate.+Nonostante+tutto+il+tempo+di+sviluppo+del+prototipo+è+notevole.++

+

+ Flusso(di(progetto(

!

Nel+flusso+di+progettazione+di+un+circuito+integrato+bisogna+seguire+alcuni+step.+

1. Definire+le+specifiche+tramite+una+descrizione+qualitativa+delle+funzioni+e+delle+prestazioni+richieste.+

2. Descrivere+ il+ progetto+ tramite+ un+ linguaggio+ software+ di+ alto+ livello+ (C+ o+ simili)+ che+ permetta+ simulazioni+

funzionali+e+permetta+di+definire+una+schema+a+blocchi.+Questo+passaggio+è+prevalentemente+funzionale,+non+

vincola+ la+ struttura+ e+ risponde+ alla+ domande+ “cosa+ fa?”.+ Questi+ passi+ sono+ indipendenti+ dalle+ metodiche+ di+

progetto+e+dalla+tecnologia+di+fabbricazione.++

3. Descrivere+il+progetto+mediante+il+linguaggio+di+descrizione+dell’hardware+(HDL):+in+questo+modo+si+permette+di+

specificare+la+struttura+di+ogni+blocco+tenendo+conto+di+come+lo+si+vuole+realizzare+dal+punto+di+vista+hardware,+

si+risponde+alla+domanda+“come+lo+fa?”+e+si+inizia+a+tener+conto+della+tecnologia+di+realizzazione.+Con+questo+

passo+è+possibile+effettuare+simulazioni+funzionali+dettagliate+così+da+avere+una+valutazione+preliminare+delle+

prestazioni.+

4. Sintesi+logica:+con+questo+passaggio+l’architettura+viene+tradotta+in+combinazioni+di+porte+logiche+ricavate+da+

una+library+(può+essere+una+base+con+vincoli+a+priori+per+standard+cell+o+libera+nel+caso+di+full+custom+o+gate+

array);+gli+strumenti+ CAD+consentono+di+pilotare+la+sintesi+per+ottenere+le+prestazioni+richieste,+ed+effettuare+

simulazioni+con+parametri+di+timing+(ritardi+degli+elementi+logici,+delle+interconnessioni)+approssimati.+

In+questa+fase+si+effettua+una+descrizione+formale+di+come+ottenere+la+funzione+desiderata.+

5. Physical+ design:+ in+ questa+ fase+ il+ progetto+ viene+ virtualmente+ realizzato+ sul+ silicio+ mediante+ la+ fase+ di+

placement,+in+cui+ad+ogni+porta+logica+è+riservata+una+zona+precisa+del+circuito+finale,+e+la+fase+di+routing+in+cui+

sono+realizzate+le+interconnessioni.+

Progettazione+di+Dispositivi+Biomedici+Programmabili+6+Appunti+ 31+

6. Simulazione+ post6layout+ con+ parametri+ reali:+ in+ questa+ fase+ si+ effettua+ una+ verifica+ del+ progetto+ fisico,+

l’estrazione+dei+parametri+(capacità+parassite);+successivamente+si+effettua+un+confronto+tra+le+specifiche+e+le+

prestazioni+del+dispositivo+reale.+

7. Realizzazione+su+silicio:+il+circuito+passa+alla+silicon+foundry+per+la+ralizzazione.+

8. Collaudo+su+wafer:+verifica+di+alcuni+parametri+elettrici+ed+il+collaudo+parziale+dei+singoli+circuiti.+

9. Incapsulamento:+i+circuiti+che+superano+i+test+sono+inseriti+nel+contenitore.+

10. Collaudo+del+componente+incapsulato:+sono+effettuati+test+parziali+su+tutti+i+componenti,+misurazioni+complete+

su+alcuni+campioni+per+ogni+lotto+ed,+infine,+eventuali+selezioni.+

+ Scelta(di(componenti(

o

Così+come+è+possibile+effettuare+una+scelta+sulla+modalità+di+progetto,+è+anche+possibile+scegliere+il+tipo+di+componenti+

da+utilizzare.+

Componenti+ ASIC+ impongono+ alti+ costi+ iniziali+ con+ tempi+ lunghi+ e+ attrezzature+ specifiche,+ bassi+ costi+ di+

• produzione+e+sono+adatti+alla+produzione+di+grandi+quantitativi.+

Componenti+discreti:+questa+tipologia+oggi+è+quasi+abbandonata.+

• Componenti+ programmabili+ hanno+ un+ basso+ costo+ di+ progetto,+ tempi+ brevi+ e+ componenti+ standard,+ un+

• maggiore+ costo+ unitario+ e+ sono+ adatti+ per+ piccole/medie+

produzioni+e+per+i+prototipi.+Questa+tipologia+di+componenti+è+

disponibile+ dagli+ anni+ ’80+ ed+ è+ composta+ da+ matrici+ di+ porte+

logiche+ generiche+ con+ collegamenti+ interni+ non+ definiti+ e+

piedini+di+I/O+generici+e+programmabili.+All’utente+è+affidato+il+

compito+di+definire+le+funzioni+logiche,+le+interconnessioni+e+le+

interfacce+I/O.+Nella+sostanza+è+un+hardware+con+la+flessibilità+

del+software.+ Connessioni+

D+ C+ B+ A+

+

+

+

+ Struttura(di(un(microprocessore(

!

Un+microprocessore+è+un+dispositivo+elettronico+che+non+contiene+memoria+ma+che+comunica+regolarmente+con+essa+

tramite+un+bus+indirizzi+ed+un+bus+dati;+il+programma+gestisce+il+microprocessore+mediante+un+bus+di+controllo.+

BUS+ BUS+

Controllo+ Indirizzi+

CPU+ MEMORIA+ BUS+Dati+

+

+

+

+

+

+

+

+

+

32+ Progettazione+di+Dispositivi+Biomedici+Programmabili+6+Appunti+

Microcontrollore(ATMEL(

!

Il+ microcontrollore+ che+ utilizzeremo+ è+ basato+ su+ un+ processore+ AVR.+ Il+ microcontrollore+ è+ un’evoluzione+ del+

microprocessore+perché+integra+CPU,+memoria+ed+un+certo+numero+di+periferiche.+

Tutta+la+famiglia+AVR+è+funzionalmente+identica.+

La+ memoria+ Program, Flash+ contiene+ il+ programma+ da+ eseguire+ ed+ è+ una+ memoria+ non+ volatile+ mentre+ il+ banco+ di+

memoria+di+RAM+statica,+separato+dalla+program+flash,+è+volatile+ovvero+perde+il+contenuto+quando+non+è+alimentato.+

Se+ si+ vogliono+ conservare+ informazioni+ che+ però+ non+ fanno+ parte+ del+ programma+ si+ sfrutta+ la+ EEPROM+ (Electrically$

Erasable$Programmable$Read8Only$Memory).+È+un+tipo+di+memoria+non+volatile,+usata+nei+computer+e+altri+dispositivi+

elettronici+per+memorizzare+piccole+quantità+di+dati+che+devono+essere+mantenuti+quando+viene+tolta+l'alimentazione.+

Per+scrivere+i+dati+su+questo+tipo+di+memoria,+però,+si+impiega+un+po’+di+tempo+10!!"+che+non+è+un+tempo+da+poco.+

Il+ tipo+ di+ microcontrollore+ che+ utilizzeremo+ sfrutta+ l’architettura, Harvard,+ è+ un+ tipo+ di+ architettura+ hardware+ per+

computer+digitali+in+cui+vi+è+separazione+tra+la+memoria+contenente+i+dati+e+quella+contenente+le+istruzioni.+

+

+ Progettazione(di(un(programma(per(microcontrollore(

!

Un+ buon+ programma+ non+ è+ solo+ quello+ che+ funziona+ ma+ anche+ quello+ facilmente+ modificabile,+ manutenibile+ e+

debuggabile.+Un+programma+si+progetta+prima+e+solitamente+questa+fase+è+utile+per+eliminare+i+problemi+logici+anche+se+

potranno+essere+commessi+errori+di+scrittura.+

Nel+nostro+caso+utilizzeremo+le+regole+della+programmazione+strutturata+in+cui+sono+presenti+tre+strutture+fondamentali+

dotate+di+un+solo+ingresso+ed+una+sola+uscita.+

Sequenza(

o F1+

Questa+ struttura,+ per+ esempio,+ è+ costituita+ da+ una+ cascata+ di+ funzioni+ più+ o+ meno+ elementari+ ed+ è+

realizzabile+senza+problemi+nel+programma+AVR+Studio.+ F2+

+

+

+

+ Fn+

+

+ Selezione(

o

La+selezione+permette+due+possibilità+dipendenti+dalla+specifica+condizione+imposta.+

Sfortunatamente,+ non+ può+ essere+ realizzata+ nel+ microcontrollore+ e+ dunque+ + la+ struttura+ deve+ essere+ modificata,+ con+

una+cascata+di+due+selezioni,+senza+che+sia+modificata+la+globalità+della+struttura+stessa.+ V+

Condizione+

V+ F+ F1+

Condizione+

F1+ F2+ F+ Condizione+

F2+

+ Progettazione+di+Dispositivi+Biomedici+Programmabili+6+Appunti+ 33+

Ciclo((

o

Il+ciclo+è+la+terza+struttura+e+può+essere+rappresentata+in+due+diversi+modi+a+seconda+che+si+voglia,+o+meno,+eseguire+

almeno+una+volta+il+ciclo.+ F+ F1+

Condizione+

V+ F2+

F1+ Fn+

F2+ V+ F+

Fn+ Condizione+

+

+

+

Bisogna+fare+attenzione+perché+il+ciclo+si+presta+bene+per+una+situazione+in+cui+il+programma+ V+

funziona+ ugualmente+ ma+ è+ difficile+ da+ debuggare+ perché+ le+ uscite+ sono+ due,+ per+ questo+ Condizione+

motivo+è+fortemente+sconsigliato.+ F+

+ Fn+

+

+

+ V+

Condizione+

+ F+

+

+ Fn+

+

+

Nel+software+AVR+Studio+con → →

Help Assembler Help Assembler Directives+è+possibile+vedere+le+

spiegazioni+delle+direttive.+

Le+⋅ !"#+servono+per+definire+un+nome+memonico+al+registro.+Il+microcontrollore,+se+alimentato+o+resettato,+inizia+a+

prelevare+ istruzioni+ dalla+ cella+ 0+ della+ memoria+ flash+ o,+ nel+ caso,+ dell’handler+ di+ reset+ se+ prima+ dell’esecuzione+ del+

programma+devono+essere+fatte+operazioni.+

Nei+ programmi+ per+ i+ microcontrollori+ possono+ essere+ presenti+ anche+ subroutine:+ sono+ una+ sorta+ di+ sottoprogramma+

che+ può+ essere+ richiamato+ all’interno+ del+ programma+ principale+ o+ di+ MAIN+

un’altra+ subroutine.+ Alla+ fine+ di+ ogni+ subroutine+ è+ presente+ il+ comando+

“ret”+che+riporta+il+programma+al+punto+in+cui+l’aveva+lasciato.+ Viene+settato+lo+

Set+Stack+

+ Stack+Pointer+

Pointer+

Nel+caso+del+LED+acceso+e+spento+ripetutamente+dal+microcontrollore+che+ Vengono+impostati+i+

abbiamo+visto,+il+diagramma+a+blocchi+che+lo+rappresenta+è+quello+a+fianco.+ PIN+0+

PortC+ PIN+che+saranno+usati+

+

L’istruzione+ “brne”+ fa+ compiere+ un+ salto+ alla+ label+ loop1+ se+ n1+ non+ è+ Spegne+il+LED+

Out+0+

uguale+a+0+mentre+con+dec1+è+decrementato+n1+di+un+passo.+

+ Delay+

+

+

+ Accende+il+LED+

Out+1+

+

+ Delay+

34+ Progettazione+di+Dispositivi+Biomedici+Programmabili+6+Appunti+

La+subroutine+delay+è+rappresentata+sotto,+tramite+il+diagramma+di+flusso.+

+

MAIN+ +

In+questo+caso+sono+presenti+tre+contatori+(n1,+n2,+n3).+Solamente+quando+il+primo+finisce+inizia+a+

n3=9+ decrementare+il+secondo+però+ad+ogni+singolo+decremento+del+secondo+contatore+seguiranno+tutti+i+

nuovi+decrementi+del+primo+e+così+via.+

+

n2=255+ +

+

n1=255+ +

+

dec+n1+ +

+

F+ +

n1=0+ +

V+ +

dec+n2+ +

+

F+ n2=0+ +

V+ +

+

dec+n3+ +

+

F+ n3=0+ +

V+ +

+

+

+

Un+interrupt+è+un+evento+asincrono+rispetto+al+programma+che+avviene+o+all’interno+o+all’esterno+del+microcontrollore+

e,+in+questo+caso,+si+vuole+che+il+microcontrollore+stesso+esegua+prima+la+risposta+all’interrupt+e+poi+torni+al+programma.+

+

In+generale+un+microcontrollore+è+tanto+più+potente+quanto+maggiore+è+il+numero+di+interrupt+gestiti.+

+ Timer/Counter(

!

Il+ microcontrollore+ che+ utilizziamo+ (ATmega8)+ ha+ tre+ timer/counter+ con+ funzioni+ simili+ ed+ alcune+ specifiche;+ il+

!

timer/counter+0+ed+il+timer/counter+2+sono+ad+8+bit+di+conseguenza+possono+contare+256+eventi+(2 = 256)+mentre+il+

timer/counter+1+è+a+16+bit+e+conta+65536+eventi.+

Il+timer/counter+0+è+a+canale+singolo+e+può+funzionare+sia+come+generatore+di+frequenze+sia+come+contatore+di+eventi.+

Ha+la+possibilità+di+utilizzare+in+ingresso+un+prescaler+a+10+bit+che+permette+di+dividere+la+frequenza+del+clock+fino+a+1024+

volte.+

Il+funzionamento+del+contatore+si+basa+su+registri+TCNTn+che+adibiti+a+tenere+il+conteggio:+sono+registri+ad+8+bit+a+solo+

incremento+unitario+e+quando+passa+da+255+a+0+si+dice+vada+in+overflow.+

La+logica+di+controllo+è+programmata+dal+TCCRn+(Timer/Counter'Control'Register)+e+genera+un+segnale+ogni+volta+che+il+

timer/counter+va+in+overflow.+

Come+ quasi+ tutti+ i+ pin+ del+ microcontrollore+ anche+ quello+ del+ timer/counter+ può+ essere+ programmato+ perché+ conti+

eventi+esterni+mediante+l’apposito+pin+Tn.+

L’edge,detector+permette+di+sincronizzare+gli+eventi+provenienti+dall’esterno+con+quelli+interni+affinché+tutto+funzioni+

col+clock+della+macchina.+

+

+

+

+

+

+

+ Progettazione+di+Dispositivi+Biomedici+Programmabili+6+Appunti+ 35+

+

+

+

Per+la+descrizione+del+registro+del+contatore+solo+i+primi+3+bit+possono+essere+scritti+o+letti+mentre+gli+altri+solo+letti.+

Per+abilitare+il+contatore+con+un+eventuale+prescaler+si+sfrutta+una+specifica+tabella+fornita+dal+costruttore.+

+

Se+si+volessero+avere+interrupt+con+una+frequenza+maggiore+di+256+eventi+basterebbe+scrivere+all’interno+del+registro+un+

valore+di+offset.+Il+TCNT +è+ad+8+bit,+come+detto+in+precedenza+ed+è+possibile+scrivere+il+valore+di+partenza+del+conto.+

0

+ +

+

36+ Progettazione+di+Dispositivi+Biomedici+Programmabili+6+Appunti+

Il+ TIMSK+ è+ un+ registro+ utilizzato+ da+ tutti+ i+ contatori.+ Per+ abilitare+ la+ gestione+ generale+ degli+ interrupt+ in+ fase+ di+

programmazione+ è+ necessario+ utilizzare+ la+ funzione+ “sei”+ (Set' Enable' Interrupt)+ e+ per+ disabilitarla+ “cli”+ (Clear'

Interrupt).+

+ +

+

+

Il+TIFR+è+un+registro+comune+ai+tre+contatori+in+cui+il+primo+bit+è+portato+ad+1+se+avviene+un+overflow+quindi+è+possibile+

sfruttare+il+bit+per+vedere+quando+si+verifica+un+overflow+senza+dover+abilitare+la+funzione+di+interrupt.+

+ +

Progettazione+di+Dispositivi+Biomedici+Programmabili+6+Appunti+ 37+

L ABORATORI !

Prof.+Marco+Knaflitz+ + e6mail:+marco.knaflitz@polito.it+

+ Legenda'dei'cavi'

!

NERO+ +cavo+di+terra+

ROSSO+ +cavo+di+alimentazione+

GIALLO+ +cavo+di+segnale+

VERDE+ +misurazione+segnale+in+ingresso+

VIOLA+ +misurazione+segnale+in+uscita+

BLU+ +eventuali+collegamenti+a+ponte+

+

+ Generatore'di'segnale'

!

Il+generatore+di+segnale+può+essere+rappresentato+col+suo+equivalente+di+

Thevenin+in+cui+la+resistenza+interna+è+di+50! +

+

+

!

!"# +

+

+

+

+

! !+

! +

+

+

+

+

La+tensione+che+impostiamo+manualmente+e+che+vogliamo+non+è+V +ma+V.+

!

+

+ Oscilloscopio'

!

Due+caratteristiche+importanti+dell’oscilloscopio+sono:+

Trigger& + ha+ la+ funzione+ di+ sincronizzare+ la+ partenza+ della++

• ++++++++++++++++++scansione+ orizzontale+ con+ un+ preciso+ livello+ di++

++++++++++++++++++soglia+ del+ segnale+ da+ analizzare;+ la++

++++++++++++++++++sincronizzazione+ permette+ la+ visualizzazione++

++++++++++++++++++stabile+sullo+schermo+del+segnale+in+analisi;&

Accoppiamento& in& alternata& AC& + condizione+ in+ cui+ viene++

• ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++bloccata+ la+ componente++

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++continua+ del+ segnale++

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++elettrico;&

Accoppiamento& in& continua& DC& + condizione+ in+ cui+ viene+ trasferita+ anche+ la+ componente+ continua+ del+++++

• +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++segnale+elettrico.&

+

+

+

+

+

+

+

+ Progettazione+di+Dispositivi+Biomedici+Programmabili+6+Laboratori+ 39+

Componente'74LS00'

! NAND&

+

!

! !+

+

!

! &

INPUT& OUTPUT&

& &

! ! !&

! !

0& 0+ 1+

0& 1+ 1+

1& 0+ 1+

1& 1+ 0+

È+un+composto+da+quattro+porte+NAND+e+al+piedino+7+deve+essere+collegato+i+riferimento+mentre+al+14+la+tensione+di+

alimentazione.+ +

40+ Progettazione+di+Dispositivi+Biomedici+Programmabili+6+Laboratori+

Realizzazione'di'un'Flip=Flop'ad'anello'di'NAND'

!

Per+costruire+un+flip6flop+set6reset+ad+anello+di+NAND+sfruttiamo+il+componente+74LS00+ed+in+particolare+solo+due+porte+

NAND+interne+al+componente.+

Dal+punto+di+vista+circuitale+ciò+che+vogliamo+realizzare+è+composto+da+2+porte+NAND+e+2+resistori+di+pull6up+da+12!kΩ++

ed+è+rappresentato+dalla+figura+sottostante.+

+

!

!" 9+

+

+

!

!!

!"# 8+

+

!"#+ !+

10+

+

+

!

!!

!"#"$ ∗ +

!

4+

+

!"#"$+ 6+

+

5+

+

+

Considerando+la+realizzazione+sulla+breadboard+il+nostro+circuito+sarà+simile+

a+quello+a+fianco.+

+

+

Quando+ alimentiamo+ il+ flip6flop+ non+ è+ possibile+ conoscere+ a+ priori+ in+ che+

condizione+ si+ troveranno+ le+ due+ uscite+ perché+ dipende+ dalla+ porte+ e+ dal+ 74LS00+

transitorio+ che+ si+ innesca+ all’accensione:+ se+ alimentiamo+ diverse+ volte,+ le+

uscite+saranno+in+diverse+condizioni.++

Una+ cosa+ certa+ è+ che+ una+ volta+ che+ partiamo+ in+ una+ delle+ due+

configurazioni,+deve+essere+mantenuta+fin+quando+non+è+dato+un+impulso+di+

set+o+reset:+se+parte+con+Q = !1+e+diamo+SET! = !1+non+cambia+niente.+Per+

farlo+commutare+dobbiamo+dare+un+impulso+di+RESET.++

Per+fornire+questi+impulsi+è+sufficiente+collegare+un+cavetto+a+massa+e+farlo+toccare,+in+base+a+quale+impulso+vogliamo+

dare,+con+SET+o+RESET.++

+ +

! +

!

!" !"

+ 9+

9+

+ +

+

! +

!

!!

+ !!

!"# !"#

8+ 8+

+ +

!"#+ !"#+

+

!+ !+

+ 10+

10+

+ +

+ +

! +

!

+ !! !!

!"#"$ !"#"$

∗ ∗

+

! +

!

4+ 4+

+ +

!"#"$+ !"#"$+

6+ 6+

+ +

+ 5+

5+

+ +

Progettazione+di+Dispositivi+Biomedici+Programmabili+6+Laboratori+ 41+


ACQUISTATO

3 volte

PAGINE

53

PESO

29.92 MB

AUTORE

And1.88

PUBBLICATO

+1 anno fa


DETTAGLI
Corso di laurea: Corso di laurea magistrale in ingegneria biomedica
SSD:
A.A.: 2013-2014

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher And1.88 di informazioni apprese con la frequenza delle lezioni di Progettazione di Dispositivi Biomedici Programmabili e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Politecnico di Torino - Polito o del prof Knaflitz Marco.

Acquista con carta o conto PayPal

Scarica il file tutte le volte che vuoi

Paga con un conto PayPal per usufruire della garanzia Soddisfatto o rimborsato

Recensioni
Ti è piaciuto questo appunto? Valutalo!

Altri appunti di Progettazione di dispositivi biomedici programmabili

Appunti corso completo Progettazione Dispositivi Biomedici Programmabili
Appunto
Progettazione di Protesi ed Organi Artificiali - Appunti
Appunto
Appunti corso completo Progettazione Dispositivi Biomedici Programmabili
Appunto
sistemi biomimetici
Appunto