2
os book #
Dicembre 2012
Reti Wireless: concetti avanzati Oscilloscopio digitale Open Source Costruiamo uno Switch USB con funzione di autoswitch
Embedded GNU/Linux partendo da zero: E inoltre:
integrazione e test
C o r s o d i M i c r o p r o g r a mm a z i o n e – I s e g r e t i d i M o u n ta i n L i o n C o m e c r e a r e pa g i n e T e l e t e x t – I d i e l e t t r i c i l o w - k
{1
2}
Costruiamo uno Switch USB con funzione di autoswitch di Piero Boccadoro 4 Dicembre 2012
Avete mai notato quanto spazio occupa una tastiera? Non molto in realtà, ma se avete due computer da controllare può essere piuttosto scomodo avere una coppia di mouse ed altrettante tastiere, con annessi cavi che corrono da tutte le parti, e troppo poco spazio per poggiare anche solo un foglio. Quello di cui parliamo è un metodo, piuttosto avanzato, per mettere ordine sulla vostra scrivania. La dimostrazione, se volete, che progettare significa trasformare una esigenza giornaliera in un circuito elettronico. Eccovi un’idea per uno switch USB con autoswitching.
Q
uesto progetto nasce dall’esigenza di riu-
cose, rende (nella mia personale esperienza) ne-
scire a gestire due computer, un portatile
cessario utilizzare un mouse trackball, dispositivo
ed un desktop, fisicamente posiziona-
certamente poco integrabile in un portatile ma
ti sulla stessa scrivania, utilizzando meno spazio
molto consigliato dal punto di vista igienico.
possibile. I due condividevano già il monitor, tra-
Peraltro l’occupazione di spazio sulla scrivania era
mite due collegamenti dei quali uno è VGA men-
largamente inefficiente perché l’utilizzo di un com-
tre l’altro DMI. Ho scoperto, mio malgrado, che
puter preclude quello dell’altro; quindi, di fatto, le
l’accoppiata mouse e tastiera, ancorché senza fili,
due coppie di mouse e tastiera non vengono mai
possono davvero occupare molto spazio ma aver-
utilizzate contemporaneamente.
ne addirittura due cominciava a diventare un po’
Da qui l’idea: perché non creare uno SWITCH USB
troppo.
a cui collegare almeno la tastiera facendo in modo
D’altronde, il portatile una tastiera ce l’ha già in-
che sia possibile collegarla al computer attivo in
corporata ed il mouse non sarebbe indispensabile,
quello specifico momento? Questa idea, è chiaro,
se non fosse che utilizzare il computer per tante
si può applicare ad altri casi, ma lo vedremo poi in
ore al giorno, magari per progettare, tra le altre
seguito.
›
{3
Costruiamo uno Switch USB con funzione di autoswitch
Definizione delle specifiche
solo alcune delle più importanti, ad esempio:
Nel ragionare su che cosa dovesse essere capace
✪ la descrizione dei pin ed annessa funzione
di fare, la prima cosa che mi è venuta in mente, come detto in precedenza, era la possibilità di commutare, per cui solo uno per volta dei due percorsi possibili doveva essere abilitato.
✪ la tabella della verità, grazie alla quale il fun-
In secondo luogo, una funzione più avanzata, poteva
zionamento resta univocamente definito
essere l’auto rilevamento del percorso conduttivo da abilitare. Per farlo ho immaginato che bastasse rilevare il livello di tensione presente sulla linea V+ delle porte USB e commutare abilitando solo quella
✪ il diagramma a blocchi:
attiva. Dopo aver fatto qualche ricerca, ho trovato un integrato della Texas Instruments, il TS3USB221, ed allora il progetto ha cominciato a prendere vita.
L’integrato che ho scelto TS3USB211E caratteristiche principali
In questo schema in particolare c’è esattamente la
Tensione VCC da 2.5 V a 3.3 V
risposta alla domanda iniziale. Le linee di enable e
Switch di segnali I/O fino a 5.5 V
di controllo permettono l’operazione di commuta-
Pin di controllo compatibile con 1.8 V Basso consumo di potenza quando OE è disabilitato (limitato ad 1 μA) rON = 6 Ω (max) ΔrON = 0.2 Ω (tipico) Cio(on) = 7 pF (max) Basso consumo di potenza (30 μA max) Temperature di esercizio: da -40 °C a 85 °C Ampia banda passante (1 GHz, tipico)
Il Pin-out dell’integrato è 10SON, 10UQFN e le sue dimensioni sono piuttosto contenute, trattandosi di componente di tipo DRC quadrato da appena 3 mm di lato. Sul datasheet del componente sono disponibili moltissime informazioni che spiegano per esteso le funzionalità dell’integrato. Qui riportiamo
zione tra un canale e l’altro. Riportiamo, in ultimo, il diagramma ad occhio per le prestazioni dello switch; questo, nello specifico, è riferito al caso di segnale USB 480 Mbps con switch su percorso 2D.
›
4}
TS3USB221EVM Una delle principali difficoltà in questo progetto era, chiaramente, il montaggio. Come detto nel paragrafo precedente, l’integrato è di dimensioni estremamente contenute, il che rende assolutamente impossibile la prototipazione “in casa”. Fortunatamente ho trovato la soluzione: mi sono dovuto “accontentare” di acquistare una scheda di valutazione, il cui nome completo è TS3USB221/ A/E High Speed USB 2.0 (480 Mbps) 1:2 Multiplexer/Demultiplexer Switch Evaluation Module, che trovate disponibile presso i più forniti rivenditori on-line. E così, dopo aver aspettato i necessari tempi di
Il contenuto della box
consegna, eccola qui:
rantire che non ci siano interferenze. Sul sito della Texas Instruments è disponibile la documentazione della scheda in oggetto, che potete trovare qui. Tra le particolarità della scheda in questione c’è il fatto di essere stata progettata specificatamenNell’ultima immagine in basso a destra si vede
te per supportare il protocollo di comunicazione
chiaramente come la scheda risulti isolata. Si trat-
USB versione 2.0, quindi stiamo parlando di una
ta di una board multilayer; l’importanza del buon
versione più “performante” di quanto non lo fos-
isolamento deriva dal fatto che il circuito lavora sia
se l’applicazione per la quale è iniziata la ricerca.
con segnali DC sia dati, per cui è importante ga-
D’altronde questo rende la scheda ancora più
La board: fronte
retro
isolamento
›
{5
Costruiamo uno Switch USB con funzione di autoswitch
utile per effettuare valutazioni di prestazioni anche con dispositivi che, viceversa, di tali velocità hanno bisogno, pensiamo ad unità di archiviazione di massa. Il supporto alla comunicazione è bidirezionale, quindi è possibile utilizzarla sia per dispositivi di solo input Circuito J8
sia per effettuare anche scrittura su dispositivo, ad esempio collegando proprio un disco rigido.
-> USB tipo B maschio.
Viene alimentata, ovviamente, grazie ai 5V già pre-
Inoltre, occorrono due cavi USB tipo A/A, M/M.
senti nell’USB stesso.
Perché tutto funzioni, è necessario abilitare la sezione 3.3 V-LDO aprendo il connettore J8 (il cui circuito di riferimento è riportato nella figura in alto). Rimuovendo, infatti, questo jumper si abiterà l’erogazione della tensione Vcc=3.3V per il TS3USB211, necessaria per il funzionamento. In pochi semplici passi, ecco quello che è necessario fare: ✪ connettere la tastiera all’adattatore e questo al connettore J3;
Diagramma a blocchi della scheda Poiché essa ha uno scopo illustrativo, la Texas ha
✪ rimuovere il jumper J8;
previsto due canali di comunicazione: il primo, par-
tore J7;
tendo dal connettore J1 verso J2, mentre il se-
✪ utilizzare J4 e J5 come sopra;
condo, sul quale effettivamente opera lo switch,
✪ selezionare l’uscita corretta.
tra la “sorgente” connessa a J3, e le periferiche di
Se per effettuare la connessione J1-J2 non c’è
uscita, che vengono collegate su J4 e J5.
alcuna necessità di configurare i jumper, visto
Nel nostro caso, la tastiera (o chi per essa) sarà
che questo è solo un percorso di test per veri-
collegata a J3 mentre i due computer a J4 e J5.
ficare la comunicazione tra i dispositivi; quando,
Ma prima di continuare è importante specificare
invece, lo switch deve essere chiamato in cau-
cos’altro serve rispetto alla semplice scheda.
sa c’è da configurare opportunamente i jumper
Considerato che una tastiera (ma non solo), di soli-
come segue: il percorso J3-J4 è abilitato se J6 è
to, ha un connettore USB di tipo A maschio, occor-
corto circuitato mentre il percorso J3-J5 è attivo
rerà un adattatore che sia USB tipo A femmina
quando J6 è aperto.
✪ abilitare l’integrato cortocircuitando il connet-
›
6}
Costruiamo uno Switch USB con funzione di autoswitch
Resta da vedere come fare per realizzare la funzione di autoswitching. Visto che le piste son realizzate in questo modo è un po’ difficile “metterci le mani” quindi, è necessario utilizzare un transistor (magari un BC237, tanto per fare un nome) da connettere alla V+ di J4. Tramite una resistenza, magari da 4 kOhm Schema di collegamento realizzato sulla scheda
(nell’esempio da 10 k), pilotare il transistor e
La prova
connettere il collettore a J6 (pin 1) e l’emetti-
Poichè più critica della mia applicazione specifica,
tore a massa.
probabilmente è utile verificare la bidirezionalità del-
La configurazione è chiaramente quella ad
la comunicazione; ecco come funziona la comuni-
emettitore comune ed in questo modo la tensio-
cazione utilizzando un hard disk con USB 2.0.
ne di controllo sarà proprio quella che accende o meno il transistor.
Connessione J1-J2
Se non si effettuano altre modifiche, il circuito funzionerà alimentando J4 quando il transistor sarà polarizzato mentre di default alimenterà J5, ovvero il canale 2 (perchè J6 sarà sempre open). Un’altra possibilità per realizzare la funzione di
Hard disk connesso al canale 1, configurato
auto-switching è quella di utilizzare le porte logiche, sintetizzando una funzione che utilizzi V+ del canale 1 e V+ del canale 2 come variabili di ingresso e che abbia come uscita la variabile
Hard disk connesso al canale 2, configurato
“percorso conduttivo da alimentare”. Tuttavia, in effetti, questa strada risulta un po’ più tortuosa.
Costruiamo uno Switch USB con funzione di autoswitch
Configurazione auto-switching
In conclusione Beh, direi che ho certamente trovato l’integrato sul quale puntare per progettare il mio SWITCH USB. E dico che questo è solo un punto di partenza perchè nel progetto che ho in mente, e quindi nella board che voglio realizzare, la funzione di autoswitch dovrà necessariamente esserci ed essere integrata. Inoltre, si può sempre pensare che sia la coppia mouse e tastiera a subire lo switching, non vi pare? Così come, cambiando integrato, perchè non progettare un switch USB + Video? E voi, cosa ne pensate? Come lo avreste implementato? Che funzioni trovereste utile aggiungere? 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/costruiamo-switch-usb-con-funzione-di-autoswitch
{7
8}
Come creare pagine Teletext di Giovanni Di Maria 6 Dicembre 2012
In questo articolo scopriremo come creare le pagine in Teletext, famose in tutto il mondo per il loro contenuto di messaggi e informazioni sui nostri televisori. In Italia le applicazioni principali sono il Televideo e Mediavideo.
I
l Teletext è il nome del servizio tecnico di tra-
Il Teletext, visto dal lato del “trasmittente”, è un
smissione di informazioni che possono essere
insieme di pagine, identificato da un numero a tre
visualizzate sullo schermo televisivo, sottofor-
cifre, ed eventualmente da un numero di sottopa-
ma di semplici pagine di testo e grafica ridotta
gina. La pagina che si vede in TV non ha un conte-
all’osso. In Italia, come detto prima, l’utente televi-
nuto grafico, infatti essa è composta da un insieme
sivo può usufruire di utili informazioni dal Televideo
di caratteri alfanumerici e semi-grafici. L’area di
(per la RAI), Mediavideo (per Mediaset), La7video
schermo indirizzabile è piuttosto limitata , infatti
(per La7), eccetera.
essa è composta da sole 24 linee e 40 colonne.
Se la ricerca, o meglio, la navigazione attraverso le
Uno spazio molto esiguo dove i grafici devono fare
pagine di Teletext è estremamente semplice, non
i salti mortali per poter inserire quante più informa-
lo è la relativa creazione, ossia la preparazione ed
zioni possibili, rimanendo nell’eleganza e nel buon
il disegno delle singole pagine.
gusto. Un’impresa davvero difficile.
›
{9
Come creare pagine Teletext
Le pagine sono trasmesse continuamente, nasco-
Scrivere i contenuti è davvero semplice. Come
ste nel segnale televisivo, quando il pennello elet-
una piccola videoscrittura è sufficiente infatti re-
tronico effettua il ritorno di quadro.
digere una sorta di piccolo documento, ricordando
Come per tutte le rappresentazioni finali, anche in
tuttavia che il sistema non ha strumenti di mar-
questo caso esistono molti software e programmi
ginazione, centratura e formattazione di ogni tipo.
idonei a creare e modificare le pagine del Teletext.
Occorre lavorare a mano, ma con la pratica tutto
Alcuni sono gratuiti ed altri a pagamento. Tuttavia,
diventerà molto semplice.
in rete, oggi è alquanto difficile reperire tale tipolo-
Ma il vero segreto del Teletext è costituito dai ca-
gia di applicazioni, vuoi per il target molto ristretto
ratteri di controllo. Si tratta di speciali caratteri,
di utenti, vuoi per la tecnologia che è molto avanti
non visibili in fase di anteprima o trasmissione del-
rispetto al vetusto sistema testuale.
la pagina, che dànno le direttive di visualizzazione
Uno dei più versatili e potenti, nonchè gratuito, è
all’interprete grafico. Con essi è possibile infat-
il programma CebraText. Cercandolo in rete con
ti colorare il testo, colorare lo sfondo, disegnare
un motore di ricerca si trova subito l’elenco dei siti
pixel semigrafici, far lampeggiare un messaggio,
che lo ospitano. Il download è immediato in quanto
raddoppiare le dimensioni di un testo, ecc. Per ot-
le sue dimensioni sono minime. Non è necessario
tenere il massimo è infatti altamente consigliato
nemmeno eseguire una installazione: è sufficiente
lavorare in modalità “raw” e tenere costantemente
infatti scompattare l’archivio zippato in una cartel-
sottocontrollo tali codici. Sono in questa maniera il
la ed eseguire l’unico file EXE disponibile. Appare
lavoro è reso più semplice e chiaro.
una videata che mostra l’ambiente grafico (si fa
La visualizzazione di una pagina è molto differente
per dire...) accompagnato da una piccola toolbar.
nel caso si scelga di visualizzare tali codici o meno. Al principiante l’abilitazione di tali codici potrebbe addirittura costituire un “disturbo”, ma col tempo se ne gusteranno tutti gli aspetti positivi. Per approntare una pagina, come detto, occorre fornire la giusta sequenza di caratteri di controllo. Se ne potrebbe fare a meno, ma in questo caso il prodotto definitivo sarebbe costituito da una sterile pagina nera con testo di colore bianco, nulla di più. Per esempio, un testo giallo lampeggiante su uno sfondo blu, dovrebbe essere
›
10 }
Come creare pagine Teletext
costituito dai seguenti pseudo-comandi:
Sono infatti la fantasia ed il buon gusto a far sempre
✪ Comando di grafica blu;
da padroni. Il programma CebraText, fortunatamen-
✪ Comando di attivazione background;
te, dispone di alcuni strumenti che automatizzano
✪ Comando di testo giallo;
alcune operazioni di tracciamento primitive 2D,
✪ Comando di lampeggiamento;
come ad esempio il cerchio ed il rettangolo oppure
✪ Scrittura del testo;
una linea o addirittura un singolo punto. In questa
✪ Comando di fine del background.
maniera anche questa operazione, manualmente
Per gli altri elementi di sfondo si eseguono le stes-
complessa, è resa alquanto semplice. Per il dise-
se procedure. Sembra difficile ma in realtà è sem-
gno delle figure è sempre obbligatorio abilitare il
plicissimo. Basta fare pratica per alcuni minuti,
colore grafico ed, eventualmente, uno sfondo.
magari cercando di emulare le belle pagine presenti su Televideo o Mediavideo. Tempo fa, queste ed altre aziende, reclutavano grafici proprio per la creazione di pagine del Teletext, per le quali era stato coniato il termine “Teletext Art”, proprio per far comprendere come la creazione di belle pagine grafiche, con poche risorse, potesse costituire a tutti gli effetti una vera e propria arte. Con questa tecnica è possibile disegnare anche raffigurazioni complesse, come volti umani, automobili o qualsiasi altro oggetto o animale rappresentabile. Tale operazione risulterebbe però di una difficoltà inaudita: solo i bravissimi disegnatori potrebbero infatti ottenere qualche risultato utile. Un bel disegno infatti difficilmente potrebbe essere creato semplicemente accendendo e spegnendo Il Teletext supporta anche la grafica: una misera
dei pixel.
grafica in cui ogni locazione può ospitare 6 pixel,
Anche in questo caso il programma CebraText vie-
combinati in due colonne per tre righe. Con la
ne molto d’aiuto e mette a disposizione di un po-
combinazione opportuna di punti colorati accesi e
tente strumento di copia e incolla grafico. L’utente
spenti, è possibile approntare dell’ottima grafica.
può visualizzare il suo disegno o la sua foto con
›
Come creare pagine Teletext
che contiene la codifica ed il protocollo per la sua gestione. Aprendo il documento con un qualsiasi editor, si potranno osservare i caratteri (a volte in una codifica incomprensibile) che formano l’intero risultato finale. Per la varietà di programmi esistenti (e ragioni commerciali) esistono diversi standard di files Teletext, alcuni molto simili. Il Cebratext può salvare in due formati diversi: il formato TTX (proprietario) ed il formato TTV, più facilmente esportabile per altri software simili. il suo programma di grafica, e poi con un semplice copia e incolla localizzato, può “attaccare” il grafico sulla pagina del Teletext. Ovviamente occorre sempre tenere a mente dell’ampiezza limitata dell’ambiente, ossia di 40x25 punti. Questa operazione ovviamente non importa anche i colori, che devono essere sempre programmati “a mano”. Per il raggiungimento di risultati ottimali è opportuno fare numerosi tentativi. Ad ogni modo, la vera essenza del Teletext è racchiusa all’interno del suo file ospitante, un file
Il fine ultimo del documento creato è quello di essere dato “in pasto” ad una scheda elettronica (decoder Teletext), collegabile al PC. Tale dispositivo, inizialmente si collega al PC, per prelevarne il file della pagina. Infine si connette al televisore o ad un trasmettitore TV o ad un mixer TV, per la messa in onda delle pagine. 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/come-creare-pagine-teletext
{ 11
12 }
Oscilloscopio digitale Open Source di Piero Boccadoro 11 Dicembre 2012
Chi ha detto che, perché un dispositivo sia semplice, efficace, versatile e potente, c’è bisogno che costi un occhio della testa? Beh, in realtà si tratta di esperienza di vita vissuta un pò da tutti. Tuttavia, quello che vi proponiamo oggi, è un simpatico esperimento Open Source, un progetto davvero interessante che prova a coniugare tutte queste caratteristiche per creare un utile supporto al debug ed all’analisi dei circuiti. Stiamo parlando di un oscilloscopio digitale con schema elettrico e software disponibili! Analizzeremo insieme a Voi ogni parte di questo grandioso progetto. 32-bit e che permette, grazie alle sue basilari ma complete caratteristiche tecniche, di effettuare operazioni di il controllo delle forme d’onda. Esso è equipaggiato con un display LCD, un lettore di memory card di tipo SD ed un’interfaccia USB che consente la
I
connessione al PC per gestire l DSO Nano v2 (il cui nome è acronimo di Di-
i dati memorizzati e lavorare sul firmware.
gital Storage Oscilloscope) è, per l’appun-
Viste le sue dimensioni (sta davvero in un palmo
to, un Oscilloscopio Digitale progettato per
di mano!), esso consente di fare misure sul campo
permettere, ad un ingegnere elettronico ma non
ed operare in maniera veloce e piuttosto intuitiva.
solo, di eseguire operazioni di analisi elementari
Così, anche il lavoro dell’hobbysta diventerà molto
sui segnali. Si tratta, come vedremo meglio tra
semplice.
poco, di un dispositivo dalle dimensioni molto
Ma la più interessante delle caratteristiche di que-
contenute che utilizza un ARM Cortex™-M3 a
sto progetto è che esso è letteralmente “a di-
›
{ 13
Oscilloscopio digitale Open Source
DSO Nano v2 specifiche tecniche
sposizione”. Il progetto è, infatti, Open e chiunque abbia il desiderio di metterci le mani sopra per provare a lavorarci per modificarlo, potrà farlo. Tra un po’ vedremo, nel dettaglio, come avere accesso a queste informazioni. Nel frattempo, vi siete incuriositi? Bene! Adesso andiamo con ordine…
Display
Full Color 2.8” TFT LCD 65K 320×240
Banda analogica
0 – 200 kHz
Max sample rate
1Msps @ 12Bits
Profondità di memoria
4.096 Punti
Sensibilità orizzontale
1 us/Div~10 s/Div
Posizione orizzontale
Modificabile con gli indicatori
Sensibilità verticale
10 mV/Div~10 V/Div (con sonda ×1) 0.5V/Div~100V/Div (con sonda ×10)
Posizione verticale
Modificabile con gli indicatori
Impedenza d’ingresso
>500 kOhm
Max tensione input
80 Vpp (by ×1 probe)
Accoppiamento
DC Auto, Normale, Singolo, None, Scan & Fit
Features, interfaccia utente, bundle e dintorni Cominciamo guardandolo da fuori. La struttura
Modalità di trigger
di base è davvero semplice e permette di padroufficiale, pagina in cui compaiono le informazioni sta immagine
Trigger level modificabile con gli indicatori Sensibilità del Trigger modificabile con gli indicatori
neggiare immediatamente lo strumento. Sul wiki complete sul prodotto, viene riportata anche que-
Rising/Falling edge/level trigger
Funzioni di forma d’onda
Auto measurement: frequency, cycle time, duty cycle, peak voltage, RMS voltage, Average voltage and DC voltage Markers verticali per misure precise Markers orizzontali per misure precise Hold/Run
grazie alla quale si può prendere facilmente confidenza con il DSO Nano.
›
Generatore di segnale
10 Hz~1 MHz square wave
Memorizzazione della forma d’onda
Micro-SD card
Tipo di connessione al PC con USB
SD card reader (memoria di massa)
Aggiornamento
USB
Alimentazione
500 mAh 3.7 V Lithium battery / USB
Dimensioni (senza probe)
95mm x 62mm x 13mm
Peso
76 g
14 }
Oscilloscopio digitale Open Source
Nell’immagine che segue, invece, vi proponiamo la
La gestione della navigazione all’interno dei menu
spiegazione completa del display acceso mentre
viene fatta con evidenziazione della funzione se-
visualizza due forme d’onda di test.
lezionata e l’utilizzo dei pulsanti Up/Down e OK completa il quadro dei comandi disponibili e delle operazioni che è possibile eseguire. Prima di continuare è importante segnalare che sul sito internet di riferimento per il progetto (che vi indicheremo meglio tra poco) è presente una guida completa
Fig. 1 – L’interfaccia Tutto intorno all’area di visualizzazione vengono posizionati una serie di cursori, indicatori e marker grazie ai quali si accede immediatamente non soltanto alle misurazioni appena effettuate ma anche alla possibilità di impostare ogni singolo parametro.
Fig. 2 – i cursori di misurazione
I pulsanti Left/Right vengono utilizzati principal-
che spiega come si può modificare, aggiornare ed
mente per effettuare la “navigazione” all’interno
impostare ogni parametro della visualizzazione, dai
dei menu dello strumento. La funzione di ciascun
caratteri ai colori, finanche ai menu.
elemento viene ben chiarita grazie ai commenti
Riguardo l’interfaccia, comunque, c’è da dire che
che vedete posizionati nell’immagine 1.
l’estetica dell’oscilloscopio aiuta moltissimo ad
Si vede chiaramente come sia possibile utilizzare
identificare immediatamente le funzioni disponibili.
cursori che effettuino misurazioni, come nel caso
Il display, infatti, è letteralmente circondato da pul-
dell’intervallo temporale evidenziato in fig. 2. Que-
santi. Il menu in alto consente di effettuare le mo-
sta, come tutti noi ben sappiamo, è una funzione-
difiche (correzioni/aggiusti) alla visualizzazione del
chiave nella valutazione del funzionamento di un
segnale. La barra di stato in basso, invece, fornisce
circuito, specie se lavoriamo con segnali digitali. È
l’indicazione delle misure che vengono effettuate e
davvero una buona notizia che questo strumento
notifica lo stato di funzionamento del dispositivo.
sia in grado di effettuare questa misura con una
È possibile modificare questa visualizzazione in
precisione più che accettabile (ma lo vedremo me-
maniera da aggiungere altre e più sofisticate fun-
glio più avanti).
zioni grazie alle opzioni presenti nei menu.
›
{ 15
Oscilloscopio digitale Open Source
Zoom sul segnale
motivo l’impostazione utile a risolvere il pro-
Muovendo i cursori della “Vertical Scale” e
blema sarà certamente la modifica del valore
della “Time Base” è possibile esaminare me-
voltage/div.
glio il segnale. Questo risulta particolarmente
Grazie alla pressione del pulsante A si può ot-
utile quando quello in esame non è un segnale
tenere il freeze della visualizzazione corrente
periodico ma piuttosto irregolare o che presen-
(praticamente lo stato di funzionamento diven-
ta delle oscillazioni notevoli.
terà HOLD). Una nuova pressione renderà nuo-
Modificando, in definitiva, parametri come vol-
vamente operativo l’oscilloscopio (e lo stato
tage/div o time/div si può riuscire ad ottenere
tornerà ad essere RUN).
lo scopo. Ciascuna “div” non è altro che l’unità
Modalità di trigger
della griglia di “divisione” dello schermo. Come
Questo particolare oscilloscopio possiede sei diffe-
abbiamo visto in tabella, la scala verticale va
renti modalità di trigger; si tratta di:
da 10 mV/div fino a 10 V/div. La base dei tem-
✪ AUTO: effettua costantemente l’aggiornamen-
pi, invece, da 1 us/div a 10 s/div. Necessario
to della visualizzazione del display ed il controllo
è, inoltre, tenere a mente anche che quando
sull’istante di trigger.
la scala dei tempi che si usa è la più grande
✪ NORM (al): visualizza la forma d’onda non ap-
possibile, la visualizzazione potrebbe sembrare
pena sia stata sincronizzata e non visualizza nulla
bloccata, come congelata (frozen), dal momen-
se l’aggancio non è riuscito.
to che 10 s/div vuol dire che ci vogliono 120
✪ SING (le): visualizza la forma d’onda non appe-
secondi per effettuare l’operazione di refresh
na sia stata raggiunta una condizione di trigger e
dell’intero schermo.
poi cancella lo schermo.
La forma d’onda potrebbe essere, come spesso
✪ SCAN: effettua uno sweep continuo e ripetuto
accade all’inizio negli oscilloscopi, non perfet-
della forma d’onda.
tamente centrata nel display. Se la visualizza-
✪ NONE: aggiorna lo schermo continuamente
zione non dovesse essere corretta per questo
con la forma d’onda visualizzata a prescindere
le modalità di trigger a confronto Modo
Trigger
Mostra la forma d’onda
Sincronizzazione
Applicazioni d’esempio
AUTO
Si
Sempre
Yes
Generico
NORM
Si
Triggered
Si
Solo segnali periodici
SING
Si
Triggered
Auto-hold
Cattura di un impulso
SCAN
No
Sempre
No
Monitoraggio di un segnale
NONE
No
Sempre
No
Mostra un forma d’onda non sincronizzata
FIT
Si
Auto-adjust
Si
Mostra segnali periodici
›
16 }
Oscilloscopio digitale Open Source
dall’istante di trigger.
quadra di frequenza variabile compresa nell’in-
✪ FIT: avviene la correzione automatica della po-
tervallo tra 10 Hz ed 1 MHz. La frequenza può
sizione e dei fattori di scala sia verticali sia orizzon-
essere modificata grazie al Fo (“frequency out”).
tali per effettuare la corretta visualizzazione.
La tensione di picco, così come la potenza fornita,
Tra queste modalità è utile effettuare un confron-
dipendono dall’alimentazione; così, quando l’ali-
to, anche per capire quando/dove/come e magari
mentazione attiva è quella batteria, avremo 3.7 V
perchè preferirne una o un’altra; facciamo questo
circa mentre se l’alimentazione arriva tramite USB
con la tabella di pagina 15.
disporremo di 5 V.
La funzione di automisurazione può essere molto
Ed a proposito della batteria, vale la pena di spe-
utile per effettuare analisi veloce sui segnali e sulle
cificare di che tipo di alimentazione questo oscillo-
loro caratteristiche. Le opzioni di misura includo-
scopio dispone. L’alimentazione è interna e provvi-
no grandezze come la frequenza, il duty-cycle
sta da una batteria di tipo LiPo da 500 mAh.
(ovviamente!), la tensione di picco ma anche il
La Package list
valore RMS e molte altre. Ovviamente alcune di
Nel bundle ci sono:
queste saranno accessibili soltanto nel momento
✪ DSO Nano V2 (ovviamente)
in cui ci sia effettivamente l’aggancio al segnale e,
✪ Probe (X1)
quindi, almeno un istante di trigger valido.
✪ Test Probe (X1 )
Come accennavamo in precedenza, per ottenere
✪ Cacciavite (X1)
misure molto più precise di quelle che si posso-
✪ Borsa (X1)
no realizzare “ad occhio”, è possibile utilizzare i
✪ Supporto (X1)
marker X1 e X2 sia per le misure di tensione sia
Note:
per le misure di tempo (infatti “X” sta sia per “V”
- il cavo Mini-USB NON è incluso nel bundle.
sia per “T”).
Tuttavia per caricare la batteria del DSO sarà ne-
Memorizzazione della forma d’onda
cessario averne uno.
Come si intuisce già guardando le caratteristiche,
- una scheda di memoria da 2 GB tipo Micro-
le forme d’onda visualizzate possono essere salva-
SD è l’ideale per conservare i dati ma anche que-
te grazie all’utilizzo di una memory card di tipo SD
sta non è compresa nella confezione.
che sia formattata con un filesystem di tipo FAT16.
Novità della v2
Quando la microSD è pronta, l’FS (file save) ed il
Come tutte le nuove release, anche questa conta
FL (file load) saranno segnalati tramite l’utilizzo di
diverse modiche e caratteristiche riviste, alcune,
icone dedicate su schermo.
in verità, più significative di altre. La più evidente
Generazione di segnale
delle novità riguarda il package, che è cambiato
Il jack audio da 3.5m disponibile viene utilizzato
diventando “semi-steel”; questa modifica, in real-
come generatore di segnale. L’uscita è un’onda
tà, è stata motivata da diversi fattori, primo tra
›
{ 17
Oscilloscopio digitale Open Source
tutti la durata, in termini di resistenza e robustezza.
✪ connettore per la batteria Fixed;
Queste caratteristiche meccaniche si accompa-
✪ ridimensionamento a 95 mm*62 mm*13 mm
gnano alla necessità di schermare il circuito da po-
e 76 g;
tenziali rumori che vadano a corrompere i segnali
✪ aggiornamento del software.
in transito sulle piste di collegamento. In ultimo,
Lo schema elettrico
uno degli aspetti che rende, per i produttori, utile
Per completezza riportiamo uno dei documenti che
questa nuova “veste”, è la faciltà di assembleaggio
completano il quadro informativo che i creatori del
raggiunta adesso proprio grazie al nuovo case.
DSO hanno predisposto: lo schema elettrico. Ecco-
La lista delle altre modifiche effettuate si compone
ne un’immagine tratta dal pdf che hanno ufficial-
di:
mente rilasciato.
✪ Unibody PCB design per migliorare l’affidabili-
Grazie a questa immagine risulta immediatamente
tà;
chiaro come sia costituito il dispositivo, quale sia
✪ uso del CI LTC4054 per migliorare la carica del-
la sua configurazione hardware completa e come
la batteria;
siano stati organizzati i collegamenti tra la sezione
✪ realizzazione di un canale dedicato per la gene-
di elaborazione dei dati, gestita dal microcontrollo-
razione del segnale;
re della famiglia STM32F103xx, quella di acquisi-
✪ pulsante dedicato per la funzione Auto-Set;
zione dei dati, che qui viene indicata con “CN1”
Lo schema elettrico
›
18 }
Oscilloscopio digitale Open Source
(ovviamente più per prassi che per necessità visto
Il firmware si compone di diverse funzioni, come
che di canali di acquisizione ne è presente solo
vediamo qui di seguito nell’astratto del main:
uno), e quella di acquisizione e gestione degli input, tramite pulsanti dislocati sul case come visto in precedenza. La sezione di acquisizione è qui caratterizzata da una serie di possibili ingressi, tutti opportunamente diltrati, indirizzati ad un Multiplexer ad 8 canali, il 74HC4051, un dispositivo realizzato in tecnologia cMOS con gate in Silicio. Si tratta, più specificatamente, di un multiplexer/demultiplexer analogico con 3 linee di selezione, un ingresso di enable attivo-Basso (E), 8 ingressi indipendenti ed un pin di in/out comune che permette la gestione degli ingressi sulla base del tipo di segnale in arrivo. Spicca in questo schema l’FDFMA2P853, un dispositivo progettato come soluzione integrata per caricare le batterie dei dispositivi cellulari, ma non
/****************************** ******************************* ************ File Name: main.c ******************************* ******************************* ***********/ #include #include #include #include #include #include #include #include #include void
“Function.h” “Menu.h” “Lcd.h” “Calculate.h” “stm32f10x_lib.h” “HW_V1_Config.h” “Files.h” “string.h” “ASM_Function.h”
main(void)
{
solo; è infatti rivolto ad ogni soluzione portatile a
✪ in “Menu.h” si definiscono tutte le variabili che
basso consumo. Al suo interno, un MOSFET carat-
verrano utilizzate, considerandone anche i relativi
terizzato da una bassa resistenza DS ed un diodo
valori. Utile, a questo scopo è, ad esempio, la fun-
schottky che garantisca basse perdite di segnale
zione che definisce i valori di tensione in relazione
condotto.
alla sensibilità verticale:
Il firmware Ed ora, veniamo al firmware. Iniziamo subito con una breve lista dei tools di cui si ha bisogno: 1. IAR Workbench evaluation for ARM. (32KB code limit); 2. la versione del firmware APP più recente disponibile; 3. Dfuse; 4. un PC su cui sia in esecuzione un sistema operativo Windows (98 o successivi); 5. un cavo mini-USB per collegare il DSO al PC.
//------------ voltage range related parameter definitions-----------unsigned const char Item_V[20][10] = // vertical sensitivity labels // 0 1 2 3 4 5 6 7 8 9 probe attenuation x1 {“10mV/Div”, “20mV/Div”, “50mV/Div”, “0.1V/Div”, “0.2V/Div”, “0.5V/Div”, “ 1V/Div “, “ 2V/Div “, “ 5V/ Div “, “ 10V/Div”, // 10 11 12 13 14 15 16 17 18 19 probe attenuation x10 “0.2V/Div”, “0.5V/Div”, “ 1V/Div “, “ 2V/Div “, “ 5V/ Div “, “ 10V/Div”, “ 20V/Div”, “ 50V/Div”, “100V/ Div”, “ -GND- “};
›
{ 19
Oscilloscopio digitale Open Source
✪ “Lcd.h” si occupa della gestione dello schermo
✪ “Calculate.h” si occupa, tra le altre cose, effet-
(facile da intuire, no?) e lo fa, tra le altre, con due
tuare le conversioni. Ad esempio tra numeri a 32
funzioni piuttosto utili: una che imposta le coor-
bit o a 16 e stringhe con la precisione ad una cifra
dinate dell’area di visualizzazione e l’altra che si
decimale;
occupa di gestire gli input.
✪ l’header file “stm32f10x_lib.h” serve ad ef-
/***************************************************** ************************** Function Name : LCD_SET_WINDOW Description : use (x1,y1) and (x2,y2) to set a rectangle area Para : (x1,y1) and (x2,y2) ***************************************************** **************************/ void LCD_SET_WINDOW(short x1, short x2, short y1, short y2) { LCD_WR_REG(0x0050, y1); LCD_WR_REG(0x0051, y2); LCD_WR_REG(0x0052, x1); LCD_WR_REG(0x0053, x2); LCD_WR_REG(0x0020, y1); LCD_WR_REG(0x0021, x1); LDC_DATA_OUT = 0x0022; // Reg. Addr. LCD_RS_LOW(); // RS=0,Piont to Index Reg. LCD_nWR_ACT(); // WR Cycle from 1 -> 0 -> 1 LCD_nWR_ACT(); // WR Cycle from 1 -> 0 -> 1 LCD_RS_HIGH(); // RS=1,Piont to object Reg. } /***************************************************** ************************** Point_SCR: Set display position Input: X, Y ***************************************************** **************************/ void Point_SCR(unsigned short x0, unsigned short y0) { LCD_WR_REG(0x0020,y0); LCD_WR_REG(0x0021,x0); LDC_DATA_OUT=0x0022; //DRAM Reg. LCD_RS_LOW(); LCD_nWR_ACT(); //WR Cycle from 1 -> 0 -> 1 LCD_nWR_ACT(); //WR Cycle from 1 -> 0 -> 1 LCD_RS_HIGH(); }
fettuare l’inizializzazione di tutti i puntatori alle periferiche ed è un file marchiato STM (Copyright 2007) Il main risulta piuttosto snello ed utile a chiamare in causa solo le funzioni che servono e quando servono. Esso è prevalentemente costituito da un loop in cui si verifica la presenza di segnale, la condizione di trigger e si effettua l’acquisizione, aggiornando lo schermo di conseguenza. Il tutto in 452 linee di codice. Una della feature software documentate è la funzione che permette l’esportazione dei dati in formato XML. Qui riportiamo un breve estratto di questa funzione in cui ci sono 5 campioni rilevati attorno alla condizione di trigger. Nella sezione “Profilo” ci sono informazioni relative alla configurazione attiva al momento dell’acqusizione, dato che potrebbe essere utile acquisire per successiva analisi dei risultati. Ed ancora, sono 3 gli elementi “numerici” in questa sezione, denominati triggerIndex, sampleCount e timeRange. Il primo rappresenta il numero totale di di campioni presenti nel file (come una sorta di dimensione che, nella revision 3 del firmware è 3072). timeRange, ovvero il secondo, rappresenta l’intervallo temporale (misurato in secondi) tra il primo e l’ultimo campione (o più semplicemente la durata). Il terzo, è nient’altro che l’indice di trigger. Da questi dati si può facilmente risalire all’intervallo di tempo
›
20 }
Oscilloscopio digitale Open Source
che c’è tra un campione ed il successivo (basta <?xml version=”1.0” encoding=”UTF-8”?> <Document> <Profile> <triggerMode>NORM</triggerMode> <triggerKind>EdgeRising</triggerKind> <triggerLevel>3.76V</triggerLevel> <triggerSensitivity>200mV</ triggerSensitivity> <attenuation>x1</attenuation> <voltageDiv>1V</voltageDiv> <timeDiv>200us</timeDiv> <firmware>V3.20</firmware> <fileNumber>S003</fileNumber> <triggerIndex>1220</triggerIndex> <sampleCount>3072</sampleCount> <timeRange>24.576e-3</timeRange> </Profile> <Point> <seq>1218</seq> <val>-40.000e-3</val> </Point> <Point> <seq>1219</seq> <val>-40.000e-3</val> </Point> <Point> <seq>1220</seq> <val>5.280</val> </Point> <Point> <seq>1221</seq> <val>5.200</val> </Point> <Point> <seq>1222</seq> <val>5.160</val> </Point> </Document>
calcolare timeRange/sampleCount) e con esso, evidentemente, anche la frequenza di campionamento. Ed ora è il momento di approfondire l’aspetto davvero più lodevole del progetto: il codice è Open Source e la comunità tutta, gli utilizzatori, i programmatori che lo desiderassero ma anche gli studenti, insomma chiunque può provare a modificarlo sentendosi libero di proporre o apportare aggiornamenti o modifiche a quanto realizzato dai progettisti. Le versioni più aggiornate del firmware richiedono test e verifiche ma se volete dare il vostro contributo questo progetto ve ne darà la possibilità reale. Potrete, così, intervenire su tool, firmware, documentazione ma anche bug ed altro. A tal proposito, vi proponiamo un utile prospetto che segnala gli aggiornamenti effettuati su questo progetto “so far”. Revisione
Descrizione
Release
v0.9b
Prima release ufficiale
25 Agosto 2010
v0.91b
Release aggiornata
31 Maggio 2011
Vale la pena di specificare che tutta la documentazione riguardante il progetto, e quindi tutti i dettagli su cosa è cambiato da una versione alla successiva, lo schema elettrico, la part-list, il layout, il firmware e tutto, ma davvero tutto, ciò che possa servirvi (o interessarvi) sapere è reperibile in giro su internet ed in particolare sul wiki del progetto, che è online a questo indirizzo ma anche sul repository ufficiale del DSO Nano, che è questo.
›
Oscilloscopio digitale Open Source
Tiriamo le somme
non vuol dire niente. Però se devo provare ad
A questo punto è venuto il momento di dire la mia
immaginare qualche applicazione, beh vi sug-
su questo prodotto ma immagino si sia capito cosa
gerirei di pensare che la banda del segnale te-
ne penso. Ritengo si tratti di uno strumento dav-
lefonico è 3400 Hz (lordi), quella del segnale
vero ben fatto, che suscita certamente una grande
audio è 20 kHz (lordi) e... beh, sono le prime due
curiosità sia in chi vi scrive sia in chi lo acquista.
applicazioni che mi sono venute in mente.
Uno degli indubbi vantaggi che il progetto ha è il
Certo, ce ne sono milioni ancora, e di tipo com-
prezzo, davvero più che abbordabile.
pletamente diverso, e sebbene per molte di esse
Fare misurazioni con uno strumento palmare è
questa banda passante sia sufficiente, per altre
sempre una cosa gradita, anche quando le si
magari no. Penso al segnale televisivo o a se-
deve effettuare per mero hobby.
gnali RF e trasmissioni a banda larga.
Tuttavia personalmente ne sconsiglio l’acquisto
Ma probabilmente queste applicazioni suggeri-
a tutti coloro che non abbiano necessità pret-
scono da sole che molto altro sarebbe più utile
tamente “ludiche” o comunque di caratura pro-
di uno strumento come questo.
fessionale. La più grande limitazione di questo
E allora, se vi state chiedendo se potrebbe ser-
progetto è in banda, come avrete certamente
virvi, vi suggerisco di chiedervi: per fare che
notato. 200 kHz è numero, certo, e come tale
cosa?
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/oscilloscopio-digitale-open-source
{ 21
22 }
Reti Wireless: concetti avanzati di S. Lovati 13 Dicembre 2012
Quando si desidera installare o configurare una rete wireless domestica, sorgono spesso dei dubbi oppure delle esigenze particolari che non sempre trovano una risposta nei manuali d’uso dei produttori di dispositivi di rete. Vediamo in questo articolo quali sono le principali topologie di reti wireless e come metterle in pratica.
S
u Elettronica Open Source sono stati
ai casi reali che possiamo incontrare nella vita di
pubblicati diversi post relativi alle reti
tutti i giorni, ecco che la stessa acquista un potere
wireless e ai sistemi Wi-Fi in generale,
straordinario. Capire come funzionano (o devono
trattando anche in dettaglio l’argomento della
funzionare) le cose, ci rende più sicuri e aumenta il
sicurezza e suggerendo alcune semplici misu-
nostro bagaglio di conoscenze
re volte ad aumentare il grado di protezione di
✪ i post pubblicati sino ad ora trattavano argo-
una rete wireless domestica. Finora, non si è
menti specifici applicabili alla generalità delle reti
trattato, volutamente, l’argomento relativo alle
wireless, non a una in particolare. Non vi era per-
diverse architetture (o meglio topologie) di reti
tanto l’esigenza di soffermarsi su un particolare
wireless. I motivi sono principalmente due:
tipo di struttura o configurazione
✪ l’argomento potrebbe essere considerato da
Per chi affronta per la prima volta i concetti relativi
qualcuno troppo tedioso. Ciò è vero solo in par-
alle reti (il “networking” della letteratura anglosas-
te. La teoria di per sè può essere talvolta molto
sone) o comunque vuole dare una rinfrescata a
noiosa, ma quando questa viene accompagnata
questo argomento, consiglio di leggersi anzitutto
da esempi pratici che ne dimostrano l’applicabilità
questo post.
›
{ 23
Reti Wireless: concetti avanzati
Rete wireless con singolo router
che si collegano alla rete (PC, smartphone, tablet,
Si tratta dell’esempio più semplice, ma anche di
console videogiochi, strumentazione, ecc.) è pre-
quello più comunemente utilizzato, di rete wireless
sente un client DHCP che può essere offerto dal fir-
domestica. Questo tipo di topologia comprende un
mware o dal sistema operativo installati sul dispo-
router wireless singolo, al quale sono connessi uno
sitivo stesso. Se il DHCP è abilitato, il DHCP server
o più dispositivi dotati di interfacciamento wireless.
gestisce uno o più client assegnando a ciascuno
Ad esempio, nell’immagine seguente è mostrato il
di essi un proprio (e univoco) indirizzo IP. Quindi,
caso di tre PC collegati al medesimo router.
abilitando il servizio DHCP sul router, quello che succede è che ogni dispositivo client (ad esempio uno smartphone con funzionalità Wi-Fi) per collegarsi dovrà anzitutto inviare una richiesta al server DHCP (come questa richiesta viene inviata fa parte del protocollo DHCP stesso, e ora non ci interessa). Il server DHCP, basandosi su alcune regole,
La configurazione di questo tipo di rete è molto
cercherà di assegnere al dispositivo un indirizzo
semplice. L’unica scelta da affrontare, se così si
IP. In genere l’operazione riesce, ma ci sono casi
può dire, riguarda l’abilitazione o meno del DHCP.
particolari in cui l’indirizzo IP non può essere asse-
Con il termine DHCP (acronimo di Dynamic Host
gnato. Quando si configura il DHCP, ad esempio, si
Configuration Protocol) si intende il protocollo di
sceglie il range di valori di indirizzi da assegnare.
rete utilizzato per configurare i parametri dei di-
Ad esempio si sceglie di assegnare tutti e soli gli
spositivi di rete in modo tale che essi possano dia-
indirizzi compresi nel range da 192.168.1.100 a
logare su una rete IP. Questi parametri sono fon-
192.168.1.120). Al primo dispositivo che si colle-
damentalmente l’indirizzo IP stesso (ad esempio
ga, verrà ad esempio assegnato il primo indirizzo
192.168.1.100), il (o i) server DNS (Domain Name
disponibile, cioè 192.168.1.100; al secondo ver-
System, utilizzati per risolvere, o “tradurre”, ogni
rà assegnato l’indirizzo 192.168.1.101, al terzo
indirizzo di sito web nel corrispondente indirizzo IP
192.168.1.102, e così via. Al ventesimo disposi-
dell’host che ospita il sito stesso), e le regole di
tivo collegato andrà l’ultimo indirizzo IP libero, cioè
routing (il cammino da seguire per potersi connet-
192.168.1.120. Se a questo punto ci fosse un
tere con un qualunque indirizzo IP). Il DHCP adotta
ulteriore dispositivo che richiede la connessione,
un’architettura client-server: con ciò si intende dire
il DHCP non sarebbe più in grado di reperire un
che sul sistema host (nel nostro caso il router wire-
indirizzo valido, e il dispositivo rimarrebbe in attesa
less) è presente un server DHCP (“affogato” all’in-
di ricevere l’indirizzo stesso. Il DHCP server deve
terno del firmware che gestisce le varie funzionali-
ovviamente tenere traccia e aggiornare in tempo
tò del router stesso), mentre sui dispositivi wireless
reale lo stato degli IP assegnati. Se un dispositi-
›
24 }
Reti Wireless: concetti avanzati
vo si scollega, il suo indirizzo può essere riutilizzato
Ciò perchè l’indirizzo 192.168.0.0 identifica pro-
(ciò non avviene in genere istantaneamente, perchè
prio l’indirizzo di partenza di una rete privata, ed è
un indirizzo IP può anche essere assegnato con un
riconosciuto come tale da tutti i router.
“contratto a tempo”, e non riutilizzato finchè questo
Se quindi si vuole abilitare il DHCP, basterà ese-
periodo non è trascorso). Riassumendo: se il DHCP
guire questa operazione accedendo al firmwa-
viene abilitato sul router, gli indirizzi IP vengono as-
re di controllo del router stesso, selezionando il
segnati automaticamente e dinamicamente (cioè a
range di indirizzi IP da assegnare (ad esempio da
uno stesso dispositivo possono essere assegnati
192.168.0.100 a 192.168.0.200). La figura 2
indirizzi IP diversi in connessioni eseguite in tempi
mostra proprio una situazione simile, dove il router
differenti); per conoscere l’indirizzo IP assegnato al
ha l’indirizzo 192.168.0.1 (questo viene pre-as-
dispositivo dovremo dare l’apposito comando di-
segnato dal fabbricante, e solitamente è stampato
sponibile a livello di sistema operativo (ad esempio
sull’etichetta posta sotto il router stesso).
ipconfig in Windows). Se invece il DHCP viene disabilitato, gli indirizzi IP dovranno essere assegnati in modalità statica. Da chi? Da chi configura la rete. Detta così, la possibilità di usare degli indirizzi statici sembra quasi una seccatura, o comunque una perdita di comodità rispetto al DHCP. In realtà, gli indirizzi statici hanno un’utilità, e servono in particolare quando si vuole realizzare una rete in cui i dispositivi
Fig. 2
collegati sono sempre gli stessi e le interfacce di
Se invece si vuole assegnare un indirizzo statico a
rete devono essere configurate sempre nello stes-
ciascun dispositivo collegato in rete, occorrerà an-
so modo. Quando ad esempio si vogliono collega-
zitutto disabilitare il DHCP sul router (vedi fig. 3), e
re in rete più computer (si pensi alle applicazioni
assegnare poi l’indirizzo statico su ciascun diposi-
industriali o a quelle nel campo dell’automazione)
tivo (l’operazione dipende dal particolare sistema
si sceglie questa soluzione, in modo tale da poter
operativo adottato). Ad esempio al router si può as-
indirizzare via software ogni computer in modo uni-
segnare l’indirizzo 10.0.0.1, al primo PC l’indirizzo
voco tramite il suo IP. Se infatti questo cambiasse
10.0.0.2, al secondo PC l’indirizzo 10.0.0.3, e al
ad ogni accensione del sistema, si creerebbe una
terzo l’indirizzo 10.0.0.4, e così via. Come masche-
situazione caotica e ingestibile. A questo proposito
ra subnet si può utilizzare 255.255.255.0, e come
ricordiamo che per le reti locali viene generalmente
gateway predefinito 10.0.0.1. Per verificare se il
scelto un range di indirizzi del tipo 192.168.xxx.yyy.
PC3 è in grado di “vedere” il PC1, basterà dare da
›
{ 25
Reti Wireless: concetti avanzati
la stessa, sia che ci si colleghi al primo o al secondo router). Collocando i router in punti strategici dell’abitazione o del luogo indoor, si riesce ad aumentare il grado di copertura del segnale wireless. Come vanno collegati e configurati i due router? Prima di rispondere, occorre tenere presente la seguente nota importante: prima di eseguire le operazioni Fig. 3 riga comando il comando “ping 10.0.0.2”. Se si ottiene una risposta, significa che l’interfaccia di rete è correttamente configurata.
Rete wireless con due router e stesso SSID Questo tipo di rete, anche se non molto comune, permette di risolvere molti problemi pratici di velocità di connessione e di qualità del segnale radio wireless nel caso in cui la rete preveda l’utilizzo di numerosi dispositivi collegati e/o debba coprire una zona piuttosto ampia, rimanendo sempre all’interno di una struttura domestica. In genere per un normale appartamento un router basta e avanza, ma se si ha la fortuna di abitare in una casa con più piani (ad esempio scantinato o taverna, piano terra, primo piano, e magari ancora veranda o mansarda) e si vuole garantire la copertura wireless con una stessa rete, possono sorgere questo tipo di problemi. Visto il costo esiguo e abbordabile dei router wireless, la soluzione più immediata a questo tipo di esigenza consiste nel creare una rete con due router (possibilmente dello stesso tipo), configurati per funzionare con lo stesso SSID (quindi agli effetti “esterni” la rete è
descritte nel seguito, occorre sottolineare che i due router vanno configurati uno alla volta, mai contemporanemanete. Non vanno cioè lasciati entrambi accesi durante la configurazione, solo uno per volta va alimentato fintantoche non si completa la configurazione (ciò è necessario per evitare conflitti tra i router durante la configurazione degli stessi). Partiamo dal primo (router1). Questo sarà il router principale, e l’unico collegato a Internet (cioè all’ISP, acronimo di Internet Service Provider). Supponiamo che il suo IP di fabbrica sia 192.168.1.1 (qualunque altro valore va bene, basta seguire le regole che verranno esposte). Il DHCP andrà lasciato abilitato, e supponiamo che il range di indirizzi IP assegnabili sia tra 192.168.1.2 e 192.168.1.200. L’SSID lo lasceremo anch’esso abilitato (verrà trasmesso quindi “in chiaro”, tanto non serve a nulla cercare di oscurarlo) e gli assegneremo il valore a piacimento (ad esempio “CasaMia”). Il secondo router (router2), essendo dello stesso tipo del primo, uscirà dalla fabbrica con gli stessi parametri. Per utilizzare due router, noi dovremo creare un collegamento tra i medesimi (tra poco vedremo come), e perciò essi non potranno avere lo stesso indirizzo IP. Pertanto, dovremo assegnare al secondo router un indirizzo IP diffe-
›
26 }
Reti Wireless: concetti avanzati
rente dal primo. Possiamo ad esempio scegliere il
(pari a 22 Mhz, costante per tutti i canali). Si può
valore 192.168.1.2. Questo indirizzo però è com-
inoltre osservare che i canali adiacenti sono sem-
preso tra quelli utilizzati dal server DHCP del rou-
pre parzialmente sovrapposti, una condizione che
ter1, dovremo pertanto cambiare sul primo router
può instaurare pericolosi fenomeni di interferenza.
il range di indirizzi DHCP, scegliendo ad esempio il
Viceversa, i canali 1, 6, e 11 non sono sovrapposti
range tra 192.168.1.3 e 192.168.1.200. Sul rou-
tra loro, ed è proprio questo il motivo per cui essi si
ter2 il DHCP andrà disabilitato (solo un router deve
utilizzano maggiormente. Stesso discorso vale per
poter assegnare dinamicamente gli indirizzi IP in
il gruppo di canali 2, 7, e 12.
Fig. 4
(fonte: en.wikipedia.org)
una medesima rete). Utilizzando il termine tecni-
Estendendo il caso in esame a tre router (vale per i
co corretto, possiamo dire che il router2 utilizza la
super-fortunati che abitano in una megavilla!), do-
tecnica di “bridging”. Con ciò si intende dire che
vremo proprio configurarli scegliendo uno dei due
esso non ha alcuna responsabilità nell’assegna-
gruppi di frequenze precedentemente indicati. La
zione degli indirizzi IP ai vari nodi della rete, e la
configurazione si conclude collegando i due router
sua funzione è unicamente quella di trasportare il
con una connessione tramite cavo Ethernet, uti-
segnale radio all’interno della casa, fare quindi da
lizzando le porte “LAN” presenti sul router stesso
“ponte” per esso. Inoltre, al secondo router con-
(ricordiamo che un router è anche uno switch di
viene sempre assegnare un canale di trasmissione
rete ed offre in genere 4 o più porte Ethernet per la
diverso da quello utilizzato dal primo. Ad esempio,
connessione tradizionale via cavo). Tutti i rimanenti
si può utilizzare il canale 11 sul router1 e il canale
parametri di configurazione devono essere gli stes-
6 sul router2. E’ sempre bene spaziare i due cana-
si sui due router (ad es. SSID, password, tipo di
li, in modo tale da ridurre al minimo le interferen-
crittografia, ecc.). A questo punto si possono riac-
ze tra un canale e l’altro. Per chi volesse sapere
cendere i due router e la rete è pronta per l’uso. Ci
qualcosa di più sui canali utilizzati dallo standard
si può quindi spostare all’interno dell’edificio sen-
802.11b/g (quello utilizzato dalle reti WiFi a 2,4
za mai perdere la connessione, e il tutto avviene in
GHz), riportiamo il diagramma di fig. 4.
modo “trasparente” all’utente (l’SSID, e quindi la
Dal diagramma si può ricavare la frequenza cen-
rete wireless, è sempre la stessa, e il “salto” tra un
trale di ogni canale (ad es. il canale 11 ha una
canale e l’altro avviene in modo automatico, senza
frequenza centrale di 2,462 GHz), e l’ampiezza
soluzione di continuità). Tecnicamente parlando,
›
Reti Wireless: concetti avanzati
dobbiamo osservare che il secondo router, con
nessione Internet (cablata)
questo tipo di configurazione, non agisce come un
✪ AP intermedi: sono gli AP che trasferiscono in-
vero e proprio router, ma bensì come un normale
formazioni tra AP principale, AP remoti, e altri AP
access point.
intermedi
Il WDS
✪ AP remoti: sono gli AP a cui possono essere
La soluzione precedente è di per sè relativamente
collegati i dispositivi wireless che utilizzano la rete
semplice da attuare, e risolve moltissimi problemi.
(i client wireless)
C’è però un possibile inconveniente: i due router
Tutti gli AP di un sistema WDS devono essere con-
devono essere collegati tra loro mediante un cavo.
figurati per utilizzare lo stesso canale, ed eventual-
Se l’edificio permette di far passare agevolmente
mente lo stesso metodo di protezione (WEP o WPA)
dei cavi tra un piano e l’altro (o tra una stanza e
e la stessa chiave crittografica. La tecnologia WDS,
l’altra) questo non rappresenta un grosso proble-
anche se in apparenza sembrerebbe essere la solu-
ma. Purtroppo, in molti casi ciò non è possibile, e/o
zione in grado di offrire i maggiori benefici, soffre di
talora non si possono apportare variazioni di alcun
due pesanti svantaggi:
tipo all’edificio. Esiste una possibilità di collegare
1. nel caso peggiore, la massima ampiezza di banda
tra loro più access point in modalità wireless? La
disponibile può essere sensibilmente ridotta (dimez-
risposta è affermativa: si può ricorrere all’utilizzo
zata nel caso di due AP). Ciò è dovuto alla ritrasmis-
della tecnologia WDS.
sione dei dati tra una stazione AP e la successiva,
WDS è l’acronimo di Wireless Distribution Sy-
ritrasmissione che utilizza appunto lo stesso canale
stem ed è una funzionalità supportata da un nu-
2. in generale, il WDS non supporta i sistemi di pro-
mero sempre più crescente di access point e router
tezione basati su chiavi dinamiche. Ciò siginifica che
802.11. Sostanzialmente, WDS consente di colle-
con il WDS possiamo usare soltanto la protezione
gare tra loro più AP wireless, senza doverli collega-
WPE (facilmente crackabile) e la protezione WPA
re tramite una connessione Ethernet cablata. Per
con chiavi pre-shared. Non è proprio il massimo, dal
poter utilizzare questa tecnologia, occorre che tutti
punto di vista della sicurezza
gli AP utilizzati (due o più) supportino la modalità
Occorre poi sottolineare che, sovente, dispositivi
WDS. Ciò può essere dedotto leggendo la scheda
WDS realizzati da produttori differenti non sono pie-
tecnica del dispositivo o esaminando attentamente
namente compatibili tra loro. La mancanza di inte-
la confezione prima dell’acquisto. Il WDS prevede
roperabilità tra differenti prodotti WDS è dovuta al
tre tipi di access point:
fatto che questo tipo di tecnica non è stata comple-
✪ AP principale: è quello al quale fa capo la con-
tamente definita negli standard IEEE o WiFi.
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/reti-wireless-concetti-avanzati
{ 27
28 }
Embedded GNU/Linux partendo da zero: integrazione e test di A. Righi 18 Dicembre 2012
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), di un firmware Linux-based, o di una micro-distribuzione totalmente custom.
N
elle puntate precedenti (Embedded GNU/
filesystem dotandolo dei tipici comandi presenti in
Linux partendo da zero: ricompilare il ker-
qualsiasi distribuzione GNU/Linux. Infine vedremo
nel e Embedded GNU/Linux partendo da
alcuni esempi pratici per testare la funzionalità
zero: preparazione del root filesystem) abbiamo
della micro-distribuzione custom da noi creata.
analizzato rispettivamente la ricompilazione del
I comandi della shell
kernel e la preparazione di un root filesystem mini-
La volta scorsa ci siamo lasciati con un root fi-
male usando l’initramfs.
lesystem dotato di un unico binario eseguibile:
In questa puntata vedremo come completare il root
/init.
›
{ 29
Embedded GNU/Linux partendo da zero: integrazione e test
Questo è sufficiente per permettere al kernel di lanciare una nostra applicazione custom al termine del boot, ma è abbastanza diverso da quello che si aspetta di trovare in un tipico sistema GNU/Linux. Quello che manca è una vera e propria shell completa, dotata dei comandi che caratterizzano qualsiasi distribuzione GNU/Linux.
BusyBox BusyBox[1] è conosciuto anche come il “coltellino svizzero” dell’embedded Linux. Si tratta di un progetto open-source (GPLv2) in grado di fornire un intero set di comandi e utility presenti nella suite GNU.L’intero progetto è stato scritto con un particolare occhio di riguardo all’ottimizzazione dello spazio occupato dai binari, il che lo rendono particolarmente appetibile nell’ambito embedded. Difatti praticamente tutte le note piattaforme embedded Linux-based utilizzano BusyBox (evaluation board, ricevitori, dispositivi mobile come tablet, smartphone, etc. anche Android!).
$ cd busybox $ make ARCH=arm CROSS_COMPILE=arm-linuxgnueabihf- \ OPTIMIZE_FOR_CPU=armv7-a CONFIG_PREFIX=/ tmp/initrd menuconfig
Al solito, con l’opzione CROSS_COMPILE abbiamo dato indicazione al sistema id build di BusyBox quale cross-compilatore utilizzare (lo stesso con cui abbiamo compilato precedentemente il kernel) e con ARCH=arm e OPTIMIZE_FOR_CPU abbiamo specificato l’architettura target per i file binari che dovranno essere generati. Con CONFIG_PREFIX, invece, specifichiamo la directory dove vogliamo che BusyBox vada ad installare tutti i binari. Se non vogliamo scorrere tutti i singoli menù del “make menuconfig” di BusyBox possiamo utilizzare la configurazione riportata come allegato a questo articolo (busybox-config.txt). Per fare ciò basta lanciare i comandi seguenti: $ wget http://it.emcelettronica.com/files/busyboxconfig_0.txt $ cp busybox-config.txt busybox/.config
Vediamo di seguito i passi necessari per integrare BusyBox nel nostro sistema.
Una volta messa a punto la configurazione si può
Per prima cosa possiamo reperire i sorgenti di-
compilare la suite di strumenti:
rettamente dal repository git di BusyBox: $ git clone git://busybox.net/busybox.git
$ make ARCH=arm CROSS_COMPILE=arm-linuxgnueabihf- \ OPTIMIZE_FOR_CPU=armv7-a CONFIG_PREFIX=/ tmp/initrd install
Successivamente dobbiamo specificare la configurazione di ciò che vogliamo compilare e includere nel nostro ambiente. Analogamente a quanto abbiamo fatto con il kernel possiamo lanciare un “make menuconfig” nel modo seguente:
E infine installarla nella directory di destinazione: $ make ARCH=arm CROSS_COMPILE=arm-linuxgnueabihf- \ OPTIMIZE_FOR_CPU=armv7-a CONFIG_PREFIX=/ tmp/initrd instal
›
30 }
Embedded GNU/Linux partendo da zero: integrazione e test
Dopo l’installazione la directory di destinazione as-
precedente, nel filesystem che generiamo com-
sume la tipica struttura che troviamo nella radice
pletamente da zero non abbiamo a disposizione
di un qualsiasi sistema UNIX-based:
le librerie dinamiche (glibc, etc.); le alternative
# ls -l /tmp/initrd total 12 drwxrwxr-x 2 righiandr righiandr 4096 Dec 14 15:07 bin drwxrwxr-x 2 righiandr righiandr 4096 Dec 14 15:07 sbin drwxrwxr-x 4 righiandr righiandr 4096 Dec 14 15:01 usr
quindi sono di cross-compilare e installare anche tutte le librerie dinamiche richieste, oppure di compilare staticamente i binari (cioè includere direttamente nel binario il codice delle librerie richieste). Nel nostro caso abbiamo compilato BusyBox staticamente, ma se per ciascun binario includessi-
In pratica con l’installazione di BusyBox abbiamo
mo al suo interno il codice delle librerie richieste,
generato la struttura base del nostro tipico filesy-
avremo una duplicazione e ridondanza del codi-
stem UNIX-based.
ce non necessaria.
All’interno della sotto-directory “bin” l’unico bina-
BusyBox risolve questo problema implementan-
rio “busybox”; tutti gli altri comandi sono disponi-
do il codice di ciascun comando all’interno dello
bili nel filesystem come link simbolici all’eseguibile
stesso binario (invece di avere una separazione a
“busybox”:
livello di file, possiamo vedere un comando della
# ls -l /tmp/initrd/bin/ total 1284 lrwxrwxrwx 1 righiandr righiandr 7 Dec 14 15:07 ash -> busybox lrwxrwxrwx 1 righiandr righiandr 7 Dec 14 15:07 base64 -> busybox -rwxr-xr-x 1 righiandr righiandr 1314624 Dec 14 15:07 busybox lrwxrwxrwx 1 righiandr righiandr 7 Dec 14 15:07 cat -> busybox lrwxrwxrwx 1 righiandr righiandr 7 Dec 14 15:07 catv -> busybox lrwxrwxrwx 1 righiandr righiandr 7 Dec 14 15:07 chattr -> busybox lrwxrwxrwx 1 righiandr righiandr 7 Dec 14 15:07 chgrp -> busybox ...
Quiz #1: come mai BusyBox genera un solo binario e sopratutto a cosa servono i link simbolici? Risposta #1: Come abbiamo visto nella puntata
shell di BusyBox come una funzione all’interno dello stesso binario). I link simbolici costituiscono una soluzione intelligente per distinguere un comando dall’altro. Ad esempio quando eseguiamo il binario /bin/ cat dalla shell, questo di fatto esegue /bin/busybox, ma durante all’interno del codice il nome del binario risulta /bin/cat. Alla fine possiamo immaginare il “main” di BusyBox nel modo seguente (con le dovute semplificazioni del caso): int main(int argc, char **argv) { if (!strcmp(argv[0], “/bin/cat”)) { /* implementazione di cat */ } else if (!strcmp(argv[0], “/bin/ls”)) { /* implementazione di ls */ } else ...
›
{ 31
Embedded GNU/Linux partendo da zero: integrazione e test
A questo punto ci mancano solo pochi passi
solo il procfs, che veniva utilizzato come grande
per completare un tipico root filesystem GNU/
contenitore per esportare qualsiasi informazione
Linux: inizializzare /proc, /sys e /dev.
kernel allo user-space. Successivamente durante
✪ Il proc filesystem (o procfs) [3], montato ge-
lo sviluppo della serie di kernel 2.5 è stato intro-
nericamente sotto /proc, è uno pseudo-filesystem
dotto il sysfs, come metodo più strutturato per se-
usato dal kernel per esportare le informazioni sui
parare le informazioni relative ai processi (procfs),
processi alle applicazioni che girano in spazio
rispetto alle informazioni relative ai device o al si-
utente. Tale filesystem si trova solitamente montato
stema in genere.
nella directory /proc. Questo filesystem non utilizza
✪ Infine la directory /dev [5] ospita tutti i file
nessun dispositivo di storage, è solo un’astrazio-
speciali che forniscono l’accesso ai device driver,
ne messa a disposizione del kernel per dare una
utilizzando le stesse interfacce per l’accesso ai
visione dei processi come file, nel pieno rispetto
classici (open, read, seek, write, close, etc.).
della filosofia dell’”everything is a file” [2].
Ad esempio /dev/sda rappresenta il primo di sto-
✪ Il sysfs, montato genericamente in /sys [4], è
rage rilevato dal sistema, /dev/console il terminale,
anch’esso uno pseudo-filesystem. Anch’esso vie-
etc. Anche in questo caso vale il principio dell’”eve-
ne utilizzato dal kernel per esportare informazio-
rything is a file”, effettuando ad esempio una read()
ni allo spazio utente, ma che non hanno niente a
su /dev/sda, il kernel attiva il device driver che ge-
che vedere con i processi (es. la dimensione di un
stisce il dispositivo di storage in questione, e ritorna
disco, il numero di cpu, o informazioni di debug.
all’applicazione utente un buffer contenente i dati
Inizialmente nei vecchi kernel (serie 2.4) esisteva
reperiti sullo storage. Il mapping tra file e device
›
32 }
Embedded GNU/Linux partendo da zero: integrazione e test
driver in kernel space viene effettuato utilizzando una coppia di numeri detti major e minor number (esistono delle convenzioni sui nomi dei file che si trovano sotto /dev, ma il nome del file dal punto di vista del kernel è totalmente arbitrario). Per quanto riguarda /proc e /sys è sufficiente creare i mount-point come directory vuote. Dopo che il kernel è partito dovremo predisporre uno script di inizializzazione per montare tali filesystem nei mount-point predisposti. $ cd /tmp/initrd $ mkdir proc sys $ ls -l total 24 drwxrwxr-x 2 righiandr righiandr 4096 Dec 14 15:07 bin drwxrwxr-x 2 righiandr righiandr 4096 Dec 14 17:11 proc drwxrwxr-x 2 righiandr righiandr 4096 Dec 14 15:07 sbin drwxrwxr-x 2 righiandr righiandr 4096 Dec 14 17:11 sys drwxrwxr-x 4 righiandr righiandr 4096 Dec 14 15:01 usr
Per /dev, invece è necessario fare un passo aggiuntivo, che consiste nell’inizializzare i file di dispositivo base che il kernel e l’ambiente BusyBox si aspettano di trovare. Per questo possiamo usare il comando mknod: $ cd /tmp/initrd $ mkdir dev $ cd dev $ sudo mknod tty1 c 4 1 $ sudo mknod tty2 c 4 2 $ sudo mknod tty3 c 4 3 $ sudo mknod tty4 c 4 4 $ sudo mknod tty5 c 4 5 $ sudo mknod tty6 c 4 6 $ sudo mknod console c 5 1
$ sudo mknod null c 1 3 $ sudo mknod zero c 1 5
I primi sei dispositivi (tty1 ... tty6) rappresentano i terminali virtuali (quelli a cui possiamo accedere su un tipico sistema GNU/Linux premendo la combinazione ALT+F1 ... ALT+F6); il file /dev/console è il terminale principale. Infine /dev/null e /dev/zero sono device virtuali: il primo, se viene letto ritorna sempre un buffer vuoto, se ci scriviamo sopra i dati vengono ignorati; infine /dev/zero se letto ritorna un buffer pieno di zeri (esattamente una quantità pari alla dimensione del buffer specificato per la lettura). L’ultimo passo, come visto nella puntata precedente, è di creare nell’initramfs un binario chiamato /init, che il kernel provvederà ad eseguire al termine della fase di boot. Per questo usiamo lo stesso meccanismo di BusyBox: creiamo un link simbolico a /sbin/init, all’interno dell’immagine del nostro initramfs: $ cd /tmp/initrd $ ln -s sbin/init init $ ls -l $ ls -l total 24 drwxrwxr-x 2 righiandr righiandr 4096 Dec 15 00:29 bin drwxrwxr-x 2 righiandr righiandr 4096 Dec 15 00:29 dev lrwxrwxrwx 1 righiandr righiandr 9 Dec 15 01:25 init -> sbin/init drwxrwxr-x 2 righiandr righiandr 4096 Dec 15 00:29 proc drwxrwxr-x 2 righiandr righiandr 4096 Dec 15 00:29 sbin drwxrwxr-x 2 righiandr righiandr 4096 Dec 15 00:29 sys drwxrwxr-x 4 righiandr righiandr 4096 Dec 15 00:29 usr
›
{ 33
Embedded GNU/Linux partendo da zero: integrazione e test
A questo punto abbiamo completato l’immagine di un filesystem GNU/Linux minimale: la stessa base di quello che troviamo in qualsiasi distribuzione
drwxrwxr-x 2 1000 1000 0 Dec 14 23:29 sbin drwxrwxr-x 2 1000 1000 0 Dec 14 23:29 sys drwxrwxr-x 4 1000 1000 0 Dec 14 23:29 usr
GNU/Linux. Il passo finale è quindi di creare l’initramfs (sempre
E al termine del boot otteniamo finalmente una
come abbiamo visto nella puntata precedente) e far
vera shell sulla nostra board virtuale!
partire finalmente la nostra micro-distribuzione:
A questo punto possiamo gestire la board come
# cd /tmp/initrd/ # find . | cpio -o --format=newc > ../initramfs 2667 blocks # du -sh ../initramfs 1.4M ../initramfs
Come possiamo notare la nostra distribuzione occupa solo 1.4MB. Decisamente minimale. :-) Adesso possiamo far partire la board virtuale su QEMU: $ qemu-system-arm -M vexpress-a9 -kernel ./ arch/arm/boot/zImage -serial stdio -display none -append “console=ttyAMA0” -initrd /tmp/initramfs Booting Linux on physical CPU 0 Initializing cgroup subsys cpuset Linux version 3.5.4 (righiandr@thinkpad) (gcc version 4.7.2 20120910 (prerelease) (crosstool-NG linaro-1.13.1-2012.09-20120921 - Linaro GCC 2012.09) ) #1 SMP Fri Dec 14 14:15:35 CET 2012 CPU: ARMv7 Processor [410fc090] revision 0 (ARMv7), cr=10c53c7d ... Freeing init memory: 172K can’t run ‘/etc/init.d/rcS’: No such file or directory Please press Enter to activate this console. / # ls -l total 0 drwxrwxr-x 2 1000 1000 0 Dec 14 23:29 bin drwxrwxr-x 2 1000 1000 0 Dec 15 00:28 dev lrwxrwxrwx 1 1000 1000 9 Dec 15 00:25 init -> sbin/init drwxrwxr-x 2 1000 1000 0 Dec 14 23:29 proc drwx------ 2 0 0 0 Dec 14 13:11 root
gestiremo un generico sistema GNU/Linux. Possiamo usare il comando “ls” per listare i file del root filesystem (come visto sopra). O montare il procfs e visualizzare la lista dei processi: / # mount -t proc none /proc / # ps PID USER TIME COMMAND 1 0 0:01 init 2 0 0:00 [kthreadd] 3 0 0:00 [ksoftirqd/0] 5 0 0:00 [kworker/u:0] 6 0 0:00 [migration/0] 7 0 0:00 [cpuset] 8 0 0:00 [khelper] 9 0 0:00 [kworker/u:1] 158 0 0:00 [sync_supers] 160 0 0:00 [bdi-default] 162 0 0:00 [kblockd] 168 0 0:00 [ata_sff] 178 0 0:00 [khubd] 273 0 0:00 [rpciod] 274 0 0:00 [kworker/0:1] 280 0 0:00 [khungtaskd] 285 0 0:00 [kswapd0] 330 0 0:00 [fsnotify_mark] 339 0 0:00 [nfsiod] 410 0 0:00 [kpsmoused] 413 0 0:00 [kworker/0:2] 463 0 0:00 [deferwq] 468 0 0:00 -/bin/sh 469 0 0:00 init 471 0 0:00 init 472 0 0:00 init 481 0 0:00 ps
›
34 }
Embedded GNU/Linux partendo da zero: integrazione e test
Oppure visualizzare il tipo di architettura da /proc/ cpuinfo: / # cat /proc/cpuinfo Processor : ARMv7 Processor rev 0 (v7l) processor : 0 BogoMIPS : 129.43 Features : swp half thumb fastmult vfp edsp neon vfpv3 tls CPU implementer : 0x41 CPU architecture: 7 CPU variant : 0x0 CPU part : 0xc09 CPU revision : 0 Hardware : ARM-Versatile Express Revision : 0000 Serial : 0000000000000000
Conclusioni In questa puntata abbiamo visto come popolare l’initramfs implementando una vera e propria micro-distribuzione GNU/Linux, integrando così quello che avevamo visto nelle puntate precedenti e chiudendo la serie teorica “GNU/Linux partendo
✪ Riferimenti
da zero”.
[1] http://www.busybox.net/
Nella prossima puntata analizzeremo più in
[2] http://en.wikipedia.org/wiki/Everything_is_a_file
dettaglio l’aspetto pratico, ripetendo tutti i
[3] http://en.wikipedia.org/wiki/Procfs
passi teorici visti nelle puntate precedenti su
[4] http://en.wikipedia.org/wiki/Sysfs
una board reale: la Raspberry Pi.
[5] http://en.wikipedia.org/wiki/Device_file
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-zero-integrazione-e-test
{ 35
Corso di Microprogrammazione: i circuiti combinatori di Piero Boccadoro 20 Dicembre 2012
Bentornati. In questa terza puntata del corso ci occuperemo dei circuiti combinatori. Vi è sempre sembrato che “avere di più spendendo meno” fosse solo uno slogan? Bene, oggi impareremo che esistono metodi di minimizzazione delle funzioni logiche e capiremo come fare a realizzare un circuito che fa’ le stesse cose con meno porte logiche, il che vuole anche dire ridurre il costo del circuito finale. Siete pronti?
L
’
zioni precedenti, è il vero e proprio fonda-
Quali sono le proprietà delle funzioni logiche?
mento della programmazione. 0 e 1 sono
È presto detto. Si tratta di:
algebra di Boole, come introdotto nelle le-
gli elementi basilari, se volete le entità più piccole
✪ Commutativa
di questa scienza. Tralasciamo cosa possa voler dire che l’algebra booleana sia un reticolo o algebra astratta (in fondo non siamo qui per que-
✪ Associativa
sto) e diamo una rapida (ma completa) scorsa alle operazioni che sono definite, e possibili, in questo “campo”.
✪ Idempotenza
Abbiamo già chiarito che esistono operatori logici che permettono di realizzare funzioni comunque complesse ed in definitiva tutte le funzioni possibili.
✪ Assorbimento
›
36 }
Corso di Microprogrammazione: i circuiti combinatori
✪ Distributiva
Se una funzione logica è data, è possibile renderla più semplice? Questa domanda nasce quasi spontaneamente
✪ Esistenza di minimo e massimo
perché non c’è limite, in teoria, al grado di complicazione di una funzione logica. Tuttavia, esistono delle proprietà che rendono possibile semplificare
✪ Esistenza del complemento
le funzioni o manipolarle per renderle meno complesse. Per ciascuna delle operazioni e delle variabili che riusciremo a far “venire meno” staremo
Ci sarebbero già alcune importanti osservazioni
semplificando non soltanto la complessità del cir-
da fare ma, visto che l’elenco, in realtà, non è
cuito ma anche il suo costo finale.
ancora finito, le rimandiamo a fra qualche mo-
Vediamo, quindi, queste proprietà per esteso rife-
mento.
rite a ciascuna delle due operazioni:
E se una funzione logica è “data” in un certo modo, che vuol dire? Risulta intuitivo comprendere che una funzione logica del tipo implichi che per ciascuna variabile “nominata” vi sia una pista conduttiva e che, se la variabile compare complementata, anche a questa dovrà
NB: è possibile, nella stesura delle funzioni logiche, omet-
corrispondere necessariamente ad un percorso
tere il simbolo di AND logico allo stesso modo in cui può es-
conduttivo realizzato tramite la complementa-
sere omesso, nella scrittura dei polinomi, il simbolo “per”.
zione del precedente.
OSSERVAZIONE: l’uso dell’apice, in luogo del trat-
Allo stesso modo, per ciascuna funzione logica
to orizzontale sopra una variabile è equivalente.
coinvolta, ci sarà una porta logica, tra quelle di
Alcune di queste relazioni risultano piuttosto ele-
cui abbiamo parlato (AND, OR e così via…).
mentari ma vale la pena di notare come un’ope-
Possiamo, quindi, affermare che per ciascuno
razione di AND logico tra due variabili identiche,
degli elementi che costituiscono la funzione esi-
come nel caso precedente (sulla variabile a), impli-
sterà un corrispondente elemento unito ad al-
chi scrivere un’identità. Questo rende un’apparen-
trettanti percorsi conduttivi.
te operazione da eseguire, in realtà, solo un mero
Questo, chiaramente, implica che più “elementi”
refuso.
compaiono nella funzione, più complicata essa
Tuttavia, in merito a questa affermazione, è utile
sarà da realizzare.
sottolineare come la semplificazione delle fun-
›
{ 37
Corso di Microprogrammazione: i circuiti combinatori
zioni logiche non è sempre possibile applicando
ca esatta per effettuare la sintesi delle reti com-
queste semplici identità. Talvolta occorre “manipo-
binatorie che siano costituite da uno o più livelli.
lare”, in maniera anche importante, una funzione
In pratica, grazie a questo strumento, siamo in
per poterla semplificare.
grado di visualizzare i valori assunti dalle variabili
È anche importante dire che anche in questa ma-
nelle funzioni che dobbiamo analizzare e semplifi-
tematica, in quest’algebra, esistano nozioni come
carle, per ottenere la riduzione della complessità
il complemento del numero (sempre riferito alla
dell’hardware in uso. Mica male, vero?
base, come abbiamo accennato nella prima lezio-
Le Mappe di Karnaugh funzionano individuan-
ne) ed il concetto di elemento neutro rispetto ad
do dei termini che vengono denominati “minter-
una operazione, e quindi lo 0 per la somma che
mini” e “maxtermini”, sulla base della distanza
l’unità per il prodotto.
di Hamming. I termini, infatti, sono organizzati in
L’algebra dei circuiti e la sua rappresentazione
matrici di dimensioni pari al numero di variabili da
Finora sono stati introdotti concetti molto elemen-
do il principio per il quale essi devono differire
tari, se volete, ma che aprono la strada ad altre
per una sola variabile binaria per volta. È cer-
considerazioni. In particolare, quest’algebra diven-
tamente più facile visualizzare questa definizione
ta uno strumento per l’analisi e la sintesi delle reti
che darla o esprimerla a parole ma possiamo cer-
digitali perché consente di descrivere, in forma al-
tamente dire che le funzioni booleane, che abbiano
gebrica, la struttura del circuito. Una generica fun-
un numero n di variabili, possono essere espresse
zione logica può diventare, infatti, un polinomio.
in forme canoniche per raggiungere la loro forma
Ed una volta che sia stata decisa quella convenzio-
minima. Vediamo com’è fatta una mappa per farci
ne di cui parlavamo tempo fa, ovvero se lavorare
un’idea più chiara:
cui la funzione dipende e che sono disposti secon-
con la “logica positiva” oppure con quella “negativa”, tutto risulta chiaro e ben descritto. Tuttavia non sempre le funzioni logiche sono semplici o “corte” come quelle che abbiamo enunciato in precedenza. Una funzione può dipendere da cinque o più variabili, il che rende molto difficile
Sulla sinistra si vede una tabella che ordina la va-
capire quale proprietà utilizzare ed applicare per
riabile B sulle righe ed A sulle colonne. Le caselle
ottenere la semplificazione del circuito. Quindi, in
costituiscono le possibili combinazioni dei valori
definitiva, non basta il “colpo d’occhio”.
assunti dalle due variabili in oggetto. Sulla destra,
Ed è proprio in questo scenario che ci vengono in
la relativa tabella della verità. La variabile Y, tipica-
aiuto le cosiddette Mappe di Karnaugh.
mente, rappresenta l’uscita del circuito, ovvero la
Si tratta di un metodo di rappresentazione grafi-
nostra funzione.
›
38 }
Corso di Microprogrammazione: i circuiti combinatori
Possiamo, molto brevemente, dire che minter-
o a quattro
mini e maxtermini sono rappresentati da 0 ed 1 è che l’espressione della funzione risultato della semplificazione sarà o sotto forma di somma di prodotti logici (prima forma canonica di Shannon) oppure come prodotto di somme (seconda forma canonica di Shannon). A livello pratico, se la semplificazione è possibile, non cambia nulla.
NB: l’ordine con il quale scegliamo di disporre le variabili
La differenza starà nel tipo di porte che verranno
lungo le righe e le colonne NON è assolutamente impor-
impiegate nella implementazione della funzione.
tante, determinante o significativo. Fondamentale, però, è mantenere la coerenza tra la posizione dei mintermini (o
Vediamo subito alcuni esempi che renderanno tut-
maxtermini) e la relativa combinazione.
to molto più chiaro partendo dalle porte logiche:
Vediamo un esempio applicativo
✪ La porta AND:
Supponiamo di avere la funzione:
Y=ab+acd+b’c’d+abc+cd’ la sua rappresentazione sulla mappa di Karnaugh è la seguente: ✪ La porta OR
✪ La porta EXOR Dal momento che, per minimizzare la funzione, devo considerare, se possibile, soltanto implicanti (gruppi di mintermini) primi (di dimensione massima possibile, sempre multipla di 2) essenziali (che contengano almeno un mintermine non coperto da Così, si usano mappe per funzioni a tre variabili
altri), la funzione può essere scritta come:
Y=ab+b’c’d+cd’+ac NB: analoghe considerazioni vanno fatte per i maxtermini (che verranno indicati con 0 e non con 1). Si parlerà, in quel caso, di implicati.
›
{ 39
Corso di Microprogrammazione: i circuiti combinatori
In questo caso particolare esistono, però, due pos-
disposte ai quattro vertici di un quadrato ed esse
sibili soluzioni, esattamente equivalenti. Se, infatti,
saranno differenziate da una coppia di valori as-
invece di considerare implicante primo essenziale
sunti da due delle sei variabili “in gioco”.
quello composto dalle quattro cella in basso a de-
Quando le variabili diventano sette la geometria
stra avessimo considerato quello composto dalle
“disegnata” dalle matrici sarà tridimensionale è
celle 1101,1110,1001,1011 avremmo ottenuto la
così via dicendo…
funzione:
È per questo che, in realtà, quando le funzioni di-
Y=ab+b’c’d+cd’+ad
ventano molto complesse (cioè dipendono da mol-
Essa è del tutto analoga al caso precedente in
te variabili), si utilizzano metodi differenti, come, ad
termini di “costo” della realizzazione. Questo
esempio, il metodo Quine McCluskey.
dimostra un fatto interessante: la minimizzazio-
La minimizzazione delle mappe è un problema
ne NON è un processo univoco ma comunque
che può essere risolto, chiaramente, con algoritmi
efficace.
numerici. Per darvene un’idea, ecco un software
Se da un lato è vero che questo metodo può essere
che effetto proprio quest’operazione: il suo nome
utilizzato per funzioni con un numero qualsiasi di
è MIN.
variabili, è evidente che, quando esse superano le
Tempi di propagazione
6, anche soltanto disegnare le mappe comincia a
Prima di lasciarci, credo sia importante fare un
diventare difficile. Infatti, già con cinque variabili
breve accenno a questo argomento e sarà breve
è necessario disegnare due “matrici” di dimensio-
per una questione di rispetto perchè ci sarebbe
ne 4 × 4, una accanto all’altra che differiscano
da scrivere intere biblioteche su questo tema e
per il valore assunto dalla quinta variabile. Se alla
su come va gestito. A suo modo, anche questa
prima tabella si associa la quinta variabile con va-
è arte. Tuttavia è importante prendere dimesti-
lore logico zero mentre alla seconda la stessa va-
chezza con questo tema per cui vale la pena di
riabile ma con dolore logico uno, si rispettano tutti
soffermarci un momento.
i principi di cui abbiamo parlato in precedenza e si
Sappiamo che non esistono sistemi che ri-
riesce visualizzare le possibili semplificazione.
spondano all’istante. Un segnale elettrico, così
Se le variabili diventano sei, evidentemente,
come un qualunque stimolo, si propaga all’in-
sarà necessario disegnare quattro diverse tabelle
terno di un mezzo e ci vuole un certo tempo
›
40 }
Corso di Microprogrammazione: i circuiti combinatori
perché questo avvenga. Quando una porta logica deve rispondere con un’uscita combinazione degli ingressi, questa lo farà solo dopo un certo tempo (che dipende dal suo livello di sensibilità, dalla sua funzionalità, dalla tecnologia in cui è stata realizzata e da una serie di altri parametri che, per ragioni di tempo, non possiamo analizzare in questa sede).
Si consideri la figura precedente come punto di
Questo vuol dire che una rete combinatoria do-
partenza. Qui sono identificati tutti i punti notevoli
vrà essere dimensionata stando attenti ai singoli
di nostro interesse che sono utili nella definizio-
ritardi e studiando come il ritardo introdotto da
ne dei tempi in oggeto insieme alle tipiche forme
ciascuna porta influisca sul risultato finale. Cia-
d’onda associate. Vediamoli nel dettaglio:
scuna delle variabili potrebbe dover subire
✪ Tempo di discesa, tf, (che stà per time fall) del
ritardi diversi prima di essere, per esempio,
segnale d’uscita. Esso è misurato tra il 90% e il
sommata ad una che non è mai neanche stata
10% della tensione di uscita massima VOHM (va-
complementata. Questo vuol dire che l’opera-
lore finale);
zione dovrà necessariamente essere effettuata
✪ Tempo di salita, tr, (ovvero time rise) del segna-
solo dopo che la variabile più “lenta” sarà effet-
le d’uscita. Esso è definito come il tempo neces-
tivamente disponibile.
sario affinché l’uscita si porti dal 10% al 90% del
Se vogliamo questa è una considerazione abba-
valore massimo VOHM.
stanza banale, molto intuitiva; tuttavia, quando
✪ Tempo di propagazione nella commutazione
“giochiamo” con tempi dell’ordine dei ns queste
dal livello alto a quello basso, tpHL, che è misu-
considerazioni non sono davvero più così scon-
rato come intervallo temporale tra il 50% di VIHM
tate, anzi rischiano di inficiare il funzionamento
e il 50% di VOHM;
dell’intero sistema!
✪ Tempo di propagazione nella commutazione
Supponiamo di avere a che fare con una
del livello basso a quello alto, tpLH. Esso è mi-
porta logica che effettua semplicemente la
surato come intervallo tra l’istante di tempo in cui
complementazione. La definizione dei tempi di
la tensione assume un valore pari al 50% di VIHM
propagazione è relativa, in definitiva, agli inter-
e quello in cui è al 50% di VOHM.
valli temporali necessari affinché l’uscita, nella
I tempi tpHL e tpLH sono, di solito, diversi ed il co-
commutazione dello stato logico, si porti al livel-
struttore fornisce anche una figura di merito piut-
lo di tensione utile perchè si abbia il riconosci-
tosto importante, ovvero un valore medio tra i due,
mento del nuovo stato. Ovviamente questo vale
che è indicato come ritardo di propagazione tp.
per entrambe le commutazioni.
Esso varia in maniera piuttosto considerevole a
›
Corso di Microprogrammazione: i circuiti combinatori
seconda delle varie famiglie logiche e, quindi, del
a 2 (unità) poichè v’è da invertire la variabile b ed
tipo di circuito che stiamo utilizzando. Un valore di
utilizzare un porta logica OR.
riferimento per la famiglia TTL (standard, che iden-
L’argomento delle famiglie logiche, per capire me-
tifica la logica di tipo Transistor-transistor) è:
glio i tempi di propagazione ed i ritardi più in ge-
tp = 10 ns. Nel caso della logica cMOS si ha: tp =
nerale, si presta ad approfondimenti di ogni tipo.
100 ns, quando VCC = +5 V.
Potete provare, per esempio, a vedere cosa signi-
Conclusioni
ficano i vari acronimi RTL, DTL, TTL. O magari leg-
Bene, per oggi basta così. Gli argomenti toccati
gere qualcosa riguardo al consumo di potenza, per
completano un quadro di introduzione che, dalla
minimizzare il quale la tensione di alimentazione è
prossima volta in poi, ci permetterà di comincia-
stata progressivamente ridotto nel tempo (da 5 V
re a mettere le mani seriamente sulle porte, sulle
a 3,3 V e così via). Questo corso vuole essere più
operazioni e su alcune “strutture” logiche standard
pratico e sarà quindi più improntato a “mettere le
come il full-adder, ovvero, letteralmente, il somma-
mani” sui circuiti ma l’area On-demand di EOS-
tore completo.
Book è qui per questo! Se preferireste che questi
Anche sul concetto di costo ci sarebbe molto da
argomenti venissero approfonditi, chiedetelo e sa-
dire ma come chiave di lettura interpretativa po-
rete certamente accontentati.
tremmo assumere, per comodità, un valore unitario sia per ciascuna operazione sia per ciascuna
Come di consueto, la parola adesso è a voi: dubbi?
variabile. Così Y=a+b’ risulta avere un costo pari
Domande? Perplessità? Questioni?
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/corso-di-microprogrammazione-i-circuiti-combinatori
{ 41
42 }
La miniaturizzazione continua, con i dielettrici low-k! di Piero Boccadoro 25 Dicembre 2012
Ci siamo occupati, nel recente passato, della legge di Moore e di alcuni suoi aspetti connessi con la tecnologia presente ed una previsione
N
ell’industria dei semiconduttori esistono materiali cui si fa riferimento con il nome di “dielettrici low-k”. Si tratta di materiali
del futuro. Tuttavia la tecnica è perfettibile e
che hanno una costante dielettrica relativa più bas-
questo rende necessario interrogarsi sia su
sa di quella del biossido di Silicio (SiO2). La mo-
che cosa potrebbe succedere nel futuro sia
tivazione alla base dell’utilizzo di questi materiali
sulla possibilità che la tecnologia che oggi
è quella di apportare delle modifiche tecnologiche
utilizziamo, in quanto all’avanguardia, possa
ai processi di fabbricazione in modo da riuscire a
non essere quella che utilizzeremo domani,
mantenere il trend attuale nella miniaturizzazio-
perchè limitata. E questo vale sia per i processi
ne dell’industria dei dispositivi microelettronici.
sia per i materiali impiegati. Oggi, infatti,
Se da un lato, infatti, continuare a ridurre le
vediamo alcuni tipi di materiali che potranno
dimensioni il più possibile risulta un fattore
garantire il mantenimento del trend di crescita
fondamentale dal punto di vista non soltanto
relativo al numero ed alle dimensioni dei
tecnologico ma economico, esiste una legge
transistor che siamo capaci di integrare.
“sperimentale” che descrive il comporta-
›
{ 43
La miniaturizzazione continua, con i dielettrici low-k!
mento e l’andamento di tale tendenza, alla
definito dalla legge di Moore.
quale si fa espresso riferimento con il nome di
Il biossido di silicio è stato utilizzato per rea-
“legge di Moore” che rischia di vacillare proprio
lizzare il gate dei transistor MOS per decenni
a causa di alcuni problemi relativi alla tecnica con
ma dal momento in cui questi sono diminuiti in
la quale si realizzano i dispositivi.
dimensione, lo spessore della regione di gate
Per diverso tempo si è utilizzata la legge di
ha necessariamente dovuto ridursi. Questo ha
Moore come metodo di analisi ma anche come
aumentato la capacità di gate e, di conseguenza,
prospettiva per lo sviluppo futuro.
la corrente di pilotaggio, rendendo le prestazioni
Quando parliamo di circuiti digitali c’è da conside-
molto migliori.
rare che i dielettrici che servono per effettuare gli
I limiti tecnologici riguardanti le dimensioni in og-
isolamenti o le passivazioni separano nettamente
getto sono quelli relativi alla precisione del processo
gli strati conduttori gli uni dagli altri, indipendente-
fotolitografico. È noto, infatti, che la realizzazione
mente dal fatto che siano piste conduttive oppure
dei dispositivi di cui stiamo trattando ha come
strati di transistor od altri componenti. Man mano
limite la precisione con la quale è possibile re-
che le dimensioni dei singoli dispositivi sono state
alizzare le maschere che vengono esposte alla
diminuite, ed i transistor sono stati disposti in ma-
radiazione ultravioletta grazie alla quale il fotoresist
niera molto più ravvicinata, gli strati dielettrici di
si polimerizza.
isolamento sono diventati molto più sottili al punto
Man mano che lo spessore si riduce fino alla
da sollevare una serie di problematiche relative
dimensione di 2 nm, le correnti di perdita do-
all’accumulo di carica locale, e quindi diffe-
vute all’effetto “tunnel” aumentano in maniera
renze di potenziale “parassite”, e problemi di
considerevole, con il risultato di aumentare il
diafonia (crosstalk).
consumo di potenza.
La sostituzione del biossido di silicio con questo
Altra conseguenza è la diminuzione dell’affidabili-
tipo di materiali, benché a parità di spessore, ridu-
tà del dispositivo. Questo è tanto più vero quanto,
ce proprio le componenti capacitive da parassite
man mano che aumenta la dissipazione di potenza,
permettendo velocità di commutazione maggiori
aumenta anche la necessità di dissipare il calore
ed una minore dissipazione di calore.
prodotto. Il raffreddamento diventa, di conseguen-
Come è facilmente intuibile, se esistono ma-
za, una delle caratteristiche irrinunciabili di un si-
teriali “low”-k è perché ne esistono anche di
stema che operi con tecnologia allo stato solido.
tipo “high”. In particolare, si tratta di materiali
Se si prova a sostituire il biossido di silicio con ma-
la cui costante di elettrica, se confrontata con
teriale dielettrico di diversa natura, la capacità di
quella del biossido di silicio, è più alta. L’imple-
gate può aumentare, o diminuire, rendendo più o
mentazione di questi materiali rientra comunque
meno importanti i fenomeni di perdita.
nell’ambito del “tentativo” di mantenere il trend
Indipendentemente da quale tipo di materiale si
›
44 }
La miniaturizzazione continua, con i dielettrici low-k!
scelga, esistono diverse soluzioni che possono es-
stra una costante dielettrica più bassa, molto
sere impiegate allo scopo di realizzare questi strati
vicina a 3,5.
isolanti e che possono essere facilmente integrati
Le caratteristiche generali di cui deve essere do-
all’interno dei processi di fabbricazione.
tato un materiale dielettrico di tipo low-k posso-
Per quanto riguarda i materiali low-k, gli sforzi nel-
no essere riassunte in categorie, come indicato in
lo sviluppo si sono concentrati sulla creazione di
quest’ottimo riferimento. In breve, però, possiamo
diversi materiali, tra i quali ci sono i biossidi di sili-
riassumere che principalmente è proprio il basso
cio drogati con fluoro, quelli drogati con il carbonio
valore di k a determinare la scelta di questo tipo di
nonché strati dello stesso materiale ma porosi, ov-
materiali. Tuttavia non è l’unica motivazione, per-
vero in cui è stato creato il “vuoto” all’interno della
ché, come accennato in precedenza, la stabilità
struttura in posizioni ben determinate. Dal punto di
termica gioca un ruolo essenziale. Tra le pro-
vista tecnologico, ovviamente, la posizione di que-
prietà meccaniche di cui abbiamo vagamente
ste modifiche alla struttura cristallina, definite
accennato c’è, certamente, una buona capa-
generalmente “impurità”, deve necessariamente
cità di adesione agli strati sui quali il materiale
essere precisa perché che queste si trovino in
è deposto. Per ragioni tecnologiche si utilizzano
posizione “sostituzionale” e non “interstiziale”
questo tipo di dielettrici anche per via del fatto che
permette di garantire proprio le prestazioni ri-
si riesce a realizzare strati di spessore omogeneo,
chieste.
il che garantisce uniformità nell’isolamento.
Una delle soluzioni di maggior interesse quando
I materiali porosi, altra possibilità proposta in que-
trattiamo di dielettrici low-k è il vetro fluorosilicato
sta materia, propongono diversi svantaggi, primo
(in sigla FSG, acronimo di Fluorosilicate Glass) si
dei quali è la scarsa resistenza meccanica. Dal
tratta di un materiale che viene utilizzato nei pro-
punto di vista termico, inoltre, la scarsa conduci-
cessi di fabbricazione dei circuiti integrati come
bilità termica potrebbe portare anche alla rottura
dielettrico da frapporre tra strati metallici (in genere rame). Il materiale è già di largo impiego da quando la tecnologia realizzativa dei MOSFET ha raggiunto i 250 nm. Questo è stato possibile anche in virtù del fatto che questo tipo di materiali dimostra di avere delle ottime proprietà dal punto di vista meccanico. Il processo di drogaggio dell’SiO2 con il fluoro produce uno strato che dimo-
Schema del macchinario | cnx.org
{ 45
La miniaturizzazione continua, con i dielettrici low-k!
per effetto di un eccesso di temperatura localiz-
questo tipo di contatti è rappresentato dal feno-
zato. Inoltre, come detto in precedenza, questi
meno dell’elettromigrazione, che di solito è dovuto
materiali hanno comunque necessità di essere
alle dimensioni ed alla forma dello strato in esame
utilizzati insieme con il biossido di silicio per ga-
come effetto dei processi tecnologici di deposi-
rantire l’aderenza.
zione. La resistività effettiva del materiale varia in
Esistono anche differenze relative proprio al tipo di
maniera significativa con la temperatura e questo,
tecnica, di processo tecnologico impiegato per re-
unito agli effetti termici dell’utilizzo di materiali ina-
alizzare questi materiali; principalmente sono due
deguati per effettuare la passivazione, può genera-
le tecniche che si contendono il “primato”: la CVD
re ogni tipo di malfunzionamento circuitale.
(acronimo di Chemical-
Un punto di vista da
Vapor Deposition) e la
prendere in considera-
Spin-on
Deposition.
zione è quello trattato in
Ciascuna delle due pro-
un esempio che spiega
pone vantaggi e svantag-
quale sia la necessità di
gi ma entrambe rappre-
“interazione” tra i pro-
sentano una possibilità
cessi di fabbricazione
concreta per l’utilizzo di
dei contatti in rame e
materiali low-k. Anche
l’utilizzo
di
“ponti” (bridges) e di
Spin-on low-k integrated (source: JSR, credit: K. Mosig)
delle interconnessioni con dielettrici low-k. Grazie alle immagini ri-
“air-gaps” risulta piuttosto interessante ma,
portate si vede chiaramente quali siano le regioni
allo stato attuale sembra comunque indispen-
in cui si possono manifestare effetti indesiderati
sabile continuare la ricerca in merito vista la
riguardo i ritardi di interconnessione e la capacità
“instabilità” della soluzione.
parassita.
Sulle interconnessioni e sull’utilizzo del rame,
Insomma, la legge di Moore sembra poter conti-
nonché sui trend attualmente in “gioco” è ne-
nuare a descrivere il futuro della tecnologia così
cessario fare un’attenta riflessione. La scel-
come la conosciamo oggi per lungo tempo ancora
ta del rame, infatti, come sarà certamente noto,
se questo trend dovesse continuare.
non è casuale ma dipende dal fatto che rispetto
In questo, la ricerca di nuovi materiali e tecnologie
ad altri materiali propone un ottimo compromesso
sono certamente destinate a giocare un ruolo pre-
tra resistività e costo. Il problema fondamentale di
dominante.
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/miniaturizzazione-continua-con-i-dielettrici-low-k
46 }
I segreti di Mountain Lion: il tuo Mac è in grado di farlo girare? di Edi82 27 Dicembre 2012
OS X 10.8 Mountain Lion è il nuovo sistema operativo Mac OS X, sviluppato da Apple e rilasciato il 25 luglio 2012. La sua uscita è stata preceduta e seguita da grande clamore, ma Mountain Lion conserva qualche piccolo segreto di cui il grande pubblico non è al corrente. Anche se dotato di supporto a 64-bit e di una scheda grafica avanzata, il tuo Mac potrebbe non farcela a tenere il passo di Mountain Lion OS X 10.8. Ecco perché.
32 bit contro 64 bit
L
in esecuzione di accedere all’hardware in maniera
a disputa tra sistemi a 32-bit e sistemi a
sicura e controllata).
64-bit si rifà viva con l’uscita di Mountain
Nei Mac la questione 32/64 bit è complicata dal
Lion; ma in questo frangente il dibattito non
fatto che alcuni aspetti del sistema possono essere
deve investigare se le CPU sono in grado di sup-
a 32 bit, mentre altri a 64, anche se il processore
portare i 64 bit o meno, ma va più in profondità,
del sistema è a 64 bit. Partiamo con la CPU. Quella
coinvolgendo i requisiti minimi per caricare e far
del Mac Pro 1,1 è capace di eseguire calcoli a 64-
girare il kernel (un software che rappresenta il nu-
bit, permettendo al sistema di calcolare un codice
cleo del sistema operativo, e permette ai processi
a 64-bit, come in Safari e in Photoshop.
›
{ 47
I segreti di Mountain Lion: il tuo Mac è in grado di farlo girare?
Le CPU sono anche compatibili con sistemi a 32-
re da SI a No e viceversa tenendo premuti insieme
bit, così da poter far girare, simultaneamente, un
i tasti 6 e 4 (per caricare a 64-bit)e 3 e 2 (per
codice da 32-bit (infatti sia Safari che Photoshop
caricare a 32-bit) all’avvio.
presentano quest’ultima opzione).
In alternativa, si digita il seguente comando sul
Il problema si palesa, quindi, oltre che nella capacità
Terminale:
di calcolo della CPU, anche nella gestione dei vari
ioreg -l -p IODeviceTree | grep firmware-abi
aspetti hardware. Vediamo di chiarire meglio que-
Per scoprire se il supporto è a 32-bit o a 64-bit.
sto aspetto andando più in profondità, chiamando
Nei sistemi con firmware EFI 32-bit, il kernel del
in causa il firmware, una sequenza di istruzioni che
sistema operativo si avvia solo in modalità 32-bit,
gestiscono alcuni dettagli, come la distribuzione
anche se le CPU hanno una capacità di 64-bit e
dell’energia, e componenti, come delle ventole e
possono far girare in modalità 64-bit programmi
il loro funzionamento. Il firmware permette l’avvio
come Photoshop. Apple ha rilasciato solo il ker-
di un componente e la sua interazione con gli altri,
nel a 64-bit in Mountain Lion, per cui non ci sarà
per mezzo di protocolli di comunicazione. Il codice
possibilità di avviarlo su sistemi con firmware EFI a
del firmware su un Mac Pro 1,1 è a 32-bit, mentre
32-bit. Il problema, inoltre, si andrebbe a presen-
nei sistemi Apple più recenti si è passati ad un
tare con tutte quelle applicazioni che richiedono
codice a 64-bit (firmware EFI).
la modalità a 32-bit; ad esempio CISCO Vpn non
Il kernel del sistema operativo è l’ultimo aspetto
funziona su OS X a 64-bit.
che riguarda la questione 32/64 bit. Il kernel può
Requisiti grafici
infatti funzionare in entrambe le modalità su siste-
Un altro fattore da tenere in seria considerazione
mi con firmware EFI 64-bit, mentre con firmware
per valutare l’upgrade a Mountain Lion 10.8, è il
EFI 32-bit, viene gestita solo quella a 32-bit. Que-
requisito grafico. Il nuovo sistema operativo sup-
sta variazione è visibile nell’utility System Profiler
porta nuove API grafiche per OpenGL, OpenCL
(chiamata System Information in Lion), accedendo alla sezione software sulla sinistra. A questo punto bisogna controllare la riga Kernel 64-bit
ed Estensioni per verificare se ad esso è associata la voce SI o NO. L’opzione NO è l’unica possibile sui sistemi a 32-bit, come i Mac Pro 1,1, mentre per gli EFI 64-bit si può passa-
System Profiler
›
48 }
I segreti di Mountain Lion: il tuo Mac è in grado di farlo girare?
e Quicktime, per cui la GPU verrà utilizzata molto
grado di supportarlo. Come fare?
di più rispetto alle precedenti versioni.
Dal menù Apple, bisogna entrare in Informazio-
Morale della favola, un sistema le cui capacità
ni su questo Mac e cliccare su Più Informa-
GPU non corrispondono a quelle richieste dalla
zioni, dove viene riportato il numero di serie del
nuovi API andrà incontro a pesanti rallentamenti.
computer.
Inoltre, alcuni sistemi dotati sia di CPU a 64-bit
Il numero va inserito sul sito del supporto Apple,
che di firmware EFI a 64-bit, non raggiungono
nella sezione delle specifiche tecniche; in questo
gli standard grafici minimi imposti da Mountain
modo verranno elencate le informazioni necessa-
Lion.
rie per sapere se sul Mac in questione è possibile
Tra di essi troviamo alcuni Mac Mini, MacBook
installare Mountain Lion.
Air e MacBook che fanno affidamento solo su
In realtà è stata diramata una lista in cui si spe-
supporti grafici Intel GMA 950 e X3100, senza
cificano i modelli in grado di supportare senza
utilizzare una GPU dedicata. Ma ancora, nel caso
porblemi Mountain Lion:
in cui venisse soddisfatto quest’ultimo requisito,
✪ iMac (metà 2007 o superiore)
alcune GPU, come l’ATI Radeon X1900 e la Nvidia
✪ MacBook (fine 2008 Aluminum, inizio 2009 o
Geforce 7300, non sono comunque all’altezza.
superiore)
Quale Mac possedete?
✪ MacBook Pro (metà/tardo 2007 o superiore)
Uno dei punti di forza dei prodotti della Apple è
✪ Mac mini (inizio 2009 o superiore)
la loro lunga durata. Purtroppo, però, essi ten-
✪ Mac Pro (inizio 2008 o superiore)
dono a ‘sopravvivere’ al supporto della versione
✪ Xserve (inizio 2009)
dell’OS X con cui sono stati originariamente svi-
Per cui l’esaustiva scheda sulle informazioni tec-
luppati. Ogni nuovo rilascio del sistema opera-
niche è più che altro utile per sviscerare meglio
tivo, quindi, comporta una verifica dei requisiti,
alcuni dettagli del proprio Mac, dalla scheda gra-
per capire se il Mac in possesso sia o meno in
fica alle possibili implementazioni.
✪ MacBook Air (tardo 2008 o superiore)
Le finestre Informazioni su questo Mac (a sinistra) e Più informazioni (sotto)
›
I segreti di Mountain Lion: il tuo Mac è in grado di farlo girare?
2009 per gli iMac, metà 2010 per i Mac Mini e i Mac Pro, mentre fine 2010 per i MacBook Air). Anche AirPlay Mirroring si aggiunge alla lista di funzionalità ‘in forse’. APM permette di utilizzare il televisore HD come un monitor esterno, senza fili, attraverso una Apple TV. In realtà non è ancora chiaro
La sezione Specifiche tecniche del sito Apple
come mai questa funzionalità possa creare problemi
E non finisce qui..
su alcuni Mac, ma alcune teorie coinvolgono
Ci sono alcuni Mac che possono installare e far
il tipo di GPU, altre la larghezza di banda del
girare Mountain Lion, ma non necessariamen-
network della scheda Airport installata. In ogni
te permetteranno di usufruire di tutte le nuove
caso, un Mac precedente il 2011 avrà serie dif-
funzionalità.
ficoltà a collegarsi con una TV HD.
I modelli che abbiamo elencato nel paragrafo
Eseguire l’upgrade a Mountain Lion OSX 10.8
Requisiti Grafici sono i cosiddetti ‘intermedi’,
è quindi consigliato solo a chi possiede un Mac
cioè non troppo vecchi da essere abbandonati,
che rientri nella lista sopra elencata e rispecchi
ma nemmeno abbastanza nuovi per sfruttare in
delle mirate caratteristiche tecniche. Non sof-
pieno le potenzialità dei sistemi operativi di ulti-
fermatevi semplicemente sull’anno di fabbrica-
ma generazione.
zione, perché alcuni modelli, più vecchi di altri,
Essi permetteranno un utilizzo limitato di
sono meglio equipaggiati per far girare l’ultimo
Mountain Lion, perché alcune funzioni non sa-
sistema operativo di casa Apple.
ranno eseguibili. Un esempio è Airdrop, per cui è necessaria una specificata scheda Airport Ex-
Voi avete avuto problemi con l’installazione
press installata solo sui Mac rilasciati a partire
di Mountain Lion, o anche solo con alcune
da fine 2008 (MacBook e MacBook Pro, inizio
sue funzionalità?
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/i-segreti-di-mountain-lion-tuo-mac-%C3%A8-grado-di-farlo-girare
{ 49
50 }
Come ricevere GRATIS Demoboard? Con REVIEW4U!! Basta semplicemente essere Abbonato al progetto EOS-Book e poi descrivere nei commenti quale è la tua idea di applicazione per la demoboard che ogni sabato metteremo in palio! L’idea più originale, ma anche verosimile, verrà premiata con la board. Te la spediamo noi a casa gratuitamente, tu dovrai soltanto..... utilizzarla e come da regolamento, inviarci uno scritto sull’utilizzo, anche semplicemente un “getting started” o “la prima messa in funzione con lampeggio di un led” insomma niente di complicato, vogliamo solo essere sicuri che il vincitore la utilizzi veramente! A questo numero di EOS-Book hanno partecipato:
Emanuele
Unendo la passione per la progettazione elettronica e le news da mondo tecnologico, nel Dicembre 2006 Emanuele dà vita a L’Elettronica Open Source, un blog condiviso rivolto alla fruibilità comune di risorse e progetti di elettronica e novità dal mondo dei semiconduttori e della tecnologia.
Founder & Tech Supervisor
Chi accende una candela da te s’illumina anche lui, ma non ti lascia al buio - Share for life!
Stefano Lovati
Stefano è laureato in Ingegneria Elettronica ed ha un’esperienza pluriennale nel settore dei sistemi embedded real-time, avendo partecipato a diversi progetti in campo avionico, automazione industriale, e telecomunicazioni. Ama lavorare direttamente sull’hardware e tenersi informato sulle nuove tecnologie elettroniche.
Technical Writer
Piero Boccadoro
Technical Writer & Moderator
Andrea Righi
Technical Writer Il dubbio è l’inizio della sapienza Cartesio
Piero è un appassionato studioso. Laureato in Ingegneria Elettronica e cultore dell’Open Source, amante della tecnologia e con uno sconfinato desiderio di apprendere tutto ciò che non conosce. La sua tesi di laurea, pubblicata su queste pagine, ha segnato l’inizio della sua collaborazione con questo blog. Vola solo chi osa farlo!
Andrea è laureato in Ingegneria Informatica. Violinista a tempo perso e appassionato da sempre di sistemi operativi, ha maturato esperienze su sistemi embedded, sistemi real-time, architetture di calcolatori e tecnologie di virtualizzazione. Profondo sostenitore del modello Open Source ha contribuito attivamente a vari progetti open, con particolare interesse per il kernel Linux. Attualmente lavora come freelance su progetti che coinvolgono in un modo o nell’altro la programmazione kernel. If I have seen further it is only by standing on the shoulders of giants Sir Isaac Newton
Edi82
Senior Writer
Alessandra ha conseguito la laurea in Giurisprudenza ma non ha mai abbandonato la sua passione per i gadget elettronici e le novità tecnologiche, portata avanti grazie alle esperienze lavorative nell’ambito IT in Spagna, Irlanda e Australia. La collaborazione con EOS le ha permesso di confrontarsi anche con altri utenti e di approfondire le proprie conoscenze. È più facile spezzare un atomo che un pregiudizio. Albert Einstein
Giovanni Di Maria
Technical Writer
Appassionato sin da piccolo per l’elettronica, la matematica ed il fai da te. È programmatore di computer, insegnante di informatica e di matematica. Appassionato di numeri, è alla continua ricerca di grandi Numeri Primi. Ha scritto anche un libro sulla programmazione del PIC 16F84 con mikroBasic. È titolare dell’azienda ElektroSoft, che si occupa di elettronica ed informatica. Si cura a tempo pieno di formazione ed insegnamento.
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 premium@emcelettronica.com