Microcontrollore Il microcontrollore è un sistema a microprocessore completo,integrato in un unico chip, progettato per avere la massima autosufficienza e versatilità. Infatti visto il loro prezzo esiguo, sono utilizzati per molte applicazioni tipo: telecomandi, sistemi di irrigazione, allarmi, ecc. Esistono diversi tipi di microcontrollore in circolazione, ognuno dei quali si differenzia per componentistica interna, per velocità di calcolo o anche solo per numero di pin I/O. I microcontrollori, come detto in precedenza, hanno oltre ad un'unità di elaborazione (ALU) e una di controllo (UD) anche altra circuiteria, infatti la RAM e la memoria del programma(EEPROM) sono direttamente integrate, assieme anche a dei contatori interni e ai dispositivi di I/O. Oltre a questi dispositivi standard si possono anche trovare convertitori A/D, comparatori o anche delle interfacce parallele-seriali. Per funzionare correttamente questi microcontrollori hanno bisogno di pochissima circuiteria esterna, infatti richiedono un clock al quarzo e un alimentazione costante. I valori del clock e dell’alimentazione vengono presi dal datasheet del rispettivo integrato. L’architettura interna di questi dispositivi viene chiamata “architettura Harvard” che si differenzia dall’architettura di von Neumann per la presenza di più bus. La CPU è collegata tramite un bus alla RAM, con un altro alle periferiche di I/O e con un altro ancora alla memoria programma. Utilizzando questo schema vi sono notevoli vantaggi sulla velocità di calcolo poiché si possono utilizzare bus di diverse grandezze. Lo svantaggio maggiore però è che le velocità di clock dei nostri microcontrollori (massimo 20 MHz) risultano molto minori rispetto a quelle dei microprocessori che talvolta superano i 3 GHz. Ora passiamo pero a parlare dei dispositivi interni ai microcontrollori, come per esempio i timer e i convertitori A/D. Timer I timer sono dispositivi che, con cadenza regolare, incrementano un conteggio. Questi dispositivi possono usare come sorgente di clock una sorgente interna (conta – tempi) oppure una sorgente esterna al microcontrollore (conta - eventi). Il valore di fine conteggio del timer è legato al numero di bit di cui il timer dispone, infatti questo valore risulta essere uguale a 2^n, dove n è il numero di bit. Se è un timer a 8 bit potrà contare da 0 a 255 se invece è a 16 bit il suo conteggio si esaurisce a 65535. Sapendo che i normali utilizzi del timer sono scandire il tempo, ed utilizzando dei clock elevati, notiamo subito che un timer non riuscirà mai a contare dei tempi lunghi, infatti nel caso di 8 bit con clock di 4MHz riusciremo a contare solo 256 µs. Quindi internamente ai microcontrollori viene posto anche un divisore di frequenze che viene chiamato pre-scaler, selezionabile via software che ci permette di contare tempi più lunghi. Appena i timer arrivano al valore di fine conteggio generano un interrupt(se abilitato) e fanno eseguire la isr(interrupt service routine) che si trova nella allocazione di memoria 0004h. Noi a scuola usavamo come microcontrollore il pic16F877 che internamente dispone di 3 contatori, due a 8 bit(timer0 e timer2) e uno a 16bit(timer1) che possiedono tre pre-scaler differenti. Timer0 può usare come pre-scaler i valori 1,2,4,8,16,32,64,128,256. Timer1 invece può usare solo 1,2,4,8 e Timer2 1,4 e 16. Ora invece passiamo a spiegare come funzionano i convertitori A/D interni ai microcontrollori 1 Convertitori A/D un convertitore AD serve a convertire dati analogici in grandezze digitali per permettere al μC di elaborarle. La conversione è molto utilizzata nei µC perché visti i loro svariati campi d'impiego, potrebbero aver bisogno di acquisire dei valori da alcuni sensori analogici. Questi dispositivi integrati direttamente dentro al chip, apportano numerosi vantaggi, intanto il clock di conversione è compreso internamente dal nostro quarzo(vanno poi selezionati a parte due bit ADCS0,ADCS1) , la conversione può essere gestita a interrupt o a polling e se gli ingressi sono multiplexati possiamo evitare di usare multiplexer analogici esterni che diventerebbe complicato indirizzare. Le sostanziali differenze di questi convertitori sono: la risoluzione, che corrisponde al numero di bit in cui viene convertito il dato, e anche il range delle tensioni di ingresso, tensioni che lui, il convertitore, accetta in ingresso convertendole correttamente. All'interno del Pic16F877 vi è un convertitore ad approssimazioni successive con risoluzione selezionabile di 8 o 10 bit, un multiplexer a 3 linee di selezione(8 canali) e un tempo minimo di conversione di 1.6µs. 2 Convertitori A/D Visto che internamente a molti µc si trovano dei convertitori a/d ho deciso di spiegare anche i loro funzionamenti. Esistono principalmente 6 tipi di convertitori a/d • A comparatori in parallelo • Ad approssimazioni successive • A conteggio o Rampa digitale o Track-converter • A integrazione o Rampa o Doppia rampa A comparatori in parallelo Il segnale da convertire Va viene applicato a tutti gli ingressi dei comparatori in configurazione non invertente. L’ingresso invertente dei comparatori è connesso ad una rete di resistenze che suddivide la tensione di ingresso, così si creano i livelli di riferimento e le relative “fasce”, una per comparatore. Quando il segnale entrante e maggiore della tensione di riferimento il comparatore dà in uscita un 1 logico, se invece è più bassa dà uscita 0. Il registro, utilizzando un clock, acquisisce tutti i valori e li converte in un dato binario. Questo comparatore è il più veloce infatti non necessita neanche di un sample/hold vista la sua velocità di conversione, però non riesce ad avere alte risoluzioni dato che il legame tra bit di codifica e comparatori è uguale a 2^n -1 comparatori con n uguale alla risoluzione. Ad approssimazioni successive Questo metodo è il più diffuso e anche il miglior compromesso fra velocità di conversione e risoluzione. Il suo funzionamento è similare a quello della bilancia a 2 piatti. Il segnale di ingresso Va viene confrontato con il segnale proveniente dal SAR convertito dal DAC. Dopo aver dato il segnale di SOC, il SAR assume il valore 1-0-0-0 binario, che viene convertito dal DAC e viene confrontato con Va. Se Va è più grande di Va’ il comparatore dà uscita 1 e il primo bit di uscita viene posto uguale a 1. Se invece l’uscita del comparatore è uguale a zero viene posto a 0. Quindi il SAR porta a 1 anche il secondo bit dando uscita 11-0-0, se il valore era 1, se no 0-1-0-0 per così convertirlo con il DAC e poi controllare se l’uscita del comparatore è 1 o 0. Dunque viene impostato anche il valore del 2° bit. Il funzionamento risulta uguale anche per gli ultimi 2 bit. Questo è un comparatore a 4 bit ma aumentando i bit il funzionamento non cambia. Questi convertitori sono i più consigliati per applicazioni con µc. 3 A conteggio A rampa digitale Appena il comando di inizio conversione viene portato a 1 il contatore(counter) viene azzerato, e successivamente abilitato tramite la porta logica AND. Ad ogni impulso del clock l’uscita del convertitore DAC si incrementa. Quando l’uscita del convertitore diventa maggiore dell’ingresso il comparatore commuta portando Vo a 0 e bloccando il conteggio. Quindi il contatore converte il numero di impulsi. Questo convertitore è chiamato “a rampa digitale” per l’onda che viene generata dal DAC. Questo convertitore richiede frequenze di campionamento molto elevate quindi viene utilizzato nei casi in cui la frequenza massima di campionamento sia nell’ordine dei KHz. Track-converter il convertitore a conteggio o “rampa digitale” può essere migliorato utilizzando un contatore avantiindietro. Questo convertitore non azzera mai il numero di impulsi conteggiati ma semplicemente li incrementa o li decrementa. Facendo ciò si utilizzano mediamente la metà dei conteggi, quindi si possono usare frequenze di campionamento pari al doppio del “convertitore a rampa digitale” A integrazione A una rampa Il segnale da convertire viene comparato con un segnale uscente da un integratore con una tensione di ingresso fissa pari a –Vref. Finché la tensione da convertire è più alta della tensione proveniente dall’integratore l’uscita del comparatore è alta. Un contatore, collegato ad un clock fisso, ad ogni colpo di clock si incrementa di 1. Appena V1 supera Vi il comparatore commuta bloccando i conteggi del contatore e mantenendo memorizzato il numero binario, successivamente mandato in uscita. Il segnale di SOC in questo circuito è il reset che chiude l’interruttore s facendo scaricare il condensatore. Lo stesso segnale poi disabilita il conteggio azzerando successivamente il nostro contatore. Dal momento che i valori forniti da questo convertitore dipendono da diverse grandezze, come i componenti e la frequenza di clock, si dice che questo convertitore abbia precisione e stabilità limitate. 4 A doppia rampa Tutti i problemi presenti nel convertitore a rampa sono risolti tramite questo convertitore a doppia rampa. Dopo aver azzerato il sistema il commutatore si trova su A e la tensione Va è applicata all’ingresso di un integratore. La tensione di uscita dell’integratore sarà quindi negativa,e sarà applicata all’ingresso di un comparatore. L’uscita del comparatore sta alta, quindi comparatore abilita il conteggio degli impulsi. Quindi il sistema rimarrà in questa condizione per 2^n cicli di clock. Appena tutte le uscite del contatore sono a 0 l’uscita del flip-flop a 1. A questo punto S1 viene portato su B e all’ingresso dell’integratore c’e -Vref di polarità opposta a Va. Il contatore conta finche il comparatore non commuta poi si ferma e memorizza il numero dei conteggi. Questo e proporzionale al valore di ingresso. Questo convertitore e stabile e permette conversioni molto precise però si presenta l’inconveniente del tempo di conversione molto elevato. Le principali limitazioni sono le correnti di perdita, le tensioni di offset e le correnti di polarizzazione degli operazionali. 5 Teorema di Shannon La discretizzazione di un segnale analogico si ottiene prelevando porzioni elementari che prendono il nome di campioni. Qualsiasi forma d’onda, funzione continua nel tempo, avente frequenza massima fmax, risulta completamente determinata quando si prelevano dei campioni con una frequenza fca, in istanti tn noti e separati da un intervallo di campionamento regolare ∆Tca, solamente se è rispettata la seguente condizione : fca≥2fmax Quindi si potrebbero verificare le tre seguenti condizioni: fca>2fmax questa è la condizione ottimale fca=2fmax in questa condizione risulta complicato il filtraggio fca<2fmax in questa situazione si ha l’effetto aliasing 6 Trasduttori Il trasduttore è un componente elettrico che converte una grandezza fisica in una grandezza elettrica. I trasduttori possono essere primari o secondari. I trasduttori primari sono quelli in cui la tensione d’uscita dipende direttamente dalla tensione di ingresso. Invece i trasduttori secondari sono quelli in cui la grandezza d’uscita non dipende direttamente dall’ingresso,ma da una grandezza al suo interno che dipende a sua volta dall’ingresso. I parametrio dei trasduttori sono Precisione È il massimo scostamento tra il valore di ingresso ed il valore desumibile in uscita. Funzione di trasferimento È il legame che definisce come varia l’uscita al variare della grandezza di ingresso. Linearità È la differenza fra andamento teorico e andamento reale. Off-set È il valore che assume l’uscita del trasduttore quando l’ingresso è a 0. Stabilità È l’attitudine di mantenere invariata la F.d.T al variare del tempo, temperatura, umidità ecc. Sensibilità È il rapporto tra minima variazione del segnale d’uscita e la corrispondente variazione all’ingresso. Isteresi È la tolleranza entro la quale il trasduttore, effettuando la stessa misura non fa variare l’uscita. Campo di misura È l’escursione tra il minimo e il massimo rilevabili. Risoluzione È la minima variazione d’ingresso che provoca variazioni apprezzabili in uscita Tempo di risposta È il tempo che impiega l’uscita a variare dopo una variazione dell’ingresso. Trasduttori di temperatura Sono dispositivi che rilevano delle variazioni di una temperatura e forniscono variazioni di una grandezza elettrica(resistenza, tensione, corrente) in funzione della temperatura. Termo resistenze Sono trasduttori che sfruttano la proprietà dei materiali conduttori che è di aumentare la propria resistenza con l’aumentare della temperatura. Termistori Sono trasduttori in cui il legame tra resistenza e temperatura è esponenziale. Ptc Hanno un coefficiente di temperatura positivo. Ntc Hanno un coefficiente di temperatura negativo. Termocoppie Sono costituite da due lamine di materiale conduttore saldate a un estremità. Effetto Seebeck-Peltier Sensori integrati Contengono al loro interno sia l’elemento sensibile alla temperatura sia il circuito di linearizzazione. Ad590 È un sensore di temperatura integrato che dà in uscita 1µA per kelvin. Lm35 È un sensore di temperatura che dà in uscita 10mV per grado centigrado. 7 Trasduttori estensimetrici Sono trasduttori che convertono una deformazione meccanica in una variazione di resistenza. Trasduttori di posizione e velocità Sono trasduttori che sono in grado di generare un uscita proporzionale alla posizione o alla velocità di un organo in movimento. Potenziometri Utilizzato come trasduttore di posizione, è un resistore variabile il cui valore viene suddiviso in due parti tramite lo spostamento di un contatto mobile chiamato cursore. Dinamo tachimetrica È un sensore che fornisce una tensione proporzionale alla velocità angolare del suo rotore. Effetto hall Sono usati per sapere se un oggetto si trova in una determinata posizione(sensori di prossimità). Encoder Sono sensori di posizione angolare che forniscono un segnale digitale. Si misura anche la velocità angolare. Assoluto Si ricava l'angolo di rotazione facendo riferimento ad una posizione unica. Incrementale Si può trovare angolo di rotazione e senso di rotazione. 8