Sei sulla pagina 1di 71

Firmware

NOVEMBRE 2011
MODULI RADIO
OEM IN 686MHZ

UN TOOL PER
SIMULARE I PIC

TRANSCEIVER
CAN

APPLICAZIONI
VIDEO CON
FPGA
UTILIZZARE
ANDROID NEI
SISTEMI EMBEDDED
Firmware
Il silicio E D I T O R I A L E
NOVEMBRE 2011

News

L’era del Silicio è oramai al capolinea sia


Applicazioni video 4

va in pensione? per saturazione di mercato sia per


low-power con le
6 TIPS’n tricks
saturazione tecnologica. Per questo
motivo i più grandi centri di ricerca sono al lavoro per trovare valide alternative. FOCUS on
13 Virtualizzazione nei sistemi
Una delle tecnologie più plausibili a rimpiazzare il vecchio silicio, pare sia quella embedded
che utilizza il grafene, una particolare molecola cristallina derivata dalla comune
grafite. I primi prototipi di chip al grafene sono stati sviluppati da IBM nel 2008, ma
Come usare le FPGA Igloo di Actel
SKILLs
solo in questi giorni è stato reso noto che è possibile crescere cristalli di grafene 18 Android real-time

su un substrato di silicio. Questa importante scoperta fornisce un grande impulso


(Microsemi) per l’acquisizione ed per sistemi embedded

a questa nuova tecnologia finora frenata dai costi elevati di produzione. elaborazione di immagini e per il 25 Applicazioni video
low power con FPGA Igloo
Depositare grafene su substrato di silicio mediante crescita epitassiale significa controllo di display LCD
non dover, necessariamente, imbarcarsi in un costosissimo processo di 28 Componenti per lo sviluppo
di applicazioni USB
riconversione dell’industria dei semiconduttori, ma sfruttare al meglio i substrati di
silicio correntemente utilizzati per ottenere nuovi dispositivi dalle prestazioni
sempre più elevate. Il costo si abbatterà con la penetrazione sul mercato, del
INside
33 Modulo RF 868MHz
resto il primo chip di silicio costava uno sproposito ed oggi si parla di pochi cent.
L’era del grafene è iniziata. 38 Transceiver CAN

SPOTlight
Android per sistemi embedded 41 Catapult C
di Mentor Graphics

TOOLS
44 Real PIC Simulator

Android, fin dall’inizio, ha catalizzato l’interesse di aziende 59 Octave, l’alternativa free


a Matlab
e sviluppatori. Infatti da sempre questa piattaforma software
è stata costantemente migliorata sia in termini di caratteristiche ANALOG
sia di hardware supportato e, allo stesso tempo, si è cercato 68 Difendersi dalle scariche
di assicurare la sua compatibilità verso nuovi dispositivi Diventa fan di Firmware elettrostatiche
su Facebook!
e applicazioni
71 EVENTS zapping
Mouser – componenti elettronici

Nuovo Kit di Sviluppo di Silica che combina


MCU e FPGA su un’unica scheda
Silica introduce sul mercato il primo kit di sviluppo che combina un core M3 CortexTM e una
FPGA Spartan 6 su una singola scheda. La nuova scheda Xynergy fornisce agli ingegneri un
ambiente di sviluppo innovativo per applicazioni che richiedono una soluzione di progetto a due
chip. La scheda Xynergy combina un nuovissimo microcontrollore
STM32F217 di STMicroelectronics che è basato su un core
M3 Cortex™ di ARM®, con una FPGA Spartan 6
XC6SLX16 di Xilinx a basso costo.
L’interfaccia FSMC del
microcontrollore consente di
ottenere una
connessione parallela a
16 bit con l’FPGA,
assicurando un trasferimento
dati ad alta velocità fra i due
componenti. Il core M3 di Cortex™
può supportare un clock fino a 120 MHz
e incorpora una memoria Flash da 1 MB e
una SRAM da 128 KB. Inoltre, la memoria DDR3
da 1 GBit connessa all’FPGA, può essere resa
trasparente attraverso il bus FSMC, consentendone
l’uso anche da parte del microcontrollore. La scheda
Xynergy viene fornita con una selezione di interfacce di comunicazione che include Ethernet, USB
On-the-Go e CAN, interfaccia SPI, porta Virtual COM (con un bridge da RS232 a USB) e un
alloggiamento per scheda Micro-SD.
http://www.silica.com/xynergy

13 FOCUS ON 18 SKILLS 33 INSIDE 44 TOOLS 67 ANALOG

7 TIPS’N TRICKS 3 MARKET NEWS 41 SPOTLIGHT 71 EVENTS ZAPPING ABBONAMENTO


National instruments – Labview

I driver integrati per l’alimentazione dei LED


LinkSwitch™-PH in un package a basso profilo
Power Integrations ha presentato i driver integrati per il LED LinkSwitch-PH in
un package eSIP™-L a basso profilo, con un’altezza di solo 2 mm. L’obiettivo
del nuovo package è rivolto alle necessità di sostituzioni dei tubi
fluorescenti, dove sono necessari dei package a basso profilo in modo da
potersi adattare dietro la scheda LED. I driver integrati dei LED a unico stadio,
con controllo lato primario, sono caratterizzati da un’efficienza superiore al
90% e un fattore di potenza superiore allo 0,9. Grazie alla sua topologia
innovativa, viene eliminata la necessità di utilizzo dei condensatori e opto-isolatori elettrolitici
inossidabili. Tale caratteristica li rende particolarmente adatti per le applicazioni industriali,
commerciali e d’illuminazione a stato solido esterne (SSL).
www.powerint.com/linkswitch-ph

A2A sviluppa con MATLAB una soluzione


completa di gestione del rischio
MathWorks ha annunciato che A2A, una delle maggiori società operanti nel settore dell’energia in Italia, ha
usato MATLAB e le sue toolbox per sviluppare la propria piattaforma di gestione del rischio. Con MATLAB
come base per la propria architettura di produzione, A2A ha ridotto i tempi di calcolo dei rischi da un’ora a
30 secondi, ha dimezzato il tempo di sviluppo dei sistemi e ha accelerato lo sviluppo del modello dei prezzi.
In precedenza l’azienda usava delle soluzioni basate su fogli di calcolo, complesse da mantenere e lente da
utilizzare, che richiedevano un’ora o più di tempo degli analisti per calcolare il valore a rischio (VaR) con
circa 60 fattori di rischio. MATLAB ha consentito agli analisti di A2A di sviluppare applicazioni basate sui
dati e su modelli, quali un’applicazione VaR che opera con 400 fattori di rischio, integrati nelle architetture
dei sistemi della società. La piattaforma di gestione del rischio di A2A aiuta l’azienda a raccogliere dati di
mercato storici e attuali, applicare sofisticati modelli non lineari, eseguire simulazioni Monte Carlo,
quantificare il VaR e presentare graficamente i risultati. Ora i Risk Manager sono in grado di tener conto
di un numero di fattori di rischio 10 volte maggiore che in passato.
www.mathworks.com

13 FOCUS ON 18 SKILLS 33 INSIDE 44 TOOLS 67 ANALOG

7 TIPS’N TRICKS 3 MARKET NEWS 41 SPOTLIGHT 71 EVENTS ZAPPING ABBONAMENTO


PRODUCT NEWS La nuova frontiera nella
sintesi di frequenza
Sintetizzatori a N intero da 373MHz a 5,79GHz con rumore e spurie ultrabassi,
dotati di VCO integrato per migliorare le prestazioni del sistema

L’LTC6946 di Linear Technology è il primo dispositivo


Convertitore
di una famiglia di sintetizzatori a numero intero ad alte A/D
prestazioni con VCO integrato in grado di fornire un
rumore di fase in banda a loop chiuso normalizzato
di -226dBc/Hz, un rumore 1/f in banda normalizzato
di -274dBc/Hz e un’uscita spurie pari a -103dBc. In
un’applicazione tipica da 900MHz, queste specifiche
prestazionali forniscono un rumore di fase a loop
chiuso di -100dBc/Hz con offset di 1kHz. Il dispositivo
è disponibile in tre opzioni di frequenza: l’LTC6946-1 Oscillatore di LTC6946 Prestazioni eccezionali:
si regola da 2,240GHz a 3,740GHz, l’LTC6946-2 da riferimento VCO -226dBc/Hz di rumore di fase
3,080GHz a 4,910GHz e l’LTC6946-3 da 3,840GHz a in banda normalizzata
5,790GHz. Ogni modello è provvisto di un partitore di Divisore
PLL
uscita su chip programmabile da 1 a 6 per estendere la in uscita -157dBc/Hz di rumore di fondo
in uscita
copertura della frequenza fino a 373MHz.
Typical Application
5.7GHz Wideband Receiver 5.7GHz Wideband Receiver
< -100dBc di prodotti spuri
Questa famiglia di dispositivi integra un PLL da 4.7nF LTC6946-3 PLL Phase Noise
5,7GHz a basso rumore, che include a sua volta un 5V 57nF
0.01µF –80
15Ω 0.01µF 2.2µF 97.6Ω 3.3V
partitore di riferimento, un demodulatore in fase e –90

–100
VVCO+
GND
CMA
CMB
CMC
GND
TB
TUNE

frequenza con indicatore di phase-locked, una pompa

PHASE NOISE (dBc/Hz)


1µF 68nH 68nH RF INPUT
SIGNAL –110
0.01µF GND BB
di carica ultrasilenziosa e un partitore di feedback a VCP+ VRF +
0.01µF
3.3V 100pF
RF
–120

Sintetizzatori di frequenza a basso rumore e spuri ridotti


CP RF+ TO IF
LO IF
intero per garantire un funzionamento PLL a basso 3.3V VREF+
LTC6946-3
RF–
PROCESSING –130
RMS NOISE = 0.61°
0.01µF 100pF –140 RMS JITTER = 296fs
REF–
rumore. Il circuito PLL è combinato con un VCO a GND

da 375MHz a 6GHz
470pF fRF = 5.7GHz
REF+ MUTE –150 fPFD = 10MHz
50Ω
+ 470pF
basso rumore e prevede l’auto-calibrazione interna
VREFO+

BW = 85kHz
REFO

SCLK
STAT

SDO

–160
VD+
SDI

10MHz 51.1Ω
CS

6946 TA01a
100 1k 10k 100k 1M 10M 40M
UNUSED OUTPUT
in modo da garantire una regolazione ottimale del 3.3V
0.1µF 0.1µF
3.3V IS AVAILABLE
FOR OTHER USE
OFFSET FREQUENCY (Hz)
6946 TA01b
SPI BUS
risonatore VCO per offrire le migliori prestazioni I nuovi sintetizzatori di frequenza a N intero e bassissimo rumore, presentano caratteristiche insuperabili nella loro categoria in
in termini di rumore di fase. Il VCO non richiede termini di rumore di fase e prodotti spuri. L’LTC®6945 è un oscillatore angolare in tecnica PLL a basso rumore 1/f da abbinare a
componenti esterni. La porta seriale bidirezionale su un VCO esterno, mentre l’LTC6946 è un sintetizzatore di frequenza completo, equipaggiato con VCO a basso rumore di fase. Il
chip compatibile con l’interfaccia SPI consente di
Riepilogo delle caratteristiche: LTC6801 CAD PLLWizard™, tool gratuito di utilizzo intuitivo, permette di simulare con rapidità e precisione le prestazioni del sintetizzatore,
regolare e monitorare la frequenza, nonché di leggere • Bassissimo rumore di fase in banda: assicurando una progettazione ottimale. Per realizzare soluzioni a basso rumore senza compromessi in quanto a qualità e tempo.
le informazioni sullo stato del registro e del loop. -226dBc/Hz (loop chiuso, normalizzato)
Il basso rumore di fase e le spurie ridotte di questa • Rumore 1/f in banda:
-274dBc/Hz (loop chiuso, normalizzato) Caratteristiche Rumore di fase ad anello chiuso Info e campioni gratuiti
famiglia di sintetizzatori di frequenza migliorano
• Rumore di fondo fase in uscita a banda larga • -226dBc/Hz di rumore di fase in –80 www.linear.com/product/LTC6946
le prestazioni delle stazioni base multibanda che
di -157dBc/Hz banda normalizzata Tel.: +39-039-596 50 80
supportano gli standard LTE, W-CDMA, UMTS, –90
Fax: +39-039-596 50 90
CDMA, GSM e WiMAX. Grazie all’elevata frequenza, • Uscita spurie molto bassa: -103dBc • Angolo di rumore 1/f in banda più –100

Rumore di fase (dBc/Hz)


questa gamma di prodotti supporta anche l’accesso • VCO a temperatura stabilizzata con calibrazione basso del settore
wireless point-to-point a banda larga, i sistemi militari/ automatica –110
• Spurie <-100dBc
aeronautici e le applicazioni di test e misurazione ad • Pompa di carica programmabile con corrente –120
in uscita fino a 11,2mA • “Charge pump” in uscita ad elevata
alte performance. corrente da 11mA per minimizzare –130 Get the
All’occorrenza è disponibile il software PLLWizard™, • Software di progettazione PLLWizard™ RUMORE RMS = 0,61°
il rumore termico in compensazione –140 FLUTTUAZIONE RMS = 296fs
uno strumento di progettazione completo basato su PC • Partitore di uscita su chip con ampio range di di loop fRF = 5,7GHz
che agevola il controllo interattivo e l’interfacciamento regolazione della frequenza (fino a 5,79GHz) –150 fPFD = 10MHz www.linear.com/PLL
• Divisore programmabile in uscita, –160
BW = 85kHz
con la scheda di valutazione dell’LTC6946. Con questo per un ampio range di frequenza di 100 1k 10k 100k 1M 10M 40M
, LT, LTC, LTM, Linear Technology e il logo Linear sono
marchi registrati e PLLWizard è un marchio di Linear
Technology Corporation. Tutti gli altri marchi sono di
software i progettisti possono eseguire simulazioni e funzionamento Spostamento in frequenza (Hz) proprietà dei rispettivi titolari.
Range di frequenza di uscita (GHz)
attività di ottimizzazione, verificando in modo interattivo
LTC6946-1 LTC6946-2 LTC6946-3
i loro progetti sui circuiti dimostrativi. PLLWizard può
Frequenza VCO interna da 2,240 a 3,740 da 3,080 a 4,910 da 3,840 a 5,790
essere scaricato gratuitamente dal sito web di Linear
0 DIV = 1 da 2,240 a 3,740 da 3,080 a 4,910 da 3,840 a 5,790
Technology all’indirizzo www.linear.com/synthesizers.
0 DIV = 2 da 1,120 a 1,870 da 1,540 a 2,455 da 1,920 a 2,895
Tutte le versioni dell’LTC6946 supportano tempe-
0 DIV = 3 da 0,747 a 1,247 da 1,027 a 1,637 da 1,280 a 1,930
rature da -40°C a 105°C. I dispositivi sono disponibili in
package QFN in plastica da 4 x 5mm e 28 conduttori. 0 DIV = 4 da 0,560 a 0,935 da 0,770 a 1,228 da 0,960 a 1,448
0 DIV = 5 da 0,448 a 0,748 da 0,616 a 0,982 da 0,768 a 1,158 Distributori

Per ulteriori info: www.linear.com/product/LTC6946 0 DIV = 6 da 0,373 a 0,623 da 0,513 a 0,818 da 0,640 a 0,965 Linear Technology Italy Srl +39-039-5965080
Arrow +39-02-661251
Farnell Italia +39-02-93995200
Linear Tecnology - Itc6802

Microcontroller PIC32 più piccoli ed economici C++test di Parasoft è ora integrato


Microchip annuncia una nuova serie di microcontroller (MCU) PIC32 a con il debugger TRACE32 Lauterbach
32-bit e a pin-count ridotto, capaci di erogare prestazioni fino a 61 Parasoft Embedded ha annunicato l’integrazione di Parasoft C++test con il debugger TRACE32 di
DMIPS in package fino a 5 mm x 5 mm. Destinati alle applicazioni con Lauterbach. Parasoft C++test offre l’insieme più completo di funzionalità disponibile oggi sul
vincoli di costo e di ingombro, i nuovi MCU PIC32 MX1 e MX2 mercato. L’analisi statica del flusso dati, la verifica di
rappresentano i microcontroller PIC32 più piccoli ed economici e sono conformità del codice, il test di modulo e l’analisi di
i primi prodotti PIC32 a mettere a disposizione periferiche dedicate copertura del codice sono integrati in un singolo ambiente
all’audio e al rilevamento capacitivo. Gli MCU PIC32 MX1 e MX2 includono fino a 32 KB di memoria con un supporto eccellente per la tracciabilità e l’ALM.
Flash e 8 KB di SRAM; due interfacce I2S per l’elaborazione audio; una periferica CTMU Microchip Questo insieme di prestazioni può aiutare gli utenti
per la gestione di tasti capacitivi tattili mTouch™ o di sensori avanzati; una interfaccia PMP a 8-bit TRACE32 ad ottenere una migliore qualità e produttività,
per memoria grafica o esterna. I nuovi dispositivi prevedono un ADC on-chip a 10-bit, 1 Msps e 13- riducendo visibilmente il costo di sviluppo software e di
canali, e periferiche USB 2.0 e di comunicazione seriale. Gli MCU introducono nella linea PIC32 otto certificazione agli standard di sicurezza. Con il supporto
nuovi package, da 28- a 44-pin. I dispositivi PIC32 MX1 e MX2 sono compatibili con la linea di di C++test al debugger TRACE32, gli utenti possono
prodotti Microchip PIC24F a 16-bit e sono supportati dall’ambiente di sviluppo MPLAB® X IDE. ottenere facilmente una completa automazione del
http://www.microchip.com/en_US/family/32bit/ processo di test. Le attività come il caricamento sul target
del codice da testare, l’esecuzione del test e l’acquisizione
dei risultati sono controllate da uno script in linguaggio
Connettore CPX di TE supporta 120 PRACTICE generato da C++test e interpretato dal debugger Lauterbach. Lo script PRACTICE
GB/SEC di larghezza di banda generato da C++test per l’automazione del test, può essere facilmente modificato o integrato con
TE Connectivity ha sviluppato un connettore e gabbia CPX inseribili, con script preesistenti. Quindi questa soluzione si applica facilmente sia a progetti già esistenti che
footprint migliorato, assemblati in un pratico gruppo a pressione che diventa un nuovi. Oltre a usufruire di una modalità di test completamente automatizzata e non interattiva, gli
unico componente. Questo nuovo prodotto supporta 12 canali con velocità del utenti possono utilizzare anche il debugger Lauterbach per procedere a step fra i “test cases”. La
flusso dati fino a 10 Gb/sec e una larghezza di banda totale di 120 Gb/sec. Costruito per applicazioni ad possibilità di eseguire il debug dei “test cases” velocizza molto il processo di creazione di “test
alta velocità dei dati, il gruppo CPX riduce la dispersione EMI alla cornice e all’interfaccia gabbia- suites” di regressione robuste e affidabili. Inoltre, l’architettura di C++test permette agli utenti di
spinotto. Il prodotto offre le opzioni lightpipe, EMI/dust plug, nonché il dissipatore di calore in tre altezze passare facilmente dal test del loro codice su hardware reale ai simulatori, rendendo quindi
differenti per soddisfare le esigenze delle varie applicazioni termiche. Esiste anche l’opzione di possibile ai teams l’inizio dei test già nelle prime fasi di produzione, quando la piattaforma
montaggio belly to belly, che consente l’inserimento su entrambi i lati del circuito stampato, per hardware potrebbe non essere ancora disponibile.
applicazioni con porte ad alta densità che richiedono risparmio di spazio.
http://www.te.com/products/CXPGO www.lauterbach.com

13 FOCUS ON 18 SKILLS 33 INSIDE 44 TOOLS 67 ANALOG

7 TIPS’N TRICKS 3 MARKET NEWS 41 SPOTLIGHT 71 EVENTS ZAPPING ABBONAMENTO


6
Una serie di tre articoli
sui Convertitori
Analogico-Digitali, Gli errori nella PRIMA PARTE

Conversione
con particolare attenzione
alle sorgenti di errore
e alle precauzioni applicative.
In questa prima parte
elencheremo brevemente
le principali architetture ella figura 1, cui faremo riferimen-
per indicarne i campi N to più volte nella serie di articoli,
vediamo lo schema generale applicabile
di applicazione più appropriati
a ogni convertitore, con esplicitazione
e forniremo alcuni consigli
delle connessioni esterne. Abbiamo uno
per scegliere un buon ADC
o più ingressi analogici e un bus di usci-
te digitali destinate a presentare il valore
di MARIO ROTIGNI di tensione convertito in codice binario.
Le operazioni del convertitore richie-
dono una tensione di riferimento stabi- Figura 1: schema a blocchi di un generico
le e precisa e un clock che gestisce ADC.
tutte le temporizzazioni interne. Spesso
Figura 2: funzione di trasferimento ideale
riferimento e clock sono generabili in-
di un ADC generico; per semplicità
ternamente al circuito integrato ADC o
consideriamo un ADC di tre bit.
microcontrollore in cui l’ADC sia parte.
Un segnale logico viene utilizzato per
comunicare il termine della conversione Notiamo che in realtà a ogni codice bi- caso in figura. Quando la tensione in
e la disponibilità del nuovo dato. Ve- nario in uscita non corrisponde un sin- ingresso è nulla, l’uscita binaria del
diamo ora la funzione di trasferimento di golo valore di tensione analogica in in- convertitore ideale è “000” e diventa
un generico ADC e alcune sue caratte- gresso ma un piccolo range di valori uguale a “001” solo quando l’ingresso
ristiche. La funzione di trasferimento dato da VRef/2n dove n è il numero di raggiunge e mantiene il valore Vref/8. E
teorica è presentata in figura 2. bit della parola binaria di uscita, tre nel così via per i pesi binari successivi. In

13 FOCUS ON 18 SKILLS 33 INSIDE 44 TOOLS 67 ANALOG

7 TIPS’N TRICKS 3 MARKET NEWS 41 SPOTLIGHT 71 EVENTS ZAPPING ABBONAMENTO


è inevitabile, intrinseco nella conver- scala e in decibel, comoda rappresen-
sione da analogico a digitale e può es- tazione vista l’ampia dinamica da rap-
sere considerato la prima sorgente di er- presentare, familiare specie a chi ope-
rore degli ADC. Si può pensare al ra in campo audio o radiofrequenza.
altre parole, in questa situazione ab- termine ±1/2 LSB come a un rumore
biamo un errore massimo dovuto alla sovrapposto alla nostra misura. ARCHITETTURE ADC
conversione dal valore analogico con- La tabella 1 presenta la risoluzione Nei paragrafi successivi faremo una
corrispondente al numero di bit, cioè carrellata sulle principali architetture
tinuo a numeri con risoluzione finita
il valore di tensione corrispondente a un di ADC. Non introdurremo tutte le ar-
(errore di quantizzazione), pari ad 1
LSB (Least Significant Bit), minima dif- chitetture esistenti, limitandoci ad al-
LSB. In realtà si aggiunge nei converti-
ferenza di tensione che l’ADC è in gra- cune tra quelle oggi più usate: FLASH,
tori un offset in modo che l’errore mas- do di discriminare. LSB è qui espresso SAR (Approssimazioni Successive), In-
simo corrisponda a ±1/2 LSB, traslando in volt e sottomultipli (riferiti a un fondo tegrazione a Doppia Rampa, Sigma-
la funzione di trasferimento di 1/2 LSB scala di 10 V), in percentuale del fondo- Figura 3: schema a blocchi di un ADC Delta e Conversione Tensione-Fre-
verso destra. L’errore di quantizzazione scala, in parti per milione del fondo- FLASH.  quenza.

Risoluzione Bit Tensione Ppm % dB


Fondo Scala 10 V Fondo Scala Fondo Scala Fondo Scala

2 2,5 V 250000 25 –12


4 625 mV 62500 6,25 –24
6 156 mV 15625 1,56 –36
8 39,1 mV 3906 0,39 –48
10 9,77 mV 977 0,098 –60
12 2,44 mV 244 0,024 –72
14 610 uV 61 0,0061 –84
16 153 uV 15 0,0015 –96
18 38 uV 4 0,0004 –108
20 9,54 uV 1 0,0001 –120
22 2,38 uV 0.24 0,000024 –132
24 596 nV 0.06 0,000006 –144

Tabella 1: risoluzione e parametri a essa associati.


Figura 4: schema a blocchi di un ADC a Integrazione Doppia Rampa. 

13 FOCUS ON 18 SKILLS 33 INSIDE 44 TOOLS 67 ANALOG

7 TIPS’N TRICKS 3 MARKET NEWS 41 SPOTLIGHT 71 EVENTS ZAPPING ABBONAMENTO


ARCHITETTURA FLASH
L’architettura ADC più semplice e più
veloce è chiamata FLASH, vedi figura
3. Questo convertitore è composto da
un banco di comparatori in parallelo,
uno per ciascun bit di risoluzione. Ogni
comparatore riceve su un ingresso il
segnale analogico di ingresso e, sul se-
condo ingresso, una soglia ottenuta at-
traverso partitore resistivo dalla ten-
sione di riferimento. Figura 5: schema a blocchi di un ADC SAR.  Figura 6: schema a blocchi di un ADC Sigma-Delta. 
Le uscite dei comparatori si portano a li-
vello logico “0” oppure “1” in funzione
del risultato della comparazione del se-
integrata. Il campo di applicazione di L’ingresso dell’integratore è poi com- sovrapposto al segnale e presenta buo-
gnale in ingresso con la rispettiva soglia,
questi ADC consiste in apparecchiatu- mutato sulla tensione di ingresso che na reiezione di modo comune, special-
costruendo una rappresentazione di-
re dove sia richiesta grande velocità, viene integrata a sua volta ma con po- mente se il tempo di integrazione è
gitale del segnale.
quali acquisizione di segnali video, ri- larità opposta, fino al cambio di stato uguale o multiplo del periodo del ru-
Poiché il numero ottenuto non è codifi- del comparatore. Il rapporto tra le du-
cevitori RF, RADAR. more. Tale caratteristica può ad esem-
cato in binario, come normalmente ri- rate delle due rampe è proporzionale pio essere sfruttata per ridurre il rumo-
chiesto dalle successive elaborazioni, al rapporto tra VRef e Vinput. Questo
uno stadio logico codificatore segue il ARCHITETTURA INTEGRAZIONE re a 50 Hz nei risultati di misura.
convertitore offre buone caratteristi-
banco di comparatori. Il tempo di con- A DOPPIA RAMPA Gli svantaggi vengono dal tempo di
che di precisione e stabilità, sostan-
versione dipende sostanzialmente solo Il convertitore a Integrazione a Doppia conversione relativamente elevato, nel-
zialmente equivalenti a quelle della sor-
dalla velocità dei singoli comparatori. Si Rampa è stato una delle prime archi- l’ordine di centinaia di millisecondi. Vie-
gente di VRef scelta.
capisce quindi come si possano co- tetture proposte e risulta semplice da La frequenza di clock non è critica e ne impiegato in sistemi di misura dove
struire ADC molto veloci. costruire, basato su un integratore e l’unico requisito è la sua stabilità du- la velocità non è critica, come nei mul-
Lo svantaggio è il numero crescente di un comparatore (figura 4). Si basa sul- rante il periodo di conversione (stabili- timetri digitali da banco, misure in con-
componenti richiesto per avere buone l’integrazione di un livello di riferimen- tà a breve temine). tinua e misure di grandezze caratteriz-
risoluzioni, con aggravio di costi e dif- to noto per un periodo di tempo cono- Usando tecniche di integrazione, per- zate da variazioni lente, quali la
ficoltà di realizzazione, anche in forma sciuto. mette di ridurre molto il rumore alternato temperatura.

