Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
{1
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
2}
Q
uesto progetto nasce dallesigenza 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 loccupazione di spazio sulla scrivania era
mite due collegamenti dei quali uno VGA men- largamente inefficiente perch lutilizzo di un com-
tre laltro DMI. Ho scoperto, mio malgrado, che puter preclude quello dellaltro; quindi, di fatto, le
laccoppiata 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 lidea: perch non creare uno SWITCH USB
troppo. a cui collegare almeno la tastiera facendo in modo
Daltronde, il portatile una tastiera ce lha 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.
Costruiamo uno Switch USB con funzione di autoswitch {3
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 loperazione di commuta-
Pin di controllo compatibile con 1.8 V zione tra un canale e laltro.
Basso consumo di potenza quando OE Riportiamo, in ultimo, il diagramma ad occhio per
disabilitato (limitato ad 1 A)
le prestazioni dello switch; questo, nello specifico,
rON = 6 (max)
riferito al caso di segnale USB 480 Mbps con
rON = 0.2 (tipico)
Cio(on) = 7 pF (max) switch su percorso 2D.
Basso consumo di potenza (30 A max)
Temperature di esercizio: da -40 C a 85 C
Ampia banda passante (1 GHz, tipico)
TS3USB221EVM
Una delle principali difficolt in questo progetto
era, chiaramente, il montaggio. Come detto nel
paragrafo precedente, lintegrato di dimensio-
ni estremamente contenute, il che rende assolu-
tamente 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 Mul-
tiplexer/Demultiplexer Switch Evaluation Mo-
dule, 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 do-
cumentazione della scheda in oggetto, che potete
trovare qui.
Tra le particolarit della scheda in questione c
il fatto di essere stata progettata specificatamen-
Nellultima 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; limportanza del buon versione pi performante di quanto non lo fos-
isolamento deriva dal fatto che il circuito lavora sia se lapplicazione per la quale iniziata la ricerca.
con segnali DC sia dati, per cui importante ga- Daltronde questo rende la scheda ancora pi
Configurazione
auto-switching
In conclusione
Beh, direi che ho certamente trovato lintegrato
sul quale puntare per progettare il mio SWITCH
USB. E dico che questo solo un punto di parten-
za 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 cop-
pia 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 im-
plementato? Che funzioni trovereste utile ag-
giungere?
Lautore a disposizione nei commenti per eventuali approfondimenti sul tema dellArticolo.
Di seguito il link per accedere direttamente allarticolo sul Blog e partecipare alla discussione:
http://it.emcelettronica.com/costruiamo-switch-usb-con-funzione-di-autoswitch
8}
Come creare
pagine Teletext diGiovanni 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-
allosso. In Italia, come detto prima, lutente televi- nuto grafico, infatti essa composta da un insieme
sivo pu usufruire di utili informazioni dal Televideo di caratteri alfanumerici e semi-grafici. Larea 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 nelleleganza e nel buon
il disegno delle singole pagine. gusto. Unimpresa davvero difficile.
Come creare pagine Teletext {9
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 dnno le direttive di visualizzazione
Uno dei pi versatili e potenti, nonch gratuito, allinterprete 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 lelenco 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 larchivio zippato in una cartel- sottocontrollo tali codici. Sono in questa maniera il
la ed eseguire lunico file EXE disponibile. Appare lavoro reso pi semplice e chiaro.
una videata che mostra lambiente 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 labilitazione di tali codici
potrebbe addirittura costituire un distur-
bo, ma col tempo se ne gusteranno tutti
gli aspetti positivi.
Per approntare una pagina, come detto,
occorre fornire la giusta sequenza di ca-
ratteri di controllo. Se ne potrebbe fare a
meno, ma in questo caso il prodotto de-
finitivo sarebbe costituito da una sterile
pagina nera con testo di colore bianco,
nulla di pi.
Per esempio, un testo giallo lampeggian-
te 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 Me-
diavideo. Tempo fa, queste ed altre
aziende, reclutavano grafici proprio
per la creazione di pagine del Tele-
text, 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, au-
tomobili o qualsiasi altro oggetto o animale rap-
presentabile. 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 daiuto e mette a disposizione di un po-
combinazione opportuna di punti colorati accesi e tente strumento di copia e incolla grafico. Lutente
spenti, possibile approntare dellottima grafica. pu visualizzare il suo disegno o la sua foto con
Come creare pagine Teletext { 11
che contiene la codifica ed il protocollo per la
sua gestione. Aprendo il documento con un
qualsiasi editor, si potranno osservare i carat-
teri (a volte in una codifica incomprensibile) che
formano lintero 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 sem-
pre tenere a mente dellampiezza limitata dellam-
biente, ossia di 40x25 punti. Questa operazione
ovviamente non importa anche i colori, che devono
essere sempre programmati a mano. Per il rag-
giungimento di risultati ottimali opportuno fare
numerosi tentativi.
Ad ogni modo, la vera essenza del Teletext rac-
chiusa allinterno del suo file ospitante, un file
Oscilloscopio
digitale
Open Source diPiero 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. Tutta-
via, 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 allanalisi dei circuiti. Stiamo parlando di un oscilloscopio digitale con schema elettrico e
software disponibili! Analizzeremo insieme a Voi ogni parte di questo grandioso progetto.
I
l DSO Nano v2 (il cui nome acronimo di Di- i dati memorizzati e lavorare sul firmware.
gital Storage Oscilloscope) , per lappun- 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 dellhobbysta 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-
Oscilloscopio digitale Open Source { 13
DSO Nano v2
specifiche tecniche
Full Color 2.8 TFT LCD 65K
Display
320240
10 mV/Div~10 V/Div
sposizione. Il progetto , infatti, Open e chiunque (con sonda 1)
Sensibilit verticale
0.5V/Div~100V/Div
abbia il desiderio di metterci le mani sopra per (con sonda 10)
provare a lavorarci per modificarlo, potr farlo. Tra
Posizione verticale Modificabile con gli indicatori
un po vedremo, nel dettaglio, come avere accesso
Impedenza dingresso >500 kOhm
a queste informazioni.
Max tensione input 80 Vpp (by 1 probe)
Nel frattempo, vi siete incuriositi? Bene! Adesso
Accoppiamento DC
andiamo con ordine
Auto, Normale, Singolo,
Features, interfaccia utente, None, Scan & Fit
Rising/Falling
bundle e dintorni edge/level trigger
Modalit di trigger
Trigger level modificabile
Cominciamo guardandolo da fuori. La struttura con gli indicatori
di base davvero semplice e permette di padro- Sensibilit del Trigger
modificabile con gli indicatori
neggiare immediatamente lo strumento. Sul wiki Auto measurement:
ufficiale, pagina in cui compaiono le informazioni frequency, cycle time, duty
cycle, peak voltage, RMS
complete sul prodotto, viene riportata anche que- voltage, Average voltage and
Funzioni di forma DC voltage
sta immagine donda Markers verticali
per misure precise
Markers orizzontali
per misure precise
Hold/Run
Generatore
10 Hz~1 MHz square wave
di segnale
Memorizzazione
Micro-SD card
della forma donda
Aggiornamento USB
Nellimmagine che segue, invece, vi proponiamo la La gestione della navigazione allinterno dei menu
spiegazione completa del display acceso mentre viene fatta con evidenziazione della funzione se-
visualizza due forme donda di test. lezionata e lutilizzo dei pulsanti Up/Down e OK
completa il quadro dei comandi dispo-
nibili e delle operazioni che possibile
eseguire.
Prima di continuare importante segna-
lare che sul sito internet di riferimento
per il progetto (che vi indicheremo meglio
tra poco) presente una guida completa
Fig. 1 Linterfaccia
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 nellastratto del main:
uno), e quella di acquisizione e gestione degli in-
/******************************
put, tramite pulsanti dislocati sul case come visto *******************************
in precedenza. ************
File Name: main.c
La sezione di acquisizione qui caratterizzata da *******************************
una serie di possibili ingressi, tutti opportunamen- *******************************
***********/
te diltrati, indirizzati ad un Multiplexer ad 8 canali, il
74HC4051, un dispositivo realizzato in tecnologia #include Function.h
#include Menu.h
cMOS con gate in Silicio. Si tratta, pi specifica-
#include Lcd.h
tamente, di un multiplexer/demultiplexer analogi- #include Calculate.h
co con 3 linee di selezione, un ingresso di enable #include stm32f10x_lib.h
#include HW_V1_Config.h
attivo-Basso (E), 8 ingressi indipendenti ed un pin #include Files.h
di in/out comune che permette la gestione degli #include string.h
#include ASM_Function.h
ingressi sulla base del tipo di segnale in arrivo.
Spicca in questo schema lFDFMA2P853, un di- void main(void)
spositivo progettato come soluzione integrata per
{
caricare le batterie dei dispositivi cellulari, ma non
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 //------------ voltage range related parameter
Ed ora, veniamo al firmware. Iniziamo subito con definitions------------
unsigned const char Item_V[20][10] = // vertical
una breve lista dei tools di cui si ha bisogno: sensitivity labels
1. IAR Workbench evaluation for ARM. (32KB code // 0 1 2 3 4 5
6 7 8 9 probe attenuation x1
limit); {10mV/Div, 20mV/Div, 50mV/Div, 0.1V/Div,
2. la versione del firmware APP pi recente dispo- 0.2V/Div, 0.5V/Div, 1V/Div , 2V/Div , 5V/
Div , 10V/Div,
nibile; // 10 11 12 13 14 15
3. Dfuse; 16 17 18 19 probe attenuation
x10
4. un PC su cui sia in esecuzione un sistema ope- 0.2V/Div, 0.5V/Div, 1V/Div , 2V/Div , 5V/
rativo Windows (98 o successivi); Div , 10V/Div, 20V/Div, 50V/Div, 100V/
Div, -GND- };
5. un cavo mini-USB per collegare il DSO al PC.
Oscilloscopio digitale Open Source { 19
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 dellarea di visualizzazione e laltra che si decimale;
occupa di gestire gli input. lheader file stm32f10x_lib.h serve ad ef-
fettuare linizializzazione di tutti i puntatori alle
/*****************************************************
************************** periferiche ed un file marchiato STM (Copyright
Function Name : LCD_SET_WINDOW 2007)
Description : use (x1,y1) and (x2,y2) to set a
Il main risulta piuttosto snello ed utile a chiama-
rectangle area
Para : (x1,y1) and (x2,y2) re in causa solo le funzioni che servono e quan-
***************************************************** do servono. Esso prevalentemente costituito da
**************************/
void LCD_SET_WINDOW(short x1, short x2, short un loop in cui si verifica la presenza di segnale,
y1, short y2) la condizione di trigger e si effettua lacquisizione,
{
LCD_WR_REG(0x0050, y1);
aggiornando lo schermo di conseguenza. Il tutto in
LCD_WR_REG(0x0051, y2); 452 linee di codice.
LCD_WR_REG(0x0052, x1);
Una della feature software documentate la fun-
LCD_WR_REG(0x0053, x2);
LCD_WR_REG(0x0020, y1); zione che permette lesportazione dei dati in for-
LCD_WR_REG(0x0021, x1); mato XML. Qui riportiamo un breve estratto di
LDC_DATA_OUT = 0x0022; // Reg. Addr.
LCD_RS_LOW(); // RS=0,Piont to Index Reg. questa funzione in cui ci sono 5 campioni rilevati
LCD_nWR_ACT(); // WR Cycle from 1 -> 0 -> 1 attorno alla condizione di trigger.
LCD_nWR_ACT(); // WR Cycle from 1 -> 0 -> 1
Nella sezione Profilo ci sono informazioni relative
LCD_RS_HIGH(); // RS=1,Piont to object Reg.
} alla configurazione attiva al momento dellacqusi-
/***************************************************** zione, dato che potrebbe essere utile acquisire per
**************************
Point_SCR: Set display position Input: X, Y successiva analisi dei risultati. Ed ancora, sono 3
***************************************************** gli elementi numerici in questa sezione, deno-
**************************/
void Point_SCR(unsigned short x0, unsigned short
minati triggerIndex, sampleCount e timeRange. Il
y0) primo rappresenta il numero totale di di campioni
{
presenti nel file (come una sorta di dimensione che,
LCD_WR_REG(0x0020,y0);
LCD_WR_REG(0x0021,x0); nella revision 3 del firmware 3072). timeRange,
LDC_DATA_OUT=0x0022; //DRAM Reg. ovvero il secondo, rappresenta lintervallo tempo-
LCD_RS_LOW();
LCD_nWR_ACT(); //WR Cycle from 1 -> 0 -> 1 rale (misurato in secondi) tra il primo e lultimo
LCD_nWR_ACT(); //WR Cycle from 1 -> 0 -> 1 campione (o pi semplicemente la durata). Il terzo,
LCD_RS_HIGH();
nientaltro che lindice di trigger. Da questi dati
}
si pu facilmente risalire allintervallo di tempo
20 } Oscilloscopio digitale Open Source
Lautore a disposizione nei commenti per eventuali approfondimenti sul tema dellArticolo.
Di seguito il link per accedere direttamente allarticolo sul Blog e partecipare alla discussione:
http://it.emcelettronica.com/oscilloscopio-digitale-open-source
22 }
Reti Wireless:
concetti avanzati diS. Lovati
13 Dicembre 2012
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 largomento 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, largomento relativo alle wireless, non a una in particolare. Non vi era per-
diverse architetture (o meglio topologie) di reti tanto lesigenza di soffermarsi su un particolare
wireless. I motivi sono principalmente due: tipo di struttura o configurazione
largomento 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 lapplicabilit questo post.
Reti Wireless: concetti avanzati { 23
Rete wireless con singolo router che si collegano alla rete (PC, smartphone, tablet,
Si tratta dellesempio 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, nellimmagine 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 colle-
garsi dovr anzitutto inviare una richiesta al server
DHCP (come questa richiesta viene inviata fa parte
del protocollo DHCP stesso, e ora non ci interes-
sa). Il server DHCP, basandosi su alcune regole,
La configurazione di questo tipo di rete molto cercher di assegnere al dispositivo un indirizzo
semplice. Lunica scelta da affrontare, se cos si IP. In genere loperazione riesce, ma ci sono casi
pu dire, riguarda labilitazione o meno del DHCP. particolari in cui lindirizzo 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 lindirizzo 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 lindirizzo 192.168.1.101, al terzo
indirizzo di sito web nel corrispondente indirizzo IP 192.168.1.102, e cos via. Al ventesimo disposi-
dellhost che ospita il sito stesso), e le regole di tivo collegato andr lultimo 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,
unarchitettura 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 allin- di ricevere lindirizzo 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 lindirizzo 192.168.0.0 identifica pro-
(ci non avviene in genere istantaneamente, perch prio lindirizzo 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 lindirizzo IP assegnato al ha lindirizzo 192.168.0.1 (questo viene pre-as-
dispositivo dovremo dare lapposito comando di- segnato dal fabbricante, e solitamente stampato
sponibile a livello di sistema operativo (ad esempio sulletichetta 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 unuti-
lit, e servono in particolare quando si
Fig. 2
vuole realizzare una rete in cui i dispositivi
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 lindirizzo statico su ciascun diposi-
industriali o a quelle nel campo dellautomazione) tivo (loperazione 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 lindirizzo 10.0.0.1, al primo PC lindirizzo
voco tramite il suo IP. Se infatti questo cambiasse 10.0.0.2, al secondo PC lindirizzo 10.0.0.3, e al
ad ogni accensione del sistema, si creerebbe una terzo lindirizzo 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
Reti Wireless: concetti avanzati { 25
la stessa, sia che ci si colleghi al primo o al
secondo router). Collocando i router in punti
strategici dellabitazione 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 risponde-
re, occorre tenere presente la seguente nota
importante: prima di eseguire le operazioni
Fig. 3 descritte nel seguito, occorre sottolineare
che i due router vanno configurati uno alla
riga comando il comando ping 10.0.0.2. Se si ot-
volta, mai contemporanemanete. Non vanno cio
tiene una risposta, significa che linterfaccia di rete
lasciati entrambi accesi durante la configurazione,
correttamente configurata.
solo uno per volta va alimentato fintantoche non si
Rete wireless con due router
completa la configurazione (ci necessario per
e stesso SSID
evitare conflitti tra i router durante la configura-
Questo tipo di rete, anche se non molto comune,
zione degli stessi). Partiamo dal primo (router1).
permette di risolvere molti problemi pratici di velo-
Questo sar il router principale, e lunico collegato
cit di connessione e di qualit del segnale radio
a Internet (cio allISP, acronimo di Internet Servi-
wireless nel caso in cui la rete preveda lutilizzo
ce Provider). Supponiamo che il suo IP di fabbrica
di numerosi dispositivi collegati e/o debba copri-
sia 192.168.1.1 (qualunque altro valore va bene,
re una zona piuttosto ampia, rimanendo sempre
basta seguire le regole che verranno esposte). Il
allinterno di una struttura domestica. In genere
DHCP andr lasciato abilitato, e supponiamo che il
per un normale appartamento un router basta e
range di indirizzi IP assegnabili sia tra 192.168.1.2
avanza, ma se si ha la fortuna di abitare in una
e 192.168.1.200. LSSID lo lasceremo anchesso
casa con pi piani (ad esempio scantinato o ta-
abilitato (verr trasmesso quindi in chiaro, tanto
verna, piano terra, primo piano, e magari ancora
non serve a nulla cercare di oscurarlo) e gli asse-
veranda o mansarda) e si vuole garantire la coper-
gneremo il valore a piacimento (ad esempio Ca-
tura wireless con una stessa rete, possono sor-
saMia). Il secondo router (router2), essendo dello
gere questo tipo di problemi. Visto il costo esiguo
stesso tipo del primo, uscir dalla fabbrica con gli
e abbordabile dei router wireless, la soluzione pi
stessi parametri. Per utilizzare due router, noi do-
immediata a questo tipo di esigenza consiste nel
vremo creare un collegamento tra i medesimi (tra
creare una rete con due router (possibilmente del-
poco vedremo come), e perci essi non potranno
lo stesso tipo), configurati per funzionare con lo
avere lo stesso indirizzo IP. Pertanto, dovremo as-
stesso SSID (quindi agli effetti esterni la rete
segnare 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.
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 nellassegna- 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 allinterno 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 laltro. Per chi volesse sapere cendere i due router e la rete pronta per luso. Ci
qualcosa di pi sui canali utilizzati dallo standard si pu quindi spostare allinterno delledificio 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 allutente (lSSID, 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 laltro avviene in modo automatico, senza
frequenza centrale di 2,462 GHz), e lampiezza soluzione di continuit). Tecnicamente parlando,
Reti Wireless: concetti avanzati { 27
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 ledificio permette di far passare agevolmente mente lo stesso metodo di protezione (WEP o WPA)
dei cavi tra un piano e laltro (o tra una stanza e e la stessa chiave crittografica. La tecnologia WDS,
laltra) 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 alledificio. 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 allutilizzo zata nel caso di due AP). Ci dovuto alla ritrasmis-
della tecnologia WDS. sione dei dati tra una stazione AP e la successiva,
WDS lacronimo 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 dellacquisto. 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.
Lautore a disposizione nei commenti per eventuali approfondimenti sul tema dellArticolo.
Di seguito il link per accedere direttamente allarticolo sul Blog e partecipare alla discussione:
http://it.emcelettronica.com/reti-wireless-concetti-avanzati
28 }
Embedded GNU/Linux
partendo da zero:
integrazione e test diA. Righi
18 Dicembre 2012
Lobiettivo 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 linitramfs. lesystem dotato di un unico binario eseguibile:
In questa puntata vedremo come completare il root /init.
Embedded GNU/Linux partendo da zero: integrazione e test { 29
Questo sufficiente per permettere al kernel
$ cd busybox
di lanciare una nostra applicazione custom al $ make ARCH=arm CROSS_COMPILE=arm-linux-
gnueabihf- \
termine del boot, ma abbastanza diverso da
OPTIMIZE_FOR_CPU=armv7-a CONFIG_PREFIX=/
quello che si aspetta di trovare in un tipico si- tmp/initrd menuconfig
stema GNU/Linux.
Al solito, con lopzione CROSS_COMPILE abbia-
Quello che manca una vera e propria shell
mo dato indicazione al sistema id build di BusyBox
completa, dotata dei comandi che caratterizza-
quale cross-compilatore utilizzare (lo stesso con
no qualsiasi distribuzione GNU/Linux.
cui abbiamo compilato precedentemente il kernel)
BusyBox
e con ARCH=arm e OPTIMIZE_FOR_CPU abbiamo
BusyBox[1] conosciuto anche come il col-
specificato larchitettura target per i file binari che
tellino svizzero dellembedded Linux. Si tratta
dovranno essere generati.
di un progetto open-source (GPLv2) in grado di
Con CONFIG_PREFIX, invece, specifichiamo la di-
fornire un intero set di comandi e utility presenti
rectory dove vogliamo che BusyBox vada ad instal-
nella suite GNU.Lintero progetto stato scritto
lare tutti i binari.
con un particolare occhio di riguardo allottimiz-
Se non vogliamo scorrere tutti i singoli men del
zazione dello spazio occupato dai binari, il che
make menuconfig di BusyBox possiamo utilizza-
lo rendono particolarmente appetibile nellambi-
re la configurazione riportata come allegato a que-
to embedded. Difatti praticamente tutte le note
sto articolo (busybox-config.txt). Per fare ci basta
piattaforme embedded Linux-based utilizzano
lanciare i comandi seguenti:
BusyBox (evaluation board, ricevitori, dispositi-
vi mobile come tablet, smartphone, etc. anche $ wget http://it.emcelettronica.com/files/busybox-
config_0.txt
Android!). $ cp busybox-config.txt busybox/.config
Vediamo di seguito i passi necessari per inte-
grare 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: $ make ARCH=arm CROSS_COMPILE=arm-linux-
gnueabihf- \
$ git clone git://busybox.net/busybox.git OPTIMIZE_FOR_CPU=armv7-a CONFIG_PREFIX=/
tmp/initrd install
Successivamente dobbiamo specificare la con-
figurazione di ci che vogliamo compilare e in- E infine installarla nella directory di destinazione:
cludere nel nostro ambiente. Analogamente a
$ make ARCH=arm CROSS_COMPILE=arm-linux-
quanto abbiamo fatto con il kernel possiamo gnueabihf- \
lanciare un make menuconfig nel modo se- OPTIMIZE_FOR_CPU=armv7-a CONFIG_PREFIX=/
tmp/initrd instal
guente:
30 } Embedded GNU/Linux partendo da zero: integrazione e test
Dopo linstallazione 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
quindi sono di cross-compilare e installare an-
# ls -l /tmp/initrd
total 12 che tutte le librerie dinamiche richieste, oppure
drwxrwxr-x 2 righiandr righiandr 4096 Dec 14
di compilare staticamente i binari (cio includere
15:07 bin
drwxrwxr-x 2 righiandr righiandr 4096 Dec 14 direttamente nel binario il codice delle librerie
15:07 sbin richieste).
drwxrwxr-x 4 righiandr righiandr 4096 Dec 14
15:01 usr Nel nostro caso abbiamo compilato BusyBox sta-
ticamente, ma se per ciascun binario includessi-
In pratica con linstallazione 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.
Allinterno della sotto-directory bin lunico bina- BusyBox risolve questo problema implementan-
rio busybox; tutti gli altri comandi sono disponi- do il codice di ciascun comando allinterno dello
bili nel filesystem come link simbolici alleseguibile stesso binario (invece di avere una separazione a
busybox: livello di file, possiamo vedere un comando della
# ls -l /tmp/initrd/bin/
shell di BusyBox come una funzione allinterno
total 1284 dello stesso binario).
lrwxrwxrwx 1 righiandr righiandr 7 Dec 14 15:07
I link simbolici costituiscono una soluzione in-
ash -> busybox
lrwxrwxrwx 1 righiandr righiandr 7 Dec 14 15:07 telligente per distinguere un comando dallaltro.
base64 -> busybox Ad esempio quando eseguiamo il binario /bin/
-rwxr-xr-x 1 righiandr righiandr 1314624 Dec 14
15:07 busybox cat dalla shell, questo di fatto esegue /bin/bu-
lrwxrwxrwx 1 righiandr righiandr 7 Dec 14 15:07 sybox, ma durante allinterno del codice il nome
cat -> busybox
del binario risulta /bin/cat.
lrwxrwxrwx 1 righiandr righiandr 7 Dec 14 15:07
catv -> busybox Alla fine possiamo immaginare il main di Busy-
lrwxrwxrwx 1 righiandr righiandr 7 Dec 14 15:07 Box nel modo seguente (con le dovute semplifi-
chattr -> busybox
lrwxrwxrwx 1 righiandr righiandr 7 Dec 14 15:07 cazioni del caso):
chgrp -> busybox
... int main(int argc, char **argv)
{
if (!strcmp(argv[0], /bin/cat)) {
Quiz #1: come mai BusyBox genera un solo bi-
/* implementazione di cat */
nario e sopratutto a cosa servono i link simbo- } else if (!strcmp(argv[0], /bin/ls)) {
lici? /* implementazione di ls */
} else ...
Risposta #1: Come abbiamo visto nella puntata
Embedded GNU/Linux partendo da zero: integrazione e test { 31
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 unastrazio- speciali che forniscono laccesso ai device driver,
ne messa a disposizione del kernel per dare una utilizzando le stesse interfacce per laccesso ai
visione dei processi come file, nel pieno rispetto classici (open, read, seek, write, close, etc.).
della filosofia delleverything 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,
anchesso uno pseudo-filesystem. Anchesso vie- etc. Anche in questo caso vale il principio delleve-
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. allapplicazione 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
GNU/Linux.
Il passo finale quindi di creare linitramfs (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
Come possiamo notare la nostra distribuzione oc- / # mount -t proc none /proc
cupa solo 1.4MB. Decisamente minimale. :-) / # ps
PID USER TIME COMMAND
Adesso possiamo far partire la board virtuale su
1 0 0:01 init
QEMU: 2 0 0:00 [kthreadd]
3 0 0:00 [ksoftirqd/0]
$ qemu-system-arm -M vexpress-a9 -kernel ./ 5 0 0:00 [kworker/u:0]
arch/arm/boot/zImage -serial stdio -display none 6 0 0:00 [migration/0]
-append console=ttyAMA0 -initrd /tmp/initramfs 7 0 0:00 [cpuset]
Booting Linux on physical CPU 0 8 0 0:00 [khelper]
Initializing cgroup subsys cpuset 9 0 0:00 [kworker/u:1]
Linux version 3.5.4 (righiandr@thinkpad) (gcc 158 0 0:00 [sync_supers]
version 4.7.2 20120910 (prerelease) (crosstool-NG 160 0 0:00 [bdi-default]
linaro-1.13.1-2012.09-20120921 - Linaro GCC 162 0 0:00 [kblockd]
2012.09) ) #1 SMP Fri Dec 14 14:15:35 CET 2012 168 0 0:00 [ata_sff]
CPU: ARMv7 Processor [410fc090] revision 0 178 0 0:00 [khubd]
(ARMv7), cr=10c53c7d 273 0 0:00 [rpciod]
... 274 0 0:00 [kworker/0:1]
Freeing init memory: 172K 280 0 0:00 [khungtaskd]
cant run /etc/init.d/rcS: No such file or directory 285 0 0:00 [kswapd0]
330 0 0:00 [fsnotify_mark]
Please press Enter to activate this console. 339 0 0:00 [nfsiod]
/ # ls -l 410 0 0:00 [kpsmoused]
total 0 413 0 0:00 [kworker/0:2]
drwxrwxr-x 2 1000 1000 0 Dec 14 23:29 bin 463 0 0:00 [deferwq]
drwxrwxr-x 2 1000 1000 0 Dec 15 00:28 dev 468 0 0:00 -/bin/sh
lrwxrwxrwx 1 1000 1000 9 Dec 15 00:25 init -> 469 0 0:00 init
sbin/init 471 0 0:00 init
drwxrwxr-x 2 1000 1000 0 Dec 14 23:29 proc 472 0 0:00 init
drwx------ 2 0 0 0 Dec 14 13:11 root 481 0 0:00 ps
34 } Embedded GNU/Linux partendo da zero: integrazione e test
/ # cat /proc/cpuinfo
Processor : ARMv7 Processor rev 0 (v7l)
processor : 0
BogoMIPS : 129.43
Conclusioni
In questa puntata abbiamo visto come popola-
re linitramfs 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 laspetto 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
Lautore a disposizione nei commenti per eventuali approfondimenti sul tema dellArticolo.
Di seguito il link per accedere direttamente allarticolo 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 diPiero Boccadoro
20 Dicembre 2012
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 massi-
ma 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+bcd+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.
Corso di Microprogrammazione: i circuiti combinatori { 39
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+bcd+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 unidea, ecco un software
Se da un lato vero che questo metodo pu essere che effetto proprio questoperazione: il suo nome
utilizzato per funzioni con un numero qualsiasi di MIN.
Lautore a disposizione nei commenti per eventuali approfondimenti sul tema dellArticolo.
Di seguito il link per accedere direttamente allarticolo sul Blog e partecipare alla discussione:
http://it.emcelettronica.com/corso-di-microprogrammazione-i-circuiti-combinatori
42 }
La miniaturizzazione
continua,
con i dielettrici low-k! diPiero Boccadoro
25 Dicembre 2012
N
Ci siamo occupati, nel recente passato, della ellindustria dei semiconduttori esistono
legge di Moore e di alcuni suoi aspetti connessi materiali cui si fa riferimento con il nome
con la tecnologia presente ed una previsione 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 dellutilizzo di questi materiali
sulla possibilit che la tecnologia che oggi quella di apportare delle modifiche tecnologiche
utilizziamo, in quanto allavanguardia, 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 dellindustria 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-
La miniaturizzazione continua, con i dielettrici low-k! { 43
mento e landamento 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-
allaccumulo di carica locale, e quindi diffe- vute alleffetto 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 dellaffidabili-
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. Limple- gate pu aumentare, o diminuire, rendendo pi o
mentazione di questi materiali rientra comunque meno importanti i fenomeni di perdita.
nellambito 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-
allinterno 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 questottimo 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 lunica motivazione, per-
vero in cui stato creato il vuoto allinterno 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 nellisolamento.
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 metalli-
ci (in genere rame). Il materiale gi
di largo impiego da quando la tec-
nologia 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 dellSiO2 con
il fluoro produce uno strato che dimo- Schema del macchinario | cnx.org
La miniaturizzazione continua, con i dielettrici low-k! { 45
per effetto di un eccesso di temperatura localiz- questo tipo di contatti rappresentato dal feno-
zato. Inoltre, come detto in precedenza, questi meno dellelettromigrazione, 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 laderenza. 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 dellutilizzo 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 lutilizzo di dei contatti in rame e
materiali low-k. delle interconnessioni
Spin-on low-k integrated
Anche lutilizzo di con dielettrici low-k.
(source: JSR, credit: K. Mosig)
ponti (bridges) e di 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 sullutilizzo 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 unattenta 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.
Lautore a disposizione nei commenti per eventuali approfondimenti sul tema dellArticolo.
Di seguito il link per accedere direttamente allarticolo sul Blog e partecipare alla discussione:
http://it.emcelettronica.com/miniaturizzazione-continua-con-i-dielettrici-low-k
46 }
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.
L
a disputa tra sistemi a 32-bit e sistemi a sicura e controllata).
64-bit si rif viva con luscita 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.
I segreti di Mountain Lion: il tuo Mac in grado di farlo girare? { 47
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) allavvio.
presentano questultima 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
dellenergia, e componenti, come delle ventole e possono far girare in modalit 64-bit programmi
il loro funzionamento. Il firmware permette lavvio 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 lultimo 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 lupgrade 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 nellutility System Profiler porta nuove API grafiche per OpenGL, OpenCL
(chiamata System Information
in Lion), accedendo alla sezio-
ne software sulla sinistra.
A questo punto bisogna con-
trollare la riga Kernel 64-bit
ed Estensioni per verificare se
ad esso associata la voce SI
o NO. Lopzione NO lunica
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 questultimo requisito, iMac (met 2007 o superiore)
alcune GPU, come lATI Radeon X1900 e la Nvidia MacBook (fine 2008 Aluminum, inizio 2009 o
Geforce 7300, non sono comunque allaltezza. superiore)
Quale Mac MacBook Pro (met/tardo 2007 o superiore)
possedete? MacBook Air (tardo 2008 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)
dellOS X con cui sono stati originariamente svi- Per cui lesaustiva 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.
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