EOS-Book #0 Tutti gli Articoli sono di proprietà di EMCelettronica Srl e ne è vietata la riproduzione ed in generale la diffusione. Gli Abbonati Premium sono autorizzati alla stampa su carta per uso personale. Per ogni eventuale richiesta potete scrivere a
[email protected]
Un progetto ambizioso: EOS-BOOK 1 Ott 2012 di Emanuele
Nasce oggi EOS-BOOK, un progetto ambizioso come naturale evoluzione di quanto fatto in questi anni su Elettronica Open Source. Un magazine di Elettronica? Una repository di progetti? Molto di più, scopriamolo e progettiamolo insieme! Gli ultimi due anni sono stati molto importanti per Elettronica Open Source, abbiamo avuto un incremento esponenziale di visitatori e, sempre graditi, di apprezzamenti, una partecipazione alla vita del Blog e del Forum sempre in crescita ed abbiamo stretto collaborazioni con importanti Sponsor pur nel rispetto reciproco e mantenendo la nostra indipendenza. Allo stesso tempo siamo riusciti a convogliare questo successo sul vero protagonista del sito (blog+forum) e cioè sulla community. Si, voi che state leggendo ora! Concorsi ed iniziative varie sono state molto frequenti, non solo l'ultima MAKE4CASH citato anche da Wired e concluso pochi giorni fa con la relativa premiazione, ma anche l'assegnazione
dell'oscilloscopio Tektronix con Oscillandia, di due Oscilloscopi Lecroy e che dire poi di Febbruino e Marzuino o di 300.... Anche come demoboard siamo riusciti a soddisfare molti utenti, vedi il programma Review4U. Insomma se avete tempo di leggere tutti i link, noterete bene che abbiamo distribuito +10.000 euro in denaro, strumentazione elettronica e demoboard. Mai visto niente di simile in Italia vero? Inoltre abbiamo aumentato ( e di molto) la qualità dei contenuti, con articoli tecnici e progetti di alto livello. Abbiamo intervistato i protagonisti dell'elettronica, trascritto, tradotto e sottotitolato video tecnici e tantissime altre cose, pensate che solo sul blog abbiamo realizzato +5000 articoli! Tutto questo è stato possibile grazie ad una squadra di collaboratori eccezionale, ma soprattutto grazie a Voi che ci seguite numerosi! Insomma siete stati sempre voi protagonisti! E quello che voglio dirvi oggi è che in futuro lo sarete ancora di più !! Provate ora ad immaginare quello che potremmo fare con il vostro aiuto diretto, un crowdfunding rivolto alla costruzione di una community affiatata, partecipativa e soprattutto soddisfatta! Immaginate una community veramente speciale, con continui scambi di informazioni, ma anche un posto dove ricevere gratis demoboard e schede elettroniche, dove avere strumentazione elettronica in omaggio, dove leggere articoli tecnici approfonditi sugli argomenti che richiedete! Immaginate di avere a disposizione un magazine di elettronica con articoli e progetti open source che risolvono le vostre reali necessità. Stò sognando ad occhi aperti, dite? Anche un paio di anni fa dare in omaggio un oscilloscopio da 3700 euro sembrava un sogno, eppure ci siamo riusciti ed ora un Ing. Elettronico (Marco Di Vivo) ha potuto dotare il suo laboratorio del fantastico MSO2024 Tektronix.
1
Nasce il progetto EOS-BOOK Abbiamo fatto molto, ma sappiamo che possiamo fare molto di più! EOS-Book è un progetto dinamico che al suo interno comprende una serie di iniziative in continua evoluzione. Vi elenco i punti iniziali, perché sono appunto dinamici, maggiore sarà la partecipazione maggiori saranno le iniziative: 1) PREMIUM Un'area del blog PREMIUM con articoli tecnici di alta qualità, che offrono un elevato valore aggiunto e quindi NON reperibili online, che vi faranno risparmiare molto tempo in ricerche e d approfondimenti. 2) PROGETTI OPEN SOURCE Libero accesso a tutti i codici sorgenti ed ai progetti Open Source pubblicati. 3) ON DEMAND Possibilità di richiedere contenuti. Dovete approfondire un argomento specifico? avete bisogno di tradurre un reference design o un'applicazione per comprenderne fino in fondo il significato? Oppure avete visto un video in lingua originale e vi sarebbe molto utile poterne leggere i sottotitoli in italiano? Contattateci con la vostra richiesta, vi metteremo subito in lista. Chi prima arriva prima sarà servito, ovvio ;)
di un ulteriore aumento qualitativo! E' quello che vogliamo anche noi!
Sei con noi in questo progetto? Abbonati ora! Al costo di un caffè o poco più potrai diventare Utente Premium e sostenere Elettronica Open Source, affinché tutto questo sia possibile! Abbonati e segnalami subito che progetto/ articolo/argomento vuoi veder su EOS-Book, sarai sicuramente tra i primi ad essere esaudito. Come Abbonarsi: Registrati al link indicato con i tuoi dati e compila la richiesta di Abbonamento Premium (mensile o annuale) -> http://it.emcelettronica.com/user/ register Per qualsiasi ulteriore informazione puoi utilizzare i commenti oppure contattarmi in privato tramite il modulo contact del mio profilo. L'autore è a disposizione nei commenti per eventuali approfondimenti sul tema dell'Articolo. Di seguito il link per accedere direttamente all'articolo sul Blog e partecipare alla discussione: http://it.emcelettronica.com/ progetto-ambizioso-eos-book
4) EOS-BOOK Un magazine mensile in PDF vi verrà inviato direttamente nella vostra casella di posta elettronica. Da stampare e leggere! Assolutamente senza pubblicità! 5) REVIEW4U Ogni settimana una demoboard o scheda elettronica in omaggio agli abbonati, attraverso il programma Review4U. Non sarà una riffa, ma una assegnazione in base al reale utilizzo. 6) NEWSLETTER Una newsletter PREMIUM con nuove iniziative periodiche rivolte agli abbonati. EOS-BOOK e REVIEW4U ma anche EBOOK specifici e..... 7) FEEDBACK DIRETTO Il progetto è dinamico! Non ti è piaciuto un articolo o non ti ha soddisfatto un progetto? Segnalacelo faremo prima possibile una revisione impegnando ancora di più le nostre risorse al fine
2
RFID: un acronimo mille possibilità
inviata al middleware. Quest'ultimo è incaricato di elaborare opportunamente l'informazione ed inviarla al software di gestione.
2 Ott 2012 di Piero Boccadoro
Fisicamente... Alla base del funzionamento di questo sistema c'è un semplice fenomeno di accoppiamento, tanto più marcato quanto minore è la distanza tra gli elementi che compongono l'intero sistema. La sorgente del campo elettromagnetico all'interno del quale il conduttore si trova diviene evanescente man mano che il conduttore stesso “esce dalla portata della sorgente”.
Il livello di maturità della tecnologia RFID permette a tutti noi, indipendentemente da cosa vogliamo realizzare, di trovare un valido supporto tecnologico. Un aspetto fondamentale è la possibilità di realizzare reti di interconnessione anche wireless che servano agli scopi più disparati. I tag RFID (acronimo che sta per Radio Frequency IDentification) sono diventati rapidamente una risposta affidabile e di grande utilità nei campi più disparati. Tempo fa ci siamo occupati della raccolta differenziata e della sua gestione; oggi vedremo come questa tecnologia potrebbe risultare estremamente utile anche nello smaltimento dei rifiuti.
Uno sguardo al sistema La struttura del sistema, vista in maniera molto schematica, è composta sostanzialmente da sole quattro componenti: • tag • antenna trasmittente • lettore • middleware mentre il funzionamento è sintetizzabile in poche elementari fasi. Il tag (trasponder), infatti, si attiva quando passa all'interno della regione in cui l'antenna è in funzione. Il tag interagisce con la stessa fornendo una risposta che lo identifica come attivo; la risposta in questione viene quindi rilevata e, tramite il lettore (che può essere un semplice lettore oppure un transceiver),
Questo fenomeno sottintende all'esistenza di un campo di induzione che dimostra la mutua interazione tra i componenti nella condizione di campo vicino. Quando la distanza aumenta, ovvero ci troviamo nella condizione di campo lontano, si verificano fenomeni di accoppiamento che sono il frutto dell'irradiazione del campo elettromagnetico in gioco. Nei sistemi RFID entrambi questi fenomeni possono essere sfruttati; esistono, infatti, sistemi a bassa frequenza (LF), alta frequenza (HF) oppure ad altissima frequenza (UHF). Nei primi due il campo induttivo fornisce l'energia necessaria all'attivazione del chip sul tag. Quando ci spostiamo ad altissima frequenza, invece, è il campo radiativo a determinare l'attivazione. Possiamo pensare, nell'ipotesi esemplificativa, che il sistema funzioni sulla base di una logica booleana che identifichi l'oggetto come “assente” oppure “presente”. In questo caso, il lettore genera un campo elettromagnetico con una frequenza ben determinata; quando il tag dovesse passare all'interno di questo campo, la quota parte di energia cui è soggetto sarebbe sufficiente a farlo entrare in risonanza. Questo principio viene largamente utilizzato nei dispositivi antitaccheggio presenti in tutti i centri commerciali, supermercati, negozi di abbigliamento che frequentiamo. La risposta fornita dal trasponder induce una variazione nel campo magnetico che viene generato dal trasmettitore ed è proprio questa variazione che può essere rilevata, se siamo a breve
3
distanza. Ecco per quale motivo il “passaggio” tra le barre dell'antitaccheggio non è, tipicamente, più grande di 1 m e mezzo. Le antenne che vengono utilizzate all'interno dei lettori formano, dunque, dei portali che rilevano la presenza di oggetti metallici; essi operano nella range di frequenze dei MHz. I valori dipendono dalle normative imposte; tipicamente, parliamo di radiazioni non ionizzanti e di locali adibiti ad uso pubblico per cui facciamo riferimento alla normativa “bassa tensione” ed alle linee guida per l'esposizione alle radiazioni non ionizzanti del soggetto inconsapevole. Quando l'oggetto viene pagato regolarmente il tag viene disattivato direttamente in cassa: accade, tipicamente, che si veda strisciare l'oggetto acquistato su una particolare postazione predefinita in cassa. Li è localizzato un forte campo magnetico che stimola con un campo magnetico molto intenso l'intera struttura, rendendola non più funzionante. Vedremo che sebbene sembri antieconomico danneggiare volontariamente un sistema sofisticato, la larga diffusione ha permesso di rendere i costi molto bassi. I dispositivi vengono quindi progettati proprio per essere distrutti. Il sistema funziona esattamente come si vede nella figura qui di seguito.
Per prodotti che contengono metallo è necessario lavorare a frequenze basse, ancorché sempre dell'ordine dei kHz. Questo perché, in questo caso, il tag di tipo e.m. viene realizzato con materiali che sono “resistenti” ai campi elettromagnetici in gioco. Questo significa che è necessario che si preveda una realizzazione sulla base di caratteristiche magnetiche fortemente non lineari. Gli stessi di cui stiamo parlando sono necessari per generare frequenze multiple del segnale del lettore favorendone, così, la lettura.
Sebbene sia indispensabile per realizzarle in questo modo, queste tag presentano uno svantaggio: è indispensabile mantenere un orientamento preciso perché il tag possa essere in visibilità. Per ovviare a questo problema, vengono realizzati avvolgimenti multipli che possono rilevare diverse posizioni del tag in transito. In questo caso, la disattivazione è permessa da uno strato di materiale magnetico che rimane magnetizzato una volta che si trova all'interno di un campo magnetico opportuno. Se nel caso dei tag precedenti abbiamo notato che i dispositivi sono “sacrificabili”, tanto da rimanere all'interno dei capi d'abbigliamento o dei DVD appena acquistati anche dopo la vendita, e l'acquirente può tranquillamente non sapere neanche dove si trova, questo secondo tipo è riutilizzabile.
Oltre i sistemi ad 1 bit Finora abbiamo parlato di sistemi che sono in grado di rilevare il tag qualora esso si trovi nella “raggio di azione” del lettore. Esistono, però, sistemi molto più maturi in cui la comunicazione è bidirezionale perché qui è presente un chip, che ha una sua memoria e la capacità di elaborazione per comunicare, talvolta utilizzando la crittografia, quantitativi maggiori di dati. Come nella maggior parte delle comunicazioni, anche in questo caso esistono soluzioni half-duplex e full-duplex: nel primo caso l'interrogazione e la risposta sono operazioni che richiedono slot temporali separati. Nel secondo, invece, le due parti sono in grado di comunicare anche contemporaneamente; questa seconda modalità e resa possibile dall'utilizzo di frequenze distinte, ad esempio in relazione armonica tra loro. Nei sistemi evoluti che utilizzano n-bit, il lettore fornisce l'energia di cui necessita il tag grazie ad una spira trasmittente, più o meno allo stesso modo di ciò che avviene in un trasformatore.
4
di distribuire l'energia elettromagnetica trasmettere piuttosto che concentrarla.
da
Di contro, però, è normalmente vantaggioso un buon confinamento spaziale per cercare di ridurre le interferenze con sistemi simili.
Questi sistemi operano in campo vicino ed hanno come caratteristica un livello di efficienza nella comunicazione abbastanza basso; si intuisce che questo aspetto implica una forte localizzazione spaziale, ovvero una scarsa “autonomia” o flessibilità. Distanze superiori al metro diventano davvero difficile da gestire. Per il dimensionamento corretto, in ogni caso, è necessario riferirsi non ha distanze lineari ma multipli di lunghezze d'onda. Mano a mano che la frequenza cresce, a parità di sistema in uso, le dimensioni diminuiscono; così sistemi che utilizzino frequenze molto alte (Very High Frequency oppure Ultra High Frequency) possono beneficiare della presenza di antenne molto efficienti disposte all'interno dei tag. Questo tipo di dispositivi può essere stampato sotto forma di etichetta, proprio come accade nel caso dei DVD. La struttura risulta di spessore assolutamente trascurabile e può essere “camuffata” proprio dal codice a barre. La larghissima diffusione sul mercato, dovuta all'affidabilità dell'intero sistema, ha permesso, come dicevamo, una compressione tale nei costi che i tag possono non essere recuperati.
Altro parametro tipico delle antenne e la polarizzazione che può essere lineare oppure circolare. Si tratta, semplicemente, dell'orientazione del campo elettromagnetico che viene irradiato dall'antenna. Quando si sceglie la polarizzazione circolare il tag è insensibile all'orientamento.
I tag al lavoro Come visto nell'immagine mostrata in precedenza, formati, geometrie, spessori e caratteristiche conformazionale e funzionali possono essere molto diverse tra loro. Le antenne possono anche essere disposte in geometria planare a disegnare schiere. La struttura disegnata dal varco costituito dalle antenne è estremamente versatile e si presta bene a diverse applicazioni; non solo antitaccheggio, quindi, ma anche controllo delle merci e degli accessi. Ad esempio, un tag RFID può essere utilizzato per verificare chi e quando è arrivato sul luogo di lavoro. Quando si ha a che fare con flussi, specie se si tratta di merce, è importante garantire la posizione del tag rispetto al lettore, per assicurare l'avvenuta lettura.
Cosa usare? Alcune delle soluzioni di cui abbiamo brevemente parlato risultano sensibili all'orientazione: questo tipo di antenne sono certamente poco indicate nell'antitaccheggio perché l'orientazione non è un parametro che si può tenere sotto controllo. Ecco per quale motivo, in questo caso, si cerca di realizzare antenne omnidirezionali. Tra i parametri notevoli di cui è necessario tener conto, cioè il guadagno, ovvero una misura della capacità dell'antenna di “illuminare” una determinata porzione di spazio confinante. In questo caso particolare, lobi che dimostrino direzionalità sono da evitare proprio perché l'antenna deve essere in grado
In alcuni casi, specie quando il movimento avviene in maniera molto rapida, è possibile pensare ad un sistema che sfrutti un alto valore di di reattività, “guardando” in una zona precisa, in maniera da aumentare la probabilità di identificazione.
I tag RFID nella pratica: dalla teoria i fatti Talune applicazioni possono essere relative all'identificazione dei prodotti dei processi
5
industriali, al controllo dei veicoli in moto (magari durante una revisione), all'identificazione degli impiegati. Oppure, come dicevamo in apertura, alla gestione dei rifiuti. Nell'identificazione degli animali, resasi necessaria nell'ottica di garantire la qualità e la provenienza delle carni, la sostituzione della marchiatura con l'utilizzo di tag RFID ha reso tutto molto più semplice non soltanto per gli animali, per cui l'impianto non è affatto doloroso, ma anche per chi deve effettuare i controlli. Il tag, infatti, è unico per ciascun animale, può essere letto solamente con lettore opportuno e garantisce informazioni riguardo le vaccinazioni e lo stato di salute dell'animale. Questa tecnologia può anche sostituire i collari elettronici o altre soluzioni per animali domestici. Anche la gestione dell'inventario o di un magazzino veniva effettuata manualmente; si intuisce come le operazioni di ispezione, l'aggiornamento delle banche dati ed anche la richiesta di approvvigionamento sono operazioni che possono essere notevolmente semplificate grazie all'utilizzo di questi tag. In campo biomedicale, quindi ci spostiamo sull'uomo e sulla questione della salute, è facile immaginare che potremmo utilizzare la tecnologia RFID per tenere traccia delle vaccinazioni, del gruppo sanguigno, delle intolleranze alimentari e delle allergie. L'immagazzinamento dei dati biomedici ma anche la teleassistenza nonché il dosaggio di farmaci ed il monitoraggio delle funzioni vitali sono tutte funzioni che potrebbero essere automatizzate e svolte in pochi secondi. Anche l'industria automobilistica, che non è dissimile da quei processi produttivi di cui parlavamo in astratto in precedenza, potrebbe ben beneficiare di tale introduzione, non foss'altro che il controllo continuo sul flusso produttivo garantisce una migliore qualità finale del prodotto ed è in linea con le direttive per la certificazione, l'accreditamento e la garanzia della qualità.
Come si può differenziata?
usare
iniziativa del ministero dell'ambiente e della tutela del territorio e del mare, il sistema di controllo della tassabilità dei rifiuti, il quale tiene traccia dell'intera filiera dei rifiuti, ne controlla l'efficienza e l'efficacia ed interviene qualora vengano rilevate delle anomalie. Questo sistema si pone l'ambizioso obiettivo di ridurre tempi e complicazioni delle procedure inerenti allo smaltimento e vuole anche ridurre i costi sostenuti dalle imprese. Questi ambiziosi traguardi possono essere raggiunti proprio grazie all'uso dei tag perché essi possono permettere la gestione della logistica dei rifiuti, come già succede in Europa. Addirittura, è possibile reperire soluzioni “off-the-shelf” (“sugli scaffali”). La possibilità di identificare, leggere, scrivere e di mutua interazione tra tag può permettere un elevato grado di automatizzazione nella gestione dei rifiuti. Si potrebbe, infatti, utilizzare diversi tag, ad esempio sui bidoni e sui camion in modo tale che non appena il bidone si avvicina al retro del camion, i tag si “riconoscono” e resta memorizzato il dato di avvenuta “discarica”. Questo stesso lettore potrebbe essere opportunamente rimpicciolito per essere indossato dall'operatore ecologico incaricato della raccolta e trasmesso automaticamente ad un sistema di gestione centrale che ne tenga traccia. Così, l'identificazione della tipologia di rifiuto, connessa alla tipologia di bidone, potrebbe avvenire tramite etichette divise per tipo. In tal modo sarebbe possibile correlare l'avvenuta raccolta dello specifico settore di rifiuti, l'operatore che ha compiuto l'operazione ed il giorno in cui lo scarico del bidone ha avuto luogo. L'autore è a disposizione nei commenti per eventuali approfondimenti sul tema dell'Articolo. Di seguito il link per accedere direttamente all'articolo sul Blog e partecipare alla discussione: http://it.emcelettronica.com/rfidacronimo-mille-possibilità
nella
E veniamo, infine, alla gestione dei rifiuti. Il riciclaggio rappresenta una parte importante della gestione dei rifiuti. Nel 2009 nasce, su
6
Il tuo sistema è affidabile? Scoprilo grazie all'MTBF 4 Ott 2012 di Piero Boccadoro
La materia dell'affidabilità dei sistemi, dei processi nonché dei prodotti è un campo vastissimo all'interno del quale si sente la necessità di fare ordine utilizzando figure di merito studiate ad hoc. Così discendono una serie di concetti che rendono questa materia strutturata e rigorosa. Quella di oggi è un'introduzione al “tempo medio tra i guasti" MTBF ma approfondiremo anche l'MTTF, l'MTTFd, il ROCOF e l'MTTR ed i parametri RAM: affidabilità (Reliability), disponibilità (Availability), manutenibilità (Maintainability). Quando si decide di realizzare un qualunque sistema, o prodotto, che è frutto di un processo produttivo, esiste la necessità di garantirne la manutenibilità ma anche la durata nel tempo. Così, la teoria probabilistica suggerisce la necessità di introduzione di una serie di figure di merito che ci permettano di caratterizzare non soltanto la vita ma anche la resa degli oggetti in esame. Il sistema, o il prodotto, nel tempo potrebbe aver bisogno di essere revisionato e quindi sarà necessario effettuare uno studio statistico, o caratterizzare in termini statistici, sui tempi e sui modi di intervento. Ad esempio, se una ditta ha in gestione un impianto di illuminazione stradale, sarà altamente sconveniente, dal punto di vista economico, effettuare verifiche ispettive giornaliere per controllare che tutte le lampade all'interno degli apparecchi siano in funzione e non effettivamente danneggiate. Piuttosto sarà una scelta intelligente quella di caratterizzare il sistema specifico sulla base di un'analisi
accurata di tutti gli interventi di cui può aver bisogno. Sempre rimanendo nell'ambito di questo esempio, potremmo subito ragionare sul fatto che un impianto di illuminazione stradale avrà bisogno della sostituzione delle lampade, della pulizia periodica degli apparecchi, della revisione dell'impianto elettrico e per ciascuno di questi interventi sarà necessario considerare il costo della manodopera, degli eventuali pezzi che sono da sostituire e così via dicendo. Affrontare questi interventi dal punto di vista statistico garantisce, come tutti noi facilmente intuiamo, che i costi generali di intervento si riducono perché è molto meno costoso poter andare sul posto a sostituire 10 lampade fulminate piuttosto che mettere in campo tutto il sistema di gestione della sostituzione di una lampada per ciascuna che si sia fulminata volta per volta. Se si comincia a considerare che una lampada dura in media 10.000 ore (anche se questa è una cifra indicativa e assolutamente non precisa perché dipende da tanti fattori tra cui il tipo di lampada!), che gli apparecchi d'illuminazione vanno puliti tanto più frequentemente quanto maggiore è la quantità di smog cui sono esposti (perché se l'impianto si trova in una galleria molto lunga certamente avviene prima), e via dicendo, si mette a sistema tutta una serie di fattori che rendono la gestione più efficace ed organica. Ma questo discorso non vale, certamente, soltanto per l'esempio che abbiamo citato ma anche per la manutenzione necessaria su un impianto industriale che effettui una determinata operazione, ad esempio una saldatrice. È evidente, quindi, che queste considerazioni possono essere applicate a qualunque aspetto della vita produttiva del tessuto industriale così come lo conosciamo oggi. Vediamo allora quali sono le figure di merito che possono aiutare a caratterizzare questi processi.
MTBF = Mean time between failure Letteralmente vuol dire "tempo medio fra guasti"; si tratta di una stima sul tempo che intercorre tra il verificarsi di un "fallimento" (che noi traduciamo propriamente con guasto) ed il
7
successivo. In pratica è una misura dell'affidabilità del sistema, del processo o del prodotto. L'oggetto dell'analisi è quasi irrilevante se si considera che il concetto è quello della durata media. Questo indicatore può essere calcolato come la media temporale aritmetica tra i guasti del sistema in esame. Si tratta, tipicamente, di un modello che prevede l'ipotesi che non appena il sistema si sia "guastato", venga immediatamente ripristinato. Questa ipotesi risulta esemplificativa ed utile in questo momento, anche se, vedremo tra un attimo, che non è esattamente così perché esiste un'altra figura di merito di interesse che prende il nome di "mean time to repair" (MTTR) il cui scopo è proprio quello di caratterizzare il tempo medio che intercorre tra il guasto e la successiva riparazione.
vero in questo modo perché, a seconda di una serie di parametri tra cui il budget disponibile, è possibile che ci siano alterazioni "tollerate" che garantiscono comunque un prodotto conforme alle specifiche anche se non rigidamente "perfetto".
È chiaro che questi indicatori contribuiscono al processo di revisione, di controllo e, se vogliamo, di mantenimento dello standard qualitativo. In quest'ottica è necessario, soprattutto, definire che cosa per noi è un guasto ovvero che tipo di sistema stiamo analizzando e come può guastarsi. Altra cosa che è necessario considerare e che il sistema viene assunto riparabile ma questo non è necessariamente sempre vero ed è per questo che bisogna considerare il tipo di guasto ed il tipo di sistema, o di processo.
Tenendo a mente i concetti espressi fino a questo momento, ci si riferisce al MTBF come alla somma dei “periodi di funzionamento", ovvero gli intervalli di tempo che intercorrono tra l'inizio del "downtime" fino alla fine del "uptime", rapportato al numero di guasti che sono occorsi.
Per capire come un sistema può guastarsi è necessario, prima di tutto, definire il concetto di guasto che però risulta piuttosto intuitivo perché per guasto possiamo intendere qualunque tipo di alterazione o malfunzionamento o anomalia operativa rispetto alle condizioni di progetto del sistema. Ciò vuol dire che non appena il processo dovesse produrre un prodotto anche solo leggermente non conforme a quello risultante dall'operazione di un macchinario perfettamente funzionante, allora sussiste il concetto di guasto. Ovviamente questo non è sempre rigorosamente
Per verificare che un sistema o un processo stiano funzionando in maniera corretta sarà necessario prevedere un'ispezione di tutti i prodotti che si ritiene utile controllare. L'analisi che può essere effettuata in questo caso può prevedere l'utilizzo di metodi di campionamento per attributi per variabili. La stima del valore MTBF rappresenta un elemento importante, quindi, nello sviluppo dei processi e così una serie di figure professionali inquadrate nello studio e nella caratterizzazione di questi parametri sono deputate a verificare e validare i processi secondo metodi o standard che si riferiscono a campi specifici oppure che sono codificati. Alcuni esempi in tal senso sono rappresentati da MIL-HDBK-217F, Telcordia SR332, Siemens Norm, FIDES,UTE 80-810 (RDF2000). Scopo di questi metodi è quello di concentrare gli sforzi di progetto per cercare di migliorare quelli che sono i suoi punti deboli.
Questa figura di merito può essere, spesso, indicata con la lettera θ e può essere anche definita in funzione del valore atteso della funzione densità di probabilità di fallimento (ovvero come funzione densità di tempo intercorso fino al guasto successivo) calcolando per la quale funzione, ovviamente, vale la relazione cumulativa
Oltre l’MTBF Ci sono molte grandezze caratteristiche e figure di merito significative che possono essere utilizzate in sostituzione oppure in contemporanea con quella di cui abbiamo parlato; esiste il MTBSA (acronimo di Mean Time Between System Abort)
8
ed anche MTBCF (che sta per Mean Time Between Critical Failures) oppure ancora il MTBUR (sigla che significa Mean Time Between Unit Replacement). Ciascuna di esse risulta utile a seconda dell'applicazione, pertanto questa nomenclatura viene utilizzata anche per effettuare una differenziazione tra i tipi differenti di guasto che possono occorrere. In particolare è, ora, il caso di specificare che il guasto non è necessariamente impedente per il funzionamento o definitivo ma può essere anche, come accennato in precedenza, una "deriva" del processo. Un esempio tipico potrebbe essere la realizzazione della filettatura di un tubo d'acciaio che ha necessità di essere rigidamente uguale a se stessa per garantire lo standard ma il processo potrebbe produrre filettatura leggermente anomale come risultato di una macchina la cui precisione sta degradando nel tempo. Piuttosto che il calcolo dell’MTBF, a volte, si preferisce utilizzarne l'indicatore MTTF, ovvero il cosiddetto "tempo medio al guasto". Questa scelta viene spesso adottata nel caso in cui stiamo parlando di sistemi il cui funzionamento viene completamente ripristinato a seguito di un guasto. Questo è concettualmente diverso da quello che succede con l’MTBF perché questo secondo indicatore "rileva" l'intervallo di tempo che intercorre tra guasti in un sistema che venga riparato. Esiste, infine, l’MTTFd che è fondamentalmente lo stesso indice ma considera soltanto i guasti dei quali potrebbero generare situazioni pericolose, ad esempio danni irreversibili ai macchinari oppure condizioni di funzionamento che non rispettano gli standard sulla sicurezza.
Calcolo degli indicatori È importante, adesso, accennare alla metodologia di calcolo dell’MTTF e dell’MTTFd. Per entrambi definiamo B10 il numero di operazioni che il dispositivo sarà in grado di effettuare entro e non oltre il 10% del campione di quelli che risulteranno danneggiati e con B10d l'analoga quantità riferita al caso di potenziale danno. Se nop rappresenta il numero delle operazioni che il processo che segue, avremo:
MTTF = B10/(0.1 nop) e MTTFd = B10d/(0.1 nop)
Tasso di guasto Con il termine "tasso di guasto" si vuole indicare la frequenza con la quale un componente di un sistema, elettronico o meno, tende a rompersi. Questa cifra di merito viene espressa in termini di unità danneggiate per ogni ora (di funzionamento). Viene, generalmente, indicata con la lettera λ e riveste un ruolo di grande importanza nell'affidabilità. Il tasso di guasto di un sistema dipende, solitamente, dal tempo con un tasso che varia nell'ambito del ciclo di vita del sistema stesso. Immaginando di rivolgere la nostra attenzione al caso di un'automobile, il suo tasso di guasto per un certo numero di anni di servizio (supponiamo cinque) può essere molto più grande rispetto al tasso di guasto riferito ad un periodo di tempo della stessa durata ma precedente. Per essere chiari, i primi cinque anni di utilizzo la macchina subirà meno riparazioni rispetto ai secondi cinque anni e così via nel tempo. È questo il motivo per cui negli interventi di manutenzione programmata, nelle previsioni e nei tagliandi si cerca di controllare i vari componenti dell'automobile in funzione della sua età, calcolata dal momento dell'immatricolazione. È, infatti, altamente improbabile un danno alla cinghia di trasmissione dopo 5000 km o che renda necessaria la sostituzione degli pneumatici dopo soli 2000 però, ecco, il termine usato è proprio quello giusto: è improbabile. E questo dipende dal fatto che, tipicamente, l'usura è di un certo tipo e si suppone che sia più o meno omogenea in maniera trasversale rispetto al tipo di automobile in esame e che si possa standardizzare il tempo medio di funzionamento senza guasti, assimilando che l'auto sia il sistema è che i suoi componenti siano i pezzi che possono danneggiarsi. Nella pratica, il tempo medio tra i guasti, l’MTBF, viene spesso utilizzato in luogo del tasso di guasto. Questa approssimazione è valida ed utile quando il tasso di guasto può essere assunto costante, il che corrisponde al caso in cui il sistema in esame sia comunque complesso e costituito da diversi componenti. In alcuni campi applicativi, poi, questa assunzione risulta particolarmente
9
utile; esempi di questa affermazione sono gli ambiti aerospaziale e militare.
intermedie che non siano soltanto verifiche ispettive esterne ma anche interne all'azienda.
Per questo particolare studio viene, spesso e volentieri, utilizzato un diagramma noto come "vasca da bagno", come riportato in figura
Nell'ambito di particolari processi, detti processi di rinnovamento, in cui il tempo di riparazione di un guasto può essere trascurato e la probabilità del guasto rimane costante nel tempo, il tasso di guasto può semplicemente essere visto come l'inverso dell’MTBF. Un criterio simile viene utilizzato nell'industria del trasporto, specialmente quando parliamo di ferrovie e trasporto su gomma; lì un parametro "cruciale" è rappresentato dall’MDBF, ovvero la "distanza media (percorsa) tra i guasti". Questa figura di merito viene introdotta al fine di correlare le distanze percorse con i carichi trasportati ed i mezzi utilizzati.
A tale curva si fa anche riferimento con il nome di "periodo di vita utile". Il motivo per il quale si preferisce utilizzare l’MTBF è dato dal fatto che l'uso di numeri interi positivi grandi in modulo, di solito, risulta poco intuitivo o comunque non semplice; quindi, in luogo di cifre come 150.000 ore oppure 100.000 km, si utilizzano i numeri più piccoli come 1,5 oppure 3 all’ora. L’MTFB è un parametro importante quando si vuole caratterizzare un sistema specie quando il tasso di guasto ha necessità di essere gestito con grande attenzione; un esempio sopra tutti è quello cui abbiamo già fatto cenno in precedenza, ovvero quando il guasto del sistema possa portare un impianto industriale a lavorare in condizioni potenzialmente dannose per la salute dei lavoratori. Ecco per quale motivo questa figura di merito compare spesso nei parametri di progetto che si desidera inseguire, quindi diventa una specifica. Da questo parametro, inoltre, dipenderà, ovviamente, anche la sequenza degli interventi di manutenzione e di controllo. Specifiche politiche di gestione potrebbero portare anche all'istituzione di scadenze di controllo
I tassi di guasto sono fattori importanti quando si voglia calcolare variabili come il premio di un'assicurazione, i costi di manutenzione del sistema, ma trova largo impiego anche nel campo del commercio più in generale e della finanza perché risulta fondamentale per dimensionare una grande quantità di parametri. Vediamo di darne, però, una definizione più formale; possiamo definire il tasso di guasto come "il numero totale di guasti tra oggetti di una popolazione rapportato al tempo di operatività dell'intera popolazione nell'ambito di uno specificato intervallo di rilevazione, in condizioni specificate. (MacDiarmid, et al.) Anche se il tasso di guasto viene spesso considerato come la probabilità che il guasto si verifichi in uno specifico intervallo temporale che non abbia visto guasti prima dell'istante di tempo di osservazione, questa grandezza non rappresenta affatto una probabilità perché può superare il valore unitario. Non si tratta dunque di una variabile la cui cumulativa verifica sia la somma della probabilità totale. Inoltre, il fatto che questa grandezza sia espressa in percentuale potrebbe essere percepito come una misura relativa, specialmente se dovesse essere calcolato per sistemi che siano ripristinabili o che non abbiano un tasso di guasto costante. Può essere definito, grazie all'utilizzo della funzione "affidabilità" R(t), come il rapporto λ(t)=f(t)/R(t)
10
in cui la funzione f indica il tempo che intercorre fino al primo guasto mentre R(t)=1F(t). Quest'ultima posizione è lecita in quanto F è una funzione cumulativa. Se si fa riferimento, dunque, ad un intervallo di tempo Δt, si ha: λ(t)=(R(t)-R(t+ Δt))/ (Δt R(t)) Così, la funzione λ dimostra di essere una probabilità condizionata alla funzione densità del guasto. La condizione è rappresentata dal fatto che il guasto può non aver avuto luogo entro l'istante di osservazione.
Il concetto di rischio Da quanto detto finora discende che esiste, ed è pregnante, il concetto di rischio associato al fatto che il guasto si sia verificato. Così esistono due figure in merito fondamentali che riescono a descrivere queste possibilità e sono: l’hazard rate ed il ROCOF (Rate of OCcurence Of Failure). Questa grandezza non è affatto omologa al tasso di guasto, benché molti facciano confusione. Il rischio, ovvero "hazard rate", è un concetto diverso dal ROCOF così come sono diversi entrambi dal tasso di guasto perché il ROCOF può essere utilizzato solamente per sistemi che siano ripristinabili e quindi riparabili. Se si vuole calcolare il tasso di guasto anche per intervalli di tempo più piccoli si ottiene la "hazard function", che indichiamo con h(t); questa grandezza diventa il tasso di guasto istantaneo (!) se l'intervallo temporale lo facciamo tendere a zero calcoliamo, dunque, questa grandezza come limite di h(t). È evidente che un tasso di guasto continuo dipenda dalla distribuzione F(t) che, come abbiamo già detto, è una funzione cumulativa ed è deputata a descrivere la probabilità di guasto fino al tempo t.
anche molto frequente che queste grandezze siano espresse con notazione ingegneristica, ovvero in parti per milione (ppm).
I guasti nel tempo Esiste un'altra figura di merito, un ulteriore tasso che è necessario considerare ed è il FIT, acronimo di Failures In Time, cioè "guasti nel tempo"; si tratta del numero di guasti che ci si può aspettare che avvengano in 1 miliardo di ore di funzionamento del dispositivo. Il numero così grande suggerisce che l'industria che maggiormente può beneficiare dall'introduzione di questa figura di merito è proprio quella dei semiconduttori, per i quali il tasso di guasto è estremamente basso proprio perché si segue il diagramma a vasca da bagno. Esiste una relazione precisa tra il FIT e l’MTBF ed è la seguente: MTBF = 1,000,000,000 x 1/FIT.
Mean Time to Repair (MTTR) Questa cifra è significativa perché si utilizza per dare una misura della manutenibilità dei sistemi che è possibile riparare. Rappresenta il tempo medio necessario per effettuare la riparazione del componente danneggiato e può essere espressa matematicamente come il tempo totale speso per effettuare operazioni di manutenzione correttiva diviso per il numero totale di interventi di manutenzione nel periodo di tempo specificato.
Così la "hazard function" può essere definita come:
Una delle grandezze che resta "esclusa" da questa analisi è il tempo necessario per far pervenire i ricambi oppure perché gli operatori si portino sul luogo dove deve essere effettuato l'intervento e questo dipende dal fatto che questi fattori vengono tenuti in conto nelle dinamiche logistiche e amministrative e possono rientrare nel bilancio del "Downtime".
I tassi di guasto possono essere espressi utilizzando qualunque unità di misura temporale ma, come si intuisce da quello che è stato detto in precedenza, è molto più comune l'utilizzo delle ore piuttosto che di minuti o secondi, per via delle grandi (in modulo) quantità in gioco. È
Esistono progetti (processi) che fanno parte di una classe che prende il nome di "fault-tolerant", ovvero resistenti ai guasti. Si tratta di sistemi che possono essere realizzati grazie al principio della ridondanza oppure che, in qualche modo, sono in grado di autoripararsi. Qui l’MTTR viene
Pertanto possiamo scrivere:
11
tipicamente considerato comprensivo del tempo di "latenza" del guasto, ovvero il tempo necessario perché il guasto venga rilevato (oppure divenga evidente).
• affidabilità: è la probabilità che il sistema operi nei modi prestabiliti così come da specifiche di funzionamento per un dato periodo di tempo in date condizioni;
L’MTTR è, come intuitivamente da tutto questo discorso si arguisce, parte delle condizioni contrattuali proprio per l'azienda che nell'esempio precedente aveva in gestione l'impianto di illuminazione stradale oppure di una società di revisione esterna che controlli il processo di fabbricazione di quell'automobile di cui si parlava prima. Una delle condizioni che si potrebbe chiedere di rispettare è che l'intervento ed il ripristino delle condizioni ottimali di funzionamento avvengano entro e non oltre le 24 ore, cosa assai frequente quando il rischio per la salute dei lavoratori diventa alto.
• disponibilità: attitudine di un sistema, in un dato istante, a svolgere le funzioni prestabilite, come da specifiche di funzionamento, nelle condizioni operative prescritte, supponendo che siano stati assicurati gli opportuni interventi di manutenzione necessaria al suo mantenimento in efficienza;
Ad ogni modo, sempre rimanendo nel contesto del contratto di manutenzione, potrebbe essere molto importante effettuare una distinzione sulla base del fatto che l’MTTR misuri il tempo medio tra l'istante in cui il guasto viene scoperto perché è palese fino al momento in cui il sistema viene ripristinato (Mean Time to Recovery) piuttosto che una misura del tempo trascorso tra il momento in cui inizia la riparazione e quello in cui il sistema viene ripristinato (Mean Time To Repair).
I parametri RAM Caratteristiche che sono fondamentali per i sistemi, comunque essi siano conformati si tratta di: affidabilità (Reliability), disponibilità (Availability), manutenibilità (Maintainability). Anche in questi casi, e per queste specifiche aree, vengono definiti degli standard e dei criteri al livello legislativo. Com'è noto esistono norme e regole tecniche che possono rappresentare standard dei jure o de facto oppure essere del tutto volontarie. A seconda del tipo di norma alla quale si fa riferimento i criteri possono essere diversi e per questo conviene far riferimento ad una norma che specifica esattamente di che tipo di grandezze stiamo parlando. Secondo le UNI 10147:
• manutenibilità: è la proprietà di un sistema ad essere mantenuto, definita come la probabilità che un'azione di manutenzione attiva possa essere eseguita durante un intervallo di tempo dato, in condizioni date mediante l'uso di procedure e mezzi prescritti. In generale i requisiti qualitativi di manutenibilità sono riconducibili ad accessibilità, estraibilità e manipolabilità. I parametri RAM, così come dalla UNI 10147, sono sempre soggetti a modifica e aggiornati nel corso del tempo. Le disposizioni cui si fa riferimento oggi sono direttive ISO (International Organization for Standardization) cui tutti gli Stati membri devono fare riferimento e che devono impegnarsi a recepire e far applicare.
In chiusura Queste, è chiaro, sono solo alcune delle grandezze che intervengono quando si cerca di stabilire, studiare, caratterizzare un sistema o un processo ma rappresentano una solida base grazie alla quale si può provare a tenere sotto controllo quella componente aleatoria di cui parlava Murphy perché il significato delle sue parole non era davvero la resa della scienza al caso ma uno sprone agli scienziati per ragionare provando a tenere sotto controllo tutti i parametri che servono in modo da non avere quelle sgradite sorprese che un po' tutti tendiamo ad etichettare come "sfiga". L'autore è a disposizione nei commenti per eventuali approfondimenti sul tema dell'Articolo.
12
Di seguito il link per accedere direttamente all'articolo sul Blog e partecipare alla discussione: http://it.emcelettronica.com/tuosistema-è-affidabile-scoprilo-grazie-allmtbf
13
NFC: il grande escluso dell'iPhone 5 9 Ott 2012 di Piero Boccadoro
Per alcuni, è la "solita" rivoluzione". Per altri, "solo" un marchingegno infernale. Non importa di quale "squadra" facciate parte: l’iPhone 5 è arrivato! E tra tutte le novità che la Apple ha introdotto pare mancarne una che avrebbe veramente potuto dar vita alla rivoluzione del modo in cui oggi concepiamo l'interazione con gli oggetti. NFC, ancora una volta, sembra voler dire (per la Apple) "NotFor Commerce". Vediamo invece cosa significa la tecnologia NFC e cerchiamo di capire i motivi dell'esclusione da parte di Apple, potrebbe averci visto giusto, ancora una volta! Di recente, il nuovo nato di casa Apple ha visto la luce ed oltre alle solite polemiche tra chi è devoto seguace della religione fondata da Steve Jobs e chi invece ne è oppositore, vanno fatte alcune considerazioni più oggettive. Tra le tante leggi del mercato, così come lo conosciamo oggi, ce n'è una dalla quale non si può proprio prescindere: quando un nuovo prodotto nasce, deve fare qualcosa di più di quello che già fanno i correnti e possibilmente far meglio il resto. Così, una delle novità più attese per il nuovo iPhone era la possibilità che venissero implementate alcune soluzioni nel campo delle Near-Field Communications. Samsung, Motorola e Nokia, tra le altre, che oggi rappresentano aziende rivali e dirette concorrenti, lo hanno già fatto ma questa volta l'azienda americana ha deciso di "andare sul sicuro". Tuttavia non tutti i modelli di telefoni cellulari
e smartphone sono disponibili oggi con pieno supporto di questa tecnologia. Quando il responsabile del marketing Phil Schiller, durante una breve intervista, ne ha spiegato le caratteristiche, molti si aspettavano certo che queste tre letterine fossero pronunciate ma dopo aver spiegato le nuove caratteristiche del display e la potenza di calcolo del processore l'attesa non è stata ripagata. I fan, i giornalisti, i presenti, com'è facile immaginare, sono rimasti delusi. Apprendere che il nuovo iPhone non includerà alcuna tecnologia NFC pare davvero rappresentare un'occasione persa. Questa tecnica, per chi ne sentisse parlare per la prima volta, rappresenta un complesso sistema di apparati ed informazioni che permettono l'interazione del cliente, o più in generale della persona, con una serie di servizi che vanno dal pagamento del conto in un ristorante o di un capo di vestiario, alla prenotazione del ticket in un museo oppure in un albergo. Ma queste sono soltanto alcune possibilità che si celano dietro la sigla NFC. La gestione delle carte di credito, delle prenotazioni, dei coupon ma anche dei QRcode oppure dei barcode può esser fatta grazie alla lettura dei dispositivi con il semplice sistema della prossimità. E sebbene soltanto parlarne aiuta ad immaginare un mondo fatto di interazioni più veloci e avveniristiche, la "rivoluzionaria" compagnia americana pare abbia deciso che per lei questa rivoluzione, per ora, “non s’ha da fare”. L'idea che sta alla base delle tecnologie NFC è semplice: sostituire il gesto della "strisciata" della carta al semplice acquisto tramite passaggio vicino ad un terminale. Lo scenario che quest'idea profila, come sempre, propone pro e contro; un indubbio vantaggio è rappresentato dal minor tempo d'attesa alle casse per i clienti. Tuttavia, è chiaro che il numero di dipendenti che un grande centro commerciale, o un negozio in generale, avrebbe bisogno di avere sarebbe comunque inferiore perché non ci sarebbe più effettivamente bisogno del cassiere! Sebbene la tecnologia rappresenti, ad oggi, il futuro, sarebbe
14
comunque necessario, da parte dei commercianti, che venissero aggiornati i loro sistemi per renderle compatibili con la lettura di questa nuova generazione di carte di credito. La diffusione sarebbe realmente possibile solo allora. Tante, e comunque unanimi, le reazioni alla notizia: da Tudor Aw, della KPMG (la società olandese di consulenza, tra le più grandi ed importanti in Europa), il quale ha commentato questa notizia come "la più grande sorpresa" che la presentazione potesse portare, fino a Fred Huet, della Greenwich Consulting, il quale si è espresso in maniera piuttosto netta affermando che "la decisione potrebbe costare (cara) alla Apple". Secondo quest'ultimo, infatti, "è solo una questione di tempo prima che gli smartphones rimpiazzino le carte di credito" ridefinendole dal modo in cui la concepiamo oggi. Per questo, la Apple potrebbe aver perso un'occasione preziosa per garantirsi la leadership in questa fetta di mercato". L'occasione, infatti, sarebbe stata ghiotta perché tutte le carte di credito attualmente presenti sul mercato avrebbero potuto essere convertite grazie all'iPhone. Dello stesso avviso anche Sanjay Sakhrani, analista presso Keefe, Bruyette & Woods, secondo cui l’adozione da parte del colosso di Cupertino sarebbe stata la molla che avrebbe smosso il mercato. John Donahoe, CEO di Ebay e PayPal, si è spesso lasciato andare ad un gioco di parole, che oggi sembra una reinterpretazione delle scelte della Apple, come se l'acronimo NFC volesse, in realtà, di dire "Not For Commerce". Questa battuta si va ad inquadrare in uno scenario in cui effettivamente "il gran rifiuto" di Apple stranisce ed allontana la prospettiva che i nostri dispositivi cellulari possano diventare, di fatto, dei veri propri portafogli a batteria. La sua posizione, peraltro non nuova, è sempre stata quella di critico osservatore; "Quando (NFC) sarà una tecnologia pronta (per essere usata)? Mai!" ha dichiarato. E gli ha fatto eco anche Anuj Nayar, sempre di Paypal, che, in un’intervista a CNET, ha dichiarato "la storia ci ha mostrato che, a meno che una tecnologia non sia davvero utile per far risparmiare tempo o denaro alle persone, mai seriamente adottata." Secondo lui si tratta di "una tecnologia a caccia di un problema perché avvicinare il telefono ad un lettore non è realmente
più veloce che strisciare una carta. Anzi, è più lento." Corale, quindi, la preoccupazione che la decisione possa effettivamente causare un ritardo significativo nell'affermarsi di questa nuova frontiera della spesa. Tuttavia questa scelta, come spiegato da Schiller in alcune interviste rilasciate, è stata fatta per far posto a Passbook, un app che sarà in grado di mettere insieme QR-code, tickets, coupons e tessere basate su smartcode sul nuovo iPhone. Formula che vince non si cambia, quindi; sarà ancora una volta un app a gestire tutto questo. E secondo alcuni analisti di mercato si tratta comunque di un passetto in quella direzione, sebbene non ci sia la possibilità di collegare carte di credito e di debito.
Lo stato delle cose e cos’hanno fatto gli altri Ma parliamo di concorrenza: mentre più o meno tutti ci affanniamo a descrivere meticolosamente cos'ha fatto o non ha fatto la Apple, un analista della Enders Analysis, Benedict Evans, commenta la notizia così: "NFC è in giro da tanto tempo ma non è mai andato da nessuna parte". Secondo lui, infatti, "ci sono diversi modelli di telefoni cellulari più che moderni in grado di supportare NFC & Co. ma in realtà nessuno di questi lo fa sul serio". In pratica, è come se tutti fossero consapevoli del fatto che quello è il futuro ma nessuno sapesse come arrivarci, o vedesse un sentiero davanti a sé. Però qualcuno un passetto nella direzione giusta l’ha fatto: tra i dispositivi che potrebbero fare "al caso" dell’NFC, secondo Evans, ci sarebbero il Samsung Galaxy S3, la nuova serie di Nokia, Lumias, il Google Nexus, Sony Experia e pochi altri.
Una solida base Uno degli aspetti che avrebbe reso questo "investimento" più sicuro è certamente rappresentato dall'ormai consolidato iTunes Store. C'è un cospicuo numero di utenti, stimato intorno alle 400.000 unità secondo Eddy Cue, a capo della sezione “Internet Software and services” della Apple, il che rende il colosso di Cupertino una delle aziende con il maggior numero di carta di credito affiliate. Si contende
15
il primato con una grandi nomi, tra cui PayPal, Microsoft (Xbox), Sony (PlayStation Network) ed Amazon. Secondo Evans, invece, questa non è una scelta insensata perché l'iPhone può rappresentare "un prodotto affidabile che i consumatori possono comprare senza la paura che sparisca dal mercato". Ciò costituisce un vantaggio anche per le aziende che vogliono investire in questo settore. Rispetto ai concorrenti la sua opinione è che "stiano inserendo supporti tecnologici all'interno dei loro dispositivi cellulari solo per vedere se funzionerà. Questo vuol dire che nessuno realmente crede in questa tecnologia. Tuttavia le persone sanno che se la Apple inserisce l’NFC nel nuovo iPhone, allora sarà anche del nuovo iPad. Se pensate a Samsung, l’S3 è NFC compliant mentre il Note 10.1 no. La gente che lavora alla Apple non intende aggiungere caratteristiche fintanto che non si accerta che alle persone possano davvero servire. Non hanno intenzione di inserire una telecamera frontale se il loro sistema non prevede la video chiamata, e non sa che funziona alla perfezione". Un atteggiamento prudente e responsabile, quindi, che punta a suggerire ai clienti un senso di organicità e struttura nella progettazione e commercializzazione di un prodotto che deve poter servire. Ma a questo punto la discussione si sposta su un altro terreno di confronto, ovvero le compagnie che lavorano con Android; secondo Evans il loro grado di libertà nello sperimentare è molto maggiore perché quello che fanno è "inserire all'interno dei loro dispositivi cellulari una tecnologia e sperare che, nel tempo, nasca il supporto software necessario per il funzionamento. Il problema con una tecnologia come l’NFC è che perché valga la pena di averla, deve essere diffusa." In America, tuttavia, questa soluzione di pagamento è già supportata da diverse società di capitali ed aziende, nomi affermati e validi sul mercato (stiamo parlando di Isis,una joint venture tra Verizon Wireless, AT&T e T-Mobile ma anche American Express , JPMorgan Chase e Capital One Financial).
Ma allora, se esistono società, almeno in America, che permetterebbero la diffusione, magari garantendo investimenti per effettuare un aggiornamento dei sistemi diffusi all'interno dei negozi, il problema qual è? Dove che il circolo virtuoso dello sviluppo tecnologico si inceppa? Si tratta del proverbiale "cane che si morde la coda" perché chi produce i cellulari non vuole accollarsi il rischio (e quindi i costi) di variare il processo produttivo in modo tale da inserire nuova tecnologia senza la garanzia che effettivamente funzioni già. Nel frattempo, per i negozianti, i commercianti in genere, sarebbe un investimento inutile effettuare l'aggiornamento dei sistemi di pagamento senza che le persone possa effettivamente poi beneficiarne (e loro ammortizzare i costi!). E se è così in America, figuriamoci quanto questo durerà in Italia… Non solo, ma questo lancio controverso ha "causato" l'annuncio della Isis con il quale si ritarda ufficialmente l'avvento delle tecnologie NFC di almeno un anno.
Una questione di qualità Tuttavia, ad onor del vero, è necessario specificare che le tecnologie NFC non sono le uniche che permetterebbero il pagamento in maniera così semplice ed elementare. “NFC” è un acronimo che potrebbe avere mille declinazioni, tra cui il Bluetooth e la tecnologia RFID. È vero, quindi, che limitare lo sviluppo di questo metodo all'integrazione di un chip dedicato sembra un po' insensato. Inoltre c’è che notare come "Secure Element NFC", ovvero il metodo di autenticazione ed interazione di cui stiamo parlando, potrebbe non essere del tutto sicuro perché, potenzialmente, tutti coloro che hanno preso parte al processo produttivo di ogni singolo apparecchio potrebbero, potenzialmente, avere accesso a dati personali. Certo, il numero di potenziali "intrusi" sarebbe comunque ristretto se il dispositivo cellulare fosse un brevetto proprietario di un'unica azienda ma il timore rimane. C'è poi da considerare la reale possibilità che siano gli utenti stessi a farsi la seguente domanda: "ma è davvero così difficile tirar fuori la carta di credito dal portafogli per pagare?"
16
E questa non è una domanda così stupida perché, come accade per tutta la nuova tecnologia, questo tipo di persone andrebbero convinte del fatto che c'è un effettivo, reale, concreto vantaggio in questo "switching". E, almeno in Italia, siamo freschi di conversione al digitale terrestre che, in un considerevole numero di casi, ha comportato un gran numero di problemi e relativamente pochi vantaggi. Sarebbe giusto, quindi, pensare a come fare a convincere la proverbiale "vecchina del piano di sotto" dell'infinito vantaggio che questa tecnologia le potrebbe portare. Un ulteriore aspetto che completa il quadro di analisi sulla questione è il numero di terminali di cui un negozio avrebbe bisogno per supportare il volume di traffico potenziale sulla rete. Immaginate se tutti i clienti di un ipermercato la domenica pomeriggio avessero un iPhone e volessero pagare tutti contemporaneamente su un unico terminale…sarebbe il collasso! È, quindi, importante che lo sviluppo tecnologico proceda di pari passo sia da parte di chi la tecnologia la deve proporre, sia da parte di coloro i quali dovranno usarla. La domanda, quindi, diventa: oggi l'intero sistema è stato "dimensionato" a dovere? E ancora, se la risposta alla domanda precedente fosse no, non sarebbe il caso di "ingegnerizzare" il problema prima di darne diffusione?
Comanda il mercato A qualcuno potrebbe sembrare che la Apple sia nella condizione di poter determinare l'andamento del mercato in maniera importante; tuttavia non è così perché il volume di vendite cui fa riferimento è di circa il 20%. Inoltre, come dicevamo, altri hanno provato a dare un segnale positivo riguardo all'utilizzo dell’NFC: a dicembre 2010 Google ha rilasciato il suo Nexus S, dichiarando che Android permetterà l'utilizzo di software NFC compliant. Nel frattempo Paypal, Visa ed eBay ci sono già dati da fare per sviluppare i loro "portafogli virtuali". Questi progetti puntano ad unificare le carte di credito e di debito, i conti bancari, gli stipendi, le bollette, i coupon in modo tale da rendere l'intero traffico del pagamento tutto virtuale, anche quando si sia fisicamente in un negozio. Se Carey Kolaja, di PayPal pensa che "non sia la tecnologia che vincerà la guerra dei portafogli
virtuali ma il riscontro dei clienti" è ragionevole pensare che la Apple continuerà ad aspettare prima di "aggredire" questa fetta di mercato. Il tipo di approccio non è, in realtà, molto dissimile da quanto è stato fatto con la tecnologia wireless 4G LTE: la compagnia rimasta, infatti, in attesa fino a che la copertura non fosse stata sufficientemente vasta da permettere alla iPhone di sfruttarla.
Tutto qui? In realtà, non è solo questo il problema del nuovo melafonino. Ci sono altre pecche a rendere gli utenti mediamente insoddisfatti. Se da un lato Nokia, con la serie Lumia, ha introdotto, per la prima volta, la funzionalità del caricamento wireless, diversi sono gli utenti che male hanno accolto un'altra novità dell'iPhone 5 in fatto di alimentazione: il nuovo connettore. Anche sulla modalità di ricarica wireless Schiller si è dovuto esprimere ed ha commentato che sarebbe stato necessario "creare un altro dispositivo che è comunque necessario collegare ad una presa a muro" e questo "nella maggior parte delle situazioni, è più complicato". Schiller ha, inoltre dichiarato che "Questo è il nuovo connettore per molti anni a venire", frase che rappresenta un chiaro impegno dell’azienda a garantire il supporto a Lightning , così come è avvenuto per il precedente, ovvero Dock. Tuttavia, qualcuno dei più delusi comincia a temere seriamente che una promessa del genere abbia il retrogusto amaro del contentino dato da un responsabile commerciale. E mentre le code per l’acquisto si allungano, la domanda che molti si staranno ponendo a questo punto, probabilmente è: che alla Apple non siano più così “foolish” e men che mai “hungry”? Solo i dati delle vendite lo potranno decretare. L'autore è a disposizione nei commenti per eventuali approfondimenti sul tema dell'Articolo. Di seguito il link per accedere direttamente all'articolo sul Blog e partecipare alla discussione: http://it.emcelettronica.com/nfcgrande-escluso-delliphone-5
17
Energy Harvesting: il futuro dell'alimentazione 11 Ott 2012 di Piero Boccadoro
I sistemi di alimentazione a batteria hanno grossi limiti strutturali, principalemte dovuti alla loro durata nel tempo. In natura però esistono fonti di energia rinnovabili, inesauribili e disponibili per essere opportunamente convertite. Tra queste si annovera certamente "la vibrazione". Approfondiamo l'Energy Harvesting: ecco come fenomeni di movimento possono creare energia. Grazie alla riduzione della dimensione dei circuiti per effetto dei progressi effettuati nella microelettronica e nella tecnica litografica, svolgere compiti elementari sta diventando sempre meno "power demanding” per i componenti elettronici e questo permette la creazione di fonti ecologiche e durature per le reti di sensori wireless. Lo sviluppo va nella direzione dell'utilizzo di fonti come l'energia solare, la temperatura e le vibrazioni.
L'esempio delle Reti di Sensori Gli ingegneri che lavorano nei settori "Ricerca e sviluppo" oggi hanno il compito di creare reti di sensori capaci di raccogliere dati che provengano da diversi punti all'interno dell'ambito di lavoro. Le reti sono fatte da una serie di sensori connesse tramite nodi; ciascuno di essi è in grado di raccogliere informazioni quali temperatura, vibrazioni, radiazioni luminose, e di trasformarle in dati numerici da inviare a stazioni di elaborazione. L'utilizzo di questi strumenti può essere utile in diversi campi applicativi, specialmente quando parliamo di
industrie ed areonautica. La produttività potrebbe risultare estremamente migliorata se questi sistemi diventassero parte del processo produttivo perché ridurrebbero i costi di monitoraggio, di manutenzione e, probabilmente, anche il tempo di inattività dei macchinari.
Non soltanto il campo industriale ed il processo produttivo potrebbero beneficiare di reti di sensori ma anche sistemi orientati al monitoraggio delle condizioni vitali dei pazienti, specie quelli per cui è necessario effettuare un controllo continuo (si pensi ad un Holter). Le batterie possono alimentare questi dispositivi per un tempo necessariamente limitato. Una soluzione potrebbe essere quella di utilizzare sistemi di Energy Harvesting (EH), ovvero sistemi che siano in grado di convertire una qualunque forma di energia non elettrica, comunque presente nell’ambiente di studio o applicativo, in elettricità. Si tratterebbe di tecnologia che potrebbe alimentare i nodi per un tempo virtualmente infinito e garantirebbe la sostenibilità anche ambientale. Sfortunatamente però, l'uscita di potenza di un sistema EH è generalmente limitata alle decine o alle centinaia di microwatt, mentre un sistema che trasmetta alle radiofrequenze, oppure un microcontrollore, possono consumare potenza nell'ordine dei milliwatt. Questo significa che diminuire il consumo di potenza è assolutamente indispensabile per poter pensare ad un impiego serio della tecnologia EH nelle reti di sensori. D'altronde che questo fenomeno avvenga è anche naturale: si tratta di effettuare una conversione grazie ad un sistema costruito dall'uomo e, per definizione, un sistema qualunque è caratterizzato da un rendimento che non sarà mai unitario!
18
Per una rete di sensori wireless (che da ora, per comodità indicheremo con l'acronimo WSN), il valore di energia richiesto per ottenere le informazioni, prelevate dall'ambiente in cui si trova il sensore, a valle della conversione, è di 500µJ. I dati in questione, infatti, ad esempio un valore di temperatura oppure di umidità, devono essere convertiti in numerico grazie all'utilizzo di un ADC ed inviati tramite protocolli, eventualmente standard come Bluetooth o Zigbee. Il valore di energia in questione potrebbe essere ridotto ad alcune decine di µJ nel prossimo futuro. Pertanto i nodi funzionali di una rete alimentata da sistemi EH (ed il loro funzionamento) possono essere schematizzati come segue:
lo scopo di massimizzare la "estrazione" di potenza dall’EH.
Diverse fonti ambientali, compreso la luce ed i gradienti di temperatura, sono oggetto di indagine per il modo in cui è possibile convertirle in energia. Ci soffermeremo, però, in questo caso, su quelli basati sulla vibrazione, particolarmente indicati per macchinari, motori e similari.
• il dispositivo EH, che "cattura" l'energia dall'ambiente in cui si trova e la immagazzina all'interno di una batteria; • i circuiti integrati, costituiti da sensori e trasmettitori, caratterizzati da un consumo ridotto (5µW); • misurazione ed emissione vengono effettuate quando il sistema ha accumulato energia a sufficienza per permettersi di effettuare l'operazione. Il dato, memorizzato in un buffer, viene, quindi, inviato; • il buffer è vuoto, il sistema ritorna in standby. Il ciclo di carica riprende, in attesa di una nuova misura.
Questo sistema di misura contiene ed utilizza microcontrollori e dispositivi elettronici che hanno la necessità, mediamente, di essere alimentati ad almeno 3 V. È necessario, quindi, che ci sia un convertitore in uscita all’EH per fare in modo che tale valore resti costante nel tempo. Questo ulteriore stadio di conversione ha
Questi sistemi sono detti “vibration energy harvesting” (in breve VEH) e si basano su un concetto piuttosto semplice, ovvero quello della risonanza. La loro struttura di base è costituita da un sistema a molla che è soggetto ad una forza di frizione. Il fenomeno della risonanza si instaura una volta che avvenga la stimolazione "ambientale". Questa struttura in particolare rende possibile l'amplificazione di vibrazioni di piccola ampiezza per effettuare la conversione in potenza in uscita. È importante notare che le vibrazioni ambientali, sia quelle naturali sia quelle ad opera dell'uomo, sono generalmente caratterizzate da frequenze molto basse, ovvero inferiori ai 100 Hz, nonché da ampiezze contenute, generalmente dell'ordine di poche decine di µm. Ecco per quale motivo si rende indispensabile sfruttare i fenomeni di risonanza per la conversione. Lo scopo dei ricercatori nel campo dell’EH è, quindi, quello di sviluppare convertitori in grado di convertire energia cinetica in potenza elettrica. L'effetto di questa conversione sul sistema può essere modellato con una forza elettrica che ha l'effetto di rallentare gli spostamenti della
19
massa quando l'energia meccanica viene estratta e convertita in elettricità.
Tipi di convertitori Esistono sostanzialmente tre tipi di convertitori che permettono la trasformazione di energia da meccanica ad elettrica: sistemi piezoelettrici, elettromagnetici ed elettrostatici. Quelli piezoelettrici utilizzano materiali caratterizzati da questo effetto (piezoelettrico, appunto) grazie al quale generano cariche elettriche, e quindi correnti, non appena sottoposti a stress meccanici. Il principio della conversione, in un materiale che goda di questa proprietà, vale anche al contrario ma risulta meno utile nella conversione di energia. La conversione elettromagnetica, invece, è basata sulla legge di Faraday-Newmann-Lenz, ovvero sulla terza equazione di Maxwell: il movimento di un magnete attorno al quale sia presente un avvolgimento genera un flusso di corrente concatenato diretto in maniera tale da creare equilibrio elettromagnetico. Il terzo tipo, infine, è quello elettrostatico che utilizza un elettrete (che in generale può essere un disco di Teflon caricato elettrostaticamente) per indurre cariche all'interno degli elettrodi. Questo sistema è caratterizzato da una disposizione opportuna degli elettrodi in cui uno di questi genera una variazione della carica presente sull’elettrete ed induce la circolazione di corrente. Indipendentemente dal principio di funzionamento, qualunque sia il convertitore in oggetto, l'uscita di potenza di un VEH è limitata da principi fisici, come accennavamo prima, salvo che non intervengano comportamenti non lineari. L'intensità di potenza prodotta sarà, quindi, proporzionale alla massa mobile e all'accelerazione al quadrato nonché inversamente proporzionale alla larghezza di banda. Ciascuno di questi sistemi ha, comunque, una serie di vantaggi e svantaggi che vanno tenuti in debita considerazione. Per fare questo, diamo un'occhiata alla seguente tabella:
Supponiamo di voler analizzare il comportamento di dispositivi piezoelettrici ed elettrostatici. Questi, in particolare, presentano alti valori di tensione d'uscita e si dimostrano semplici da "rettificare" grazie all'utilizzo di un ponte a diodi. Le scarse perdite resistive rappresentano un ulteriore attrattiva.
Per questi dispositivi è possibile ottenere una conversione fino a 10µW/g dalle vibrazioni ambientali (0.1G@50Hz) , quando la frequenza di risonanza viene "accordata" alla frequenza di liberazione ambientale.
Pros & cons L'effetto di risonanza rappresenta sia il principale vantaggio di questo sistema sia il suo limite più grande perché questi sistemi possono trasformare una maggiore quantità di potenza quando la frequenza di vibrazione ambientale si "adatta" (nel senso che combacia) con la loro frequenza di risonanza ma, nel migliore dei casi, hanno una banda molto stretta che non eccede intervalli di qualche Hz. Un ulteriore problema è l'insorgere di eventuali effetti non lineari; tali problematiche si affiancano a quelle relative al tuning della frequenza di risonanza. I limiti fisici al comportamento lineare rappresentano, di certo, la principale ragione per cui questo tipo di sistemi non è diffuso come sarebbe logico aspettarsi vista la loro attrattiva. Tuttavia esistono delle soluzioni che possono da un lato aumentare la banda e dall'altro diminuire gli effetti non lineari. Esistono, in particolare, sostanzialmente due modi per riuscire ad aumentare la larghezza di banda: è possibile
20
sfruttare fenomeni non lineari (passivi) oppure effettuare il tuning delle frequenze (attivi). Alcuni degli effetti non lineari studiati sono presenti in tutte le strutture meccaniche ma solo adesso si comincia a pensare di poterli sfruttare per guadagnare qualcosa sull'uscita dei sistemi VEH. Gli effetti non lineari non hanno necessità di essere "attivati" da una logica di controllo perché sono fenomeni tipicamente passivi, ovvero si verificano comunque. La sfida, pertanto, è quella di controllarne l'influenza in modo tale da permettergli di diventare utili piuttosto che semplicemente parassiti, se non addirittura dannosi. Durante la fabbricazione dei sistemi è necessario, pertanto, prevedere queste "influenze" e ciò è reso possibile dal fatto che vengono inserite delle molle che, grazie a comportamenti non lineari, incrementano del 50% la resa del sistema. Anche se questi fenomeni risultano piuttosto utili allo scopo, la seconda tecnica, ovvero quella del “tuning delle frequenze”, promette di realizzare i risultati più interessanti. L'obiettivo è quello di modificare la frequenza naturale di risonanza del sistema alterando la struttura delle molle che possono essere cambiate in maniera controllata da un circuito attivo che sia capace di cercare i parametri conformazionali ottimali per massimizzare l'uscita di potenza. Esistono, sostanzialmente, due modi per studiare i VEH piezoelettrici: il primo consiste nell'utilizzare strutture composte da tre strati dei quali due sono piezoelettrici ed uno a base di Silicio. Il primo risulta collegato al circuito di controllo il quale applica una tensione "capace" di “modificare” lo stato stesso e quindi la sua frequenza di risonanza. L'energia viene così "harvested” dallo strato piezoelettrico numero due. Il secondo metodo è basato su variazioni del carico elettrico; quando gli strati piezoelettrici hanno forti (grandi) coefficienti di accoppiamento, è possibile modificare la conformazione degli strati adattando il carico. Il risultato è quello di alterare la frequenza di risonanza.
Indipendentemente da quale dei metodi si scelga, è possibile ottenere il “tuning” della frequenza in un intervallo che si aggira intorno al 20% della frequenza "naturale". Come abbiamo visto in precedenza, per sviluppare il sistema che effettua l’energy harvesting è necessario l'utilizzo di un convertitore piuttosto che un sistema di immagazzinamento perché l'output di potenza è caratterizzato da alti valori di tensione AC e bassi valori di corrente che non possono essere utilizzati per i componenti. È necessario, dunque, fare power management; a questo risultato si può pervenire utilizzando diversi convertitori DC/DC. Taluni riescono addirittura a raggiungere un'efficienza dell'80% (ed anche più) e vengono pilotati in maniera piuttosto semplice con un consumo di potenza che non supera i 5µW. Un esempio è rappresentato dalla configurazione flyback.
Ed ecco un sunto di quanto detto ed un'idea di come questo scenario presente potrebbe evolvere.
Tirando le somme Quello che possiamo dire per certo dei sistemi di harvesting è che la riduzione del consumo di potenza per lo svolgimento di funzioni elementari è possibile anche grazie alla sostituzione della batterie che non rappresentano più l'unica possibilità (o meglio, la scelta obbligata) per alimentare un sistema. Il futuro di questi
21
dispositivi, e più in generale di tutta la tecnologia per EH sarà quello di riuscire a ridurre la dissipazione di potenza, il consumo di energie non “verdi” e, sperabilmente, di fornire ulteriori spunti per lo sviluppo della tecnologia come la conosciamo oggi. E voi, che cosa ne pensate? Avete mai lavorato con un sistema che fa Energy Harvesting? Per cosa lo avete adoperato? Con che risultati? L'autore è a disposizione nei commenti per eventuali approfondimenti sul tema dell'Articolo. Di seguito il link per accedere direttamente all'articolo sul Blog e partecipare alla discussione: http://it.emcelettronica.com/ energy-harvesting-futuro-dellalimentazione
22
L’importanza dei resistori di precisione negli strumenti sismici 16 Ott 2012 di Edi82
Gli strumenti sismici maggiormente impiegati per individuare un terremoto e per l’esplorazione sotterranea di oli e gas sono i sistemi sismografici: essi utilizzano una sorgente di energia che produce uno shock superficiale, come ad esempio gli esplosivi o la caduta di pesi per propagare un’onda d’urto all’interno della Terra. L’effetto è simile a quello creato da un terremoto di piccola intensità. Vediamo in questo articolo l'importanza dell'utilizzo di resistenze ad alta precisione ed alta stabilità nelle rilevazioni sismiche.
L’importanza degli strumenti sismici per i geologi Nonostante i geologi non conoscano esattamente dove si possano trovare i giacimenti di oli e gas, sanno però che è più semplice trovarli in certi tipi di rocce; l’olio, ad esempio, si raccoglie in rocce porose tra strati di rocce non porose. Ogni discontinuità nella struttura della Terra, come le interfacce tra gli strati di calcare, scisto e sale, si può tradurre in energia, che viene riflessa in superficie dove dei geofoni molto sensibili sono in grado di individuarla, anche in un’area molto vasta. Mentre una rapida serie di riverberi, provenienti da ogni interfaccia stratificata, raggiunge la superficie, l’energia viene amplificata e registrata.
ritorno dell’energia, poi passa attraverso una serie di amplificazioni crescenti in modo da mantenere appropriati i livelli di sensibilità. In questo modo è possibile eseguire una registrazione di tutti gli strati, dai segnali più superficiali ad alta energia a quelli più deboli, provenienti dagli strati più bassi della Terra. Gli strumenti per la misurazione devono cambiare sensibilità sequenzialmente ed in modo rapido, così da evitare la dispersione di dati provenienti da ogni strato. Dovrebbero anche essere a prova di rumore per non perdere i segnali più deboli. Dopo aver misurato e classificato temporalmente i segnali, è possibile produrre una mappa che rappresenti una sezione trasversale del terreno per i primi chilometri di profondità. Gli strumenti sismici che amplificano e registrano i segnali riflessi su un ricevitore a banda larga, utilizzano dei resistori SMD (Surface Mount Device) a strato metallico combinati e separati. In questo modo è possibile ottenere un tracking preciso degli amplificatori sia all’interno di un sistema sismico individuale, sia tra diversi sistemi interrelati. Quando i segnali vengono successivamente ricostruiti, i geologi possono basare le loro analisi su dati precisi. Un sistema sismico richiede che i resistori di attenuazione siano dotati di una precisione di risposta rapida per evitare la perdita di impulsi. Inoltre non devono essere sensibili ai cambi di temperatura e devono tracciarsi l’un l’altro in maniera esatta e presentare un disturbo di corrente molto basso, al fine di evitare la copertura del segnale riflesso. Il nucleo di un sistema sismico è il suo modulo amplificatore. Un amplificatore ad alto guadagno è selettivo nelle frequenze e richiede un range AGC (Automatic Gain Control) molto grande. Non appena la prima raffica di energia misurata con precisione viene inviata verso il terreno, l’amplificatore deve acquisire il segnale e poi aumentare l’amplificazione, poiché diminuisce l'intensità di segnale che riflette l’energia sismica. Una rete divisore resistiva permette l’attenuazione del segnale nei vari passi che attenuano o passano i segnali al primo amplificatore, a seconda del range di input degli amplificatori.
L’utilizzo di strumenti sismici idonei, come l’equipaggiamento per la registrazione, serve, in primo luogo, ad attenuare gli iniziali alti livelli di
23
Le resistenze di precisione ad alta stabilità Inoltre degli interruttori di guadagno si attivano automaticamente in sequenza attraverso i propri range per controllare la quantità di attenuazione. Il segnale, poi, va verso un altro attenuatore resistivo, che può fornire il pieno segnale o una attenuazione. Questo attenuatore si collega ad una secondo stadio di amplificatori; ognuna delle fasi di amplificazione successive contiene anche un attenuatore resistivo che può fornire un’attenuazione precisa o il pieno segnale. I sistemi di monitoraggio dei terremoti e i tracciatori di tsunami funzionano essenzialmente allo stesso modo, ma l’impulso iniziale di shock viene prodotto dalla natura anziché generato dall’uomo. Le resistenze Z1-Foil eccellono oltre i precedenti standard di stabilità per i resistori di precisione; le caratteristiche principali consistono nella stabilità di temperatura e di durata di carico e nella resistenza all’umidità: tutti questi fattori diventano sempre più critici a causa dell’imprevedibilità del clima a livello globale. Questi nuovi livelli di benchmark della prestazione offrono ai progettisti gli strumenti per realizzare circuiti analogici non raggiungibili in precedenza. Prima dell’avvento della tecnologia Z1-Foil, le applicazioni di precisione ad alta frequenza venivano servite solo da resistori di precisione a pellicola sottile, che però non sono così accurati, o stabili, come i resistori a filo avvolto, che a loro volta peccano nella risposta ad alta frequenza. La nuova tecnologia Z1-Foil permette ai progettisti di lavorare con componenti resistive che sono allo stesso più precise rispetto ai resistori a filo avvolto e si prestano bene per le applicazioni ad alta frequenza e ad alta temperatura. In passato, gli ingegneri che utilizzavano componenti resistive cercavano di migliorare le prestazioni dei resistori riducendo le tensioni innate nei componenti. Per esempio, nei resistori di precisione a filo avvolto, provavano diversi metodi per avvolgere i fili con sufficiente tensione di avvolgimento, per mantenere il filo in posizione mentre riducevano gli stress sul filo stesso.
Questa situazione era piuttosto complicata, ma non vi era un processo che impedisse alle tensioni di modificare il valore della resistenza dopo il riscaldamento e il ciclo compiuto attraverso applicazioni in-circuit. I resistori a pellicola sottile non prevedevano una simile opzione, perché devono essere depositati direttamente su un substrato per formare un nuovo ammasso resistivo. Quindi gli ingegneri che utilizzavano i resistori a pellicola sottile si dovevano concentrare sulla protezione della pellicola con rivestimenti e incapsulanti. La tecnologia dei resistori a lamina (foil) permette invece di gestire le tensioni per controbilanciare le forze con effetti opposti, utilizzandole quindi per produrre un resistore estremamente stabile. In altre tecnologie, i produttori si sforzano di ottenere il coefficiente di temperatura della resistenza più basso possibile nei loro materiali resistivi, per i componenti più stabili dal punto di vista termico. La tecnologia Foil si concentra su un obiettivo: ottenere una lamina non con il più basso coefficiente di temperatura della resistenza (TCR, Temperature Coefficient Resistance) ma con il TCR più lineare rispetto ai range più ampi di temperatura, assicurando che esso sia riproducibile entro tolleranze estremamente rigide. Questo TCR si ottiene in una lamina relativamente spessa e laminata a freddo, in grado di mantenere la stessa struttura molecolare delle lega originale dal quale è stata tratta. Questa è la base di un resistore foil, che deve comportarsi come una struttura monolitica, con un coefficiente di espansione conosciuto e lineare rispetto ogni range di temperatura che il resistore può incontrare lungo l’arco della sua vita progettuale. Un altro elemento fondamentale nella costruzione è l’adesivo che mantiene la lamina sull’unico substrato piatto. Esso deve sopportare alte temperature, esposizione a basse temperature a shock e vibrazioni, scariche elettrostatiche, ecc., e allo stesso tempo non deve permettere alla lamina di staccarsi dal substrato. La lega Bulk Metal Foil è sviluppata utilizzando un TCR positivo conosciuto e un coefficiente di espansione lineare conosciuto (LCE).
24
Il "foil" viene legato ad un substrato piatto di ceramica che a sua volta è dotato di un LCE conosciuto, utilizzato per indurre una pretensione nella lamina. In questa struttura, sul "foil" vengono esercitate due influenze opposte: una è l’aumento del foil stesso nella resistenza, proporzionalmente all’aumento di temperatura; l’altra è il legame del foil con il substrato, che costringe il primo a seguire il secondo, che presenta un LCE specifico, inferiore al LCE della lamina. Quindi, quando la struttura composita subisce un aumento di temperatura, lo strato resistivo che è costituito dal foil, prova ad espandersi in relazione al proprio LCE, ma viene ostacolato dalle caratteristiche meno espansive del substrato. L’effetto che si verifica è il seguente: la lamina, nel tentativo di forzare la costrizione del substrato, subisce una forza compressiva che riduce la sua resistenza; in questo equilibrio perfetto di forze, la diminuzione di resistenza dovuta ad un aumento di temperatura compensa esattamente la crescita della resistenza del foil a causa dello stesso aumento di temperatura. Il risultato è un resistore con un TCR vicino alla zero di 0.2 ppm/°C da -55°C ad oltre +225°C. La struttura è progettata in modo che non superi la costante di Hook per i materiali e, comunque, mantenga l’equilibrio e la stabilità della resistenza lungo tutta la durata di carico e l’applicazione del resistore. La struttura piatta bidimensionale del resistore, con l’elemento di resistenza in superficie (prima dell’incapsulamento) si presta ad un processo unico per regolare i resistori al valore. Tolleranze pari a 0.001% si possono ottenere in pacchetti sigillati ermeticamente. L’elemento resistore è foto inciso con una griglia che incorpora collegamenti successivi proporzionati geometricamente, che possono essere rimossi mentre si aumenta in modo incrementale la resistenza, attraverso quantitativi più piccoli in successione, senza introdurre disturbo di corrente. La griglia è ulteriormente progettata con correnti di opposizione in percorsi adiacenti, in modo da minimizzare sia l’induttanza che la capacità per prestazioni ad alta velocità. Utilizzando queste innovazioni tecnologiche di base, il resistore può
essere realizzato in diverse configurazioni, come nel caso dei resistori di potenza, dei resistori per la metrologia ermeticamente sigillati e molti altri impiegati in differenti applicazioni tra le quali, spaziali e avioniche, mediche, dei controlli di processo, oppure ovunque siano richiesti resistori e reti ad alta precisione. I resistori chip surface-mount FRSM, oltre ad offrire agli ingegneri i componenti resistivi più stabili e precisi sul mercato, utilizzano la tecnologia resistiva Z1 Bulk Metal Foil per ridurre la dimensione di un circuito e quindi il consumo energetico. Ma la riduzione della superficie dei circuiti comporta delle nuove difficoltà di progettazione associate con la gestione termica e le sue conseguenze involontarie, e in alcuni casi più sensibili all’ESD. Un problema di questo tipo è la forza elettromotrice termica (TEMF), che segnala errori di tensione ogni qualvolta si incontrano differenze di temperatura tra due derivazioni di due metalli diversi, come quando degli elementi resistivi interni vengono uniti alle terminazioni esterne di un resistore. I differenziali di temperatura si sviluppano attraverso un resistore a causa di una dissipazione interna di energia non omogenea, del riscaldamento dei terminali ad opera di componenti che irradiano calore, e di percorsi di dissipazione termica che viaggiano lungo il circuito in entrambi i percorsi conduttivi. Anche il foglio ideato per il suo TCR insito e il suo LCE presenta un TEMF molto basso, pari a soli 0.05 uV/°C. Questa sorprendente tecnologia non giunge come il risultato della ricerca di un resistore più accurato, ma viene fuori dell’analisi dello stress delle applicazioni di misurazione della tensione. Oggi, questi resistori vengono utilizzati nelle applicazioni più esigenti, incluse quelle avioniche e spaziali; il più recente sviluppo del resistore con chip di precisione surface-mount FRSM (tecnologia Z1 Bulk Metal Foil), permette di raggiungere prestazioni di alto livello in applicazioni con temperature molto elevate, offrendo una maggiore stabilità di resistenza attraverso i cambiamenti di temperatura, e
25
quasi nessuna modifica in caso di esposizione all'umidità. Articolo liberamente tradotto da Technology First by Farnell-Vishay
L'autore è a disposizione nei commenti per eventuali approfondimenti sul tema dell'Articolo. Di seguito il link per accedere direttamente all'articolo sul Blog e partecipare alla discussione: http://it.emcelettronica.com/ l’importanza-dei-resistori-di-precisione-neglistrumenti-sismici
26
Embedded GNU/Linux partendo da zero: ricompilare il kernel
• preparazione del kernel • preparazione del root filesystem • integrazione e test su QEMU [2] Tutti i passaggi illustrati di seguito sono stati testati su un sistema desktop GNU/Linux usando la recente distribuzione Ubuntu 12.04.1.
18 Ott 2012 di arighi
Requisiti
L'obiettivo di questa serie di articoli è di fornire una guida passo passo per la creazione da zero di un sistema GNU/Linux perfettamente funzionante, applicabile ad esempio in scenari di tipo embedded come base per la generazione di un semplice BSP (Board Support Package) [1], di un firmware Linux-based, o di una micro-distribuzione totalmente custom.
Introduzione Creare un sistema GNU/Linux da zero costituisce un buon esercizio per comprendere alcuni aspetti chiave del suo funzionamento interno. Tuttavia, oltre all'aspetto didattico, ci sono anche risvolti pratici interessanti: conoscere i componenti e gli strumenti base che servono a costruire un sistema GNU/Linux ci permette spesso, specie in ambito embedded, di generare ambienti più compatti ed efficienti rispetto alle soluzioni general-purpose disposizione dal fornitore del
messe
a
prodotto o della board di sviluppo su cui stiamo lavorando. Per agevolare la lettura, l'articolo è strutturato in più parti distinte:
Il primo requsito per creare un sistema GNU/ Linux consiste nello scegliere un'architettura target. Dato che l'articolo ha un taglio prevalentemente orientato all'embedded e vista la predonimanza delle architetture ARM in tale settore, opteremo per un'architettura ARM. Una volta scelta l'architettura target abbiamo bisogno di due componenti fondamentali: 1. una piattaforma di prova su cui testare il nostro sistema 2. una toolchain che ci permetta di crosscompilare i binari che vanno a costituire l'intero sistema operativo
Board (virtuale) di sviluppo Il mercato mette a disposizione una vasta gamma di board di sviluppo ARM-based, anche a basso costo. Tuttavia chi si vuole cimentare nella creazione di un sistema GNU/Linux su ARM può farlo completamente a costo zero, emulando virtualmente la piattaforma di sviluppo. Come software di emulazione ci baseremo su QEMU [4], che di fatto costituisce l'emulatore di architettura per eccellenza nel mondo Linux. QEMU permette di emulare diverse piattaforme ARM-based, ad esempio nella versione di QEMU installata su Ubuntu 12.04 abbiamo a disposizione le seguenti piattaforme:
$ qemu-system-arm -M . Supported machines are: beagle beaglexm
Beagle board (OMAP3530) Beagle board XM (OMAP3630)
collie
Collie PDA (SA-1110)
nuri
Samsung NURI board (Exynos4210)
27
smdkc210
reperibile da http://www.kernel.org), sia da QEMU, senza dover applicare patch aggiuntive. Inoltre, la Versatile Express monta un core CortexA9, una CPU ARM-based utilizzata su gran parte dei tablet, smartphone e netbook di recente produzione.
Samsung SMDKC210 board (Exynos4210)
connex
Gumstix Connex (PXA255)
verdex
Gumstix Verdex (PXA270)
highbank
Calxeda Highbank (ECX-1000)
integratorcp
ARM Integrator/CP (ARM926EJ-S) (default)
mainstone
Mainstone II (PXA27x)
musicpal
Emulare la piattaforma di sviluppo è piuttosto semplice, basta lanciare il comando:
Marvell 88w8618 / MusicPal (ARM926EJ-S)
n800
Nokia N800 tablet aka. RX-34 (OMAP2420)
n810
Nokia N810 tablet aka. RX-44 (OMAP2420)
n900
Nokia N900 (OMAP3)
sx1
$ qemu-system-arm -M vexpress-a9 -kernel flash.img
Dove flash.img è un file contenente l'immagine del nostro kernel/firmware che vogliamo far girare. Nei passi seguenti vedremo come generare tale immagine.
Siemens SX1 (OMAP310) V2
sx1-v1
Siemens SX1 (OMAP310) V1
overo
Gumstix Overo board (OMAP3530)
cheetah
Toolchain di cross-compilazione
Palm Tungsten|E aka. Cheetah PDA (OMAP310)
realview-eb
ARM RealView Emulation Baseboard (ARM926EJ-S)
realview-eb-mpcore
ARM
RealView
Emulation
Baseboard
(ARM11MPCore) realview-pb-a8
ARM RealView Platform Baseboard for Cortex-A8
realview-pbx-a9
ARM RealView Platform Baseboard Explore for Cortex-
A9 akita
Akita PDA (PXA270)
spitz
Spitz PDA (PXA270)
borzoi
Borzoi PDA (PXA270)
terrier
Terrier PDA (PXA270)
lm3s811evb
Stellaris LM3S811EVB
lm3s6965evb tosa
Stellaris LM3S6965EVB Tosa PDA (PXA255)
versatilepb
ARM Versatile/PB (ARM926EJ-S)
versatileab
ARM Versatile/AB (ARM926EJ-S)
vexpress-a9
ARM Versatile Express for Cortex-A9
vexpress-a15
ARM Versatile Express for Cortex-A15
z2
Zipit Z2 (PXA27x)
La toolchain è un insieme di strumenti (tipicamente un compilatore, un linker e delle librerie) che ci permettono di generare le applicazioni per il sistema target a partire dai sorgenti. La GNU toolchain tipica è costituita dal compilatore GCC, le binutils (strumenti per la manipolazione dei binari) e le librerie glibc. Per questa prima fase ci vengono in aiuto le toolchain pre-compilate (creare un sistema da zero non implica necessariamente di doverci ricompilare anche gli strumenti per creare il sistema stesso). In rete si trovano molte toolchain pre-compilate, nel nostro caso utilizzeremo la Linaro Toolchain Binaries [3], una toolchain ottimizzata per le più recenti famiglie di CPU ARM (Cortex A8, A9, etc.). Il setup della toolchain è costituito dai seguenti passaggi: • download dei binari della toolchain da internet: https://launchpad.net/linarotoolchain-binaries/trunk/2012.09/ +download/... • estrazione del pacchetto .tar.bz2: $
tar
xjf
gcc-linaro-arm-linux-
gnueabihf-2012.09-20120921_linux.tar.bz2
Nel nostro caso prenderemo in esame la Versatile Express (vexpress-a9) [5], visto che è quella supportata perfettamente dal kernel "mainline" (la versione del kernel ufficiale,
• setup della variabile di ambiente PATH per rendere disponibili i binari della toolchain dalla shell corrente:
28
$
export
PATH=$PWD/gcc-linaro-arm-linux-
gnueabihf-2012.09-20120921_linux/bin:$PATH
Fase 1: kernel
preparazione
$
make
ARCH=arm
CROSS_COMPILE=arm-linux-gnueabihf-
vexpress_defconfig
del
A questo punto abbiamo tutti gli strumenti necessari per iniziare a sviluppare sulla board virtuale. Il primo passo consiste nel reperire i sorgenti "mainline" del kernel da http://www.kernel.org e ricompilarli per la nostra archiettura target. Al momento della stesura di questo articolo l'ultimo kernel del ramo "stable" è il 3.5.4, procediamo quindi al download e all'estrazione dei sorgenti:
Le variabili di ambiente ARCH e CROSS_COMPILE sono informazioni per il compilatore; esse permettono di selezionare la particolare architettura (ARCH) e la particolare versione compilatore (CROSS_COMPILE) per generare il codice oggetto. L'opzione "vexpress_defconfig" viene usata dal kernel nel processo di build: essa permette di selezionare la configurazione di default (defconfig) stabilita dalla comunità di sviluppatori che mantengono il codice per tale architettura. Le varie configurazioni *_defconfig per ARM si trovano tutte in arch/arm/configs/*. Infine resta da effettuare il passo di compilazione vero e proprio: $ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
$ wget http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.5.4.tar.bz2 $ tar xjf linux-3.5.4.tar.bz2 $ cd linux-3.5.4
Il kernel Linux supporta un'ampia gamma di architetture e piattaforme eterogenee: fondamentalmente esso è composto da un layer di basso livello (./arch/*) che si interfaccia direttamente con il particolare hardware ed esporta ai livelli più alti interfacce generiche indipendenti dall'hardware sottostante. Per l'utente o il programmatore di alto livello Linux è sempre lo stesso, indipendentemente da dove gira la propria applicazione. La prima fase della ricompilazione del kernel consiste nel processo di configurazione. Esso permette di scegliere la particolare architettura che vogliamo utilizzare per il layer di basso livello, assieme a tutti i driver e le funzionalità di alto livello che vogliamo fornire alle applicazioni userspace. Come abbiamo detto la piattaforma Versatile Express è già supportata pienamente dal kernel Linux, quindi possiamo procedere direttamente alla configurazione senza dover applicare patch o modificare codice:
La ricompilazione di un intero kernel richiede dai 5 ai 10 minuti. Al termine, se tutto è andato correttamente, troveremo il seguente file nelle directory dei sorgenti del kernel:
$ du -h arch/arm/boot/zImage 2.4M arch/arm/boot/zImage
Il file zImage rappresenta l'immagine della flash per la nostra board virtuale. In questo caso il singolo kernel richiede 2.4MB. Al momento però non abbiamo ancora nessuna applicazione, i 2.4MB rappresentano solo il "contenitore" dove far girare le applicazioni utente.
Testare il kernel sulla board virtuale E' possibile testare il kernel appena generato sull board virtuale QEMU lanciando il comando seguente:
$ qemu-system-arm -M vexpress-a9 -kernel ./arch/arm/boot/zImage \ -serial stdio -display none -append "console=ttyAMA0"
29
QEMU emula un ambiente identico ad una board Versatile Express fisica, quindi per il kernel non fa nessuna differenza, di fatto è come eseguirlo sull'hardware reale. Con le opzioni `-serial stdio -display none` stiamo dicendo a QEMU di collegare la seriale emulata direttamente alla console da cui lanciamo il comando. Con `-append console=ttyAMA0"` stiamo invece dicendo al kernel di ridirigere tutti i suoi messagi verso la seriale primaria. In pratica per noi sarà come avere aperto una sessione seriale sulla board. Ecco il risultato pratico una volta eseguito il comando sopra:
.text : 0x80008000 - 0x80425d84 (4216 kB) .init : 0x80426000 - 0x804516c0 ( 174 kB) .data : 0x80452000 - 0x80480520 ( 186 kB) .bss : 0x80480544 - 0x8049e928 ( 121 kB) SLUB: Genslabs=11, HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1 Hierarchical RCU implementation. NR_IRQS:256 Console: colour dummy device 80x30 Calibrating delay loop... 555.41 BogoMIPS (lpj=2777088) pid_max: default: 32768 minimum: 301
Booting Linux on physical CPU 0
Mount-cache hash table entries: 512
Initializing cgroup subsys cpuset
CPU: Testing write buffer coherency: ok
Linux version 3.5.4 (righiandr@thinkpad) (gcc version 4.7.2 20120910
CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
(prerelease) (crosstool-NG linaro-1.13.1-2012.09-20120921 - Linaro GCC
hw perfevents: enabled with ARMv7 Cortex-A9 PMU driver, 1 counters
2012.09) ) #2 SMP Tue Oct 2 10:21:53 CEST 2012
available
CPU: ARMv7 Processor [410fc090] revision 0 (ARMv7), cr=10c53c7d
Setting up static identity map for 0x603242d8 - 0x60324330
CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
Brought up 1 CPUs
Machine: ARM-Versatile Express
SMP: Total of 1 processors activated (555.41 BogoMIPS).
Memory policy: ECC disabled, Data cache writealloc
NET: Registered protocol family 16
sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 178956ms
L310 cache controller enabled
PERCPU: Embedded 7 pages/cpu @805a2000 s5824 r8192 d14656 u32768
l2x0: 8 ways, CACHE_ID 0x410000c8, AUX_CTRL 0x02420000, Cache size:
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 32512
131072 B
Kernel command line: console=ttyAMA0
hw-breakpoint: debug architecture 0x0 unsupported.
PID hash table entries: 512 (order: -1, 2048 bytes)
Serial: AMBA PL011 UART driver
Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
mb:uart0: ttyAMA0 at MMIO 0x10009000 (irq = 37) is a PL011 rev1
Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
console [ttyAMA0] enabled
Memory: 128MB = 128MB total
mb:uart1: ttyAMA1 at MMIO 0x1000a000 (irq = 38) is a PL011 rev1
Memory: 125168k/125168k available, 5904k reserved, 0K highmem
mb:uart2: ttyAMA2 at MMIO 0x1000b000 (irq = 39) is a PL011 rev1
Virtual kernel memory layout:
mb:uart3: ttyAMA3 at MMIO 0x1000c000 (irq = 40) is a PL011 rev1
vector : 0xffff0000 - 0xffff1000 ( 4 kB)
bio: create slab at 0
fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)
SCSI subsystem initialized
vmalloc : 0x88800000 - 0xff000000 (1896 MB)
usbcore: registered new interface driver usbfs
lowmem : 0x80000000 - 0x88000000 ( 128 MB)
usbcore: registered new interface driver hub
modules : 0x7f000000 - 0x80000000 ( 16 MB)
usbcore: registered new device driver usb
30
Advanced Linux Sound Architecture Driver Version 1.0.25.
Initializing USB Mass Storage driver...
Switching to clocksource v2m-timer1
usbcore: registered new interface driver usb-storage
NET: Registered protocol family 2
USB Mass Storage support registered.
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
mousedev: PS/2 mouse device common for all mice
TCP established hash table entries: 4096 (order: 3, 32768 bytes)
rtc-pl031 mb:rtc: rtc core: registered pl031 as rtc0
TCP bind hash table entries: 4096 (order: 3, 32768 bytes) TCP: Hash tables configured (established 4096 bind 4096)
mmci-pl18x mb:mmci: mmc0: PL181 manf 41 rev0 at 0x10005000 irq 41,42 (pio)
TCP: reno registered UDP hash table entries: 256 (order: 1, 8192 bytes) UDP-Lite hash table entries: 256 (order: 1, 8192 bytes) NET: Registered protocol family 1
usbcore: registered new interface driver usbhid usbhid: USB HID core driver aaci-pl041 mb:aaci: ARM AC'97 Interface PL041 rev0 at 0x10004000, irq 43
RPC: Registered named UNIX socket transport module.
aaci-pl041 mb:aaci: FIFO 512 entries
RPC: Registered udp transport module.
oprofile: using arm/armv7-ca9
RPC: Registered tcp transport module.
TCP: cubic registered
RPC: Registered tcp NFSv4.1 backchannel transport module.
NET: Registered protocol family 17
jffs2: version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 0
msgmni has been set to 244
input: AT Raw Set 2 keyboard as /devices/mb:kmi0/serio0/input/input0
io scheduler noop registered (default)
rtc-pl031 mb:rtc: setting system clock to 2012-10-06 18:45:12 UTC
clcd-pl11x ct:clcd: PL111 rev2 at 0x10020000
(1349549112)
clcd-pl11x ct:clcd: CT-CA9X4 hardware, XVGA display
ALSA device list:
Console: switching to colour frame buffer device 128x48
#0: ARM AC'97 Interface PL041 rev0 at 0x10004000, irq 43
v2m_cfg_write: writing 03c8eee0 to 00110001
input: ImExPS/2 Generic Explorer Mouse as
v2m_cfg_write: writing 00000000 to 00710000
/devices/mb:kmi1/serio1/input/input1
v2m_cfg_write: writing 00000002 to 00b10000
VFS: Cannot open root device "(null)" or unknown-block(0,0): error -6
smsc911x: Driver version 2008-10-21
Please append a correct "root=" boot option; here are the available
smsc911x-mdio: probed
partitions:
smsc911x smsc911x: eth0: attached PHY driver [Generic PHY]
Kernel panic - not syncing: VFS: Unable to mount root fs on
(mii_bus:phy_addr=smsc911x-fffffff:01, irq=-1)
unknown-block(0,0)
smsc911x smsc911x: eth0: MAC Address: 52:54:00:12:34:56
[] (unwind_backtrace+0x0/0xf8) from []
isp1760 isp1760: NXP ISP1760 USB Host Controller
(panic+0x8c/0x1cc)
isp1760 isp1760: new USB bus registered, assigned bus number 1
[] (panic+0x8c/0x1cc) from []
isp1760 isp1760: Scratch test failed.
(mount_block_root+0x174/0x228)
isp1760 isp1760: can't setup
[] (mount_block_root+0x174/0x228) from []
isp1760 isp1760: USB bus 1 deregistered
(mount_root+0xf4/0x114)
isp1760: Failed to register the HCD device
[] (mount_root+0xf4/0x114) from []
31
(prepare_namespace+0x12c/0x180) [] (prepare_namespace+0x12c/0x180) from [] (kernel_init+0x1e0/0x224) [] (kernel_init+0x1e0/0x224) from [] (kernel_thread_exit+0x0/0x8)
In output possiamo vedere i messaggi di un tipico boot di Linux. Il kernel è partito correttamente, rilevando tutti i dispositivi hardware emulati dalla board virtuale, come se questa fosse effettivamente una board fisica. Al termine della fase di boot otteniamo tuttavia un kernel panic (cioè un errore irreversibile che compromette il funzionamento del sistema). Il motivo di tale errore lo possiamo trovare nei messaggi immediatamente precedenti al panic:
VFS: Cannot open root device "(null)" or unknown-block(0,0): error -6 Please append a correct "root=" boot option; here are the available partitions:
In pratica per il kernel non esiste nessun root filesystem. Come abbiamo detto il kernel è solo un contenitore in cui girano le applicazioni, una volta terminato il processo di boot il kernel cerca di montare un filesystem radice (root) da uno dei dispositivi a blocchi rilevati ed eseguire un binario denominato "init". Se questo binario non viene trovato il kernel non sa cosa fare e entra nella condizione di panic. Nella prossima puntata vedremo come creare un root filesystem adatto al kernel, continuando a seguire stessa filosofia di questo tutorial: generando tutto completamente da zero. L'autore è a disposizione nei commenti per eventuali approfondimenti sul tema dell'Articolo. Di seguito il link per accedere direttamente all'articolo sul Blog e partecipare alla discussione: http://it.emcelettronica.com/ embedded-gnulinux-partendo-da-zeroricompilare-kernel
32
Impariamo a usare le regex 23 Ott 2012 di slovati
Le espressioni regolari, note anche con il termine "regex", sono uno strumento efficiente e compatto per eseguire la ricerca e sostituzione di stringhe di caratteri all'interno di un testo. Le applicazioni sono molteplici, non solo nel campo della programmazione, ma anche nell'analisi ed elaborazione di grandi quantità di dati. Lavorate con file di testo o HTML di grosse dimensioni e non sapete come fare una particolare ricerca o sostituzione al loro interno? Volete recuperare con facilità delle informazioni da un file di log di un web server? Avete già sentito parlare delle regex ma non vi siete mai addentrati in questo affascinante mondo talvolta considerato (a torto) troppo complicato? Se la risposta è sì allora non potete perdervi questo articolo introduttivo sulle regex. Essere in grado di capire e utilizzare le regex, talvolta chiamate anche rx o re, è sicuramente un punto a favore per ogni sviluppatore o appassionato di informatica. Ricordiamo che le regex sono riconosciute dalla maggiorparte dei linguaggi di script, come ad esempio Perl, Python, PHP, Javascript, Ruby, e sono ampiamente utilizzate negli script utilizzati sui sistemi operativi Unix e Linux. Non solo, diversi IDE, editor (ad esempio Notepad++, vi e vim), e ambienti di sviluppo supportano oggi le espressioni regolari. Qual'è l'utilità delle espressioni regolari? Come anticipato precedentemente, le espressioni regolari sono un modo estremamente compatto per eseguire la ricerca (come anche la
sostituzione) di specifici caratteri, combinazioni di caratteri, o parole, all'interno di un testo anche molto ampio. Un esempio di espressione regolare, con cui penso tutti i lettori abbiano avuto a che fare con l'utilizzo quotidiano del computer, è l'utilizzo delle "wildcard" per selzionare un gruppo di file. Possiamo ad esempio restringere la selezione ai soli file con estensione .txt tramite la nota espressione *.txt. Anche se molto semplice, questo è un esempio di regex. Ovviamente, le regex sono in grado di fare molto di più.. Per imparare a utilizzare correttamente le regex, verificando direttamente la validità delle espressioni regolari scritte, è utile e consigliabile impiegare uno strumento di test. Un esempio molto valido è rappresentato dal tool regexpal, che non richiede alcuna installazione in quanto si tratta di un'applicazione disponibile online a questo indirizzo (si tratta in pratica di un programma di test per le espressioni regolari scritto in Javascript). In regexpal lo schermo viene diviso in due parti: in quella inferiore andrà inserito il testo sul quale si desidera testare (cioè applicare) l'espressione regolare, mentre nella parte superiore si digiterà l'espressione regolare stessa. Nell'immagine seguente è mostrata la schermata di benvenuto dell'applicazione regexpal.
RICERCA DI STRINGHE Cominciamo a esaminare le regex utilizzate per la ricerca di stringhe di caratteri. Successivamente vedremo anche il caso della ricerca e sostituzione. Occorre inoltre tenere presente che le espressioni regolari sono case sensitive (a meno di utilizzare esplicitamente un modificatore che vedremo in
33
seguito), e pertanto c'è differenza tra lettere maiuscole e minuscole. Ricerca letterale E' il caso più semplice di espressione regolare, e consiste nella ricerca "letterale" di uno o più caratteri, numeri, o simboli. Espressioni regolari di questo tipo sono ad esempio ca, s, 12, ecc. Consideriamo ora il testo formato dalle parole casa, cava, cane, sentiero, 1, 12, 123, 2012, e supponiamo di applicare a questo testo le regex citate precedentemente. Il risultato sarà il seguente (potete verificarlo tramite regexpal). Nota: le sequenze di caratteri che corrispondono all'espressione regolare (che cioè la "matchano", perdonate il neologismo) vengono sottolineati e scritti in grassetto, mentre regexpal usa un meccanismo di evidenziazione con colori giallo e blu alternati.
all'interno di una sequenza di caratteri proprio un metacarattere? La risposta è la seguente: uso la tecnica di "escaping". In pratica, faccio precedere il metacarattere da un backslash ('\') che l'interprete di espressioni regolari riconosce come un escape (quindi sa che il carattere successivo non va interpretato come metacarattere, ma come un carattere qualsiasi). Ad esempio, se vogliamo trovare il carattere punto all'interno di un testo useremo la seguente regex: \. Oggi è una bella giornata Andiamo a fare un giro in bici?
Come esercizio, provate a rimuovere il carattere backslash nell'espressione regolare precedente. Cosa succede? Oltre al punto, esistono altri metacaratteri utilizzati nelle espressioni regolari. Vediamoli assieme.
ca
Il punto di domanda ('?') accetta zero oppure casa, cava, cane, sentiero, 1, 12, 123, 2012 una sola occorrenza dell'elemento che lo precede. Esempio: s pol?lo casa, cava, cane, sentiero, 1, 12, 123, 2012 polo pollo polio 12 casa, cava, cane, sentiero, 1, 12, 123, 2012
L'asterisco ('*') accetta invece zero oppure più occorrenze dell'elemento che lo precede. Esempio:
I metacaratteri
10*
I metacaratteri sono dei caratteri speciali che, anzichè essere utilizzati essi stessi per eseguire una ricerca letterale, svolgono una determinata funzione. Un esempio di metacarattere è il carattere punto ('.'), la cui funzione è quella di trovare corrispondenza (match) con qualunque carattere tranne il newline. Applichiamo ad esempio l'espressione regolare c..a al testo precedente. Il risultato sarà il seguente:
1 10 100 1000 10000 112
c..a casa, cava, cane, sentiero, 1, 12, 123, 2012
In pratica vengono accettate ("matchate") tutte le sequenze di 4 caratteri che iniziano con una 'c' e terminano con una 'a'. Parlando di metacaratteri, sorge spontanea una domanda: come posso fare a riconoscere
Simile al precedente è il segno più ('+'), che accetta una oppure più occorrenze dell'elemento che lo precede. Esempio: bos+ bo bos boss
Il quantificatore numerico singolo {n} trova esattamente il numero n di occorrenze del carattere che lo precede. Esempio: 0{3} 1 10 100 1000 10000
34
100000
La logica estensione di quest'ultimo tipo di quantificatore è rappresentata dal quantificatore numerico con range {n, m} che trova il numero di occorrenze compreso tra n (minimo) e m (massimo) del carattere che lo precede. Esempio: 0{3,4} 1 10 100 1000 10000 100000
Per rappresentare una scelta alternativa tra due o più possibili soluzioni si utilizza il metacarattere '|' (l'OR utilizzato da molti linguaggi di programmazione e di scripting). Esempio:
sito. Supponiamo che la regola sia la seguente: sono validi tutti e soli gli indirizzi espressi nella forma
[email protected], dove sia nome che cognome sono composti da un minimo di 2 fino a un massimo di 10 caratteri. Si avrà allora: (.{2,10}) (.{2,10}) \1\.\
[email protected] mario rossi
[email protected] Piero Bianchi
[email protected] luca giovanni
[email protected]
Sempre nella categoria dei metacaratteri, un ruolo importantissimo è svolto dalle classi di caratteri, rappresentate attraverso le parantesi quadre ('[' e ']'). Quando un insieme di uno o più caratteri viene racchiuso tra parantesi quadre, viene accettato uno qualsiasi tra questi caratteri, ma non più di uno. Esempio:
luca | giorgio [abc]de luca giovanni giorgio nicola ade bde cde abde bcde acde
Come si fa ad applicare i quantificatori appena visti a un gruppo di elementi? E' ad esempio possibile applicare il quantificatore {n} non a un singolo carattere ma a un gruppo di caratteri? La risposta è affermativa: basta utilizzare le parantesi tonde per raggruppare gli elementi. Esempio: (co){2,3} co coco cococo
Oppure, combiando tra loro più metacaratteri: lu(n|l)aluca luna lupa lula
I raggruppamenti ottenibili con le parentesi tonde sono ampiamente utilizzati per memorizzare temporaneamente dei pattern (vale a dire delle espressioni che corrispondono alla regex) che possono poi essere richiamati successivamente per eseguire una sostituzione (replace). Per richiamare un match memorizzato in precedenza si usa la notazione \x, dove x=1 per il primo match, x=2 per il secondo, e così via. Per chiarire meglio questo concetto consideriamo il seguente esempio. Supponiamo che si vogliano controllare degli indirizzi e-mail, analizzando una lista contenente nome, cognome, e indirizzo di posta elettronica degli utenti iscritti a un determinato
Se ad esempio vogliamo trovare tutti i numeri compresi tra 0 e 9 possiamo usare la classe [0123456789]. Può essere noioso dover inserire tutto l'elenco dei caratteri ammissibili in una classe, e pertanto nelle espressioni regolari sono state definite delle scorciatoie (shortcut) per agevolare questo compito. Ad esempio la classe [0-9] si riferisce a tutte le cifre comprese tra 0 e 9 (molto più sintetica della precedente!), le classi [a-z] e [A-Z] alle lettere dell'alfabeto minuscole e maiuscole, rispettivamente. Le classi possono inoltre essere combinate con i quantificatori, al fine di trovare più occorrenze di uno dei caratteri elencati nella classe. Supponiamo di voler trovare tutti i numeri di due cifre compresi tra 10 e 99. L'espressione regolare corrispondente sarà: [0-9]{2} 10 99 1 0 50 100
I caratteri all'interno di una classe (quelli cioè racchiusi tra parentesi quadre) possono anche essere "negati", nel senso che ci interessa trovare ad esempio tutti i carattere tranne quelli elencati nella classe. Per svolgere questa funzione si utilizza il carattere "caret" ('^') che va inserito dopo la prima parentesi quadra. Ad esempio la notazione [^0-9] indica che siamo interessati a
35
tutti i caratteri tranne le cifre decimali da 0 a 9. Un esempio un pò più articolato è il seguente: [^5-9][A-F] 1A 4F 50 5C 9F
A seconda del particolare linguaggio di scripting utilizzato per scrivere le espressioni regolari, possono poi esistere o meno altre classi di caratteri (shortcut) in grado di semplificare l'espressione stessa. Ecco le più comuni: \d cifra tra 0 e 9 (equivale a [0-9] \D tutto tranne le cifre tra 0 e 9 (opposto di \d) \w word (equivale a [a-zA-Z_] \W non word \xhh carattere esadecimale hh \Oxxx carattere ottale xxx \s carattere spazio \S tutti i caratteri tranne lo spazio \c carattere di controllo Si noti come l'opposto di una classe sia rappresentato tramite la stessa lettera dell'alfabeto ma in maiuscolo anzichè minuscolo. Inoltre, gli opposti di una classe possono sempre essere ricavati (in modo alternativo) utilizzando il caret visto precedentemente. Due metacaratteri particolari sono gli "anchor", rappresentati dai caratteri '^' (inizio riga) e '$' (fine riga). Il carattere caret non va confuso con quello visto in precedenza relativamente alle classi. O meglio, per evitare confusione basta ricordarsi che il caret quando è all'interno delle parentesi quadre funge da negazione per i caratteri della classe, mentre quando è all'esterno delle parentesi quadre (e presumibilmente all'inizio dell'espressione regolare) identifica il carattere di inizio riga. Supponiamo ad esempio di voler trovare all'interno di un testo tutte le righe che iniziano con l'articolo "La". L'espressione regolare corrispondente sarà la seguente (se usate regexpal, ricordatevi di spuntare l'opzione "^$ match at line break):
^La.* La Lalla la Lo Gli
RICERCA E SOSTITUZIONE Le espressioni regolari possono essere efficacemente utilizzzate come uno strumento di ricerca e sostituzione (search and replace). La sintassi dipende anche in questo caso dal particolare linguaggio di scripting utilizzato, comunque la forma più generale (corrispondente a quella utilizzata dal Perl) è la seguente: /ricerca/ sostituzione/modificatore. Il campo "ricerca" sarà una stringa di caratteri contenente nè più nè meno un'espressione regolare come quelle viste negli esempi precedenti, mentre il campo "sostituzione" sarà una normale stringa di caratteri. I modificatori li vedremo successivamente. Supponiamo di voler cercare all'interno di un testo tutti gli indirizzi del tipo http://www.*.com (ad esempio http:// www.abc.com e http://www.def.com) e cambiarli in http://www.*.it (http://www.abc.it e http:// www.def.it). Per testare un'espressione regolare di ricerca e sostituzione conviene utilizzare un editor di testo in grado di supportare questa funzionalità, come ad esempio Notepad++ (liberamente scaricabile qui. Inseriamo in un file di testo due righe con il seguente contenuto: http://www.abc.com http://www.boh.com
Apriamo poi la finestra di Replace, spuntiamo la checkbox "Regular expression" e inseriamo le espressioni: http://www\.(\w+)\.com what:" e
nella
casella
"Find
http://www.\1.it nella casella "Replace with:" Premiamo quindi il tasto "Replace All" e le sostituzioni desiderate avverranno in un sol colpo. In precedenza si è accennato ai modificatori. La loro funzione è quella di modificare, appunto, il comportamento di un'espressione regolare. Uno di questi è rappresentato dalla lettera 'i', il cui significato è quello di ignorare le maiuscole
36
e minuscole (l'espressione diventa quindi "case insensitive"). Esistono altri tipi di modificatori, come ad esempio: m - gestisce le linee multiple s - considera la stringa come una linea singola x - consente di inserire commenti e spazi g - global match In questo breve tutorial abbiamo visto i fondamenti che stanno alla base delle espressioni regolari. Poichè queste rappresentano uno strumento essenziale per l'attività di sviluppo, è importante conoscerle e saperle utilizzare. Il modo migliorare è quello di approfondire la pratica esercitandosi con i casi reali che si presentano nell'attività di sviluppo quotidiana. L'autore è a disposizione nei commenti per eventuali approfondimenti sul tema dell'Articolo. Di seguito il link per accedere direttamente all'articolo sul Blog e partecipare alla discussione: http://it.emcelettronica.com/ impariamo-usare-le-regex
37
Wireshark: come catturare, ispezionare, e filtrare i pacchetti Ethernet 25 Ott 2012 di slovati
Wireshark, in precedenza noto con il termine Ethereal, è uno strumento software (liberamente utilizzabile) per la cattura, l'analisi, e l'ispezione del traffico di pacchetti Ethernet che viaggiano all'interno di una rete. In questa guida vedremo anche come sia possibile "sniffare" il traffico di rete wireless. L'interfaccia Ethernet è oggi utilizzata non soltanto all'interno delle reti di calcolatori e personal computer, ma si sta sempre più diffondendo anche nei sistemi embedded e nei dispositivi basati su microcontrollore (un classico esempio è rappresentato dalla nota piattaforma Arduino, dotata di un apposito shield Ethernet). Wireshark permette di catturare i pacchetti Ethernet in tempo reale, e visualizzarli a video in un formato comprensibile per l'utente. Come vedremo, i diversi tipi di pacchetti sono evidenziati con colori differenti, ed è possibile applicare filtri per selezionare soltanto i pacchetti che soddisfano determinati criteri di ricerca. Wireshark è pertanto uno strumento utile per eseguire l'attività di debugging, o anche per ispezionare il traffico della rete a cui siamo connessi (se ad esempio abbiamo il sospetto di una possibile intromissione non desiderata..). Anzitutto occorre installare sul nostro PC Wireshark. Attualmente sono disponibili versioni sia per Windows che per Mac OS X, liberamente scaricabili a questo sito. Per chi utilizza il sistema
operativo Linux (in particolare la distribuzione Ubuntu), Wireshark sarà disponibile e accessibile all'interno dell'apposito repository software. Una volta installato Wireshark, occorrerà selezionare un'interfaccia all'interno del menu: Capture->Interface List (può ovviamente trattarsi di un'interfaccia Ethernet di tipo "wired", cioè cablata, oppure un'interfaccia Ethernet di tipo wireless, a seconda del modello di PC che stimo utilizzando). In questo modo viene attivata la cattura dei pacchetti Ethernet sull'interfaccia desiderata. Subito dopo aver attivato l'interfaccia, verrà presentata all'utente una finestra in cui vengono visualizzati i pacchetti catturati in tempo reale. Wireshark è in grado di catturare sia i pacchetti in entrata al PC (o meglio all'interfaccia di rete del PC selezionata), che quelli in uscita. E' importante notare che, selezionando un'interfaccia di rete wireless e impostando la modalità "promiscua" tra le opzioni di cattura, è possibile catturare anche i pacchetti che provengono da altri dispositivi (in pratica, è così possibile "sniffare" il traffico presente sulla rete wireless). La schermata che si presenterà sarà simile alla seguente:
Per interrompere la cattura dei pacchetti sarà sufficiente selezionare sul menu principale: Capture->Stop (oppure, in alternativa, cliccare sull'iconcina con la croce bianca su sfondo rosso, la quarta da sinistra). Le informazioni acquisite verranno mantenute e sarà poi possibile memorizzarle in un file oppure eliminarle
38
iniziando una nuova acquisizione. Come si può subito notare osservando la schermata di cattura, i pacchetti sono colorati in modo differente a seconda del loro tipo. Di default, Wireshark visualizza in verde i pacchetti appartenenti al traffico TCP, in blu scuro il traffico DNS, in azzurro il traffico UDP, e in nero i pacchetti TCP che hanno riscontrato dei problemi (ad esempio pacchetti trasmessi in out-of-order, oppure pacchetti che hanno dovuto subire una ritrasmissione). La seguente immagine, riferita a una sessione di accesso via browser al sito di Elettronica Open Source, mostra alcune di queste colorazioni:
Poichè il volume e la tipologia di pacchetti catturati può diventare importante, è utile avere a disposizione uno strumento con cui sia possibile selezionare soltanto specifici pacchetti, quelli a cui siamo particolarmente interessati. Ciò è possibile utilizzando la funzione filtro di Wireshark. Il modo più immediato per impostare un filtro è quello di scriverlo direttamente nella finestrella "Filter:" visibile subito sotto la barra dei menu, premendo poi il tasto Invio oppure Apply (alla destra della finestrella). Le seguenti due immagini si riferiscono a due esempi di filtro: nel primo caso si sono voluti selezionare tutti i pacchetti relativi al traffico DNS (digitando "dns" direttamente nella finestrella Filter), mentre nel secondo caso si sono voluti selezionare tutti i pacchetti che si reiferiscono all'indirizzo IP 192.168.0.1 (in questo caso il filtro è stato selezionato accedendo alla voce di menu Analyze->Display filters):
Un'altra importante funzionalità di Wireshark è la seguente: si seleziona un pacchetto tra quelli catturati, e, premendo il tasto destro del mouse, si seleziona la voce di menu "Follow TCP Stream". Quello che si ottiene è una nuova finestra nella quale viene visualizzata tutta la conversazione (cioè lo scambio di messaggio su interfaccia Ethernet) tra il client e il server (si veda l'immagine seguente). Chiudendo poi questa finestra, si potrà osservere che Wireshark ha applicato automaticamente un filtro, proprio quello che permette di selezionare soltanto i pacchetti di quella conversazione.
39
tipi di protocollo. Qui si è voluta dare solo una panoramica di alto livello del tool, ma le sue potenzionalità e caratteristiche sono molto più estese e versatili. Ricordiamo inoltre che è possibile, oltre che interessante, analizzare dei pacchetti di esempio riferiti a diversi tipi di protocolli comuni. Per fare ciò è sufficiente accedere a questa pagina web di Wireshark in cui sono riportati numerosissimi esempi di casi reali. L'autore è a disposizione nei commenti per eventuali approfondimenti sul tema dell'Articolo.
Per ispezionare il contenuto di un pacchetto, è sufficiente selezionarlo cliccandoci sopra: il suo contenuto sarà visibile nel riquadro nella parte bassa dello schermo. Mentre si sta ispezionando il contenuto di un determinato pacchetto, è anche possibile applicare contestualmente un nuovo filtro. Per fare ciò, è sufficiente cliccare con il tasto destro del mouse, e premere la voce di menu "Apply as Filter". Si hanno a questo punto a disposizione diverse opzioni, con cui è possibile creare un filtro basato sulla parte selezionata, oppure su quella non selezionata, oppure su altre opzioni ancora. Si veda al proposito un esempio nell'immagine seguente:
Di seguito il link per accedere direttamente all'articolo sul Blog e partecipare alla discussione: http://it.emcelettronica.com/ wireshark-come-catturare-ispezionare-efiltrare-i-pacchetti-ethernet
Wireshark è uno strumento di analisi del traffico Ethernet molto potente e versatile, grazie anche al supporto per plug-in relativi a differenti
40
Corso di Microprogrammazione: sistemi di numerazione 30 Ott 2012 di Piero Boccadoro
stato stabilito un sistema di numerazione, definito tramite l'utilizzo di: • Simboli (0,1,2 … ) • Ordine (0 < 1 < 2 < 3 …..) • Operazioni (+,-,x…..) Partendo dal sistema di numerazione a noi più noto, ovvero quello con cui abbiamo più familiarità, diamo un’occhiata ai sistemi normalmente usati in campo elettronico ed informatico ed approfondiamo, quindi le basi numeriche.
Oggi sulla griglia di partenza di queste pagine c'è un esperimento che vedrà protagonisti i nostri utenti premium ed i microcontrollori. Si tratta, come il titolo suggerisce, di un corso in cui saranno affrontate le principali tematiche che appartengono a varie discipline, quali matematica (binaria e non), sistemi e circuiti sia combinatori sia sequenziali ma anche elettronica ed informatica, sistemi embedded e sistemi e metodi di rappresentazione dei dati. Questi aspetti saranno tutti funzionali ad apprendere la programmazione su microcontrollori. Buona lettura. Come tutti i corsi che si rispettino, anche questo comincia affrontando gli argomenti accennati partendo da concetti base che tutti noi applichiamo o utilizziamo tutti i giorni, spesso senza neanche essere troppo consapevoli di che cosa stiamo realmente facendo. Sistemi di numerazione Sarebbe troppo facile fare esempi dei momenti in cui, nella vita quotidiana, noi si debba fare i conti con… i conti! E allora, val la pena di prendere subito in considerazione i concetti di base, ovvero le basi. Oltre questi giochi di parole esiste un fatto che assume rilevanza cruciale, ovvero che alla base di tutti i nostri conti c’è il fatto che è
Nel caso in base decimale (ovvero in base 10) i simboli sono, ovviamente, 0 1 2 3 4 5 6 7 8 9. Vale la pena, però, di soffermarsi sull'analisi di un generico numero, ad esempio 2389. Esso viene descritto anche grazie allo scritto, ovvero è interpretato come duemilatrecentoottantanove. Inoltre, questo è un fatto che deriva da un'operazione che è stata effettivamente effettuata dalla nostra mente, ovvero 2000 + 300 + 80 + 9. E se vogliamo, si tratta di: 2 * 1000 + 3 * 100 + 8 * 10 + 9 * 1. Ma potremmo anche dire, per essere più completi e formali, che c'è da ricordare che un numero elevato alla zero è pari a 1. Questo comporta il fatto che l'operazione realmente compiuta è: 2 * 103 + 3 * 102 + 8 * 101 + 9 * 100. Queste operazioni sono state "installate" nella nostra mente da piccoli ma sottintendono due concetti fondamentali, ovvero quello di base è quello di peso. Ed è proprio in quest'ultima rappresentazione che essi vengono fuori ed abbiamo XY con X = Base e Y = Peso. La base esprime il numero di simboli “base” utilizzati all'interno del sistema di numerazione. Lo scopo del peso, invece, è quello di indicare quale valore assume un simbolo, ovvero ciascun simbolo, a seconda della posizione all'interno della quale si trova. Le basi Base 2 (anche nota come sistema Binario)
41
la conversione tra le diverse rappresentazioni Un sistema binario usa i seguenti simboli: 0 1. Per questo motivo, un qualsiasi numero binario trattate fino a questo momento. sarà rappresentato da una sequenza ordinata di 0 e 1. Così, analizzando il numero binario 1101, BinarioOctHex grazie all’applicazione dei concetti introdotti Decimale precedentemente, abbiamo: 0 0000 0 0 3 2 1 0 1*2 +1*2 +0*2 +1*2 1 0001 1 1 che diventa 1*8+1*4+0*2+1*1
2
0010 2 2
Il numero binario 1101 ha, quindi, una equivalente rappresentazione nel sistema decimale, che è pari a 13.
3
0011 3 3
4
0100 4 4
5
0101 5 5
6
0110 6 6
7
0111 7 7
8
1000 10 8
cioè
9
1001 11 9
3 * 512 + 4 * 64 + 1 * 8 + 6 * 1
10
1010 12 A
Base 16 (anche nota come Esadecimale, in breve Hex)
11
1011 13 B
12
1100 14 C
13
1101 15 D
14
1110 16 E
15
1111 17 F
Base 8 (anche nota come Ottale, in breve Oct) Questo sistema è “composto” di simboli quali: 0 1 2 3 4 5 6 7. Analogamente a quanto detto nel caso precedente, e sempre con riferimento a quanto introdotto, se abbiamo il numero ottale 3416, allora sappiamo che 3 * 83 + 4 * 82 + 1 * 81 + 6 * 80
Qui i simboli in uso diventano alfa-numerici, per ovvi motivi, e sono: 0 1 2 3 4 5 6 7 8 9 A B C D E F. Questa base è, quindi, un pò complicata perchè utilizza un numero di simboli maggiore della base decimale ma è facile intuire che, di fatto i simboli A, B, C, D ,E, F hanno rispettivamente il corrispondente decimale in 10, 11, 12, 13, 14, 15. Così, il numero esadecimale A85F è convertibile in decimale esattamente con procedura analoga a prima: A * 163 + 8 * 162 + 5 * 161 + F * 160 cioè 10 * 163 + 8 * 162 + 5 * 161 + 15 * 160 da cui 10 * 4096 + 8 * 256 + 5 * 16 + 15 * 1 Queste considerazioni trovano una piacevole, e sicuramente più agevole, declinazione nella tabella che segue, grazie alla quale viene riassunta
Facciamo brevemente due osservazioni: 1. con una sola cifra Hex, si rappresentano tutti i numeri rappresentabili in binario con 4 cifre; 2. le basi che è possibile utilizzare o immaginare sono infinite. In virtù di questa seconda osservazione passiamo ad analizzare un aspetto fondamentale, ovvero come sia possibile effettuare la conversione di un dato espresso in una base (X) verso una nuova base (Y). Per effettuare la conversione da una base ad un’altra è sufficiente utilizzare una qualsiasi
42
calcolatrice scientifica. E se non l’avete a disposizione, allora apprezzerete la possibilità di ripassare il metodo. Si tratta di svolgere qualche breve e semplice operazione.
1110011110101001 -> 1110 0111 1010 1001 -> E 7 A 9 Altre operazioni importanti
La procedura è la seguente:
Scorrimento a Sinistra (Shift Left)
supponiamo di avere il numero 19 espresso in decimale e di volerlo convertire in binario. Tutto ciò che c’è da fare è dividere il numero n volte per 2. Quello che otterrete è un numero con resto annesso ed a ciascuno dei risultati va associato il peso corrispondente (che rappresenta il numero ordinale progressivo della n-1sima divisione che state eseguendo. È incredibilmente più facile a farsi che a spiegarsi:
Se consideriamo il numero binario 0011, che è pari al 3 decimale, possiamo effettuare un’operazione di spostamento di una posizione a sinistra di tutte le sue cifre, ottenendo così 0110, che è pari al 6 decimale. Se applichiamo un ulteriore scorrimento a sinistra otteniamo 1100, che in decimale è 12. Cioè:
Numero NuovaRisultato RisultatoPeso base 19
2
9
1
0
9
2
4
1
1
4
2
2
0
2
2
2
1
0
3
1
2
0
1
4
0011 -> 3; 0110 -> 3*2=6; 1100 -> 6*2 = 3*4 = 12. Queste operazioni ci permettono di notare che uno scorrimento a sinistra equivale ad una moltiplicazione per un fattore 21; allo stesso modo due scorrimenti a sinistra equivalgono ad una moltiplicazione per 22. Ciò si può generalizzare dicendo che uno scorrimento a sinistra di N posizioni moltiplica il numero per 2N. Questa proprietà torna molto utile per spiegare quanto visto al paragrafo precedente. Scorrimento a Destra (Shift Right)
Ancora, supponiamo di avere il numero 31 decimale e di volerlo convertire in esadecimale (hex)
Operazione duale della precedente è quella di shift a destra; se consideriamo il numero binario 1100, spostiamo di una posizione a destra tutte le sue cifre ed otteniamo 0110, che è pari a 6 decimale. Un ulteriore scorrimento a destra ci fa ottenere 0011 pari a 3 decimale. E, quindi, riassumendo:
Numero NuovaRisultato RisultatoPeso base
1100 -> 12; 0110 -> 12/2 = 6; 0011 -> 12/4 = 6/2 = 3.
Così il risultato è il numero binario 10011.
31
16
1
15 (F)
0
A questo punto è facile osservare che uno scorrimento a destra equivale ad una
1
16
0
1
1
moltiplicazione per 2-1 (1/2), due scorrimenti a destra equivalgono ad una moltiplicazione per
Il risultato è il numero binario 1F. Qualora abbiate la necessità di effettuare conversioni tra Base 2 e Base 16, esiste un metodo di conversione “rapida”. Supponiamo, infatti, di aver un numero binario ad 8 bit e di volerlo convertire in esadecimale. Il trucco per avere una conversione rapida è suddividere in blocchi da 4 bit (che vengono chiamati nibble) il numero e ricordarsi che con 4 bit si codifica una cifra hex.
2-2 (1/4) e così via. Generalizziamo, quindi, il concetto dicendo che uno scorrimento a destra di N posizioni moltiplica il numero per 2-N (1/2N). Scorrimento Aritmetico o Logico Nelle seguenti figure viene evidenziata la differenza fra i due tipi di scorrimento, ovvero fra lo scorrimento aritmetico e quello logico.
Esempi di applicazioni di questo metodo sono: 10101001 -> 1010 1001 -> A 9
43
Questo tipo di operazione è un classico esempio di operazione che viene, in genere, utilizzata dai microprocessori per effettuare operazioni matematiche, come avremo modo di approfondire più avanti. La differenza appare evidente in particolare nello scorrimento a destra, dove il bit di peso più alto, ovvero il più significativo (MSB), viene mantenuto. Vedremo in seguito che tale bit può rappresentare il segno del numero quindi la necessità di mantenere tale informazione risulta vitale fintanto che usiamo la matematica con segno. Scorrimento Circolare (Rotazione) Un altro caso particolare di scorrimento è quello circolare, che viene anche detto “rotazione” (per ovvi motivi):
Tutto chiaro fin qui? Bene! Allora... ...arrivederci alla prossima lezione Quanto detto fino a questo momento potrebbe sembrare semplicemente elementare ma si tratta di concetti, se vogliamo pre-concetti, nel vero senso della parola, che risulteranno piuttosto utili alla comprensione dell'intero corso. Questo sarà molto più chiaro già dalla prossima lezione, in cui ci occuperemo dei sistemi digitali e quindi delle funzioni logiche. Ciò verrà fatto introducendo anche i concetti di tabella della verità e funzione logica. L'autore è a disposizione nei commenti per eventuali approfondimenti sul tema dell'Articolo.
In quello a sinistra il bit più significativo viene riportato al posto di quello meno significativo (LSB). In quello a destra, invece, il bit meno significativo viene riportato nella posizione che prima occupava quello più significativo.
Di seguito il link per accedere direttamente all'articolo sul Blog e partecipare alla discussione: http://it.emcelettronica.com/corsodi-microprogrammazione-sistemi-dinumerazione
È appena il caso di far notare che applicare questa operazione n volte, con n numero di bit di cui è composto il numero, equivale a non aver applicato l’operazione. Rotazione a Destra (Rotate Right) e Sinistra (Rotate Left) con Carry
44