13 FOCUS ON 18 SKILLS 33 INSIDE 44 TOOLS 67 ANALOG

7 TIPS’N TRICKS 3 MARKET NEWS 41 SPOTLIGHT 71 EVENTS ZAPPING ABBONAMENTO


ARCHITETTURA CONVERTITORE
AD APPROSSIMAZIONI TENSIONE-FREQUENZA
SUCCESSIVE (SAR) Il convertitore Tensione-Frequenza for-
Questa configurazione utilizza un com- nisce in uscita un treno di impulsi di
paratore pilotato su un ingresso dal va- frequenza proporzionale al valore della
lore da convertire e sull’altro ingresso da tensione in ingresso. Tipici valori di
un Convertitore Digitale-Analogico, ve- Figura 7: fondo scala sono 10 KHz e 100 KHz.
di figura 5. Una logica di controllo ge- schema a La circuiteria usata si basa spesso su un
nera in passi successivi valori digitali blocchi di sistema a bilanciamento di carica, vedi
corrispondenti a tensioni sempre più un ADC con figura 7.
vicine al valore in ingresso, da cui il Convertitore La conversione, basata sostanzialmente
Tensione-
nome. Il valore che, coincidendo con su una integrazione, è piuttosto lenta
Frequenza.
l’ingresso, causa il cambio di stato del ma il sistema presenta un’elevata im-
comparatore è memorizzato per pre- munità al rumore. Il segnale digitale in
sentarlo in uscita. Un numero di cicli cessivi. La parola digitale di uscita vie- soluzione. Ogni conversione compren- uscita si presta inoltre bene a trasmis-
di clock pari al numero di bit di risolu- ne costruita serialmente bit per bit ser- de quindi acquisizioni multiple (over- sioni a distanza, facili da isolare in pre-
zione sono necessari a completare una vendosi di un integratore, un ADC a 1 sampling) e successivo filtraggio, da senza di forti disturbi di modo comune,
conversione. bit, un DAC a 1 bit e di un sommatore cui risulta una buona reiezione dei di- rendendo popolare questa architettura
Il convertitore è compatto e semplice, di (figura 6). La tensione fornita dal DAC sturbi sovrapposti al segnale di ingres- di conversione ADC per sensori remoti.
media velocità ed è una delle architet- viene sottratta dal segnale di ingresso e so. Semplice da implementare e parti-
ture preferite per l’integrazione in mi- il risultato integrato è confrontato con 0, colarmente adatto a strutture Digital SCELTA DI UN ADC
crocontrollori. Probabilmente è l’archi- quindi convertito praticamente in bina- Signal Processing, questo convertito- I parametri principali che guidano la
tettura di uso generale oggi più rio, 0 o 1. re ha prestazioni di velocità intermedie scelta di un convertitore sono velocità di
frequentemente impiegata. Il DAC presenta alla sua uscita il valore tra SAR e gli ADC a integrazione. Ha conversione, risoluzione e precisione.
analogico del bit corrente; questo viene buone caratteristiche di riduzione del ru- Tutti questi parametri derivano natu-
ARCHITETTURA SIGMA-DELTA nuovamente sottratto e così via fino a more e intrinseca monotonicità dei co- ralmente dall’applicazione in esame.
Il convertitore prende il nome da un’ar- ottenere tutti i bit di risoluzione. Un fil- dici generati. Si presta bene alla digi- Abbiamo già visto come ogni architet-
chitettura di modulatore Delta modifi- tro digitale passabasso calcola il valo- talizzazione ad alta risoluzione di segnali tura risulti più adeguata a una certa
cata, dove anziché l’intero valore as- re medio su un numero determinato di di bassa frequenza ed è molto usato gamma di velocità di acquisizione.
soluto sono quantizzate e trasmesse campioni e restituisce in uscita il dato come convertitore a bassa distorsione Grossolanamente, dal più lento al più
le variazioni di livello tra campioni suc- convertito in digitale sugli n bit di ri- di segnali audio. veloce, potremmo elencare ADC a In-

13 FOCUS ON 18 SKILLS 33 INSIDE 44 TOOLS 67 ANALOG

7 TIPS’N TRICKS 3 MARKET NEWS 41 SPOTLIGHT 71 EVENTS ZAPPING ABBONAMENTO


Repcom – sensori industriali

tegrazione, Convertitori V-F, ADC Sigma- impone la scelta di convertitori dispo-


Delta, SAR e FLASH. Considerando il nibili in commercio a 16 bit, capaci di of-
controllo di processo, la precisione dei frire risoluzioni di una parte su 65.536.
sensori in campo industriale è spesso Analisi similari condotte sulla vostra
nell’ordine dello 0,5%, pari a una parte applicazione determinano le caratteri-
su 200.
stiche del convertitore da impiegare.
Poiché occorre tenere conto degli errori
aggiunti dalla catena di misura e con-
SORGENTI DI ERRORI NEGLI ADC
versione, si assume spesso come regola
Molteplici sono le sorgenti di errore
la scelta di una risoluzione del conver-
titore pari a dieci volte la risoluzione per gli ADC. Analog Devices arriva a
utile del sensore (cioè quella definita elencarne quindici! Abbiamo già visto
dal suo errore massimo garantito da l’errore di quantizzazione, intrinseco in
specifica). ogni processo di conversione dal mon-
Avremmo quindi una parte su 2000; do analogico a digitale.
questo porta a scegliere convertitori I principali altri errori derivano dalla
da 12 bit che, con risoluzioni di una precisione in continua (offset, guada-
parte su 4096, costituiscono l’offerta gno), da limitazioni dinamiche (distor-
di mercato più prossima e più popolare. sione armonica, rapporto segnale ru-
Criteri addizionali potrebbero essere
more, intermodulazione ecc.) e
generati dall’interesse ad apprezzare
dall’integrazione nel sistema (aliasing,
piccole variazioni, più che il valore as-
rumore sovrapposto). Tutto questo
soluto della grandezza sotto controllo,
può far sì che nell’applicazione finale
oppure a esigenze di visualizzazione
(stabilità della lettura su un display). o in certe gamme di funzionamento
Segnali variabili, ad esempio segnali non stiamo utilizzando al meglio il no-
audio, possono richiedere di garantire stro convertitore. Riprenderemo l’ar-
0,1% di distorsione a piccoli segnali, gomento ed entreremo in dettaglio nel
ad esempio pari al 5% del fondo scala. prossimo Tips’n tricks.
Questo equivale a una parte su 20.000 e Codice mip 2803563

13 FOCUS ON 18 SKILLS 33 INSIDE 44 TOOLS 67 ANALOG

7 TIPS’N TRICKS 3 MARKET NEWS 41 SPOTLIGHT 71 EVENTS ZAPPING ABBONAMENTO


Virtualizzazione nei sistemi
Gli ambienti a virtualizzazione, in sé, è un con-
di virtualizzazione L cetto già presente nella realtà; in ef-
rappresentano le risposte fetti, i sistemi operativi, e in modo par-
ticolare quelli di ultima generazione,
più decise ai requisiti
prevedono nella loro architettura inter-
di sicurezza e di affidabilità: na la presenza di meccanismi in grado
elementi essenziali e richiesti di assicurare il funzionamento di mac-
sempre con maggiore chine virtuali, ossia nel simulare uno
spazio di memoria maggiore di quello fi- Figura 1:
insistenza dal mercato
le due proposte
sicamente presente o nella garanzia di
virtuali. 
conciliare codice legacy con i nuovi re-
di FRANCESCO PENTELLA quisiti di sicurezza. Il tutto è garantito In buona sostanza, al fine di realizzare tualizzata siano eseguibili senza l’in-
grazie all’uso di dispositivi hardware, un ambiente virtuale, è necessario per- tervento dell’ambiente di virtualizza-
quali MMU, in una gestione più effi- seguire diverse funzionalità, oltre al- zione.
ciente dei processi presenti in memoria l’equivalenza, al controllo delle risorse Nella maggior parte dei casi si tende a
e nella presenza di un nuovo strato soft- e all’efficienza. Nel primo caso, attra- utilizzare un approccio software, an-
ware che permette di gestire una se- verso l’equivalenza, è necessario ga- che se poi si ricorre in realtà a una rea-
parazione funzionale da differenti esi- rantire il medesimo livello funzionale lizzazione ibrida. In sostanza, per rea-
genze. tra l’ambiente virtuale e una macchina lizzare una virtualizzazione delle risorse
Di solito quando si parla di virtualizza- fisica equivalente, mentre, con il con- si tende a implementare una Virtual Ma-
zione, in letteratura, si tende a riferirsi trollo delle risorse, l’ambiente di vir- chine Manager (VMM), ossia uno strato
alle linee guida messe a punto da Popek tualizzazione deve possedere il com- di software che si interpone tra l’har-
e Goldberg, due ricercatori, rispettiva- pleto controllo delle risorse virtualizzate; dware fisico e le virtual machine. Il fine
mente, dell’Università della California e infine, con l’efficienza, occorre garantire è quello di implementare un efficiente
dell’Università di Harvard. che le istruzioni della piattaforma vir- duplicato di una macchina reale tanto

13 FOCUS ON 18 SKILLS 33 INSIDE 44 TOOLS 67 ANALOG

7 TIPS’N TRICKS 3 MARKET NEWS 41 SPOTLIGHT 71 EVENTS ZAPPING ABBONAMENTO


microchip

Figura 2:
meccanismo
assistito
dall’hardware. 

che ogni utente, o programma, di una orientata ad acquisire ed elaborare se-


virtual machine, può installare un di- gnali. Possiamo senza dubbio afferma-
verso sistema operativo e avere l’im- re che un Hypervisor realizza un livello
pressione di essere l’unico utilizzatore di astrazione tra l’hardware reale del-
dell’intero sistema. Tale tecnica, utiliz- l’elaboratore, su cui funziona, e l’am-
zata per permettere la condivisione tra biente virtuale, in modo da far credere di
più utenti di un’unica macchina, è rea- aver a disposizione tutte le risorse har-
lizzata grazie a un software chiamato dware: tutti gli accessi sono mediati ri-
Hypervisor o virtual machine. correndo a un particolare software di in-
In definitiva, la virtualizzazione è una terfaccia. L’Hypervisor realizza queste
tecnologia che consente l’esecuzione, operazioni in diversi modi a seconda
in modo contemporaneo, di più di un si- del sistema di virtualizzazione utilizza-
stema operativo perché lo strato soft- to, oltre a risolvere tutte le eventuali
ware che consente questa particolarità eccezioni che possono accadere quan-
è un hypervisor (equivalentemente no- do una virtual machine prova a esegui-
to come monitor della macchina vir- re un’istruzione privilegiata o quando
tuale o VMM). Grazie a questa partico- avviene una failure del sistema.
larità, l’Hypervisor può rendere possibili La tecnologia Hypervisor può essere
progetti con differenti applicazioni: una divisa concettualmente in due grandi
sezione che si occupa di computazione, famiglie (figura 1), a seconda della par-
un’altra che gestisce una particolare ticolarità utilizzata. Esistono, in prima
interfaccia utente e un’altra ancora è istanza le macchine virtuali di tipo nativo

13 FOCUS ON 18 SKILLS 33 INSIDE 44 TOOLS 67 ANALOG

7 TIPS’N TRICKS 3 MARKET NEWS 41 SPOTLIGHT 71 EVENTS ZAPPING ABBONAMENTO


o bare-metal, ossia le virtual machine concedere questo livello di controllo a
sono eseguiti direttamente utilizzando le un sistema operativo guest è necessa-
risorse hardware della macchina host e rio prevedere un meccanismo che ga-
non si appoggiano ad alcun software rantisca il controllo di queste attività: in
sottostante; in questa prospettiva, questi casi viene usata la tecnica del
l’Hypervisor bare-metal è posto in ese- ring deprivileging. Non solo, la tecno-
cuzione senza un sistema operativo logia VT-x di Intel, introduce due nuove
che lo ospita con la possibilità di ac- modalità di esecuzione per il proces-
cedere alle diverse risorse hardware. Figura 3: sore: la VMX root operation e la VMX
Al contrario, quelle di tipo hosted sono, PikeOs.  non-root operation. La prima permette di
in realtà, applicazioni che vengono ese- riprodurre, in maniera simile, il com-
guire sulla macchina host ma in modo guita a blocchi di codice. Da un punto di siddetta hardware-assist, ossia sul so- portamento dei processori IA-32 senza
tale che software di virtualizzazione, vista implementativo, questa tecnica stegno dell’hardware grazie anche alla VT-x, ed è una modalità di funziona-
Hypervisor e sistema operativo host, prevede una traduzione a run-time, tra- tecnologia utilizzata dai processori Intel mento pensata a uso del VMM. La se-
siano eseguiti su livelli diversi; in ef- duzione dinamica, del codice destinato o AMD (figura 2). Da diversi anni i mag- conda modalità di operazione, invece,
fetti, l’Hypervisor, denominato anche all’architettura hardware. In pratica, giori produttori di CPU di largo consumo fornisce un ambiente di esecuzione con-
macchina virtuale, lavora su una o più poiché il codice del sistema operativo hanno introdotto nei propri processori trollato da un VMM ed è pensata per
istanze del sistema in cima a un sistema non viene modificato, tutte le parti di co- estensioni che facilitano la gestione facilitare la creazione delle macchine
operativo “host”. dice che contengono operazioni privi- delle macchine virtuali e consentono di virtuali. In entrambe le modalità sono
legiate, e che quindi richiedono l’inter- superare il degrado delle prestazioni. presenti i quattro livelli di privilegio.
LE VIRTUAL MACHINE vento del VMM, devono essere In questa particolare tecnica diventa AMD, al contrario, ha pensato alla sua
Esistono diverse tecniche fondamen- interpretate per inserirvi dei riferimenti indispensabile gestire e definire un cor- Pacifica Virtualization Technology: l’istru-
tali per realizzare la virtualizzazione Hy- alla VM. Questa particolare soluzione in- retto livello di privilegio. In questo caso, zione VMRUN permette di passare dalla
pervisor. Per esempio, una particolare troduce però un overhead più elevato. È i processori dell’architettura IA32 sup- modalità in cui viene eseguito il flusso di
tecnica presume di sfruttare la tradu- necessario, al fine di realizzare un’im- portano politiche di protezione che uti- istruzioni dell’“host” a quella in cui ven-
zione binaria, o binary translation, cam- plementazione di questo tipo, inserire, lizzano il concetto di ring. A ogni ring è gono eseguite le istruzioni del “guest” e,
biando le istruzioni privilegiate, ad tra processore e macchina virtuale, un associato un livello di privilegio: il soft- una volta che il “guest” ha terminato,
esempio, al volo in modo che sistemi interprete. È anche possibile, però, ri- ware eseguito al livello 0 ha privilegi si ritorna all’istruzione dell’“host” se-
operativi multipli possano coesistere correre a una traduzione statica; in altre più alti, mentre quello con il livello 3 guente la VMRUN. La tecnologia Intel-
senza conflitti. In altre parole, la tra- parole prima dell’esecuzione viene ese- più bassi. Il livello di privilegio deter- VT consente alla CPU di agire come se
duzione binaria è la traduzione di un guita una traduzione dal codice sor- mina, ad esempio, la corretta esecu- il sistema fosse dotato di più CPU che
codice macchina da uno specifico co- gente al codice destinazione ed è al- zione delle istruzioni privilegiate se- lavorano in parallelo e questo rende
dice binario sorgente a un generico co- ternativa a quella dinamica, ossia il condo i particolari criteri adottati. Per possibile l’esecuzione di più sistemi
dice macchina destinazione. Il codice codice macchina, attraverso stream di ottenere il controllo del processore, il si- operativi contemporaneamente sulla
tradotto è memorizzato ed eseguito a dati esadecimali, viene interpretato in stema operativo deve poter essere ese- stessa macchina fisica. Intel-VT esten-
ogni richiesta di un’istruzione privile- fase di run-time. guito al livello di privilegio 0 ma poiché de il set ISA con diverse nuove istruzioni
giata e la traduzione è, in genere, ese- Un’altra soluzione è ricorrere alla co- in un ambiente VMM non è possibile specificatamente realizzate per la vir-

13 FOCUS ON 18 SKILLS 33 INSIDE 44 TOOLS 67 ANALOG

7 TIPS’N TRICKS 3 MARKET NEWS 41 SPOTLIGHT 71 EVENTS ZAPPING ABBONAMENTO


tualizzazione, quali VMPTRLD, VMREAD maggior parte delle distribuzioni in-
o VMPTRST. Esiste anche la nuova mo- stallate nei PC. Usando KVM possono
dalità operativa chiamata VMX root nel- essere eseguite più virtual machine ba-
la quale il VMM è eseguito con privilegi sate su GNU Linux o Microsoft Win-
massimi, eliminando la necessità di de- dows senza modificarne le immagini e
privilegiare il kernel del sistema ope- ogni virtual machine ha il suo hardware
rativo guest che opera nella modalità virtualizzato. VMware è stata la prima
VMX non–root. azienda a proporre un prodotto volto
Esiste un’altra possibilità: la paravir- alla virtualizzazione e, attraverso l’uti-
tualizzazione, ossia alcuni Hypervisor lizzo di driver standard, permette la
forniscono alcune API che gli svilup- portabilità delle macchine virtuali tra
patori possono utilizzare per chiamare più sistemi. Per le applicazioni più squi-
i suoi servizi. Questa tecnica, chiamata sitamente embedded possiamo, senza
paravirtualizzazione, può portare a pre- dubbio, ricordare PikeOs o LynuxWorks.
stazioni superiori rispetto alle prece-
denti, quali traduzione binaria o assi- PikeOs
stenza dell’hardware. Figura 4: LynxSecure.  PikeOS è una piattaforma messa a pun-
In questo modo, l’Hypervisor mostra to per realizzare lo sviluppo di sistemi
alle macchine virtuali una versione vir- embedded, dove più sistemi operativi e
tuale dell’hardware sottostante, man- In particolare, un Hypervisor è un par- LE PROPOSTE applicazioni possono essere messe in
tenendone tuttavia la medesima archi- ticolare tipo di sistema operativo che Esistono diverse proposte: da soluzio- esecuzione in modo simultaneo in un
tettura di quella reale, quindi si ha viene eseguito direttamente sull’har- ni open source fino a quelle più squisi- ambiente definito sicuro. L’architettura Pi-
qualche similitudine con il sistema pre- dware: crea un’astrazione della piatta- tamente commerciali. Xen, ad esem- keOS si basa su un microkernel com-
cedente, ma si rende necessario modi- forma hardware sottostante in modo pio, è composto da un Hypervisor che patto ed estremamente ridotto con una
ficare il sistema operativo in esecuzio- che possa essere utilizzata da una o permette di eseguire diversi sistemi serie di servizi in grado di assicurare la
ne sulle macchine virtuali per evitare più macchine virtuali (VM) senza sape- operativi sulla stessa macchina, in ma- gestione di ogni funzionalità. In PikeOs
l’esecuzione di alcune particolari istru- re nulla delle macchine virtuali che con- niera concorrenziale: il sistema di vir- sono utilizzati di due concetti, ovvero
zioni privilegiate. Non viene invece mo- dividono la piattaforma. Una VM, in tualizzazione non è installabile su un task e thread. Nel primo caso, con thre-
dificata l’Application Binary Interface questo contesto, è semplicemente un sistema operativo già configurato, ma lo ad si suole identificare una porzione di
(ABI) e ciò consente di eseguire le ap- contenitore per un sistema operativo sostituisce prendendo direttamente il codice che, ogni volta che viene messo in
plicazioni senza modifiche. e delle sue applicazioni. In questo mo- controllo dell’hardware della macchi- esecuzione dal kernel, ha il pieno ac-
do una macchina virtuale è isolata da al- na. Questo consente un consumo mi- cesso ai dati e allo stack: in sostanza, il
VIRTUAL EMBEDDED tre macchine virtuali in esecuzione sul- nimo di risorse ed elevate performance. thread è l’entità di base nel contesto Pi-
La presenza di un Hypervisor in un si- l’Hypervisor tanto che possono esserci Kernel-based Virtual Machine, o KVM, è keOs. Ad ogni thread è associata una
stema embedded aggiunge flessibilità e più sistemi operativi, o meccanismi sup- un sistema di tipo full-virtualization time partition, mentre un task è, tipica-
una capacità superiore offrendo mag- porto per i sistemi operativi, con confi- esclusivamente per GNU Linux, su piat- mente, una resource partition. Al con-
giore robustezza e funzionalità. gurazioni diverse. taforma x86 ed è già presente nella trario, un task identifica uno spazio di-

13 FOCUS ON 18 SKILLS 33 INSIDE 44 TOOLS 67 ANALOG

7 TIPS’N TRICKS 3 MARKET NEWS 41 SPOTLIGHT 71 EVENTS ZAPPING ABBONAMENTO


verso, ossia un address space distinto e teressante perché implementa in primo possibilità di utilizzare multipli OS inter- ria hard real-time, assicura anche la ri-
condiviso da tutti i thread che utilizzano luogo quello che viene chiamato una se- faces, chiamate Personalities, e di lavo- spondenza agli standard quali Arinc 653
quel task. Il kernel di PikeOs offre un parazione del kernel: come un Hypervisor, rare su gruppi separati di risorse all’in- e Posix ed è particolarmente rivolto alle
multitasking con uno scheduling di tipo una partizione del kernel isola in modo si- terno di una singola macchina. Tra le realizzazioni di tipo multi partizione. Ad
priority-based con il pieno supporto del- curo gli ambienti per gli ospiti, guest, di Personalities possiamo ritrovare pac- ogni modo, LynxSecure offre anche una
la gestione delle risorse. Il software di si- livello superiore. PikeOS viene utilizzato, chetti quali Linux, POSIX, RTEMS, connettività integrata di rete consenten-
stema di PikeOS (PSSW) offre diversi tipicamente, nel settore avionico per ap- ARINC-653. Per via della separazione do alle applicazioni di comunicare in mo-
servizi al pari di un comune sistema ope- plicazioni safety-critical (figura 3). Al- delle risorse imposte dal microkernel Pi- do trasparente via TCP/IP con altri si-
rativo commerciale e garantisce anche la l’interno dello spazio riservato al kernel, keOS, diverse applicazioni con requisiti stemi operativi virtualizzati, come Linux,
gestione delle partizioni, ossia ambienti PikeOS implementa una serie di pac- differenti in fatto di sicurezza e apparte- in esecuzione in una partizione separata.
sicuri dove poter eseguire applicazioni chetti software di supporto per l’archi- nenti ad altre Personalities sono in grado Questa sicura comunicazione intra-par-
dedicate e magari costruiti con diversi si- tettura e la piattaforma utilizzata: da x86 di coesistere sulla stessa piattaforma tizione è gestita interamente da Lyn-
stemi operativi. In PikeOs il software di si- a PowerPC passando per SuperH. Pi- hardware. xSecure, senza modificare le applica-
stema, al momento del boot, definisce la keOS supporta non solo i sistemi ope-
zioni o il sistema operativo virtualizzato.
configurazione dell’ambiente di lavoro rativi guest (con le applicazioni associa- LYNUXWORKS
LynxSecure 3.1 introduce il supporto
recuperando i parametri per tutti i servi- te), ma può anche gestire ambienti per un LynxSecure di LynuxWorks rappresenta
verso Windows 7, Windows Vista e Win-
zi PSSW dalla tabella di inizializzazione dominio specifico (come l’interfaccia na- la risposta più diretta che l’azienda ame-
dows 2003, che sono gestiti come si-
della macchina virtuale (VMIT). Gli erro- tiva PikeOS o il real-time di Java). Lo ricana offre per il mercato embedded
stemi operativi guest completamente
ri che si verificano durante questo stato strato software di sistema di PikeOS al- (figura 4). In base alle specifiche emes-
virtualizzati, aggiungendo al già prece-
sono riportati al sottosistema del PSSW loca le risorse (in termini di spazio e di se dal produttore LynxSecure può girare
dente supporto di Windows XP offerto
o al software di monitoring. Al termine tempo) per le applicazioni definite co- su qualsiasi processore a 32-bit o 64-
nella versione 3.0.
della fase di configurazione iniziale alle me guest. Recentemente, SysGo con bit con MMU e assicura un elevato grado
Codice MIP 2803599
singole partizioni sono assegnate le ri- l’annuncio del suo nuovo SSV, Safe and di compatibilità binaria tra un sistema
sorse richieste e successivamente si po- Secure Virtualization, è anche in grado di operativo stand-alone e la sua versione
ne in esecuzione un processo demone. Il assicurare il supporto verso Android co- virtualizzata. LynxSecure si basa su stan-
processo è posto in esecuzione in base me sistema operativo Guest o “Perso- dard aperti, ma offre anche un estremo
a proprietà definite in modo statico già in nality”. Grazie a questa nuova possibili- grado di sicurezza e funzionalità ade-
fase di inizializzazione del sistema, in tà, la tecnologia PikeOS permette alle rendo allo standard MILS ed è stato rea-
accordo alle informazioni riportate nella applicazioni Android di funzionare in lizzato per essere certificabile a EAL 7 +.
VMIT, rispettando tempi e il partiziona- concomitanza con gli altri ambienti ese- In realtà LynyxWorks commercializza di-
mento. Successivamente tutti i processi cutivi rispettando i requisiti di sicurezza verse proposte in grado di rispondere a
applicativi sono inseriti in memoria e po- e permettendo il partizionamento stretto differenti requisiti. Pensiamo a LynxOs
sti in esecuzione, se richiesto. Le diver- tra le applicazioni critiche e non criti- che si rivolge al segmento hard real-time
se applicazioni presenti possono usu- che. Gli sviluppatori di Android possono e assicura anche la compatibilità Abi,
fruire dei servizi PSSW per mezzo ora combinare i requisiti di real-time con Application Binary Interface, ed è pie-
dell’apposita libreria. In definitiva, Pike- il codice legacy o protetto. Con le ultime namente conforme Posix. Non solo, la va-
OS è, senza dubbio, un’architettura in- versioni di PikeOs si intende assicurare la riante LynxOS-Se, sempre della catego-

13 FOCUS ON 18 SKILLS 33 INSIDE 44 TOOLS 67 ANALOG

7 TIPS’N TRICKS 3 MARKET NEWS 41 SPOTLIGHT 71 EVENTS ZAPPING ABBONAMENTO


+ Skills Android per sistemi embedded PRIMA PARTE

APPLICAZIONI
VIDEO LOW POWER
CON PFGA
Come usare
Android, fin dall’inizio, ha catalizzato l’interesse di aziende e sviluppatori. Infatti da sempre questa piattaforma
le FPGA Igloo
software è stata costantemente migliorata sia in termini di caratteristiche sia di hardware supportato e, allo stesso
per l’acquisizione
tempo, si è cercato di assicurare la sua compatibilità verso nuovi dispositivi e applicazioni
ed elaborazione
di immagini
e per il controllo di FRANCESCO PENTELLA
di display LCD.
ndroid occupa una significativa
A quota di mercato nel segmento.
Tuttavia una sua importante caratteri-
COMPONENTI PER stica non è stata ancora sufficiente-
LO SVILUPPO DI mente considerata: le sue eventuali ap-
plicazioni di tipo real-time in ambito
APPLICAZIONI USB
embedded. Sappiamo che Android è
Una rassegna
una piattaforma open source inizial-
di componenti mente prevista in àmbito della telefonia,
che facilitano basata sul sistema operativo Linux e
l’implementazione sviluppata dall’Open Handset Alliance.
della comunicazione La piattaforma mette a disposizione li-
USB. brerie dedicate – come il database
SQLite o SGL e le OpenGL per le appli-
cazioni in àmbito grafico, – un appli-
cation framework, la Dalvik virtual ma-
chine (una Java virtual machine
modificata) come ambiente di runtime e
una serie di applicazioni preinstallate.
Il sistema operativo è stato reso pub-
blico nell’autunno del 2008 e, da allora, Figura 1: stack di Android. 

