Analizzare il movimento, ecco l’obiettivo che si è posta Freescale/NXP con Xtrinsic Sensing.
Freescale, allo scopo di offrire soluzioni innovative nel campo della tecnologia Xtrinsic Sensing, ha realizzato tempo fa una vasta famiglia di accelerometri, inclusa la linea MMA845xQ, dove, oltre a proporre una discreta scelta in fatto di risoluzione (da 10 e fino a 14 bit), sono particolarmente indicate per le applicazioni di tipo embedded; in effetti, permettono di eseguire un’analisi accurata del movimento: cosa senza dubbio apprezzata nelle applicazioni di tipo automotive.
Secondo le informazioni offerte dal costruttore, gli accelerometri MMA845xQ permettono di rilevare il movimento in tempo reale come l’orientamento, lo sbalzo o la caduta libera: la famiglia funziona a potenze estremamente ridotte con un basso apporto di rumore. Non solo, gli accelerometri risultano compatibili, da un punto di vista hardware e software, massimizzando il riutilizzo.
TECNOLOGIA MEMS
Non è possibile parlare di soluzioni di tipo Xtrinsic Sensing senza fare riferimento alla tecnologia MEMS. L’acronimo MEMS, Micro Electro-Mechanical Systems, sta a indicare i componenti integrati, in forma miniaturizzata, su uno stesso substrato di silicio, che coniugano le proprietà elettriche degli IC a semiconduttore con proprietà optomeccaniche. In particolare, è possibile, ricorrendo a una tecnologia di questo tipo, utilizzare sensori MEMS per svolgere funzioni di misura correlate a una particolare dinamica in termini di vibrazioni e sollecitazioni: a questo riguardo, possiamo pensare al mondo automotive che ha la necessità di assicurare sicurezza e affidabilità delle proprie piattaforme mobili. In generale, in un’applicazione MEMS uno stimolo di tipo meccanico, elettrico o chimico può essere utilizzato per generare una risposta conseguente. Questa particolare tecnologia è senza dubbio innovativa perché consente di realizzare dispositivi intelligenti a elevata integrazione, utilizzando un sistema di controllo e un insieme di funzioni che comprendono anche i sensori utilizzati per monitorare e controllare l’ambiente esterno. I sensori posti all’esterno acquisiscono le informazioni dall’ambiente misurando grandezze fisiche, quale posizione, temperatura, pressione o campo magnetico e, successivamente, queste sono processati da un’unità di elaborazione, ovvero l’unità di elaborazione è in grado di interagire, attraverso dei sensori, con il mondo esterno pilotando opportunamente dei micro attuatori. L’idea è, infatti, quella di utilizzare i circuiti MEMS che sono posti su silicio a basso costo. In sostanza, i MEMS sfruttano l’integrazione di elementi meccanici, sensori, attuatori e componenti elettronici in un substrato comune di silicio mediante la tecnologia di micro fabbricazione. Rispetto ai componenti elettronici, i cui elementi sono fabbricati con processi sequenziali, questi sono realizzati con un procedimento di micro meccanica con un processo definito come micro macchine che incidono selettivamente le parti del silicio o aggiungono nuovi strati strutturali per formare i dispositivi meccanici ed elettromeccanici. Possiamo, senza dubbio, poter affermare che l’accelerazione è l’applicazione più comune di questi componenti; in effetti, queste particolari applicazioni stanno sostituendo gli accelerometri convenzionali presenti negli air-bag.
IL RADAR AUTOMOTIVE DI FREESCALE
Un esempio su tutti: il radar automotive di Freescale. La casa costruttrice ha voluto offrire un’interessante applicazione sfruttando un segmento di mercato abbastanza particolare. Il mondo automotive ha la necessità di utilizzare prodotti e accorgimenti che siano in grado di offrire sicurezza e affidabilità. La realizzazione di Freescale intende proprio rispondere a queste esigenze, tanto da presentare il suo radar per la rilevazione degli ostacoli che permette di aumentare la sicurezza nelle applicazioni automobilistiche. Grazie a questa nuova possibilità, Freescale intende proporre un prodotto che, sfruttando la tecnologia Xtrinsic Sensig, assicura una maggiore sicurezza stradale agendo sul controllo della velocità, sull’individuazione di un angolo cieco o la possibilità di evitare un impatto laterale: il tutto grazie anche alla tecnologia FMCW, ovvero Frequency Modulated Continuous Wave. Con questa particolare tecnologia si vuole indicare una trasmissione radar con un’ampiezza di segnale costante che cambia di frequenza in modo lineare, così, come suggerisce la sua classificazione, i radar a onda continua modulati in frequenza, in altre parole FMCW, permettono di ottenere informazioni sulla distanza del bersaglio modulando in frequenza un’onda continua. Ricordiamo che, in principio, la tecnologia di questo tipo era limitata solo a un ristretto numero di applicazioni, inclusi i radar altimetri e quelli d’inseguimento. Da alcuni anni, però, è mutata l’attenzione, grazie al progresso della tecnica e alla volontà di diversi costruttori e, soprattutto, è cambiata l’economia in gioco. In effetti, questo tipo di modulazione è ampiamente compatibile con un’ampia varietà di componenti allo stato solido e la misurazione delle frequenze necessaria ad ottenere le informazioni sulla distanza può essere effettuata in maniera digitale, usando processori basati su tecniche di Fast Fourier Transform (FFT). Non solo, i segnali da essi generati sono difficilmente individuati dai convenzionali sistemi di intercettazione. I radar ad onda continua (CW) emettono radiazioni elettromagnetiche in maniera non discontinua nel tempo e permettono la misura della loro velocità radiale. Di solito si utilizzano i radar ad onda continua per misurare la velocità (istantanea) degli autoveicoli e le applicazioni di questo tipo sono di solito impiegati in sistemi militari dove è necessaria la misurazione della velocità radiale dei bersagli. In effetti, quello che ha pensato di realizzare Freescale è, indubbiamente, una applicazione orientata, in senso stretto, per il mondo automotive. Tutte le applicazioni di questo tipo si basano su una semplice considerazione: il raggio trasmesso rimbalza su oggetti distanti e ritorna al ricevitore alcuni istanti dopo. Il lasso di tempo tra la trasmissione e la ricezione ci assicura che il trasmettitore e il ricevitore stiano operando a due diverse frequenze, con il risultato che la differenza di frequenza è direttamente proporzionale alla distanza dell’obiettivo. Freescale cerca così di coniugare differenti tecnologie, quali RF, allo scopo di migliorare la percezione dell’ambiente e definire un sistema che permetta di monitorare la velocità e la distanza in modo continuo con vincoli temporali molto stretti. Alcuni costruttori hanno persino realizzato processori FMCW, ovvero unità di calcolo che includono tutto il necessario, hardware e software, per implementare un completo sistema e pensiamo a questo riguardo alle soluzioni Andromeda. L’immagine radar ricostruita può avere fino a 4 dimensioni: le tre coordinate dello spazio, la velocità radiale e il coefficiente complesso di riflettività della scena osservata dall’antenna può essere visualizzato in coordinate polari (azimuth, elevazione e range), cartesiane (cross-range, down range e uprange). La modulazione doppia (up e down sweep) è utilizzata per ottenere due immagini per ogni frame. Per poter operare, l’unità ha bisogno di essere interconnessa con un transceiver FMCW a radio-frequenza mediante 3 cavi coassiali (per i segnali I, Q e modulazione VCO) e 2 cavi digitali (5 fili ciascuno) per poter acquisire la posizione in azimuth ed elevazione dell’antenna. Il tutto utilizza un Pentium IV interfacciato via PCI a schede AD e DA standard.
I NUOVI ACCELEROMETRI CON XTRINSIC
Il mercato delle tecnologie legate al mondo MEMS è in piena espansione e gli scenari sono, senza dubbio, interessanti. Diversi analisti di mercato si sono sbizzarriti per tentare di comprendere le dinamiche in atto tanto che si stima una crescita elevata di ben oltre le due cifre, anche per via dell’effetto trainante della tecnologia consumer quali telefoni cellulari, controller per i giochi e telecamere digitali. Freescale ha posto particolare attenzione alla tecnologia di rilevazione dei movimenti utilizzabili in qualsiasi applicazione inclusa la stabilità dell’immagine, comandi a tocco, antifurto e rilevazione dell’orientamento. Freescale è una delle realtà più rilevanti perché riesce da anni a proporre prodotti che riescono a coniugare le nuove tecnologie insieme all’esigenza di avere soluzioni che riescono a intervenire sulla ritenzione di carica. Per questa ragione Freescale ha deciso di presentare i suoi accelerometri triassiali con basso rumore e ottime prestazioni, ovvero i modelli della serie MMA845xQ, la figura 1 mostra il diagramma a blocchi, con relativa piedinatura in figura 2.
Grazie a questa nuova possibilità, i progettisti possono integrare nei propri prodotti sia funzioni standard, come la rilevazione dell’orientamento, sia applicazioni in tempo reale più avanzate come pedometri e giochi. I nuovi accelerometri MMA845xQ, oltre a fare parte della linea Xtrinsic, sono anche in grado di offrire una più efficiente intelligenza, ricorrendo ad algoritmi e capacità di calcolo embedded. Quindi, per mezzo del processore host, gli accelerometri assistono nelle decisioni sulle rilevazioni ambientali e consentono di registrare movimenti con estrema precisione in un’ampia gamma di dispositivi consumer: dai cellulari intelligenti ai tablet, dagli eReader ai telecomandi. La proposta di casa Freescale risulta estremamente variegata, oltre al modello MMA8450Q, Freescale propone anche la serie MMA845xQ con la versione da 14 bit (MMA8451Q) o da 12 (MMA8452Q). I dispositivi di Freescale, oltre ad essere compatibili pin-topin, assicurano un allineamento, tra gli accelerometri, della mappa a livello di registro finalizzata ad incrementare al massimo il riutilizzo a livello hardware e software tra i design a 12 e 14 bit: questo richiede un minimo costo di sviluppo in fase di migrazione, ma riduce il “time to market”. Per favorire il supporto di svariate applicazioni, gli accelerometri MMA845xQ presentano una maggiore larghezza di banda e i sample rate, compresi tra 1,5 e 800 Hz, sono configurabili dall’utente con un intervallo di tensione di alimentazione tra i valori 1,62V e 3,6V. L’accelerometro MMA8451Q comprende anche una memoria buffer FIFO (firstin/first-out) on-chip che può contenere fino a 32 serie di campioni X, Y e Z. Questa particolare memoria riduce il consumo complessivo del sistema e i tempi di risposta, sollevando il processore host dall’esecuzione di una serie di funzioni. L’uso del buffer FIFO, unitamente alle altre funzioni embedded, consente al processore host di trattare solo i dati necessari contribuendo, contemporaneamente, a evitare eventuali perdite d’informazioni in caso di multiplexing con altri sensori sullo stesso bus IIC. Il buffer FIFO contribuisce, unitamente al processore host, ad un risparmio compreso tra il 78% e il 96% in base alle condizioni del microcontrollore e al data rate selezionato in uscita. In definitiva, è possibile affermare che il componente permette di ottenere una uscita digitale a 14, 12 e 10 bit con un rumore di <100 mg/√ Hz. Il componente garantisce valori bassi di tensione, tra i valori 1,95-3,6 V, e potenza, 6 µA, con la possibilità di utilizzare un buffer FIFO integrato, in modo particolare sul componente MMA8451Q (14 bit) con 32 campioni su 14 bit o 8 bit. Freescale ha anche integrato una motion detection integrata (vedi figura 3)con rilevamento di sbalzo e orientamento con compensazione di isterisi.
UTILIZZARE MMA8451X
Per utilizzare gli elementi della linea MMA8451, 2, 3Q è importante sapere che, al fine di estrarre o manipolare i dati riferirti all’accelerazione, questi elementi sono stati realizzati per sfruttare il memory mapped. Il dispositivo MMA8451Q è quello che riesce meglio a conciliare le esigenze embedded di controllo, può, ad esempio, vantare otto frequenze di campionamento differenti e 32 diverse cut-off delle frequenze per il filtro passa alto e quattro modalità di oversampling. Non solo, è possibile anche utilizzare la sua coda FIFO per raccogliere e memorizzare dati e, come osservano i field della Freescale, questo è il mezzo ritenuto più efficiente ed efficace per accedere ai dati al fine di ridurre al minimo le operazioni I2C. Il componente è molto flessibile tanto da richiedere piccole porzioni di codice che devono essere poi integrate nell’applicazione specificata. Ad esempio, il componente garantisce due possibili modi di funzionamento: polling e interrupt; il software può interrogare periodicamente i dati o può, in alternativa, impostare un interrupt o eccezione alla MCU ogni volta che nuovi dati risultano disponibili e a questo proposito il listato 4 pone in evidenza un possibile esempio. È ovvio che la modalità di polling è, in linea di massima, molto più semplice da implementare. Tuttavia, in questo caso, è assolutamente necessario dimensionare correttamente il sistema al fine di massimizzare le prestazioni e minimizzare l’overhead, il componente potrebbe campionare un sensore a una velocità differente dal suo data rate con enormi impatti sulla sua affidabilità. Al fine di permettere questa particolare gestione è possibile verificare il flag overwrite presente nel registro di stato, status, come ZYXOW, ZOW, YOW e XOW: a questo proposito il listato 4 mostra il continuo monitoraggio dei bit 14 bit, 12 bit o 10 bit XYZ. Gli altri listati pongono in evidenza le diverse necessità utilizzate dal software.
void MMA845x_Init (void) { MMA845x_Standby(); /* ** Configura il sensore ** - Sleep Mode Poll Rate of 50Hz (20ms) ** - System Output Data Rate of 200Hz (5ms) ** - Full Scale of +/-2g */ IIC_RegWrite(SlaveAddressIIC, CTRL_REG1, ASLP_RATE_20MS+DATA_RATE_5MS); IIC_RegWrite(SlaveAddressIIC, XYZ_DATA_CFG_REG, FULL_SCALE_2G); }
Listato 1 - configura il sensore |
void IIC_RegWriteN(byte address, byte reg1,byte N,byte *array) { IICC_TX = 1; // Transmit Mode IIC_Start(); // Send Start IIC_CycleWrite(address); // Send IIC “Write” Address IIC_CycleWrite(reg1); // Send Register while (N>0) // Send N Values { IIC_CycleWrite(*array); array++; N—; } IIC_Stop(); } }
Listato 2 - scrittura di un registro su I2C |
/*********************************************************\ * Put MMA845xQ into Active Mode \*********************************************************/ void MMA845x_Active () { IIC_RegWrite(SlaveAddressIIC, CTRL_REG1, (IIC_RegRead(SlaveAddressIIC, CTRL_REG1) | ACTIVE_MASK)); }
Listato 3 - ActiveMode |
/* ** Standby Mode */ MMA845xQ_Standby(); /* ** Azzera bit F_Read bit */ IIC_RegWrite(CTRL_REG1,(IIC_RegRead(CTRL_REG1)& ~FREAD_MASK); /* ** Active Mode */ MMA845xQ_Active(); /* ** loop di controllo di base con il monitoring continuo del sensore */ for (;;) { /* ** Poll ZYXDR status bit e wait */ RegisterFlag.Byte = IIC_RegRead(STATUS_00_REG); if (RegisterFlag.ZYXDR_BIT == 1) { /* ** Leggi 14/12/10-bit XYZ con accessi I2C */ IIC_RegReadN(OUT_X_MSB_REG, 6, &value[0]); x_value.Byte.hi = value[0]; x_value.Byte.lo = value[1]; y_value.Byte.hi = value[2]; y_value.Byte.lo = value[3]; z_value.Byte.hi = value[4]; z_value.Byte.lo = value[5]; /* ** Tratta I dati */ GoProcessXYZ(&value[0]); } /* ** Fai altro ** */ }
Listato 4 - Polling mode |