Embedded partendo da zero

Page 1

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


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.