13 FOCUS ON 18 SKILLS 33 INSIDE 44 TOOLS 67 ANALOG

7 TIPS’N TRICKS 3 MARKET NEWS 41 SPOTLIGHT 71 EVENTS ZAPPING ABBONAMENTO


sta guadagnando sempre più forza nel e per i driver utilizzati, tanto che alcuni
settore della telefonia e nel settore dei ritengono che la soluzione migliore sia
tablet su differenti architetture har- quella di utilizzare un sistema operativo
dware. Il primo dispositivo mobile do- commerciale e certificato.
tato della piattaforma Android è stato il Android non è un sistema operativo
T-Mobile G1, prodotto dalla società tai- propriamente detto perché, in realtà, è
wanese HTC e commercializzato dal una suite di strumenti e librerie per rea-
carrier telefonico T-Mobile: la nuova lizzare applicazioni mobile. In effetti,
soluzione è stata presentata il 23 set- analizzando la sua architettura, si sco-
tembre di tre anni fa a New York. pre che Android è una piattaforma di la-
Oggi l’interesse crescente da parte del- voro che offre allo sviluppatore, o a un
l’industria nasce per due aspetti fon- vendor di dispositivi, tutto ciò di cui ha
damentali: la sua natura open source e bisogno per realizzare l’obiettivo pre-
il suo modello architetturale. Infatti, posto. Android è un sistema open sour-
grazie alla particolarità di essere un ce fornito dalla Open Handset Alliance:
prodotto open source, Android può es- la piattaforma comprende un sistema
sere completamente studiato e com- operativo, middleware e applicazioni.
preso, insieme con la possibilità di ge- L’architettura di Android si presenta
stire e implementare direttamente nuove suddivisa in cinque livelli, come mo-
funzionalità o trattare il bug fixing in strato in figura 1, ovvero lo strato di Li-
totale autonomia. Figura 2: nux, le librerie, la parte di Runtime, le
Non solo, non si deve trascurare la pos- file dex.  Application Framework e, per ultimo,
sibilità di poter effettuare il porting ver- le applicazioni propriamente dette.
so soluzioni architetturali diverse o cu- tuale presenta caratteristiche non an- multimediale o se si ha necessità di ge-
stom. cora prese seriamente in considerazio- stire particolari risorse che devono ga- IL SISTEMA OPERATIVO
D’altra parte, l’apporto del kernel di Li- ne, inclusa la possibilità di utilizzare rantire precise richieste temporali. Il sistema operativo, il kernel di Linux, si
nux in Android ci permette di sfruttare le Android in ambienti di tipo real-time. basa sulla versione 2.6.x ed è utilizzato
conoscenze a suo tempo acquisite as- In effetti, esistono serie ragioni di fatti- L’ARCHITETTURA DI ANDROID come livello di astrazione hardware.
sieme alle sue funzionalità, estrema- bilità, anche per via dell’esperienza ac- Android, come Linux, non è un siste- Questo strato comprende i servizi e i
mente interessanti: entrambi questi cumulata su lavori già svolti sul kernel di ma in tempo reale. Di certo, è possibile driver per i dispositivi principali come il
aspetti fanno di Android un target inte- Linux o nella gestione della memoria portare Android in un contesto real-time Wi-Fi, la videocamera, l’audio e le me-
ressante da utilizzare in ogni ambiente in altri ambienti VM, per ritenere fattibile e deterministico, ma questo è un com- morie flash o la gestione dei processi.
di lavoro. l’eventuale rispetto dei vincoli temporali pito non privo di rischi e costi. In ef- Non è una vera distribuzione Linux: il
Le applicazioni Android sono basate al fine di utilizzarlo su sistemi embedded fetti può anche succedere che, una vol- modulo non supporta le glibc o le nati-
su Java e questo comporta l’uso di un real-time, e questa particolare scelta ta terminato il porting, il lavoro ultimato ve windowing system, e non compren-
ambiente VM, una virtual machine, con diventa oggi indispensabile se si vo- presenti seri problemi d’incompatibilità, de alcune utilities già presenti in una
vantaggi e problemi noti. Allo stato at- gliono utilizzare applicazioni di tipo per via delle nuove prestazioni ricavate distribuzione standard. Alcuni hanno

13 FOCUS ON 18 SKILLS 33 INSIDE 44 TOOLS 67 ANALOG

7 TIPS’N TRICKS 3 MARKET NEWS 41 SPOTLIGHT 71 EVENTS ZAPPING ABBONAMENTO


stimato la presenza di almeno 115 patch discapito di una maggiore elaborazione
per garantire il supporto verso Android. in fase di compilazione.
Tra i moduli opportunamente inseriti La DVM permette, inoltre, una maggio-
nel kernel Linux spiccano le IPC bin- re efficacia in esecuzione di più pro-
der o il Power Management. L’IPC, o cessi contemporaneamente. Infatti cia-
Inter Process Communication, offre un scuna applicazione sarà in esecuzione
sistema che permette di gestire le Inter all’interno del proprio processo Linux;
Process Communication (IPC), simile ciò comporta alcuni vantaggi dal punto
agli standard CORBA e Java RMI per Si- di vista delle performance e allo stesso
stemi Distribuiti. L’IPC binder nasce da tempo qualche implicazione dal punto di
un vecchio progetto open source e, co- vista della sicurezza.
me tale, ha diversi limiti che però pos- Figura 4: real-time esteso. 
Figura 3: Android full real-time. 
sono essere trascurati in un sistema L’APPLICATION FRAMEWORK
non real-time. L’application framework è costituito da
ra e una integrità dei dati su reti TCP/IP funzionare anche su piattaforme con
A questo proposito possiamo indivi- un insieme di API che sfruttano le li-
o la SQLite, una libreria in-process che risorse limitate e rappresenta un’otti-
duare almeno due possibili problemi in brerie sottostanti dello stack Android e
implementa un DBMS relazionale. mizzazione della macchina virtuale di
fatto di sicurezza: il ruolo e il funzio- permettono allo sviluppatore di realiz-
La SQLite non ha la necessità di esse- Sun Microsystem, che permette di sfrut-
namento delle Application e delle Ser- zare applicazioni estremamente ricche
re configurata e risulta abbastanza tare al massimo le caratteristiche del
vices che, seppur possano essere mes- e innovative. Lo strato Application Fra-
se in esecuzione in processi separati, compatta perché è realizzata in C in sistema operativo ospitante. mework comprende tutti i server messi
devono potersi scambiare i dati duran- modo da utilizzare solo poche delle In Dalvik è possibile includere più clas- in esecuzione nell’ambiente Android,
te il normale funzionamento, oltre al si- funzioni ANSI per la gestione della me- si in un unico file, oltre alla possibilità di sviluppati alla pari delle applicazioni
gnificativo overhead introdotto. moria. Non solo, la SQLite non utilizza eseguire ottimizzazioni durante la ge- che gestiscono attivamente le funzio-
alcun processo separato per operare nerazione del file da elaborare. nalità del sistema operativo.
LE LIBRERIE ma coesiste nello stesso spazio del Il file .dex, figura 2, può anche vantare Possiamo ricordare le Activity Mana-
L’altro strato dell’architettura è identi- processo dell’applicazione che lo usa, un buon rapporto di compressione, il ger o il Package Manager. Il primo è un
ficato dalle librerie; in effetti, sopra il la- da cui il termine in-process. che consente di dimezzare lo spazio modulo che si occupa della gestione
yer costituito dal kernel di Linux 2.6 adibito alla memorizzazione, rispetto delle activity, ovvero quelle entità che
abbiamo un insieme di librerie native IL RUNTIME ai file jar non compressi. La riduzione permettono all’utente finale di interagire
realizzate in C e C++ che rappresenta- Il Runtime di Android è costituito dalla dello spazio utilizzato deriva dal fatto con l’applicazione. Il suo compito è di
no il core vero e proprio di Android. Dalvik Virtual Machine anche se non è che stringhe e costanti presenti in più gestire il ciclo di vita delle activity e di
Possiamo trovare la Libc, ossia l’im- strettamente una macchina virtuale Ja- classi vengono incluse solo una volta organizzare le loro schermate in uno
plementazione della libreria standard va. La Dalvik è stata progettata in modo nel singolo file .dex. stack secondo l’ordine di visualizza-
C ottimizzata per i dispositivi basati su specifico per Android e si basa non sul La VM di Android si basa su un’archi- zione sullo schermo. Il Package Mana-
Linux embedded o la SSL, libreria per la concetto di stack ma su quello di regi- tettura a registri, ciò significa che ri- ger gestisce il processo di installazione
gestione dei Secure Socket Layer. La stro. In effetti, la Virtual Machine pre- chiede il 30% di istruzioni in meno ri- e di rimozione di un’applicazione. Esiste
SSL assicura una comunicazione sicu- sente in Android deve essere in grado di spetto a una macchina a stack, a anche il modulo Window Manager, ossia

13 FOCUS ON 18 SKILLS 33 INSIDE 44 TOOLS 67 ANALOG

7 TIPS’N TRICKS 3 MARKET NEWS 41 SPOTLIGHT 71 EVENTS ZAPPING ABBONAMENTO


millennium dataware – produzione circuiti stampati

un server che gestisce lo schermo o il sti e alla loro deadline. In effetti, quan-
Resource Manager, che svolge il lavoro do si parla di real-time si vuole intendere
di gestore delle risorse di sistema. che il sistema deve essere in grado di
garantire la risposta a un evento, ossia
LE APPLICAZIONI che questa sia evasa in un determinato
All’ultimo livello dello stack architettu- intervallo temporale: real-time non è
rale di Android troviamo le applicazioni. sinonimo di veloce, semmai di deter-
In questo strato si trova un certo nu- ministico. Nei sistemi di tipo hard real-
mero di applicazioni che sono regolar- time il sistema di controllo completa la
mente distribuite con Android. Queste sua attività entro il tempo stabilito dal-
possono sovrintendere alle diverse fun- la specifica, mentre quelli di tipo soft re-
zionalità quali e-mail, SMS o browser al-time non devono garantire la risposta
web. In Android le applicazioni sono entro certi vincoli temporali, anche se
scritte in linguaggio Java; il bytecode questa deve comunque avvenire. Per
compilato e le risorse necessarie alla questa ragione in un sistema hard real-
singola applicazione vengono riuniti time la tolleranza è zero per non pro-
con l’ausilio del tool aapt in un pac- vocare una fault di sistema. Pensiamo a
chetto .apk (Android Package). È questa un sistema di arresto di una vettura: i
la forma in cui una applicazione può dati devono essere garantiti in un de-
essere distribuita e installata in un di- terminato intervallo temporale indipen-
spositivo reale. dentemente dal carico dell’elaboratore.
Ogni applicazione in esecuzione nel si- Abbiamo affermato che Android si basa
stema operativo, se lanciata, esegue su versione 2.6 di Linux: la riscrittura
un proprio processo Linux in seno a dell’algoritmo di scheduling è stata uno
una propria istanza JVM privata; lo User dei più importanti cambiamenti nel pas-
ID del processo viene assegnato da saggio a Linux 2.6.
Android in modo univoco nell’insieme Ricordiamo che lo scheduling è un al-
dei processi in esecuzione (se non espli- goritmo software utilizzato allo scopo di
citamente definito) e i permessi dei file assegnare al meglio il carico di CPU. Per
vengono impostati così che ogni ap- eseguire quest’operazione occorre de-
plicazione non possa accedere diret- cidere di assegnare il processore fisico
tamente a risorse non proprie. a un processo pronto per l’esecuzio-
caratterisitche real-time ne. A ogni processo corrispondono due
Seguendo le indicazioni presenti in let- parametri fondamentali: la politica di
teratura possiamo certamente dividere schedulazione e la priorità. La versione
i sistemi in tempo reale in due grandi fa- standard del kernel di Linux permette tre
miglie secondo la loro tolleranza ai gua- politiche di schedulazione, divise in

13 FOCUS ON 18 SKILLS 33 INSIDE 44 TOOLS 67 ANALOG

7 TIPS’N TRICKS 3 MARKET NEWS 41 SPOTLIGHT 71 EVENTS ZAPPING ABBONAMENTO


volta che avveniva uno switch di pro- tare una possibile pluralità di CPU; ogni duler assegna la CPU a un processo
cesso, il kernel controllava la lista dei core infatti dispone della sua lista di appartenente a questa classe, viene la-
processi running, aggiornava le loro processi runnable. In questa versione è sciato il rispettivo descrittore di pro-
priorità e selezionava, eseguendolo, il stata anche migliorata la distinzione cesso nella runqueue list. Se non ci so-
processo da mettere in esecuzione. tra processi batch e processi interatti- no altri processi real-time con priorità
Una gestione di questo tipo conduce, vi. In ambiente Linux ogni processo è maggiore, il task è posto in esecuzione
però, a spendere parecchio dal punto di schedulato in accordo a una partico- fino a quando non si sospende, anche
vista computazionale. In questo con- lare classe di schedulazione. La classe se sono disponibili processi con la stes-
testo, lo scheduler era del tipo O(n), SCHED_RR risulta simile alla politica sa priorità. Un processo continua a
ossia più task sono presenti nel sistema FIFO anche se il processo scelto dallo mantenere il controllo della CPU fino a
e più tempo è richiesto dallo scheduler schedulatore può funzionare solo per un quando non diventa eseguibile un altro
Figura 5: per effettuare la scelta del processo periodo massimo di tempo, scaduto il processo con priorità statica più ele-
Android parzialmente real-time.  migliore. quale il controllo passa a un altro pro- vata.
Fino alla versione 2.4 il kernel Linux si cesso e quando tutti i processi hanno Quando un processo FIFO diventa ese-
può considerare come un sistema di esaurito il proprio quanto temporale guibile allora questo è messo in fondo
tipo preemptible per quanto riguarda i tutti i contatori vengono re-inizializzati. alla lista di processi eseguibili con prio-
processi: a un processo può essere tol- La classe SCHED_RR appartiene a una rità pari alla sua. Un unico processo
to il controllo anche se il processo stes- classe di processi real-time con ge- può controllare la macchina per il 100%
so non lo concede esplicitamente. stione Round Robin. Il suo funziona- del tempo.
Al contrario, il kernel di Linux non è mento è abbastanza semplice: quan- Infine, la SCHED_NORMAL è una clas-
preemptible, ossia lo scheduler può do viene assegnata la CPU a uno di se per processi convenzionali di tipo
funzionare solo in alcuni momenti pre- questi processi, lo scheduler mette il time-shared. In questo caso si utilizza la
definiti oppure quando il kernel volon- rispettivo descrittore di processo in co- priorità dinamica, un valore di base
tariamente ne invoca l’esecuzione. Que- da alla runqueue list così da assicurare sommato al numero di tick mancanti
st’ultima particolarità può evidenziare un un’assegnazione della CPU equa ai pro- all’esaurimento del time quantum per il
potenziale problema, anche un pro- cessi di questa classe. processo, e il time quantum per deci-
cesso “real-time” deve attendere che lo Con la classe SCHED_FIFO occorre in- dere quale processo far girare.
Figura 6: Android con Hypervisor. 
scheduler gli assegni la CPU e questo trodurre il concetto di priorità statica dei La priorità dinamica di un processo vie-
può avvenire con tempi massimi (dea- processi. In effetti, la priorità è rappre- ne fatta decrescere nel corso del time
due categorie: politiche a priorità di-
dline) non predicibili. sentata da un numero intero compreso quantum associato al processo stes-
namica (OTHER) e politiche a priorità
Al contrario, lo scheduler introdotto dal tra 0 e 99, i processi con priorità statica so. In questo modo si favorisce una
statica (FIFO e RR).
kernel 2.6 è più sofisticato e garantisce più alta sono considerati più prioritari e equa distribuzione del tempo macchina.
In effetti l’algoritmo di schedulazione, al- ottime prestazioni anche a fronte di un una priorità statica maggiore di zero Ogni processo non in àmbito real-time
meno nelle prime versioni (anche se si numero elevato di processi presenti in può essere assegnata solo ai processi ha la propria priorità statica, un para-
può senz’altro affermare che il kernel 2.4 memoria; il suo peso in termini presta- real time (ossia ai processi con politica metro che usa lo scheduler per trattare
era già largamente utilizzato e affidabi- zionali infatti è costante, O(1). Lo sche- SCHED_FIFO, o SCHED_RR, con ge- ogni processo adeguatamente, nel ri-
le), era molto semplice e intuitivo: ogni dulatore è stato sviluppato per sfrut- stione First-in, First-out). Se lo sche- spetto degli altri processi nel sistema. Il

13 FOCUS ON 18 SKILLS 33 INSIDE 44 TOOLS 67 ANALOG

7 TIPS’N TRICKS 3 MARKET NEWS 41 SPOTLIGHT 71 EVENTS ZAPPING ABBONAMENTO


kernel riserva 40 valori per rappresen- (SCHED_RR) e, una volta ultimato il suo scheduling, dinamici hanno il vantaggio porale. La Dalvik Virtual Machine assi-
tare quest’àmbito, da 100 (priorità mag- quanto temporale, subisce prelazione. di assicurare il pieno utilizzo CPU ma, cura l’esecuzione di multiple istanze di
giore) a 139 (priorità minore): all’au- La versione del kernel 2.6, rispetto alle allo stesso tempo, presentano un com- processi ognuno con la sua porzione
mentare del valore, la priorità del precedenti, è differente perché imple- portamento imprevedibile di fronte a di address e memory space, imple-
processo diminuisce. Un nuovo pro- menta un nuovo scheduler e riesce a sovraccarichi di sistema. menta il Java Concurrency Model men-
cesso eredita sempre la priorità statica eseguire tutte le operazioni critiche in un Dalla versione 2.6.23 il kernel Linux uti- tre la parte di schedulazione e la ge-
del padre; tuttavia un utente può confi- tempo costante e indipendente dal nu- lizza il Completely Fair Scheduler, CFS, stione degli interrupt sono delegate al
gurare la priorità di un processo mo- mero di processi presenti sulla mac- e si applica nel momento in cui si as- kernel di Linux.
dificando il nice del processo attraver- china. L’obiettivo è stato raggiunto in- segnano le attività. Il sistema assicura Lo stack Android, chiamato anche da al-
so le chiamate a sistema nice() e tervenendo nel codice e riscrivendo, l’equità anche se l’algoritmo non forni- cuni linux-derived, ricava da Linux tut-
setpriority(). ad esempio, le strutture dati che con- sce alcuna garanzia temporale sulle at- ti i suoi modelli comportamentali in fat-
Ogni processo real-time dispone di una tengono i descrittori dei processi. tività in esecuzione. to di gestione dei processi, della
priorità real-time che va da 1 (priorità memoria, dei driver di periferica, fino a
Il kernel di Linux offre meccanismi che Non solo, Android, allo scopo di ri-
più bassa) a 99 (priorità più alta). A dif- supportare le librerie condivise e a im-
permettono ai programmatori di sfrut- spondere ai requisiti di memoria, uti-
ferenza dei processi convenzionali, plementare il proprio modello di sicu-
tare una politica di schedulazione di ti- lizza una propria versione di Virtual Ma-
quelli real-time sono sempre attivi. Se rezza basato su permessi.
po preemptive fixed priority. In realtà, chine, la Dalvik. In sostanza, la Dalvik è
più processi real-time hanno la stessa Di conseguenza utilizzare Android in
quando si utilizza questo tipo di politi- stata appositamente realizzata per ri-
prorità, lo scheduler sceglie quello che situazioni real-time embedded significa
ca non è possibile ottenere un com- spondere ai requisiti stringenti delle
risulta primo della lista di priorità a cui dover ripensare alla sua architettura,
portamento in tempo reale. applicazioni mobile, quali l’ottimizza-
appartiene (di una data CPU). anche se non nel suo complesso. Da
Ecco perché, da più parti, si è deciso di zione della memoria e il risparmio ener-
Un processo real-time viene rimpiaz- una parte può essere necessario so-
zato da un altro a determinate condi- realizzare sistemi di schedulazione di ti- getico della batteria.
stituire la Virtual Machine attualmente
zioni. Questo può accadere quando il po dinamico: invece di usare priorità Il gestore della memoria, così come la presente con una dalle migliori carat-
processo subisce prelazione da un altro statiche si preferisce utilizzare il con- sua Virtual Machine, si basa sui servizi teristiche in tempo reale e con un mag-
processo con maggiore priorità, l’os- cetto delle scadenze dinamiche. del kernel di Linux, rivelando anche i giore controllo delle risorse fisiche,
servazione sembra piuttosto scontata. Questi schemi di programmazione, o suoi limiti in fatto di esecuzione tem- mentre dall’altra diventa anche neces-
Il processo esegue un’operazione bloc- sario introdurre in Linux i criteri di real-
cante ed è messo a “riposo” (nello sta- time.
to TASK_INTERRUPTIBLE), il proces- Su questo aspetto esistono almeno
so è stato fermato (nello stato quattro classi di pensiero:
TASK_STOPPED o TASK_TRACED), op- 1. il primo approccio considera la so-
- [1] Short Paper: Experiences on the Implementation of a Cooperative Embedded System
pure se è “ucciso” (tramite comando stituzione del sistema operativo Linux
Framework di Cláudio Maia, Luis Miguel Nogueira e Luis Miguel Pinho.
kill, quindi in stato EXIT_ZOMBIE o con uno che rispetti i paradigmi di real-
EXIT_DEAD), il processo rilascia vo- - [2] Reliable Real-Time Applications on Android OS di Bhupinder S. Mongia e Vijay K. Madisetti. time assieme all’inserimento di una VM
lontariamente la CPU lanciando la chia- - [3] Google Android SDK, http://developer.android.com/sdk/index.html. in tempo reale;
mata di sistema sched_yield() o il pro- - [4] http://www.l4dev.org/, Codezero. 2. il secondo approccio rispetta l’ar-
cesso è in Round Robin real-time chitettura standard di Android propo-

13 FOCUS ON 18 SKILLS 33 INSIDE 44 TOOLS 67 ANALOG

7 TIPS’N TRICKS 3 MARKET NEWS 41 SPOTLIGHT 71 EVENTS ZAPPING ABBONAMENTO


nendo, però, l’estensione della Dalvik gestione in tempo reale. Non solo, una funzioni quali RealTimeThread e No- sistema partizionato, come guest, in
come così il sistema operativo; soluzione di questo tipo sposerebbe HeapRealTimeThread o nuove strutture modo da utilizzare le differenti funzio-
3. il terzo approccio sostituisce sem- anche i diversi criteri di sincronizzazio- per la schedulazione in tempo reale nalità in partizioni diverse. Questa scel-
plicemente il sistema operativo Linux ne e d’inversione di priorità. È inutile della gestione della memoria fisica con ta, è bene ricordarlo, è già la strada in
per una versione, sempre di Linux, ma in precisare che una VM real-time intera- l’aggiunta di algoritmi di sincronizza- soluzioni Linux alternative quali RTLinux
tempo reale; gisce direttamente con il kernel al fine di zione e del trattamento degli eventi o RTAI: in questo modo si garantisce
4. il quarto approccio propone l’ag- gestire, in modo corretto ed efficiente, asincroni. È chiaro che molto dipende l’esecuzione delle applicazioni in pa-
giunta di un Real-Time Hypervisor in i diversi requisiti di controllo e gestione dal grado di real-time o di sicurezza rallelo a Linux con differenti livelli di
grado di supportare l’esecuzione pa- fino alla scelta di una politica di sche- che vogliamo conferire alla nostra ar- priorità.
rallela della piattaforma Android in una dulazione più efficace. chitettura. Un approccio di questo tipo introduce,
partizione. Inoltre un aspetto da considerare è l’in- Esiste anche una terza possibilità, ossia nel contempo, diverse limitazioni; in ef-
Nel primo caso, figura 3, si sostitui- tegrazione delle due VM, quella di Dal- utilizzare una versione di Linux real-ti- fetti, le applicazioni utente in questo
sce il kernel standard di Linux con un vik e la parte real-time, tanto che le me. In questo caso, figura 5, è possibile nuovo sistema dipendono fortemente
vero e proprio sistema operativo in tem- due specificità dovranno, per forza di distribuire le nostre applicazioni diret- dai gradi di libertà dell’Hypervisor pre-
po reale: in questo modo si introduce la cose, coesistere per evitare problemi tamente su Linux sfruttando diretta- sente e ciò potrebbe comportare una
predictability e il determinismo nell’ar- di portabilità delle applicazioni. mente le sue prerogative, in special perdita di alcune funzionalità oppure
chitettura di Android. Con questa scel- È necessario inserire nei file .dex, e modo per quelle applicazioni che non della Virtual Machine di Dalvik o dei
ta si introducono nuove dinamiche in nell’interprete, quelle specificità di tem- hanno l’esigenza di sfruttare la Virtual servizi che Linux mette a disposizione.
tempo reale con opportune politiche di po reale che non possono assoluta- machine. A questo proposito esiste un’interes-
schedulazione insieme con una gestio- mente mancare. Può anche succedere, Al contrario, quelle che ne necessitano sante distribuzione, CodeZero, che per-
ne dell’inversione di priorità e una mi- per via di questa integrazione, di dover non potranno utilizzare i benefici di un mette di virtualizzare Android e Linux su
gliore strategia sull’uso delle risorse. definire nuove politiche di schedula- sistema sicuro e affidabile; in sostanza, processori multicore delle serie ARM.
Questa scelta non è indolore perché zione e algoritmi di allocazione e con- in questo modo è il consumatore finale, CodeZero assicura la virtualizzazione
comporta una ridefinizione dei vari dri- trollo della memoria allo scopo di otte- in base alle sue esigenze, a decidere la delle applicazioni ricorrendo a soli 12
ver presenti nella suite di lavoro che, al nere un sistema flessibile, sicuro e sua architettura di lavoro in modo per- API e con 10 Kb di codice scritto in lin-
momento, sono supportati in modo na- ottimizzato. fettamente trasparente. guaggio C [4].
tivo; infatti sarebbe necessario inte- Questa soluzione è una delle più one- Con una scelta di questo tipo, poiché le
grare in Linux, o nel sistema scelto, i dif- rose e intrusive perché è necessario ri- applicazioni con i requisiti di real-time CONCLUSIONE
ferenti driver in modo da garantire una discutere l’architettura di Android, del devono essere realizzate utilizzando Nella prossima parte vedremo alcuni
maggiore integrazione e flessibilità. suo sistema operativo e della sua Virtual direttamente un sistema operativo di aspetti della virtual machine utilizzata in
Il secondo approccio è maggiormente Machine anche se, probabilmente, questo tipo, non si ha la necessità di uti- àmbito Android e diverse considera-
intrusivo perché prevede, insieme con la l’aspetto più delicato è la messa a pun- lizzare una Virtual machine e ciò com- zioni legate all’hardware.
sostituzione di un kernel real-time, di in- to di una versione della Dalvik con fun- porta un impatto minimo in fase di in- In particolare, approfondiremo i mec-
cludere una real time virtual machine, fi- zionalità estese basate sulle caratteri- tegrazione. canismi da utilizzare per effettuare il
gura 4. Per molti questa possibilità è da stiche della RTSJ, ossia la Real-Time L’ultima possibilità sfrutta un Real-Time porting di Android su una scheda em-
preferire perché garantirebbe un mag- Specification per Java. In sostanza, Hypervisor, figura 6, al fine di garanti- bedded.
giore controllo della memoria e la sua può essere necessario inserire nuove re l’uso di Android all’interno, però, di un Codice MIP 2803607

13 FOCUS ON 18 SKILLS 33 INSIDE 44 TOOLS 67 ANALOG

7 TIPS’N TRICKS 3 MARKET NEWS 41 SPOTLIGHT 71 EVENTS ZAPPING ABBONAMENTO


+ Skills Applicazioni video low power con le
ANDROID PER
SISTEMI EMBEDDED
Ecco come utilizzare
questa potente e
Come usare le FPGA Igloo per
flessibile piattaforma
l’acquisizione ed elaborazione di
in un sistema
immagini e per il controllo di display LCD
embedded di tipo
realtime. di MARIANO SEVERI

continui progressi tecnologici hanno

COMPONENTI PER
I determinato una rapida diffusione del-
le tecnologie video in molti àmbiti di ap-
LO SVILUPPO DI plicazione, anche nel settore embedded.
APPLICAZIONI USB In questo caso la riduzione dei costi e
Una rassegna di della potenza dissipata sono requisiti
componenti che fondamentali; da questo punto di vista le
facilitano FPGA Igloo di Actel (recentemente rino-
minata in Microsemi SoC Products Group
l’implementazione
a seguito dell’acquisizione da parte del-
della comunicazione l’azienda californiana) rappresentano
USB. una delle soluzioni più interessanti oggi
disponibili sul mercato. Per un’introdu-
zione alle caratteristiche e all’architettura
di questi dispositivi si veda il riquadro di
approfondimento. Di seguito, piuttosto, Figura 1: il kit di sviluppo Igloo Demo Video.
sono presentate alcune interessanti ap-
plicazioni di esempio in àmbito video. I ard per display LCD. Oltre alla FPGA dispone di interfaccia USB, DVI-D e JTAG
progetti sono realizzati mediante il kit di Igloo AGL600-FG256, la demo board in- (per la programmazione della FPGA),
sviluppo Igloo Demo Video Kit (figura clude memoria Micron SDRAM da 2 MB x connettore di espansione a 26 pin e RJ45
1), che consiste in una scheda demo 32, memoria flash SPI Numonyx da 64 per 2x4 linee LVDS in uscita, oltre al
board con FPGA Igloo e un adaptor bo- MByte e memoria EEPROM da 2 kbit; connettore a 50 pin per l’adaptor board.

13 FOCUS ON 18 SKILLS 33 INSIDE 44 TOOLS 67 ANALOG

7 TIPS’N TRICKS 3 MARKET NEWS 41 SPOTLIGHT 71 EVENTS ZAPPING ABBONAMENTO


Le FPGA Igloo
Igloo (figura 6) è la serie di dispositivi FPGA single-chip
riprogrammabili in tecnologia Flash, realizzati con
processo CMOS a 130 nm e 7 piani di metallizzazione,
sviluppati da Actel per applicazioni a bassa dissipazione di
potenza. La famiglia include dispositivi di capacità fino a 3
Figura 2: schema a blocchi di una camera still shot realizzata con FPGA Igloo.
milioni di system gate e con fino a 504 kbit di memoria
STILL SHOT CAMERA
SRAM true dual-port
La figura 2 mostra lo schema di prin-
integrata, 6 PLL
cipio del progetto per la realizzazione di
una camera still shot mediante FPGA embedded e 620 I/O
Igloo. La testa ottica, disponibile se- utente con supporto per
paratamente dal Demo Video Kit presso standard differenziali e
Avnet, include un sensore CMOS
operazioni mixed-voltage.
MT9V032 di Aptina, azienda nata nel
2008 da uno spin-off di Microsemi e La serie M1, inoltre, è
specializzata nella realizzazione di sen- distribuita con soft IP
Figura 6: le FPGA Igloo.
sori per imaging; il sensore ha risolu- core preprogrammato
Figura 3: sensori a colori con filtro di
Bayer; pixel adiacenti catturano solo una
zione 640 x 480 pixel, dispone di filtro di
per CPU Cortex-M1. Basati su tecnologia proprietaria
componente di colori. Bayer (vedi figura 3) per l’acquisizione
di immagini a colori e supporta frame ra- Flash Freeze – che consente di forzare l’FPGA in modalità
Questa include, invece, il display LCD, te fino a 60 fps. La testa ottica è con- ultra low power pur mantenendo l’integrità del contenuto
l’inverter per la retroilluminazione dello nessa al Demo Video Kit mediante il di SRAM e registri e il valore delle porte di I/O – i
schermo mediante CCFL (Cold Catho- connettore a 26 pin. Il progetto di rife-
dispositivi Igloo consentono di ridurre la dissipazione di
de Fluorescent Lamps) e un circuito di rimento consente di acquisire immagi-
power sequencing. È disponibile nelle ni dal sensore ottico visualizzandole potenza fino a soli 2µW, in tutte le applicazioni power-
due versioni con schermo Toshiba da 7” quindi sullo schermo LCD. A comando conscious, assicurando tipicamente una vita delle batterie
con risoluzione 800 x 480 pixels o NEC da (mediante i pulsanti di controllo ENTER fino a 10 volte superiore di quanto garantito da dispositivi
5,5” con risoluzione 320 x 240 pixels. Il kit e INC presenti sulla demo board) l’im-
concorrenti equivalenti.
è distribuito presso Avnet; sul sito web di magine acquisita può essere salvata
Actel ne sono inoltre rilasciati gli schemi nella memoria SDRAM esterna. Tutte Le FPGA Igloo operano con tensione di core di 1,2 - 1,5 V
elettrici, utilizzabili come guida nello svi- le funzionalità sono integrate nella FPGA e sono disponibili in package chip-scale e quad-flat di
luppo di soluzioni proprie. Igloo; l’intero progetto, come pure quel- dimensioni fino a 3 x 3 mm, a costi inferiori a 1 dollaro.

13 FOCUS ON 18 SKILLS 33 INSIDE 44 TOOLS 67 ANALOG

7 TIPS’N TRICKS 3 MARKET NEWS 41 SPOTLIGHT 71 EVENTS ZAPPING ABBONAMENTO


FOTO VIEWER daria del PC, opportunamente confi-
La figura 4 mostra invece lo schema a gurata. Non si devono utilizzare invece
blocchi di principio del progetto di ri- sorgenti non true-DVI, come ad esempio
ferimento per la realizzazione di un vie- convertitori VGA-DVI.
wer di immagini mediante FPGA Igloo.
Alcune delle funzionalità, in particolare IMAGE SCALING
per quanto concerne il buffering del- Modificando opportunamente la logi-
l’immagine e la visualizzazione su scher- ca del frame grabber dell’esempio pre-
mo, sono evidentemente identiche a cedente ma lasciando inalterate le altre
quelle incluse nel progetto precedente. funzionalità, il progetto del monitor DVI
Figura 4: schema a blocchi di un viewer di immagini realizzato con FPGA Igloo.
L’immagine da visualizzare è memoriz- può essere esteso introducendo fun-
zata sulla memoria flash esterna pre- zionalità accessorie di elaborazione di
sente sulla demo board e può esservi immagini.
caricata mediante la porta USB dispo- In particolare, nell’esempio fornito sul
nibile su questa utilizzando il software sito web di Actel, il frame grabber è
IVDK (scaricabile dal sito Actel). L’FPGA, dotato di una funzionalità di scaling
al power-up, procede a leggere dalla che, se abilitata, consente di acquisire
flash mediante interfaccia SPI l’imma- una regione d’interesse dell’immagine in
gine da visualizzare e quindi la invia al- ingresso, posizionata intorno al centro
l’LCD. di questa e di risoluzione 400 x 240;
viene quindi applicato un algoritmo di
Figura 5: schema a blocchi di un monitor con ingresso DVI realizzato con FPGA Igloo. DVI MONITOR up-scaling di un fattore 2 mediante in-
In figura 5 è mostrato infine lo schema terpolazione (per ridurre evidentemen-
li che seguono, è disponibile per il to di comando) dell’immagine nel buffer
di principio del progetto di riferimento te gli effetti di aliasing legati a tale zo-
download presso il sito Actel e i diver- SDRAM esterno, mentre il modulo di
per la realizzazione di un monitor con in- om) prima di visualizzare l’immagine
si moduli sono rilasciati in formato sor- conversione dal formato d’ingresso con
gresso DVI. In questo caso il frame sull’LCD.
gente, con la possibilità per l’utente di filtro di Bayer ricostruisce mediante
grabber consente di bufferizzare le im- L’occupazione di risorse è solo il 6% su-
modificarli. L’FPGA configura al power- semplice interpolazione le componenti
magini in ingresso nella memoria periore a quella del progetto del mo-
up il sensore mediante l’interfaccia di di colore RGB per ogni pixel prima del-
SDRAM esterna per inviarle all’LCD con nitor DVI, il che dovrebbe in qualche
controllo I2C e quindi acquisisce le im- la visualizzazione.
la corretta sincronizzazione; implementa modo dare l’idea della flessibilità delle
magini provenienti da quello. Il Frame Il Video Timing Generator genera i se-
anche una funzionalità di riduzione del architetture basate su FPGA, mostran-
Buffer Controller integra FIFO on-chip e gnali di sincronizzazione e controllo per
frame rate per adattare la frequenza di do la possibilità concreta, grazie alla
logica per la memorizzazione (a segui- il display LCD.
immagini in ingresso al rate sostenuto riprogrammabilità di tali dispositivi, di in-
dal display adottato. trodurre le funzionalità richieste dalla
Come sorgente DVI, ove non si dispon- propria applicazione senza necessità
- [1] http://www.actel.com/products/solutions/display/refdesign.aspx ga di segnali di questo tipo, può essere di modificare il circuito della scheda.
utilizzata ad esempio l’uscita secon- Codice MIP 2803579

13 FOCUS ON 18 SKILLS 33 INSIDE 44 TOOLS 67 ANALOG

7 TIPS’N TRICKS 3 MARKET NEWS 41 SPOTLIGHT 71 EVENTS ZAPPING ABBONAMENTO


+ Skills Componenti per lo sviluppo di
APPLICAZIONI VIDEO
LOW POWER
CON PFGA
Come usare
APPLICAZIONI
L’introduzione dell’interfaccia USB di ETTORE PICCIRILLO
le FPGA Igloo
per l’acquisizione ha mutato non poco le nostre
avvento dell’interfaccia USB negli
ed elaborazione
di immagini
abitudini di lavoro, migliorando
da un lato la velocità
L’ anni Novanta fu accettato con mol-
te riserve dagli utilizzatori perché essa
e per il controllo di comunicazione verso risultò subito complessa per i non
di display LCD. il PC e dall’altro esperti, e ben presto finì per tagliare
semplificando fuori i cosiddetti “smanettoni” dell’in-
il collegamento formatica che fino ad allora apparivano
come maghi del computer. Questo stan-
ANDROID PER fisico tra
dard infatti, pur introducendo una gros-
SISTEMI EMBEDDED il computer e
sa semplificazione nel modo di con-
Ecco come utilizzare il dispositivo di servizio nettersi al PC, presuppone un’ampia
questa potente e conoscenza specialistica per poter rea-
flessibile piattaforma lizzare anche la più semplice delle ap-
in un sistema plicazioni computerizzate. Dunque se da
embedded di tipo una parte l’utenza privata viene favori-
realtime. ta dalla semplicità di connessione e ne
fa grande uso, dall’altra il progettista
che voglia cimentarsi con un’applica-
zione che utilizzi il PC come supporto si
vede la strada sbarrata dall’enorme im-
patto tecnico introdotto dallo standard
USB.
Dietro i due fili dell’interfaccia USB
(quattro se consideriamo alimentazione
e gnd) si cela infatti un mondo fatto di

13 FOCUS ON 18 SKILLS 33 INSIDE 44 TOOLS 67 ANALOG

7 TIPS’N TRICKS 3 MARKET NEWS 41 SPOTLIGHT 71 EVENTS ZAPPING ABBONAMENTO


mite il collegamento USB. Anche se, si attiene alle modalità previste dal pro- all’atto del collegamento del connet-
tutto sommato, in questo modo non tocollo, allora sarà possibile connet- tore USB. Solitamente dispositivi lenti
possiamo dire di utilizzare tutte le po- tersi al PC utilizzando le risorse (librerie come la tastiera, il mouse oppure un
tenzialità della USB. Il cosiddetto brid- e driver) del sistema operativo che si dispositivo di puntamento (joystick) uti-
ge, il ponte tra UART e USB, consente vuole interfacciare – per esempio Win- lizzano da 0 a 8 byte per dialogare con
comunque di risolvere la maggior parte dows /Linux – in modo del tutto auto- il PC e informarlo costantemente sul
della applicazioni a basso livello, dove matico. In altri termini il computer che valore del tasto premuto, oppure sulla
cioè a muoversi sono soltanto pochi ospita il dispositivo sa già come dialo- posizione dei cursori sull’asse X ,Y e
bit. Esempi di dispositivi bridge sono gare con esso ma non sa ancora che Z, nonché sullo stato dei pulsanti even-
forniti dal più diffuso TF232 di FDTI, cosa deve comunicargli, e questo di- tualmente presenti sull’apparecchio.
oggi quasi completamente in disuso, penderà ovviamente dall’applicazione.
protocolli, livelli, report, interrupt, en-
ma molti altri ne esistono, basta colle- LE SOLUZIONI DISPONIBILI
dpoint ecc. tale da scoraggiare subito
garsi al sito di Cypress oppure di Atmel L’INTERFACCIA HID IN COMMERCIO
qualunque tentativo di cimentarsi con
per rendersi conto della grande varietà Con il termine HID (Human Interface De- Al fianco dei pionieri dello standard
questo standard. Ma allora c’è da chie-
di silicio disponibile per risolvere i casi vice) si intende riferirsi a un dispositivo USB (Intel, Microsoft, Philips, Lucent,
dersi se occorra diventare ingegneri
più disparati. Molte volte lo stesso co- USB destinato all’interfaccia uomo-mac- Nec, HP, Compaq) che nel 2000 defini-
elettronici per comandare un LED tra-
struttore del chip fornisce tutto il sup- china, un qualunque dispositivo che pre- rono le specifiche della rev. 2.0, molti
mite il PC. Fortunatamente i comitati
porto firmware per lo sviluppo e il debug veda l’intervento dell’operatore umano sono i costruttori di silicio che hanno
tecnici che hanno presieduto i lavori di
delle applicazioni. per l’immissione di dati nel PC. Si capi- contribuito a rendere commerciale la
definizione dello standard USB hanno Il vero punto di forza dello standard sce subito che una applicazione del ge- diffusione di questa potente interfaccia;
fatto le cose per bene. I costruttori di si- USB consiste infatti nell’aver suddiviso nere è destinata a un basso volume di giusto per citare i più famosi: Atmel,
licio hanno subito cavalcato questo le possibili applicazione in poche clas- traffico di dati (throughput). Microchip, Freescale, Silicon Labs, ST
transitorio rendendo disponibili sul mer- si essenziali di utilizzo. Queste sono Sono esempi validi di dispositivi HID: la Microsystem, Texas Instruments, Cy-
cato dispositivi integrati che risolvono il così raggruppate: hub, interfaccia uma- tastiera, il mouse, il joystick, il game press. Inoltre dall’Oriente si propongo-
problema senza costringerci a entrare na, stampante, dispositivo video e me- pad ecc. In pratica tutto ciò che intera- no ormai ogni giorno nuovi costruttori
nel merito, per così dire, dello stan- moria di massa. Il dispositivo che si gisce con la manualità dell’operatore con soluzioni “do it yourself” complete
dard. connette al computer umano. di tutto il supporto software e firmware,
deve “presentarsi” come appartenente Per queste applicazioni lo standard c’è solo l’imbarazzo della scelta.
LA PORTA COM VIRTUALE a una delle classi in elenco. Una volta USB prevede un trasferimento di dati • Atmel realizza una vasta gamma di
Una prima soluzione consiste nell’uti- presentatosi, gli viene assegnata una controllato a interrupt dove lo scam- soluzioni basate sulla famiglia di mi-
lizzare convertitori USB-COM oppure modalità di trasferimento dei dati (che bio dati è limitato da pochi byte a un croprocessori AVR da 8 a 32 bit, dei
USB-LPT, che riportano la problematica tiene conto della probabile quantità di massimo di 1024 byte per payload. Il nu- quali il capostipite è l’AT90USB. I tagli
su un piano di conoscenza più familia- dati) e un indirizzo fisico di comunica- mero di byte, la velocità di trasmissione, vanno da 8 Kb di flash e 32 pin di pac-
re; il PC continuerà a “vedere” virtual- zione per poterlo distinguere e a farlo il numero di endpoint associato ai dati in kage (AT90USB82) fino a 128 Kb e 64
mente un dispositivo collegato sulla coesistere con altri dispositivi. Fino a ingresso e in uscita e quant’altro ne- pin (AT90USB1286) dal costo di pochi
porta COM /LPT e noi potremo final- quando il dispositivo connesso si com- cessario alla comunicazione con il di- euro per chip anche per piccoli quanti-
mente comandare ciò che vogliamo tra- porta come previsto dallo standard e spositivo, vengono negoziati con il PC tativi. Rimanendo in àmbito HID ovvia-

13 FOCUS ON 18 SKILLS 33 INSIDE 44 TOOLS 67 ANALOG

7 TIPS’N TRICKS 3 MARKET NEWS 41 SPOTLIGHT 71 EVENTS ZAPPING ABBONAMENTO


pcb pool – beta layout – circuiti stampati

mente non sarà necessario scomodare tore LQFP44 pienamente compatibile


le potenti architetture a 32 bit oppure con lo standard USB 2.0. Siccome pe-
quelle ARM based. Atmel offre tutto il rò lo stack USB Lite è piuttosto in-
supporto necessario dallo starter kit gombrante e data la lieve differenza
STK526 all’ambiente di sviluppo AVR di costo, conviene migrare su piatta-
USB serie 2/4/6/7 opportunamente di- forme leggermente superiori come:
mensionato per il tipo di applicazione e MC9S08JM32 oppure MC9S08JM60,
in funzione del microprocessore utiliz- entrambi membri della famiglia Flexis,
zato. Sul portale di Atmel, nella ses- equipaggiati tra l’altro con numerose
sione Small I/O device è possibile indi- periferiche e linee di I/O. Esiste una
viduare il processore più adatto a demo board per ogni famiglia di pro-
ciascuna applicazione e il corredo di cessori, come la DEMO9S08JM60LAB,
tools di sviluppo disponibile. corredata di decine di esempi di ap-
• Freescale mette a disposizione del- plicazione dello Stack USB Lite. La bo-
l’utenza in modo del tutto gratutito lo ard dialoga senza necessità di installare
stack per lo sviluppo di applicazioni alcun driver in ambiente Windows e Li-
USB adatto per vari tipi di micropro- nux. Per quanto riguarda le applicazio-
cessori: S08JM, MCF51JM V1 ColdFire, ni host based conviene affidarsi alla
la release Lite USB Stack sviluppata potenza dei 32 bit, ad esempio con il
da CMX in ambiente C. Una volta sca- processore MCF51JM128 (core V1 Col-
ricato dal sito di Freescale viene inglo- dfire), al top della serie Flexis. Nella
bato senza alcuna difficoltà nel proprio fascia bassa esistono vari tagli di me-
applicativo e consente di aggiungere moria e dimensioni di package LQFP
subito connettività USB al dispositivo da 44 a 80 pin. La demo board
desiderato. Lo stack consente il sup- EVB51JM128 ha un costo di 325 dolla-
porto per varie modalità di collega- ri ed è corredata della suite di sviluppo
mento secondo una delle possibili scel- Code Warrior Development Studio che,
te: General HID, Keyboard HID, Mouse insieme con lo Stack USB Lite della
HID, CDC device. Oppure, nella confi- CMX, consente connettività USB host
gurazione Host (riservata alla famiglia di based, OTG (collegamenti tra scheda e
processori Coldfire): HID Host, Host scheda) e “device based”. Inoltre que-
Mass Storage. sta famiglia di processori incorpora tra
Anche la scelta del microprocessore è le decine di periferiche previste sul chip
molto vasta, la gamma varia dagli 8 bit anche un’interfaccia CAN.
della famiglia S08JM ai 32 della V1 Col- • Microchip è il produttore che prevede
dfire. Il più piccolo della famiglia è il la più ampia scelta di microprocessori
processore MC9S08JM16, in conteni- per applicazioni USB basate su varie di-

13 FOCUS ON 18 SKILLS 33 INSIDE 44 TOOLS 67 ANALOG

7 TIPS’N TRICKS 3 MARKET NEWS 41 SPOTLIGHT 71 EVENTS ZAPPING ABBONAMENTO


indispensabile per applicazioni host MCP2200, l’unico proposto dalla casa, da 300 a 921,6 Kbit; è completamente
based. che con i suoi 20 pin non manca di sor- compatibile con USB 2.0. Il suo utilizzo
Questi processori hanno velocità di ela- prendere per l’efficienza realizzata in in ambiente Linux, Windows o MacIn-
borazione da 80 MIPS e sono equipag- termini di costo, prestazioni, ingombro, tosh è immediato, potendosi collegare
giati con RAM fino a 32Kbytes e FLASH oltre a risultare compatibile con varie a una qualunque porta COM RS232.
fino a 512 Kbytes. Oltre alle periferiche classi di applicazioni USB release 2.0. La gamma dei processori bridge pro-
di servizio come I2C, SPI, UART, PWM, Gli strumenti di sviluppo disponibili per posta da Silicon Labs non si limita al-
Timer, Capture input ecc., dispongono il chip consentono l’utilizzo in àmbito Li- l’interfaccia UART-USB, infatti nel suo
di almeno 16 linee di I/O specializzate nux e Windows. catalogo troviamo HID-UART, USB-
per il Cap Sense, adatte quindi per ap- • Silicon Labs prevede nel suo scenario IR,USB-dual UART, HID-I2C ecc. In-
plicazioni touch board, touch screen di proposte per applicazioni USB sia somma davvero una soluzione per ogni
mensioni di memoria e architetture da 8 ecc. Tutti i dispositivi di questa famiglia esigenza. Inoltre i prodotti della casa so-
dispositivi bridge CP21xx sia processori
a 32 bit. In fascia bassa troviamo la fa- sono alimentati da 2,2 a 3,6 V e fun- no utilizzabili senza alcun costo di li-
a 8 bit (8051 based) con interfaccia
miglia PIC18Fxx, la più economica e zionano su range industriale di tempe- cenza.
USB integrata.
conveniente da utilizzare per applica- ratura da –40 a +85 °C. Il package per I processori con connettività USB in-
zioni low cost, con prezzi a partire da Il caso dei processori bridge (USB to
questi processori varia dal più piccolo tegrata appartengono alle famiglia
1,32 dollari per il modello PIC18F13K50. UART) merita di essere proposto es-
QFN/64 al 100/TQFP, oppure 121/XBGA. 8051F3xx. Troviamo varie proposte con
Equipaggiato con soli 8 K di Flash, es- senzialmente per le ridotte dimensioni
I prezzi di questi mostri raramente su- diversi equipaggiamenti di memoria, di
so dispone di 20 pin e sono previsti va- del package, il basso costo e l’imme-
perano 6 dollari cadauno per quantità periferiche e di package. Tutti i model-
ri contenitori DIP oppure SMD. Tutti i mi- diatezza dell’applicazione. Il CP2101,
industriali. li sono conformi allo standard USB 2.0
cro di questa famiglia hanno la porta che è il più piccolo della casa, ha un
Ovviamente Microchip Semiconductor full speed (12 Mpps) oppure low speed
USB pienamente compatibile con lo package di soli 5 x 5 mm QFN 28, si
dispone di tutti gli strumenti necessari (1.5 Mpps), alimentati da 2,7 a 5,5 volt,
standard USB 2.0. Crescendo con la alimenta a 3,3 V oppure da USB (4-5
per lo sviluppo di applicativi USB, demo hanno range di temperatura esteso da –
complessità dell’applicativo ci spo- volt), supporta tutti segnali di hand-
board dedicate a ciascuna famiglia di 40 a +85 °C. La CPU è basata su core
stiamo sulle architetture a 16 bit della shaking verso la UART, il baud rate va
prodotti, kit di sviluppo, compilatori C, 8051 ad alta velocità (25 MIPS), un lon-
famiglia PIC24Fxx. Questa fascia di software applicativo, librerie, esempi e tano parente ormai del famigerato 8051.
processori consente applicazioni USB altro. In particolare il pacchetto Il package varia da 24 pin LQFP a 32 pin
full speed e OTG. Ovviamente aumen- MCHPFSUSB Framework contiene tut- TQFP. Per applicazioni “cost sensitive”
tando le prestazioni e la capacità di to il necessario per interfacciare le fa- esiste una versione 8051T62x con me-
memoria è necessario accollarsi un miglie PIC18/24/32x con l’ambiente PC, - www.atmel.com moria EPROM (programmabile una so-
package più ingombrante e un costo incluso lo stack dedicato al PIC32x per la volta). Per tutti i modelli è prevista una
- www.freescale.com
adeguato ma pur sempre contenuto, le applicazioni host based. board di sviluppo dedicata.
- www.microchip.com
se si pensa che una Flash da 256 Kby- Concludendo la rassegna dedicata a Silicon Labs mette a disposizione del-
te arriva a costare circa 5 dollari per questo costruttore vale la pena di ri- - www.support.microchip.com l’utenza il kit di sviluppo USBXpress
quantitativi da produzione. cordare che anche Microchip dispone di - www.silabs.com/support comprendente tutto il necessario per
Al top della gamma troviamo la serie a 32 una soluzione USB-UART bridge molto - www.ti.com lo sviluppo di applicativi host based
bit, individuata dal prefisso PIC32Mxx, economica e funzionale. Si tratta del oppure device based utilizzabile per un

13 FOCUS ON 18 SKILLS 33 INSIDE 44 TOOLS 67 ANALOG

7 TIPS’N TRICKS 3 MARKET NEWS 41 SPOTLIGHT 71 EVENTS ZAPPING ABBONAMENTO


elettroshop – system base

qualunque processore della famiglia cumentazione tecnica a disposizione


con applicazioni in ambiente Windows, e la grande quantità di demo board, to-
corredato di librerie, API, driver, esem- ols di sviluppo, starter kit, video infor-
pi ecc. In ogni momento è possibile, mativi, esempi di codici, corsi on line
previa registrazione al sito, contattare in rendono davvero appetibili i prodotti
lingua inglese il supporto tecnico com- realizzati dalla casa, assicurando un
posto da un team di esperti con skills su rapido time to market.
ciascun argomento.
• Texas Instruments chiude in bellezza CONCLUSIONI
la nostra rassegna con una proposta Quando non è indispensabile proget-
molto vasta di dispositivi e periferiche tare soluzioni proprietarie e per non
USB conformi alla release 2.0 e 3.0. Il confondersi in uno scenario così vasto
programma Texas include micropro- di proposte, conviene riferirsi a quanto
cessori da 16 a 32 bit con interfaccia si trova pronto in commercio.
USB full speed. Tra i più significativi: Molte sono infatti le schede elettroniche
la famiglia MPS430 16 bit low cost, op- disponibili a catalogo che impiegano
pure i micro a 32 bit della famiglia Stel- proprio i componenti presentati in que-
laris ARM based e infine TMS570 Cortex sto articolo. Sono disponibili a basso
based da 180 MIPS, di costo non ec- costo e spedite a casa e consentono di
cessivo considerate le grandi poten- sperimentare o risolvere problemi tec-
zialità offerte. Inoltre: USB Transceiver, nici senza grande sforzo. È sufficiente
USB peripheral, HUB controller, Host digitare su un qualunque motore di ri-
& OTG, Streaming e Audio device ecc. cerca il tema della nostra esigenza per
Non basterebbero le pagine di questa ri- veder comparire tra i fornitori: Farnell,
vista per descrivere tutte le potenziali- Futurashop, Elettroshop, RS compo-
tà di questi dispositivi, è sufficiente nents ecc. La nostra rivista, come noto,
collegarsi al sito www.ti.com per ren- intende rivolgersi a una gamma di lettori
dersene conto. Ma il vero punto di for- molto variegata che passa dallo speri-
za della linea Texas Instruments consi- mentatore al professionista, con l’in-
ste nel fortunato abbinamento dei tenzione di soddisfare le esigenze di
processori di fascia bassa come ciascuno presentando articoli non ec-
l’MPS430 (low cost e basso consumo) cessivamente tecnici, seppur rigorosi, e
alla vasta gamma di dispositivi wire- senza preclusioni né preferenze riguar-
less, per esempio: CC2560 (che con- do all’offerta commerciale dei vari pro-
sentono facilmente di realizzare la con- duttori sul mercato.
nettività tra USB e Bluetooth), oppure
USB -ZigBee e/o altre WLAN. La do- Codice MIP 2803595

13 FOCUS ON 18 SKILLS 33 INSIDE 44 TOOLS 67 ANALOG

7 TIPS’N TRICKS 3 MARKET NEWS 41 SPOTLIGHT 71 EVENTS ZAPPING ABBONAMENTO


+Inside
TRANSCEIVER
CAN
Un componente
indispensabile
nelle reti di
RF 868 MHz TR-52B
di GIOVANNI DI MARIA l modulo che stiamo per esaminare è
comunicazione
basate su Esaminiamo in dettaglio
Iuna famiglia di transceiver dotata di
assieme al sistema operativo integrato
troviamo una EEPROM seriale e altro, al
microcontrollore on-board, un sistema fine di ridurre i tempi e i costi di pro-
protocollo CAN. il TR-52, un modulo operativo e alcune periferiche. gettazione. Un punto di forza è il con-
transceiver di IQRF basato Esso lavora alle frequenze operative di sumo estremamente basso, che con-
su microcontrollore 868 Mhz e 916 Mhz per le quali non è ri- sente l’utilizzo di batterie per un lungo
chiesta alcuna licenza. È immediata- periodo di tempo. Il suo campo di uti-
on board molto completo
mente pronto all’uso e non necessita di lizzo è estremamente vasto e la sua
e dotato di tutto ciò
componenti aggiuntivi esterni per il fun- grande versatilità consente di adottar-
che necessita zionamento. In questo modo le realiz- lo in numerosissime applicazioni, tra le
allo sviluppatore. zazioni possono essere sviluppate mol- quali ricordiamo:
Estremamente versatile, to velocemente e contenute in spazi • applicazioni di acquisizione remota
si rende utile in numerose davvero esigui. Dispone inoltre di tutto di dati;
ciò che necessita allo sviluppatore e • controllo di accessi a distanza;
applicazioni e trova
uno dei suoi punti di forza
nel consumo
davvero contenuto

Figura 1: alcuni modelli della famiglia TR-52B.

13 FOCUS ON 18 SKILLS 33 INSIDE 44 TOOLS 67 ANALOG

7 TIPS’N TRICKS 3 MARKET NEWS 41 SPOTLIGHT 71 EVENTS ZAPPING ABBONAMENTO


Figura 2:
pinout del TR-52B.

Figura 3: schema
interno del TR-52B.

• controlli senza fili di dispositivi e pe- solo 2 uA (microampère);


riferiche; • in trasmissione consuma tipicamente
• telemetria; una corrente compresa tra 14 mA e 24
• quant’altro possa prevedere una con- mA;
nessione wireless per qualsiasi appli- • in ricezione STD consuma 13 mA;
cazione. • in ricezione LP consuma 400 uA;
• in ricezione XLP consuma solo 35 uA.
I CONSUMI
Il progettista può realizzare dispositivi CARATTERISTICHE
alimentati da batterie e accumulatori Le caratteristiche avanzate fanno del
grazie al bassissimo consumo che ca- TR-52B un prodotto unico e completo,
ratterizza la famiglia di questi transcei- capace di soddisfare qualsiasi esigen-
ver. Infatti in qualsiasi situazione ope- za nelle applicazioni wireless. Eccone
rativa il dispositivo richiede una corrente alcune peculiarità di rilievo:
molto esigua all’alimentazione. • possibilità di installazione di una an-
In dettaglio ecco i consumi tipici, nelle tenna on-board;
varie modalità di lavoro: • possibilità di innestare un connettore
• in modalità sleep o stand-by consuma d’antenna coassiale;

13 FOCUS ON 18 SKILLS 33 INSIDE 44 TOOLS 67 ANALOG

7 TIPS’N TRICKS 3 MARKET NEWS 41 SPOTLIGHT 71 EVENTS ZAPPING ABBONAMENTO


• sensibilità: –110 dBm a 868 Mhz e 1,2 il relativo collegamento.
kb/s, –109 dBm a 916 Mhz e 1,2 kb/s; In generale il TR-52B dispone di:
• potenza RF: fino a 5 dBm; • microcontrollore PIC16F886–I/ML di
• distanza di trasmissione: fino a 700 m Microchip;
a 1,2 kb/s e fino a 500 m a 19,2 kb/s (se- • modulo a radiofrequenza TRC102 di
condo l’inclinazione del modulo e gli RF Monolithics (RFM);
ostacoli presenti); • regolatore LDO MCP1700 di Micro-
• conversione A/D a 10 bit; chip;
• precisione del sensore di temperatu- • sensore di temperatura MCP9700A
ra: 0,5° C; di Microchip;
• misure: 25,0 mm x 14,9 mm x 3,0 mm. • EEPROM 24AA16/MC di Microchip.
Come affermato in precedenza, il TR-
52B contiene al suo interno svariati di- PIEDINATURA
spositivi. Dalla figura si può evincere • C1: collegato alle porte RA0/AN0 per
l’organizzazione logica di questi, nonché porta digitale o ingresso analogico;

Figura 4: schema interno dettagliato del TR-52B.

• formato della scheda SIM a basso • banda operativa selezionabile tra 868
costo e basso profilo; Mhz e 916 Mhz;
• presenza di almeno 6 porte di I/O e al- • modulazione FSK;
meno 2 analogiche (A/D); • velocità di trasmissione selezionabile;
• presenza di due diodi LED; • tensione di alimentazione: da 3,1 a
• sensore di temperatura on-board e 5,3 V;
monitoraggio della batteria; • temperatura di esercizio per i model-
• interfaccia SPI; li standard: da 0 °C a +70 °C;
• consumo estremamente ridotto; • temperatura di esercizio per i model-
• microcontrollore dotato di flash me- li industriali: da –40 °C a +85 °C (su ri-
mory estesa ed EEPROM; chiesta); Figura 5: le componenti interne del TR-52B.

13 FOCUS ON 18 SKILLS 33 INSIDE 44 TOOLS 67 ANALOG

7 TIPS’N TRICKS 3 MARKET NEWS 41 SPOTLIGHT 71 EVENTS ZAPPING ABBONAMENTO


Figura 6: pinout del TR-52B (visto da Figura 7: connettore d’antenna Figura 8: connettore d’antenna Figura 9: connettore d’antenna Figura 10: l’antenna stampata
sotto). passante nel modello TR-52B. a frusta nel modello TR-52BK. mini coassiale nel modello TR-52BC. sul PCB nel modello TR-52BA.

• C2: collegato alla porta digitale RC2 • P1-P6: per programmazione di fabbrica; TR-52BK Essi sono stati sviluppati per soddisfa-
(con S1 aperto) oppure all’uscita LDO di • S1: switch Questo modello prevede, per il colle- re le esigenze più disparate e sono rea-
3 V (con S1 chiuso); • S2: switch gamento d’antenna, una presa a frusta lizzate con molta chiarezza.
• C3: piedino di alimentazione; (¼ whip) KON-AN-03. Gli esempi forniti sono perfettamente
• C4: massa; IL CONNETTORE D’ANTENNA TR-52BC funzionanti e realizzati in linguaggio C e
• C5: collegato a RA5, -SS, AN4 (in- Attualmente esistono quattro modelli Questo modello prevede, per il collega- includono il file HEX da caricare diret-
del TR-52B, a seconda della tipologia mento d’antenna, una presa mini-coas- tamente sul microcontrollore.
gresso analogico), RC6, Uart TX, RB4,
del connettore d’antenna utilizzato: TR- siale per AN-05-C oppure CAB-U.FL.
AN4 e AN11 (ingressi analogici);
52B, TR-52BK, TR-52BC e TR-52BA. TR-52BA MONITORAGGIO TEMPERATURA E
• C6: collegato a RC3, SCK (ingresso
TR-52B TENSIONE DI UNA BATTERIA VIA RF
clock SPI), SCL (clock I2C); Questo modello prevede un’antenna
Questo modello prevede semplicemente In questo esempio (vedere listato 1) si
• C7: collegato a RC4, SDI (dati SPI), direttamente stampata su PCB. Per
un foro sul quale l’operatore può saldare implementa il controllo a distanza della
SDA (dati I2C); questo motivo la lunghezza complessi-
direttamente l’antenna o uno spezzone temperatura e dello stato della batteria.
• C8: collegato a RC5, RC7, RX Uart, va del modulo è leggermente maggiore.
di filo. In questo caso il numero di sal- L’autonomia del circuito è molto ele-
SDO (uscita SPI); Al fine di semplificare la creazione del-
dature o brasature da effettuare è limi-
le applicazioni al progettista, la IQRF vata. Le caratteristiche salienti dell’im-
• X5: ingresso antenna; tato, e occorre prestare attenzione a
mette a disposizione alcuni esempi e plementazione sono le seguenti:
• X6: massa per antenna a dipolo; non danneggiare il modulo.
note operative di carattere generale. • il TR-52B opera per la maggior parte
del tempo in sleep mode, permettendo
Figura 11: Figura 12: il in tal modo un notevole risparmio della
i quattro connettore
batteria con i suoi 3,5 microampère di
modelli d’antenna KON-
assorbimento;
con diverso U.FL-R-SMT.
tipo di
Figura 13: il connettore
connettore
d’antenna KON-AN-03.
d’antenna.

13 FOCUS ON 18 SKILLS 33 INSIDE 44 TOOLS 67 ANALOG

7 TIPS’N TRICKS 3 MARKET NEWS 41 SPOTLIGHT 71 EVENTS ZAPPING ABBONAMENTO


Figura 14: monitoraggio temperatura e tensione di Figura 15: principio di una rete
una batteria via RF. Mesh.

• i dati della temperatura e della ten- IL PROTOCOLLO IQMESH


sione sono spediti a ogni segnale di Questo protocollo è stato creato nel
“risveglio” del watchdog; 2005 come base di partenza per far co-
• i dati possono essere visualizzati in un municare i sistemi IQRF. L’aspetto in-
terminale IDE. teressante è quello di realizzare pro-
cessi indipendenti in due o più reti
APPLICAZIONI CON RETI MESH wireless. I pacchetti vengono in pratica
La particolarità delle reti Mesh è quella di ricevuti da qualsiasi rete. In una singo-
prevedere un collegamento a maglia (e la rete può essere presente un disposi-
non ad albero). La struttura dunque è si- tivo che funziona da “Coordinatore” e fi-
mile al collegamento Internet. I transcei- no a 65.000 nodi. Le applicazioni, in
ver possono comunicare tra loro, inviare questo caso, diventano estremamente
pacchetti in routing ed estendere quindi la importanti e possono, a grandi linee,
copertura digitale. Un’altra caratteristi- riassumersi come segue:
che del collegamento Mesh è quella di • servizi di multimedia;
implementare un cammino alternativo, • applicazioni di IPTV (Internet Protocol
nel senso che se un pacchetto non riesce Television);
a raggiungere un nodo utilizza un altro • applicazioni in WiMax;
percorso, tra quelli disponibili. Si cerca co- • comunicazioni in broadband;
munque di ottimizzare il percorso, sce- • comunicazioni in stato di emergen-
gliendo il minor numero possibile di nodi. za o in caso di disastro, poiché la rete
Sfruttando questa tecnologia è possibile funziona sempre, scegliendo percorsi al-
trasmettere con una potenza irrisoria, dal ternativi;
momento che il sistema permette di evi- • telemedicina e salute.
tare gli ostacoli. codice MIP 2803591

13 FOCUS ON 18 SKILLS 33 INSIDE 44 TOOLS 67 ANALOG

7 TIPS’N TRICKS 3 MARKET NEWS 41 SPOTLIGHT 71 EVENTS ZAPPING ABBONAMENTO


Transceiver
Il CAN-transceiver è un emettitore

+Inside (transmitter) e un ricevitore


(receiver). Esso converte i dati
del CAN controller in segnali
elettrici che successivamente
MODULO RF trasmette per mezzo delle linee
868MHZ TR52-B del bus dati. Nello stesso modo
Un modulo radio riceve i dati che converte per il
da utilizzare
CAN-controller
in molteplici
applicazioni
di comunicazione di MAURIZIO DI PAOLO EMILIO
dati.
l protocollo CAN-bus è spesso usato
I nel settore automotive, dove sono par-
ticolarmente apprezzate le sue qualità di
affidabilità. Il Controller Area Network,
noto anche come CAN-bus, è uno stan-
dard seriale per bus di campo (princi-
palmente in ambiente automotive), di
tipo multicast, introdotto negli anni ot-
tanta dalla Robert Bosch GmbH, per
collegare diverse unità di controllo elet-
tronico (ECU).
Il CAN è stato espressamente proget- Figura 1: CAN-bus.
tato per funzionare senza problemi an-
che in ambienti fortemente disturbati CAN ha guadagnato grande popolarità bus dati? Esso è costituito da un con-
dalla presenza di onde elettromagneti- nel campo dell’automazione industriale troller, un transceiver, due chiusure per
che e può utilizzare come mezzo tra- e nelle applicazioni per autoveicoli/au- bus dati e due linee per il trasferimento
smissivo una linea a differenza di po- tocarri. Altri mercati in cui le soluzioni dei dati. Eccetto per le linee per il tra-
tenziale bilanciata come la RS-485. con impiego di reti di comunicazioni sferimento dei dati, i componenti so-
L’immunità ai disturbi EMC può essere possono recare vantaggi (apparecchia- no integrati nelle centraline. La tecno-
ulteriormente aumentata utilizzando ca- ture medicali, di testing) stanno comin- logia CAN si colloca sui livelli 1 e 2
vi di tipo twisted pair (doppino intrec- ciando a utilizzare il protocollo CAN. (fisico e data link) della pila ISO-OSI
ciato). Sin dal suo inizio, il protocollo Quali componenti costituiscono il CAN- (figure 1, 2 e 3).

13 FOCUS ON 18 SKILLS 33 INSIDE 44 TOOLS 67 ANALOG

7 TIPS’N TRICKS 3 MARKET NEWS 41 SPOTLIGHT 71 EVENTS ZAPPING ABBONAMENTO


L’object layer si occupa del filtraggio dei Figura 2: Se un nodo trasmette un bit dominante
messaggi. La trasmissione è sempre di CAN-bus.  e un altro un bit recessivo, allora il bit
tipo broadcast (tutti i nodi ricevono i dominante prevale fra i due (realizzan-
medesimi pacchetti). do una combinazione AND logico).
Il transfer layer definisce, invece, le Con questa tecnica, quando viene tra-
modalità di trasferimento: formato dei smesso un bit recessivo, e contempo-
messaggi, arbitraggio del bus, segna- raneamente un altro dispositivo tra-
lazione e correzione degli errori ecc. Il li- smette un bit dominante, si ha una
vello fisico è basato su un singolo ca- collisione, e solo il bit dominante è vi-
nale (di solito un doppino intrecciato, sibile in rete (tutte le altre collisioni so-
schermato o meno e terminato con una no invisibili). In pratica avviene che un
impedenza di 120 ohm). bit dominante è “asserito” dalla gene-
I due conduttori sono noti come CANH razione di una tensione fra i conduttori,
e CANL o semplicemente H e L. mentre un bit recessivo è semplice-
Appositi circuiti sono disponibili per mente ignorato. Si è così sicuri che
rendere possibile la connessione di un TRANSCEIVER CAN Come si svolge una trasmissione di dati: ogni volta che si impone una differenza
sistema a microprocessore con il bus: Il CAN-transceiver è un emettitore (tran- • predisposizione: la centralina mette i di potenziale tutta la rete la rileva e
• Il controlller CAN si fa carico dell’im- smitter) e un ricevitore (receiver). Esso dati a disposizione del CAN-controller quindi “sa” che si tratta di un bit domi-
plementazione del protocollo a livello di converte i dati del CANcontroller in se- per la trasmissione; nante.
data link (un controller CAN stand-alo- gnali elettrici che successivamente tra- • verifica: le centraline verificano se i da- Tutti i frame (detti anche “messaggi”)
ne di Microchip è l’MCP2510). Il con- smette per mezzo delle linee del bus ti ricevuti sono necessari o meno per le iniziano con un bit di “start-of-frame”
troller si può trovare già integrato nel mi- dati. Nello stesso modo riceve i dati loro funzioni; (SOF). I frame del CAN possono essere
crocontrollore. che converte per il CAN-controller. • trasmissione: Il CAN-transceiver ri- di quattro tipi:
• Tramite il transceiver viene realizzato La chiusura per bus dati è una resi- ceve i dati dal CANcontroller, li conver- • data frame: frame contenente i dati
il collegamento fisico al bus (un tran- stenza e impedisce che i dati trasmes- te in segnali elettrici e li trasmette; che il nodo trasmette;
sceiver, sempre di produzione Micro- si vengano rimandati dalle estremità • accettazione: se i dati sono impor- • remote frame: frame che richiede la
chip è l’MCP2551). Il componente non è sotto forma di eco, sfalsandoli. tanti, vengono accettati ed elaborati, trasmissione di un determinato identi-
integrabile a causa dei livelli dei se- Le linee del bus dati, inoltre, sono bidi- altrimenti vengono ignorati; ficatore;
gnali che devono essere controllati dai rezionali e servono per la trasmissione • ricevimento: tutte le altre centraline • error frame: frame trasmesso da un
circuiti affacciati direttamente sul bus. dei dati. collegate al CAN-bus dati diventano ri- qualsiasi nodo che ha rilevato un er-
La lunghezza massima del bus dipende Esse vengono denominate CAN-high e cevitori. rore;
dalla velocità di trasmissione utilizzata. CAN-low. Nel bus dati non viene de- Che cosa trasmette il CAN-bus dati? Il • overload frame: frame che introduce
Occorre che il fronte di un impulso pos- terminato alcun destinatario. I dati ven- CAN trasmette dati secondo un model- un ritardo fra data frame e/o remote
sa viaggiare lungo tutto il bus e poi tor- gono trasmessi sul bus dati e, di rego- lo basato su bit “dominanti” e “reces- frame.
nare indietro prima che il bit sia cam- la, ricevuti e analizzati da tutte le sivi”, in cui i bit dominanti sono gli 0 lo- I data frame sono i frame che eseguono
pionato. centraline allacciate. gici e i bit recessivi sono gli 1 logici. l’effettiva trasmissione dei dati.

13 FOCUS ON 18 SKILLS 33 INSIDE 44 TOOLS 67 ANALOG

7 TIPS’N TRICKS 3 MARKET NEWS 41 SPOTLIGHT 71 EVENTS ZAPPING ABBONAMENTO


Elettroshop – demmel, diplay lcd intelligent

Figura 3:
circuito di
interfaccia
elettrica
CAN-bus. 

I messaggi possono avere due formati: tromagnetiche, che gli consentono di


• base frame format, con 11 bit di iden- sopravvivere e funzionare in ambienti
tificazione; elettrici gravosi.
• extended frame format, con 29 bit di Denominato SN65HVD1050Q, è qualifi-
identificazione. cato secondo la norma AEC-A100 relativa
Lo standard CAN deve obbligatoria- ad applicazioni automobilistiche e sod-
mente riconoscere il formato base fra- disfa o oltrepassa i requisiti del livello
me e può opzionalmente riconoscere fisico specificati dallo standard ISO
il formato extended frame format (che, 11898-2. Il CAN transceiver TJA1145 e il
tuttavia, deve essere tollerato). chip UJA1168 – la prima soluzione alta-
Il CAN base permette 2 11 = 2048 tipi di mente integrata al mondo a supporto
messaggi diversi, ma per ragioni stori- del CAN Partial Networking – offre ai
che se ne usano solo 2031. Nella ver- progettisti, inoltre, un controllo preciso sul
sione extended si possono avere fino a bus di comunicazione delle autovetture.
22 9 = 536.870.912 tipi di messaggi. Mediante una gestione intelligente delle
ECUs (Electronic Control Units) durante
SOLUZIONI COMMERCIALI i periodi di inattività, quando il funzio-
Texas Instruments ha proposto un tran- namento dell’unità non è strettamente
sceiver CAN con protezione contro le necessario, è possibile ottenere una ri-
scariche elettrostatiche fino a ±8 kV duzione significativa dei consumi di car-
(modello del corpo umano). Si tratta di burante e delle emissioni di CO2 senza
un robusto dispositivo che vanta elevata sacrificare le prestazioni della vettura.
immunità dalle interferenze elettroma-
gnetiche e bassissime emissioni elet- Codice MIP 2803587

13 FOCUS ON 18 SKILLS 33 INSIDE 44 TOOLS 67 ANALOG

7 TIPS’N TRICKS 3 MARKET NEWS 41 SPOTLIGHT 71 EVENTS ZAPPING ABBONAMENTO


Mentor Graphics
Un’introduzione al tool HSL elevata complessità logica dei mo- vello come C++/SystemC o Matlab per
di MentorGraphics il quale L’ derni dispositivi (ASIC o FPGA) ri-
chiede la definizione di nuove metodo-
la descrizione del sistema, ma vi sono
anche esperienze di utilizzo di idiomi più
promette una migliore
logie che consentano maggiore recenti, come SysML.
produttività oltre a tempi ridotti
produttività e minori tempi di sviluppo.
di sviluppo e verifica È infatti ormai opinione condivisa che la SOLUZIONI ESL PER LA SINTESI
che si traducono in maggiore riduzione del time-to-market sia il prin- DI ALTO LIVELLO
qualità e incremento dei profitti cipale strumento a disposizione delle Tra le soluzioni ESL rientrano in parti-
aziende per aumentare i profitti. colare i tool di sintesi HSL (High-Level
di MARIANO SEVERI In questa direzione, si è vista crescere Synthesis) che consentono di sintetiz-
negli ultimi anni la diffusione dei tool zare a livello RTL modelli in linguaggi
di progetto ESL (Electronic System Le- astratti, come C++ o SystemC. Tali lin-
vel). Nel volume dal titolo ESL Design guaggi astratti, in effetti, sono i modi nei
and Verification, pubblicato nel 2001 quali, nell’approccio tradizionale diffu-
Figura 1: la diffusione dei tool HSL
da Gartner Dataquest, società di anali- samente adottato, viene oggi specifi-
nel 2011 (da [2]). 
sti per il settore EDA, si definisce ge- cato un generico sistema; la specifica ri-
nericamente ESL una metodologia di sultante viene considerata alla stregua
progetto che prevede “l’adozione di un di un modello di riferimento. Il modello diante linguaggi di descrizione har-
adeguato livello di astrazione al fine di viene validato e ne sono quindi definite dware. In questa fase di pura codifica,
migliorare la comprensione di un siste- le possibili architetture, con riferimento l’intervento pesantemente manuale del
ma e aumentare la probabilità di imple- ai vincoli di dissipazione di potenza, progettista rappresenta una delle prin-
mentazione corretta delle sue funzio- occupazione di area e massima fre- cipali cause di errore; la descrizione
nalità in modo efficace in termini di quenza di lavoro imposti dalla specifica RTL deve necessariamente essere ve-
costi”. La maggior parte dei moderni applicazione. L’architettura selezionata rificata rispetto al modello di riferimen-
sistemi ESL adotta linguaggi di alto li- viene infine descritta a livello RTL me- to e il processo iterativo può richiedere,

13 FOCUS ON 18 SKILLS 33 INSIDE 44 TOOLS 67 ANALOG

7 TIPS’N TRICKS 3 MARKET NEWS 41 SPOTLIGHT 71 EVENTS ZAPPING ABBONAMENTO


nel caso dei sistemi più complessi, lun- rarchiche, poi, consente agevolmente al
ghi periodi, con impatti negativi sul ti- progettista di costruire la propria ar-
me-to-market del progetto e, quindi, chitettura a diversi livelli di comples-
sui relativi margini di profitto. sità; sono supportate metodologie di
I tool HSL citati in precedenza consen- progetto bottom-up e top-down. Allo
tono di automatizzare tale ultima fase di stesso tempo, il tool è in grado di iden-
sintesi, consentendo di derivare la de- tificare autonomamente possibili ge-
scrizione RTL direttamente dal modello rarchie consentendo al progettista di
di riferimento di alto livello. Pur essen- selezionare interattivamente la struttu-
do automatizzata, la procedura è tutta- ra ottimale.
via direttamente controllata dal pro- Catapult non richiede la definizione di
gettista, al quale viene lasciata libertà di interfacce di comunicazione esplicite
scegliere le soluzioni implementative ma è in grado di inferire direttamente
che ritiene più idonee. queste dal codice C++ sulla base di
Da questo punto di vista i tool HSL rap- constraint utente, grazie ad una tec-
presentano un interessante strumento nologia di sintesi proprietaria per la
per l’incremento della produttività, so- quale è stato richiesto brevetto. Il pro-
prattutto nei progetti di elevata com- gettista è in questo modo in grado di
plessità logica. modificare le modalità di implementa-
Figura 2: il flusso
Una recente ricerca condotta da Mentor zione delle interfacce di streaming da-
di progetto con
Graphics nel gennaio 2011 tra oltre ti ed handshaking tra i diversi moduli
Mentor Catapult
1.100 ingegneri in diversi àmbiti di ap- C Synthesis.
della propria architettura senza dover
plicazione ha mostrato (figura 1) che, per questo modificare il codice sor-
nel 13% dei casi, l’azienda per la quale gente, riducendo così la possibilità,
CATAPULT C: SINTESI RTL Catapult è in grado di sintetizzare a li-
essi lavorano adotta già metodologie evidentemente, di introdurvi errori.
DA DESCRIZIONI C++/SYSTEMC vello RTL un’architettura a partire da
di progetto HSL; il 45% ha invece se- Di contro, l’adozione di descrizione
Catapult C Synthesis è il tool di pro- specifiche in linguaggio C++ o SystemC
gnalato l’intenzione di valutare tali stru- TLM in linguaggio SystemC consente la
gettazione HSL di Mentor Graphics. Nel (figura 2).
menti nel corso dell’anno. modellizzazione cycle-accurate per le
Secondo quanti avevano esperienza, 2009 sono stati oltre 170 milioni i com- Esso supporta molte delle principali applicazioni che richiedano la sintesi
anche indiretta, con tali tool, la ridu- ponenti immessi sul mercato e realizzati funzionalità di tali linguaggi come clas- di interfacce predefinite (nella integra-
zione media del tempo di progetto ri- con tale strumento; per ben tre anni si, template e puntatori e modelli com- zione, ad esempio, di System-On-Chip
spetto a quanto si avrebbe invece con consecutivi il tool è stato riconosciuto putazionali astratti di tipo untimed o mediante protocolli standard) pur man-
tradizionali linguaggi di descrizione har- da Gary Smith EDA come il migliore cycle-accurate. tenendo ad alto livello la descrizione
dware è del 35%. della categoria. La possibilità di gestire descrizioni ge- delle funzionalità del core dei moduli.

13 FOCUS ON 18 SKILLS 33 INSIDE 44 TOOLS 67 ANALOG

7 TIPS’N TRICKS 3 MARKET NEWS 41 SPOTLIGHT 71 EVENTS ZAPPING ABBONAMENTO


- [1] http://www.mentor.com/esl/catapult/overview
- [2] Shawm MCCloud, Mentor Graphics “High-Level Synthesis Report 2011”

schematico e di path critici e supporta ratori per il confronto delle uscite del
cross-probing per l’identificazione delle modelli RTL e di quello in linguaggio
sezioni del circuito fuori specifica. L’ado- C++/SystemC, considerando quest’ul-
zione inoltre di uno schema di scheduling timo come riferimento. Catapult si in-
delle risorse in stretta relazione con le tegra con la maggior parte dei tool di
caratteristiche dell’architettura target, progetto ESL oggi disponibili in com-
grazie all’integrazione di librerie certificate mercio, non soltanto proprietari, come
direttamente dai relativi vendor, facilita il Vista e Questa, distribuiti dalla stessa
raggiungimento degli obiettivi di timing Mentor Graphics, ma anche di terze
closure e consente di valutare in breve parti, tra i quali, ad esempio, Desi-
tempo occupazione di area e latenza di gnCompiler di Synopsys, RTL Compiler
elaborazione dell’implementazione otte- di Cadence, XPower di Xilinx, Power-
nuta. Play di Altera. Tra i vantaggi principali di
Catapult possono sicuramente essere
VERIFICA FRONT-TO-BACK annoverati la riduzione drastica dei tem-
COMPLETAMENTE AUTOMATIZZATA pi di sviluppo e validazione (nessuna
Figura 3: l’interfaccia di lavoro di Catapult, strumenti per la definizione dei constraint e la Catapult integra, inoltre, un flusso di iterazione a livello RTL, generazione di
visualizzaizone grafica dei risultati.  verifica funzionale completamente au- codice RTL error-free), l’incremento del-
tomatizzato, fornendo funzionalità di la produttività dei progetti, la maggiore
ANALISI ARCHITETTURALE merging e unrolling di loop, pipeling di linting e static code check del modello, facilità di riutilizzo del codice. Tutte le
E OTTIMIZZAZIONE path dati e di controllo, clock gating, report di code coverage, check a runti- principali aziende del settore elettronico
La sintesi dell’architettura è automatica ed mapping di memorie e resizing del pa- me. L’infrastruttura di verifica creata come Hitachi, Ericsson, Nokia, STMi-
ottimizzata rispetto ai requisiti imposti rallelismo di queste, sharing e merging per il modello C++ può essere del resto croelectronics o Alcatel Space hanno ri-
in termini di occupazione di area, dissi- delle risorse. È tuttavia direttamente con- riutilizzata per la validazione della de- portato storie di successo (in termini di ri-
pazione di potenza e massima frequenza trollabile dal progettista mediante defi- scrizione RTL sintetizzata, così da as- duzione dei tempi di progetto e verifica e
di funzionamento. Catapult (in figura 3 ne nizione di direttive specifiche. Dispone di sicurare elevata confidenza della validità di qualità dei risultati ottenuti) nella va-
è mostrata l’interfaccia di lavoro) dispo- strumenti di visualizzazione grafica dei ri- dei risultati; il tool è in grado di generare lutazione e nell’utilizzo del tool.
ne, infatti, di funzionalità automatiche di sultati come diagrammi Gantt, viewer di automaticamente transactor e compa- Codice MIP 2803571

13 FOCUS ON 18 SKILLS 33 INSIDE 44 TOOLS 67 ANALOG

7 TIPS’N TRICKS 3 MARKET NEWS 41 SPOTLIGHT 71 EVENTS ZAPPING ABBONAMENTO


+Tools
OCTAVE,
L’ALTERNATIVA FREE
A MATLAB
Octave è un progetto
Simulator
di ANTONIO GIANNICO n qualunque campo della progetta- termini di tempo di implementazione
open-source
equivalente al
Real Pic Simulator è un interessante
I zione elettronica, gli strumenti di si-
mulazione contribuiscono allo sviluppo
sia di costi. La possibilità di prevedere
e analizzare con sufficiente accuratez-
commerciale Matlab.
simulatore di microcontrollori PIC di di applicazioni in maniera rapida, pra- za condizioni di funzionamento ben pre-
Vediamone le sue
Microchip di fascia base e media tica, efficiente e flessibile. L’impiego cise, prima ancora che l’applicazione sia
funzionalità. di tali strumenti consente di evitare, al- fisicamente realizzata è un vantaggio
prodotto da Digital Electro Soft che
meno in una fase preliminare del pro- sotto tutti i punti di vista. Un approccio
consente la simulazione visuale di getto, la realizzazione fisica dell’appli- di questo tipo consente inoltre di ri-
applicazioni firmware cazione con enormi vantaggi sia in durre gli step che portano dalla sche-
precedentemente compilate. Il suo
impiego consente, in alcuni casi, il
test ed il debugging dell’applicazione
praticamente a costo zero. Per questo
motivo può essere, nel suo àmbito, un
ottimo strumento sia di
apprendimento sia di ausilio alla
progettazione

Figura 1: dal sito web di Digital Electro


Soft (http://digitalelectrosoft.com/) è
possibile effettuare il download della
versione trial di Real PIC Simulator (v. 1.3)
caratterizzata da alcune limitazioni
rispetto a quella dotata di licenza e da un
periodo di validità di 30 giorni [1]. 

13 FOCUS ON 18 SKILLS 33 INSIDE 44 TOOLS 67 ANALOG

7 TIPS’N TRICKS 3 MARKET NEWS 41 SPOTLIGHT 71 EVENTS ZAPPING ABBONAMENTO


44
matizzazione generale e iniziale del- te in un’unica board, risorse hardware e
l’applicazione alla sua effettiva realiz- di programmazione. Queste consento-
zazione. Ciò consente al progettista di no lo sviluppo di almeno una parte del
ipotizzare, e quindi analizzare in antici- progetto senza la necessità di realiz-
po, determinate condizioni operative, zare appositamente la scheda elettro-
scoprire e correggere tempestivamen- nica di cui il controllore sarà equipag-
te errori di progettazione quando il pro- giato. Questi strumenti snelliscono
getto è ancora in una fase embrionale e quindi la progettazione e ne favorisco-
spesso di ridurre il numero di passi di no la modularità.
prototipazione che portano alla realiz- I molteplici kit di sviluppo per controllori
zazione finale dell’applicazione. Inol- PIC, tra cui ricordiamo – solo per ci-
tre gli strumenti di simulazione di solito tarne alcuni – le diverse versioni di Ea-
si sposano perfettamente con la logica sy PIC, ne sono un esempio lampante.
modulare che la progettazione elettro- Un simulatore come Real Pic Simulator
nica spesso prevede. Quasi mai infatti si spinge oltre questa logica, aumen-
un’applicazione elettronica è compo- tando ulteriormente il livello di astra-
sta unicamente da risorse hardware ma zione della progettazione della specifi-
piuttosto dall’insieme di risorse har- ca applicazione rispetto alla sua
dware e firmware. Le parti hardware e effettiva realizzazione. L’impiego di uno
firmware di un’applicazione elettroni- strumento di simulazione di questo tipo,
ca possono a loro volta essere rese infatti, consente di sostituire comple- Figura 2: passi di
modulari e ciascun modulo può essere tamente il kit di sviluppo con un’inter- installazione di
sviluppato e messo a punto separata- faccia software che costituisce una ve- Real Pic Simulator
mente. ra e propria demo-board virtuale. (A: avvio
Poiché oggi le applicazioni elettroni- Real PIC Simulator, realizzato da Digital dell’installazione; B:
che anche più semplici, diversamente Electro Soft, presenta queste caratteri- informazioni su
da quanto accadeva solo uno o due stiche essendo un software che con- licenza e copyright; C:
decenni fa, sono caratterizzate quasi sente la simulazione firmware di appli- scelta della cartella di
installazione; D:
sempre dall’integrazione di hardware cazioni per microcontrollori PIC di fascia
impostazione dei
e firmware, disporre di kit di sviluppo e base e media e di molte delle risorse
componenti da
adeguate demo-board di supporto alla hardware tipicamente integrate su una
installare; E:
progettazione consente di ridurre enor- scheda di sviluppo. Nel corso degli ul-
installazione in corso;
memente i tempi di sviluppo di un’ap- timi anni, su “Fare Elettronica” e su F: fine installazione; G:
plicazione a microcontrollore, sia ne- “Firmware” hanno trovato spazio trat- note sulla licenza; H:
gli aspetti hardware sia in quelli tazioni e applicazioni firmware basate validità della versione
firmware. Un kit di sviluppo infatti, tipi- sui controllori PIC di Microchip. Anche demo, 30 giorni). 
camente mette a disposizione, integra- per questo motivo questo articolo può

13 FOCUS ON 18 SKILLS 33 INSIDE 44 TOOLS 67 ANALOG

7 TIPS’N TRICKS 3 MARKET NEWS 41 SPOTLIGHT 71 EVENTS ZAPPING ABBONAMENTO


45
risultare gradito e utile a coloro che uti- compilate praticamente senza disporre
lizzano questo tipo di microcontrollori. di alcuna risorsa hardware.
Real Pic Simulator può risultare infatti di Per una corretta collocazione operativa
supporto sia a chi utilizza i microcon- di Real Pic Simulator è necessario, co-
trollori PIC di Microchip nella progetta- me per ogni strumento di ausilio alla
zione, sia a chi intende intraprendere lo progettazione di schede a microcon-
studio della loro programmazione fir- trollore, individuare dapprima quali mo-
mware in maniera semplice ed efficace delli di controllori esso supporti.
anche senza disporre di demo-board e Questi ultimi sono raggruppati nella ta-
kit di sviluppo. bella 1, distinti rispettivamente in mo-
Quanto esporremo non intende in nes- delli di fascia base e modelli di fascia
sun modo sostituire le informazioni e media.
le documentazioni ufficiali del software Tra le caratteristiche del simulatore vi
Figura 3: l’interfaccia utente di Real PIC Simulator all’avvio. 
che potete trovare sul sito web del pro- sono la simulazione delle risorse fisiche
duttore [1] ma si pone più semplice- dei controllori implementati e le fun-
mente l’obiettivo di mostrare al lettore zioni operative di carattere visuale. Le
quanto questo strumento possa risul- prime sono riassunte, come già detto, in
tare efficace e di semplice impiego. Il tabella 1 mentre le seconde saranno
lettore può liberamente scaricare dal si- ampiamente illustrate e discusse nei
to del produttore la versione trial del paragrafi a seguire.
software che presenta come principa-
le limitazione il periodo di validità di PRINCIPALI CARATTERISTICHE
trenta giorni, in ogni caso sufficiente a E RISORSE OPERATIVE
sperimentarne direttamente le funzio- La caratteristica operative principale
nalità. dell’applicativo consiste nella possibi-
L’impiego senza limitazione necessi- lità di simulare l’esecuzione del codice
ta, come si può immaginare, dell’ac- senza disporre fisicamente del con-
quisto di una licenza. Per maggiori trollore e delle risorse hardware esterne
dettagli si rimanda al sito del produt- che saranno a esso connesse nel pro-
tore riportato in [1]. getto fisico reale. Operativamente esso
integra:
REAL PIC SIMULATOR • funzioni di Disassembler grazie alle
Real Pic Simulator è un simulatore di mi- quali è possibile esaminare il codice
crocontrollori PIC di Microchip di fa- firmware in formato assembler; lo stes-
scia base e media che consente la si- Figura 4: la schermata principale può contenere una sola interfaccia di gestione so codice disassemblato può essere
mulazione e quindi il test di applicazioni (corrispondente al relativo tab panel) oppure due interfacce, come mostrato in questo esportato (funzione non disponibile nel-
firmware precedentemente sviluppate e caso (visualizzazione simultanea della “Program Memory” e dell’area “Visual”).  la versione trial);

13 FOCUS ON 18 SKILLS 33 INSIDE 44 TOOLS 67 ANALOG

7 TIPS’N TRICKS 3 MARKET NEWS 41 SPOTLIGHT 71 EVENTS ZAPPING ABBONAMENTO


46
Figura 5: le funzioni sono accessibili attraverso i menu a tendina, i pulsanti della toolbar
e i tab panel. 

Figura 6: esploso dei menu a tendina. 

• funzioni di Debugger sfruttabili insie- strano la configurazione dei pin del mi-
me all’esecuzione simulata del codice crocontrollore.
alla velocità impostata o in modalità L’impiego del simulatore da parte del-
passo-passo (step-by-step) o ancora l’utente è prevalentemente visuale e
mediante l’impiego di breakpoint co- consente, in questa forma, la simula-
me è tipico per un debugger; zione del codice e il monitoraggio degli
• funzioni di visualizzatore del contenuto effetti che si producono sia sulle risor-
della RAM e della EEPROM (memory se interne del controllore sia sui com-
map); ponenti hardware virtuali implementati
• funzioni di Processor viewer che mo- nell’applicazione e connessi virtual-

13 FOCUS ON 18 SKILLS 33 INSIDE 44 TOOLS 67 ANALOG

7 TIPS’N TRICKS 3 MARKET NEWS 41 SPOTLIGHT 71 EVENTS ZAPPING ABBONAMENTO


Figura 7: esploso dei comandi della Toolbar. 

http://digitalelectrosoft.com/ (informazioni generali e download della versione demo del software).

Figura 9: tab panel “EEPROM”. 

mente al controllore stesso. Questi ul- • sorgenti analogiche di segnale attra-


timi costituiscono prevalentemente verso i quali poter sollecitare i pin di
componenti di ingresso e di uscita tra i ingresso analogici del controllore;
più comuni nella realizzazione effettiva • pulsanti singolarmente impostabili
delle schede a microcontrollore. come normalmente aperti o come nor-
Tra le risorse hardware simulate interne malmente chiusi;
ai controllori implementati nel simulatore • display LCD per la visualizzazione di
vi sono timer, memoria RAM ed EE- testi;
PROM, interrupt-on-change, interrupt su • keypad a matrice 4x4;
pin int, CCP, ADC, interfaccia UART. • display LED a 7 segmenti;
Tra i Componenti hardware virtuali ester- • oscilloscopi digitali per l’analisi dello
ni al controllore e che è possibile con- stato dei pin del controllore;
nettervi, troviamo invece: • LCD Grafico;
• sequenze di LED; • buzzer (speaker) alla cui attivazione
Figura 8: tab panel “Program Memory”
• terminale UART (software ed har- corrisponde l’emissione di un suono
(si notino i breakpoint che appaiono
dware) per la simulazione della comu- da parte della scheda audio e quindi
evidenziati in rosso). 
nicazione seriale; dagli speaker del PC;

13 FOCUS ON 18 SKILLS 33 INSIDE 44 TOOLS 67 ANALOG

7 TIPS’N TRICKS 3 MARKET NEWS 41 SPOTLIGHT 71 EVENTS ZAPPING ABBONAMENTO


48
Elettroshop – comfile moacon

Figura 10: tab panel “Memory Map”. 

nenti di ingresso e di uscita che possia-


mo trovare su una scheda a microcon-
trollore possono essere tantissimi e ov-
viamente non è possible in un simulatore
contemplarli tutti.
Per esempio, esistono infiniti tipi di sen-
sori che possono essere interfacciati a un
microcontrollore.
Per questo motivo un simulatore di con-
Figura 11: tab panel “Variables”.  trollori simula più precisamente il com-
• generatore di funzioni per la genera- portamento firmware e le risorse har-
zione di sequenze di stati per i pin di in- dware di ingresso e uscita più comuni,
gresso del controllore; che risultano presumibilmente sufficien-
• memoria EEPROM pilotabile serial- ti a testare il funzionamento firmware
mente su bus I2C (memoria 24C64 da dell’applicazione (lo stato di un sensore,
8KBytes); per esempio, può essere simulato con un
• Real Time Clock DS1307. livello logico e quindi con un pulsante).
Come è facile comprendere, i compo- È importante sottolineare che quando

13 FOCUS ON 18 SKILLS 33 INSIDE 44 TOOLS 67 ANALOG

7 TIPS’N TRICKS 3 MARKET NEWS 41 SPOTLIGHT 71 EVENTS ZAPPING ABBONAMENTO


49
Fascia Controllori supportati Risorse fisiche implementate

Base

(Baseline) 10F200 10F202 10F204 10F206 10F220 10F222 12F508 12F509 Timer0

12F510 12F519 16F505 16F506 16F526 16F54 16F57 16F59 Timer1

Timer2

12F609 12F615 12F629 12F635 12F675 12F683 16F610 16F616 16F627 EEPROM read/write e FLASH read

16F627A 16F628 16F628A 16F630 16F631 16F636 16F639 16F648A Interrupt-on-change

16F676 16F677 16F684 16F685 16F687 16F688 16F689 16F690 16F716 16F72 External interrupt (INT pin)

Media 16F722 16F723 16F724 16F726 16F727 16F73 16F737 16F74 16F747 16F76 CCP

(Midrange) 16F767 16F77 16F777 16F785 16F818 16F819 16F83 16F84 16F84A 16F87 ADC

16F870 16F871 16F872 16F873 16F873A 16F874 16F874A UART

16F876 16F876A 16F877 16F877A 16F88 16F882 16F883 16F884 16F886

16F887 16F913 16F914 16F916 16F917 16F946

Tabella 1: microcontrollori PIC di Microchip supportati dal software di simulazione Real PIC Simulator [1]. 
Figura 12: tab panel “Processor”. 

si parla di componenti hardware virtuali DOWNLOAD E INSTALLAZIONE DEL cenza. Sul sito del produttore potete consente di salvare il progetto e il file
impiegati all’interno del simulatore, que- SIMULATORE trovare informazioni più dettagliate a ASM originato dall’operazione di dis-
sti sottintendono l’impostazione di una È importante sottolineare che Real Pic riguardo. Attualmente la versione di- sassemblaggio del file “.hex”. L’impiego
determinata configurazione hardware o di Simulator è un software non gratuito sponibile è giunta alla 1.3. del software senza limitazioni né fun-
prodotto da Digital Electro Soft, tuttavia L’applicazione occupa pochi megaby- zionali, né di tempo di validità comporta
una specifica interconnessione pin-to-pin
è possibile utilizzarne una copia gra- te sull’hard disk, è di semplice installa- in ogni caso l’acquisto della relativa li-
con il controllore che ricalchi la reale
tuita per scopi di valutazione avente zione (figura 2), di semplice impiego e cenza. Il download della versione de-
composizione hardware e circuitale del-
validità di 30 giorni. Il software, in que- può essere installata su piattaforme do- mo include il manuale integrato e alcuni
l’applicazione. sta versione può essere scaricato di- tate di limitate risorse. PC a 32 bit basati progetti di esempio.
Tali impostazioni costituiscono il legame rettamente dal sito del produttore (fi- su Windows 2000 o XP sono più che L’installazione del programma si avvia, si
tra il progetto virtuale e quindi la sua si- gura 1). Se si desidera utilizzare questo sufficienti per l’installazione e l’esecu- sviluppa e si conclude in pochi e semplici
mulazione e la relativa implementazione software anche dopo il periodo di va- zione delle simulazioni. passi guidati come mostrato sintetica-
fisica (scheda a microcontrollore). lutazione è necessario acquistarne la li- La versione demo del simulatore non mente in figura 2.

13 FOCUS ON 18 SKILLS 33 INSIDE 44 TOOLS 67 ANALOG

7 TIPS’N TRICKS 3 MARKET NEWS 41 SPOTLIGHT 71 EVENTS ZAPPING ABBONAMENTO


50
IMPIEGO DELL’INTERFACCIA Tutte le funzioni sono accessibili (figu- I MENU A TENDINA
DI SIMULAZIONE ra 5) attraverso: In figura 6 è riportato l’esploso dei me-
Lo scopo principale del simulatore è • i comandi dei menu a tendina; nu a tendina. All’interno del menu “File”
ridurre tempi e costi di sviluppo delle • il menu di selezione del controllore; sono disponibili rispettivamente i co-
applicazioni firmware basate su con- • il menu di selezione della velocità di mandi di creazione di un nuovo progetto
trollori PIC delle fasce baseline e mi- esecuzione (simulation speed e real (New), di salvataggio del file ASM (Save
drange. In questa sezione dell’articolo speed); ASM) ottenuto automaticamente dal di-
intendiamo illustrare la struttura del- • i comandi della toolbar; sassemblaggio del “file hex” caricato
l’interfaccia di simulazione e l’impiego • i tab panel. con il comando “Load HEX” e i comandi
Molte delle funzioni accessibili attraver- di salvataggio e caricamento dei pro- Figura 14: toolbar dei componenti
dei componenti virtuali integrati che
so i menu a tendina sono accessibili an- getti (Save Project, Load Project). A tale hardware virtuali disponibili all’interno del
consentono la simulazione dell’appli-
che attraverso i pulsanti della toolbar. proposito è importante ricordare che tab panel “Visual”. 
cazione firmware.
All’avvio, l’interfaccia dell’applicativo
nella versione demo del programma so-
si presenta come in figura 3. La pro- no interdette le funzioni “Save Project” e
gram memory del controllore, cui è “Save ASM”.
possibile accedere attraverso il tab All’interno del menu “Run” sono invece
panel “Program Memory” appare vuo- disponibili i comandi di esecuzione (Run)
ta in quanto non è stato ancora cari- e di esecuzione step-by step del fir-
cato, sul controllore selezionato, al- mware e le funzioni di reset della simu-
cun firmware, e analogamente appare lazione e di gestione dei breakpoint che
vuota l’interfaccia accessibile attra- possono essere inseriti all’interno del
verso il tab panel “Visual”, mentre gli tab panel “Program Memory” attraverso
altri tab panel riportano principalmente un doppio click in corrispondenza della
informazioni relative al controllore se- specifica linea ASM del programma. Il
lezionato. menu “Setting” consente invece sce-
gliere tra rappresentazione decimale e
È interessante osservare che la scher-
rappresentazione esadecimale per dati e
mata principale può contenere una so-
codice.
la interfaccia di gestione (corrispon-
dente al relativo tab) oppure due
I PULSANTI DELLA TOOLBAR
interfacce, come mostrato nell’esempio In figura 7 è riportato il dettaglio dei
di figura 4 dove si nota la visualizza- pulsanti componenti la toolbar.
zione simultanea della “Program Me- • Load HEX or COD file. Consente il
mory” e dell’area “Visual” che riporta le caricamento virtuale del file “.hex” (ge-
risorse hardware collegate virtualmen- nerato da un precedente processo di
te al controllore. Figura 13: tab panel “Visual”.  compilazione) nella memoria del con-

13 FOCUS ON 18 SKILLS 33 INSIDE 44 TOOLS 67 ANALOG

7 TIPS’N TRICKS 3 MARKET NEWS 41 SPOTLIGHT 71 EVENTS ZAPPING ABBONAMENTO


51
Figura 16: esploso
delle funzioni di
impostazione di
una barra di led
Figura 15: esploso delle funzioni di impostazione di un LCD Display virtuale.  virtuali. 

trollore. All’interno del tab panel “Ee- poiché il modello di controllore scelto l’impostazione delle risorse hardware di utile nel caso in cui si voglia riese-
prom” compare automaticamente il con- non può essere modificato successi- virtuali predisposte all’interno del tab guire dall’inizio la simulazione.
tenuto della memoria eeprom del con- vamente. panel “Visual” costituente di fatto la • Step Into (speedkey F7). Consente di
trollore mentre all’interno del tab panel • Load Project. Consente di caricare board virtuale. eseguire il codice disassemblato in mo-
“Program Memory” compare automati- un progetto precedentemente salvato. • Search. Consente di effettuare ricer- dalità step-by-step, cioè una istruzione
camente il contenuto della memoria di A questa operazione corrisponde il ca- che all’interno del programma dissas- assembler alla volta. Il contenuto dei
programma in formato assembler (di- ricamento sia del file “.hex” che della semblato (file .ASM) e reso disponibile diversi tab panel viene aggiornato alla fi-
sassemblaggio del file .hex). configurazione delle risorse hardware all’interno tab panel “Program Memory”. ne di ogni step. Tale modalità può ri-
È importante osservare che la selezione virtuali (tab “Visual”) facenti parti del • Reset. Ricarica il codice eseguibile sultare particolarmente interessante
del controllore attraverso il relativo me- progetto stesso. “.hex” ed esegue il reset dei compo- quando si intende esaminare il codice
nu a tendina “Processor” deve avveni- • Save Project. Consente di salvare il nenti visuali, della memoria RAM e del- alla ricerca di bachi.
re prima del caricamento del firmware progetto e con esso sia il file “.hex” sia le variabili di simulazione; risulta quin- • Run/Stop (speedkey F9). Consente

13 FOCUS ON 18 SKILLS 33 INSIDE 44 TOOLS 67 ANALOG

7 TIPS’N TRICKS 3 MARKET NEWS 41 SPOTLIGHT 71 EVENTS ZAPPING ABBONAMENTO


52
I TAB PANEL
I tab panel consentono di esplorare e
analizzare gli effetti della simulazione
del firmware sulle risorse hardware del
controllore e sulle risorse hardware vir-
tuali ad esso collegate e gestite all’in-
terno del tab panel “Visual”. Ne ana-
lizziamo brevemente le rispettive
funzioni.
• Program Memory (figura 8). Consen-
te di esaminare la memoria di pro-
Figura 17: esploso delle funzioni di impostazione di un “Analog Figura 18: esploso delle funzioni di impostazione di un “Dispaly 7 gramma il cui contenuto viene visua-
Tracker” virtuale.  segmenti” virtuale.  lizzato in formato ASM, il valore del
Program Counter e la posizione dei bre-
• Simulation speed. Consente di sele- akpoint inseriti dall’utente per motivi
zionare la frequenza di simulazione in- di debugging. L’esplorazione del codi-
tesa come velocità di esecuzione della ce è facilitato da due funzioni operative
simulazione e non come velocità effettiva integrate. La prima consente, attraver-
di esecuzione del codice da parte del so un doppio-click su istruzioni “Call” o
controllore nell’implementazione reale. “Goto“, di saltare direttamente all’in-
Se la frequenza della simulazione è dirizzo puntato, mentre la seconda per-
uguale alla frequenza reale (real speed), mette, attraverso il tasto backspace,
l’operazione opposta cioè di ritorno al-
il codice è eseguito virtualmente (simu-
l’istruzione di partenza.
lato) in tempo reale. La velocità di ese-
Un click con il tasto destro del mouse su
cuzione della simulazione può essere
un’istruzione determina l’apertura di un
tuttavia modificata ed in questo modo
menu di pop-up attraverso il quale è
rallentata sufficientemente tanto da con-
possibile inserire o eliminare break-
sentire l’osservazione e l’analisi degli
point e forzare il valore del program
Figura 19: esploso delle funzioni di impostazione di un “UART Terminal” virtuale.  effetti che ne scaturiscono sulle uscite e counter ad assumere il valore corri-
sulla memoria del controllore oltre che spondente all’indirizzo della stessa
di avviare / interrompere la simulazione. La toolbar integra inoltre i seguenti me- sulle risorse hardware virtuali ad esso istruzione. Gli stessi breakpoint pos-
Il contenuto dei tab-panel viene ag- nu a tendina: connesse. sono essere inseriti o eliminati attra-
giornato in real-time durante la simula- • Processor. Consente all’utente di sce- • Real Speed. Consente di impostare verso un semplice click sul campo con-
zione. gliere il modello di controllore dalla lista l’effettiva frequenza di clock del con- tenente l’indirizzo dell’istruzione.
• Info. Fornisce informazioni generali di quelli implementati all’interno del si- trollore impiegata nell’implementazione • EEPROM Memory (figura 9). Con-
sul programma. mulatore. hardware dell’applicazione. sente di ispezionare il contenuto della

13 FOCUS ON 18 SKILLS 33 INSIDE 44 TOOLS 67 ANALOG

7 TIPS’N TRICKS 3 MARKET NEWS 41 SPOTLIGHT 71 EVENTS ZAPPING ABBONAMENTO


53
Elettroshop – IQRF

Figura 20: esploso


delle funzioni di
impostazione di un
“Push Button”
virtuale. 

memoria eeprom del microcontrollore. È stop o ai singoli passi di esecuzioni


possibile modificare in maniera forzata step-by-step.
il contenuto di quest’ultima attraverso • Processor (figura 12). Mostra una
un doppio click sulla specifica cella di rappresentazione del microcontrollore,
memoria. La finestra di pop-up che la mappa dei suoi pin e alcune infor-
compare consente di inserire il nuovo mazioni tecniche specifiche (dimensio-
valore da assegnare al byte seleziona- ne della program memory, della memo-
to. Il contenuto della memoria eeprom, ria RAM, della EEPROM, architettura e
come visualizzato in questo tab panel, risorse fisiche della MCU).
non viene aggiornato durante la simu- • Visual (figura 13). Consente all’uten-
lazione ma nel momento in cui questa te di interagire con la simulazione poi-
viene interrotta (evento di stop o step in ché riporta, in forma visuale, le risorse
una esecuzione step-by-step). hardware interconnesse (virtualmente)
• Tab Variables (figura 11). Mostra il con il controllore. La pagina è suddivi-
contenuto di alcuni registri della MCU e sa in due distinte aree: la toolbar dei
di variabili legate alla simulazione. Il componenti, posizionata nella parte si-
contenuto non viene aggiornato du- nistra e la “breadboard virtuale” conte-
rante la simulazione ma in occasione nente i componenti hardware virtuali.
di interruzioni corrispondenti a eventi di Nel successivo paragrafo forniremo una

13 FOCUS ON 18 SKILLS 33 INSIDE 44 TOOLS 67 ANALOG

7 TIPS’N TRICKS 3 MARKET NEWS 41 SPOTLIGHT 71 EVENTS ZAPPING ABBONAMENTO


54
descrizione più dettagliata dei compo- Figura 22:
nenti hardware virtuali disponibili al- componente “Note”. 
l’interno del tab panel “Visual” e ac-
cessibili attraverso la suddetta toolbar. virtuale che consente di ana-
lizzare il livello digitale dei
I COMPONENTI HARDWARE pin del controllore;
VIRTUALI • Graphic LCD. Simula un di-
In figura 14 è riportata la toolbar dei splay LCD grafico Samsung
componenti hardware virtuali disponibili KS107/KS108 compatibile;
all’interno del tab panel “Visual”. Cia- • Buzzer. Simula un Buzzer;
scun componente visuale può essere • Function generator. Simula un gene-
Figura 21: esploso delle funzioni di impostazione del “keypad 4x4” virtuale. 
inserito nella “breadboard virtuale” per ratore di segnali digitali (8 canali di-
trascinamento dalla toolbar dei com- sponibili);
ponenti (figura 14). Una volta inseri- • I2C serial memory. Simula una ee-
to, il componente appare con una bar- prom 24C64 interfacciabile su bus se-
ra descrittiva nella parte alta e una riale I2C;
opzione di chiusura. I componenti di- • DS1307 Real Time Clock. Simula un
sponibili sono, nell’ordine: Real Time Clock su I2C.
• Led bar. Simula un array di otto led; I componenti possono essere cancellati
• Analog tracker. Simula un livello di attraverso un click sul simbolo di chiu-
tensione analogico impostabile a pia- sura “x” o spostati nell’area di lavoro at-
cimento dall’utente; traverso l’impiego del tasto destro del
• LCD Display. Simula un display LCD mouse. Essi necessitano in generale di
(2x16, 2x20, 4x16 oppure 4x40 caratteri); una adeguata impostazione in modo
• 7 segment display. Simula un display da risultare operativi in quanto con-
a 7 segmenti con ingresso di enable; gruenti con il firmware che si intende si-
• UART Terminal. Simula un terminale mulare. Le opzioni di impostazione so-
RS232; no accessibili agendo con il tasto
• Push button. Simula un pulsante che sinistro del mouse su un punto specifi-
può essere impostato come NA o NC, co della title-bar o agendo su specifici
connesso a VCC o GND; pulsanti, tab e menu propri del com-
• Keypad. Simula un tastierino numeri- ponente virtuale. Nella figura 15, per
co a matrice 4x4; esempio, è riportato l’esploso di tutte le
• Note. Simula un blocco note all’in- impostazioni possibili e/o necessarie
terno del quale inserire testi e note ine- per un LCD testuale. Lo stato dei com-
renti il progetto; ponenti virtuali è aggiornato istante per
• Oscilloscope. Simula un oscilloscopio Figura 23: esploso delle funzioni di impostazione dell’oscilloscopio virtuale.  istante durante la simulazione e mo-

13 FOCUS ON 18 SKILLS 33 INSIDE 44 TOOLS 67 ANALOG

7 TIPS’N TRICKS 3 MARKET NEWS 41 SPOTLIGHT 71 EVENTS ZAPPING ABBONAMENTO


55
strato in forma visuale all’interno del accessibile con un click sulla barra del
tab panel “Visual”. titolo, è possibile selezionare il canale
Come si osserva, è possibile selezionare analogico. Il numero di canali analogici
il colore dell’LCD ed il tipo di LCD (2x16, disponibili dipende dal particolare mo-
2x20,4x16, 4x40). Per il corretto fun- dello di microcontrollore per cui a cia-
zionamento, come accade nell’imple- scun canale analogico corrisponde fi-
mentazione reale hardware è necessa- sicamente un determinato pin analogico
rio impostare, per ciascun pin, la relativa del microcontrollore.
connessione al controllore (pin select) o Il componente virtuale che simula un
all’alimentazione (“VDD”-1 logic o display a sette segmenti a un digit (fi-
+5volt, VSS-0 logic, ground, 0 volt) o gura 18) può essere invece impostato
specificare che quel determinato pin nelle connessioni virtuali dei suoi pin at-
non risulta connesso (opzione “None”). traverso un click su ciascuno dei seg-
L’LCD può essere utilizzato, come ac- menti componenti. L’utente può impo-
cade nei reali LCD, nella configurazione starne colore dei segmenti e modalità di
a 4-bit o ad 8-bit (nel primo caso ven- funzionamento attraverso l’opzione
gono utilizzate le linee che vanno da “Mode” (modalità Real time/Sampling).
D4 a D7). La comunicazione attraverso una UART
Tra i componenti visuali non possono è piuttosto comune nei controllori Mi-
mancare i LED (figura 16). L’applica- Figura 24: crochip di fascia base e media. Per
zione integra infatti delle barre di LED esploso delle questo motivo tra i componenti visuali di
(array di 8 led), singolarmente impo- funzioni di Real PIC Simulator vi è l’UART Terminal
stabili. impostazione del che consente all’utente di analizzare e
“Display grafico”
Attraverso il menu di pop-up, accessi- controllare i dati inviati e ricevuti attra-
virtuale (128x64
bile con un click sul singolo LED, si ec- verso un terminale UART.
pixel Samsung
cede all’’opzione “Active On” che con- In figura 19 sono riportati tutti i percorsi
KS107/KS108
sente di definire quale stato del pin di impostazione del componente. L’im-
compatibile). 
porta in accensione il LED dal momen- postazione “Serial type”à “Hardware”
to che questo può, nell’effettiva imple- imposta il componente in una modalità
mentazione fisica, essere connesso al su un pin del controllore incrementato di questo e un determinato componente che prevede la connessione dei pin RX
pin del controllore attraverso una resi- indice se si sceglie l’opzione down e visuale. e TX rispettivamente ai pin RX e TX
stenza di pull-down (connessione a decrementato se si sceglie l’opzione Gli “Analog tracker” (figura 17) con- hardware del terminale UART del con-
massa) oppure attraverso una resistenza up. Analoga risulta la funzionalità del- sentono invece di simulare un segnale trollore.
di pull-up (connessione a VCC). L’op- l’opzione “Next →”. Si tratta di opzioni analogico che varia in funzione della L’impostazione “Serial type”à”Softwa-
zione “Previous →” indica che il pin particolarmente utili quando si inten- posizione nella quale si trascina il cur- re” prevede invece la connessione dei
precedente del componente è connes- de utilizzare pin consecutivi di una por- sore a slitta (escursione virtuale: 0 e pin RX e TX ai pin desiderati del con-
so alla stessa porta del controllore ma ta del controllore nella connessione tra 1023). Attraverso il menu di pop-up, trollore per una emulazione software

13 FOCUS ON 18 SKILLS 33 INSIDE 44 TOOLS 67 ANALOG

7 TIPS’N TRICKS 3 MARKET NEWS 41 SPOTLIGHT 71 EVENTS ZAPPING ABBONAMENTO


56
della comunicazione. L’utente può se- Figura 25: A - componente abbastanza comune nel-
lezionare il formato dei dati ricevuti e dei esploso delle l’interfacciamento di un controllore e
dati trasmessi scegliendo tra formato funzioni di per questo viene simulato in Real Pic Si-
HEX e formato ASCII. I dati impostati al- impostazione di un mulator attraverso un apposito com-
l’interno dell’apposita casella di testo “buzzer” virtuale;
ponente visuale. È possibile scegliere lo
B - buzzer
vengono inviati al microcontrollore at- stato di default dei pulsanti (pulsante
interdetto. 
traverso il pulsante “Send”. non premuto). Gli ingressi si intendono
Se si seleziona una porta seriale del dotati di resistenze di pull-down in de-
PC (COM1, COM2, etc.), il terminale in- fault state e le connessioni possono
via effettivamente i dati ricevuti dal con- essere stabilite attraverso un click sui
trollore virtuale alla porta seriale del pulsanti disponibili lungo la parte bas-
PC e trasmette i dati ricevuti dalla por- sa e la parte destra del componente
ta seriale del PC alla porta della MCU visuale (figura 21). In ogni progetto è
virtuale. utile inserire note e testi esplicativi. A ta-
Anche i pulsanti (push-button, figura le scopo Real PIC Simulator prevede il
20) sono componenti abbastanza co- componente visuale “Note” (lunghez-
muni per l’interfacciamento di un con- za massima del testo: 255 caratteri, fi-
trollore che consentono di simulare il gura 22). L’oscilloscopio virtuale con-
cambiamento dello stato dei pin di in- sente invece di monitorare i livelli digitali
gresso dello stesso controllore. Alla (1/0) sui pin del controllore. Per cia-
pressione del pulsante sinistro del mou- scun canale è possibile selezionare il pin
se corrisponde la simulazione della del controllore che si intende monitorare
pressione del pulsante virtuale mentre la e il colore della traccia. La base dei
pressione del tasto destro del mouse si- tempi (time/div) riportata in basso a si-
mula un interruttore (dopo una pres- nistra rappresenta il tempo compreso
sione, il ritorno nello stato iniziale è tra due tracce verticali e può essere
possibile mediante una nuova pressio- modificata trascinando lo slider e sele-
ne). Il pin in ingresso al controllore cui il zionando il moltiplicatore (x1, x10, x100
pulsante è collegato, come al solito, etc.), entrambi questi ultimi disponibili
viene selezionato dal menu di impo- nella parte bassa del componente (fi-
stazione del componente. gura 23).
L’opzione “Type” consente di imposta- Anche il display grafico (GLCD) è un
re lo stato di default del pulsante (per componente facilmente interfacciabi-
esempio, “Normal=1 Pressed=0” signi- le con un controllore PIC. Il relativo
fica che l’ingresso presenta valore 1 componente virtuale integrato in Real
quando non è premuto e 0 quando è Figura 26: esploso delle funzioni di impostazione del “Generatore di funzioni” virtuale (8 PIC Simulator simula più precisamente
premuto). Il keypad 4x4 è anch’esso un canali).  un display grafico 128x64 pixel Sam-

13 FOCUS ON 18 SKILLS 33 INSIDE 44 TOOLS 67 ANALOG

7 TIPS’N TRICKS 3 MARKET NEWS 41 SPOTLIGHT 71 EVENTS ZAPPING ABBONAMENTO


57
to temporale desiderato. La traccia del nee A0-A2. Più memorie possono quin-
segnale si intende percorsa da sinistra di essere connesse allo stesso bus I2C
verso destra in maniera ciclica. poiché la relativa selezione è gestibile
Altri componenti che sovente troviamo attraverso il “chip address”.
connessi a un controllore sono le me- Completa l’insieme delle risorse ester-
morie eeprom (figura 27). Il compo- ne hardware virtuali integrate in Real
nente virtuale 24C64 I2C integrato in Pic Simulator il DS1307 Real Time Clock
Real Pic Simulator simula una memoria della cui memoria è possibile scrive-
eeprom 24C64 basata su comunicazio- re/leggere il contenuto attraverso una
ne I2C. comunicazione I2C basata sull’impiego
La memoria eeprom virtuale può esse- della linea “Data” e della linea “clock”.
re caricata con un “hex file” accedendo
al menu di impostazione (opzione “Lo- CONCLUSIONI
ad memory content“) dello stesso com- Come il lettore avrà avuto modo di ri-
ponente. Il contenuto della memoria scontrare, Real Pic Simulator è un si-
può essere azzerato (reset a 0xFF, me- mulatore di microcontrollori PIC di Mi-
nu di impostazione, comando “Clear crochip di fascia base e media che
memory”) e ciascun singolo byte della consente la simulazione visuale di ap-
Figura 27: esploso delle funzioni di impostazione di una eeprom 24C64 interfacciata su memoria può essere impostato attra- plicazioni firmware precedentemente
bus I2C. verso un semplice doppio click del mou- compilate. Per questo motivo può es-
se. Clock e Data line possono essere sere sia un ottimo strumento di ap-
sung KS107/KS108 compatibile (figura abilitato attraverso un click del mou- impostati per la comunicazione I2C prendimento sia un valido strumento
24). Accedendo al menu di imposta- se. Il generatore di funzioni (8 canali mentre “chip address” è l’indirizzo se- di supporto alla progettazione firmwa-
zione l’utente può impostare il colore del massimo) è un altro componente vir- lezionato dall’hardware attraverso le li- re di questo tipo di controllori. I lettori
display e le interconnessioni con il con- tuale estremamente utile impiegato per maggiormente interessati all’argomen-
trollore analogamente a quanto già mo- generare segnali di ingresso per il con- to possono effettuare dalla Rete il dow-
strato per i display di testo. Il formato trollore (figura 26). nload della versione demo del software,
dei dati è a 8 bit (inviati attraverso i pin Tra i parametri di impostazione più im- la sua installazione sul proprio PC e
D0-D7). portanti del componente vi è il “bit time” l’esame diretto delle sue funzionalità. Il
Il buzzer virtuale (figura 25) corrisponde cioè il tempo per il quale un bit, il cui li- presente articolo è in ogni caso una
fisicamente a un suono emesso dalla vello è delimitato da due linee verticali, semplice descrizione generale del si-
scheda audio del PC. Il componente si manifesta. Esso può essere impo- mulatore che in nessun modo intende
viene utilizzato impostando il pin del stato attraverso la track-bar e l’apposito sostituire le informazioni e la docu-
controllore cui esso è connesso; il suo- moltiplicatore (x1, x10, x100 ecc.). Figura 28: mentazione ufficiale del produttore, cui
no generato corrisponde alla frequenza L’utente può assegnare e/o modificare DS1307 Real si rimanda per ogni approfondimento.
PWM su questo pin del controllore e il il valore del bit attraverso un click del Time Clock
componente può essere silenziato o mouse sulla traccia del segnale nel pun- virtuale. Codice MIP 2803567

13 FOCUS ON 18 SKILLS 33 INSIDE 44 TOOLS 67 ANALOG

7 TIPS’N TRICKS 3 MARKET NEWS 41 SPOTLIGHT 71 EVENTS ZAPPING ABBONAMENTO


58
+Tools
REALPIC SIMULATOR
Uno strumento
software
l’alternativa free a Matlab
indispensabile
di STEFANO LOVATI ctave è uno strumento di pro- attualmente il software di programma-
per la progettazione
con i microcontrollori
Questo articolo introduce
O grammazione numerica disponibi-
le sotto la licenza per il software libero
zione numerica proprietario commer-
cialmente più diffuso al mondo. Viene
PIC. GNU GPL (General Public License). Si infatti utilizzato da numerose universi-
il lettore alle funzionalità
tratta di un’applicazione dotata di fun- tà, centri di ricerca, aziende pubbliche
offerte dallo strumento
zionalità avanzate, molto potenti e ver- e private, o da semplici utilizzatori e
di calcolo e di simulazione
satili, con un buon grado di compatibi- appassionati di matematica. Alla sua
matematica Octave, lità (anche se non completo) con il più diffusione e popolarità contribuisce an-
un progetto open-source blasonato strumento Matlab. Matlab, che la disponibilità di una versione spe-
liberamente utilizzabile. abbreviazione di “Matrix Laboratory”, è ciale per studenti (Matlab Student Edi-
Verranno inoltre
presentati esempi pratici
di applicazione
dello strumento stesso

Figura 1: Octave in esecuzione. 

13 FOCUS ON 18 SKILLS 33 INSIDE 44 TOOLS 67 ANALOG

7 TIPS’N TRICKS 3 MARKET NEWS 41 SPOTLIGHT 71 EVENTS ZAPPING ABBONAMENTO


Figura 2: somma di due vettori.  Figura 3: prodotto di due matrici 2x2. 

tion) dal costo particolarmente com- è evoluto sempre più, fino a supportare ta per vari sistemi operativi, tra cui Win- nipolazione di file in formato non com-
petitivo. Matlab è fondamentalmente array numerici multidimensionali, strin- dows, Mac OS X e Linux / Unix (si veda presso Microsoft WAV (funzioni wavre-
un linguaggio di scripting del tutto simile ghe di caratteri, altre funzionalità ma- [1]). Octave include delle funzioni integrate ad e wavwrite). Octave supporta poi un
a Perl, Python e PHP, corredato con un tematiche e anche la programmazione per la gestione di file dati delimitati con il meccanismo molto semplice per inte-
insieme completo e ampiamente inte- orientata agli oggetti. carattere TAB oppure con il separatore vir- grare funzioni compilate, scritte in lin-
grato di funzioni numeriche, matemati- gola (file di tipo Comma Separated Values, guaggi ad alto livello come C, C++, o
che, statistiche, e grafiche. Sono ad OCTAVE o CSV). Queste funzioni sono molto utili, Fortran, attraverso il comando mkoctfile.
esempio incluse funzioni come la tra- Octave è stato sviluppato da John W. in quanto permettono a Octave di inter- Essendo un linguaggio di scripting, Oc-
sformata di Fourier, l’inversione di ma- Eaton insieme ad altri studenti come una facciarsi in modo semplice e diretto con tave include le istruzioni tipiche di questi
trice e gli istogrammi. Matlab è stato ori- valida alternativa free al prodotto com- altri programmi e applicazioni. Inoltre, linguaggi, come le strutture condiziona-
ginariamente sviluppato alla fine degli merciale Matlab. Deve il suo nome a un Octave può leggere e scrivere diretta- li, i cicli e le dichiarazioni di funzioni.
anni Settanta come un front-end inte- docente dell’Università del Texas, di cui mente i file di tipo binario, attraverso fun-
rattivo e semplice da usare per l’utilizzo Eaton a quei tempi era allievo. Octave zioni del tutto simili a quelle di un lin- QUALCHE ESEMPIO PRATICO
di librerie Fortran relative all’algebra condivide con Matlab la maggior parte guaggio ad alto livello come il C: esistono L’installazione del programma è molto
matriciale e alla manipolazione di ma- delle funzioni e la loro sintassi, il che lo infatti le funzioni fopen, fread, fwrite, e semplice: basta infatti scaricare il pac-
trici. Successivamente, negli anni Ot- rende adatto all’utilizzo per un’ampia fclose. Funzioni di questo tipo sono par- chetto per la piattaforma desiderata dal
tanta, Matlab fu riscritto completamente gamma di applicazioni matematiche e ticolarmente utili per applicazioni avan- sito web indicato in [1] (gli esempi se-
in linguaggio C e diventò un prodotto numeriche. Esso è disponibile sia sotto zate nel settore audio, come ad esempio guenti faranno riferimento alla versione
commercializzato dalla società Ma- forma di codice sorgente, sia come ap- il riconoscimento del linguaggio parla- 3.2.4 per il sistema operativo Windows) e
thWorks. Nel corso degli anni, Matlab si plicazione in forma binaria pre-compila- to. Octave include anche funzioni di ma- seguire le istruzioni per l’installazione.

10
13 FOCUS ON 15
18 SKILLS 33
28 INSIDE 45
44 TOOLS 63
67 ANALOG

6
7 TIPS’N TRICKS 3 MARKET NEWS 36
41 SPOTLIGHT 66
71 EVENTS ZAPPING ABBONAMENTO
nare la matrice derivante dal prodotto di il seguente sistema di tre equazioni li-
a per b. Tutte le operazioni richieste in neari nelle tre incognite (x, y, z):
Octave sono indicate in figura 3, nella
quale è visibile anche il risultato del 3*x 1 + 5*x 2 + x3 = 6
prodotto. Va notato come, nella defi- x 1 - 8*x 2 - x 3 = -1
nizione di una matrice qualsivoglia, la 0.5*x 1 + 4*x 2 + x 3 = 0
virgola serve a separare gli elementi
appartenenti a una stessa riga (si può, In forma vettoriale, il sistema può essere
alternativamente, utilizzare anche il ca- scritto come segue:
rattere spazio al posto della virgola),
mentre il punto e virgola serve per se- A*x=b
parare gli elementi appartenenti ad una
riga da quelli dellla riga successiva. dove A è la matrice 3x3 dei coefficienti,
x è il vettore 1x 3 delle incognite (x 1 ,
MATRICE TRASPOSTA, x2, x3) e b è il vettore 3x1 dei termini no-
Figura 4: matrice trasposta, inversa, e determinante.  INVERSA E DETERMINANTE ti. Applicando le regole dell’algebra ma-
La matrice trasposta di una matrice triciale (in particolare la regola di Cra-
Una volta lanciato, il programma pre- il risultato ottenuto tramite il termine mer, a condizione che la matrice A sia
qualsiasi a si ottiene in Octave tramite il
senterà una finestra simile a quella visi- “ans”, abbreviazione di answer; è anche invertibile, come in questo caso), la so-
comando “a”. La matrice inversa di una
bile in figura 1, in pratica una shell at- possibile, in ogni momento, richiamare luzione del sistema è la seguente:
matrice a si ottiene invece con il co-
traverso la quale si possono impartire i a video il risultato dell’ultima operazio- mando “inv(a)”, mentre il determinante
comandi in modalità testo. Si tenga inol- ne eseguita tramite lo stesso comando x = A -1 * b
si ottiene invece tramite il comando
tre presente che è disponibile un help “ans”. Si noti inoltre come in Octave la “det(a)”. Con riferimento alla matrice a
in linea, richiamabile attraverso il co- dimensione della matrice sia determi- In figura 5 è mostrata la soluzione del si-
definita in precedenza, i risultati corri-
mando help, e un manuale completo on- nata automaticamente, e pertanto non stema attraverso Octave. Si noti come il
spondenti sono visibili in figura 4.
line disponibile all’indirizzo citato nei ri- sia necessario esplicitarla. risultato possa essere calcolato in due
ferimenti. Vediamo ora qualche esempio modi: attraverso il prodotto della matrice
SISTEMA DI EQUAZIONI LINEARI
pratico di applicazione di Octave. inversa di A per il vettore b, oppure at-
PRODOTTO DI MATRICI Si tratta di un problema classico del-
Indichiamo con a e b due matrici a due traverso la notazione tipica di Octave (e
l’algebra lineare, la cui soluzione grazie
SOMMA DI VETTORI anche Matlab), A\b. A\b, infatti, equivale
righe e due colonne ciascuna (quindi a Octave è particolarmente semplice e
Consideriamo come primo esempio la all’espressione A-1 * b, mentre A/b equi-
2x2), e supponiamo di voler determi- immediata. Si consideri come esempio
somma di due vettori (a e b) composti di vale all’espressione A * b-1.
tre elementi ciascuno. Si osservi la fi-
gura 2: i primi due comandi servono a FUNZIONI STATISTICHE
definire il contenuto dei due vettori, - [1] http://www.gnu.org/software/octave/
Octave include numerose funzioni di
mentre il terzo esegue l’operazione di statistica descrittiva, tra le quali citiamo
- [2] http://www.gnu.org/software/octave/doc/interpreter/
somma vera e propria. Octave evidenzia la funzione “mean”, che permette di

13 FOCUS ON 18 SKILLS 33 INSIDE 44 TOOLS 67 ANALOG

7 TIPS’N TRICKS 3 MARKET NEWS 41 SPOTLIGHT 71 EVENTS ZAPPING ABBONAMENTO


Figura 5: soluzione di un sistema di equazioni lineari.  Figura 6: media aritmetica di un vettore di double. 

calcolare la media degli elementi ap- GRAFICI v = [4 7 1 11 20] # fico risultante è visibile in figura 7.
partenenti a un vettore o a una matrice, Octave permette di tracciare agevolmente vettore di 5 elementi interi
e prevede tra le opzioni il calcolo della grafici in due o in tre dimensioni, una fun- bar(v) # GRAFICO DI FUNZIONE IN 2D
media aritmetica, geometrica, oppure zionalità molto utile, ad esempio, per esa- rappresentazione grafica a Supponiamo ora di voler visualizzare il
armonica. Come esempio, consideriamo minare l’andamento di una funzione, op- barre grafico della funzione trigonometrica
il calcolo della media aritmetica di un pure per rappresentare graficamente una grid # attiva sin(x), per x compreso tra –π e + π. La li-
vettore di cinque elementi di tipo dou- serie di dati prodotti da una simulazione. la visualizzazione griglia
sta di comandi da fornire a Octave per ot-
ble, come indicato in figura 6 (l’opzio- Per quanto riguarda la rappresentazione title “Grafico a barre” # titolo
tenere il risultato desiderato è la se-
ne “a” indica di eseguire il calcolo del- grafica, Octave si appoggia direttamente del grafico
guente:
la media aritmetica). Ricordiamo altre a gnuplot, un programma incluso nella xlabel(“Elementi”) #
x = -pi:0.1:pi # range di valori
funzioni di statistica descrittiva, come distribuzione Octave e anch’esso distri- etichetta asse x
di x (step=0.1)
ad esempio “median” (calcola il valore buito con licenza GNU GPL. ylabel(“Valori”) #
y = sin(x) # funzione da
mediano degli elementi di un vettore), etichetta asse y
“std” (calcola la deviazione standard GRAFICO A BARRE I comandi sono molto semplici e intui- rappresentare
degli elementi di un vettore o di una Come primo esempio di rappresenta- tivi, e penso non occorra alcun com- plot(y) # comando di
matrice), “var” (calcola la varianza degli zione grafica prendiamo in considera- mento aggiuntivo, se non far notare visualizzazione
elementi di un vettore o di una matrice), zione il classico “bar graph”, che in Oc- che, in Octave, con il carattere “#” si in- title “Funzione trigonometrica seno”
e numerose altre funzioni per il calcolo tave possiamo rappresentare attraverso dica l’inizio di un commento che pro- Il grafico prodotto da Octave attraverso
della covarianza, correlazione ecc. la seguente lista di comandi: segue sino al termine della linea. Il gra- gnuplot è visibile in figura 8.

13 FOCUS ON 18 SKILLS 33 INSIDE 44 TOOLS 67 ANALOG

7 TIPS’N TRICKS 3 MARKET NEWS 41 SPOTLIGHT 71 EVENTS ZAPPING ABBONAMENTO


Elettroshop IQRF moduli radio

Figura 7: un grafico a barre.  Figura 8: grafico di funzione in 2D. 

GRAFICO DI FUNZIONE IN 3D z = sin (sqrt (x^2 + y^2)) / (sqrt (x^2 + z1 = 3 + 4i octave-3.2.4.exe:42> z1+z2
A titolo puramente dimostrativo, ve- y^2)) z2 = -4 + j ans = -1 + 5i
diamo un esempio spettacolare di rap- octave-3.2.4.exe:43> z1-4*z2
presentazione grafica in tre dimensioni, NUMERI COMPLESSI A questo punto si possono eseguire in ans = 19
Octave le operazioni desiderate sui nu- octave-3.2.4.exe:44>
il cosiddetto sombrero, che possiamo Tra i numerosi oggetti matematici sup-
meri complessi definiti, come ad esem- I numeri complessi possono anche es-
disegnare in Octave fornendo il sem- portati da Octave, non potevano man-
pio la somma, la differenza e ogni altra sere rappresentati graficamente, otte-
plice comando “sombrero”, ottenendo care i numeri complessi. La parte im-
operazione significativa: nendo quello che viene anche chiama-
il risultato visibile in figura 9. Ricor- maginaria può essere indicata in octave-3.2.4.exe:40> z1=3+4i to diagramma di Argand. Supponiamo
diamo che tale grafico corrisponde alla Octave, indifferentemente, con i oppu- z1 = 3 + 4i ad esempio di voler rappresentare gra-
rappresentazione in tre dimensioni del- re con j, per cui le seguenti definizioni di octave-3.2.4.exe:41> z2=-4+j ficamente sul piano complesso i nu-
la seguente funzione numeri complessi sono entrambe valide z2 = -4 + 1i meri z1 e z2 precedentemente definiti.

13 FOCUS ON 18 SKILLS 33 INSIDE 44 TOOLS 67 ANALOG

7 TIPS’N TRICKS 3 MARKET NEWS 41 SPOTLIGHT 71 EVENTS ZAPPING ABBONAMENTO


63
Tecnoimprese corsi formazione

Figura 9: il “sombrero”. 

Sarà sufficiente impartire i seguenti co- screta serve a decomporre una se-
mandi a Octave, ottenendo quanto vi- quenza di valori nelle sue componenti a
sibile in figura 10: frequenze diverse o, come si usa anche
plot(z1,‘*’,z2,‘*’) dire, serve per passare dal dominio del
axis([-5 5 -5 5]) tempo a quello della frequenza. Dal
text(3.2, 4, “z1”) punto di vista della complessità com-
text(-4.4, 1, “z2”) putazionale, l’algoritmo per il calcolo
FFT (Fast Fourier Transform) della DFT è troppo oneroso, e per que-
La trasformata di Fourier veloce è un sto motivo si preferisce ricorrere alla
metodo efficiente per calcolare la tra- trasformata veloce, che ha invece una
sformata di Fourier discreta (DFT) e la complessità computazionale inferiore. In
sua inversa. La trasformata di Fourier di- Octave, la funzione Y = fft(x) restitui-

13 FOCUS ON 18 SKILLS 33 INSIDE 44 TOOLS 67 ANALOG

7 TIPS’N TRICKS 3 MARKET NEWS 41 SPOTLIGHT 71 EVENTS ZAPPING ABBONAMENTO


64
Figura 10: numeri complessi.  Figura 11: segnale corrotto da rumore casuale a media nulla.

sce la trasformata di Fourier discreta rumore casuale a media nulla. y = x + 2*randn(size(t)); # sformata di Fourier discreta del segna-
(DFT) del vettore x, calcolata basandosi Fs = 1000; # frequenza di sinusoide + rumore le y, affetto da rumore.
proprio su un algoritmo di tipo FFT. Un campionamento plot(Fs*t(1:50), y(1:50))
NFFT = 2^nextpow2(L);
utilizzo tipico della trasformata di Fourier T = 1/Fs; # periodo di title(“Segnale corrotto con
Y = fft(y, NFFT)/L;
consiste nel trovare, nel dominio delle campionamento rumore casuale a media nulla”)
frequenze, le componenti di un segnale L = 1000; # lunghezza del xlabel(“tempo (millisecondi)”) f =
fortemente disturbato nel dominio del segnale Il grafico corrispondente è visualizzato Fs/2*linspace(0,1,NFFT/2+1);
tempo. t = (0:L-1)*T; # vettore tempo in figura 11. plot(f,2*abs(Y(1:NFFT/2+1)))
Consideriamo come esempio un se- #somma delle sinusoidi a 50 e a È difficile identificare le componenti in
title(“Spettro di ampiezza di
gnale campionato alla frequenza di 1 120 Hz frequenza guardando questo tipo di
y(t)”)
kHz, composto di una sinusoide a 50 x = grafico.
Hz di ampiezza 0,7 e di una sinusoide a 0.7*sin(2*pi*50*t)+sin(2*pi*120 Passando invece nel dominio delle fre- xlabel(“Frequenza (Hz)”)
120 Hz di ampiezza 1, e affetto da un *t); quenze, è possibile identificare la tra- ylabel(“|Y(f)|”)

13 FOCUS ON 18 SKILLS 33 INSIDE 44 TOOLS 67 ANALOG

7 TIPS’N TRICKS 3 MARKET NEWS 41 SPOTLIGHT 71 EVENTS ZAPPING ABBONAMENTO


65
Elettroshop - Cuwin

Figura 12: FFT.

Il corrispondente grafico è visualizzato alternativa a Matlab, o quantomeno un


in figura 12. suo valido complemento.
Si osservi come siano facilmente indi- Qualche utilizzatore che impiega abi-
viduabili le componenti a 50 e 120 Hz af- tualmente Octave dispone anche di una
fette dal disturbo. Il motivo principale
licenza per Matlab; in questo modo può
per il quale le ampiezze non sono esat-
verificare se gli script creati con Octave
tamente pari a 0,7 e a 1 è dovuto alla
sono o meno compatibili con Matlab, un
presenza del rumore.
aspetto molto importante da prendere in
CONCLUSIONI considerazione nel caso in cui si vo-
Per molte applicazioni e per molti uti- gliano distribuire i propri script.
lizzatori, Octave rappresenta un’ottima Codice MIP 2814735

13 FOCUS ON 18 SKILLS 33 INSIDE 44 TOOLS 67 ANALOG

7 TIPS’N TRICKS 3 MARKET NEWS 41 SPOTLIGHT 71 EVENTS ZAPPING ABBONAMENTO


66
PRIMA PARTE

dalle scarice elettrostatiche


La prima parte di questo articolo a progettazione moderna spinge, transitorio generato, per esempio, dal-
illustra le problematiche relative L per esigenze di mercato, verso la ri-
duzione dei costi, spesso sacrificando
la commutazione di un relé o dalla ri-
mozione di un carico induttivo dall’ali-
alle ESD (electrostatic discharge)
un’accurata progettazione dello stadio mentazione. Principalmente tale
per la progettazione di applicazioni
di alimentazione e un controllo accura- disturbo dovrebbe manifestarsi sui ca-
basate su microcontrollore; la parte to sulla compatibilità elettromagnetica vi di alimentazione dei dispositivi, ma
successiva proporrà alcune tecniche (EMI). I progettisti allora sono costretti può essere anche applicato ai segnali di
hardware per migliorare già in fase di design a considerare pos- controllo per simulare accoppiamenti
sibili soluzioni che prevengano i pro- delle EFT sulle linee di segnale. Tipi-
la robustezza del sistema
blemi relativi a possibili interferenze camente il segnale EFT ha un livello di 4
elettromagnetiche e a garantire l’im- Figura 1: componenti che incidono kV, che può salire per alcuni ambienti
di LUCA STANZANI munità ai disturbi. sull’immunità ai disturbi di un prodotto. critici. La forma d’onda prevista per le
EFT dalla IEC 61000-4-4 ha un tempo di
proveniente da un operatore e deve es-
INTRODUZIONE salita compreso tra 3,5 ns e 6,5 ns e
sere iniettata sul dispositivo in ogni
I prodotti elettronici commerciali pos- quindi una banda di rumore di 90 MHz.
sono presentare problemi relativi alle punto che l’operatore potrebbe tocca-
scariche elettromagnetiche (ESD, Elec- re, inclusi sistemi di controllo e con- DOVE NASCONO I PROBLEMI
trostatic Discharge) o ai transitori elet- nettori. Il livello delle ESD varia in base Durante una scarica ESD o EFT una
trici veloci (EFT, Electrical Fast Tran- all’applicazione. Valori per contatto in applicazione a microcontrollore è ov-
sients). Queste tipologie di disturbi sono aria in applicazioni commerciali sono viamente soggetta a un degrado delle
definite nella normativa IEC 61000-4- solitamente inferiori a 2 kV, in alcune prestazioni. I fattori che incidono sulla
21 (o ANSI C63.16) e nella IEC 61000-4- applicazioni automotive si raggiungono robustezza del sistema sono vari, in fi-
42, rispettivamente. Le normative in- valori anche di 20 kV. La forma d’onda gura 1 si può vedere una grafico a tor-
cludono metodologie di test attuabili della scarica ESD definita nella IEC ta che permette di comprendere anche
dai produttori OEM al fine di soddisfare 61000-4-2 ha un tempo di salita com- il peso di tali fattori.
i requisiti previsti dalla regolamenta- preso tra 0,7 ns e 1,0 ns; questo si tra- Si può vedere come il design del siste-
zione. La forma d’onda prevista per le duce in una banda di rumore di circa ma incida notevolmente, così come il
ESD è pensata per simulare la scarica 450 MHz. La forma d’onda EFT simula il design del PCB. Anche la realizzazione

13 FOCUS ON 18 SKILLS 33 INSIDE 44 TOOLS 67 ANALOG

7 TIPS’N TRICKS 3 MARKET NEWS 41 SPOTLIGHT 71 EVENTS ZAPPING ABBONAMENTO


MODALITÀ DI FALLIMENTO può avere diverse forme, fenomeni di
DEL MICROCONTROLLORE latch-up, corruzione della memoria, co-
Le modalità con cui un circuito inte- dice in esecuzione involontaria ecc.
grato può andare incontro a un falli- Molto interessante risulta la classe C, in-
Figura 2: mento (o guasto o avaria) sono classi- fatti un circuito di reset opportuna-
un transitorio ficate in cinque categorie dalla IEC mente progettato può riportare il mi-
genera un glitch. 62132-1, vedi tabella 1. La classifica- crocontrollore in uno stato conosciuto e
zione è basata dalle performance dell’IC operativo. Questo ovviamente a patto
in presenza di ESD o EFT e dipende che l’hardware non sia danneggiato,
del microcontrollore è importante, infatti mente, compromettere tutta la circui-
dal tipo di IC e dalle sue funzioni. situazione questa non prevista dalla
il chip potrebbe già essere equipag- teria collegata alla distribuzione di ten-
Per le CPU un degrado di prestazioni classe C.
giato con dispositivi di protezione ESD sione. Gli ingressi sensibili ai fronti so-
sugli I/O o avere circuiteria EMC dedi- no particolarmente vulnerabili durante i
cata. transitori. Infatti questi pin sono solita-
Concentriamoci sul microcontrollore e mente timer o interrupt, e anche nel
vediamo quali sono le zone vulnerabili. caso in cui vi sia collegato un filtraggio, Classe Descrizione

Le aree più soggette a problemi di ESD impulsi di ampiezza elevata possono


e EFT sono: iniettare sufficiente energia per dan- A Tutte le funzioni dell’IC funzionano come progettate durante e dopo l’esposizione al disturbo.
• pin di alimentazione e massa; neggiare la CPU. Anche nel caso in cui
• ingressi digitali sensibili ai fronti; non creassero danni alla CPU i transitori B Tutte le funzioni dell’IC funzionano come progettate durante l’esposizione al disturbo,
• ingressi digitali ad alta frequenza; potrebbero propagarsi come glitch (ve- una o più di esse può andare oltre tolleranza. Tutte le funzioni ritornano nei limiti normali
• ingressi analogici; di figura 2). Gli ingressi digitali per se- dopo che il disturbo è stato rimosso. Le funzioni di memoria devono rimanere in classe A.
• pin di clock; gnali veloci solitamente evitano filtrag-
• pin con più funzioni multiplexate. gi particolari, perciò possono
C Una funzione dell’IC non lavora correttamente durante l’esposizione al disturbo, ma ritorna
Alcuni microcontrollori hanno vari pin di interpretare transitori come dati validi.
alla normale operatività alla rimozione di questo.
alimentazione e di massa per isolare i Gli ingressi analogici hanno solitamen-
segnali digitali ad alta velocità dalle te una bassa impedenza d’ingresso,
funzioni a bassa velocità o dalle funzioni perciò una scarica ESD può danneg- D Una funzione dell’IC non lavora correttamente durante l’esposizione al disturbo
analogiche sensibili al rumore. Questi giarli, non a caso essi sono spesso mul- e non ritorna alla normale operatività alla rimozione di questo finché il dispositivo
pin possono essere abbinati a filtri per tiplexati con pin di I/O general purpose non venga resettato dall’operatore.
prevenire i disturbi in quella particolare e hanno finestre di campionamento ri-
zona. Una considerazione di questo ti- dotte. I pin di clock disturbati dai tran- E Una o più funzioni dell’IC non lavorano correttamente durante e dopo l’esposizione
po non è possibile se il microcontrollo- sitori possono portare le logiche a in-
al disturbo e non ritornano alla normale operatività alla rimozione di questo.
re è di tipo low-cost e ha solo una cop- terpretare fronti di clock inesistenti e
pia di pin per alimentazione e massa. Un disturbi sui pin multiplexati si possono
Tabella 1: classificazione IEC del degrado di prestazioni di un IC.
transitorio che si propaga sulle linee di propagare all’interno del microcontrol-
alimentazione potrebbe, potenzial- lore fino a guastarne alcune parti.

13 FOCUS ON 18 SKILLS 33 INSIDE 44 TOOLS 67 ANALOG

7 TIPS’N TRICKS 3 MARKET NEWS 41 SPOTLIGHT 71 EVENTS ZAPPING ABBONAMENTO


COME LE ESD INTERVENGONO le variazioni di tensione) e come disac-
NEL MERCATO coppiatori di alimentazione. In ogni ca-
DEI MICROCONTROLLORI so funzionano sempre come limitatori di
Il trend di sviluppo dei microcontrollori tensione a energia limitata, in grado di
si scontra con le esigenze di immunità ai assorbire impulsi rapidi. Adatti quindi
transitori. La riduzione continua della per ESD e EFT e non come limitatori
lunghezza di gate dei transistor spinge Figura 3: per carichi induttivi, per esempio. Ov-
i produttori di semiconduttori a realiz- piazzamento
viamente la scelta della massima ten-
zare die sempre più compatti per ridur- di un filtro
sione DC che possono sopportare deve
re i costi. Mantenere un buon livello di sull’ingresso
essere scelta accuratamente per fun-
immunità in queste situazioni risulta dei segnali. 
zionare come “limitatori” dei transitori.
difficile. Se poi abbiniamo le ulteriori • Ferriti, beads e induttori. Sono usati
esigenze di riduzione dei costi relative al passo, cui può seguire anche un lavoro per basse frequenze un induttore avrà
software, il quale però non riduce il li- una piccola impedenza (funzionando per disaccoppiare domini di alimenta-
resto della scheda e del prodotto in ge-
vello dei transitori a cui il microcon- come limitatore di tensione), ad alte zione creando filtri passabasso. In que-
nerale è ovvio pensare che la resisten-
trollore è sottoposto, ma gestisce solo frequenze avrà invece un’impedenza ste applicazioni sono in grado di bloc-
za alle ESD venga trascurata. Ai pro-
l’impatto che questo può avere sui se- elevata e funzionerà da “blocco” per i care o limitare i transitori grazie alla
gettisti è quindi affidato l’arduo compito
gnali di controllo. transitori. loro impedenza legata alla frequenza
di dissipare l’energia proveniente da
Per lavorare sull’hardware è necessa- del segnale in gioco. Sono componen-
una scarica prima che questa arrivi al
rio conoscere bene quale componen- ANALIZZIAMO ti adatti per proteggere linee di alimen-
cervello della scheda.
tistica può aiutare a migliorare il mar- LA COMPONENTISTICA tazione e segnali analogici o digitali ca-
Per far ciò è bene avere chiari gli obiet-
gine di immunità ai disturbi. La breve CHE PUÒ AIUTARCI CON LE ESD. ratterizzati da correnti elevate o che
tivi e realizzare già in fase progettuale
panoramica che segue si occupa pro- • Resistenze. Una resistenza in serie non tollerano la caduta di tensione im-
alcuni accorgimenti hardware che per-
mettano di rendere il sistema maggior- prio di questo. tra due nodi è il metodo più economico posta da una resistenza in serie. I pa-
mente resistente alle scariche ESD e I componenti utilizzati per sopprimere o ed efficiente per proteggere contro i rametri più importati da valutare nella
EFT. controllare i transitori possono essere transitori. Le resistenze possono esse- scelta del componente corretto sono
Lavorare sull’hardware per migliorare suddivisi in due categorie: re utilizzate anche per creare filtri pas- la massima corrente DC tollerata e la re-
l’immunità alle ESD • componenti che “deviano” le corren- sabasso e disaccoppiare domini di ali- sistenza parassita dell’avvolgimento.
Lavorare sull’hardware di un prodotto ti di transitorio (essenzialmente limita- mentazione diversi. Il loro impiego • Common-mode chokes. Sono com-
permette di delineare in partenza l’im- tori di tensione); principale è nella protezione di segnali ponenti in grado di sopprimere segna-
munità di questo rispetto ai disturbi, • componenti che “bloccano” le cor- digitali o analogici contraddistinti da li di modo comune avendo un effetto
l’obbiettivo è infatti proteggere il de- renti di transitorio (essenzialmente li- basse correnti e che possono accetta- trascurabile su segnali di modo diffe-
grado di prestazioni del microcontrollore mitatori di corrente). re una lieve caduta di tensione sul re- renziale in frequenza. Questo li rende
e garantirne l’affidabilità sul lungo pe- Si noti che in funzione della banda di sistore. uno dei modi più efficaci per proteg-
riodo. frequenza del transitorio (tempo di sa- • Capacità. Si possono utilizzare ca- gere i componenti dai transitori. Abbi-
Lavorare sull’hardware della scheda a lita) un componente potrebbe lavorare pacità per i bypass, per accumulare nati a una capacità formano filtri pas-
microcontrollore è il primo e decisivo in entrambe le modalità. Ad esempio carica (funzionando come limitatori del- sabasso molto efficienti.

13 FOCUS ON 18 SKILLS 33 INSIDE 44 TOOLS 67 ANALOG

7 TIPS’N TRICKS 3 MARKET NEWS 41 SPOTLIGHT 71 EVENTS ZAPPING ABBONAMENTO


• Transient Voltage Suppressors. Sono pensati per essere utilizzati per lavora-
componenti utilizzati per controllare e re nella zona di breakdown, polarizzati
limitare la tensione che si crea tra due inversamente. Solitamente i diodi Zener
punti. Il TVS realizza il suo compito hanno una tensione di breakdown infe-
realizzando un camping della tensione riore a 5 V mentre gli altri solitamente
e una deviazione della corrente dalla superano gli 8 V.
parte di circuito sensibile, ovviamente
nel momento in cui le condizioni ne ALIMENTAZIONE DEL SISTEMA E
determinano l’innesco. I TVS hanno PUNTO D’INGRESSO DEI SEGNALI
una velocità di risposta inversamente Lavorando sull’hardware di una scheda,
proporzionale alla corrente che pos- occorre per prima cosa eliminare il pro-
sono gestire, per questo spesso si as- blema dei transitori nel punto in cui le
sociano dispositivi veloci con un livel- alimentazioni e i segnali arrivano o ven-
lo di corrente basso con dispositivi gono generati sulla scheda.
lenti ma con livelli di corrente elevati. I Se si garantisce una buona immunità al-
TVS sono spesso utilizzati per soppri- la sorgente del segnale allora l’har-
mere i transitori sulla tensione di rete dware rimanente sarà tutelato e il be-
alternata o sulla tensione stabilizza- neficio sarà doppio: il rischio di ottenere
ta, oppure per eseguire il camping de- un prodotto non conforme viene ridotto
gli impulsi di corrente dovuti a carichi e il costo per applicare altre tecniche di
induttivi. protezione contro i disturbi viene meno.
• Varistori. Il varistore o MOV è un com- In commercio esistono numerosi com-
ponente bipolare, non lineare, simme- ponenti commerciali che eseguono un
trico, in grado di dissipare energia at- filtraggio dell’alimentazione o dei se-
traverso un materiale solido composto gnali, disponibili sia in package stan-
nella maggior parte dei casi da un os- dardizzati sia in formati custom.
sido di metallo. L’effetto consiste nel Se non si applicano tecniche di ridu-
tagliare transitori positivi e negativi a zione dei transitori alle origini dei se-
corrente elevata; la controindicazione è gnali, il problema della compatibilità
la tensione di innesco che può variare aumenta di complessità perché si per-
dal valore specificato. Questi dispositivi de il controllo di immunità dei segnali,
sono tra i migliori relativamente a quel- con il risultato di dover applicare altre
li non lineari per la protezione degli ap- tecniche hardware per garantire buone
parecchi elettronici dalle tensioni di prestazioni di EMC. Questa situazione è
transitorio provenienti dall’alimenta- mostrata in figura 3.
zione di rete.
• Diodi a valanga e Zener. Sono diodi Codice MIP 2803583

13 FOCUS ON 18 SKILLS 33 INSIDE 44 TOOLS 67 ANALOG

7 TIPS’N TRICKS 3 MARKET NEWS 41 SPOTLIGHT 71 EVENTS ZAPPING ABBONAMENTO


70
Firmware
www.fwonline.it

EVENTS zapping
DIRETTORE RESPONSABILE Rest of the world

Maurizio Del Corso Inware Edizioni srl


Tel. +39 02 66504755
NXP USB MADE EASY La crescente importanza (Associazione Nazionale una Graphics PICtail Plus DIRETTORE MARKETING info@inwaredizioni.it

NXP ed EBV organizzano della robotica, sia Fornitori Elettronica) Daughter board Antonio Cirella

questo workshop gratuito industriale sia di servizio, strutturato in più interventi (AC164127-3) per Ufficio Abbonamenti
Segreteria di redazione INWARE Edizioni srl
basato sulla scheda nelle economie delle e incontri in cui implementare un Giorgia Generali Via Giotto, 7

LPCXpresso di NXP nazioni avanzate, così approfondire: interfaccia grafica che usa 20032 Cormano (MI)
Comitato Scientifico
per mostrare le potenzialità come di quelle dette BRIC Il sistema LED nella filiera, il Touch Screen QVGA della Simone Masoni (Microtest), France-
Per informazioni, sottoscrizione o rin-
novo dell’abbonamento:
dei microcontrollori (Brasile, India, Cina) e la Insegnistica e segnaletica sco Picchi (Microtest), Massimo Ro-
PICtail. vini (Università degli Studi di Pisa).
abbonamenti@inwaredizioni.it

LPC11U1X e LPC1343 necessità, da parte (signaging),I ‘tool’ di Tel. 02.66504755


Dove: Legnano (M) Fax. 02.66508225
che offrono un nuovo dell’Europa, di competere sviluppo per gli Art Director
L'ufficio abbonamenti è disponibile
Quando: 12 Dicembre 2011
approccio per lo sviluppo con queste economie in “illuminotecnica”, Analisi Patrizia Villa
telefonicamente dal lunedì al vener-
info: www.microchip.com dì dalle 14,30 alle 17,30.
dei applicazioni USB. crescita, richiede che economica, Energy Hanno collaborato Tel. 02.66504755
Dove: Padova l’Europa si concentri a efficiency nel lighting. in questo numero: Fax 02.66508225
Mario Rotigni, Antonio Giannico,
Quando: sviluppare settori di alto Dove: Roma Luca Stanzani, Giovanni Di Maria,
Autorizzazione alla pubblicazione

29 Novembre 2011 valore tecnologico, così Quando: 1 Dicembre 2011 PROGETTARE Ettore Piccirillo, Mariano Severi,
Francesco Pentella
Tribunale di Milano n. 20
del 16/01/2006

info: www.ebv.com come ampliare la base di info: www.fortronic.it CON XILINX X9


Direzione Redazione
conoscenze tecno Un workshop sull’utilizzo © Copyright
INWARE Edizioni srl Tutti i diritti di riproduzione o di tra-
scientifiche tra i giovani. della nuova scheda low- Via Giotto, 7 duzione degli articoli pubblicati sono

SETTIMANA ROBOTICA Quando: PROGETTARE cost Xilinx Spartan®-6 20032 Cormano (MI)
Tel. 02.66504755
riservati. Manoscritti, disegni e foto-

EUROPEA 28 Novembre CON MICROCHIP FPGA LX9 MicroBoard che Fax 02.66508225
grafie sono di proprietà di Inware Edi-
zioni srl. È vietata la riproduzione an-

La prima Settimana 4 Dicembre 2011 Come sfruttare le capacità consente di progettare con
info@inwaredizioni.it che parziale degli articoli salvo
www.inwaredizioni.it espressa autorizzazione scritta del-
Robotica Europea si terrà, info: della libreria grafica le nuove FPGA X9 in modo Redazione: fw@inwaredizioni.it l’editore. I contenuti pubblicitari sono
in tutta l’Europa http://euroweek.scuoladiro sviluppata da Microchip,
semplice e veloce. Durante Pubblicitá per l’Italia
riportati senza responsabilità, a pu-

dell’Unione, dal 28 botica.eu/ così da ridurre i tempi dello ro titolo informativo.


il workshop verranno Agostino Simone

novembre al 4 dicembre sviluppo di interfacce Tel. 347 2230684


illustrate le potenzialità media@inwaredizioni.it
Collaborare con

2011. È stata promossa grafiche che sfruttano le FIRMWARE


della scheda e, in una
dalla Commissione ROMA varie tecnologie dei display Europe and Americas
Le richieste di collaborazione vanno

TECH&LIGHTING LCD e l’utilizzo di diversi sessione pratica, verranno Elisabetta Rossi


indirizzate all’attenzione di Maurizio
Europea nell’ambito del Tel. +39 328 3245956 Del Corso (m.delcorso@inwaredi-

progetto europeo L’evento dedicato ingressi. Durante la parte realizzate sempli international@inwaredizioni.it zioni.it) e accompagnate, se possi-

euRobotics per far all’elettronica e alle pratica di questo corso, applicazioni di esempio. bile, da una breve descrizione delle

Asia vostre competenze tecniche e/o edi-

conoscere le attività di tecnologie per il lighting. utilizzerete la libreria Dove: Firenze Cybermedia Communications Inc. toriali, oltre che da un elenco degli ar-
gomenti e/o progetti che desiderate
robotica svolte nell’Unione Un electronics forum grafica di Microchip su un Quando: 1 Dicembre 2011 Tel. +886-(0)2-2691-2785
alex@cybermedia.com.tw proporre.
stessa. promosso da Assodel Explorer 16 collegata ad info: www.silica.com

13 FOCUS ON 18 SKILLS 33 INSIDE 44 TOOLS 67 ANALOG

7 TIPS’N TRICKS 3 MARKET NEWS 41 SPOTLIGHT 71 EVENTS ZAPPING ABBONAMENTO