294 295 PDF

Scarica in formato pdf o txt
Scarica in formato pdf o txt
Sei sulla pagina 1di 116

Dicembre/Gennaio 2009/2010

COP FE 294-295_def_OK2_fe 09/12/09 19.22 Pagina 1

n. 294/295 DICEMBRE/GENNAIO Anno XXV


solo Fare Elettronica - 6,00

294/295

Fare Elettronica + Mr A. Keer 7,90 in pi

www.farelettronica.com

PROGETTI
Trasmettitore DSB per i 20m
Cinque melodie in un PIC
Smartcard reader
Robot cingolato
PER IMPARARE

MENSILE Poste Italiane Spa - Spedizione in abbonamento Postale - D.L. 353/2003 (conv. In L. 27/02/2004 n. 46) art. 1, comma1, DCB Milano. In caso di mancato recapito, restituire all'editore che si impegna a pagare la relativa tassa presso il CPM di Roserio - Milano

Robot cingolato - Il digitale terrestre - frequenzimetro con PIC16F628

Il protocollo SIP nei sistemi VoIP


Decoder 7 segmenti con memoria
I resistori elettronici
Lezioni di VHDL

Il digitale
terrestre
la tecnologia
e i decoder

Richiedi
al tuo edicolante
i tre DVD di Mr A.Keer!

FREQUENZIMETRO
DA 60 MHZ
con PIC16F628

pubblicit_fe 04/12/09 12.55 Pagina 1

A VOLTE RITORNANO...
I migliori software per lelettronica

sPlan 6.0

Front Designer

Programma
per
disegnare
gli schemi
elettrici.

Programma
per disegnare
i pannelli
frontali
Solo 47,88

Solo 47,88

Sprint-Layout 5.0
Con Sprint-Layout possibile
disegnare il proprio PCB
in modo facile e veloce.

ProfiLab-Expert 4.0
Il software ProfiLab-Expert
permette di sviluppare
i propri progetti
di misurazione digitale
o analogica.
Solo 119,88

AudioWave 2.0

Solo 47,88

LochMaster 3.0

CODICE MIP 2779018

LochMaster 3.0 uno strumento


di sviluppo per la progettazione
di boards. Possiede utili
funzionalit per disegnare,
documentare e testare una board.

Solo 47,88

PUOI ORDINARE I SOFTWARE ABACOM SUL SITO


www.ieshop.it/abacom
oppure telefonando allo 02 66504755

Con AudioWave 2.0 la propria scheda


audio diventa un confortevole
generatore di segnale LF che genera
segnali da 1Hz a 20 kHz
con una risoluzione di 1Hz.
Solo 35,88

Prezzi
IVA inclusa

pubblicit_fe 07/12/09 15.05 Pagina 6

IN EDICOLA
progetti per

2000
applicazioni

da non perdere!

CODICE MIP 2779026

Il nuovissimo numero di
Fare Elettronica EXTRA

294/295
dicembre/gennaio 2009/2010

n. 294/295 DICEMBRE/GENNAIO Anno XXV


solo Fare Elettronica - 6,00
Fare Elettronica + Mr A. Keer 7,90 in pi

PROGETTI

18 IL DIGITALE TERRESTRE
Un cambiamento radicale di uno degli
oggetti pi utilizzati e maggiormente
diffusi nel mondo. In questo articolo
cercheremo di scoprire gli aspetti tecnici della televisione digitale, partendo
dalla codifica dei segnali audio/video,
passando per la modulazione, la trasmissione radio terrestre e la ricezione
su un set-top-box.
di Giuseppe De Gennaro

&
MELODIE
30 CINQUE
CON UN PIC
Questo mese realizziamo un progetto
sonoro nel quale utilizziamo un microcontrollore PIC abbinato al nuovo compilatore MikroBasic Pro della MikroElektronika per riprodurre ben cinque
melodie musicali

Trasmettitore DSB per i 20m


Cinque melodie in un PIC
Smartcard reader
Robot cingolato

www.farelettronica.com

PER IMPARARE

Il protocollo SIP nei sistemi VoIP


Decoder 7 segmenti con memoria
I resistori elettronici
Lezioni di VHDL

MENSILE Poste Italiane Spa - Spedizione in abbonamento Postale - D.L. 353/2003 (conv. In L. 27/02/2004 n. 46) art. 1, comma1, DCB Milano. In caso di mancato recapito, restituire all'editore che si impegna a pagare la relativa tassa presso il CPM di Roserio - Milano

sommario

4-5 sommario_2_fe 09/12/09 14.32 Pagina 4

Il digitale
terrestre

Richiedi
al tuo edicolante
i tre DVD di Mr A.Keer!

la tecnologia
e i decoder

FREQUENZIMETRO
DA 60 MHZ
con PIC16F628

RESISTORI ELETTRONICI
54 II resistori,
chiamati spesso e impropriamente resistenze, sono componenti
fondamentali nella realizzazione di qualunque circuito elettronico. Sono prodotti
in unampia variet di forme, di valori ohmici e di potenze. Vediamo quali sono gli
aspetti tecnologici che li caratterizzano
e li diversificano e quali sono le codifiche
impiegate per identificarli tecnicamente

di Giovanni Di Maria

FREQUENZIMETRO
36 CON
PIC 16F628
Strumento minimo con unottima versatilit, utilizzabile sia come strumento a s stante, sia come sintonia
elettronica per piccoli ricetrasmettitori
auto costruiti.

di Antonio Giannico

di Daniele Cappa

LETTORE DI SMARTCARD
42 (parte
II)
In questa seconda e ultima parte riprendiamo il progetto del lettore standalone di smartcard dotato di display e
tastierino per lutilizzo in applicazioni
di fidelizzazione della clientela. Dopo
aver realizzato il prototipo completo,
andremo qui a discuterne il funzionamento e il firmware che lo anima

di
CON MEMORIA
66 DECODER
Con i decoder con memoria si conclude la rassegna dei principali dispositivi in grado di controllare i visualizzatori
formati da digit a 7 segmenti. Scopriamone i segreti e il modo migliore
per utilizzarli

di Giuseppe Modugno

di Giorgio Ober

Rispondi
e...VINCI!
DIVERTITI E METTI
ALLA PROVA
LE TUE
CONOSCENZE
CON

ELETTRO QUIZ
E VINCI OGNI
MESE ESCLUSIVI
PREMI!

pag.

90

&

74 INTRODUZIONE AL VOIP
(parte iV)
In questa quarta e ultima puntata affronteremo insieme il protocollo SIP.
Esso rappresenta la tendenza pi attuale nella progettazione di sistemi VoIP
di Grazia Ancona

86 Lezioni di VHDL (parte VIII)


SILICORE SU SPARTAN

Nella scorsa puntata ci siamo soffermati


sul processore SLC1657, un RISC a 8
bit. Il processore, realizzato interamente
in VHDL e diffuso da Silicore con la solita licenza GPL, risulta particolarmente indicato per applicazioni di controllo.
di Francesco Pentella

4-5 sommario_2_fe 09/12/09 14.32 Pagina 5

rubriche

&

92 TRASMETTITORE
DSB-SC PER I 20 METRI
Se siete in procinto di prendere la patente di radioamatore e volete fare un po
di pratica di laboratorio prima di affrontare gli esami, ecco un piccolo progetto che vi d la possibilit di testare su
campo quanto avete studiato sui libri.
di Remo Riglioni (IZ0OPG)

7
10
14
16
90
91
104

Editoriale
Idee di progetto
Eventi
News
Elettroquiz
Luditronica

Thread Focus

elenco inserzionisti
Blu Nautilus pag. 9, 53, 85
Piazza Tre Martiri 24 - 47900Rimini (RN)
Tel. 0541 439575 - www.blunautilus.it
Comune di Scandiano - Ufficio Fiera pag. 15
Piazza Trampolini 1 - 42019 Scandiano (RE)
Tel. 0522-764290 - www.fierascandiano.it
E.R.F. pag. 61
Largo Fiera della Pesca 11 - 60100Ancona (AN)
Tel. 0733 780815 - www.erf.it

ROBOT KIT(parte I)
98 Progettare
piccoli robot domestici
certamente unattivit gratificante che
pu riempire di gioia qualsiasi appassionato. Come ogni attivit umana, e in
modo particolare un lavoro di progettazione integrata hardware e software, necessario definire, in modo chiaro e preciso, le diverse fasi di lavoro: solo in questo modo possiamo raggiungere il nostro obiettivo

LUPUS IN FABULA
Failrchild 16 - Istituto Italiano di Tecnologia
di Genova 16 - LEM 16 -Linear Technology 16
- Microchip 30, 36 -Universit di Pisa 16

Exposition service. pag. 14


V.le Dante Alighieri, 54 48022 Lugo (RA)
Tel. 0545 27548 www.mondoelettronica.it
Farnell Italia pag. 6, 23
C.so Europa, 20-22 20020 Lainate (MI)
Tel. 02 939951 - www.farnell.com
Futura Elettronica pag. 45, 79
Via Adige, 11 - 21013 Gallarate (VA)
Tel. 0331 792287 - www.futuranet.it

di Francesco Pentella

Inware pag. IV cop

via Cadorna, 27/31 - 20032 Cormano (MI)


Tel. 02 66504794 - www.elettroshop.com
LeCroy pag. 41

COMING...

via E. Mattei Valecenter 1/c/102a - 30020Marcon (VE)


Tel. 041 5997011 - www.lecroy.com

...prossimamente su Fare Elettronica


PROGETTARE CON RFID
SENSORE DI FUMO CON MSP430
TUTTO SULLE LAMPADE A FLUORESCENZA
TRIAC ED SCR, COME FUNZIONANO?

Fare Elettronica
su Facebook!!
Unisciti al gruppo

Micromed pag.63
Via Valpadana 162B/2 - 00141 Roma
Tel. 06 82000066 - www.micromed.it
MikroElektronica pag. 35
Visegradska, 1A - 11000 Belgrade

GLI ARTICOLI CONTRASSEGNATI


COL SIMBOLO
SONO GI DISPONIBILI
IN FORMATO PDF *
ALLINDIRIZZO WWW.FARELETTRONICA.COM/CLUB
* Puoi iscriverti al CLUB di Fare Elettronica versando una piccola quota annuale.

Tel. +381 11 3628830 www.mikroe.com


Millennium Dataware pag. 89
Corso Repubblica 48 - 15057Tortona (AL)
Tel. 0131 860254 - www.mdsrl.it
Nital pag. 96
Via Tabacchi 33 - 10132Torino (TO)
Tel. 011 8144332 - www.irobot.it
PCB Pool pag. 17

Usa il mobile tagging per vedere sul tuo telefonino gli


approfondimenti e gli aggiornamenti sui contenuti della rivista.
Per saperne di pi visita www.inwaredizioni.it/IEMOB

COSA DEVI FARE


1) Questa operazione la farai una sola volta. Scarica ed installa gratuitamente
il software per il tuo telefonino dalla pagina http://gettag.mobi
2) Clicca licona TagReader sul tuo telefonino
3) Inquadra il codice e segui le istruzioni del software di lettura
4) Il telefono si collega al sito mobile per visualizzare i contenuti

Bay 98-99 Shannon Free Zone


Shannon - County Clare
Tel. 02 64672645 - www.pcb-pool.com
Tecnoimprese pag. 57
V. Console Flaminio, 19 - 20134Milano (MI)
Tel. 02 210111244 - www.tecnoimprese.it
Teltools pag. 16
Via della martinella 9 - 20152Milano
www.carrideo.it - www.teltools.it

6-7 editoriale_fe 07/12/09 15.11 Pagina 6

www.element -14.com
?bfehjWb[j[Yd_Ye%bWYeckd_j[b[jjhed_YWf[h_fhe][jj_ij_

BWYeckd_j[b[jjhed_YW
i__dYedjhWik[b[c[dj'*
KdWh_iehiW_dZ_f[dZ[dj[[Wbb#_d#ed[f[hbWh_Y[hYWZ__d\ehcWp_ed_[ijhkc[dj_
f[hbWfhe][jjWp_ed[[f[hbWYebbWXehWp_ed[\hW_fhe][jj_ij_[b[jjhed_Y_$

L_dY_A_jZ_il_bkffe[Wbjh_Yecfed[dj_[b[jjhed_Y_
CTegXV\cTT_EB47G8FGXTieT\_Tcbff\U\_\gW\e\VXiXeX\ab`TZZ\b^\gW\fi\_hccbXVb`cbaXag\!9\abT_&#ZXaaT\b%#$#cbgeT\
e\VXiXeXE9@7E9%#(k7XiX_bc`Xag>\g
4g`X_Kc_T\a8iT_hTg\baTaW7X`bafgeTg\ba^\g

CODICE MIP 2772571

FWhj[Y_fWh[i[cfb_Y[0f[hiYefh_h[_Z[jjW]b_l_i_jW
mmm$[b[c[dj#'*$Yec[h[]_ijhWj_Wb]hkffeHeWZJ[ij$

*&+')

6-7 editoriale_fe 07/12/09 15.11 Pagina 7

editoriale
di MAURIZIO DEL CORSO

Frequenze

LIBERE!

Con lavvento al
digitale terrestre e
il progressivo
switch-off dei
canali analogici si
libereranno molte
frequenze, ma
come verranno
impiegate?

n gergo tecnico noto come


dividendo digitale
ed la disponibilit di
frequenza fino ad oggi occupate
dalla TV analogica e rese libere
con il passaggio al digitale terrestre.
Lo spettro radio liberato consente
la trasmissione di dati anche su
lunghe distanze ed quindi una
risorsa molto preziosa per la quale
la Commissione Europea sta
determinando come sfruttarla
al massimo. I potenziali usi del
dividendo digitale sono molteplici
e focalizzati sui servizi di consumo
di massa come quelli mobili in
banda larga. importante per
che vi sia una azione coordinata

Scarica lapplicazione per il tuo cellulare


su http://gettag.mobi
Scatta una foto al codice sopra riportato
i primi 10 avranno una iscrizione gratuita
al club di Fare Elettronica!

tra tutti i paesi europei in quanto


se una stessa apparecchiatura pu
operare in tutti i paesi europei
si genera un enorme vantaggio
economico derivante da economie
di scala per i produttori,
con conseguente abbassamento
dei prezzi, aumento della domanda
e maggiore accessibilit ai nuovi
servizi da parte dei consumatori.
La destinazione delle nuove
frequenze ancora oggetto
di discussione per cui non ci resta
che attendere, nel frattempo
possiamo approfondire le nostre
conoscenze sulla tecnologia digitale
terrestre con larticolo di pagina 18.
Per il vostro laboratorio abbiamo
preparato il progetto
di un frequenzimetro da 60MHz
che vi sar senzaltro utile, mentre
per gli amanti della robotica,
troverete in RobotZone il progetto
di un robot che potrete dotare
di cingoli ed altri add-on.
Questo mese abbiamo anche
riservato spazio a chi alle prime
armi con una trattazione esaustiva
sui resistori.
7

8-9 _FE 07/12/09 14.55 Pagina 8

in fatto
di campagne...
la nostra
non ha rivali

DIRETTORE RESPONSABILE

Abbonamento per lItalia:

Antonio Cirella

49,50

DIRETTORE TECNICO

Abbonamento per lestero:

Maurizio Del Corso

115,00
Gli arretrati potranno essere ri-

Segreteria di redazione
Giorgia Generali

solo Fare Elettronica - 6,00


Fare Elettronica + Mr A. Keer 7,90 in pi

www.farelettronica.com

PROGETTI

Trasmettitore DSB per i 20m


Cinque melodie in un PIC
Smartcard reader
Robot cingolato

MENSILE Poste Italiane Spa - Spedizione in abbonamento Postale - D.L. 353/2003 (conv. In L. 27/02/2004 n. 46) art. 1, comma1, DCB Milano. In caso di mancato recapito, restituire all'editore che si impegna a pagare la relativa tassa presso il CPM di Roserio - Milano

PER IMPARARE

Il protocollo SIP nei sistemi VoIP


Decoder 7 segmenti con memoria
I resistori elettronici
Lezioni di VHDL

Il digitale
terrestre
la tecnologia
e i decoder

FREQUENZIMETRO
DA 60 MHZ

Autorizzazione alla pubblicazione

Comitato Scientifico
Simone Masoni (Microtest), Francesco Picchi (Microtest), Massimo Rovini (Universit degli Studi di Pisa), Tiziano Galizia (Tigal), Claudio Turchetti
(Universit Politecnica delle Marche).

del 17/11/2003

Art Director

Edizioni srl. vietata la riproduzione

Patrizia Villa

anche parziale degli articoli salvo

Grafica e impaginazione

espressa autorizzazione scritta del-

Mara Florian

leditore. I contenuti pubblicitari so-

Hanno collaborato
in questo numero:

no riportati senza responsabilit,

Grazia Ancona, Daniele Cappa, Giu-

Privacy

seppe De Gennaro, Giovanni Di Ma-

Nel caso la rivista sia pervenuta in

ria, Antonio Giannico, Giuseppe Mo-

abbonamento o in omaggio, si ren-

dugno, Giorgio Ober, Francesco

de noto che i dati in nostro pos-

SUBITO
3 NUMERI
SONO GRATIS !!!

Tribunale di Milano n.647


Copyright
Tutti i diritti di riproduzione o di traduzione degli articoli pubblicati sono riservati. Manoscritti, disegni e fotografie sono di propriet di Inware

a puro titolo informativo.

sesso sono impiegati nel pieno ri-

Direzione Redazione
Pubblicit
International Advertisement
INWARE Edizioni srl
Via Cadorna, 27/31
20032 Cormano (MI)
Tel. 02.66504755
Fax 02.66508225
[email protected]
www.inwaredizioni.it
Redazione: [email protected]

spetto del D.Lgs. 196/2003. I dati

Stampa

tologia relativo al Trattamento di da-

Grafiche Sima

ti personali art. 2, comma 2, si co-

Via Provinciale Francesca, 52

munica che presso la nostra sede di

24040 Ciserano (BG)

Cormano Via Cadorna 27, esiste

Distribuzione
Parrini & C s.p.a.
Via di Santa Cornelia, 9
00060 Formello (RM)

con PIC16F628

ABBONATI

oltre le spese di spedizione

Coordinamento editoriale
Rachele Villa

Pentella, Remo Riglioni.

n. 294/295 DICEMBRE/GENNAIO Anno XXV

chiesti, per iscritto, a 9,00

Ufficio Abbonamenti
INWARE Edizioni srl
Via Cadorna, 27/31
20032 Cormano (MI)
Per informazioni, sottoscrizione o
rinnovo dellabbonamento:
[email protected]
Tel. 02.66504755
Fax. 02.66508225
L'ufficio abbonamenti disponibile telefonicamente dal luned al venerd dalle 14,30 alle 17,30.
Tel. 02.66504755
Fax 02.66508225

trasmessi a mezzo cartoline o questionari presenti nella rivista, potranno venire utilizzati per indagini
di mercato, proposte commerciali, o
linoltro di altri prodotti editoriali a
scopo di saggio. Linteressato potr avvalersi dei diritti previsti dalla
succitata legge. In conformit a
quanto disposto dal Codice di deon-

una banca dati di uso redazionale.


Gli interessati potranno esercitare i
diritti previsti dal D.Lgs. 196/2003
contattando il Responsabile del Trattamento Inware Edizioni Srl
([email protected]).
Collaborare con
FARE ELETTRONICA
Le richieste di collaborazione vanno indirizzate allattenzione di Maurizio Del Corso ([email protected]) e accompagnate, se
possibile, da una breve descrizione
delle vostre competenze tecniche
e/o editoriali, oltre che da un elenco
degli argomenti e/o progetti che
desiderate proporre.

CODICE MIP 2754293

pubblicit_fe 04/12/09 13.04 Pagina 2

10-13 idee di progetto_FE 03/12/09 07.36 Pagina 10

idee di progetto

di FRANCESCO DI LORENZO

ASTABILE REGOLABILE
Il circuito il classico oscillatore astabile provvisto di regolazione indipendente
del duty cycle P2 e della frequenza P1. Per ottenere una frequenza di oscillazione
di 700 Hz dobbiamo collegare in C1 un condensatore da 10 nF e il potenziometro
P1 deve fornire una resistenza di 100 kohm, mentre per una frequenza
di 25 Hz dobbiamo collegare un condensatore da 10 nF e il potenziometro P1
deve essere regolato a 0 ohm. Per ottenere altri valori di frequenza basta seguire
le seguenti formule:

e per definire il beta, ovvero il guadagno, utilizziamo la seguente formula:

Il circuito deve essere alimentato con una tensione duale di 15 V.

OSCI LLATORE A
PONTE WIEN

CROSSOVER A 4 INGRESSI

Nello schema riportato un oscillatore a ponte di


Wien. Esso costituito da un amplificatore operazionale TL082, da condensatori e induttanze.
Il segnale in uscita di tipo sinusoidale e dipende
dai parametri C ed R. Per il calcolo della frequenza
si usa la formula f = 1/2RC, mentre a provvedere allampiezza del segnale abbiamo la formula
R2 = 2R1.

Questo circuito formato da 4 filtri del secondo, terzo e quarto ordine. Tale circuito viene impiegato nei comunissimi altoparlanti a colonna degli impianti stereo. Le frequenze di taglio dei
filtri sono: 350 Hz, 1500 Hz e 6000 Hz. A ogni uscita del filtro corrisponde un particolare tipo di
cassa: per primo abbiamo il Tweeter (Tw), come secondo e terzo abbiamo comuni casse per i medi (Mh e Mb) e infine subwoofer (Wf).

idee di progetto
10

10-13 idee di progetto_FE 03/12/09 07.36 Pagina 11

DALLA REDAZIONE DI FARE ELETTRONICA UNA RACCOLTA DI IDEE ED APPLICAZIONI


DA TENERE SEMPRE A PORTATA DI MANO

CONVERTITORE TENSIONE/FREQUENZA
LAD650 prodotto dalla Analog Device un convertitore V/F e F/V; esso sfrutta

tale dispositivo si possono tuttavia ottenere molte configurazioni e ottenere tensioni di usci-

la propriet del bilanciamento di carica. Uno degli schemi applicativi quello riportato in

ta e frequenze di uscita a piacimento. A questo proposito il manuale offre formule e dia-

figura che offre la possibilit di ottenere 100 kHz con una tensione di ingresso di 5 V. Con

grammi appositi. Il circuito deve essere alimentato con una tensione duale di 15 V.

Conversione AD
LADC0801 un convertitore A/D
piuttosto comune prodotto dalla
National Semiconductor del tipo ad
approssimazione successiva. Realizzati in
tecnologia CMOS, essi presentano una
risoluzione a 8 bit con un tempo di
conversione a 100 us. I terminali di uscita
sono di tipo tri-state con livelli TTL
compatibili. Il segnale di clock pu essere
fornito dallesterno o pu essere generato
dallintegrato stesso come in figura.
Questo schema permette di capire come
avviene la conversione facendo arrivare sul
pin 6 una tensione regolabile da 0 a 5 V;
facendo cos il codice binario viene indicato
dai LED che si accendono e si spengono.

TERMOMETRO A INFRAROSSI
LMLX90614 un termometro a infrarossi senza contatto per misurazioni di temperatura. Questo
sensore costituito da un sensore IrDa sensibile alla temperatura. Il dispositivo viene calibrato in
fabbrica secondo un sistema PWM per essere sensibile a temperature da -20C a 120C. Internamente
costituito da un convertitore da 17 bit che lo rende adatto per misure di precisione. Infatti viene usato
per misurare le temperature ai bambini con et inferiore ai 2 anni e anche in applicazioni militari.

o idee di progetto
11

10-13 idee di progetto_FE 03/12/09 07.36 Pagina 12

idee di progetto

CONVERSIONE AD ALTA LINEARIT


Il MAX9995 un convertitore ad alta linearit prodotto dalla Maxim. Fornisce un guadagno 6.1 dB, 25,6 dBm IIP3 e 9.8 dB. Questi dispositivi sono disponibili in un
compatto 36-pin sottile. La tensione di alimentazione si aggira intorno ai 5 V e dissipa una corrente di 350 mA. In figura riportata la connessione tipica raccomandata
dalla casa produttrice che garantisce un buon funzionamento. Questo integrato viene utilizzato per applicazioni militari, nei sistemi radio, wireless, ecc.

idee di progetto
12

pubblicit_fe 09/12/09 14.10 Pagina 9

(&75*).*2

Firmware
KNOW-HOW IN ELETTRONICA

DICEMBRE-GENNAIO 2009/2010 n. 47-48

Solo Firmware 6,00


Firmware + Mr A. Keer 7,90 in pi

Applicazioni
UN PULSANTE
MULTIFUNZIONE

circuiti integrati
Tools

TIMER PROGRAMMABILE
CON PIC

STADI DI POTENZA
PER IL CONTROLLO
MOTORE

FPGA ULTRA LOW-POWER


IPSEC NEI SISTEMI
EMBEDDED

KERNEL REALTIME
PER AVR
STACK SOTTO
CONTROLLO

JenNet

wireless

UNALTERNATIVA
A ZigBee?

Inquadra
il codice
per accedere
ai contenuti!

Richiedi
al tuo edicolante
i tre DVD di Mr A.Keer!

CODICE MIP 2779038

N. 47/48 DICEMBRE-GENNAIO 2009/2010 - Anno 4

MENSILE anno IV Poste Italiane Spa - Spedizione in abbonamento Postale - D.L. 353/2003 (conv. In L. 27/02/2004 n. 46) art. 1, comma1, DCB Milano. In caso di mancato recapito, restituire all'editore che si impegna a pagare la relativa tassa presso il CPM di Roserio - Milano

per

Firmware

NON PERDERE
IL NUMERO
DI QUESTO
MESE

14-15 eventi_fe 07/12/09 15.35 Pagina 14

",

1"6
<<<"

 ,
  //," 


 ",/
 ,  /-"

)NFORMATICA 0# (ARDWARE


3OFTWARE 4ELEFONIA $IGITALE
3URPLUS 46 3!4
6IDEOGAMES #OMPONENTISTICA
,#$ (OBBISTICA !CCESSORI
-ATERIALIDICONSUMO
2ADIANTISMO $ISCHIE#$
() &) -P -P

{ ,"

 ,  ,,,

even
eventi

12-13 dicembre 2009


Mostra mercato nazionale
radiantistica elettronica

Levento marchigiano per


tutti gli appassionati di
elettronica e radiantistica.
Oltre ai componenti
elettronici e radioamatoriali,
troverete computer,
accessori per la telefonia
cellulare, stampanti, CD, DVD e gadget.
D o v e : Civitanova Marche (MC) Q u a n d o : 12-13
Dicembre 2009
O r a r i : dalle 9.00 alle 18.00 O r g a n i z z a z i o n e : E.R.F.
Info: www.erf.it
CODICE MIP 2778757

12-13 Dicembre 2009

EXPO ELETTRONICA

Cremona

Expo Elettronica, il grande circuito


di mostre mercato dedicate
allelettronica professionale e di
consumo, fa tappa a Cremona un
nuovo appuntamento dedicato al
pubblico lombardo ed emiliano. La
rassegna lanello mancante fra antiquariato tecnologico e
applicazioni futuribili: una miriade di oggetti e applicazioni
ormai indispensabili come computer, software, periferiche,
home theater, telefonia fissa e mobile, accessori, ricambi,
curiosit elettroniche e digitali.
Dove: Cremona Quando: 12-13 Dicembre 2009
Orari: dalle 9.00 alle 18.00 Organizzazione: Blunautilus
Info: www.expoelettronica.it
CODICE MIP 2778761

6>`i>i>]
>`>V>i>>`

",," n]

12-13 DICEMBRE 2009

E 6

",

1"6
<<<"

&HOO
LQIR#H[SRVLWLRQVHUYLFHLW
ZZZPRQGRHOHWWURQLFDQHW

6
" , "//"

 

"/"
"*

Computerfest & Radioamatore


Singoli componenti, periferiche, software, personal computer ma non solo.


Alla ComputerFest di Udine potrete trovare apparati radio e componentistica
radioamatoriale; home entertainment (tv-sat, dvd, antenne); telefonia fissa e mobile; editoria specializzata; fai-da-te elettronico, attrezzature e strumentazioni varie.
Dove: Reggio Emilia
Quando: 12-13 dicembre 2009
Orari: dalle 9.00 alle 18.00
Organizzazione: Compendio Fiere

info: www.compendiofiere.it
CODICE MIP 2778765

14-15 eventi_fe 07/12/09 15.35 Pagina 15

n ti
19-20 Dicembre 2009

Marc Mostra Mercato

La manifestazione organizzata da Studio Fulcro


con il patrocinio dellARI Associazione Radioamatori Italiani
si svolger nel Padiglione C e offrir una panoramica completa
di attrezzature e componentistica radioamatoriale,
oltre a parabole satellitari e antenne, decoder, autoradio
e navigatori satellitari GPS, fotocamere e videocamere digitali,
mini TV Lcd, lettori MP3, console per playstation
e videogiochi, accessori per i telefoni cellulari, palmari,
fax e telefonia in genere. Grandissimo risalto avr il settore
informatico con unampia offerta di pc, notebook, stampanti,
scanner, software, monitor Lcd, CD, DVD, Usb pen drive,
webcam. Inoltre, ampissima offerta per ricariche
di inchiostro e di cartucce compatibili per le stampanti, mentre
i cultori del fai-da-te potranno trovare pezzi
di ricambio, schede video, Hard disk, apparecchiature
da mettere a posto e accessori per elaborazioni speciali
a costi estremamente concorrenziali.
Dove: Genova
Quando: 19-20 Dicembre 2009
Orari:: dalle 9.00 alle 18.00
Organizzazione: Studio Fulcro
Info: www.studio-fulcro.it
CODICE MIP 2778759

19-20 Dicembre 2009

ELECTRONIC

Info: www.electronicdays.it
CODICE MIP 2778763

CODICE MIP 2777740

DAYS

Informatica, computer, cd e dvd, editoria


specializzata, antenne, sistemi satellitari e ricambi,
batterie, apparati per radioamatori, MP3/4 e tanti
altri articoli. Parcheggio gratuito, bancomat e
punto ristoro.
Dove: Biella Fiere
Quando: 19-20 Dicembre 2009
Orari: dalle 9.00 alle 18.00
Organizzazione: Italfiere

15

16-17_news_fe 04/12/09 20.12 Pagina 16

latest news
Soluzioni switch specifiche per moduli fotocamera
Fairchild Semiconductor offre ai progettisti di smartphone 3G, cellulari,
set-top box, videocamere di sicurezza e notebook un vasto portafoglio
di switch per fotocamere che risolvono le complesse sfide progettuali tipiche di queste applicazioni. Le soluzioni dedicate di Fairchild si caratterizzano per: isolamento totale, capacit di gestire interfacce multiple,
flessibilit progettuale, emissioni EMI contenute, On capacitance complessiva inferiore. Fairchild Semiconductor fornisce soluzioni allavanguardia per sistemi portatili. I suoi switch analogici, audio, video, camera
e USB rivestono unimportanza critica nel ridurre
il numero di circuiti, eliminare i connettori superflui, semplificare il design e risparmiare spazio prezioso allinterno degli apparecchi.
CODICE MIP 2775124

MIXER DOWNCONVERTING
PER STAZIONI BASE

wireless 3G/4G
Linear Technology annuncia la famiglia
LTC554x composta da quattro nuovi mixer
downconverter con ampio range dinamico
in grado di convertire intervalli di frequenza
tipici delle infrastrutture wireless, da 700
MHz a 4 GHz. I mixer della gamma LTC554x
offrono un IIP3 (input third-order intercept)
di 26 dBm, cifra di rumore di soli 9-10 dB e un elevato guadagno di conversione
di 8 dB, garantendo cos prestazioni eccellenti nel range dinamico sia per i ricevitori
principali che per i ricevitori con pre-distorsione digitale. La famiglia di mixer
LTC554x fornisce anche funzionalit avanzate per mantenere bassa la cifra di rumore in presenza di forti interferenze di blocco e migliorare al tempo stesso la sensibilit e laffidabilit del ricevitore. Diversamente da altri mixer della stessa categoria, i dispositivi della famiglia LTC554x funzionano con una singola alimentazione da 3,3 V senza pregiudicare le prestazioni e consumano il 34% in meno rispetto alla principale soluzione concorrente.

PROGETTO VIACTORS:

i robot simili alluomo


Il 25 ottobre, a Palazzo Ducale di Genova,
nellambito del Festival della Scienza,
stato presentato il progetto europeo VIACTORS, per la costruzione di robot simili
alluomo. Una volta
erano colossi di metallo, o cervelloni con il corpo cubico, immensi
elaboratori di dati. Niente di tutto questo per la moderna robotica:
intelligenza e capacit di compiere determinate prestazioni sembrano dipendere sempre di pi dal tipo di struttura fisica di cui dotiamo gli automi. Proprio come accade negli esseri umani, in cui
alcune capacit cognitive e di movimento dipendono dalla struttura neuromuscolare. Con lobiettivo di correlare linterazione tra
la struttura, la morfologia, e la capacit di compiere determinate prestazioni nato VIACTORS (Variable Impedance ACTtuation
systems embodying advanced interaction behaviORS), un progetto europeo che vede coinvolte anche il Centro per lAutomatica,
la Robotica e la Bioingegneria Enrico Piaggio dellUniversit di Pisa e lIstituto Italiano di Tecnologia di Genova.
CODICE MIP 2775309

Nuovi sensori a bobina


di Rogowski da LEM
LEM presenta la prima
famiglia di sensori di
corrente in AC basata
sulla tecnologia Perfect
Loop, con brevetto in
attesa di approvazione. Con calibrazione, i
nuovi RT raggiungono

CODICE MIP 2776004

CODICE MIP 2755611

la precisione in termini
assoluti di oltre 0,65%, incluso lerrore di posizione, rendendo questi
sensori le prime bobine di Rogowski apribili adatte per luso nei dispositivi di potenza di Classe 1. La nuova serie RT ovvia al problema di
asimmetria derivante dalla discontinuit in corrispondenza dellapertura del sensore, che intrinseco nelle bobine convenzionali di Rogowski apribili. Una struttura imperfetta dellavvolgimento induce
una geometria sbilanciata e aumenta la sensibilit verso la posizione
del conduttore da misurare che passa allinterno del sensore, o in
prossimit dei cavi elettrici esterni. Mentre altri produttori utilizzano
sistemi complessi e costosi di chiusura per minimizzare gli effetti
della discontinuit, gli ingegneri LEM hanno inventato una tecnologia
unica ad accoppiamento magnetico, con brevetto in fase di approvazione, che consente di ottenere unestensione perfetta del flusso magnetico in corrispondenza dellapertura dellanello e che compensa lasimmetria della bobina.
CODICE MIP 2775340

16

16-17_news_fe 04/12/09 20.12 Pagina 17

NUOVA TECNOLOGIA EFUSE DI TOSHIBA

LA PRIMA MEMORIA NAND FLASH


DA 64 GIGABIT X4

Il centro ricerche ASIC &


Foundry di Toshiba Electronics Europe (TEE) ha
annunciato che da oggi gli
utenti europei di dispositivi ASIC e SoC (System
On Chip) possono avvalersi della tecnologia eFUSE (electrical programmable fuse) nello sviluppo
di circuiti integrati basati su processi Toshiba. La tecnologia eFUSE utilizza antifusibili PMOS a ossido di gate, programmabili elettricamente,
e offre una soluzione versatile, economica e facile da usare per la regolazione dei parametri di prestazione, il ripristino delle memorie e laggiornamento delle configurazioni e dei dati di versione. eFUSE offre inoltre funzioni di memorizzazione e tracciamento di chip ID e la possibilit
di memorizzare tramite chiave ROM i dati delle trasmissioni sicure.

SanDisk, leader mondiale nella produzione


di schede di memoria flash, annuncia di aver
iniziato la distribuzione di memorie flash basate sulla propria tecnologia avanzata di memoria flash X4, che contiene 4 bit di dati in ogni cella di memoria, il
doppio rispetto alle celle dei tradizionali chip di memoria NAND
MLC (Multi-Level Cell, da 2-bits-per-cell). Basato su una tecnologia
di processo a 43 nanometri (nm), il chip NAND flash da 64 Gigabit (Gb)
il dispositivo di memoria a die singolo con pi alta densit in assoluto a entrare in fase di produzione. Lo sviluppo e la commercializzazione della tecnologia X4 rappresenta un traguardo importante nel
settore dellarchiviazione flash e la distribuzione della tecnologia a 4
bit per cella unevoluzione necessaria per il mercato.
CODICE MIP 2774979

CODICE MIP 2776002

NUOVO SENSORE MCP9804

di Microchip

Microchip annuncia il nuovo sensore di temperatura MCP9804. Il


sensore offre una precisione tipica di +0.25C o di +/- 1C da -40
a +125C, e un consumo statico di soli 200A (typ). Disponibile in
package miniaturizzati MSOP a 8-pin e 2mm x 3mm DFN, questo
dispositivo I2C permette di ridurre gli ingombri su scheda e
garantisce autonomie di batteria prolungate nelle applicazioni industriali, automotive e consumer.
Esempi applicativi del sensore di temperatura MCP9804 comprendono i freezer industriali (i quali richiedono unelevata precisione a temperature da -20C a+45C), i dispositivi elettronici
consumer come i personal computer (i quali richiedono elevata precisione a +85C) e i sistemi automotive come i misuratori di temperatura del propulsore, che presuppongono alte precisioni fino a
+125C.
CODICE MIP 2774370

17

18-29_DigitaleTerrestre_fe 04/12/09 14.46 Pagina 18

zoom in

zoom in

di GIUSEPPE DE GENNARO

IL DIGITALE
TERRESTRE

18

18-29_DigitaleTerrestre_fe 04/12/09 14.46 Pagina 19

E
E
Un cambiamento radicale di uno
degli oggetti pi utilizzati
e maggiormente diffusi nel mondo.
In questo articolo cercheremo
di scoprire gli aspetti tecnici
della televisione digitale, partendo
dalla codifica dei segnali
audio/video, passando per la
modulazione, la trasmissione radio
terrestre e la ricezione
su un set-top-box

Forse non tutti sanno che stiamo vivendo, proprio in questi mesi, una delle pi
grandi rivoluzioni tecnologiche dellera
moderna relativa alloggetto elettronico
forse pi diffuso e usato dalla quasi totalit della popolazione mondiale: la televisione. Linvenzione e la diffusione
della ormai onnipresente scatola animata avevano gi dato inizio, a partire
dalla met del secolo scorso, a una
grande rivoluzione tecnologica e una,
forse anche pi grande, sociologica. Per
quasi sessanta anni, ignorando il passaggio dalla televisione in bianco e nero
a quella a colori, il sistema rimasto
pressoch identico.
Oggi, per, messo completamente in
discussione e, nel giro di qualche anno, almeno nelle previsioni dei governi, sar
completamente abbandonato, entrando
a tutti gli effetti nella storia. Il nuovo sistema porter con s numerosi vantaggi
e servizi aggiuntivi che solo una tecnologia digitale pu fornire: un maggior numero di canali televisivi, servizi interattivi,
applicazioni e navigazione internet direttamente sul televisore, migliore qualit
audio/video, alta definizione, pay-tv.
In questo articolo, dopo una breve nostalgica panoramica sul vecchio sistema televisivo, saranno analizzati gli aspetti tecnici del digitale terrestre, lasciando ad
altri i risvolti politici e sociali, allo stesso
modo importanti.

LA TELEVISIONE ANALOGICA
Cos come si intuisce dal nome, il segnale ricevuto ed elaborato dalla televisione storica completamente analogico (e, molto spesso, continua a rimanere analogico anche negli ambienti di
regia, nello studio, nei siti di trasmissione delle emittenti).

Banda base
Prima di essere trasmesso via radio, il
segnale televisivo ha un contenuto spettrale di qualche MHz e viene quindi denominato segnale in banda base o a
bassa frequenza. Esistono diversi tipi di
segnali video analogici in banda base, il
pi importante, relativamente alla trasmissione televisiva, il cosiddetto video composito. Il segnale televisivo contiene una sequenza di immagini statiche
(quadri o tecnicamente raster) che vengono visualizzate, una dopo laltra, ad

alta velocit, in modo che locchio umano abbia un senso di fluidit del movimento. Nel video composito, la sequenza dei quadri nel tempo scandita da
un segnale di sincronismo (livello di tensione convenzionale di -300 mV) detto,
appunto, sincronismo di quadro.
Ogni quadro rappresenta unimmagine
statica, una sorta di fotografia in un istante ben preciso. Ignorando la questione del
colore e considerando una immagine in
bianco e nero, un quadro una figura
bidimensionale caratterizzata da un livello di luminosit variabile da punto a
punto. Per descriverla tutta viene effettuata una scansione raster (raster scan):
si parte dal punto in alto a sinistra e,
muovendosi verso destra, si descrive,
mediante un livello di tensione convenzionale variabile da un minimo di 0 mV a
un massimo di 700 mV, la luminosit della prima linea. Dopo la scansione della prima riga, il processo riprende dalla linea immediatamente sotto e cos via (questa
scansione simile a quella fatta dai nostri
occhi quando leggono un testo su un foglio di carta). Nel video composito, il segnale relativo a una riga separato da
quello della riga successiva da un altro
sincronismo, detto appunto di riga. I sincronismi sono importanti, poich il ricevitore (cio il televisore) che riceve questo
segnale dovr essere in grado di riprodurre la stessa immagine trasmessa e
quindi dovr visualizzare la prima riga
esattamente in alto, la seconda subito dopo, ecc. Per fare ci, il ricevitore andr alla ricerca del sincronismo di quadro (con
parole pi tecniche, si aggancer ai sincronismi di quadro), dal quale partir per
tracciare limmagine sullo schermo. Allo
stesso modo il ricevitore si aggancer
al sincronismo di linea per passare alla riga successiva.
In figura 1 mostrata una schematizzazione del segnale video analogico nella
parte relativa a una sola linea, dove si
evidenziano il sincronismo di riga e il segnale di luminosit.
In questa brevissima e ovviamente limitata
trattazione non sono citati alcuni argomenti fondamentali come linterlacciamento (i quadri in realt sono divisi in
due semiquadri), i tempi e le frequenze, il
colore, laudio (mono, stereo e dualsound), il multistandard (PAL, NTSC, ecc),
il teletext, le righe di test, ecc.

19

18-29_DigitaleTerrestre_fe 04/12/09 14.46 Pagina 20

zoom in

zoom in

Figura 1: esempio di un segnale video nel tempo.

Come conclusione opportuno sottolineare come il segnale trasmesso dalle


emittenti una sorta di mano virtuale
che, dal sito di trasmissione, guida i
pennelli di tutti i televisori sintonizzati
su quella frequenza durante il disegno
delle righe, delle immagini e quindi dellintero video.
Questo concetto di guida sar abbandonato grazie alla tecnologia digitale.

IL DIGITALE TERRESTRE
Quando si parla di televisione digitale
terrestre (pi amichevolmente, digitale
terrestre o DTT), ci si riferisce a una tecnologia televisiva che tratta tutti i segnali (principalmente audio/video, ma anche
dati) in digitale, quindi mediante due soli valori numerici: 1 e 0.
Il mondo che ci circonda analogico
(sfido chiunque ad aver mai visto il colore o sentito il rumore di un bit) e quindi le
immagini e il suono vengono da qualche
parte convertite dallanalogico al digitale.
Questi 1 e 0 in fila (immaginiamoli in marcia, uno dopo laltro, perfettamente allineati e coperti) attraversano cavi, circuiti elettronici, memorie, processori e, alla fine, arrivano al sito di trasmissione
dove vengono lanciati nelletere, uno dopo laltro. Per fortuna questi poveri bit in
volo vengono raccolti dalla mano amica
dellantenna posta sul nostro tetto e incanalati ancora una volta allinterno di
cavi, circuiti stampati, microprocessori fino a essere, finalmente, convertiti nuovamente in analogico, nel colore rosso di
un vestito da soubrette o nel tono melodico di un violino durante un concerto alla Scala. di questa saga dei bit che
vogliamo scrivere, abbandonando questa
descrizione un po troppo romanzata.

20

Il mondo bello perch vario


Quando ci riferiamo al digitale terrestre,
probabilmente lo immaginiamo come un
unico sistema valido in tutto il mondo.
In realt, come per tutti gli standard internazionali, ci sono vari digitali terrestri:
quello europeo, quello americano, quello cinese, quello giapponese, ecc. Non
entreremo nel merito dei motivi, soprattutto economici, che portano alla proliferazione degli standard, ma ci limitiamo soltanto a nominarli:

il digitale terrestre europeo, denominato DVB-T (Digital Video Broadcasting


Terrestrial);
il digitale terrestre americano ATSC (Advanced Television Systems Committee);
il digitale terrestre cinese DTMB (Digital
Terrestrial Multimedia Broadcast);
il digitale terrestre giapponese/brasiliano ISDB (Integrated Services Digital
Broadcasting).
Nel complesso sistema digitale, molte
parti di questi standard sono comuni o,
quantomeno, molto simili (come detto,
non cerano reali motivi tecnici per far nascere standard diversi). In questo articolo
ci concentreremo sul digitale terrestre che
ci riguarda in prima persona, il DVB-T.

Il consorzio DVB
Lacronimo DVB (Digital Video Broadcasting) sia il nome di un consorzio internazionale di aziende ed enti di regolamentazione (www.dvb.org) che si occupa
della stesura dei documenti tecnici della
nuova televisione digitale e della loro diffusione principalmente in Europa, ma anche nel resto del mondo, sia il nome dello
standard e della tecnologia in s. Giusto

18-29_DigitaleTerrestre_fe 04/12/09 14.46 Pagina 21

per dare unidea del calibro dei membri di


questo consorzio, citiamo (in rigoroso ordine alfabetico) AMD, BBC, Cisco Systems,
Deutsche Telekom, Fracarro, Freescale,
Fujitsu, HP, Humax, Intel, LG, Mediaset, Microsoft, Ministero delle Comunicazioni,
Motorola, Nokia, Panasonic, Philips, RAI,
Samsung e Telecom Italia.

Non solo terrestre


Un sistema televisivo completo riguarda
non soltanto la modalit di trasmissione
(nel nostro caso terrestre), ma anche gli
aspetti relativi al segnale audio/video in
banda base. per questo che il DVB
principalmente una piattaforma di standard digitali televisivi che hanno una base comune e si dividono soltanto nella
modalit di trasmissione: terrestre (DVBT), via cavo (DVB-C), satellitare (DVB-S),
mobile (DVB-H). Molti argomenti che affronteremo nel seguito, quindi, soprattutto quelli che hanno a che fare con il
trattamento dei segnali audio/video in
digitale, non devono essere associati al
solo digitale terrestre, ma anche ad altri tipi di televisione digitale.

CODIFICA AUDIO/VIDEO
Se la televisione deve essere digitale, tale deve essere anche il segnale audio/video, principale servizio offerto dal sistema.
A differenza della trasmissione che per
anni rimasta analogica (e tuttora lo ), negli studi delle emittenti televisive le telecamere, i mixer, gli elaboratori audio/video
sono diventati gi da tempo digitali nella
maggior parte dei casi. La conversione
analogico/digitale , quindi, sempre pi
spesso, una delle prime fasi della creazione
di un video, e avviene gi allinterno delle
telecamere. In alcuni casi il segnale televisivo presente in formato analogico (si
pensi ai vecchi film su pellicola o a vecchie
telecamere analogiche ormai in disuso)
e dovr essere necessariamente convertito in digitale prima di poter essere trasmesso. Questa conversione analogico/digitale pu avvenire con diverse apparecchiature che permettono di eliminare il pi possibile i difetti dellanalogico.

Audio/video digitale
Il segnale video, sin dai tempi della televisione analogica, non altro che una
sequenza di immagini statiche, dette frame (il termine raster visto precedente-

mente legato maggiormente alla tecnologia analogica), visualizzate velocemente una dopo laltra in modo da ingannare locchio e fargli percepire una
certa fluidit di movimento.
In digitale, il frame viene diviso in una matrice di punti, detti pixel, in orizzontale e verticale. Il numero dei pixel indica la risoluzione dellimmagine e, pi in generale, del
video. Ogni pixel viene trasformato in tre
numeri che indicano la quantit di colore
rosso, verde e blu, relativa a quel punto,
nellimmagine originale. Tipicamente ogni
colore viene rappresentato da 10 bit (standard SDI utilizzato nelle telecamere digitali
professionali), quindi da 1024 livelli di colore rosso, verde e blu. Unimmagine con
una risoluzione pari a 720x576 (tipica risoluzione video utilizzata nei DVD e anche
nellinterfaccia SDI) occupa quindi
3x720x576x10 = 12441600 bit.
Considerando 25 frame al secondo, si
ottiene un bitrate (numero di bit al secondo) di circa 12441600x25
311Mbit/s!! ovvio che si tratta di una velocit molto alta (si pensi che la pi veloce ADSL commerciata in Italia di 20
Mb/s), praticamente impossibile da trasmettere via etere. E, pur se in modo pi
limitato, non stato considerato lo spazio
occupato dallaudio.
Anche se apparentemente sembra che il digitale ci abbia portato in un vicolo cieco, in
realt, proprio tecniche digitali ci permettono di abbassare notevolmente i requisiti di bitrate richiesti nella trasmissione video.
Molti di voi avranno gi capito che stiamo
parlando della tecnica di compressione.

Compressione
La compressione un procedimento numerico che permette di ridurre la dimensione (nel caso di memorizzazione) o il bitrate (nel caso di trasmissione) di uninformazione, quali immagini, audio, video,
dati. Le tecniche di compressione si dividono in due grandi gruppi: quelle senza
perdita (lossless compression) e quelle
con perdita (lossy compression).
Le prime sono ampiamente utilizzate nel
mondo informatico per minimizzare la dimensione di file (eseguibili, archivi, database,
documenti, ecc). Il procedimento inverso
della compressione (decompressione) deve dare come risultato lo stesso file di partenza, altrimenti esso non potr essere
correttamente interpretato dal computer.

Le compressioni con perdita, invece, sono ampiamente utilizzate nellambito multimediale per diminuire lo spazio di memorizzazione e la banda di trasmissione
(cio il bitrate) di informazioni audio e video. Infatti, in questi casi, sufficiente ingannare locchio e lorecchio umano (i veri destinatari di queste informazioni), senza pretendere di ottenere la stessa informazione originale. Si potrebbe pensare che una compressione lossy possa
portare a una qualit molto bassa (molti
pensano di avere un orecchio cos fine da
poter notare la differenza di un bit in un
flusso audio digitale). In realt, il successo dei lettori MP3, delle macchine fotografiche digitali compatte, dei DVD e proprio del nostro caro digitale terrestre, dimostra esattamente il contrario. Ci limitiamo qui a citare i tre standard pi diffusi di compressione lossy, ma, in realt, ne
esistono molti altri, pi o meno performanti: MP3 per laudio, JPEG per le immagini, MPEG per il video (in realt, lMP3
fa parte del pi grande standard MPEG).
Una delle prime decisioni prese in seno al
consorzio DVB stata quella di scegliere,
come cuore del sistema, la codifica
MPEG-2, sia in termini di compressione
che di trasporto (come si vedr in seguito). In particolare, si pensato di utilizzare
comunemente lMPEG-2 layer II (il pi
noto MP3 , in realt, MPEG-1 layer III) e
lMPEG-2 Main Profile @ Main Level per la
compressione audio e video rispettivamente. Purtroppo queste tecniche di
compressione audio/video sono molto
sofisticate e meriterebbero molto pi spazio. Qui di seguito presentiamo sommariamente, senza pretese di completezza, le principali caratteristiche delle tecniche di compressione utilizzate nel DVB.

MPEG-2 Layer II
La principale tecnica di compressione utilizzata nellMPEG-1 (adottata, in seguito, dallMPEG-2 praticamente inalterata) quella
di trasformare il segnale audio (variabile nel
tempo) nel dominio della frequenza, sfruttando un filtro a 32 sotto-bande. In pratica,
per ogni sotto-banda viene calcolata la relativa energia del segnale. Successivamente viene applicato un modello psicoacustico dellorecchio umano che permette di individuare le informazioni inutili che, anche se trasmesse inalterate, non verrebbero comunque udite. Un tipico esempio

21

18-29_DigitaleTerrestre_fe 04/12/09 14.46 Pagina 22

quello di due toni a due diverse frequenze,


uno molto pi alto (in termini di volume)
dellaltro. Il tono pi basso non verr sentito dallorecchio e quindi la sua informazione pu essere eliminata. Naturalmente,
quante pi informazioni vengono scartate, tanto pi diverso sar il segnale audio decompresso rispetto a quello originale. Lo
standard permette di scegliere un compromesso tra qualit e quantit, utilizzando
il bitrate che meglio si adatta allapplicazione.
Sono previsti molteplici bitrate: 32, 48, 56,
64, 80, 96, 112, 128, 160, 192, 224, 256,
320, 384 kbit/s.

MPEG-2 Main Profile @ Main Level


La compressione video MPEG-2 basata su profili e livelli. La combinazione
maggiormente utilizzata nel DVB quella denominata Main Profile @ Main Level
(MP@ML). Una prima compressione viene effettuata descrivendo i pixel dei frame
mediante le informazioni di luminanza e
crominanza (codifica denominata YCbCr),
anzich quelle sui colori rosso, verde e blu.
Questa strana codifica permette di sfruttare una limitazione dellocchio umano
che riesce ad apprezzare molto meglio i
dettagli di luminanza, piuttosto che quelli di crominanza. Una semplice riduzione
di bitrate si ottiene prendendo, per ogni
area di 2x2 pixel, soltanto un valore di crominanza Cb e uno Cr (sottocampionamento della crominanza secondo lo schema 4:2:0). Il bitrate complessivo risulta dimezzato (4 valori Y, 1 Cb e 1 Cr) rispetto
a nessun sottocampionamento di crominanza (4 valori Y, 4 Cb e 4 Cr). In figura 2
illustrato graficamente questo sistema:
ogni quadrato rappresenta un pixel, larea
di 4x4 pixel indicata con un bordo pi
spesso, il campione di crominanza colore rappresentato con un cerchietto.
Ogni frame del video viene classificato, secondo uno schema abbastanza personalizzabile, in I-frame, P-frame o B-frame.

Figura 2: schema di sottocampionamento


dellinformazione di crominanza.

22

Un frame di tipo I (intra-coded) viene


compresso considerando soltanto quel
frame. Mediante operazioni matematiche di trasformazione nel dominio della
frequenza (anche nello spazio, e non solo nel tempo, si pu parlare di frequenze),
vengono eliminate informazioni che locchio umano non potrebbe vedere, per
esempio cambiamenti di luminanza/crominanza in spazi molto piccoli. La caratteristica fondamentale di un I-frame
quella di poter essere sempre decodificato
senza conoscere nulla del frame precedente o successivo.
Al contrario, un P-frame (predicted-frame) viene compresso sfruttando le sue
similitudini con il frame immediatamente
precedente (per esempio, in un panorama il cielo rimane pressoch nella stessa posizione ed quindi inutile ritrasmettere la stessa informazione per ogni
frame). bene notare che, se il frame
precedente viene trasmesso in modo
errato, altrettanto errata sar la decodifica del P-frame che da questi dipende. Il vantaggio che un P-frame pu essere compresso con un numero minore
di bit rispetto a un I-frame.
Infine, il B-frame (bidirectional-frame) viene codificato sfruttando le sue similitudini sia con il frame precedente che con
quello successivo. Anche in questo caso,
se la trasmissione dei frame di riferimento errata, il B-frame viene a sua volta decodificato in modo errato. Per contro,
un B-frame pu essere compresso maggiormente rispetto a un P-frame (e quindi a un I-frame).
Il compressore utilizzer una sequenza
ben precisa di frame I, P e B che viene denominata GOP (Group Of Pictures).
bene notare che necessario partire
sempre con un I-frame che far anche da
riferimento per i successivi frame predittivi (P e B). Siccome gli errori di un frame
si propagano in cascata in tutti gli altri frame P e B, bene che la sequenza GOP
non sia molto lunga e termini con un altro
I-frame, che far da riferimento per la
successiva sequenza. Una possibile GOP
pu essere: IBBPBBPBBPBB(I). Lo standard video MPEG-2 definisce i cosiddetti livelli e profili che specificano altri dettagli
relativi alla compressione video. NellMP@ML utilizzato spesso nel DVB, la
risoluzione video 720x576 e il sottocampionamento colore il 4:2:0. Alla fine

18-29_DigitaleTerrestre_fe 04/12/09 14.46 Pagina 23

<C<KKIFE@:8<EFEJFCF

Klkkfhl\ccfZ_\k`j\im\
+/'%'''gif[fkk`[X
*%,''dXiZ_`c\X[\i

HlXe[fk`j\im\
:fej\^eX`e)+fi\
nnn%]Xie\cc%Zfd&`k
>XddX[`Zfdgfe\ek`[Xgif[lkkfi`c\X[\i
C\k\Zefcf^`\XccXmXe^lXi[`X#[`jgfe`Y`c``eXek\gi`dX
E\jjled`e`dffi[`eXY`c\
J\im`q`fX]]`[XY`c\\^XiXek`kf

Gif^\kkXZfe`d`^c`fi`
8Gi\d`\i=Xie\cc:fdgXep

CODICE MIP 2772103

;`jgfe`Y`c`k~g\iZfej\^e\`e)+fi\

18-29_DigitaleTerrestre_fe 04/12/09 14.46 Pagina 24

zoom in

zoom in

di questi procedimenti di compressione,


si ottiene un flusso dati che tipicamente
varia da 2 a 8 Mbit/s, a seconda della
qualit che si vuole ottenere e dal tipo di
programma (un filmato molto veloce, come sport o film dazione, richieder un bitrate maggiore).

dio, il codificatore aggiunge altre informazioni generali utili al decodificatore,


prima fra tutte un segnale di temporizzazione che permette allaudio e al video
un perfetto sincronismo. In pratica, un PS
contiene tutti i dati relativi a un programma video.

FLUSSO DI BIT

Transport stream

A differenza di un sistema informatico


dove i dati devono essere tipicamente
memorizzati su un supporto per una successiva consultazione, in un sistema di diffusione televisiva, laudio e il video digitali
devono essere trasportati da un punto
a un altro, da un apparato a un altro, da
un circuito a un altro. Il consorzio DVB ha
scelto, anche per questo scopo, lo standard MPEG-2 che gi aveva definito due
tipi di flussi (in inglese, streams): program stream e transport stream.

Il program stream non utilizzato nello


standard DVB, poich pi orientato alla memorizzazione ( infatti utilizzato nei
DVD-Video) o alla trasmissione su canali a bassa probabilit di errore (cosa che
non nel caso di trasmissioni radio terrestri). Al posto del program stream, viene utilizzato il cosiddetto Transport
Stream (TS) che, come si evince dal nome, pi orientato al trasporto, cio alla trasmissione. Caratteristica fondamentale di un TS la sua struttura a
pacchetti di lunghezza fissa (pacchetti
di trasporto) da 188 o 204 byte. I flussi
PES vengono miscelati insieme e trasformati in un unico TS direttamente nel
codificatore MPEG. Unaltra caratteristica del TS, utilizzata ampiamente in ambito
DVB, la possibilit di multiplexare insieme due flussi TS in un unico TS risultante (naturalmente con un bitrate
maggiore). In pratica, con questa tecnica che possibile ottenere un bouquet (cio un insieme) di programmi televisivi che formano un tuttuno, che
possibile trasmettere nello stesso canale a radiofrequenza.
Come si pu vedere, le tecniche digitali ci
portano a un enorme vantaggio (uno fra

Program stream
Idealmente un codificatore MPEG-2
formato da un compressore video, un
compresso audio e un multiplexer (si veda la figura 3). Ogni compressore produce in uscita, con un bitrate diverso, una
sequenza di pacchetti contenenti, rispettivamente, informazioni su una parte del video e una parte dellaudio. Questo flusso di pacchetti viene indicato come PES (Packetized Elementary Stream).
I due flussi elementari video e audio,
ognuno con un bitrate diverso, vengono
multiplexati per ottenere un unico flusso
denominato PS (Program Stream). Oltre ai pacchetti PES-Video e PES-Au-

Figura 3: schema di principio di funzionamento di un codificatore MPEG-2.

24

18-29_DigitaleTerrestre_fe 04/12/09 14.46 Pagina 25

tanti) rispetto alla televisione analogica. In


un singolo canale televisivo ora possibile trasmettere pi programmi televisivi,
con uno sfruttamento decisamente migliore della banda limitata a disposizione
delle emittenti. Inutile scendere nei dettagli della composizione del transport
stream, analizzando la struttura di un
pacchetto e dei possibili contenuti che
possono essere di vario tipo, tutti classificati mediante un codice identificativo
detto PID (Packet IDentifier). Oltre ai pacchetti audio, video e di temporizzazione
gi visti, sono presenti anche (non tutti
sono obbligatori):

PAT e PMT: strutture dati che consentono al decodificatore TS di sapere quali e quanti programmi sono presenti e
come poterli estrarre;
NIT: informazione obbligatoria che contiene alcune informazioni sulla trasmissione (frequenza, numero di postazione,
ecc.) e sulla rete (tramite un nome e un
identificativo) che genera il TS;
CAT: informazioni utilizzate per la decodifica di eventuali programmi criptati;
SDT: struttura dati contenente, tra laltro, il nome dei programmi presenti nel TS;
EIT: informazioni riguardanti il programma attualmente in corso ed eventualmente i programmi successivi.

Interfacce elettriche
bello parlare di flussi di bit ad alta velocit, ma non perdiamo di vista laspetto tecnico. Come vengono trasmessi,
per esempio da un circuito a un altro
(allinterno di un apparato) o da un apparato allaltro (per esempio da un encoder MPEG a un multiplexer) da un
punto di vista elettrico? Lo standard DVB
prevede due tipi di interfacce, denominate
SPI e ASI.
Linterfaccia SPI (Syncronous Parallel Interface) di tipo parallelo, formata da
11 segnali LVDS (Low-Voltage Differential
Signal): 8 bit di dati, un segnale di clock,
uno di sincronismo attivo sul primo byte di
ogni pacchetto da 188/204 byte, uno di
validit dei dati attivo per indicare la trasmissione di informazioni valide.
Si scelto di utilizzare segnali differenziali
LVDS, poich essi permettono di raggiungere distanze maggiori a frequenze
elevate. anche previsto un connettore
standard D-SUB da 25 poli su cui sono

presenti questi 11 segnali differenziali (ricordiamo che per ogni segnale differenziale sono utilizzati due poli). In realt,
questinterfaccia viene spesso utilizzata allinterno di apparati, poich lLVDS facilmente interfacciabile direttamente con
integrati, come FPGA. In alcuni casi, per
minimizzare i costi e per distanze molto
brevi (per esempio, da chip a chip su
uno stesso circuito), gli 11 segnali dellSPI
vengono trasmessi in LVTTL (Low-Voltage TTL) anzich LVDS.
Laltra interfaccia standard, utilizzata nella interconnessione di apparati anche a
distanza elevata, il cosiddetto ASI
(Asyncronous Serial Interface). Essa
di tipo seriale e trasmessa su un cavo coassiale a 75 , con connettori terminali di
tipo BNC. La velocit di riferimento di
270 Mbit/s e i dati sono trasmessi effettivamente a questa velocit, ma, poich un TS ha una velocit molto variabile dipendente dalla configurazione, vengono trasmessi byte nulli di stuffing
quando necessario.

TRASMISSIONE TERRESTRE
Tutti i concetti visti fino a questo punto sono validi in tutta la piattaforma DVB, indipendentemente dal tipo di trasmissione
dal broadcaster (lemittente) allutente finale. Da questo paragrafo in poi, tutto
quello che verr detto sar valido soltanto per la modalit di trasmissione terrestre, cio per il DVB-T.
Scopo della trasmissione terrestre quello di inviare un TS dalla stazione trasmittente alle antenne terrestri (posizionate
normalmente sui tetti dei palazzi) utilizzando canali radiofrequenza gi allocati
per la televisione analogica (per evitare incompatibilit nelle antenne e nella coesistenza dei due servizi) nelle bande III
(174-230 MHz), IV e V (470-858 MHz) di
larghezza 7 o 8 MHz.
Il periodo di transizione dalla televisione
analogica alla televisione completamente digitale deve essere necessariamente molto
lungo (dellordine di decine di anni), ed
quindi fondamentale prevedere la coesistenza tra le due tipologie di servizi. per
questo che nessuno si sognato di modificare le bande e la canalizzazione gi utilizzata nella televisione analogica. Inoltre, la
tecnica di trasmissione digitale DVB-T deve poter convivere con la trasmissione
analogica, anche su canali adiacenti.

La tecnica adottata dal consorzio DVB


la modulazione OFDM (Orthogonal Frequency Division Multiplexing).

OFDM
La modulazione digitale OFDM ad alto bitrate ormai ampiamente utilizzata in
numerose applicazioni che si sono dimostrate vincenti sul mercato, come
lADSL, il Wi-Fi e, appunto, il DVB-T.
una modulazione che pu essere usata
sia su cavo (come nellADSL), sia senza
fili (Wi-Fi e DVB-T). Il principio vincente
dellOFDM quello di utilizzare, al posto
di una singola portante modulata in modo digitale ad alta velocit, moltissime
portanti vicine (anche nellordine delle
migliaia) modulate a bassi bitrate, mantenendo complessivamente una velocit elevata. come se il nostro flusso
con un certo bitrate B venisse diviso tra
N portanti a diversa frequenza, trasmesso
in modo indipendente a un bitrate pi
basso (B/N), demodulato da N ricevitori e riunificato in un unico stream con
bitrate B.
Il vantaggio di sminuzzare il flusso digitale dingresso in mille portanti deriva dal
fatto che possibile far fronte pi facilmente a disturbi molto comuni sul canale, come:

attenuazioni (fading) in banda dovute,


per esempio, a sfortunate conformazioni
del territorio;
effetto multi-path, dovuto alla presenza
di un ostacolo (quale un traliccio o un
palazzo) che riflette il segnale, sommandolo, in forma attenuata e ritardata, al
segnale principale (sicuramente tutti voi
avrete visto almeno una volta sul televisiore una trasmissione con il cosiddetto effetto ghosting, cio con una doppia immagine di cui una prevalente e laltra sovrapposta).
Chi conosce la composizione di un tipico ricevitore star sicuramente sgranando gli occhi, pensando alla complessit di un OFDM: ricevere N portanti come avere N (migliaia) ricevitori,
con N filtri di canale, N demodulatori,
ecc. ovvio che, se cos fosse, lOFDM
non avrebbe fatto cos tanta strada. La
fattibilit a costi relativamente ridotti di un
modulatore e demodulatore OFDM risiede in quella prima lettera O, che sta
per Orthogonality (ortogonalit). Le N

25

18-29_DigitaleTerrestre_fe 04/12/09 14.46 Pagina 26

zoom in

zoom in

portanti di una modulazione OFDM devono essere ortogonali, cio deve essere possibile, per il ricevitore, separare
il segnale delle varie portanti senza interferenze. Questo sarebbe possibile distanziando sufficientemente le portanti in
modo da filtrare il canale di ognuna, ma
richiederebbe una larghezza di banda
complessiva troppo grande. Ci viene in
aiuto, come spesso accade, la matematica e, in particolare, lelaborazione numerica dei segnali. Due portanti modulate
con una frequenza di simbolo Fs, sono
ortogonali se distano tra di loro k x Fs,
dove k un numero intero. Quindi, se utilizzo una portante a 600 MHz modulata
a 1000 simboli/secondo (ogni simbolo
pu convogliare due o pi bit a seconda
dello schema di modulazione digitale
scelto), potr utilizzare anche unaltra
portante a 600 MHz + 1 kHz. E unaltra
ancora a 600 MHz + 2 kHz, ecc. I soliti
scettici si chiederanno come potr un ricevitore, seppur ideale, discriminare due
portanti a 600 MHz separate di soli 1
kHz. Naturalmente ci non fattibile filtrando il canale di ogni portante che,
tra laltro, si sovrappone con quella adiacente, ma utilizzando un meraviglioso
strumento matematico dal nome FFT
(Fast Fourier Transform). Con questo algoritmo estremamente veloce ed efficiente, implementato facilmente nei moderni DSP che hanno una sufficiente
potenza di calcolo, possibile modulare (lato trasmettitore) e demodulare
(lato ricevitore) le mille portanti con una
manciata di colpi di clock, senza utilizzare
complessi filtri di canale.
Ogni singola portante viene modulata
utilizzando uno schema di modulazione digitale come il QPSK (che coincide
con il 4-QAM) o 16-QAM.
Unaltra tecnica utilizzata per minimizzare
i disturbi sul canale quella di introdurre un intervallo di guardia in coda a ogni
simbolo. La durata del simbolo viene
aumentata di un certo intervallo in cui la
portante modulata viene ripetuta. Se
una replica ritardata del segnale dovesse arrivare al ricevitore (per effetto dei
cammini multipli), questa sarebbe completamente annullata se il ritardo fosse inferiore allintervallo addizionale di guardia introdotto. Naturalmente, un maggiore intervallo di guardia permette di
proteggere il segnale in condizioni peg-

26

giori, ma sacrifica parzialmente la banda


sprecando del tempo a trasmettere
informazioni ridondanti. Al contrario, con
un intervallo di guardia molto piccolo, si
aumenta il bitrate trasmesso, ma si protegge meno dai disturbi dovuti ai cammini multipli.
Per terminare questa breve panoramica
sulle caratteristiche dellOFDM, citiamo
uno svantaggio derivante dallutilizzo di
questo tipo di modulazione. Se si guarda
un segnale OFDM nel tempo, formato
dalla somma delle molteplici portanti,
ognuna modulata variando la sua fase e/o
ampiezza, si vedrebbe un qualcosa di
mediamente molto simile al rumore, con
molti picchi. Il rapporto tra picco del segnale e suo valor medio molto alto rispetto ad altri tipi di modulazione. La
motivazione di ci che, a seconda dello stream binario in trasmissione, molte
portanti possono tra loro sommarsi in
modo costruttivo dando vita a un segnale molto alto.
Oltre a essere una nota relativamente
interessante, di capitale importanza
per chi progetta un trasmettitore di potenza che deve utilizzare necessariamente degli stadi di amplificazione che introducono delle non linearit. Queste
non linearit vanno a distorcere soprattutto questi picchi che, tutto sommato,
fanno parte del segnale, rendendo pi difficoltosa la ricezione. Un modo per risolvere questo problema quello di utilizzare amplificatori RF maggiormente lineari, far lavorare i dispositivi a un livello
di potenza inferiore o spuntare i picchi
del segnale in modo controllato.

OFDM nel DVB-T


Lo standard DVB-T prevede un numero di
portanti pari a 1705 (modalit 2K) oppure 6817 (modalit 8K). Le portanti possono essere modulate con uno schema
QPSK, 16-QAM o 64-QAM. Lintervallo di
guardia pu essere scelto tra 1/4, 1/8,
1/16 e 1/32 della durata del simbolo.
Inoltre, prima della modulazione, il modulatore manipola i bit del flusso in ingresso aggiungendo un codice convoluzionale (code rate) che permette al ricevitore di correggere automaticamente alcuni errori. chiaro che il consorzio
DVB ha voluto creare uno standard altamente configurabile e personalizzabile
da parte del broadcaster che potr sce-

18-29_DigitaleTerrestre_fe 04/12/09 14.46 Pagina 27

Tabella 1 - bitrate (in Mbit/s) netto massimo per ogni possibile configurazione (larghezza di banda 8 MHz)

MODULAZIONE
QPSK

16-QAM

64-QAM

CODE RATE

INTERVALLO DI GUARDIA
1/4
1/8
1/16

1/32

1/2

4,98

5,53

5,85

6,03

2/3

6,64

7,37

7,81

8,04

3/4

7,46

8,29

8,78

9,05

5/6

8,29

9,22

9,76

10,05

7/8

8,71

9,68

10,25

10,56

1/2

9,95

11,06

11,71

12,06

2/3

13,27

14,75

15,61

16,09

3/4

14,93

16,59

17,56

18,10

5/6

16,59

18,43

19,52

20,11

7/8

17,42

19,35

20,49

21,11

1/2

14,93

16,59

17,56

18,10

2/3

19,91

22,12

23,42

24,13

3/4

22,39

24,88

26,35

27,14

5/6

24,88

27,65

29,27

30,16

7/8

26,13

29,03

30,74

31,67

gliere, di volta in volta, il compromesso migliore tra bitrate netto trasmesso e protezione dai disturbi (quindi distanza raggiungibile). Oltre ai parametri gi definiti,
possibile scegliere la larghezza di banda del canale RF tra 5, 6, 7 e 8 MHz. La
tabella 1, presente anche nel documento ufficiale dello standard (EN 300 744), indica il bitrate netto massimo che pu essere utilizzato per ogni configurazione
(considerando una larghezza di banda
di 8 MHz). Come si pu vedere, il massimo bitrate utilizzabile di 31,67 Mbit/s
(circa 5 programmi codificati con un bitrate
di 6 Mbit/s ognuno).

Il modulatore DVB-T
Un trasmettitore DVB-T un apparato
elettronico che accetta in ingresso un
transport stream (secondo le specifiche viste sopra) e produce in uscita un segnale RF da inviare in antenna. Naturalmente la potenza del segnale duscita potr
essere scelta in base alla copertura voluta
e alle autorizzazioni da parte degli enti preposti (in Italia, il Ministero delle Poste e Telecomunicazioni), considerando che una
potenza maggiore significa un sensibile
aumento di costo dellamplificatore RF
e dei consumi energetici.
Normalmente un modulatore DVB-T lavora in due fasi: a partire dalla banda
base genera un segnale duscita alla fre-

quenza intermedia (IF, Intermediate Frequency) tipicamente di 70 MHz. Un oscillatore locale permette successivamente
lo spostamento da IF a RF (naturalmente loscillatore locale deve possedere
elevate caratteristiche di pulizia della
portante per non rovinare il segnale
OFDM). Il gi citato standard (EN 300
744) prevede una serie di elaborazioni in
cascata del transport stream, dallingresso verso luscita.
Una primissima elaborazione consiste
nel rendere maggiormente casuale la sequenza di bit in ingresso per avere un
sufficiente numero di transizioni 1/0 e viceversa (energy dispersal). A tale scopo
si utilizza un metodo matematico che si
fonda sulle sequenze pseudo-casuali denominate PRBS (Pseudo-Random Bit Sequence). Ovviamente il processo perfettamente invertibile dal ricevitore ( per
questo che le sequenze sembrano casuali, ma non lo sono, sono appunto
pseudo-casuali).
Fino a questo punto la pacchettizzazione da 188 byte, con in testa un byte
di sincronismo, non stata modificata. Il passo successivo quello di aggiungere (outer encoder) un codice derrore (un parente del bit di parit) di 16
byte a ogni pacchetto di 188 byte, ottenendo pacchetti di 204 byte. Questo
codice derrore di tipo Reed-Solomon

(abbreviato con RS) e ha la pregevole


caratteristica di permettere al ricevitore
di correggere automaticamente fino a 8
byte errati in un pacchetto, indipendentemente dalla posizione dei bit errati
(quindi anche se avvengono a burst,
cio tutti insieme). Successivamente
avviene un mescolamento (outer interleaving) dei byte per renderli ancora pi
casuali ed evitare che un errore prolungato nel tempo colpisca una sequenza
lunga di byte consecutivi. Quindi vengono aggiunti altri codici derrore (inner encoder) di tipo convoluzionale,
spesso indicato come FEC. Il rapporto
tra i bit utili e i bit di correzione aggiunti pu essere, come gi visto, 1/2, 2/3,
3/4, 5/6 o 7/8. Ancora una volta il flusso di bit viene mescolato (inner interleaving) sempre nellottica di recuperare gli eventuali errori in ricezione.
Successivamente la sequenza dei bit viene mappata (mapper) nei corrispondenti simboli dello schema di modulazione digitale scelto (QPSK, 16-QAM,
64-QAM). Giusto come esempio, in figura 4 si riporta la costellazione 16QAM, utilizzata nel DVB-T, con la relativa
codifica dei bit per ogni punto. Questa codifica di tipo Gray, in quanto, per ogni
simbolo, la codifica di quelli vicini differisce soltanto di un bit. In questo modo, se
un disturbo sposta il punto originale in uno
limitrofo, si ha al massimo un bit di errore (ovviamente, se il disturbo notevole,
il punto si pu spostare parecchio nella
costellazione e pi bit possono essere
ricevuti in modo errato).

Figura 4: costellazione 16-QAM con la relativa codifica


Gray dei bit.

27

18-29_DigitaleTerrestre_fe 04/12/09 14.46 Pagina 28

Infine vengono raggruppati i simboli in


frame da 68 simboli (frame adaptation) e
modulati in OFDM (OFDM modulator).
Luscita del modulatore a frequenza intermedia IF viene convertita in canale RF
(up-converter), eventualmente amplificata (high power amplifier) e inviata al sistema dantenna.
Ma come potrebbe apparire questo segnale DVB-T su un analizzatore di spettro? In figura 5 mostrato lo spettro
teorico (calcolato matematicamente) di un
segnale DVB-T con larghezza di banda 8
MHz e modalit 2k e 8k. Come si pu osservare, il canale RF a disposizione
utilizzato in modo molto efficiente e il
segnale, in banda, sembra essere rumore bianco.
Per poter convivere con altri segnali DVBT o analogici, soprattutto se presenti nei canali adiacenti, la normativa prevede dei
valori massimi dei segnali ai limiti e allesterno del canale. Se il trasmettitore non
dovesse rientrare in questi limiti (cosa che
succede praticamente sempre per colpa
dellamplificatore non lineare), sar necessario utilizzare un apposito filtro duscita.

Il set-top-box
Come tutti sanno, durante la prima fase di
diffusione della televisione digitale, necessario dotarsi di un apposito apparecchio, chiamato set-top-box (STB), per
poter ricevere il segnale digitale e trasformarlo in uno compatibile con le tele-

visioni analogiche. Questa prima fase ormai terminata, visto che in commercio
sono gi disponibili, da parecchio tempo,
televisioni che possono ricevere direttamente il segnale digitale (in pratica, hanno un piccolo set-top-box integrato).
Il funzionamento del ricevitore DVB-T
perfettamente speculare a quello del modulatore, in modo da ottenere nuovamente il TS originale in ingresso al modulatore. Naturalmente il ricevitore si servir di tutti i codici per la correzione degli
errori inseriti nel modulatore per ripristinare
i bit ricevuti in modo errato. Normalmente la sezione di ricevitore che accetta in ingresso il segnale RF e genera in uscita il
TS MPEG-2 fatta da un unico modulo,
denominato frontend, al cui interno sono
presenti un tuner, che trasforma il segnale RF in ingresso in un segnale a frequenza intermedia IF, e un demodulatore
che, a partire dal segnale IF, genera il
transport stream in uscita. Entrambi i
chip vengono normalmente controllati
dal processore principale mediante bus
I 2C. Uno dei maggiori produttori attivi in
questo campo NXP (ex Philips Semiconductor).
A partire dal TS, i set-top-box DVB-S
(satellitari) e DVB-T sono identici, proprio
grazie alla infrastruttura di base simile. In
genere si ha una soluzione single-chip altamente integrata per minimizzare il costo del prodotto rivolto al consumatore finale. Questo chip contiene un micro-

Figura 5: spettro di un segnale DVB-T con larghezza di banda 8MHz e modalit 2k e 8k.

28

18-29_DigitaleTerrestre_fe 04/12/09 14.46 Pagina 29

processore, che si preoccupa del controllo, e uno o due DSP per lelaborazione del segnale audio/video. Particolarmente attivo in questo settore ST, con
tutta una serie di processori presenti in
molti set-top-box commerciali. Dal TS
vengono estratti i flussi audio e video
inerenti al programma scelto dallutente
(si ricordi che un TS pu contenere un
bouquet di pi programmi) e inviati ai rispettivi decoder. A questo punto il segnale video pu essere convertito in analogico su connettore video composito
(per esempio, su connettore SCART o
RCA) o S-video (su connettore Mini-DIN).
Allo stesso modo, il segnale audio pu
essere convertito in analogico su connettori RCA (left/right) oppure su SCART.
In alcuni set-top-box i segnali possono rimanere digitali ed essere trasformati nel
nuovo standard di interconnessione multimediale chiamato HDMI.

COSA CI RISERVA IL FUTURO


Alta definizione
Linfrastruttura digitale del DVB-T permette di utilizzare altre tecniche per ottimizzare la banda richiesta da un programma audio/video. Per esempio, possibile utilizzare nuove tecniche di compressione, come MPEG-4 (detta anche
H.264), che aumentano il fattore di riduzione e permettono di convogliare pi
programmi a parit di bitrate, oppure programmi a maggiore risoluzione video a
parit di bitrate (alta definizione). Una tipica
risoluzione ad alta definizione 1280x720
oppure 1920x1080. Il maggior numero
di pixel, e quindi di informazioni da trasmettere, viene compensato dal maggior
fattore di compressione dellMPEG-4.

DVB-T2
Il consorzio DVB, continuando sulla sua
strada di proliferazione di standard, ha
creato gi la versione 2 della televisione digitale, denominata DVB-T2, che potr
coesistere con lattuale versione DVB-T
durante il suo sviluppo. Non ci sono grandi modifiche rispetto al primo standard, infatti, si continua a usare una modulazione OFDM. Le novit riguardano soprattutto una maggiore efficienza dei codici di
errore che passano da codici convoluzionale e Reed-Solomon, in codici LDPC
(Low Density Parity Check) e BCH (BoseChaudhuri-Hocquengham), usati anche

PER approfondire...
La documentazione principale di riferimento sicuramente linsieme degli standard prodotti
dal consorzio DVB. Nel sito ufficiale (www.dvb.org) esiste una sezione apposita che elenca
tutte le specifiche, normalmente pubblicate dallente europeo ETSI (European
Telecommunications Standards Institute). Tutti i documenti sono liberamente scaricabili
direttamente dal sito www.etsi.org, ovviamente in inglese. Purtroppo il consorzio DVB noto
per essere molto prolifico ed quindi molto difficile districarsi tra i mille documenti
prodotti. possibile iniziare leggendo un documento scritto proprio dal consorzio per aiutare
i novizi a orientarsi: TR 101 200: A guideline for the use of DVB specifications and standards .
Qui di seguito un brevissimo elenco degli standard principali.
- ETR 154: linee guide sullutilizzo dello standard MPEG-2 nelle applicazioni DVB;
- EN 300 468: descrizione delle informazioni di servizio (DVB-SI, Service Informations) che
sono aggiunte nel transport stream MPEG per permettere allutente di conoscere i servizi
presenti nel flusso di bit ricevuto (principalmente i programmi presenti nel bouquet, ma
anche il nome delle stazioni, gli eventi in onda e altro ancora);
- EN 300 744: lo standard principale per chi vuole approfondire le tematiche riguardanti
esclusivamente la trasmissione terrestre del transport stream (rappresenta il documento
principale del DVB-T);
Per chi non conoscesse linglese, oltre al materiale introduttivo presente sulle pagine di
Wikipedia, si consigliano vivamente i numerosi articoli sullargomento pubblicati dalla rivista
gratuita del Centro Ricerche RAI, intitolata Elettronica e Telecomunicazioni, in particolare:
- V. Mignone, A. Morello, M. Visintin, Lo standard DVB-T per la televisione digitale terrestre;
aprile 2002
- V. Mignone, La modulazione COFDM; dicembre 2005

nel DVB-S2. Laltra novit riguarda una


maggiore flessibilit di configurazione dei
parametri. Per esempio, stata aggiunta
la modulazione 256-QAM; gli intervalli di
guardia 19/256, 19/128 e 1/128; le modalit 1k, 4k, 16k, 32k (con un numero diverso di portanti). Tutto ci, insieme ad altre piccole differenze, promette una trasmissione ancora pi robusta anche in
presenza di rumori pi forti.

CONCLUSIONI
Chi ha raggiunto questo punto dellarticolo
avr sicuramente capito che largomento
piuttosto vario e difficilmente riassumibile in poche pagine e purtroppo sono
stati fatti parecchi tagli sugli argomenti
meno importanti. Citiamo come esempio una serie di argomenti non trattati:

laccesso condizionato, mediante il


quale possibile cifrare un programma in
modo che solo utenti selezionati (cio

paganti) possano decifrare e vedere;

linterattivit, che fornisce allutente la


possibilit di interagire con la televisione,
per esempio rispondendo con il suo telecomando a un quiz in onda, oppure
eseguendo applicativi appositi direttamente sul proprio televisore;
la navigazione internet, resa possibile
aggiungendo i pacchetti IP allinterno del
transport stream MPEG2;
la televisione mobile, che permette di ricevere un programma televisivo anche
su dispositivi palmari, telefoni cellulari,
notebook, anche in movimento (per esempio, allinterno di un treno );
SFN (Single Frequency Network), cio la
possibilit di poter usare la stessa frequenza anche per trasmettitori adiacenti e quindi anche per tutta la rete, senza
che questi creino disturbi (cosa praticamente impossibile con la televisione analogica). q
CODICE MIP 2757071

30-35_Melodie_FE 03/12/09 07.44 Pagina 30

progettare &

progettare & costruire

CINQUE

MELODIE CON UN

Questo mese realizziamo


un progetto sonoro
nel quale utilizziamo
un microcontrollore PIC
abbinato al nuovo
compilatore MikroBasic
Pro della MikroElektronika
per riprodurre ben cinque
melodie musicali

di GIOVANNI DI MARIA

PIC

o abbiamo detto pi volte, un microcontrollore, per il fatto che pu


generare tensioni in uscita, capace di produrre note musicali. La rapida cadenza di accensioni e spegnimenti di una
porta produce una frequenza che pu essere udibile dalluomo. Lomogenea e coordinata gestione delle frequenze prodotte
(ed eventuali pause) d luogo alla musica. In
precedenti puntate abbiamo visto come
generare suoni, beep, toni telefonici, segnali di avvertimento e semplici musichette. Questa volta studiamo il metodo per riprodurre ben cinque brani musicali a comando, con diverse velocit di esecuzione.

Lhardware

IL GADGET

Il software

Lutilizzo del prototipo che ci accingiamo a


illustrare pu essere vario. Si pu considerare un gadget a tutti gli effetti, in quanto laspetto ludico e il fine divertente non
pu che confermarne questa funzionalit.
Ma soprattutto laspetto didattico quello che pi ci preme, in quanto esso ci coinvolge per lapprendimento di tanti concetti
che si possono cos riassumere:

Il programma, come si vedr nelle successive sezioni, semplice. Esso gestisce


i cinque brani musicali in modo da attivarli
a piacimento.

come riuscire a memorizzare cinque


musichette allinterno del PIC;

come riuscire a trasformare una canzone


in un insieme di dati numerici;

La parte elettronica formata naturalmente da un microcontrollore che sovrintende a tutte le gestioni logiche delle
procedure. Esso contiene fisicamente
anche le note musicali, in quanto la sua
memoria abbastanza capiente. Coordina
altres le operazioni di avvio di una canzone, scelta dalloperatore, in accordo
con la velocit gradita. Inoltre il sistema
dotato di alcuni pulsanti che hanno la
funzione di attivare la musica prescelta. In
pi, due diodi LED danno unindicazione
precisa sullo stato di esecuzione ovvero di
stand-by del prototipo.

I BRANI MUSICALI SCELTI


Per la realizzazione del progetto sono
state scelte le seguenti canzoni:

Fra Martino;
Jingle Bells;
Tu scendi dalle stelle;
Tanti auguri a te;
Inno di Mameli.

come riuscire a tradurre uno spartito in


una successione di dati numerici;
e soprattutto come effettuare tali operazioni con un microcontrollore.

PANORAMICA GENERALE

Figura 1: onda quadra di 500 Hz.

30

Innanzitutto esaminiamo da un punto di vista generale il progetto, evidenziando


quelle che sono le componenti software,
hardware e di comportamento funzionale. Questo esame ci servir per comprendere a fondo il funzionamento del
sistema e affrontare con maggiore cognizione le successive fasi realizzative.

Si tratta, come si vede, di semplici brani


conosciuti da tutti. Naturalmente si pu
adottare qualsiasi altra canzone, ma ci
comporta la ricodifica del programma
sorgente nonch di tutte le note musicali a essa appartenenti.

Qualit di riproduzione
Ci teniamo a precisarlo subito: non stiamo
realizzando un sistema di riproduzione musicale di tipo Wave e neanche digitalizzato.
Stiamo semplicemente riproducendo delle frequenze cadenzate costituite, a basso

30-35_Melodie_FE 03/12/09 07.45 Pagina 31

& costruire
LISTA COMPONENTI
Sigla
Bat
Ls1
R1R10
R11R12
R13
D1
D2
U1

Figura 2: schema elettrico del generatore di cinque melodie.


Tabella 1 - Nomi e frequenze delle note (in hertz)

NOTA

OTTAVE
4

Do

65,4

130,8

261,6

523,3

1046,5

2093

Do#

69,3

138,6

277,2

554,4

1108,7

2217,5

Re

73,4

146,8

293,7

587,3

1174,7

2349,3

Re#

77,8

155,6

311,1

622,3

1244,5

2489

Mi

82,4

164,8

329,6

659,3

1318,5

2637

Fa

87,3

174,6

349,2

698,5

1396,9

2793,8

Fa#

92,5

185

370

740

1480

2960

Sol

98

196

392

784

1568

3136

Sol#

103,8

207,7

415,3

830,6

1661,2

3322,4

La

110

220

440

880

1760

3520

La#

116,5

233,1

466,2

932,3

1864,7

3729,3

Si

123,5

246,9

493,9

987,8

1975,5

3951,1

livello, da stati logici alti e bassi. Pertanto la


musica prodotta caratterizzata da un
timbro tipico del suono a onda quadra e
monofonica. Viene riprodotta cio una nota per volta. Ci comunque non toglie nulla al risultato molto preciso e intonato, simile
a quello riprodotto dalle classiche luci utilizzate per allestire un albero di Natale.

Caratteristiche della riproduzione


musicale del circuito

Tipo di onda musicale: onda quadra;


duty cycle: 50%;
tipo di suono: monofonico;
intonazione: eccellente.

SUONO, NOTA E MUSICA


Il suono una vibrazione meccanica che,
propagandosi in un mezzo elastico, ad
esempio laria, provoca una percezione da
parte del nostro sistema uditivo. La frequenza deve essere compresa tra 20 Hz e
20.000 Hz per poter essere percepita dalluomo. La frequenza cataloga il suono in
sette note (DO, RE, MI, FA, SOL, LA, SI) distribuite tra diverse ottave (vedi tabella 1).

LA FUNZIONE DEL SISTEMA


Esaminiamo a fondo la funzionalit del sistema e delle relative interazioni con lutente. Esso, come abbiamo detto in pre-

Valore
Batteria 5 volt
Piccolo altoparlante 8 ohm
10 kohm
330 ohm
47 ohm
Diodo LED VERDE
Diodo LED ROSSO
PIC 18F452
10 pulsanti n/a
2 condensatori 22 pF
1 quarzo 4 MHz

cedenza, dotato di ben dieci pulsanti


normalmente aperti. Le canzoni sono
cinque e possono essere riprodotte in
due diverse velocit (normale e veloce).
Pertanto ogni canzone pu essere attivata
da due pulsanti differenti, uno per la riproduzione normale e laltro per quella veloce. Allaccensione, il circuito non riproduce alcun brano musicale e questo
fatto sottolineato dallaccensione del
diodo LED verde, che ne indica lo stato di
attesa. Quando si preme un tasto per la
riproduzione, la musica viene eseguita
sino al termine della stessa e levento
evidenziato dallaccensione del diodo
LED rosso. In tal caso, nessun altro motivo musicale pu essere selezionato, fino al completo esaurirsi del precedente.

SCHEMA ELETTRICO
Lo schema elettrico raffigurato di principio
e pu essere adattato praticamente a
qualsiasi altro tipo di microcontrollore. Lunica condizione richiesta quella di utilizzare una MCU capiente, nella quale possano allocarsi correttamente tutti i dati relativi alle cinque canzoni. Le dieci porte che
sono collegate ai relativi pulsanti sono ingressi collegati ad altrettante resistenze
di pull-down che assicurano un potenziale nullo in caso di mancata pressione. Infine
i diodi LED di segnalazione di stato (verde
e rosso) sono collegati alle rispettive resistenze di limitazione di corrente.
Anche se lo schema elettrico non riporta
il quarzo e i condensatori di oscillazione,
occorre prevederli secondo gli utilizzi
standard dei microcontrollori. Occorre
prevedere altres la corretta alimentazione TTL alla MCU. Il microcontrollore utilizzato il PIC 18F452, scelto per la sua
31

30-35_Melodie_FE 03/12/09 07.45 Pagina 32

progettare & costruire

progettare & costruire

vamente in modalit di attesa oppure di


esecuzione in corso. Lintero processo
itera sul controllo continuo dei pulsanti che
determinano la canzone da suonare e la
relativa velocit di esecuzione.
Lintero programma scritto per il nuovo
compilatore Mikrobasic Pro della Mikroelektronika e, nella fattispecie, stata
utilizzata la versione 2.50.
Come detto prima, lutilizzo delle procedure (simile alle funzioni ma che non ritornano un valore al programma chiamante) permette la modularit dellintero
sistema e unagevole manutenzione. Segue un elenco delle procedure utilizzate,
con relativa funzionalit:

procedura framartino: riproduce Fra


Martino;

procedura jinglebell: riproduce Jingle


Bells;

procedura tuscendidallestelle: riproduce Tu scendi dalle stelle;

procedura tantiauguri: riproduce Tanti


auguri a te;

procedura innoitalia: riproduce lInno


di Mameli;

procedura leds_durante_attesa: spegne


LED rosso e accende LED verde;

procedura leds_durante_esecuzione:

Figura 3: flow chart dellintera procedura.

Figura 4: analisi statistica delloccupazione della memoria.

grande capienza di memoria.

IL PROGRAMMA
Il listato molto lungo per via delle informazioni musicali memorizzate. Per questo
motivo stato scelto un microcontrollore
molto capiente. Il programma strutturato
32

in diverse procedure, richiamabili dalla


funzione principale. Tali procedure sono
adibite allesecuzione dei brani musicali e
per questo motivo sono state intestate
con il titolo della relativa canzone. Altre
due procedure hanno il compito di impostare lo stato dei diodi LED, rispetti-

spegne LED verde e accende LED rosso.


Il listato 1 abbastanza lungo, circa 450
linee di programma ed possibile scaricarlo dal sito di Fare Elettronica. La maggior parte di codice adibita alla codifica
delle note musicali delle cinque canzoni.
Durante la compilazione, lambiente di sviluppo produrr alcuni warning dovuti a un
adattamento tra due diverse tipologie di dato (typecast). In particolare, ci avviene
allinterno delle procedure, laddove sono
previste delle moltiplicazioni o divisioni con
un numero decimale. Si potrebbero evitare implementando un adattamento di
cast. Si consulti il manuale del Mikrobasic
Pro a tale proposito.La compilazione produce un eseguibile abbastanza corposo
che occupa molta memoria del micro.
Le relative immagini statistiche mostrano
loccupazione dellintero codice nonch
delle singole procedure e funzioni.

LE FUNZIONI MUSICALI BUILT-IN


Premessa
Il compilatore Mikrobasic Pro dotato di alcune funzioni preimpostate che generano, con pochissime righe di program-

30-35_Melodie_FE 03/12/09 07.45 Pagina 33

ve essere collegato sul pin specificato dal secondo parametro. Per esempio, la funzione:
Sound_init(PORTB,0)
prepara la PORTB, e precisamente il pin
RB0, alla produzione di suoni.
La seconda invece si occupa della vera e
propria riproduzione della nota, generando unonda quadra di opportuna frequenza. Vediamo come si usa. Come si
vede dalla sintassi della funzione, essa accetta (tra parentesi) due parametri: il primo indica la frequenza da generare
(espressa in Hz), il secondo indica invece
la durata della stessa (espressa in millisecondi). Per esempio, la funzione:
Sound_play(1000,500)
Figura 5: analisi statistica delloccupazione delle singole procedure e funzioni del programma.

serve per generare una nota 1000 Hz


per mezzo secondo.

I CINQUE MOTIVI MUSICALI


I brani sono stati scelti tra quelli conosciuti
universalmente e sono semplici da cantare
e riprodurre.
Figura 6: lo spartito di Fra Martino.

Come tradurre lo spartito in dati digitali


Per preparare linsieme dei dati digitali,
provenienti dallo spartito, opportuno essere in possesso di una minima conoscenza di notazione musicale e divisione.
Solo in questo modo, infatti, possibile conoscere il nome della nota (con la relativa
frequenza) e, soprattutto, la sua durata.
Passiamo pertanto in rassegna le fasi necessarie alla traduzione di uno spartito in
un insieme di parametri digitale, da inserire
poi allinterno del programma musicale.

1 passo

Figura 7: lo spartito di Jingle Bells.

mazione, qualsiasi frequenza. Con le vecchie versioni del compilatore, tali funzioni
erano complicate da utilizzare, poich i
parametri relativi al suono non corrispondevano formalmente alla frequenza e alla
durata delle note, bens si trattava di valori
numerici da calcolare. Allo scopo si veda la
puntata del corso di basic per PIC relativa
alla generazione sonora. Con la versione
Pro dellambiente di sviluppo, generare
una nota molto pi semplice e immediato.

Le funzioni
Le funzioni supportate dal Mikrobasic Pro,
almeno nella versione attuale, sono due:

Sound_init(porta,pin);
Sound_play(frequenza,durata).

Occorre stabilire la durata di una figura


musicale. Questo dato solitamente
espresso allinizio dello spartito e determina la durata di una figura prestabilita.
Formalmente esso viene indicato con la
notazione visibile in figura 11. Lesempio
chiarisce che in un minuto vi sono 80
semiminime, la cui durata equivale a
60/80 = 0,75 sec = 750 ms.

2 passo
La prima predispone il microcontrollore ad
accettare su una porta (ad es. PORTA o
PORTB) un dispositivo sonoro di output
(altoparlante o buzzer). Tale dispositivo de-

Stabilita la durata della semiminima, possibile risalire a tutte le altre figure di durata,
secondo la notazione musicale. Occorre in
altri termini effettuare la divisione musicale.
33

30-35_Melodie_FE 03/12/09 07.45 Pagina 34

progettare & costruire

progettare & costruire

Figura 13: il contenitore del PIC 18F452.

Figura 8: lo spartito di Tu scendi dalle stelle.

Figura 10: lo spartito dellInno di Mameli.

Figura 11: velocit del brano


indicato sullo spartito.

tiva velocit scelta. Occorre notare che


non possibile avviare lesecuzione di
un brano se non terminato il precedente; questo perch il programma
congelato dalle funzioni sonore per tutta la durata della musica. Lo stato di accensione dei diodi LED attesta proprio
questo stato. La funzione dei tasti descritta nello schema elettrico.

Figura 9: lo spartito di Tanti auguri a te.

Si consulti a tale proposito Internet oppure, in alternativa, si pu acquistare uno


dei tanti metodi musicali in commercio.

3 passo
Adesso si pu scrivere la procedura, sapendo che nel nostro esempio il parametro passato tra parentesi indica proprio la
durata di una semiminima. Per eseguire
una nota, pertanto, si deve specificare il
tempo di durata della semiminima, moltiplicato o diviso per un fattore di correzione, per ricavare tutte le altre figure. Il tempo deve essere espresso in millisecondi.
34

Figura 14: caratteristiche del PIC 18F452.

CONCLUSIONI
Figura 12: pinuot del PIC 18F452.

COLLAUDO
Il collaudo avviene senza problemi, dal
momento che tutto il funzionamento
delegato al microcontrollore. Dopo aver
dato alimentazione al circuito, sufficiente premere uno dei dieci tasti. Essi iniziano lesecuzione del brano con la rela-

Come si vede, far suonare un PIC non


poi cos difficile. Si tratta di trovare il modo per trasformare uno spartito musicale in un insieme di numeri. Il lettore pu
esercitarsi a implementare altre canzoni,
ricordando per che la memoria del micro
si riempie facilmente. Buon lavoro! q
CODICE MIP 2757055

pubblicit_fe 07/12/09 15.19 Pagina 3

Development Tool...

Complete AVR development solution


Speed up your prototype development with the
EasyAVR6 Development System. The EasyAVR6
comes packed with examples that makes your AVR
development fast and easy.

Save time & money!


Get extra value for your money with this first-class
tool for AVR development solutions. Get into the AVR
world faster and easier than ever before with the
EasyAVR6 Development System.

Designed to suit your needs


Your development time can be considerably reduced,
resulting in an early prototype design and fast timeto-market for your end product.

...just THe way you like it !!!


Everything youve always wanted from a development tool
Experience the ease of creating your own electronic devices!

Thanks to many new features, you can start creating your own
devices immediately. EasyAVR6 supports 8-, 14-, 20-, 28- and
40- pin AVR microcontrollers. The on-board USB 2.0
Programmer enables very efficient and fast AVR microcontroller
programming. Examples in C, BASIC and Pascal are provided
with the board.

Connector for the JTAG Debugger is


on-board and enables efficient
debugging at hardware level
Port Expander provides easy I/O
expansion (2 additional ports)
using serial interface

CODICE MIP 2759219

Full-featured and userfriendly development board


for AVR microcontrollers

Find your distributor:


http://www.mikroe.com/en/distributors/

On-Board
2x16 Serial
LCD Display
Keypad enables
easy and fast
data entry
High-Performance
USB 2.0 On-Board
Programmer

mikroElektronika
SOFTWARE AND HARDWARE SOLUTIONS FOR THE EMBEDDED WORLD

www.mikroe.com

36-41_Frequenzimetro_FE 04/12/09 15.01 Pagina 36

progettare &

progettare & costruire

di DANIELE CAPPA

Frequenzimetro con

PIC 16F628
e display a sette SEGMENTI

Strumento minimo
con unottima versatilit,
utilizzabile sia come
strumento a s stante,
sia come sintonia elettronica
per piccoli ricetrasmettitori
autocostruiti

Figura 1: schema elettrico del frequenzimetro.

36

e caratteristiche sono di tutto rispetto, da 1 a 60 MHz, selezione


automatica delle scala (autoranging), cinque cifre con display a LED,
possibilit di sommare o sottrarre il valore
di media frequenza. Il primo frequenzimetro a PIC stato realizzato dallautore anni fa per utilizzarlo insieme a un
vecchio TS700 Kenwood fornito di transverter in 6 metri. Larticolo completo del-

la modifica reperibile su www.iw1axr.eu,


e lo schema utilizzato quello pubblicato da ik3oil sul numero di maggio 2000 di
Radio Rivista. In verit qualche dubbio
cera sul funzionamento di strumenti di
questo tipo, negli anni si poi imparato
ad apprezzarne la versatilit, tanto che il
TS700 ha ormai cambiato proprietario,
ma il frequenzimetro gi stato riutilizzato pi volte.

36-41_Frequenzimetro_FE 04/12/09 15.01 Pagina 37

& costruire
Figura 2: schema elettrico del display.

Durante le prove sul BiTx20, il ricetrasmettitore SSB in 20 metri, emerso uno


dei problemi maggiori di questo tipo di
strumenti: generano moltissimo rumore.
Nel caso specifico, la cosa evidentemente aiutata dal fatto che il PIC funziona
con clock a 4 MHz, esattamente la stessa
frequenza del VFO della radio. Infatti per
utilizzarlo sul citato ricetrasmettitore in
20 metri stato successivamente realizzato questo modello derivato da un kit
indiano, dal costo quasi nullo, 20 $ comprese le spese di spedizione, ed basato
su un progetto di DL4YHF, impiega un
PIC 16F628, economico successore del
noto 16F84, come il fratello minore programmabile con un programmatore facile da realizzare anche per un uso saltuario.
Anche il software di programmazione reperibile in rete, icprog, ponyprog e altri.
Il kit reperibile presso il gruppo indiano
che propone anche il circuito stampato del
ricetrasmettitore BiTx20 (http://www.cqbitx.blogspot.com). La scelta del progetto
stata decisa per la presenza dei display
a sette segmenti a LED al posto del solito display LCD; non si tratta di risparmio sui componenti, ma della necessit di
limitare lo spazio occupato dal display
sul pannello del ricetrasmettitore, gi
piuttosto affollato.
La frequenza di funzionamento del microcontrollore, pari a 20 MHz, limita per
quanto possibile i fischiettii e i rumoracci
che di solito questi strumenti introducono
nel ricevitore al quale sono collegati; esiste una versione del tutto analoga del
firmware prevista per luso con un quarzo a 4 MHz. Per luso con il ricetrasmet-

titore stato previsto un interruttore per


spegnere il frequenzimetro in caso di necessit. Al frequenzimetro originale stato aggiunto un preamplificatore a due
stadi, il primo a FET a cui fa seguito un
transistor NPN da commutazione. La frequenza di funzionamento dovrebbe avvicinarsi ai 60 MHz, in realt per luso al
quale destinato non si andati oltre
gli 8 MHz, ma non vi ragione per cui lo
strumentino non debba rispettare i valori dichiarati. Il fatto che lo rende adatto
allimpiego come sintonia elettronica
nella possibilit di effettuare la somma o
la sottrazione del valore di media tra alcuni
valori predefiniti e contenuti nella eeprom
del PIC. Sono fornite le istruzioni per modificare i valori di media frequenza memorizzati nella eeprom del PIC, sono necessari una calcolatrice scientifica in grado di effettuare calcoli in esadecimale
(quella di windows va bene) e un editor
esadecimale (anche icprog o ponyprog);
in seguito vedremo come procedere.
Lautore del firmware ha avuto una idea
magnifica nellinserire una routine che setta il valore di media a quello letto in ingresso. dunque sufficiente inserire in ingresso
al frequenzimetro luscita del BFO del ricevitore, oppure un generatore di segnali regolato sulla frequenza che ci interessa sommare (o sottrarre) al valore misurato, entrare
in modalit setup per avere il nostro frequenzimetro programmato su valori anche
strani e senza neppure aprirlo!
Fino ad oggi sono stati realizzati tre esemplari, due con sei display verdi da 7,6
mm (0.71), di cui uno finto utilizzato solo per completare frequenza di funzio-

namento della radio, laltro con display


analoghi a quelli impiegati molti anni fa sulle calcolatrici prodotte dalla Texas TI 5X;
sono degli integrati in custodia DIL12 (6 +
6 pin) che contengono al loro interno tre
display completi di punto decimale con i
segmenti gi collegati tra loro e i tre catodi
disponibili allesterno per la connessione
al multiplex. Utilizzando dei display singoli
necessario realizzare tutti i collegamenti a mano. In particolare, i segmenti
andranno collegati tutti tra loro, ovvero tutti i segmenti A andranno collegati tra loro, cos tutti i segmenti B, fino a completare i sette segmenti e i punti (DP).
Alla piastra del PIC andranno collegati i
sette segmenti comuni a tutti i display e i
catodi dei singoli display tenendo presente che DS1 il primo display a sinistra, mentre DS5 lultimo a destra.
La sensibilit dello strumentino pi che
buona, e comunque sufficiente per luso
previsto; il VFO del ricetrasmettitore non
viene caricato dallinserzione dello strumentino grazie allalta impedenza di ingresso fornita dal FET.

LO SCHEMA ELETTRICO
Il segnale di ingresso viene applicato al
gate del FET attraverso un condensatore ceramico dal valore estremamente
basso, questo per non caricare lo stadio
a cui sar collegato. Il FET impiegato un
canale N, stato impiegato un vecchio
2N3819, ma anche un BF244 e dei vecchi FET della serie ECG. Limpiego di un
modello pi recente tipo il J310 possibile e vantaggioso. La configurazione a
drain comune fornisce una bassa impe37

36-41_Frequenzimetro_FE 04/12/09 15.01 Pagina 38

progettare & costruire

progettare & costruire

Figura 3: schema elettrico del preamplificatore.

Figura 4: HP534S display 3 x 7 segmenti.

denza di uscita dello stadio che ben si


adatta a quello successivo che costituito da un transistor da commutazione
(BC547 o 2N3904). Al fine di ottenere
una buona sensibilit su tutta la gamma di interesse, necessario curare il valore della resistenza di base del transistor,
in quanto valori troppo bassi portano il
transistor pericolosamente vicino alla
zona di saturazione e impediscono che il
transistor amplifichi come deve. Il risultato
una sensibilit estremamente ridotta. Se
stiamo impiegando un transistor dalle
buone caratteristiche in fatto di frequenza
di taglio, quasi certamente avr un guadagno in corrente pi basso e la resistenza di base potrebbe scendere fino a
47 kohm, mentre se stiamo impiegando un transistor per commutazione come
i due modelli citati prima, ma che hanno
un guadagno estremamente alto (probabilmente vicino a 500 e oltre), assolutamente necessario aumentare il valore della resistenza di base anche di
molte volte, fino raggiungere i 220-470
kohm. In assenza di segnale, la tensione
presente sulla base dovrebbe essere la
met della tensione di alimentazione, da
misurarsi rigorosamente con un tester
38

digitale, in quanto il vecchio Ice caricherebbe troppo lo stadio facendoci leggere un valore di tensione drammaticamente pi basso del reale.
Questa versione utilizza display a catodo
comune. possibile impiegare display
dotati di anodo comune capovolgendo i
diodi D1, D2, D3 e D4; questultimo andr
collegato a +5 V invece che a massa,
sostituendo Q1 con un esemplare analogo
a polarit invertita (un PNP, BC327 o analogo) e programmando il PIC con il file che
DL4YHF ha chiamato counter3.hex.
Lultimo display a destra (DS5) stato
aggiunto successivamente; dato che al
PIC non avanzano pi pin con cui comandare il quinto catodo, lautore del
firmware ha realizzato una porta OR a
diodi permettendo di accendere lultimo
display semplicemente quando tutti gli
altri sono spenti. Il sistema funziona perfettamente, anche se allaccensione rimane per un attimo acceso il penultimo
display, mentre lultimo spento. Utilizzando comuni diodi al silicio (1N4148 o simili) indispensabile la presenza di D4, altrimenti il transistor Q1 non commuta.

IL MONTAGGIO
Come sempre, i tre esemplari costruiti
sono stati messi insieme su piastrina millefori; del resto le dimensioni e le esigenze dei contenitori utilizzati per i BiTx20
erano diverse, cos i tre frequenzimetri. I
componenti necessari sono veramente
pochi e il montaggio su millefori non richiede pi di una sera. Per i pi pigri resta
comunque la disponibilit del kit indiano;
la velocit e la correttezza del gruppo citato esemplare, in meno di tre setti-

mane si ha tutto a casa con una spesa


che equivalente, se non qualche monetina in meno, a quel che costerebbero
i soli componenti. Nella realizzazione pratica bene rispettare alcuni consigli: lingresso del frequenzimetro andr posto
lontano dal quarzo e dallalimentazione,
che sar ben filtrata facendo uso abbondante di impedenze e perline di ferrite per limitare i disturbi che il clock del PIC
porta verso la radio. I collegamenti verso il display saranno realizzati con un
connettori a stampato da 8+8 pin, il display sar probabilmente fissato al pannello
del ricetrasmettitore e la possibilit di
separarlo dal resto praticamente obbligatoria. Secondo lavidit in corrente dei
display impiegati, il regolatore di tensione
potrebbe avere bisogno di un piccolo radiatore, quindi sulla piastrina millefori ne
stato previsto lo spazio, anche se in
realt non si dimostrato necessario.
Il settaggio dello strumento avviene con un
pulsante. bene collocarlo a stampato,
non necessario averlo sul pannello anteriore, a meno che non lo si utilizzi come
strumentino a s stante. Una posizione sul
lato della piastra, possibilmente verso
un lato del contenitore, oppure sul lato inferiore, permette di accedervi con un piccolo cacciavite semplicemente praticando un foro al punto giusto nel contenitore che non dovr neppure essere aperto.
Il collegamento verso lingresso sar realizzato con un cavetto schermato adatto,
il solito RG174 perfetto. Si evita limpiego di cavetti schermati per bassa frequenza, in quanto il frequenzimetro genera
gi abbastanza rumore da solo.
Le due impedenze L1 e L2 sono un ulteriore blocco alla radiofrequenza; possibile impiegare due piccoli nuclei toroidali
su cui avvolgeremo alcune spire di filo
da 0,7-0,8 mm. Il valore di induttanza
non assolutamente critico, lo strumento funziona bene anche senza, ma la loro
presenza riduce ulteriormente il rumore
generato, o almeno gli impedisce di viaggiare sfruttando i collegamenti delle alimentazioni. In alternativa delle piccole
impedenze su ferrite anche di recupero
andranno ugualmente bene.
Probabilmente il quarzo a 20 MHz che
fornisce il clock allo strumentino avr
un robusto scarto dalla frequenza nominale. La taratura del frequenzimetro av-

36-41_Frequenzimetro_FE 04/12/09 15.01 Pagina 39

LISTA COMPONENTI

Figura 5: il frequenzimetro montato.

Figura 6: il display piccolo.

viene variando il valore delle due capacit


collegate tra il quarzo e massa, C1 e
C2, il cui valore andr aumentato o diminuito secondo necessit. I due condensatori dovrebbero essere uguali, ma
se in fase di taratura vediamo che la variazione del valore di un solo condensatore ci ha portato ad avere la lettura
precisa, possiamo tranquillamente lasciare le cose come sono. Per tarare il
frequenzimetro stato utilizzato un altro
esemplare vecchio stile; luso come
indicatore di sintonia ha portato a ritenere
valida una misura con uno scarto di meno di 100 Hz rispetto alla lettura del frequenzimetro campione. In alternativa
possibile, se il tutto utilizzato su un
ricetrasmettitore, effettuare delle prove
comparative tra un segnale ricevuto con
un rtx commerciale e il nostro piccolino.

CAMBIARE IL VALORE DELLA MEDIA


Il file originale, con cui dovremmo programmare il PIC (ricordo per display a catodo comune) counter2.hex diffuso da
DL4YHF e reperibile in rete e sul sito della

rivista. Nel caso in cui avessimo necessit


di modificare i valori preimpostati nella eeprom del PIC necessario munirci di calcolatrice scientifica e di editor esadecimale (i citati icprog o ponyprog vanno bene).
Dobbiamo leggere la frequenza del BiTx
americano il cui VFO lavora tra 3.100 e
3.280 circa. Nella versione indiana il VFO
pi alto di 1 MHz ed essendo la media a 10
MHz basta leggere la frequenza del VFO,
aggiungere mentalmente 10 MHz e ottenere
la frequenza di funzionamento del ricetrasmettitore. Oppure aggiungere un 1 fisso
a sinistra del display per ottenere la lettura
falsa, ma apparentemente completa.
Purtroppo sulla versione americana il valore della media a 11 MHz ci impedisce di
sfruttare lo strumento per la lettura fino ai
100 Hz; se sommiamo correttamente gli
11 MHz, otteniamo la lettura da 14.100 a
14.280, impiegando le 5 cifre utili. Se al
contrario sommiamo solamente 1 MHz,
otteniamo la lettura da 4.1000 a 4.2800,
includendo quindi la lettura fino alle centinaia di Hz, ritorniamo dunque alla situazione appena vista e possiamo ag-

R1
R2
R3
R4
R5
R6
R7
R8
R9
R10
R11
R12
R13
R14
C1
C2
C3
C4
C5
C6
C7
C8
C9
D1
D2
D3
D4
D5
X1
L1
L2
U1
U2
Q1
Q2
Q3
S1
DS1-DS5

1 kohm
1 kohm
1 kohm
1 kohm
1 kohm
1 kohm
1 kohm
1 kohm
8.2 kohm
8.2 kohm
1.8 kohm
100 kohm
470 ohm
220 kohm vedi testo
47 pF
47 pF
100 nF
100 nF
100 nF
47 pF
390 pF
100 nF
100 nF
1N4148
1N4148
1N4148
1N4148
1N4148
Quarzo 20 MHz
RFC 47 100 microH
RFC 47 100 microH
PIC16F628 a 20 MHz
LM7805
2N3819, BF244, J310
2N2904, BC547c
2N2904, BC547c
Pulsante da CS NA
5 display a LED a catodo comune,
oppure due chip HP534S,
che contengono tre display luno
Zoccolo a 18 pin DIL per il PIC
Connettori per il display

giungere a sinistra del display il solito 1


finto a esclusivo beneficio estetico.
Torniamo a noi, con la calcolatrice scientifica convertiamo in esadecimale il valore, espresso in Hz, da sommare alla lettura
dello strumento: 1 MHz, ovvero 1.000.000
Hz, in esadecimale diventa F4240, ed il
valore che andremo a porre alla locazione di memoria 000800, la cui riga diventer 00 00 00 00 0F 42 40.
Se avessimo voluto sottrarre lo stesso
valore avremmo dovuto calcolarne, sempre in esadecimale, la differenza con
FFFFFFFF, ovvero:
FFFFFFFF F4240 = FFF0BDBF
39

36-41_Frequenzimetro_FE 04/12/09 15.01 Pagina 40

progettare & costruire

progettare & costruire

Figura 7: il frequenzimetro montato su millefori.

La sequenza da inserire nella eeprom diventa quindi 00 00 00 FF F0 BD BF. Se intendiamo aggiungere al frequenzimetro il
sesto display finto, che andr posizionato a sinistra del primo display (DS1)
dello strumento, necessario accendere
i soli segmenti b e c, in modo da formare un 1 fisso che completa la frequenza di funzionamento dellRTX e trasforma leventuale lettura da 4.0496 ai pi
gradevoli 14.0496. In serie ai due segmenti andranno poste due resistenze il cui
valore dovr essere poco superiore a
quello di R1 - R8 (quindi 1,2 1,5 kohm)
al fine di ottenere un display con una luminosit analoga ai sui fratelli. Nella EEPROM sono inseriti di default alcuni valori
di media frequenza, disponibili per essere sommati, o sottratti, dalla frequenza
presente allingresso. Sono selezionabili dal menu in modalit SET.

MENU DI SETTAGGIO
Il tasto SET ha due funzioni: tenendolo
premuto a lungo si entra nel menu visualizzato, mentre una pressione breve
del tasto permette di scorrere le scelte
disponibili che vanno confermate con
una pressione lunga dello stesso tasto.
Nel complesso, pur essendo la rappresentazione sul display a 7 segmenti forzatamente limitata, luso del menu intuitivo e veloce. Ecco le principali voci
del menu:

Quit: esce dal menu di programmazione senza modificare nulla;

Add: somma la frequenza misurata al

Figura 8: un altro esemplare montato e il BiTx20 che lo ospita.

40

valore stabilito della media frequenza;


Sub: sottrae dalla frequenza misurata il
valore stabilito della media frequenza;
Zero: setta la lettura senza alcun offeset,
viene visualizzata la frequenza realmente
misurata senza intervenire sul suo valore;
Table: permette di scegliere tra i valori di
media predefiniti, ovvero 455 kHz, 4.1943
MHz, 4.4336 MHz, 10.700 MHz, o leventuale valore che abbiamo aggiunto
con la procedura appena descritta;
PSave-NoPSV: permettere di spegnere il display dopo 15 secondi in cui lo
strumento non ha rilevato una variazione
della frequenza di ingresso; limpiego di
questa possibilit utile in unione a RTX
a bassa potenza alimentati a batterie in cui
il consumo del solo display probabilmente paragonabile a quello del ricevitore.

36-41_Frequenzimetro_FE 04/12/09 15.01 Pagina 41

quenzimetro legge 90 kHz, che visualizza


come 90.000; la lettura degli Hertz sar
certamente molto instabile e poco attendibile e il risultato estetico sgradevole, ancor pi se allo strumento sono state aggiunte cifre finte al fine di completare la
lettura della frequenza. A questo proposito DL4YHF consiglia di mantenere il risultato della sottrazione ad almeno 120 kHz,
per avere il piccolo margine di sicurezza prima dellintervento dellautoranging.
Lo strumento funziona su cinque possibili
scale, ovvero:

1-9.999 kHz con un periodo di lettura


pari a 1 secondo;

10-99.990 kHz con un periodo di lettura


pari a 0,5 secondi;

100-999,90 kHz con un periodo di lettura pari a 0,25 secondi.


In queste tre prime portate il punto decimale lampeggia a significare che sono
visualizzati dei kHz:

1-9.9990 MHz con un periodo di lettura pari a 0,25 secondi;

10-60.000 MHz con un periodo di lettura pari a 0,25 secondi.


In queste ultime due portate il punto fisso e la visualizzazione indica dei MHz.
In tutte le portate, salvo che nella prima,
la visualizzazione avviene su cinque cifre
aumentando di volta in volta la portata del
display meno significativo. Da questa tabella appare evidente che la misura del
VFO di un ricetrasmettitore a cui sottratto il valore della media frequenza non
deve assolutamente cadere nei pressi di
un cambio di scala, pena il cambio di
precisione e il conseguente spostamento delle cifre verso sinistra, che noi potremmo interpretare come 900 kHz al
posto di 90 kHz. q

CODICE MIP 2757047

CODICE MIP 2770846

Per una lettura gradevole e sensata dello strumento necessario non abusare
della possibilit di sottrarre il valore di media. bene che il risultato prevedibile della nostra sottrazione non sia troppo vicino
allo zero. Se la frequenza misurata vera
vicina al valore della media selezionato,
rischiamo di far entrare in funziona lautoranging dello strumento che seleziona
portate pi basse. Se sul BiTx statunitense avessimo utilizzato la funzione di sottrazione del VFO sottraendo 3.000 MHz al
fine di ottenere una maggior precisione
di lettura, avremmo potuto trovarci in questa situazione: il VFO funziona da 3.100 a
3.280, se sottraiamo 3 MHz la lettura andr da 100 a 280 kHz, sul display si leggono i valori compresi tra 100.00 e 280.00,
ovvero la lettura si estende fino alle decine
di Hertz. Perdiamo lestetica di avere la frequenza completa a favore di una maggior precisione. I problemi giungono appena la frequenza del VFO scende ancora
un poco sotto i 3.100 MHz, a 3.090 il fre-

42-53_Smartcard_FE 04/12/09 15.10 Pagina 42

progettare &

progettare & costruire

di GIUSEPPE MODUGNO

Lettore di

(parte seconda)

SMARTCARD
In questa seconda e ultima

parte riprendiamo il progetto


del lettore stand-alone
di smartcard dotato di display
e tastierino per lutilizzo
in applicazioni di fidelizzazione

artiamo dalla descrizione del funzionamento del lettore di smartcard, senza entrare nei dettagli
tecnici. Pi avanti, nel prossimo paragrafo, verr fatta una descrizione dettagliata del firmware del microcontrollore.

SCHERMATA DI BENVENUTO

della clientela. Dopo aver


realizzato il prototipo completo,
andremo qui a discuterne
il funzionamento e il firmware
che lo anima

semplicemente una schermata che viene visualizzata, per qualche secondo,


subito dopo laccensione.

Questa schermata viene visualizzata quando si tiene premuto il tasto F durante laccensione del lettore. una schermata di servizio che non dovrebbe essere conosciuta
dal normale utilizzatore dellapparecchio, poich consente di modificare alcune impostazioni fondamentali, tra cui lo stesso PSC.
Premere il tasto 1 per passare alla schermata di impostazione del PSC (gi vista
precedentemente), il tasto 2 per passare alla schermata relativa ai contatori, il tasto E
per tornare alla schermata principale.

SCHERMATA CONTATORI
Il lettore memorizza il numero delle opera-

PRIMA ACCENSIONE
Alla prima accensione del lettore, dopo la
schermata di benvenuto, viene visualizzata
quella che permette di impostare il PSC da
utilizzare per la scrittura delle smartcard.

Il PSC di default (prima riga) FFFFFF. Il


cursore lampeggia in corrispondenza della prima cifra del nuovo PSC (seconda
riga). Premere i tasti corrispondenti alle sei
cifre del PSC desiderato. A ogni digitazione
il cursore si sposta alla cifra successiva.
Dopo aver digitato sei cifre, il cursore
lampeggia ancora sullultimo carattere
del display attendendo la conferma (tasto
F) oppure lannullamento delloperazione (tasto E). Annullando loperazione, il lettore continuer a utilizzare il PSC di default.
Questa schermata viene visualizzata solo
alla prima accensione. Per modificare
successivamente il PSC necessario andare nella schermata setup.

SCHERMATA SETUP

42

zioni relative agli accessi alle smartcard inserite. Ci sono quattro contatori per altrettante tipologie di operazioni: letture corrette (aaaa), letture errate (bbbb), scritture
corrette (cccc), scritture errate (dddd). Ogni
contatore pu arrivare sino a un massimo di
9999, dopodich non si incrementa pi.
In questa stessa schermata possibile azzerare tutti i contatori contemporaneamente, premendo il tasto 0. Premere il tasto
E per tornare alla schermata di setup.

SCHERMATA PRINCIPALE
La schermata principale visualizza sempli-

cemente un messaggio che chiede di inserire una carta. la schermata che viene normalmente visualizzata dopo la schermata
di benvenuto (eccetto alla prima accensione).

SCHERMATA DATI

42-53_Smartcard_FE 04/12/09 15.10 Pagina 43

& costruire

Figura 1: finestra relativa alle impostazioni del programma Gestione Carte.

cursore lampeggiante compare sulla prima cifra del credito a indicare che possibile premere i tasti numerici per modificarne il valore. Durante la modifica del
credito possibile premere, in qualsiasi
momento, il tasto E per annullare loperazione. Dopo aver premuto cinque cifre, il cursore lampeggia in corrispondenza della lettera E, in attesa di una conferma (tasto F) o di un annullamento (tasto E)
da parte dellutente. Confermando la modifica con il tasto F, il lettore prover a
memorizzare il nuovo valore nella smartcard. Se loperazione ha successo, il LED
verde si accende. Se loperazione non
ha successo, si accende il LED rosso e
viene visualizzato un messaggio derrore
per qualche secondo. A seconda del risultato delle operazioni di lettura e scrittura,
i contatori vengono di conseguenza aggiornati. Per ritornare alla schermata principale, sufficiente estrarre la smartcard.

INIZIALIZZAZIONE DI UNA SMARTCARD

Figura 2: finestra relativa alla creazione di una nuova carta.

Non appena viene inserita una smartcard


valida allinterno del lettore, si passa automaticamente alla schermata dati. Se
viene inserita una smartcard non valida,
viene visualizzato un messaggio derrore
fino a quando la carta non viene estratta.
Sulla prima riga viene visualizzato il nome

del proprietario della carta, sulla seconda


il credito associato a quella carta (il carattere E finale sta a indicare euro, supponendo che il credito sia un equivalente
in moneta, ma potrebbe indicare qualsiasi altra cosa: punti, gettoni, ecc). Premere il tasto F per modificare il credito. Un

Il nostro lettore , come gi detto, compatibile solo con alcune tipologie di smartcard, le SLE4442. Prima di utilizzare una
smartcard vergine con il lettore, necessario inizializzarla in modo da renderla compatibile con il sistema. A tale scopo, necessario utilizzare un altro lettore di smartcard collegato a un computer
e un software apposito. Il lettore da collegare al computer tramite connessione
RS232 denominato UniReader ed
stato progettato in un articolo pubblicato
su Fare Elettronica (in particolare sul numero 231 di settembre 2004). Il software
da utilizzare sul PC per comunicare con
lUniReader e inizializzare la smartcard
vergine Gestione Carte, sviluppato e
descritto sempre su un precedente articolo di Fare Elettronica (numero 232 di ottobre 2004). In realt, il software stato
leggermente modificato rispetto alledizione originale per adattarlo al nuovo sistema. possibile scaricare sia il sorgente (in Microsoft Visual Basic 6.0) che
il file di installazione dal sito di Fare Elettronica. Allavvio del programma Gestione Carte sul computer, cliccate sulla linguetta Impostazioni (figura 1). Qui
possibile impostare la porta seriale utilizzata per il collegamento con lUniRea43

42-53_Smartcard_FE 04/12/09 15.10 Pagina 44

progettare & costruire

progettare & costruire

postato nella finestra Impostazioni. importante verificare il buon funzionamento


dellUniReader (si faccia riferimento allarticolo di Fare Elettronica gi citato).
Dopo aver inizializzato la smartcard, possibile utilizzarla con il nostro lettore standalone per applicazioni di fidelizzazione. Volendo, possibile leggere il contenuto della smartcard ed eventualmente modificarlo, utilizzando la schermata Gestione del
software (figura 3). Cliccare sul tasto Aggiorna per leggere il contenuto della smartcard inserita nellUniReader e visualizzarlo
nella finestra. Cliccare su Modifica per
scrivere i dati mostrati a video nella smartcard inserita nellUniReader.

FIRMWARE
ovvio che in circuiti come questi, oltre allhardware, anche il software ha un ruolo
importante e crediamo che sia molto utile spiegarne, nel modo pi dettagliato
possibile, il funzionamento con codice
sorgente alla mano. Nei prossimi paragrafi
cercheremo di commentare ampie porzioni del codice sorgente, senza per questo scorrere in modo arido le linee di codice dallinizio alla fine. Di volta in volta
prenderemo in considerazione un aspetto e commenteremo le zone del codice
(non necessariamente consecutive nel
file sorgente) che rendono possibile tale
funzionalit. Per una maggiore leggibilit
dei listati relativi al codice sorgente, alcuni
commenti sono stati eliminati o ridotti.

Figura 3: finestra relativa alla gestione di una carta gi inizializzata.

LINGUAGGIO E AMBIENTE DI SVILUPPO

Figura 4: screenshot dellambiente di sviluppo mikroC utilizzato per questo progetto.

der, il PSC della smartcard vergine e il


nuovo PSC da impostare e che sar utilizzato durante lapplicazione. Dopo aver
scelto questi parametri (controllate bene
il valore dei due PSC), cliccare sul tasto
Salva per memorizzare permanentemente le modifiche in modo che vengano
caricate automaticamente alla prossima
esecuzione del software. possibile pas44

sare ora alla finestra Nuova Carta (figura


2), dove inseriremo il nome del titolare
della smartcard (massimo 16 caratteri).
Cliccando sul tasto Crea verr inizializzata la smartcard inserita nellUniReader. Se loperazione non va a buon fine,
necessario controllare meglio il collegamento con lUniReader e il valore del
PSC relativo alla smartcard vergine im-

Per applicazioni molto semplici, il linguaggio di riferimento sicuramente lAssembler. Per la nostra applicazione, che deve gestire contemporaneamente un display,
un tastierino numerico e una smartcard, la
scelta obbligata il linguaggio ad alto livello
C. Tra i diversi compilatori C e ambienti di
sviluppo per i microcontrollori Microchip,
abbiamo scelto lottimo mikroC della mikroElektronika (www.mikroe.com). Noi siamo in possesso e abbiamo usato la versione 6.2.1.0 (figura 4).
La procedura di installazione e lutilizzo
sono veramente semplici e non necessario entrare nel merito in questo articolo.
Per chi non voglia cimentarsi con la compilazione del codice sorgente e non abbia
interesse a modificarne il funzionamento,
sufficiente prelevare il file firmware.hex

D
n
d
s

M
a

Com
da
com
salv
ins
un
di r
eu
inte
mo
Min

42-53_Smartcard_FE 04/12/09 15.10 Pagina 45

Sistemi di registrazione...

discreti

NEW

9500

Telecamera

CAMCOLVC6

NEW

Telecamera

Orologio con telecamera e registratore A/V integrati


Dispone di microtelecamera CMOS
nascosta dentro la cifra 2 e consente
di effettuare fino a 150 minuti di registrazioni audio/video con risoluzione di

352x288 pixel (CIF). Integra una memoria


flash da 2GB sulla quale vengono salvati i
filmati, scaricabili su PC mediante collegamento USB.

4600
CAMCOLVC5

Penna con telecamera


e registratore A/V integrati
in grado di registrare filmati audio-video
in alta risoluzione (1530fps), tramite
la microtelecamera nascosta, solamente
premendo un pulsante. Le registrazioni in
formato AVI vengono salvate direttamente
sulla flash memory (da 2GB) di cui
dispone e possono essere trasferite ad
un PC tramite collegamento USB. Batteria
ricaricabile integrata.

... e per applicazioni speciali.


Mini DVR con telecamera
a colori e monitor TFT

20800

CP383

Camera CAR a colori


Progettata per essere montata
sul cruscotto di un auto, questa
camera car a colori, permette di
catturare sequenze video.
Utile ai fini assicurativi o per puro
divertimento!
Dispone di un puntatore laser che
permette di allineare lobiettivo
della telecamera alla strada da
riprendere. Utilizzando un cavo
AV possibile collegare il dispositivo ad un monitor con ingresso
videocomposito per visualizzare il

video in real-time.
Sensore dimmagine CMOS a
colori; risoluzione video 320 x
240 (QVGA); angolo di ripresa
60; formato di registrazione
AVI; registrazione su SD/MMC
Card 2GB max. (non inclusa);
dimensione file video 4~8MB/minuto; alimentazione a batterie (3 x
AAA) o 12Vdc tramite adattatore
per presa accendisigari (incluso);
consumo max. 220mA; dimensioni 104 x 48 x 20mm.

CAMCOLVC3

*XDUGDLOYLGHRVX<RXWXEH
http://www.youtube.com/watch?v=zcisHI1zvhU

in
idee ica
ron
elett

9LD$GLJH*DOODUDWH 9$ 
7HO)D[

Maggiori informazioni su questi prodotti e su tutte le altre apparecchiature sono disponibili sul
sito www.futurashop.it tramite il quale anche possibile effettuare acquisti on-line.

CODICE MIP 2753569

Compatto ed affidabile, integra un monitor LCD TFT


da 2 e dispone di una telecamera pin-hole a colori,
completa di microfono. Le immagini riprese vengono
salvate direttamente sulla mini SD Card (max. 4GB)
inserita nello slot e possono essere trasferite ad
un PC con un semplice Copia e Incolla. Formato
di registrazione AVI; rsoluzione 640x480; ingresso
e uscita A/V; batteria ricaricabile ai polimeri di litio
integrata; autonomia in registrazione ~2h; dimensioni
monitor 66 x 55 x 17mm, telecamera 34 x 22 x 17mm.
Mini SD Card da 2GB inclusa.

9900

Tutti i prezzi sono


da intendersi IVA inclusa.

42-53_Smartcard_FE 04/12/09 15.10 Pagina 46

progettare & costruire

progettare & costruire

LISTATO 1
Estratto di codice per la
gestione del display
...
const char str_welcome1[]
=
Benvenuto!
;
const char str_welcome2[]
= Iniz. in corso..;
void
main( void )
{
...
/* Inizializzazione
LCD. */
Lcd_Custom_Config(
&PORTC, 7, 6, 5, 4,
&PORTC, 2, 2, 3 );
Lcd_Custom_Cmd(LCD_CURSOR_OFF);
/* Schermata introduttiva. */
myLcd_Custom_Out( 1,
1, str_welcome1 );
myLcd_Custom_Out( 2,
1, str_welcome2 );
...
}
void
myLcd_Custom_Out(
unsigned short row,
unsigned short col,
const char *txt )
{
strcp_c(strbuf, txt);
Lcd_Custom_Out( row,
col, strbuf );
}

dallarchivio firmware.zip che troverete sul


sito di Fare Elettronica alla pagina relativa
a questo articolo. Utilizzate tale file per la
programmazione del microcontrollore (si veda larticolo precedente).
Per i pi esperti, invece, si consiglia di
scompattare tutti i file dellarchivio in una
cartella vuota e aprire, con mikroC, il file
firmware.ppc. Come potrete vedere, il
firmware formato da 3 moduli C:

mylibs.c;
SLE4442.c;
main.c;
e 2 file include .h:

mylibs.h;
SLE4442.h.
46

mylibs.c
sempre buona norma cercare di suddividere un programma complesso in tanti
piccoli sotto-processi, mediante unoperazione ricorsiva, fino ad arrivare a processi
minimali facilmente codificabili attraverso
una funzione (nel caso di linguaggi procedurali, come il linguaggio C). Nel modulo
mylibs.c sono presenti alcune funzioni di
base utilizzate un po dovunque in altri
punti del sorgente. Per esempio, la funzione strcp_c() copia una stringa costante dalla Flash nella memoria RAM. Questa
funzione necessaria soprattutto per la
scrittura di stringhe sul display, come si vedr in seguito. La funzione hex() che utilizza, a sua volta, la ushort2hex(), converte un array di byte in una stringa che ne
rappresenta il contenuto in esadecimale.
Questa funzione viene utilizzata principalmente per la visualizzazione del PSC
della smartcard sul display.
La funzione checksum() calcola un valore di controllo utilizzato per verificare la coerenza dei dati memorizzati nella smartcard inserita nel lettore. Questo valore
viene calcolato semplicemente come
somma binaria (operazione XOR) di tutti i
byte su cui si vuole calcolare la checksum.
Se uno dei byte dovesse essere modificato (volontariamente da un pirata o involontariamente per un malfunzionamento), senza modificare anche la checksum, il lettore pu accorgersi facilmente
che i dati memorizzati sono corrotti e
pu rifiutare la smartcard inserita.
Infine le myEEPROM_Read() e myEEPROM_Write() leggono e scrivono nella
EEPROM interna del microcontrollore un
array di byte di lunghezza variabile, richiamando le funzioni di libreria EEPROM_Read() e EEPROM_Write(), messe
a disposizione dal compilatore mikroC,
che si limitano a leggere/scrivere un singolo byte. Tutte queste funzioni sono
molto semplici e non pensiamo sia il caso di appensantire la trattazione commentandone il codice relativo.

SLE4442.c
Il modulo SLE4442, cos come fa intendere il nome, contiene tutte le funzioni
che riguardano la comunicazione con la
smartcard. Sono tutte funzioni il cui nome
inizia per mc che sta per memory card.
Non entriamo nei dettagli di questo mo-

dulo, poich il codice contenuto allinterno esattamente lo stesso di quello


proposto nel n. 232 dellottobre 2004 di
Fare Elettronica, nellarticolo intitolato
Smartcard (quinta parte): applicazioni
con le smartcard a memoria.

main.c
Il modulo main.c ovviamente il pi importante, poich rappresenta il programma principale che gestisce tutte le
nostre periferiche: smartcard, tasti, LED,
display, ecc.

Display
La gestione del display affidata quasi
completamente alle librerie gi pronte
presenti nel compilatore mikroC. In particolare, ci stiamo riferendo alla LCD
Custom Library di cui potete leggere
nellHelp on-line. Con la funzione Lcd_Custom_Config() indichiamo alla libreria quali sono i pin del microcontrollore utilizzati per la comunicazione con il display.
Anche se questa funzione vuole conoscere il pin relativo al segnale R/W, in
modalit 4 bit questo segnale non usato e quindi non ha importanza.
La funzione Lcd_Custom_Cmd() permette di inviare al display un comando per il
controller HD44780 (per esempio, cancella
il contenuto del display, sposta il cursore
sulla prima riga, abilita la visualizzazione
del cursore lampeggiante, ecc).
La funzione Lcd_Custom_Out() forse
la pi importante, poich permette di
scrivere una stringa sul display alla posizione voluta. Per bisogna stare attenti a
utilizzare questa funzione, poich essa
accetta, come stringa, un puntatore a
una locazione in RAM. Se avessimo dovuto memorizzare tutte le stringhe di questa applicazione in RAM, avremmo esaurito molto presto lesigua capacit di questa memoria, che di soli 368 byte. per
questo che abbiamo creato una nuova
funzione, la myLcd_Custom_Out(), che
accetta come stringa un puntatore nella
memoria Flash (const char *), dove sono
conservate tutte le stringhe necessarie.
Prima di richiamare la funzione di libreria
Lcd_Custom_Out(), la myLcd_Custom_Out() copia la stringa dalla Flash
in RAM, utilizzando sempre lo stesso
spazio in RAM (larray strbuf[]), quindi
senza spreco. Naturalmente per copiare

42-53_Smartcard_FE 04/12/09 15.10 Pagina 47

LISTATO 2
Estratto di codice per la gestione del tastierino
const unsigned short keytable[4][4] = {
/* RB4, RB5, RB6, RB7 */
{0xC, 0xB, 0x0, 0xA},
/* RB0 */
{0xD, 0x3, 0x2, 0x1},
/* RB1 */
{0xE, 0x6, 0x5, 0x4},
/* RB2 */
{0xF, 0x9, 0x8, 0x7},
/* RB3 */
};
...
/* Tasto premuto (0xFF x nessun tasto premuto). */
unsigned short key = 0xFF;
...
void
interrupt( void ) {
static unsigned short rowmask=0x01;
static unsigned short row = 0;
static unsigned short tmr_isr = 0;
unsigned short port;
port = ~((PORTB>>4)|0xF0);
if( !tmr_isr ) {
tmr_isr = 20;
if( port&0x01 )
key = keytable[row][0];
else if( port&0x02 )
key = keytable[row][1];
else if( port&0x04 )
key = keytable[row][2];
else if( port&0x08 )
key = keytable[row][3];
else
tmr_isr = 0;
...
if( ++row==4 ) {
row=0;
rowmask=0x01;
} else
rowmask<<=1;
PORTB = ~rowmask;
} else
tmr_isr;
PIR1.TMR1IF = 0;
}
...
void
main( void )
{
...
T1CON = 0b00000001;
PIE1.TMR1IE = 1;
INTCON.PEIE = 1;
INTCON.GIE = 1;
...
}

una stringa dalla memoria Flash alla memoria RAM stata utilizzata la funzione
strcp_c(), presente nel modulo mylibs.c,
di cui abbiamo parlato in precedenza.
Per chiarire questi concetti, guardiamo il

listato 1. Le due stringhe str_welcome1


e str_welcome2, cos come tutte le altre
stringhe utilizzate nellapplicazione, sono
allocate dal compilatore nella memoria
Flash, poich dichiarate come costanti,

LISTATO 3
Codice relativo alla gestione
della EEPROM
struct {
char sign[5];
unsigned short psc[3];
unsigned int cnt_readok;
unsigned int cnt_readbad;
unsigned
int
cnt_writeok;
unsigned int cnt_writebad;
} eebuf;
...
void
main( void )
{
myEEPROM_Read( 0x00,
sizeof(eebuf), &eebuf );
if(
strcmp(eebuf.sign,SALV) )
{
strcpy(
&eebuf.sign, SALV );
eebuf.psc[0] =
0xFF;
eebuf.psc[1] =
0xFF;
eebuf.psc[2] =
0xFF;
eebuf.cnt_readok =
0;
eebuf.cnt_readbad
= 0;
eebuf.cnt_writeok
= 0;
eebuf.cnt_writebad
= 0;
myEEPROM_Write( 0,
sizeof(eebuf), &eebuf );
flags.setpsc = 1;
...
}

cos da risparmiare spazio nella esigua


RAM. Linizializzazione dellLCD avviene
mediante la Lcd_Custom_Config() e inviando il comando LCD_CURSOR_OFF
per disabilitare la visualizzazione del cursore lampeggiante.
Subito dopo vengono visualizzate le due
stringhe di benvenuto sulle due righe del
display, utilizzando la myLcd_Custom_Out(). Come si pu vedere sempre in listato 1, la myLcd_Custom_Out()
utilizza la strcp_c() per copiare la stringa
dalla Flash in RAM e, successivamente, la
Lcd_Custom_Out() che visualizza questa stringa in RAM sul display.
Pi avanti nel codice sar necessario scrivere sul display un solo carattere, per
47

42-53_Smartcard_FE 04/12/09 15.10 Pagina 48

progettare & costruire

progettare & costruire

LISTATO 4
Routine principale

LISTATO 5
Struttura dei dati memorizzati
nella smartcard

...
/* CICLO PRINCIPALE */
while( 1 ) {
unsigned short k, event;
event = 0;
/* Legge levento. */
if( flags.redraw ) {
/* Ridisegna la schermata. */
event = EVENT_DRAW;
flags.redraw = 0;
/* Al ridisegno della schermata, il cursore viene
nascosto. */
Lcd_Custom_Cmd( LCD_CURSOR_OFF );
} else if( flags.mc_inserted && !MC_INSERTED() ) {
/* smartcard estratta. */
event = EVENT_MCEXTRACTED;
flags.mc_inserted = 0;
} else if( !flags.mc_inserted && MC_INSERTED() ) {
/* smartcard inserita. */
event = EVENT_MCINSERTED;
flags.mc_inserted = 1;
} else if( (k=key_read())!=0xFF )
/* Un tasto stato premuto. */
event = EVENT_KEY0 + k;
/* Propaga levento alla schermata corrente. */
if( event ) {
switch( view ) {
case VIEW_MAIN:
view_Main( event );
break;
case VIEW_SETUP:
view_Setup( event );
break;
case VIEW_COUNTERS:
view_Counters( event );
break;
case VIEW_DATA:
view_Data( event );
break;
case VIEW_SETPSC:
view_SetPSC( event );
break;
}
}
}

esempio il numero appena premuto sul


tastierino numerico. Per fare ci, viene
utilizzata la funzione di libreria Lcd_Custom_Chr_Cp() che scrive il carattere passato come argomento alla posizione corrente del cursore sul display. Per modificare
la posizione del cursore utilizziamo un
trucco. Per esempio, mediante listruzione
myLcd_Custom_Out( 2, 10, ); non viene
scritta alcuna stringa sul display, in quanto passiamo una stringa nulla, ma otte48

niamo il risultato di forzare la posizione


del cursore alla posizione (2,10), cio al 10
carattere della seconda riga. proprio in
questa posizione che verr visualizzato il
carattere passato come argomento alla
funzione Lcd_Custom_Chr_Cp().

Smartcard
C poco da dire a proposito della gestione della smartcard. Tutte le operazioni (reset, inserimento del PSC, modifica

struct {
char name[17];
char credit[7];
char null[7];
unsigned short chk;
} mcbuf;

del PSC, lettura/scrittura della MM, ecc)


vengono fatte richiamando le funzioni
presenti nel modulo SLE4442.c di cui
abbiamo scritto in precedenza. Qui vale la
pena notare che linserimento/estrazione
di una carta allinterno della fessura viene
rilevata mediante la doppia macro:
#define MC_SW
PORTA.F0
#define MC_INSERTED() (MC_SW)
La prima si limita a definire il pin (RA0) a
cui collegato lo switch, normalmente
chiuso dello zoccolo ISO7816 della smartcard; la seconda una macro che pu essere usata nelle espressioni C laddove
serva sapere se una carta sia effettivamente inserita nella fessura del connettore.

Tastierino 4x4
Come gi detto nella puntata precedente,
il tastierino 4x4 viene gestito mediante
multiplazione delle righe: in un determinato
istante si abilita una sola riga e si leggono
i tasti premuti su quella riga, per passare
dopo a quella successiva. Quando si ha a
che fare con tasti meccanici, necessario
prendere delle precauzioni contro gli effetti
del rimbalzo. Tale effetto si verifica nel
momento della pressione di un tasto momentaneo (push-button) che provoca delle oscillazioni meccaniche, le quali si traducono in oscillazioni sulla tensione che
misura lo stato del tasto. Queste oscillazioni scompaiono dopo un certo tempo
che dipende dalle caratteristiche del tasto
e possono indurre in errore il microcontrollore che potrebbe interpretarle come
numerose pressioni piuttosto che una sola. Una tecnica semplice di anti-rimbalzo,
che permette di evitare il rilevamento di
pressioni non volute, quella di mascherare la lettura del tasto per un certo periodo di tempo (maggiore del periodo di

42-53_Smartcard_FE 04/12/09 15.10 Pagina 49

Fosc/4 (dove Fosc la frequenza del


quarzo esterno, nel nostro caso 20 MHz):

LISTATO 6
Struttura della funzione view_Data()
void
view_Data( unsigned short event )
{
static unsigned short idx;
switch( event ) {
case EVENT_DRAW:
/* Scrivi nome sulla prima riga. */
Lcd_Custom_Out( 1, 1, mcbuf.name );
/* Scrivi credito sulla seconda riga. */
myLcd_Custom_Out( 2, 1, str_credit );
Lcd_Custom_Out( 2, 10, mcbuf.credit );
flags.creditmod = 0;
flags.creditmodend = 0;
break;
case EVENT_KEY0:
...
case EVENT_KEY9:
...
break;
case EVENT_KEYE:
if( flags.creditmod || flags.creditmodend )
/* Annullamento delloperazione di modifica
credito. */
flags.redraw = 1;
break;
case EVENT_KEYF:
...
break;
case EVENT_MCEXTRACTED:
LED_RED_OFF();
LED_GREEN_OFF();
flags.redraw = 1;
flags.creditmod = 0;
view = VIEW_MAIN;
break;
}
}

rimbalzo) subito dopo aver individuato


una pressione. Questa tecnica stata
implementata nel nostro firmware mediante la periferica interna al microcontrollore denominata Timer1. Esso un timer a 16 bit che incrementa di una unit il
suo valore a ogni colpo di clock. Noi lo abbiamo configurato in modo che faccia
scattare un interrupt ogni 13 ms circa.
Nel listato 2 si trovano le parti di codice
relative alla gestione del tastierino, compresa lISR (Interrupt Service Routine),
cio la routine che viene automaticamente richiamata dal microcontrollore in

presenza di un interrupt da servire. Nella


funzione principale main() la periferica Timer1 viene configurata in modalit timer,
cio il registro TMR1 a 16 bit viene incrementato automaticamente a ogni colpo di clock. Inoltre viene abilitato anche
linterrupt relativo alloverflow del registro TMR1, che si verifica quando il registro passa dal valore 0xFFFF a 0x0000.
Ogni quanto tempo scatta linterrupt? Il
calcolo abbastanza semplice se consideriamo che ci vogliono 65536 colpi di
clock per arrivare alloverflow di un registro a 16 bit e che un colpo di clock dura

65536 * 4 / 20000000 ~= 13ms


A ogni chiamata dellISR, quindi ogni 13
ms circa, la variabile port indica la pressione dei quattro tasti della riga selezionata. La complessit derivante da una
prima lettura dellistruzione:
port = ~((PORTB>>4)|0xF0);
pu essere allontanata notando che le
colonne sono collegate ai pin RB4-RB7
(questo spiega lo shift a destra di quattro
posizioni e lOR con la costante esadecimale F0) e che un tasto premuto provoca
un livello basso sul pin corrispondente (e
questo spiega la negazione). Per esempio,
se dopo lesecuzione di questa istruzione,
la variabile port pari a 0x06, i tasti collegati su RB5 e RB6 risultano premuti.
Mediante la variabile tmr_isr, il controllo sui
tasti premuti viene ritardato per annullare
leffetto del rimbalzo. Normalmente tale variabile nulla e quindi viene eseguito il
controllo dei tasti premuti a ogni interrupt. Non appena un tasto viene premuto,
esso viene salvato nella variabile key e la
variabile tmr_isr viene posta a 20, in modo da ritardare la successiva lettura dei tasti dopo che le oscillazioni del rimbalzo si
esauriscono.
Il programma principale si limiter a leggere la variabile key: se essa pari a
0xFF, nessun tasto risulta premuto, altrimenti essa conterr il valore del tasto
premuto. Tale valore viene ottenuto leggendo semplicemente larray a doppio
indice keytable[ ][ ] che indica la disposizione dei tasti sul tastierino, la loro interconnessione in righe e colonne e con i
pin del microcontrollore. Se utilizzate un
diverso tastierino molto probabile che
dobbiate modificare questo array.
Le variabili row e rowmask rappresentano
la riga selezionata: la prima indica il numero di riga (a partire da 0) e viene usata
come primo indice dellarray keytable; la
seconda indica il bit associato alla riga e
viene utilizzato per attivare il pin corrispondente.
Lultima istruzione dellISR importante, perch azzera il flag dellinterrupt relativo alla periferica Timer1, comunican49

42-53_Smartcard_FE 04/12/09 15.10 Pagina 50

progettare & costruire

progettare & costruire

LISTATO 7
Gestione della pressione dei tasti numerici e del tasto F in view_Data()
case EVENT_KEY0:
...
case EVENT_KEY9:
if( flags.creditmod ) {
/* stato premuto un tasto numerico. */
strbuf[idx] = 0 + event-EVENT_KEY0;
Lcd_Custom_Chr_Cp( strbuf[idx] );
/* Passa alla cifra successiva. */
if( ++idx==3 )
++idx;
/* Salta la virgola. */
/* Sposta il cursore. */
Lcd_Custom_Out( 2, 10+idx, );
if( idx==6 ) {
flags.creditmod = 0;
flags.creditmodend = 1;
}
}
break;
case EVENT_KEYF:
if( flags.creditmodend ) {
/* Conferma del nuovo credito appena scritto. */
memcpy( mcbuf.credit, strbuf, sizeof(mcbuf.credit) );
set_credit();
flags.creditmodend = 0;
flags.redraw = 1;
} else if( !flags.creditmod ) {
/* Lutente vuole modificare il credito. */
flags.creditmod = 1;
flags.creditmodend = 0;
idx = 0;
memcpy( strbuf, mcbuf.credit, sizeof(mcbuf.credit) );
/* Visualizza il cursore lampeggiante sulla prima cifra. */
Lcd_Custom_Out( 2, 10, );
Lcd_Custom_Cmd(LCD_BLINK_CURSOR_ON);
LED_GREEN_OFF();
LED_RED_OFF();
}
break;

do alla logica del microcontrollore che


levento stato servito e lesecuzione
del normale programma pu continuare (senza questa istruzione, si entrerebbe
continuamente nellISR).

EEPROM
Il PIC ha una EEPROM interna che abbiamo utilizzato per memorizzare alcune impostazioni non volatili, in modo che
non vengano perse dopo uno spegnimento. Allaccensione, durante la fase
di inizializzazione, queste impostazioni
vengono lette dalla EEPROM, cos come mostrato nel listato 3.
50

Tutti i dati memorizzati in EEPROM sono


organizzati in una struct dal nome eebuf.
Allinterno troviamo: una firma, il PSC
da utilizzare per le operazioni di scrittura nella smartcard e alcuni contatori a fini statistici. Vale la pena spendere alcune parole riguardo la firma (membro
sign della struttura). Subito dopo la programmazione del microcontrollore, la
EEPROM interna al suo valore di default, cio tutti i byte sono 0xFF, quindi
non affidabile. In queste condizioni
necessario scrivere dei valori di default.
La firma viene utilizzata proprio per distinguere una EEPROM vergine (proba-

bilmente subito dopo la programmazione del microcontrollore) o corrotta da


una gi inizializzata. Abbiamo utilizzato
come firma la sequenza di quattro caratteri (pi il carattere nullo che identifica la fine della stringa in C): SALV.
Subito dopo aver letto i parametri dalla
EEPROM, viene controllato che la firma
coincida con SALV: se cos, i dati
appena letti possono essere ritenuti corretti, altrimenti vengono scritti dei valori di default (PSC=0xFFFFFF e i contatori
tutti azzerati). Alla fine di questa operazione, viene settato il flag setpsc che
indica che necessario chiedere subito
allutente il valore del PSC da utilizzare,
visto che non ne conosciamo uno attendibile ( grazie a questo accorgimento che, alla prima accensione del
lettore, viene visualizzata la schermata
per limpostazione del PSC).

Routine principale
Il ciclo principale del programma racchiuso allinterno di un ciclo infinito while(1) ed mostrato nel listato 4.
Esso stato organizzato a eventi: scrittura
del display, inserimento o estrazione della smartcard, pressione di un tasto. A seconda della schermata in cui ci troviamo
(variabile view), viene richiamata una funzione diversa, passando come parametro
levento. Per esempio, trovandoci nella
schermata principale (view=VIEW_MAIN)
e premendo il tasto 3, verr richiamata
la funzione view_Main(), passando come
parametro il valore EVENT_KEY3. Come si
pu vedere, questa una tecnica molto efficace per gestire diverse schermate,
ognuna delle quali ha un compito diverso.
La complessit di ogni singola schermata
ben separata dalle altre ed pi facilmente manutenibile.
A questo punto dovremmo descrivere il
funzionamento delle funzioni relative alle
singole schermate: view_Main() che gestisce la schermata principale; view_Setup() che gestisce la schermata di setup;
view_Counters() che gestisce la schermata dei contatori; view_Data() che gestisce la schermata dei dati memorizzati
nella smartcard; view_SetPSC() che gestisce la schermata per modificare il PSC.
Per evitare di appesantire troppo la di scussione, ci limitiamo a illustrare il codice
relativo alla schermata dei dati.

42-53_Smartcard_FE 04/12/09 15.10 Pagina 51

LISTATO 8
Funzione set_credit()
void
set_credit( void )
{
/* Lettura dellError Counter. */
if( mc_readEC()!=0x07 ) {
LCD_ERRMESSAGE( str_cardblocked1, str_cardblocked2 );
return;
}
/* Azzera un bit dellError Counter. */
mc_writes( 00, 0x03 );
/* Confronta i 3 byte del PSC. */
mc_compare( 01, eebuf.psc[0] );
mc_compare( 02, eebuf.psc[1] );
mc_compare( 03, eebuf.psc[2] );
mc_writes( 00, 07 );
/* Ricarica lError Counter. */
if( mc_readEC()!=0x07 ) {
/* Il PSC molto probabilmente errato. */
LCD_ERRMESSAGE( str_updateerr1, str_updateerr2 );
set_counter( COUNTER_WRITEBAD, eebuf.cnt_writebad+1 );
return;
}
/* Calcola la nuova checksum. */
mcbuf.chk = checksum( &mcbuf, sizeof(mcbuf)-1 );
/* Scrive il credito. */
mc_writem( MCADDR_CREDIT, sizeof(mcbuf.credit), &(mcbuf.credit) );
/* Scrive la checksum. */
mc_writem( MCADDR_CHK, sizeof(mcbuf.chk), &(mcbuf.chk) );
/* Scrittura plausibilmente andata a buon fine. Per maggiore sicurezza,
* rileggiamo il contenuto della smartcard. */
if( read_data(&tmpbuf)!=OK ) {
/* Checksum errata, scrittura non andata a buon fine.
*/
LCD_ERRMESSAGE( str_updateerr1, str_updateerr2 );
set_counter( COUNTER_WRITEBAD, eebuf.cnt_writebad+1 );
return;
}
if( memcmp(&tmpbuf,&mcbuf,sizeof(mcbuf)) ) {
/* Il buffer letto non corrisponde con quello che volevamo scrivere.
* Scrittura errata. */
LCD_ERRMESSAGE( str_updateerr1, str_updateerr2 );
set_counter( COUNTER_WRITEBAD, eebuf.cnt_writebad+1 );
return;
}
/* Se siamo qui, la scrittura avvenuta correttamente. */
set_counter( COUNTER_WRITEOK, eebuf.cnt_writeok+1 );
LED_GREEN_ON();

view_Data()
Dalla schermata principale, visualizzata
subito dopo laccensione, si passa alla
schermata dei dati non appena viene inserita una smartcard valida nel lettore.
Per verificare la validit della smartcard inserita, vengono eseguiti alcuni controlli
sullATR (che deve corrispondere allATR
di una SLE4442) e sui dati memorizzati nella Main Memory della smartcard. Si veda
il listato 5 per la struttura utilizzata per memorizzare i dati nella smartcard. Molto
semplicemente, si tratta di una stringa di
17 caratteri per il nome (16 pi il carattere nullo di fine stringa) e di 7 caratteri per
il credito. Il credito permette di memorizzare un numero con tre cifre per la parte intera, una virgola e due cifre per la parte decimale, oltre al solito terminatore nullo.
Ci sono 7 byte non utilizzati e infine una
checksum, cio un byte che sempre
pari allo XOR di tutti i byte precedenti
della struttura. In tutto sono 32 byte.
Allinserimento della smartcard, la routine
view_Main() viene richiamata con levento
EVENT_MCINSERTED. Dopo il controllo
dellATR, vengono letti i dati dalla smartcard
e controllata la checksum. Se questa
valida, si passa alla schermata dei dati impostando la variabile view al valore
VIEW_DATA, in modo che tutti gli eventi
successivi vengano gestiti proprio dalla
funzione view_Data(), la cui struttura mostrata nel listato 6. Levento EVENT_DRAW
viene eseguito una volta quando si passa
nella nuova schermata. Qui ci limitiamo a
scrivere i dati sul display (nome e credito
memorizzato nella smartcard) e ad azzerare
due flag utilizzati successivamente.
Levento EVENT_MCEXTRACTED viene
eseguito quando la smartcard estratta
dal lettore. In questo caso ci limitiamo a
spegnere i LED eventualmente accesi e a
tor nare alla schermata principale
VIEW_MAIN. Si noti lattivazione del flag
redraw che andr a forzare il disegno
della nuova schermata. In questa schermata possibile premere il tasto F per
modificare il credito memorizzato nella
smartcard e il tasto E per annullare loperazione di modifica. Levento riguardate la pressione del tasto E viene gestito quando siamo durante la modifica del
credito (flag creditmod attivo), oppure
quando la modifica del credito terminata
e il lettore si aspetta la conferma (flag
51

42-53_Smartcard_FE 04/12/09 15.10 Pagina 52

progettare & costruire

progettare & costruire


creditmodend attivo). In entrambi i casi,
viene attivato il flag redraw che andr a ridisegnare tutta la schermata, annullando
loperazione di modifica.
Analizziamo, ora, la gestione dei due eventi pi complicati: la pressione di uno dei tasti numerici e la pressione del tasto F (si
veda il listato 7). La pressione dei tasti numerici gestita soltanto quando siamo
nella fase di modifica del credito (flag creditmod attivo), altrimenti tali eventi vengono
ignorati. Il tasto numerico premuto viene
convertito in carattere dallistruzione:
strbuf[idx] = 0 + eventEVENT_KEY0;
e memorizzato nellarray strbuf[] alla posizione idx (variabile dichiarata statica allinterno di view_Data() in modo che non perda il suo valore ritornando nella funzione).
Questo carattere viene successivamente visualizzato a display e la variabile idx viene
incrementata per ospitare il successivo
carattere, stando attenti a saltare la virgola (in posizione 3), che non modificabile.
Infine viene spostato il cursore sulla posizione della successiva cifra da modificare
e si controlla se stato modificato lultimo
numero (siamo arrivati alla posizione 6).
In caso affermativo, viene azzerato il flag di
modifica del credito e impostato il flag di
modifica del credito terminata.
Studiamo ora levento relativo alla pressione del tasto F che si pu dividere in due
parti: la pressione del tasto F, quando
lutente ha appena terminato la digitazione del nuovo credito (primo ramo dellif), e la pressione del tasto F, quando non
siamo ancora entrati nella modalit di
modifica del credito (subito dopo linserimento della smartcard).
Il primo caso relativo alla conferma del
nuovo valore appena digitato: viene modificato il credito in RAM (struttura mcbuf),
copiando il nuovo valore dalla stringa
strbuf[ ] ed eseguita la funzione set_credit() che si preoccuper di scrivere questo
nuovo valore nella smartcard.
Il secondo caso riguarda lattivazione
della modalit di modifica del credito visualizzato. Oltre a impostare correttamente i due flag di cui abbiamo ampiamente parlato e a inizializzare la variabile
idx, il credito memorizzato nella smartcard
viene copiato nellarray strbuf[ ] che rap52

presenter il nuovo valore (non possiamo


usare mcbuf.credit poich lutente potrebbe annullare loperazione). Viene inoltre impostata la posizione del cursore in
modo che corrisponda alla prima cifra
del credito e attivata la visualizzazione
grafica del cursore lampeggiante a display.
Infine, vengono spenti i due LED.
La relativa semplicit della funzione
view_Data() non deve ingannare: tutto il lavoro sporco della scrittura del nuovo
credito nella smartcard effettuato dalla
funzione set_credit(), mostrata nel listato
8. Per modificare il credito memorizzato
nella smartcard necessario scrivere nella Main Memory, quindi necessario inserire il PSC corretto. Per farlo, viene subito controllato che lError Counter sia
carico, cio si abbiano ancora tre gettoni disponibili (avremmo potuto tentare
linserimento del PSC anche con un solo
gettone disponibile, ma, in caso di ulteriore fallimento, avremmo ottenuto una
carta completamente bloccata). Successivamente viene speso un gettone, inserito il PSC (memorizzato nella EEPROM
del microcontrollore) e ricaricato lError
Counter. A questo punto possibile stabilire se loperazione di inserimento del
PSC andata a buon fine, verificando
che lError Counter sia nuovamente carico. Dopo aver calcolato la nuova checksum, viene scritto il nuovo credito e la
nuova checksum nella Main Memory della smartcard. Per ulteriore conferma, andiamo a leggere i dati dalla smartcard,
controllando nuovamente la correttezza
della checksum e confrontando i dati appena letti con quelli che volevamo scrivere.
Se tutto OK, viene acceso il LED verde.
Se la funzione viene interrotta per un errore, viene acceso il LED rosso. Si noti la
chiamata della funzione set_counter() che
va a memorizzare, nella EEPROM del microcontrollore, un nuovo valore di uno
dei quattro contatori, individuati simbolicamente da COUNTER_READOK, COUNTER_READBAD, COUNTER_WRITEOK,
COUNTER_WRITEBAD.

CONCLUSIONI
Il lettore di smartcard stand-alone descritto in questi due articoli pu essere
realizzato da chiunque in quanto i componenti utilizzati sono molto comuni e le
informazioni necessarie sono tutte presenti

PER approfondire...
Sulla pagine web relative agli articoli
trovere i datasheet dei principali
componenti utilizzati nel progetto (il
chip della smartcard SLE4442, il
microcontrollore PIC 16F876A).
La lettura del tutorial sulle smartcard
gi pubblicato su Fare Elettronica n.
227 e n. 234 (maggio e dicembre 2004)
di vitale importanza per conoscere il
mondo delle smartcard, le SLE4442 in
particolare e il lettore UniReader.

negli articoli e sulle pagine web relative agli


articoli. Oltre a risolvere un problema
contingente relativo allapplicazione di fidelizzazione, nella descrizione, soprattutto del codice sorgente, abbiamo cercato di mostrare le linee guida generali per
poter implementare un firmware complesso che deve eseguire numerosi compiti (lettura/scrittura dei dati dalla smartcard, gestione di schermate su display, lettura di una tastiera, ecc).
I pi intraprendenti potranno divertirsi, oltre a realizzare lo stesso prototipo che
abbiamo realizzato noi, a modificare il codice sorgente per personalizzarlo e/o ampliarne le funzionalit. Una proposta interessante pu essere quella di far inizializzare una smartcard vergine direttamente dal nostro lettore stand-alone piuttosto
che tramite il software su PC e lUniReader.
Per fare ci, necessario creare una nuova schermata di inizializzazione della smartcard dove sar necessario modificare il
PSC (e quindi sar necessario conoscere
il PSC della carta vergine, magari chiedendolo direttamente allutente) e scrivere dei dati di default. La parte pi complicata la scrittura del nome alfanumerico
che deve avvenire tramite un tastierino
esadecimale numerico. Una possibile soluzione quella di utilizzare il tastierino
alla maniera dei telefonini: ogni tasto numerico rappresenta, oltre alla cifra, anche 3 o 4 lettere alfabetiche. La pressione
ripetuta a tempi stretti del tasto permette
di scegliere la lettera o la cifra, prima di passare alla posizione successiva. q
CODICE MIP 2757067

CODICE MIP 2778651

42-53_Smartcard_FE 04/12/09 15.10 Pagina 53

54-65_PrimiPassi_FE 04/12/09 15.29 Pagina 54

primi passi

primi passi

di ANTONIO GIANNICO

I Resistori

ELETTRONICI

I resistori, chiamati spesso

e impropriamente resistenze,
sono componenti fondamentali
nella realizzazione di qualunque
circuito elettronico.
Sono prodotti in unampia
variet di forme, di valori
ohmici e di potenze.
Vediamo quali sono gli aspetti
tecnologici che li caratterizzano
e li diversificano e quali
sono le codifiche impiegate
per identificarli tecnicamente

resistori reali, chiamati spesso e impropriamente resistenze (pi propriamente il resistore loggetto fisico,
mentre la resistenza la grandezza fisica
che ne quantifica il valore ohmico), sono
caratterizzati dal valore della loro resistenza elettrica espressa in ohm (simbolo ) e dalla massima potenza (energia per
unit di tempo) espressa in watt che sono in grado di dissipare senza distruggersi
o deteriorarsi per surriscaldamento. Sebbene esistano moltissimi tipi di resistori, in
questo articolo ci occuperemo prevalentemente di quelli che vengono impiegati in
campo elettronico.

ASPETTI FISICI E TECNOLOGICI


La resistenza di un filo conduttore data
dalla seguente semplice relazione:

Figura 1: struttura fisica di una resistenza bobinata (A), di una resistenza a strato metallico (B), a strato di carbone (C)
e aspetto esterno di alcune resistenze reali (E) [1].

54

dove l la sua lunghezza, S la sezione e


la resistivit del materiale. Essa vale
alla temperatura alla quale riferita la
resistenza specifica (resistivit); questultima infatti funzione della temperatura. Tale dipendenza valutabile mediante il coefficiente di temperatura lineare e pu essere descritta attraverso
la seguente relazione linearizzata:

dove T1 il coefficiente di temperatura alla temperatura T1 (la relazione pu essere


considerata valida in un intorno abbastanza ampio di temperature intorno a T1).
Queste semplici relazioni sono sufficienti
per definire quali siano i parametri fisici
che incidono sul valore ohmico offerto ai
suoi capi da un resistore. Ci comprensibile dallanalisi della figura 1 in cui riportata la struttura fisica rispettivamente di
una resistenza bobinata (in cui lelemento
resistivo costituito da un filo avvolto intorno a un cilindro ceramico), di una resistenza a strato metallico (in cui lelemento
resistivo unelica metallica ancora una volta avvolta intorno a un nucleo cilindrico ceramico) e di una resistenza a strato di carbone (in cui vi unelica di carbone che si
sviluppa intorno al solito corpo cilindrico ceramico). A parte il caso della resistenza bobinata quindi, lelemento resistivo realizzato depositando sulla superficie del cilindro uno strato di lega metallica, ossidi
metallici o carbone appunto, successivamente inciso opportunamente al laser,
con andamento elicoidale, in modo da ottenere il valore ohmico desiderato.
Il corpo della resistenza cos ottenuto rivestito di uno strato isolante simile a una ver-

54-65_PrimiPassi_FE 04/12/09 15.29 Pagina 55

nice su cui sono serigrafate le fasce colorate


che ne codificano il valore ohmico nominale
(codice dei colori). In commercio esistono resistenze di questo tipo con dimensioni tali da
rispondere, in termini di potenza, allo standard 1/8W, 1/4W, 1/3W, 1/2W, 1W e 2W,
con tolleranze sul valore ohmico tipicamente pari a 1%, 2%, 5%, 10% e 20%.
Le resistenze bobinate, diversamente dalle altre, sono in realt utilizzate per potenze
pi elevate di 2W. Le resistenze a strato
metallico sono invece impiegate per ottenere valori ohmici di elevata precisione:
al posto dello strato di carbone vi lo
strato di metallo lavorato a spirale. La
struttura fisica descritta conferisce in realt al resistore una componente induttiva, ininfluente in applicazioni a bassa frequenza, ma di disturbo a frequenze elevate. Per queste applicazioni si preferiscono resistori antinduttivi, realizzati comprimendo una miscela di polveri composite
e resine, a formare un cilindro con dimensioni simili ai resistori a strato oppure
i resistori di tipo SMD. importante sottolineare come per essere stabile nel suo
valore ohmico, il componente non debba
surriscaldarsi; inoltre il valore ohmico del
resistore pu essere pi o meno insensibile alla variazione della temperatura anche
in funzione del materiale di cui fatto.

Un parametro fondamentale: la potenza


Le resistenze sono caratterizzate non solo dal valore ohmico espresso in ohm ma
anche da un valore di potenza espressa in
watt. Quando si disegna un circuito elettrico si indica vicino a ogni resistenza il relativo valore ohmico, tuttavia nel momento in cui si realizza fisicamente il circuito
non sufficiente conoscere il valore ohmico della resistenza. Infatti, una cosa
impiegarla perch sia attraversata da una
corrente pari a 100 mA, cosa ben diversa
impiegarla per una corrente pari a 10 A.
Oltre al valore ohmico, il parametro fondamentale che determina il campo di impiego del resistore quindi la potenza
massima (espressa in watt) che esso in
grado di dissipare senza che si riscaldi a tal
punto da distruggersi o danneggiarsi. Le
resistenze elettroniche pi piccoli in termini
di potenza (1/8, 1/4,1/2 W) hanno la tipica forma di piccoli cilindri provvisti di sot-

tili reofori terminali (figura 2) e sono realizzate generalmente in grafite. Resistenze analoghe solo leggermente pi grandi
sono realizzate per potenze pari a 1 o
2W. Resistenze di potenza ancora pi
elevata (potenze tipicamente pari a 3-5-710-15-20-30 W) impiegano invece nichelcromo e presentano un tipico corpo rettangolare in ceramica (figura 3 e figura 5).
Mentre per le prime il valore ohmico riportato sul corpo del componente attraverso una speciale codifica che prende il
nome di codice dei colori, per le ultime, il valore ohmico, insieme al valore di
potenza massima generalmente stampato sul corpo in forma numerica esplicita. Le dimensioni della resistenza sono
in ogni caso fisicamente proporzionali alla potenza dissipabile (le dimensioni fisiche
del resistore tipicamente crescono al crescere della potenza, ma non al crescere
del valore ohmico). In tabella 1 sono riportate le dimensioni tipiche delle resistenze ohmiche impiegate in elettronica
per potenze pari rispettivamente a 1/8W,
1/4W, 1W e 2W.
Fondamentalmente, da un punto di vista di
tolleranza, ci sono due tipi di resistenze a
basso wattaggio per circuiti elettronici:
resistenze a precisione standard e resistenze comunemente dette di precisione. La differenza sta nella diversa tolleranza del valore nominale; per il primo tipo
tale valore pu essere pari a 5%, 10% e
20%, mentre per il secondo tipo il valore
inferiore o uguale a 2%. Normalmente
si adoperando le normalissime resistenze
a precisione standard e solo in casi specifici, come nei circuiti di misura, si impiegano resistenze di precisione. Per esempio, una resistenza con valore nominale pari a 82000 e tolleranza del 5% presenta
un valore reale che pu variare tra
82000*0,95 = 77900 e 82000*1,05 =
86100 . Al contrario la stessa resistenza
con tolleranza dell1% presenta un valore
reale che pu variare tra 82000*0,99 =
81180 e 82000*1,01 = 82820 .

I valori ohmici standard dei resistori


elettronici
I valori ohmici nominali dei resistori sono
divisi in sei serie standard, ciascuna caratterizzata da una precisa tolleranza (ta-

Figura 2: resistori da 1/8 di watt a ossido di metallo con


terminali assiali a saldare [2].

Figura 3: le resistenze da 1/8-1/4-1/2-1 watt hanno forma


cilindrica. Il valore ohmico si ricava dalle fasce colorate incise
sul corpo. Le resistenze da 3-5-7-10-15 watt hanno
generalmente forma rettangolare in ceramica con sopra
stampato il valore ohmico e la potenza in watt.

Tabella 1 - Relazione Dimensioni-Potenza per le


resistenze elettroniche da 1/8W a 2W

POTENZA MAX
(W)
1/8
1/4
1
2

SPESSORE
(mm)
2
2
3.5
5

LUNGHEZZA
(mm)
3
6
12
15

bella 2). Le serie utilizzate pi comunemente sono la E12 e la E24 (tolleranze pari rispettivamente a 10% e 5%). Ormai sono invece raramente utilizzate le resistenze della serie E6 (tolleranza 20%)
che stanno sostanzialmente scomparendo, mentre le resistenze delle serie
E48, E96 ed E192, avendo una tolleranza inferiore al 2%, sono impiegate in applicazioni di precisione (e risultano ovviamente pi costose). Quando si dimensiona un circuito elettronico si eseguono dei calcoli che portano a definire i
valori e le caratteristiche tecniche di ciascun componente e tra queste quelle dei
resistori. I valori risultanti dai calcoli, tuttavia, non sono mai quelli effettivamente
impiegati nel circuito fisico; infatti in commercio esistono solo resistenze di valore
standard suddivise per tolleranza nelle
serie precedentemente elencate. Al dimensionamento teorico di un circuito segue, pertanto, in fase di realizzazione,
55

54-65_PrimiPassi_FE 04/12/09 15.29 Pagina 56

primi passi

primi passi

Codifica delle resistenze elettroniche:


il codice dei colori

Figura 4: valori nominali della sequenza di resistenze standard E12 (tolleranza 10%).

portata la tolleranza specifica di ciascuna


serie. La serie E192 diversamente dalle altre usata per resistori con diverse tolleranze (0,5%, 0,25% e 0,1%). I valori delle singole serie sono ottenuti dalla seguente progressione geometrica:

Figura 5: esempi di resistenze di potenza e relativa codifica


del valore ohmico.

Dove r 0 la ragione e il fattore a pari a 1. La ragione e il termine N esimo risultano (n = 0 (k-1)) rispettivamente:

Il valore ohmico delle resistenze pi comunemente impiegate in elettronica non


stampato esplicitamente sul corpo del
componente, bens serigrafato su di
esso mediante una serie di fasce colorate che hanno un preciso significato (codice
dei colori). Sul corpo del resistore sono riportate 4 o 5 bande colorate che lette in
un determinato modo ne dichiarano il valore nominale. Le tabelle con i codici dei
colori sono due, in quanto le normali resistenza hanno 4 anelli colorati, mentre le
resistenze di precisione ne hanno 5 o 6.
Per comprendere tale codifica necessario far riferimento, rispettivamente, alla codifica dei Valori Numerici della 1a e 2a
banda (anche 3a nel caso di resistenze di
precisione; tabella 4), alla Codifica del
Moltiplicatore (3 a banda nelle resistenze
tradizionali, 4a in quelle di precisione; tabella 5), a quella della Tolleranza (4a
banda nelle resistenze tradizionali, 5 a in
quelle di precisione; tabella 6) ed eventualmente a quella del Coefficiente di
temperatura (tabella 7) alla cui analisi
dettagliata si rimanda. I codici a colori
per i resistori fissi sono definiti dalla EIA
(Tabella codici colori EIA-RS-279).

Codifica a quattro bande

Figura 6: simbolo di un
resistore variabile (trimmer).

limpiego delle resistenze standard che


presentano i valori ohmici pi prossimi
a quelli derivanti dai calcoli; in alternativa
possono essere impiegati serie o paralleli
di resistenze standard.
La normativa internazionale IEC 60063
definisce i valori standardizzati delle resistenze; il numero di valori disponibili aumentano con la precisione. Ad esempio,
per la serie E6 (tolleranza 20%) sono consentiti sei valori: 10, 15, 22, 33, 47, 68 e
relativi multipli di 10 (ad esempio 0,47 ,
4,7 , 47 , 470 , 4,7 k, 47 k, 470
k e cos via). In funzione della tolleranza,
la norma IEC 60063 definisce i valori standard riportati in tabella 3. In parentesi ri56

Il valore k varia a seconda della serie: per


la E6 (20%) k=6, per la E12 (10%) k=12,
per E24 (5%) k= 24, per E48 (2%) k=48,
per E96 (1%) k=96 mentre per E192 (0,5%,
0,25% e 0,1%) k=192. Questo spiega anche il motivo del numero che segue la lettera E nella definizione dei valori nominali
standard. La serie E6, per esempio, caratterizzata da k=6 e quindi da 6 possibili valori numerici (le resistenze che ne fanno parte presentano questi valori ohmici e
i rispettivi multipli), la serie E12 da 12 possibili valori e cos via (tabella 3).
Tabella 2 - Classificazione delle resistenze in funzione
delle tolleranze [3], [4]

E6

E12

E24

E48

E96

E192

20% 10 % 5%

2%

1% 0.5 %

Soltanto le resistenze pi economiche (tolleranza 20%) hanno tre bande di colore; le altre hanno sempre una quarta banda in colore
argento o oro, che indica il valore della tolleranza: argento +/- 10%; oro +/- 5%.
Poich questi colori sono sempre presenti
nellultima fascia, ovvio che per leggere il valore di una resistenza si inizier sempre dal lato opposto alloro o allargento. Vediamo
ora la corrispondenza colore-cifra:

prime due fasce: la regola fondamentale su cui si basa il codice dei colori
quella di far corrispondere a ciascuna cifra, che compone il valore di una resistenza, un preciso colore (tabella 4).
La prima fascia colorata individua quindi la prima cifra del valore numerico: se
questa fascia di colore marrone la prima cifra 1, se rossa la cifra a 2 e
cos via fino alla cifra 9 se il colore il
bianco. Cosa analoga pu essere ripetuta
per la seconda cifra;

CODICE MIP 2767325

pubblicit_fe 04/12/09 20.54 Pagina 8

54-65_PrimiPassi_FE 04/12/09 15.29 Pagina 58

primi passi

primi passi

Tabella 4 Codifica dei Valori Numerici 1a e 2a banda (anche


3a nel caso di resistenze di precisione)

Tabella 3 - Valori nominali standard delle resistenze secondo la normativa internazionale IEC 60063 [3]

E6 (20%)

10

15

22

33

47

68

E12 (10%)

10

12

15

18

22

27

33

39

47

56

68

82

E24 (5%)

10

11

12

13

15

16

18

20

22

24

27

30

33

36

39

43

47

51

56

62

68

75

82

91

E48 (2%)

100

105

110 115 121 127 133 140

147

154

178

187

196 205 215 226 237 249

261

316

332

348 365 383 402 422 442

562

590

E96 (1%)

100

Nero

Marrone

Rosso

Arancio

162 169

Giallo

274

287 301

Verde

464

487

511 536

Blu

619 649 681 715 750 787

825

866

909 953

Viola

102

105 107 110 113 115 118

121

124

127 130

Grigio

133

137

140 143 147 150 154 158

162

165

169 174

Bianco

178

182

187 191 196 200 205 210

215

221

226 232

237

243

249 255 261 267 274 280

287

294

301 309

316

324

332 340 348 357 365 374

383

392

402 412

422

432

442 453 464 475 487 499

511

523

536 549

562

576

590 604 619 634 649 665

681

698

715 732

Nero

750

768

787 806 825 845 866 887

909

931

953 976

Marrone

10

E192 (0,5%,0,25%,0,1%) 100

101

102 104 105 106 107 109

110

111

113 114

Rosso

100

130 132

Arancio

1K

Giallo

10K

Verde

100K

115

117

118 120 121 123 124 126

127

129

133

135

137 138 140 142 143 145

147

149

150 152

154

156

158 160 162 164 165 167

169

172

174 176

178

180

182 184 187 189 191 193

196

198

200 203

205

208

210 213 215 218 221 223

226

229

232 234

237

240

243 246 249 252 255 258

261

264

267 271

274

277

280 284 287 291 294 298

301

305

309 312

316

320

324 328 332 336 340 344

348

352

357 361

365

370

374 379 383 388 392 397

402

407

412 417

422

427

432 437 442 448 453 459

464

470

475 481

487

493

499 505 511 517 523 530

536

542

562

569

576 583 590 597 604 612

619

649

657

665 673 681 690 698 706

750

759

866

876

Tabella 5 Codifica del Moltiplicatore (3a banda nelle


resistenze tradizionali, 4a in quelle di precisione)

Argento

0,01

Oro

0,1

Blu

1M

Viola

10M

Tabella 6 Codifica della Tolleranza (4a banda nelle resistenze


tradizionali, 5a in quelle di precisione)

Argento

10%

Oro

5%

549 556

Marrone

1%

626

634 642

Rosso

2%

715

723

732 741

Verde

0,5%

768 777 787 796 806 816

825

835

845 856

Blu

0,25%

887 898 909 919 931 942

953

965

976 988

Viola

0,1%

Esempi di codifica a quattro bande


terza fascia: la terza fascia colorata definisce il numero di zeri che necessario aggiungere al valore ottenuto componendo in sequenza le prime due cifre
(tabella 5). Essa individua, quindi, un
fattore moltiplicativo potenza di dieci. In
realt la terza fascia pu anche individuare un fattore di divisione; infatti il
colore oro per la terza fascia indica fattore di divisione pari a 10, mentre il colore argento indica fattore di divisione
pari a 100;
quarta fascia: il valore ohmico reale di
una resistenza non mai esattamente
pari a quello nominale ma pu variare allinterno di una certa fascia di tolleranza
58

intorno al valore nominale. Se la quarta fascia presenta colore oro, la tolleranza


pari al 5% rispetto al valore nominale, se
invece di colore argento la tolleranza
pari al 10% (tabella 6).
Nello standard a 4 bande (tabella 8) si
hanno quindi solo due cifre significative
che corrispondono alle prime due bande.
La terza banda il fattore di moltiplicazione, mentre lultima la tolleranza. La
formula per calcolare il valore ohmico :
(10xA+B)x10^M+/-T, dove A e B sono
le cifre corrispondenti alle prime due bande, M lesponente del moltiplicatore base
10 e T la tolleranza.

Esempio 1: marrone grigio - rosso - oro


Valore: marrone - grigio 18
Moltiplicatore: rosso x100
1800 =1,8k
Tolleranza: oro 5%
Essendo (5% di 1800) =
(1800/100)*5=90, una resistenza di
questo tipo ha il valore ohmico reale
compreso tra (1800-90) e (1800+90)
cio tra 1710 e 1890 .
Esempio 2: giallo viola verde - oro
Valore: Giallo Viola 47
Moltiplicatore: Verde x 100K
4700 K = 4,7 M
Tolleranza: Oro 5%

54-65_PrimiPassi_FE 04/12/09 15.29 Pagina 59

Tabella 7 Codifica del coefficiente di temperatura (6a banda),


presente solo in resistenze di precisione (ppm/K = variazione di
resistenza in ppm (punti per milione) per grado K)

Nero

200ppm/K

Marrone

100ppm/K

Rosso

50ppm/K

Arancio

25ppm/K

Giallo

15ppm/K

Tabella 8 - Codifica dei resistori a 3 o 4 anelli colorati [2]

Colore

Esempio 3: Giallo - Viola - Rosso - Oro


Valore: giallo viola 47
Moltiplicatore: Rosso x 100
4700 = 4,7 k
Tolleranza: Oro 5%
In figura 4 sono riportati i valori nominali della sequenza di resistenze standard
E12 (tolleranza 10%).

1 Anello

2 Anello

3Anello

4 Anello

Cifra 1

Cifra2

Moltiplicatore

Tolleranze

20%

argento

10 -2

10%

oro

10 -1

5%

nero

10 0

marrone

10 1

1%

rosso

10 2

2%

arancio

10 3

giallo

10 4

verde

10 5

0,5%

blu

10 6

0,25%

viola

10 7

0,1%

grigio

10 8

0,05%

bianco

10 9

Esempio: (Marrone=1), (Nero=0), (Arancio=3),


10 x 1000 = 10kohm, Tolleranza (Oro) = 5%

Codifica a cinque o sei bande


Passando dalle comuni resistenze a quelle di precisione a strato metallico, la
lettura si complica leggermente, perch
sul loro corpo vi sono 5, e in certi casi anche 6, fasce colorate. Tali resistenze sono caratterizzate da tre fasce di colore che
indicano le prime tre cifre significative,
mentre la quarta fascia indica il numero di
zeri. In tabella 9 riportato il codice a 5
e 6 bande. In alcuni casi, infatti, viene
riportata una ulteriore sesta banda (non
molto frequente) per indicare il coefficiente di temperatura. Nello standard a 5
bande si hanno 3 cifre significative che
corrispondono alle prime tre bande. La
quarta banda il fattore di moltiplicazione, mentre lultima la tolleranza. La formula per calcolare il valore
(100xA+10xB+C)x10^M +/-T dove A, B e
C sono le cifre corrispondenti alle prime tre
bande mentre M il moltiplicatore base 10
e T la tolleranza.

Tabella 9 - Codifica dei resistori a 5 o 6 anelli colorati [2]

Colore

1 Anello

2 Anello

3Anello

4 Anello

5 Anello

6 Anello

Cifra 1

Cifra2

Cifra3

Moltiplicatore

Tolleranza

Coeff. di temperatura

20%

argento

10 -2

10%

oro

10 -1

5%

nero

10 0

200 ppm/K

marrone

10 1

1%

100 ppm/K

rosso

10 2

2%

50 ppm/K

arancio

10 3

15 ppm/K

giallo

10 4

25 ppm/K

verde

10 5

0,5%

blu

10 6

0,25%

10 ppm/K

viola

10 7

0,1%

5 ppm/K

grigio

10 8

0,05%

10 9

bianco

Esempio di codifica a cinque bande


Marrone - Rosso - Marrone - Arancio Rosso
valore: Marrone-Rosso-marrone 121
Moltiplicatore: arancio x 1000
121 k
Tolleranza: Rosso 2%

Esempio: (Giallo=4), (Violetto=7), (Nero=0), (Rosso=2),


470 x 100 = 47kohm, Tolleranza (Marrone) = 1%

Tolleranza: Oro 5%
Coefficiente di temperatura: Rosso
50ppm/K

Esempio di codifica a sei bande


Marrone rosso viola nero oro - rosso
Valore: Marrone - Rosso - Viola 127
Moltiplicatore: Nero x 1
127

Alcune osservazioni pratiche


sullimpiego del codice dei colori
Una delle difficolt che trova chi si avvicina per la prima volta alla realizzazione di un

circuito elettronico quella di leggere correttamente il valore delle resistenze che sta
maneggiando. Il pi delle volte si portati a misurare il valore ohmico della resistenza mediante limpiego di un multimetro. Un vero tecnico, tuttavia, non ha bisogno di un multimetro poich conosce il
codice dei colori ed capace di applicar59

54-65_PrimiPassi_FE 04/12/09 15.29 Pagina 60

primi passi

primi passi

Figura 7: nei Trimmer il valore ohmico spesso espresso mediante tre cifre. Le prime due sono quelle significative mentre la terza indica
quanti zeri aggiungere per ottenere il valore nominale (100 significa quindi 10 , 101 significa 100 , 472 significa 4.700 e cos via).

Figura 8: potenziometro da pannello con manopola (a sinistra) e da circuito stampato con regolazione a slitta (slider-al centro)
o rotativa (a destra) [2].
Tabella 10 Dimensione standard dei package dei componenti SMD [2]

PACKAGE= DIMENSIONI IN POLLICI (LUNGHEZZA X LARGHEZZA) = DIMENSIONI IN MM


01005

= 0,016 0,008

= 0,4 mm 0,2 mm

0201

= 0,024 0,012

= 0,6 mm 0,3 mm

0402

= 0,04 0,02

= 1,0 mm 0,5 mm

0603

= 0,063 0,031

= 1,6 mm 0,8 mm

0805

= 0,08 0,05

= 2,0 mm 1,25 mm

1206

= 0,126 0,063

= 3,2 mm 1,6 mm

1210

= 0,12 x 0,10

= 3,2 mm x 2,5 mm

1812

= 0,18 0,12

= 4,6 mm 3,0 mm

2010

= 0,20 x 0,10

= 5,0 mm x 2,5 mm

2512

= 0,25 0,12

= 6,3 mm 3,0 mm

Tabella 11 Esempi di codifica del valore ohmico


di resistori SMD

334

= 33 10.000 ohm = 330 kohm

222

= 22 100 ohm = 2,2 kohm

473

= 47 1.000 ohm = 47 kohm

105

= 10 100.000 ohm = 1 Mohm

lo in maniera corretta e celere. Se siete ai


primi passi con i circuiti elettronici, pertanto,
tenete sempre a disposizione il codice dei
colori e ogni volta che vi trovate nella condizione di dover conoscere il valore della resistenza che avete tra le mani, applicatelo; con il tempo vi diventer famigliare e di
semplice applicazione.
Come accennato prima, le resistenze
elettroniche il cui valore codificato secondo il codice dei colori, possono ave60

re 4, 5 oppure 6 bande colorate. Fisicamente, una resistenza avendo una forma


geometricamente simmetrica pu far sorgere dubbi su quale sia lestremo del
componente da cui cominciare a leggere
il codice. Per individuare il primo anello, si
deve partire da quello pi vicino a uno dei
terminali metallici: non sempre ci agevole. In caso di dubbio, si possono fare alcune prove, prima partendo da un lato, poi
dallaltro, nel conteggiare il primo anello:
si possono trovare valori ragionevoli oppure no e dedurre di conseguenza se si
sta orientando nel giusto verso il componente o nel verso opposto.
Un altro dettaglio utile allo scopo si deduce facendo riferimento alle precedenti tabelle: si pu osservare come la fascia
colore oro e quella di colore argento non
portano mai significato di cifra ma di mol-

Figura 9: esempio di scheda con componenti SMD a bordo [2].

tiplicatore o tolleranza. Di conseguenza,


se nella sequenza delle fasce ve ne
una di colore oro o argento (come accade nella maggior parte dei casi) sufficiente cominciare a leggere il codice
dal lato opposto. In ogni caso occorre
posizionare la resistenza con i valori di tolleranza (generalmente i colori oro o argento) sulla destra.
Unaltra cosa che occorre osservare
che le bande, generalmente, non sono
centrate rispetto al corpo del componente, pertanto si orienta questo in modo
da avere a sinistra il terminale pi vicino alle bande. Se tuttavia le bande appaiono
centrate, una che si trova agli estremi
generalmente pi larga delle altre: il
componente va orientato in modo da vedere questa banda a destra.
Esistono poi situazioni in cui lidentificazione delle fasce colorate pu apparire incerta anche per altri motivi: per esempio
la quarta fascia poco evidente o cancellata oppure non si riesce a distinguere
in maniera netta un colore da un altro, per
esempio il rosso dallarancio. In questi
casi il problema pu essere agevolmente
superato ricordando ancora una volta
che il valore ohmico che si deve ottenere
dalla decodifica della sequenza deve in
ogni caso risultare un valore standard.
Un altro dettaglio che pu aiutare linterpretazione del codice quello che vede lultima banda (che pu essere la 4a o
la 5 a) pi distanziata dalle altre.
Per chi vuole memorizzare lordine del
codice dei colori facilmente suggerisco di

54-65_PrimiPassi_FE 04/12/09 15.29 Pagina 61

Quartiere Fieristico CIVITANOVA MARCHE (MC)

6-7 MARZO 2010

Orario:
9-13
15-19,30

30a Mostra Mercato Nazionale

Radiantistica Elettronica
Materiale radiantistico per C.B. - Antenne e Parabole per radioamatori
Apparecchiature per telecomunicazioni - Surplus - Elettronica
Telefonia - Computers - e TV sat - Hi-Fi
Radio depoca - Editoria specializzata

9o Mercatino del
Radioamatore
Libero scambio tra privati di apparecchiature amatoriali
in collaborazione con Associazione Radioamatori Italiani
Sezione di Civitanova Marche

DISCO

CODICE MIP 2754050

Mostra mercato del disco usato in vinile


e CD da collezione

info

ERF ENTE REGIONALE PER LE MANIFESTAZIONI FIERISTICHE


Quartiere Fieristico di Civitanova Marche Tel. 0733 780815 Fax 0733 780820
www.erf.it - [email protected]

54-65_PrimiPassi_FE 04/12/09 15.29 Pagina 62

primi passi

primi passi

Tabella 12 Esempi di codifica di resistori SMD di valore


inferiore a 100 ohm

Tabella 13 Esempi di codifica del valore di resistori


SMD di precisione

100

= 10 1 ohm = 10 ohm

1001

= 100 10 ohm = 1 kiloohm

220

= 22 1 ohm = 22 ohm

4992

= 499 100 ohm = 49,9 kiloohm

470

= 47 1 ohm = 47 ohm

1000

= 100 1 ohm = 100 ohm

CASO 1: sul corpo appare scritto qual-

Figura 10: esempi di NTC (A) e di reti resistive (B) [1].

Figura 11: fotoresistore [2].

cosa del tipo 0,15 ohm oppure 1,5 ohm o


ancora 15 ohm. In questo caso vi sono
pochi dubbi, quello scritto inequivocabilmente leffettivo valore ohmico nominale
del componente;
CASO 2: sul corpo appare un valore numerico preceduto dalla lettera R. In questo caso tale lettera equivale ad anteporre alle cifre che la seguono 0, Pertanto R01 corrisponde a 0,01 , R15
corrisponde a 0,15 , R1 equivale a 0,1
e cos via;
CASO 3: sul corpo appare la lettera R
compresa tra cifre numeriche. In questo
caso la lettera R equivale alla virgola. Per
esempio 4R7 equivale a scrivere 4,7 ,
1R2 equivale a 1,2 e cos via.

Resistori variabili: i trimmer

Figura 12: resistenza 0 [2].

ricordare questa breve frase mnemonica


trovata sul web: Non Metterti Rubicondo
Alla Guida: Vino e Birra Van Gi Bene. Le
iniziali delle parole sono anche le iniziali dei
colori esattamente nella giusta sequenza.

Altri tipi di codifiche del valore ohmico


Il codice dei colori generalmente applicato per resistenze elettronici di bassa potenza (tipicamente 1/4W, 1/8W, 1W o
2W) che sono anche quelle fisicamente pi
piccole. Le resistenze di potenza maggiore
e di piccolo valore ohmico, generalmente resistenze a filo, non impiegano il codice
dei colori ma presentano spesso il valore
ohmico direttamente stampato sul corpo
(figura 5). Le situazioni pi comuni che
possono presentarsi sono:
62

Spesso nei circuiti elettronici occorre di sporre di resistori il cui valore ohmico
possa essere variato gradualmente da 0
fino a un determinato valore massimo:
questi componenti prendono il nome di
trimmer e sono raffigurati con lo stesso
simbolo di una resistenza cui aggiunto
il simbolo di cursore (figura 6). Per essere
pi precisi, resistori variabili possono essere divisi in due categorie: quelli regolabili
manualmente (trimmer e potenziometri) e
quelli che variano il proprio valore ohmico
in funzione di un altro parametro fisico, tipicamente la temperatura (termo-resistori) o lintensit luminosa della luce che
li colpisce (foto-resistori). I trimmer e i
potenziometri sono di frequente impiego
in molte apparecchiature elettroniche di
uso comune come radio, televisori, amplificatori, mixer, equalizzatori e in tutti i circuiti in cui necessario operare sintonizzazioni, tarature o regolazioni. Lelemento fondamentale di questi componenti un conduttore mobile strisciante
sullelemento resistivo attraverso il quale
possibile variare il valore della resistenza offerta dal componente stesso ai
suoi morsetti. La regolazione pu avvenire

a seconda dei casi in due modi: agendo


su un cursore rotativo oppure su di un cursore lineare. Da un punto di vista costruttivo possono essere realizzati a strato, a filo, doppi, con o senza interruttore
e possono presentare variazione resistiva
lineare o logaritmica.
Mentre i potenziometri e i trimmer impiegati per regolazioni molto frequenti
(per esempio la regolazione del volume di
un apparato audio) sono tipicamente
montati a pannello e sono dotati di opportuna manopola, quelli che servono
per regolazioni saltuarie, per esempio tarature, non sono dotati di manopola, richiedono luso di un giravite per agire
su una apposita vite di regolazione e sono, generalmente, montati direttamente
sul circuito stampato dellapparecchiatura. Unaltra distinzione che possibile
fare quella tra trimmer a singolo giro e
trimmer di precisione multigiro in cui la vite di regolazione consente di regolare il valore resistivo voluto con molta precisione
su un range composto da pi giri.
Spesso nei trimmer impiegata una codifica del valore ohmico differente da quelle descritte fino a ora. Generalmente sul
corpo del trimmer compare una sequenza
di cifre che non rappresenta il reale valore
ohmico massimo del trimmer. Il codice
che esprime il valore ohmico del componente di tipo numerico ed composto da
tre cifre: lultima cifra indica quanti zeri
bisogna aggiungere al valore composto
con le cifre precedenti per ottenere il valore
ohmico nominale. Se per esempio sul corpo del trimmer scritto 101, il valore ohmico massimo del trimmer corrisponde a
10, cui far seguire uno zero, quindi 100
e non 101 , come erroneamente si potrebbe essere portati a pensare. Analogamente, se sul corpo del trimmer c
scritto 224, il valore ohmico del trimmer
pari a 22, cui far seguire 4 zeri, e quindi
220000 e non 224 . In figura 8 sono riportati alcuni esempi di questo tipo di codifica che dovrebbero essere sufficienti a
dissipare qualunque dubbio in merito.

Tipi di trimmer
Vi sono in commercio trimmer di diversa
forma e dimensione, anche da un punto di
vista geometrico, tali da poter essere montati sia orizzontalmente che verticalmente
sul circuito stampato (figura 8). General-

54-65_PrimiPassi_FE 04/12/09 15.29 Pagina 63

mente, il morsetto centrale rappresenta


quello elettricamente connesso al cursore.
Collegando uno dei due terminali estremi
con il morsetto di cursore, si cortocircuita
parte dellintera resistenza ohmica; questa
parte pu essere variata agendo sul cursore e in tal modo possibile ottenere il valore ohmico voluto. Questi componenti
possono essere, in ogni caso, impiegati anche senza cortocircuitare il morsetto di
cursore con uno di quelli estremi: in questo
caso il componente impiegato come
potenziometro. Se non riuscite a intuire
immediatamente limportanza di questi
componenti, pensate a quante volte vi
capitato di agire sulla manopola di una
radio, variandone in questo modo il volume oppure sulle manopole di un equalizzatore variando il peso degli alti oppure dei
bassi rispetto alle altre frequenze.
Oggi queste applicazioni sono meno comuni dal momento che la maggior parte
dei controlli e delle regolazioni che si effettuano sulle apparecchiature sono di
tipo digitale, tuttavia tali componenti restano di diffuso impiego in elettronica.
Tra le diverse caratteristiche di un potenziometro vi la legge di variazione
del valore ohmico rispetto alla posizione
angolare della manopola nel caso di potenziometro rotativo, o della posizione lineare del cursore nel caso di potenziometro a slitta. Tale legge di variazione
pu essere di natura lineare oppure logaritmica. Se vi state chiedendo a cosa
possa servire un potenziometro logarit-

mico pensate al fatto che il nostro udito


presenta una sensibilit nei confronti della potenza sonora di tipo logaritmico; ci
significa che per percepire un raddoppio della potenza sonora necessario
che questa venga realmente quadruplicata. Ci spiega il motivo per cui tutti i potenziometri impiegati nelle apparecchiature audio per la regolazione del volume
sono generalmente di tipo logaritmico.

dante sulle due piazzole di saldatura,


mediante una macchina automatica programmata vengono quindi posti i componenti SMD nelle esatte posizioni della
pasta saldante; segue il passaggio in un
apposito forno che sottoponendo la piastra e i componenti posizionai sulla stessa ad un opportuno riscaldamento, secondo un preciso profilo temporale di
temperatura, ne determina la saldatura.

Resistori SMD

Lettura dei resistori a montaggio


superficiale (SMD)

I resistori elettronici realizzati in tecnologia discreta mostrati fino a ora non sono gli unici impiegati in elettronica; vi sono resistori che si prestano al montaggio
automatico e che permettono una maggiore integrazione dei componenti sulla
board. Si tratta dei resistori realizzati in
tecnologia SMD. Limmagine in figura 9
mostra quattro resistori SMD (il componente nellangolo in alto a destra, con il
corpo di colore marrone, un condensatore). Due resistori hanno valore di 0
ohm, gli altri due possono essere da 27
ohm o 270 ohm (la codifica dei costruttori
pu variare). I resistori SMD (acronimo
di Surface Mounting Device) o SMT (Surface-Mount Technology) hanno laspetto
di minuscole piastrine rettangolari di dimensioni variabili a seconda della potenza. Le dimensioni pi comuni sono
(lo standard usato anche per i condensatori) quelle riportate in tabella 10. Il
montaggio automatizzato: sul circuito
stampato viene posto il materiale sal-

I resistori a montaggio superficiale sono


generalmente marcati con un codice a tre
cifre: le prime due sono cifre significative, la terza indica il numero degli zeri
da aggiungere a queste per ottenere il
valore ohmico nominale (tabella 11). La
stessa codifica viene utilizzata anche
per i condensatori a montaggio superficiale, per i quali il valore letto da intendersi in pF.
Resistori di valore inferiore a 100 ohm
sono marcati con una sequenza di tre
cifre di cui lultima uno zero cio dieci
elevato alla potenza zero cio uno (tabella
12).I resistori di precisione sono invece siglati con un codice a quattro cifre. Le
prime tre sono cifre significative mentre la
quarta indica la potenza di dieci come
mostrato negli esempi in tabella 13.

Reti resistive
Oltre ai resistori individuali, esistono componenti che integrano allinterno delle ve-

RDS Decoder
COMPONENTI CNC
STEPPER E DRIVERS
MICROCONTROLLORI
ALIMENT
TATORI PC TAPE
A
PC FONO TELECAMERE
RDS DECODER DISPLA
SPLA
AY
LCD MOTORI CC CIRCUITI
INTEGRA
ATI
T AUDIO VIDEO
OCCASIONI MINI ROBOT
v
vendita
endita p
per
er c
corrispondenza
or rispondenza

Prova il nuovo portale eshop!

eshop.micromed.it

Dispositivo per lacquisizione e lelaborazione


dei messaggi RDS delle stazioni radio FM.
Applicabile a qualsiasi ricevitore anche portatile
per individuare il nome della stazione e leggere
trasmissioni di testo.
Completo di display 1x 8 e con la possibilit di
aggiungere un display esterno 2x16 o 2x20.

63

CODICE MIP 2777766

www.micromed.it

54-65_PrimiPassi_FE 04/12/09 15.29 Pagina 64

primi passi

primi passi

PER approfondire...

re e proprie reti resistive, costruite con la


tecnica chiamata a film spesso, mediante un processo di metallizzazione su
una sottile piastrina di ceramica (figura 10).

[1] Scuola di elettronica, Teoria, tecnica, pratica (Enciclopedia Peruzzo Editore)

Resistori Custom

[2] Resistore, http://it.wikipedia.org

Esistono anche applicazioni in cui il resistore deve avere caratteristiche particolari; tipico il caso degli strumenti di misura
elettronici. Se in commercio non disponibile il resistore con dimensioni, valore e
precisione necessaria per limpiego previsto, il costruttore dello strumento progetta
da s il resistore abbinandogli una sigla;
questo risulta quindi un componente custom non in commercio che pu, di conseguenza, essere fornito come ricambio
solo dal costruttore dello strumento.

[3] G. Biondo, E. Sacchi, Componenti elettrici passivi (Normalizzazione e codificazione),

Le fotoresistenze
In elettronica esistono anche diversi componenti che non sono delle classiche resistenze ma piuttosto componenti in grado di variare il proprio valore ohmico in
funzione dellintensit di una determinata grandezza fisica rispetto alla quale risultano sensibili. Uno di questi la fotoresistenza, cio letteralmente resistenza
sensibile alla luce. facile verificare come
il valore ohmico offerto ai propri terminali da una fotoresistenza possa variare da
valori dellordine del megaohm (1-10M)
in condizioni di buio, a valori di poche
decine di ohm in condizioni di forte intensit luminosa incidente. Per avere unidea immediata di alcune applicazioni di
componenti di questo tipo, si pensi agli
automatismi di apertura e chiusura di un
ascensore o di porte automatiche, oppure
a sistemi di conteggio automatico di pezzi in una catena di montaggio o di produzione o ancora alla misura stessa dellintensit luminosa.

Termoresistori (NTC e PTC)


I termoresistori o termistori sono invece
resistori che presentano elevati valori
del coefficiente di temperatura; essi si distinguono in PTC ed NTC (figura 10). I
resistori PTC (Positive Temperature Coefficient) hanno un coefficiente di temperatura positivo, ossia aumentano la
loro resistenza con laumento della temperatura mentre gli NTC (Negative Temperature Coefficient) presentano un coefficiente di temperatura negativo (tipicamente tra -6% e -2% per grado cen64

Manuale di Elettronica e Telecomunicazioni, cap IX, 4 ed., Hoepli


[4] Tabella dei colori dei resistori, www.elettronicando.net
[5] www.conversioni.it
[6] Electronic color code, http://it.wikipedia.org
[7] www.themeter.net

tigrado), ossia riducono la loro resistenza con laumentare della temperatura.


Essi sono impiegati o per la misura della temperatura o come sensori nei sistemi di controllo.

I resistori 0
Pochi sanno che in commercio esistono
delle resistenze che presentano lo stesso
aspetto delle comuni resistenze elettroniche
e valore ohmico pari a zero . Il valore indicato con un unico anello nero (figura
12). Nel caso di realizzazione SMD questo
pu essere siglato 000 o 0000. Luso di
resistori da zero ohm utile in molti casi:

in alternativa a un componente previsto


ma non usato in alcune applicazioni della scheda elettronica, si pu prevedere, in
parallelo, un resistore da zero ohm senza
dover rifare il circuito stampato;
nelluso di circuiti integrati che possono
avere vari modi di funzionamento, si mantiene aperta la possibilit di montare un resistore opportuno (compreso zero ohm)
senza dover rifare il circuito stampato;
in schede elettroniche particolarmente
complesse (specialmente di tipo monofaccia), un resistore 0 permette il passaggio di piste sotto di s, facilitando lo
sbroglio del circuito durante la progettazione ed evitando limpiego di ponticelli filari durante la realizzazione.
Un problema che pongono i resistori da
zero ohm la dissipazione di potenza
non calcolabile con la legge di Ohm (nei
dati tecnici, generalmente viene indicata
la massima corrente che il resistore pu
sopportare senza danneggiarsi).

Misura di resistenze saldate


su una scheda elettronica
Nella pratica ci si pu trovare a dover
misurare valori di resistori gi montati in
un circuito senza poterli dissaldare e
senza poter sezionare le piste che ne
realizzano la connessione agli altri componenti. Usando un multimetro (con il
circuito non alimentato), si legge un valore
che pone almeno un limite minimo al valore effettivo della resistenza in questione, in quanto in parallelo al resistore vi sono altri elementi resistivi che abbassano
la resistenza del ramo. Rifacendo la misura scambiando i terminali (la presenza
di componenti attivi e diodi ha un comportamento nella misura diverso a seconda del verso della corrente che il
multimetro imprime nella misura), si ottiene un secondo valore. Dopo questa seconda misura si scegliere il valore pi
alto tra quelli misurati, valore che in ogni
caso solo un limite minimo alleffettivo
valore del componente.

Alcuni utili strumenti


Chiudiamo questo articolo, dedicato ai
componenti resistivi comunemente impiegati in elettronica, segnalando, soprattutto a neofiti e principianti che non
vogliano perder tempo a decifrare il valore
di una resistenza decodificandone il codice dei colori, o che desiderino un ausilio didattico per prendere dimestichezza con questo tipo di operazioni, che in rete sono disponibili diversi applicativi freeware utili allo scopo. q

CODICE MIP 2757063

CODICE MIP 2779082

54-65_PrimiPassi_FE 04/12/09 15.29 Pagina 65

66-73_MrAkeer_fe 03/12/09 08.33 Pagina 66

langolo di Mr A.KEER

DECODER

Con i decoder con memoria


si conclude la rassegna
dei principali dispositivi
in grado di controllare
i visualizzatori formati
da digit a 7 segmenti.
Scopriamone i segreti
e il modo migliore
per utilizzarli

con memoria
I

n chiusura della puntata precedente abbiamo constatato la concreta realt di


disporre di super decoder a 7 segmenti (dispositivi combinatori) dotati di uno
strato sequenziale, cio della possibilit di
fruire su ciascuno dei propri ingressi di un
flip-flop (un elemento di memoria) e di uno
strato di potenza (driver) tale da garantire alle rispettive uscite le migliori condizioni elettriche per pilotare un LED. A questa categoria
appartengono i sofisticati 4511 e 9368, oggetto della nostra analisi attuale.

DECODER DA BCD A 7 SEGMENTI: 4511, 4513

Figura 1: pinout BCD to 7-segment


Latch/Decoder/Driver 4511.

66

Come tutti i decoder per digit analizzati finora, anche il 4511 (unico, con l'analogo
4513, disponibile nella serie CMOS per il
controllo di digit a LED) appartiene alla categoria dei BCD to 7-segment Decoder, caratterizzata dalla capacit di interpretare
solo 10 delle possibili 16 parole del codice
binario a 4 bit proposto sulle sue 4 linee
dingresso. Come il TTL 74LS48 (col quale
in parte pin-out compatibile, escludendo 3
piedini di controllo), il decoder 4511 converte
il codice BCD proposto sulle sue linee dingresso, generando sulle linee duscita dei segnali attivi alti: i segmenti del digit a esso collegato si accenderanno dunque con un 1 logico, per cui questo componente adatto a
digit a catodo comune; il suo pin-out illustrato in figura 1. Osservando la figura appare subito evidente che si tratta di un componente speciale, in grado di dare molto
di pi di quanto ci si aspetta, cio di svolgere
tre funzioni in una: consente di congelare in
una memoria a 4 bit le informazioni fornite
sulle linee dingresso; garantisce ovviamente il suo intrinseco servizio di decoder;
dotato di driver su ciascuna delle 7 linee
duscita, al fine di fornire le migliori condizioni
di pilotaggio ai LED a esse collegati.
Va sottolineata limpossibilit di gestire pi
componenti 4511 in cascata con la tecnica

Ripple Blanking garantita invece dal 74LS48


(per altro chiamato a svolgere lo stesso
servizio combinatorio), descritta la volta
scorsa e ripresa pi avanti per il 9368: la disponibilit del segnale di controllo RBO (Ripple Blanking Output) stata sacrificata per
far posto a quello LE (Latch Enable) necessario per governare una memoria.

Lo strato di memoria
Prima di raggiungere il decoder, ciascuna
delle 4 linee dingresso attraversa un flip-flop
di tipo D-Latch; lutilizzo di questo tipo di
memoria non molto diffuso nel progetto digitale e questo uno dei casi pi peculiari.
I suoi 4 elementi sono attivati sul livello della linea di sincronismo (LE, Latch Enable,
pin5), che li controlla contemporaneamente: quando LE a livello 0, fissato al negativo dellalimentazione, i 4 bit del codice
BCD applicato in ingresso passano inalterati a valle della memoria, che risulta essere trasparente (come se non ci fosse) nei loro confronti, cos come fosse una porta
aperta (luscita insegue lingresso); nellistante in cui LE passa da un livello basso a
uno alto (cio sul fronte di salita di LE) le
uscite D-Latch scattano sul codice binario presente su di esse in quel momento, tenendolo bloccato (memorizzandolo) per
tutto il tempo nel quale la linea LE tenuta
a livello 1, fino a quando verr riportata a 0.
La notazione logica mette in evidenza queste specifiche (graficamente, con la presenza del pallino sulla linea dingresso e
formalmente soprasegnando il segnale LE):
in condizioni di funzionamento normale (oppure se lazione della memoria non desiderata) questo pin5 va posto a massa! Si
tratta di uno dei pi frequenti errori dei giovani virgulti che, dimenticandolo scollegato, si disperano perch il digit collegato al
decoder rimane bloccato anche quando
attivo un eventuale conteggio in ingresso.

66-73_MrAkeer_fe 03/12/09 08.33 Pagina 67

rubrica a cura di GIORGIO OBER

Intervenendo in questo modo sulla linea LE


(per esempio con un controllo a fotocellula
posto in un dato punto di un percorso sportivo, nel progetto di un cronometro digitale),
possibile generare leffetto intertempo,
congelando il tempo corrente per qualche
istante. Mantenendo invece stabilmente alto lingresso LE, ogni volta che si fornisce su
di esso un breve impulso basso il numero sul
digit cambier istantaneamente in funzione
del codice presente in quel momento sugli ingressi DCBA, rimanendo invariato fino al
successivo impulso. Questo artificio torna
molto utile in alcune applicazioni, per esempio per consentire la visualizzazione del valore misurato da uno strumento digitale (come un frequenzimetro), attivandola solo alla fine di ogni ciclo del conteggio. In questo
modo si evita di renderla illeggibile, come sarebbe se il valore fosse mostrato mentre il
conteggio in corso.
In sostanza la misura della frequenza si
esegue contando i fronti attivi del segnale da
misurare in un intervallo di grande precisione
fissato dalla base dei tempi e mostrandone
il valore solo alla fine.
Figura 2: schema di un D-Latch BCD to 7-segment Latch/Decoder/Driver 4511.

Va detto che la notazione attiva bassa per


LE pu generare qualche insicurezza se la
si intende come comando per eseguire la
memorizzazione degli ingressi: di fatto essa avviene quando LE a 1 cos da poter
supporre che latto si compia per unazione
attiva alta! In realt il termine Latch Enable
va inteso come comando per autorizzare il
passaggio del dato sul latch, lasciando
intendere che questultimo sia abilitato a
compiere la sua funzione (quella di memorizzare il dato stesso) solo se il segnale LE
tiene aperte le porte daccesso al latch,
cosa possibile appunto se esso forzato a
0, per la presenza di un inverter interno
come si vede dallo schema ( figura 2 ) valido per ciascuno dei 4 flip flop D-Latch utilizzati dal componente.

Resta da valutare lutilit di questa memoria. Se questo componente collegato a valle di un contatore (per esempio una Decade CMOS 4029 Binary/Decade Up/Down
Counter), potr disporre in ingresso di un codice a 4 bit riproposto ciclicamente dal valore minimo, (0000) 2 , a quello massimo,
(1001) 2 , con cadenza imposta dalla frequenza dellonda quadra applicata (per
esempio ogni secondo, se il clock di 1 Hz).
Mantenendo a massa lingresso LE del decoder, il digit a esso collegato mostrer le
corrispondenti cifre decimali, variabili con la
stessa cadenza; non appena LE viene scollegato da massa (per cui sente un 1) il numero sul digit non subir pi aggiornamenti, sebbene il conteggio in ingresso
continui regolarmente.

Figura 3: simboli visualizzati con FND500, BCD to 7-segment Latch/Decoder/Driver 4511.

La funzione intrinseca di decoder


Come i suoi simili TTL anche questo componente accetta solo le prime 10 combinazioni, da (0000) 2 a (1001) 2, appartenenti al codice BCD. Se, nonostante il divieto,
si fornisce una delle ultime 6 combinazioni
vietate, i componenti TTL visti la scorsa
puntata davano corpo a simboli sostanzialmente casuali, dovuti alle scelte imposte
dal progetto combinatorio del componente,
con questo invece si otterr come effetto
quello di spegnere il digit controllato dal
decoder. Da notare che le stesse scelte di
progetto impongono anche al 4511 la visualizzazione del 6 (0110)2 e del 9 (1001)2 rispettivamente priva del trattino in alto o in
basso, tipica del TTL 74LS48, preso sempre come oggetto di confronto. La figura 3
riassume laspetto del digit collegato al decoder, in ogni situazione. Su questa parte
circuitale agisce linfluenza del segnale dingresso BI (Blanking Input, pin4), attivo basso; se su di esso si forza uno 0, tutte le linee
duscita di segmento sono forzate a 0, causando lo spegnimento di tutti i segmenti
del digit. Questa linea di controllo ha un livello di priorit secondo solo al segnale

67

66-73_MrAkeer_fe 03/12/09 08.33 Pagina 68

langolo di Mr A.KEER

dingresso LT per cui potr produrre leffetto


descritto solo se LT non contemporaneamente attivo. Curiosamente nel 74LS48
succede esattamente lopposto: BI prioritario rispetto a LT (e a ogni altro ingresso).
Anche con questo componente possibile controllare lintensit luminosa del suo digit con la tecnica di blanking (spegnimento)
descritta per i suoi simili TTL nella puntata
precedente: basta applicare sul pin4 unonda quadra non simmetrica e modificare il suo
duty cycle (rapporto tra la durata della parte alta e il periodo del segnale) purch la frequenza sia maggiore di 45 Hz (per i digit con
LED rossi, allarseniuro fosfuro di gallio,
GaAsP) al fine di garantire una sequenza di
spegnimenti (imposti da BI attivo, cio a
0) e accensioni (imposti da BI disattivo,
cio a 1) sufficientemente veloce da essere percepita come variazione di luminosit
per effetto della persistenza ottica dellimmagine sulla retina dallocchio umano.
La figura 4 (gi proposta la volta scorsa) ricorda laspetto dei segnali necessari rispettivamente per una discreta (duty cycle
pari a 86%) e una bassa (duty cycle del
14%) accensione dei digit; leffetto ottenuto legato al valore medio del segnale imposto su BI, pi vicino a 1 logico nel primo
caso e allo 0 nel secondo.

Lo strato del driver


Il terzo strato di hardware proprio una
gran cosa: ciascuna delle uscite interne
del decoder dotata di uno stadio realizzato

Figura 4: effetto Blanking, BCD to 7-segment


Latch/Decoder/Driver 4511.

68

Figura 5: stadio duscita BCD to 7-segment Latch/Decoder/Driver 4511.

con un transistor NPN configurato come


inseguitore demettitore (o a collettore comune), una presenza decisamente inconsueta tra i componenti di tipo CMOS. Le caratteristiche di questo stadio sono quelle di
garantire: una notevole amplificazione di
corrente (intrinseca dei transistor); unamplificazione di tensione pressoch uguale a
1 (leggermente minore di 1), ragione per
la quale lo stadio detto anche inseguitore
di tensione (voltage follower); unelevata
impedenza di ingresso; una bassa resistenza duscita.
Certamente questa la situazione ideale per
non caricare (cio assorbire corrente da)
il circuito CMOS che lo pilota e per garantire
le migliori condizioni duscita, assicurando, a livello alto (1 logico), lerogazione fino
a 25 mA, pi che sufficienti per pilotare direttamente il carico (ciascuno dei segmenti-LED del digit). La figura 5 (di propriet
Philips Semiconductors, estratta dal datasheet del suo HEF4511B) mostra lo schema di questo stadio duscita evidenziando
la presenza del transistor appena descritto.
Su questo settore agisce linfluenza del segnale dingresso LT (Lamp Test, pin3), attivo basso. Se si forza uno 0 su LT, tutte le linee duscita di segmento sono forzate a 1,
causando laccensione di tutti i segmenti del
digit, al fine di verificarne lefficienza. Da
notare che questo ingresso prioritario rispetto a tutti gli altri, compresi LE e BI.

Lanalisi della tabella di verit ( figura 6 ,


Function Table) , come al solito, un importante esercizio, capace di sintetizzare il
funzionamento del dispositivo:
a) lultima riga evidenzia la forza prioritaria di
LT: quando esso attivo (basso, low level), tutte le uscite di segmento passano a
1 indipendentemente dal valore di ogni altro ingresso, accendendo di fatto il digit (a
catodo comune) collegato al decoder;
b) la penultima riga conferma che, dopo
LT, comanda BI: se questo ingresso attivo (basso, L), con LT disattivo, tutte le uscite di segmento passano a 0 (basse, L) spegnendo di fatto il digit;
c) la prima riga mostra leffetto di LE: se esso attivo (basso, L), la memoria trasparente (la parola DCBA dingresso passa
sul decoder senza alcun intoppo), ma nel
passaggio da 0 a 1 (fronte di salita) e per tutto il tempo in cui rimane a 1 la memoria interviene e blocca sulle sue uscite il valore
dellingresso corrente.
Le caratteristiche logiche di questo componente sono riassunte in dettaglio dallo
schema funzionale in figura 7 e sinteticamente dallo schema pratico in figura 8 : le
linee dingresso possono essere quelle del
Bus Dati di un microprocessore o le uscite
di una porta di un single-chip o della porta
parallela di un PC, mentre le linee duscita

66-73_MrAkeer_fe 03/12/09 08.33 Pagina 69

Figura 6: tabella di verit BCD to 7-segment Latch/Decoder/Driver 4511.

INGRESSI

USCITE (ATTIVE ALTE)

LE

BI

LT

dato

dato memorizzato sul fronte di salita di LE

10

11

12

13

14

15

BI

LT

Figura 7: schema funzionale BCD to 7-segment


Latch/Decoder/Driver 4511.

H livello logico alto


L livello logico basso
X livello logico irrilevante
Figura 6: tabella di verit BCD to 7-segment Latch/Decoder/Driver 4511.

rendono disponibili i sette valori logici attivi alti necessari per controllare i 7 segmenti
di un digit a catodo comune.
Per le scelte di progetto non va dimenticato
che sulle uscite di segmento sono presenti
valori V OH (tensione duscita a livello alto)
tipici CMOS, tipicamente tendenti a quello
dellalimentazione VDD; collegando su esse un
normale digit a catodo comune consigliabile la presenza di resistori in serie ai segmenti-LED, necessari per limitare la corrente a valori tali da garantirne una buona accensione in sicurezza. Il valore della loro resistenza dipende dalla tensione dalimentazione e dalla corrente erogata. Consultando il datasheet possibile ricostruire una
interessante tabella (figura 9) relativa alle
uscite in condizioni di funzionamento tipiche. Con tensione dalimentazione di +5V,
supponendo di imporre una corrente erogata
di 15 mA, risulta disponibile una tensione
VOH di 4V che, al netto della caduta di 1,8V

sul LED, porta a un valore di resistenza pari


a 147ohm, normalizzato a quello standard di
150ohm. La figura 10 mostra limpiego del
decoder 4511 con un normale digit a catodo
comune nelle condizioni appena suggerite;
nel normale funzionamento, il piedino di
controllo LE (pin5) della memoria deve essere
posto a massa, mentre i rimanenti due, BI
(pin4) e LT (pin3), possono essere lasciati inattivi, collegandoli al positivo dellalimentazione, data la natura CMOS del componente
che non ammette pin fluttuanti.
Come per gli altri componenti della famiglia
CMOS, la potenza dissipata trascurabile
mentre il ritardo di propagazione (Propagation Delay Time, t PHL e t PLH), rilevato con
carico di 50 pF, mediamente si dimezza a
ogni incremento di 5V della tensione di alimentazione V DD. Per un componente cos
sofisticato i punti di riferimento sono numerosi: per esempio per disporre di uscite
stabili, dopo lapplicazione di un codice in in-

Figura 8: schema pratico BCD to 7-segment


Latch/Decoder/Driver 4511.

gresso, sono necessari da 150ns (VDD=5V)


a 40ns (V DD=15V); nei confronti delle uscite dopo lapplicazione del segnale LE
necessario lo stesso tempo, mentre ne basta la met dopo lazione di LT.
Ci sono altri integrati della serie CMOS che
offrono la disponibilit di decoder da BCD a
7 segmenti; i 4055, 4056 e 4543 sono
Latch/Decoder/Driver espressamente progettati per visualizzatori a cristalli liquidi,
LCD, come il 4544, che ha la possibilit di invertire la logica delle combinazioni duscita;
il 4547 un decoder/driver per digit a catodo
comune o per lampade a incandescenza,
senza memoria e senza LT, ma in grado di
garantire una corrente duscita fino a 65mA.

66-73_MrAkeer_fe 03/12/09 08.33 Pagina 70

langolo di Mr A.KEER

Figura 9: dati di progetto BCD to 7-segment


Latch/Decoder/Driver 4511.

R (ohm)

V CC

I OH

V OH

5V

0mA

4,40V

5mA

4,20V

10mA

4,05V

225

15mA

4,00V

147

20mA

3,80V

100

25mA

3,70V

76

0mA

9,40V

5mA

9,20V

1,48k

10mA

9,10V

730

15mA

9,00V

167

20mA

9,00V

360

25mA

8,90V

284

0mA

14,40V

5mA

14,20V

2,48k

10mA

14,10V

1,23k

15mA

14,00V

813

20mA

14,00V

610

25mA

14,00V

488

10V

15V

480

Figura 10: progetto con FND500, BCD to 7-segment Latch/Decoder/Driver 4511.

Figura 11: pinout Binary to 7-segment Latch/Decoder/Driver 9368.

Il 4558 e il 4734 (decoder/driver per digit a


catodo comune) sono in grado di gestire
(unici nella serie CMOS) anche il Ripple
Blanking per la soppressione degli zero non
significativi; il secondo dispone anche di
LT e di memoria per cui, per ospitare RBO e
RBI, fruisce di un inconsueto contenitore
a 18 piedini; i 4026 e 4033 sono contatori/divisori decadici con uscite decodificate
adatte a display a 7 segmenti.
Un cenno a parte merita il 4495, un
Latch/Decoder/Driver del tutto anomalo rispetto ai precedenti, non solo per la strana
disposizione dei piedini associati alle 7
uscite di segmento e ai 4 ingressi di dato (in
tutti gli altri sempre nelle stesse posizioni del
4511), ma anche per capacit di assicurare la decodifica di tutte le 16 combinazioni
del codice binario a 4 bit (come il 9368,
trattato tra poco), ma in modo decisamente originale, utilizzando una ROM 16x9 bit
programmabile (per cui la Motorola, che lo

70

produce, offre su richiesta altre possibili


diverse programmazioni); poich contiene
internamente un resistore da 290 ohm su
ogni linea duscita, alimentandolo a 5V per
pilotare un digit a LED pu essere utilizzato senza resistori esterni.

DECODER DA BINARIO
A 7 SEGMENTI (TTL): 9368
Questa lunga rassegna termina con il decoder
TTL 9368, un componente eccezionale, unico in grado di decodificare tutte le 16 combinazioni del codice binario puro a 4 bit fornito
sui suoi ingressi; sebbene il suo datasheet non
preveda per esso una classificazione specifica, lo chiameremo Binary to 7-segment Decoder, in contrapposizione con quelli finora
trattati, tutti appartenenti alla categoria destinata a decodificare solo un codice BCD.
Esso sostanzialmente pin-out compatibile con il TTL 74LS48 (esclusa la funzione
associata al pin3) e funzionalmente simile al

CMOS 4511, per altro (come detto) entrambi destinati a decodificare solo 10 codici
su 16. Il suo pin-out illustrato in figura 11.
La figura evidenzia la stessa struttura logica
del CMOS 4511, in grado di assicurare le sue
stesse tre mansioni in un unico componente: lo strato di memoria a 4 bit sulle linee dingresso, la funzione di decoder (ora estesa a
tutte e 16 le possibili combinazioni) e la disponibilit di driver su ciascuna delle 7 linee
duscita. Va subito anticipato che le descrizioni relative al funzionamento del 9368 sono in gran parte simili a quelle fornite per il
4511, fatta salva la puntualizzazione di alcuni
piccoli particolari. Di certo questo straordinario componente ne migliora i servizi in
comune, rendendo possibile (tra laltro) la
tecnica Ripple Blanking, che riprenderemo in
dettaglio tra poco.

Lo strato di memoria
Lo strato di memoria e il suo controllo
identico a quello gi descritto, tenendo presente che ora il segnale di sincronismo LE,
Latch Enable, sul pin3. In sintesi, ciascuna
delle 4 linee dingresso attraversa un flipflop di tipo D-Latch e il codice a esse relativo pu essere congelato a valle degli elementi
di memoria sul fronte di salita di LE e mantenuto costante (in ingresso al decoder) fino
a quando la linea LE verr riportata a livello 0;
per tutto il tempo nel quale LE a livello 0 il
codice binario puro a 4 bit applicato in ingresso passa inalterato a valle della memoria, come se essa non ci fosse.

66-73_MrAkeer_fe 03/12/09 08.33 Pagina 71

Naturalmente le applicazioni suggerite per


il 4511 (intertempo per cronometro e gestione di frequenzimetro) sono assolutamente legittime anche con il 9368, ora per da associare a contatori TTL come il
Decade Counter 74LS90 o il Binary Counter 74LS93: se lingresso LE mantenuto a
massa, il digit a esso collegato mostrer le
corrispondenti cifre (rispettivamente decimali
o esadecimali) variabili con la stessa cadenza imposta dalla frequenza di clock applicata al contatore; non appena LE viene
scollegato da massa il simbolo sul digit,
corrispondente al codice presente in quel
momento sugli ingressi DCBA, non subir
pi aggiornamenti (sebbene il conteggio
fornito in ingresso continui a variare regolarmente), rimanendo invariato fino a quando LE sar riportato a massa.

Figura 12: simboli visualizzati con FND500 Binary to 7-segment Latch/Decoder/Driver 9368.

La funzione di decoder
Unico tra tutti i decoder conosciuti, questo
componente interpreta tutte le possibili 16
combinazioni del codice binario a 4 bit proposto in ingresso, assicurando per ciascuna di esse il corrispondente simbolo del
sistema di numerazione esadecimale; laspetto del digit collegato al decoder dunque quello mostrato in figura 12. La grande novit consiste nella visualizzazione dei
simboli alfabetici da A a F (proposte con lettere minuscole o maiuscole) in aggiunta ai
simboli numerici da 0 a 9 (gi disponibili
con gli altri decoder); tra laltro nella visualizzazione del 6 e del 9 previsto il famoso
trattino, rispettivamente in alto o in basso.
Su questa parte circuitale agisce linfluenza
dei segnali BI/RBO (Blanking Input/Ripple
Blanking Output, pin4) e RBI (Ripple Blanking
Input, pin5), entrambi attivi bassi, gli stessi
descritti la puntata precedente per il decoder TTL 74LS48 che, come gi anticipato,
da questo punto di vista del tutto identico
a quello sotto test. Ne ricordiamo le principali considerazioni.
In virt di una particolare circuiteria interna
(basata su un resistore di pull-up, adatta a
realizzare una logica di tipo wired-AND con
ogni uscita open collector) la linea collegata al pin4 pu essere utilizzata, senza produrre danni, sia come uscita (rendendo disponibile il segnale RBO) sia come ingresso
(consentendo di forzare su di essa il segnale BI). Usata come ingresso BI permette (se attivata, cio forzata a 0) di spegnere
incondizionatamente il digit collegato al de-

Figura 13: effetto Ripple Blanking, visualizzatore a 4 digit FND500 con 9368.

coder, con qualunque codice presente sugli


ingressi DCBA; nel funzionamento normale
BI deve essere lasciato scollegato (o collegato al +5V). Da notare che (come per il
74LS48) lingresso BI prioritario, cio
quando esso attivo contemporaneamente a ogni altro ingresso la funzione di questi
ultimi viene ignorata. Anche in questo caso,
applicando unonda quadra non simmetrica
sullingresso BI e modificandone il duty
cycle, possibile controllare lintensit luminosa del digit a esso collegato, come
descritto in precedenza. Usata come uscita, la linea RBO serve (insieme allingresso
RBI sul pin5) per gestire il meccanismo di
Ripple Blanking atto a evitare di accendere
tutti gli zero non significativi nellambito di un
visualizzatore decimale con numerose cifre, sia a sinistra che a destra (se il numero
mostrato frazionario). Sebbene esso sia
stato gi descritto la puntata scorsa, per il
74LS48, bene riprenderne i concetti, anche per il fatto che gli schemi applicativi
sono diversi per lassenza della linea di
Lamp Test (LT) ora sostituita da quella di
Latch Enable (LE):
a) lingresso RBI consente (se attivato, cio

forzato a 0) di spegnere (blanking) il digit collegato al decoder solo se contemporaneamente il codice presente sui suoi ingressi
DCBA (0000)2; in queste condizioni forza
a 0 anche luscita RBO. Se il codice presente sugli ingressi DCBA diverso da
(0000) 2, il digit mostra regolarmente i simboli corrispondenti e luscita RBO rimane
disattiva (cio a livello logico 1). La condizione per poter visualizzare comunque leventuale cifra zero di lasciare lingresso RBI
scollegato (o meglio collegato al +5V), cio
disattivo (forzato a livello logico 1);
b) luscita RBO serve per reiterare questo
servizio anche sul decoder di un eventuale
digit meno significativo, posto a destra del
primo. Collegato allingresso RBI del decoder successivo produrr lo stesso effetto, tenendo spento il digit a esso collegato
solo se sui suoi ingressi DCBA presente il
codice (0000) 2;
c) collegando in cascata le uscite RBO di
ciascun decoder (a cominciare da quello associato al digit pi significativo) con lingresso RBI del decoder successivo (subito a destra) dunque possibile evitare di accende-

71

66-73_MrAkeer_fe 03/12/09 08.33 Pagina 72

langolo di Mr A.KEER

re tutti gli antiestetici e inutili zero a sinistra di


un numero. Anche nella pratica comune sembra logico scrivere 236 piuttosto che 0236.
Va per altro notato che se il 9368 utilizzato nel pieno della sua specificit (quella di
mostrare numeri esadecimali) questo servizio comunque illogico, sia per il fatto che
ogni cifra del numero mantiene la sua necessit desistere (anche gli zero a sinistra,
basti pensare a un indirizzo o un dato a 16
bit, come 0AF5 H o come 001E H), sia per
limprobabilit di dover mostrare un numero esadecimale frazionario (rendendo cos
inutile anche il servizio per gli zero a destra). Ma pur vero che questo dispositivo
si comporta benissimo anche nellambito
di un visualizzatore decimale, dando in questo caso per scontato che linformazione
fornita in ingresso ai decoder sia di tipo
BCD, anche se essi sarebbero in grado di
processare tutte le 16 possibili combinazioni. La situazione mostrata in figura
13 , relativa a un visualizzatore con 4 digit
FND500, ciascuno controllato da un 9368,
nellipotesi che i codici BCD in ingresso ai 4
decoder siano quelli corrispondenti alle cifre
0236; con questa predisposizione (ingresso
RBI del decoder collegato al digit pi significativo forzato a massa) lo 0 corrispondente al codice (0000) 2 , fornito sui
suoi ingressi DCBA, non viene mostrato (il digit rimane spento). Questa situazione forza
a 0 anche luscita RBO che, a sua volta,
forza a massa lingresso RBI del decoder collegato al digit successivo (subito a destra).
Poich il codice presente sugli ingressi
DCBA di questo decoder non (0000)2, il fatto che il suo ingresso RBI sia a livello logico
0 ora del tutto irrilevante e, da questa
posizione in poi ogni cifra verr visualizzata,
anche gli eventuali 0 interni. In caso contrario anche il secondo digit rimarrebbe
spento e, in coerenza con la regola, il decoder a esso associato forzerebbe a 0 la sua
uscita RBO e, di conseguenza, anche lingresso RBI del decoder collegato al digit
successivo (il terzo da sinistra); il meccanismo si applica per tutte le cifre del display e,
se fosse mantenuto inalterato per tutti i decoder successivi al primo, fornendo 4 codici

72

Figura 14: progetto con FND500, Binary to 7-segment Latch/Decoder/Driver 9368.

Figura 15: tabella di verit Binary to 7-segment Latch/Decoder/Driver 9368.

INGRESSI

USCITE

LE

RBI

RBO

dato

dato memorizzato sul fronte di salita di LE

10

11

12

13

14

15

BI

H livello logico alto


L livello logico basso
X livello logico irrilevante

66-73_MrAkeer_fe 03/12/09 08.33 Pagina 73

BCD nulli, terrebbe spento tutto il visualizzatore. Sebbene la cosa sia possibile non
sembra comunque una buona soluzione:
se sugli ingressi DCBA di ogni decoder viene fornito il codice (0000) 2 ragionevole
mostrare almeno lo zero associato al digit pi
a destra; per questa ragione lingresso RBI
del decoder a esso relativo viene mantenuto a 1, spezzando la catena di controllo e
vanificandone leffetto.
Nella scorsa puntata abbiamo analizzato
anche lo schema necessario per gestire gli
zero non significativi della parte frazionaria,
per esempio come nel numero 63,20; poich
la tecnica rimane sostanzialmente identica
evitiamo di appesantire ulteriormente questa
trattazione, rimandando il lettore a quanto gi
pubblicato.

Figura 16: schema funzionale Binary to 7-segment


Latch/Decoder/Driver 9368.

Lo strato del driver


La terza parte di questo componente decisamente interessante ed esclusiva: ciascuna delle uscite interne del decoder
dotata potente driver in grado di erogare verso i segmenti-LED una corrente I OH da
16mA (minima) a 22mA (massima), senza bisogno di resistori per limitare la corrente; la
tensione nominale duscita a livello alto
(V OH ) 3,4V (secondo il datasheet), ma
con un LED a essa direttamente collegato si
adatter al valore della caduta ai suoi capi,
cio da 1,75V a 1,85V.
Nellimpiego con un normale digit a catodo
comune la presenza di resistori di limitazione
corrente in serie ai segmenti-LED non
dunque necessaria. La figura 14 propone
questa situazione, sottolineando che nel
normale funzionamento, il piedino di controllo LE (pin3) della memoria latch deve
essere a massa mentre le due linee di controllo del Ripple Blanking, RBO (pin4) e RBI
(pin5), irrilevanti in questo caso, possono essere lasciate inattive, lasciando scollegata
la prima e scollegata (o meglio collegandola
a +5V) la seconda.
Anche in questo caso la tabella di verit
(Function Table, figura 15 ) offre uneccellente sintesi del funzionamento del dispositivo, per cui importante saperla consultare e capire:
a) lultima riga evidenzia la forza prioritaria
di BI, sul pin4 usato come ingresso: quando esso attivo (basso, L), tutte le uscite di
segmento passano a 0 indipendentemente dal valore di ogni altro ingresso, spegnendo di fatto il digit collegato al decoder;

b) la prima riga mostra leffetto di LE: se esso tenuto a 1 (alto, H) la memoria mantiene
sulle uscite il valore presente sugli ingressi
DCBA nel suo passaggio da 0 a 1 (fronte di
salita); riportata a 0 la memoria trasparente
(la parola DCBA dingresso passa sul decoder senza alcun intoppo);
c) la seconda riga conferma linfluenza dellingresso RBI sul simbolo mostrato sul digit e su RBO (pin4 usato come uscita): se
forzata a 0 (attiva bassa, L), essa produce
effetto solo quando sugli ingressi DCBA
presente il codice (0000)2 ed irrilevante in
tutti gli altri casi.
Le caratteristiche logiche di questo componente sono riassunte in dettaglio dallo
schema funzionale ( figura 16 ) e sinteticamente dallo schema pratico ( figura 17 ).
In conclusione, lutilizzo del 9368, prodotto dalla Fairchild Semiconductor da pi di
ventanni, molto versatile in ogni applicazione, ma risulta particolarmente interessante quando chiamato a operare
nellambito dei microprocessori o dei microcontrollori.Essendo lunico decoder in
grado di organizzare la visualizzazione dei
simboli esadecimali, indispensabili per tradurre in modo umano le comunicazioni binarie, si presta in modo eccellente per visualizzare le informazioni tipicamente presenti sulle porte duscita di un micro o di un
PC, come indirizzi (delle locazioni di memoria, visualizzabili su 4 digit a partire dai
loro 16 bit) o dati (per esempio il contenuto di registri della CPU o di una locazione

Figura 17: schema pratico Binary to 7-segment


Latch/Decoder/Driver 9368.

della memoria, visualizzabili su 2 digit a


partire dai loro 8 bit). La sua disponibilit di
un stato di memoria rende inoltre possibile linterfacciamento diretto con le linee
del Bus Dati di un processore o di un singlechip, controllando il sincronismo di memorizzazione (LE) a partire dai Bus Address e Bus di Controllo, con opportune reti di decodifica binaria.
Lassorbimento tipico di 335 mW e il ritardo di propagazione (Propagation Delay Time, rilevato con carico di 100ohm/15pF) per
disporre di uscite stabili pari t PLH=75ns e
tPLH= 50ns, dopo lapplicazione di un codice
in ingresso, e leggermente maggiore dopo
lapplicazione del segnale LE.
Per finire possiamo citare altri due componenti, del tutto pinout compatibili con il
9368 ma dotati di uscite attive basse, adatte quindi a digit ad anodo comune, come
lFND507: il 9370, versione con uscite open
collector sempre prodotta dalla Fairchild
Semiconductor, funzionalmente identico e
capace di gestire tutti e 16 i codici a 4 bit
proposti in ingresso, ma che ha bisogno
di resistori esterni; e il 8374, prodotto dalla NTE Electronics, capace di assicurare
15mA in uscita ma limitato a interpretare solo ingressi di tipo BCD. q
CODICE MIP 2757075

73

74-85_Voip_FE 04/12/09 15.37 Pagina 74

imparare &

imparare & approfondire

di GRAZIA ANCONA

INTRODUZIONE AL VOIP
(parte quarta)

In questa quarta e ultima


puntata affronteremo
insieme il protocollo SIP.
Esso rappresenta la tendenza
pi attuale nella progettazione
di sistemi VoIP

Figura 1: suite protocollare SIP allinterno dello stack ISO-OSI.

el 1999 un gruppo di ingegneri


facenti capo allo IETF (Internet
Enginering Task Force) mise a
punto la prima versione del protocollo SIP,
acronimo di Session Initiation Protocol, rilasciando il primo documento ufficiale battezzato come RCF 2543. La sigla RCF
non ha nessuna attinenza con marchi commerciali, essa significa semplicemente Request for Comments e i lettori pi attenti ricorderanno che gi stata incontrata nella seconda puntata. Lobiettivo del loro la-

voro, portato a termine quando esisteva gi


un sistema valido come lH323 (vedi terza
puntata), era quello di fornire un protocollo di facile applicazione, ottimo anche per
uso domestico, abbastanza indipendente
dallhardware e dal protocollo di trasporto
utilizzato. Facendo un doveroso paragone,
si pu dire che chi progett lH323 lo fece
con una prospettiva quasi esclusivamente
telefonica. Il SIP, daltro canto, stato pensato in un momento in cui appariva necessaria la convergenza di tutti i servizi informatici come e-mail, database, applicazioni aziendali e naturalmente VoIP. Possiamo anche pensare al SIP come a uno
standard aperto a qualsiasi futura implementazione, privo di complicate strutture
protocollari e facilmente utilizzabile in ogni
architettura preesistente. Un buon punto di
forza del SIP nel somigliare molto ad altri protocolli decisamente familiari a chi si
occupa di Internet: il protocollo HTTP e il
protocollo SMPT, questultimo usato per la
posta elettronica. Attualmente lo IETF fa riferimento alla raccomandazione RCF 3261
e seguenti (RCF 3262, RCF 3903, ecc.)
per individuare le caratteristiche del protocollo SIP. Nel corso degli anni si assistito
a un progressivo avvicinamento delle funzionalit fra H323 e SIP, tuttavia bene
sottolineare che sono protocolli progettati con diverse filosofie dimpiego e le differenze concettuali sono molte.

ARCHITETTURA PROTOCOLLARE DEL SIP

Figura 2: esempio di multihoming fra una LAN e rete Internet.

74

Anche la suite SIP fa uso di protocolli ampiamente utilizzati e quindi di sicura affidabilit. Alcuni di essi li abbiamo gi incontrati nella terza puntata quando parlavamo dello standard H323. In figura 1
possibile osservare lo stack protocollare
completo (i protocolli che compongono lo
standard SIP sono colorati in giallo). Possiamo inoltre notare i protocolli essenzialmente destinati alla voce, distinti dagli
standard dedicati invece alle segnalazioni
e alla sicurezza delle informazioni. Alcuni
protocolli operanti al livello di layer di pre-

74-85_Voip_FE 04/12/09 15.37 Pagina 75

approfondire
sentazione e sessione, come SDP e SAP,
non sono mai stati affrontati nella nostra
trattazione. Niente paura, lo faremo in seguito. Anche a livello del layer di trasporto,
pu essere usato un protocollo che non abbiamo mai incontrato prima: lSCTP (Stream
Control Transmission Protocol). Esso pu
essere scelto in una suite comprendente
i ben noti UDP e TCP, protocolli gi ampiamente trattati nelle puntate scorse.
LSTCP un protocollo molto versatile, sicuramente destinato a sostituire il TCP da
qui a breve. Nato con la sigla MDTP, questo protocollo cambier nome in SCTP
solo dopo nove versioni. La lunga gestazione si rese necessaria per progettare un
sistema di connessione veramente sicuro
e dotato di peculiarit destinate a non farlo invecchiare troppo precocemente. Vediamo dunque le caratteristiche fondamentali di questo protocollo:

possibilit di connessioni multiple;


alta tolleranza ai guasti;
la consegna dei dati non legata a una
sequenza particolare;

possibilit di implementare load balancing.


Esaminiamole una ad una. La possibilit di
connessioni multiple un opzione molto importante, quasi inopinabile dal momento
che la tendenza attuale nella progettazione
di reti telematiche quella di offrire allutente
una diversificazione nella scelta dei protocolli usati nel collegamento. Non solo,
possibile stabilire collegamenti con pi indirizzi e addirittura testare, per mezzo di appositi pacchetti, la presenza in rete degli indirizzi prescelti. In questo modo il collegamento non verr abbattuto se uno dei nodi non pi in attivit o se lindirizzo viene
cambiato. Sar infatti sufficiente utilizzare
un altro nodo, e quindi un altro percorso,
per mantenere il collegamento. Per questa
peculiarit, lSCTP viene definito un protocollo orientato allassociazione e non al
collegamento. Le potenzialit di indirizzamento multiplo, definite anche multihoming, consentono inoltre unimmunit ai
guasti non supportabile dagli altri protocolli
fin qui studiati. I concetti fin qui espressi sono riassunti in figura 2, dove il multihoming
rappresentato in un segmento di rete
piuttosto classico: una rete locale (LAN)

Figura 3: multiplexer associativo mediante protocollo SCTP.

collegata a Internet a mezzo di provider.


Unaltra caratteristica importante costituita
dal poter disporre di datagrammi (pacchetti) che trasportano dati relativi ad applicazioni diverse. In questo modo si realizza
un multiplexer virtuale, ovvero realizzabile
senza ulteriori implementazioni hardware,
in cui diverse applicazioni possono partecipare allo scambio dati fra due entit per
mezzo di unassociazione SCTP. I dati,
poi, possono essere inviati anche senza un
ordine predefinito. Infatti, i singoli payload
sono comunque associati a un identificatore
che pu essere utilizzato dallapplicazione
per ricostruire lintera trama. In figura 3
schematizzato questo concetto (nellesempio mostrato i dati sono trasmessi in sequenza) che viene spesso definito con il nome di multistream.
Il load balancing, altra caratteristica importante dellSCTP, consiste in una serie di
precauzioni destinate a non sovraccaricare la larghezza di banda del mezzo trasmissivo e, conseguentemente, evitare
perdite di dati. Ci ottenuto con alcune
metodologie quali, ad esempio, consigliare allente ricevente un buffer minimo
per i dati trasmessi oppure cominciare a trasmettere piccole quantit di dati per poi aumentare progressivamente. In questo caso
la perdita di pacchetti definir una soglia
massima di capacit ricettiva che non dovr essere superata nella sessione. Il formato dei datagrammi SCTP mostrato in
figura 4.

Come possiamo notare vi un header,


elemento presente in tutti i protocolli che finora abbiamo affrontato, seguito da un
numero variabile di chunk. La parola chunk,
letteralmente pezzetto, usata per definire parti del datagramma che contengono
i dati trasmessi (payload) oppure altre informazioni relative alla sessione. Esistono
quattordici tipologie di chunk, alcune di
queste devono necessariamente essere
trasmesse singolarmente, ovvero senza
altri chunk accodati. Tutte le tipologie di
chunk sono riassunte in tabella 1 ove sono anche riportati i loro acronimi e le relative
descrizioni.
A questo punto si potrebbe pensare che il
protocollo SCTP, per la sua completezza e
versatilit, sia effettivamente una scelta
giusta rispetto a UDP o TCP. Tuttavia, come sempre, la scelta del protocollo fatta
in funzione delle caratteristiche della rete e
del contenuto informativo che stiamo trattando (voce, dati, video, ecc.). Tutto questo
per dire che il protocollo SCTP, al di l dei
suoi tanti pregi, in una sessione VoIP potrebbe non garantire la performance del
TCP (e ancor pi dellUDP) in termini di
capacit di trasferimento dati nellunit di
tempo. Viceversa, loccupazione di banda
del protocollo SCTP decisamente modesta se confrontata, ad esempio, con
quella del TCP. In figura 5 e figura 6 si pu
vedere lespressione grafica dei concetti appena accennati.
La penalizzazione del data trasfer dellSCTP dipende, in primis, dal fatto che le
75

74-85_Voip_FE 04/12/09 15.37 Pagina 76

imparare & approfondire

imparare & approfondire

Tabella 1 Tipologie di chunk

NUMERO
IDENTIFICATIVO

ACRONIMO

TIPOLOGIA

DATA

Dati trasmessi

Si

INIT

Inizializzazione collegamento

No

INIT ACK

Conferma inizializzazione

No

SACK

Controllo del flusso dati e congestione

Si

HEARTBEAT

Verifica attivit indirizzo IP (per multihoming)

Si

HEARTBEAT ACK

Conferma di indirizzo IP attivo

Si

ABORT

Abbatte unassociazione SCTP

Si

SHUTDOWN

Richiesta di chiusura collegamento

No

SHUTDOWN ACK

Conferma di chiusura collegamento

No

ERROR

Errore (varie tipologie)

Si

10

COOKIE ECHO

Usati durante linizializzazione


di una connessione SCTP

Si

11

COOKIE ACK

12

ECNE

Notifica di congestione traffico

Si

13

CWR

Riduzione della capacit trasmissiva


a seguito di congestione per traffico

Si

caratteristiche principali di questo protocollo sono la sua sicurezza e la sua


estrema elasticit dimpiego. Cominciamo
ora a entrare nel dettaglio delle entit
hardware-software definite nel protocollo SIP, cos come abbiamo visto, nelle
puntate scorse, per il protocollo H323.

SIP USER AGENT


E la cellula elementare di ogni impianto
(acronimo UA) e viene anche definito terminale o end-point. Trattasi di un dispositivo hardware-software in grado di effettuare una sessione di scambio dati/voce, utilizzando il protocollo SIP. In pratica
pu essere un telefono dedicato che invece di essere connesso alla linea PSTN
utilizza un nodo IP, un PC (se lo scambio
riguarda solo dati) oppure un PC ove il
software in esecuzione permette la simulazione di un telefono. Questultima possibilit, molto sfruttata anche da gestori indipendenti, viene anche indicata con il
termine di soft-phone. Tra laltro, in Internet possibile trovare programmi che
simulano un soft-phone, da utilizzare con
il proprio PC, il cui utilizzo completamente gratuito. Esistono due tipi di UA, la
cui diversificazione molto semplice. Viene definito UA client (acronimo UAC) lendpoint che inizia la sessione o chiamata. UA
server (acronimo UAS) invece il terminale
che riceve la chiamata. Lo stesso UA di
una rete SIP pu quindi agire sia da client
76

CHUNK
AGGIUNTIVI

che da server, dipende dalla direzione


della chiamata. Naturalmente, nellambito della stessa sessione, non potr esserci
uno scambio di ruolo per questo tipo di
elemento. Sar bene, per una completa
comprensione del protocollo SIP, familiarizzare subito con il paradigma client-server sopra accennato, ricordando che la differenza fra UAC e UAS solamente logica (e non, per esempio, hardware).

SIP PROXY SERVER


Il Proxy Server operante in uninfrastruttura
SIP generalmente associato a una ben definita area geografica o zona. Esso costituito, nella maggior parte dei casi, da un PC
su cui gira un programma in grado di gestire
le chiamate. Se richiesto, pu effettuare
una gestione personalizzata dei diversi
end-point costituenti la sua zona di competenza (rifiuto chiamate per certi numeri, tariffazione, ecc.). Se per motivi vari non in
grado di svolgere le sue funzioni specifiche,
esso pu chiamare a sua volta un altro
proxy a cui demandare le funzionalit necessarie. Questa caratteristica rende il proxy
server in grado di funzionare anche da
client. Osservando la figura 7 si noter
che il lavoro principale di questo componente, tuttavia, linstradamento (routing)
delle varie chiamate e risposte provenienti
dagli end-point di sua competenza.
Sempre in figura 7 possibile osservare
schematicamente il concetto di scambio dei

Figura 4: formato generico di un pacchetto SCTP.

Figura 5: ampiezza di banda (bandwidth) dellSTCP


confrontata con TCP.

ruoli fra UAC e UAS. Questa caratteristica,


come si pu osservare, dipende dalla direzione delle richieste e delle risposte. Esiste per unulteriore classificazione dei
Proxy Server, che possono dividersi in:

stateless;
statefulll.
I proxy stateless sono molto semplici poich non conservano memoria della transizione (sessione SIP) che effettuano. Per
usare una terminologia da addetti ai lavori, si pu anche dire che sono completamente trasparenti ai vari messaggi del
protocollo SIP. E interessante sottolineare
che, nellambito di una stessa sessione
SIP, lo stesso Proxy Server pu assumere
entrambe le funzioni (seppure in fasi distinte). I proxy statefull, dal funzionamento
pi complesso, si dividono invece in altre
due ulteriori categorie:

transaction statefull;
call statefull.
I transaction statefull conservano la traccia
soltanto delle richieste e delle risposte dei
vari UA (siano essi UAC o UAS). Nessun altra informazione riguardo la sessione SIP
in attivit viene registrata o memorizzata.
I server proxy call statefull, viceversa, conservano memoria dellintera sessione e
lasciano tracce evidenti della loro presen-

74-85_Voip_FE 04/12/09 15.37 Pagina 77

e
corre per fare la conoscenza della sintassi
di un indirizzo SIP. Allinizio di questa puntata abbiamo sottolineato la somiglianza fra
il protocollo SIP e altri protocolli sicuramente pi noti quali lHTTP e lSMPT. A
conferma di ci vi da dire che tale somiglianza riguarda anche la sintassi degli indirizzi SIP. Ad esempio:

minio. Supponiamo ora che il nostro Mario


Rossi abbia a disposizione pi terminali telefonici, uno per ogni zona geografica ove
possibile risieda. In tal caso potremmo avere una situazione di questo tipo:
sip:[email protected]
sip:[email protected]
sip:[email protected]

sip:[email protected]

Figura 6: capacit di trasferimento dati (data transfer)


dellSCTP confrontata con TCP.

za nella sintassi dei messaggi del protocollo


SIP. La funzione principale dei call statefull
la tariffazione del servizio VoIP offerto.
Unaltra funzione, molto utile, che pu essere svolta da entrambe le tipologie la cosiddetta replicazione delle chiamate, spesso abbreviata con il termine forking. Si
tratta, in sostanza, di ripetere per un numero determinato di indirizzi la stessa
chiamata. Vedremo fra breve quale pu essere il vantaggio nellutilizzare una simile
tecnica. Prima di entrare nel dettaglio oc-

un indirizzo valido per uninfrastruttura


SIP, ma senza il preambolo sip: lo sarebbe anche per una casella e-mail di posta
elettronica. Un modo pi ragionato per interpretare un indirizzo SIP pensare che lutente mario-rossi registrato presso il server ditta.magazzino.com. Questultima dicitura, bene sottolinearlo, non il nome del
server ma il suo indirizzo, e come tale pu
essere espresso anche in forma numerica. Lindirizzo del server a cui lutente appartiene, spesso fornito dal suo gestore di
servizi Internet (provider) anche definito do-

Il primo indirizzo si riferisce sempre allazienda ove lavora Mario Rossi, ma in altro locale (uffici, per lesattezza). Il secondo indirizzo fa evidente riferimento alla sua abitazione, mentre il terzo possiamo dedurre sia
lindirizzo telefonico della sua casa per le vacanze. Con la funzione di forking sopra accennata sar possibile chiamare contemporaneamente tutti gli end-point che fanno
riferimento a Mario Rossi. Questultimo si
presuppone risponder solo presso il terminale interessato. Questo esempio ci fa capire quante funzionalit possa offrire un sistema di telecomunicazioni basato su IP.

Tabella 2 Tipologie dei messaggi SDP

TIPO DI
DESCRITTORE
Descrittori
e di session

Descrittori
di tempo

Descrittori dei
media utilizzati

CARATTERE
INDICATORE

PARAMETRI
DESCRITTI

OPZIONALE/
OBBLIGATORIO

NOTE

Versione del protocollo SDP usato

Obbl.

Deve necessariamente essere la prima


riga nel corpo SDP

Creatore della sessione e suo identificativo;


indirizzo tipologia della rete;
versione del protocollo IP

Nome della sessione (stringa di caratteri)

Obbl.

Non necessario in sessioni VoIP utente-utente.


In questo caso possibile mettere uno spazio
bianco dopo = in quanto trattasi
di un parametro obbligatorio

Informazioni aggiuntive sulla sessione

Opz.

Non necessario se si usa il protocollo SIP

Fornisce un indirizzo URI (Uniform Resource Identifier)


per accedere a una risorsa

Opz.

Parametro raramente utilizzato


in sessioni VoIP SIP

Obbl.

Indirizzo e-mail

Opz.

Numero telefonico in formato numerico

Opz.

Tipo di connessione; tipo di rete, indirizzo


a livello di layer di rete

Opz.

Banda in Kb/s necessaria per stabilire la connessione

Opz.

Aggiustamenti dellorologio dovuti a differenze


di fuso orario o ora legale

Opz.

Dati per la chiave di criptazione

Opz.

Ulteriori attributi di sessione

Opz.

Tempo dinizio (start) e di fine (stop) della sessione

Obbl.

Nel caso di sessioni voce SIP il tempo di fine non


generalmente specificato. In questo caso si usa
scrivere t = 0 che significa durata infinita
della conversazione

Per sessioni a programmazione ripetitiva specifica


il tempo dintervallo fra luna e laltra

Opz.

Parametro raramente utilizzato in sessioni


VoIP SIP

Tipo di media (audio, video, ecc.); protocollo


utilizzato; porta di application multiplexer
utilizzata; tipo di payload

Obbl.

Trattasi di un parametro importante di trasporto


in ogni sessione SIP

Inutile in sessioni VoIP SIP

77

74-85_Voip_FE 04/12/09 15.37 Pagina 78

imparare&approfondire

imparare & approfondire

Figura 8: struttura di un messaggio generico SIP.

a volte necessario aggiungere linee


vuote (carattere CRLF) se la sintassi lo
prevede;
in alcune circostanze necessario luso
di caratteri di interpunzione (generalmente
, oppure ;) nella sintassi.

Figura 7: funzioni del proxy server in uninfrastruttura SIP.

REDIRECT SERVER
Questo elemento fornisce allUAC (ovvero il
terminale chiamante) tutte le informazioni sui
nodi di rete da attraversare e sui percorsi necessari per raggiungere lUAS (il terminale
chiamato). Infatti non sempre lUAS si trova
nellarea coperta dal Proxy Server e, inoltre,
il protocollo SIP prevede che lo stesso indirizzo possa essere usato con un endpoint diverso. Questa caratteristica spesso definita come nomadicit. Una volta che
viene individuato lUAS il Redirect Server
esce di scena e non viene pi coinvolto
nelle fasi successive della sessione.

REGISTRAR SERVER
Questa entit nella maggioranza dei casi
rappresentata da un apposito programma
che risiede nel Proxy o nel Redirect Server.
Il compito di un Registrar Server elaborare
i messaggi di registrazione che gli UAC inviano per segnalare la propria posizione
allinterno della rete. Se un UAC cambia
zona, sfruttando la nomadicit permessa dal
protocollo SIP, il Registrar Server ne deve
prendere atto e registrare il suo nuovo indirizzo IP in unapposita lista definita Location Server. Da questo momento in poi
lindirizzo del chiamato sar associato al suo
attuale indirizzo IP. Anche il Location Server
costituito generalmente da unapposita
funzione di un programma in esecuzione.
Per comprendere meglio questo concetto
occorre sottolineare che in SIP vi una
suddivisione fra unit logiche e unit fisiche.
Le prime, costituite dai componenti che
abbiamo visto (Proxy, Registrar e Redirect
Server), possono anche essere integrate
in una sola unit fisica. In questo caso, un
78

solo PC, scelto tenendo conto delle sue


prestazioni, potr svolgere pi ruoli ricorrendo a pi programmi residenti.

FORMA E SINTASSI DEL PROTOCOLLO SIP


A questo punto possiamo analizzare nei
dettagli una sessione voce organizzata sul
protocollo SIP. Ricordiamo i punti salienti di
questo protocollo:

la transizione fra UAC e UAS si basa su un


modello richiesta-risposta (a ogni richiesta
del client deve necessariamente corrispondere una risposta del server);
i messaggi scambiati sono in testo (molto simile al protocollo HTTP);
la tipologia del messaggio di richiesta
molto simile al messaggio di risposta, eccetto che per la prima linea di testo;
ogni richiesta e risposta, oltre alloggetto della comunicazione, pu contenere un
message body generalmente costituito da
caratteri ASCII o testo in HTML. Scopo
dei body fornire unulteriore descrizione,
peraltro facoltativa, della sessione in atto. Il body generalmente costituito da
testo, espresso secondo il protocollo SDP.
Queste caratteristiche, che almeno a prima vista dovrebbero consentire una buona interpretazione del protocollo SIP, implicano alcune ristrettezze formali. Vediamo quali:

il testo dei messaggi case sensitive.


Ovvero la parola Pietro diversa dalla
parola pietro;
non possiamo aggiungere spazi bianchi
casuali nella prima riga;

Abbiamo precedentemente accennato a


due protocolli che nella nostra breve trattazione non erano mai stati incontrati: il
SAP e lSDP. Cominciamo con il dire che il
SAP (Session Announcement Protocol) ha
il compito di trasportare lSDP, ovvero, se
preferite, lSDP il payload del SAP. Da
notare che questultimo protocollo, che
viene trasmesso in forma binaria, ha bisogno
di un suo Proxy che, per lappunto, definito Proxy SAP. Naturalmente la funzione
di un Proxy SAP pu essere assolta anche da un Proxy con peculiarit diverse a
patto che, nel suo interno, vi sia un apposito
software dedicato a questa funzione. Il SAP
nasce dallesigenza di disporre di un protocollo a bassa occupazione di banda, generalmente intorno ai 4 kb/s, destinato al trasporto di annunci di sessioni SIP. Va da s
che se la sessione SIP gi in essere, gli annunci possono essere inviati allinterno di un
messaggio SIP e quindi la funzione principale di questo protocollo viene meno. Gli annunci SAP sono ricevuti sempre dalla porta 9875 dellApplication Multiplexer e vengono a loro volta trasportati in un payload
UDP. Vediamo adesso il protocollo SDP.
E questi un protocollo che, diversamente da
altri, si esprime non in binario ma con una
sintassi di caratteri di tipo testo. La funzione dellSDP quella di fornire tutte le informazioni relative ai parametri necessari per
stabilire una chiamata voce. Infatti, il protocollo SIP non ha alcuna funzione nativa
che permette di far conoscere ad esempio
il CODEC usato, la porta dellapplication
multiplexer interessata, la versione del protocollo di rete utilizzato e via dicendo. Solo
dopo che UAC e UAS hanno mediato le lo-

74-85_Voip_FE 04/12/09 15.37 Pagina 79

Problemi di SICUREZZA? Ecco la nostra soluzione!


Vasta scelta di DVR (Video Registratori Digitali) per soddisfare qualsiasi esigenza di videosorveglianza.
Tutti i nostri modelli consentono la registrazione in locale ed il controllo remoto tramite Internet.

Set completo per videosorveglianza


con monitor LCD da 19

655,00

NEW

19

Si installa in pochi minuti! Possibilit di connessione ad un router


ADSL per controllo remoto tramite Internet. Pi di tre mesi di
registrazione continua sullhard disk interno.

IVA INCLUSA

Il sistema comprende:
 S]'95FDQDOL,36
con telecomando (cod. DVR4L4)
 S]+DUG'LVN*%6$7$
 S]0RQLWRU/&':,'(
 S]7HOHFDPHUDFRQ,5
 FRG&3
 S]$OLPHQWDWRUHSHUWHOHFDPHUD
 S]&DYRYLGHRFRQSOXJ
dalimentazione 10 metri
(cod. VP002-10)

FR397

DVR 4 canali H264 con Ethernet,


porta USB e uscita VGA/Videocomposito

HDD 320GB SATA


Velocit di trasferimento
(7200 rpm) e riduzione
degli errori grazie agli
0%GLEXIIHU)RUPDWR
SROOLFLUXPRURVLWjG%
Ideale per essere utilizzato
con i nostri DVR dotati
dinterfaccia SATA.
SATAHD320GB

69,00

295,00

NEW

IVA INCLUSA

Videoregistratore digitale real-time con formato di compressione H.264, quattro canali con frame
rate di 100 IPS, interfaccia Ethernet (10-100 Base-T), uscita video VGA e videocomposito. Dispone
di porta USB, per il trasferimento delle sequenze video su chiavetta, e di ingresso/uscita audio.
Funzione Motion Detection, possibilit di registrare, riprodurre e visualizzare contemporaneamente
le immagini. Visione da remoto tramite connessione Internet con possibilit di effettuare registrazioni
e back-up. Supporta 1 hard disk SATA con capacit massima di 1TB (non compreso).

DVR4L4

CODICE MIP 2753573

Principali caratteristiche dei nostri DVR


Codice

Canali

Interfaccia
per Back-up

HDD

Compressione

IPS

Uscita IN/OUT Telecom. IN/OUT


video
audio
IR
allarme

FR381

FR371

Prezzo

Ethernet USB (pendrive)

SATA
(interno)

H264

100

V. comp.

4/2

4/1

350,00

DVD-RW Ethernet USB


(pendrive)

IDE/ATA
(interno)

MPEG4 (CIF) / MPEG4 (FRAME)

100

V. comp.

2/1

4/1

596,00

FR329AS

Ethernet

SATA
(interno)

MPEG4 (CIF) / MPEG4 (FRAME)

100

V. comp.

1/1

4/1

264,00

FR375

Ethernet USB (pendrive)

SATA
(interno)

H264

100

VGA
V. comp.

4/1

4/1

385,00

FR374

Ethernet USB
(collegamento PC-Backup)

SATA
(interno)

MPEG4 (CIF) / MPEG4 (FRAME)

50

V. comp.

1/1

4/1

220,00

FR367AS

Ethernet USB (pendrive)

SATA
(interno)

MPEG4 (CIF) / MPEG4 (FRAME)

100

V. comp.

1/1

4/1

330,00

FR367ASV

Ethernet USB (pendrive)

SATA
(interno)

MPEG4 (CIF) / MPEG4 (FRAME)

100

VGA
V. comp.

1/1

4/1

360,00

FR395

Ethernet USB (pendrive)

SATA
(interno)

H264

200

VGA
V. comp.

4/2

8/1

840,00

FR382

Ethernet USB (pendrive)

SATA
(interno)

H264

100

V. comp.

1/1

8/1

650,00

FR335

16

CD-RW Ethernet
USB (pendrive) RAID

IDE/ATA
(interno)

MPEG4 (CIF) / MPEG4 (FRAME)

400

V. comp.

4/2

16/1

1.320,00

FR396

16

Ethernet USB (pendrive)

SATA
(interno)

H264

400

VGA
V. comp.

4/2

16/1

1.060,00

NOTA: I videoregistratori digitali vengono forniti senza Hard Disk. Tutti i DVR sono alimentati a bassa tensione mediante specifico adattatore da rete (incluso).
V. comp. = uscita segnale videocomposito (con connettore BNC) per monitor tradizionali di tipo analogico.

in
idee ica
ron
elett

9LD$GLJH*DOODUDWH 9$ 
7HO)D[

Maggiori informazioni su questi prodotti e su tutte le altre apparecchiature sono disponibili sul
sito www.futurashop.it tramite il quale anche possibile effettuare acquisti on-line.

Tutti i prezzi sono


da intendersi IVA inclusa.

74-85_Voip_FE 04/12/09 15.37 Pagina 80

imparare & approfondire

imparare & approfondire

Tabella 3 Protocollo SIP: metodi di richiesta (Request Line)

ACRONIMO

DESCRIZIONE DEL METODO

NORMATIVA DI RIFERIMENTO

INVITE

Indica a un utente (oppure a un servizio) che stato invitato a una sessione SIP e, avvalendosi
del protocollo SDP, descrive la tipologia della sessione stessa

RFC 3261

ACK

Viene inviato dallUAC che ha gi trasmesso un INVITE per confermare che la sessione stabilita

BYE

Termina una sessione e pu essere inviato sia dal chiamante che dal chiamato

CANCEL

Elimina qualunque richiesta ancora pendente (anche non risolta)

OPTIONS

Usato da un UA che chiede di conoscere le prestazioni e/o caratteristiche di un Server o di un altro UA

REGISTER

Usato da un UA generico per annotare la propria presenza su un Register Server

PRACK

Riconoscimento (ACK) provvisorio. Usato se vengono interfacciate reti


PSTN ove sono possibili problemi di segnalazione

RFC 3262

SUBSCRIBE

Permette di registrarsi presso una lista di UA che, in seguito, saranno interessati


a eventi/messaggi inviati loro tramite il metodo NOTIFY

RFC 3265

UNSUBSCRIBE

Permette di cancellarsi da una lista di UA, vedi metodo SUBSCRIBE

NOTIFY

Notifica un evento/messaggio a un UA generico. usato in stretta relazione con il metodo SUBSCRIBE

PUBLISH

Annuncia un evento (sessione SIP) a un Server

RFC 3903

INFO

Invia informazioni inerenti la sessione in corso che tuttavia non possono modificare lo stato della
sessione stessa. Usato, ad esempio, per le informazioni di tariffazione e per inviare toni DTMF

RFC 2976

REFER

Necessario per il trasferimento di chiamata. Supponiamo che A e B abbiano una sessione in corso e A
decida di trasferire la chiamata a C. Per ottenere ci A dovr inviare un REFER a B

RFC 3515

MESSAGE

Invia un messaggio generico usando il protocollo SIP. Pu sostituire la classica e-mail

RFC 3428

UPDATE

Modifica lo stato di una sessione senza cambiare il dialogo in corso fra UAC e UAS

RFC 3311

ro esigenze ricorrendo al protocollo SDP sar possibile il transito dei pacchetti in RTP,
questi ultimi contenenti i campioni audio
del parlato. E importante sapere che le
informazioni fornite da SDP riguardano essenzialmente tre categorie:

sessione, ovvero tutte le informazioni relative ai contenuti della sessione (se voce,
video, oppure conferenza, ecc.);
tempistica, vale a dire i tempi dinizio
conversazione, di durata, ecc. Questi dati sono a volte necessari per la tariffazione;
trasmissione, da intendersi come informazioni riguardanti i flussi da ricevere e
trasmettere (CODEC, numero campioni al
secondo, porte utilizzate, ecc.).
La tipologia di un body (insieme di istruzioni) in SDP molto semplice e vale la pena descriverla. Essa si basa sempre su
una serie di istruzioni che occupano una riga ognuna. La sintassi :
tipo = valore
in cui tipo un semplice carattere (a, v,
ecc.) che individua univocamente il parametro che stiamo descrivendo. Lutilizzo di
un singolo carattere alfanumerico una
scelta obbligata dal fatto che SDP un
80

protocollo testuale cosicch, in quanto tale, occupa sicuramente una banda maggiore rispetto ad altri protocolli che si esprimono in forma binaria. Con la dicitura valore indichiamo una stringa alfanumerica
che definisce il valore numerico o gli attributi
assunti dal parametro in oggetto. Il carattere =, sempre presente, indica la separazione fra le due entit. Pu essere interessante notare che le informazioni SDP
possono essere inviate in multicast (un
solo utente trasmette verso pi utenti riceventi) nel caso la sessione SIP riguardi, ad
esempio, una conferenza. In SDP non tutti i parametri sono obbligatori, per quelli opzionali la scelta della loro presenza dipende dalla nostra intenzione di rendere la
sessione VoIP pi efficiente e robusta.
Le righe SDP devono comunque essere immesse secondo un ordine prestabilito, indipendentemente dalla presenza o meno di
campi facoltativi. In tabella 2 troviamo lelenco commentato di tutte le tipologie dei
messaggi SDP.
A questo possiamo entrare nel dettaglio della struttura di un messaggio SIP, tenendo
conto, ancora una volta, della suddivisione
concettuale fra messaggi di richiesta (Request) e di responso (Response). Il corpo di
un messaggio SIP mostrato in figura 8.
Osservando la figura possiamo notare co-

me le linee dei primi tre campi debbano essere necessariamente terminate con il carattere CRLF, ovvero il tasto RETURN nei sistemi WINDOWS e MS-DOS. Inoltre, la
differenza fra messaggio di Request e di Response individuabile soltanto dalla Start
Line (prima riga). Infatti il resto del messaggio, body compreso, pu essere identico nella forma, seppure differente nel
contenuto delle singole linee testuali. La
convenzione vuole che nel caso di messaggio di Request la prima riga venga chiamata Request Line. Nel caso di messaggio
di risposta essa assume invece il nome di
Status Line. Il protocollo SIP definisce
quindici tipologie di messaggi di richiesta (alcuni preferiscono chiamarli metodi), tuttavia, nella pratica corrente, ne vengono
usati generalmente sei. In tabella 3 possiamo trovare tutti i metodi di richiesta con
relativo commento esplicativo. Si noti, osservando la tabella 3, che i metodi di uso
pi comune sono definiti nella raccomandazione RFC 3261.
Veniamo ora alle varie tipologie di risposta
cominciando con il definire lo schema fisso
della Status Line (prima riga in un messaggio di risposta). Una Status Line deve
essere sempre composta dai seguenti elementi (il segno + non fa parte della sintassi
del messaggio):

74-85_Voip_FE 04/12/09 15.37 Pagina 81

e
Field Name : Field Value
dove Field Name identifica il parametro e
Field Value ne fornisce il valore numerico
(o alfabetico). Se una riga di header non riconosciuta, ad esempio per un errore di sintassi, essa sar ignorata ma non detto che
a questo debba seguire necessariamente un
messaggio di errore da parte del ricevente.
Il carattere : fa ovviamente da separatore
e deve essere sempre presente. Le righe di
header possono essere immesse senza
un preciso ordine ma si consiglia, per ragioni
di velocit di processo, di mettere per prime
quelle che forniscono dati di routing (percorso dei pacchetti dati).

ESEMPIO DI SESSIONE VOCE SIP

Figura 9: esempio di chiamata SIP fra due utenti.

Versione SIP + Codice numerico + Frase


esplicativa + CRLF
Analizziamo ora i singoli campi. Versione
SIP ovviamente si riferisce alla versione di
protocollo usata, che generalmente la
2.0. Il campo Codice Numerico formato da un numero a 3 cifre compreso, per
la versione SIP 2.0, fra 100 e 699. Di questo numero la prima cifra indica la classe
della risposta mentre le altre due cifre individuano lesatto messaggio o parametro.
Essendo sei le classi di risposta (da 1xx a
6xx), ci si potrebbe aspettare che ognuna
possa contenere 99 messaggi, come logica
vorrebbe. In realt molte combinazioni sono prive di significato poich i progettisti
dello standard, pensando a future implementazioni, si sono lasciati una piccola
riserva. La Frase esplicativa (chiamata anche Reason Phrase) una breve descrizione alfabetica del significato della risposta. A ogni codice numerico associata
una precisa Reason Phrase e quindi non
dobbiamo inventarci noi le parole da aggiungere. In tabella 4 sono riassunte tutte le classi di risposta con qualche esempio significativo.
Per ogni messaggio di risposta ricevuto,
lUAC deve a sua volta rispondere inviando

un ACK. Esiste una sola eccezione: i Responses della serie 1xx che essendo riferiti
a situazioni provvisorie non prevedono necessariamente una risposta di conferma.
Una volta definita la Start Line possiamo
passare alla descrizione dei cosiddetti header (vedi sempre figura 8). Il compito delle linee di header quello di fornire informazioni aggiuntive, ma decisamente necessarie, per lo svolgimento di una sessione
SIP (indirizzi IP dell UAC e UAS, identificativo numerico della sessione, ecc.). Per
complicare un po le cose c da dire che alcune righe di header possono essere composte da pi sottocampi (in questo caso un
carattere ; fa da separatore) e alcuni header possono essere aggiunti solo a determinate tipologie di messaggio SIP. In tabella 5 possiamo trovare le quattro classi
di header in ragione della loro compatibilit con i messaggi di Request e di Response. Nella stessa tabella, per ogni classe, stata aggiunta una breve spiegazione
della funzionalit dei campi di competenza
e lelenco, non commentato, di questi ultimi.
La descrizione, anche superficiale, di ogni
singola riga di header esula dai scopi di
questa trattazione.
La sintassi di una riga di header molto
semplice:

Una volta definiti nel dettaglio i singoli


costituenti di un messaggio SIP, sia esso
un Request o un Response, possiamo
approfondire lo svolgimento di una semplice sessione voce fra due utenti. In figura 9 lutente Carlo prova a chiamare lutente Giulia usando il protocollo SIP. Per
rendere la simulazione pi veritiera immagineremo che il flusso dei messaggi, prima di avviare lo stream voce, debba attraversare due Proxy. La presenza di questi ultimi simula una condizione molto frequente nellaccesso a Internet. Generalmente, infatti, per disporre delle risorse di
rete siamo tenuti a sottoscrivere una forma di abbonamento con un gestore di
servizi (Provider). Questi ci fornir un cosiddetto dominio di appartenenza il cui
nome sar una parte, ad esempio, del
nostro indirizzo e-mail e dellidentificativo
SIP per lutente. Far parte di un dominio significa, da un punto di vista hardware,
essere registrati presso uno o pi server.
Anche questi ultimi, a loro volta, hanno un
nome identificativo (da non confondere
con il loro indirizzo!) cos come riportato nel
nostro esempio (PC1 e SVR).
Per meglio comprendere lo svolgimento
della chiamata, in figura 9 abbiamo riportato la Start Line di ogni messaggio SIP prodotto dai due utenti. Per semplicit di trattazione lheader e il body del messaggio
non vengono descritti. Essendo Carlo il
chiamante, o UAC che dir si voglia, avr come Start Line del suo primo messaggio
una Request Line. Commentiamo adesso
le varie sequenze della chiamata (indicate
con i numeri fra parentesi).
81

74-85_Voip_FE 04/12/09 15.37 Pagina 82

imparare & approfondire

imparare & approfondire

Tabella 4 Protocollo SIP: tipologie di risposta (Status Line)

CODICE DI RISPOSTA
1xx Risposta provvisoria (deve seguire
necessariamente una risposta definitiva)
2xx Richiesta eseguita con successo
3xx Deviazione della chiamata a un altro
indirizzo (specificato nella risposta)
4xx Richiesta non eseguita

CLASSE DEL MESSAGGIO

ESEMPI DI RISPOSTE COMMENTATE

181 call forwarded


180 ringing

Chiamata inviata
Il telefono del chiamato sta squillando

200 OK

Riposta positiva del chiamato

302 user mover temporarily

Il chiamato risponde presso un altro indirizzo

401 user not authorized

Lutente non autorizzato per questo servizio

486 busy

Lutente impegnato in altra conversazione

5xx Guasto del Server

500 server internal error

Errore nel funzionamento del server

6xx Problema di connessione generico


(per esempio lutente chiamato non esiste)

604 does not anywhere

Utente o servizio impossibile da localizzare

(1) Carlo emette una richiesta di INVITE indirizzata a Giulia, la richiesta ricevuta dal
Proxy Roma_1.com. Nel messaggio di Carlo sono contenute tutte le informazioni (CODEC, versioni dei protocolli, ecc.) che permettono allutente Giulia di stabilire una
connessione voce su IP con protocollo SIP.
(2) Il Proxy Roma_1.com a sua volta emette una richiesta di INVITE, contenente anchesso lindirizzo di Giulia, che viene ricevuto dal Proxy Milano_2.com.
(3) Il Proxy Roma_1.com emette un altro
messaggio, questa volta di 100 TRYING,
verso Carlo. Lo scopo quello di rispondere
a questultimo indicandogli che la chiamata sta procedendo.
(4) Il Proxy Milano_2.com emette una richiesta di INVITE che viene direttamente ricevuto dal PC di Giulia, dotato di softphone.
(5) Il Proxy Milano_2.com emette un messaggio di risposta tipo 100 TRYING verso
il PROXY Roma_1.com. Anche in questo
caso lo scopo della risposta comunicare
al server Roma_1.com che la chiamata attiva e procede.
(6) Il softphone di Giulia comincia a squillare
e questo viene comunicato al server Milano_2.com con una risposta di 180 RINGING. La risposta contiene lindirizzo di
Carlo poich destinata a lui.
(7) Il proxy Milano_2.com ripete una risposta di 180 RINGING verso il server Roma_1.com. Anche questa risposta contiene lindirizzo di Carlo.
(8)Il server Roma_1.com trasmette una risposta di 180 RINGING direttamente al
telefono SIP di Carlo. Questultimo comincer a sentire il tono di chiamata.
(9) Il softphone di Giulia, dopo aver analizzato
le proposte (CODEC, versione protocolli,
banda utilizzata, ecc.) contenute nella richiesta di INVITE fatta da Carlo, ha deciso
82

che possibile stabilire uno stream voce


con questultimo. Risponde quindi con un
200 OK diretto al Server Milano_2.com. In
realt le fasi (6) e (9) sono contemporanee.
Infatti, non verrebbe emessa una risposta di
180 RINGING da Giulia se non vi fosse accordo con le proposte di Carlo.
(10) La riposta 200 OK ricevuta dal Server Milano_2.com che provvede a girarla
al Server Roma_1.com.
(11) Il Server Roma_1.com trasmette la risposta 200 OK direttamente al telefono
SIP di Carlo. Da questa fase in poi la funzionalit dei Server sar esclusivamente
passiva, diremo che sono passati da un funzionamento State Full a quello definito come State Less (vedi paragrafo SIP Proxy
Server). Potremmo anche dire che Carlo e
Giulia, da questa fase in poi, sono in collegamento punto-punto (o, se preferite,
pier to pier).
(12) Il telefono di Carlo invia una richiesta
ACK che stavolta giunger direttamente
a Giulia. Il request ACK indica allUAS che
lo stream voce pu iniziare.
(13) Inizia la sessione audio durante la
quale comunque consentito a entrambi
gli utenti di ricevere e trasmettere messaggi
SIP.
(14) Giulia chiude la conversazione e il suo
softphone invia una request di tipo BYE a
Carlo.
(15) Il telefono SIP di Carlo prende atto
della request e risponde con un 200 OK per
avvisare Giulia che non vi sono problemi e
la conversazione chiusa.
Lesempio riportato forzatamente semplice, seppure frequente, ed esclude situazioni pure possibili come ad esempio
quando lutente chiamato non risponde o
le caratteristiche hardware di uno dei due
utenti non rendono possibile la conversa-

zione. Essendo il SIP un protocollo che si


esprime in forma testuale, possibile riportare un esempio completo di messaggi di request e di response e, sia pur nei limiti della nostra trattazione, commentarli.
In figura 10 e figura 11 sono mostrate due
tipologie di messaggi sicuramente fra le
pi frequenti nel protocollo SIP. Per continuit espositiva entrambe si ricollegano
allesempio di rete VoIP mostrato in figura
9. Analizziamo adesso le righe che costituiscono il messaggio di request contenuto in figura 10:

INVITE sip: Giulia@Milano_2.com SIP/2.0:


lutente Giulia, che registrata presso il
server Milano_2.com, viene invitata a una
sessione SIP. La versione del protocollo
usata la 2.0;
Via: SIP/2.0/UDP PC1.Roma_1.com;
branch z9hG4bKabrtjs5: viene specificato
il protocollo di trasporto utilizzato (in questo caso UDP) e fornito lindirizzo del Proxy
server di Carlo (lente a cui sar diretta la
Response). Sono inoltre forniti dei dati che
possono essere utilizzati nel processo di
routing dei pacchetti dati (branch parameters), la stringa z9hG4bK posto subito dopo il parametro branch, invece
necessaria per individuare la versione SIP
e viene definita Magic cookie;
Max-Forwards: 70: massimo numero di
nodi (Gateway, Server, ecc.) che il messaggio di Request pu attraversare;
From: Carlo <Carlo@Roma_1.com>;
tag=1927573125: nome e indirizzo di colui che ha originato il messaggio di richiesta
(nel nostro caso Carlo). Segue un numero
casuale (tag) generato per meglio identificare il richiedente (Carlo);
To: Giulia <sip: Giulia@Milano_2.com>:
nome e indirizzo dellutente a cui effetti-

74-85_Voip_FE 04/12/09 15.37 Pagina 83

e
vamente trasmesso il messaggio di INVITE
(nel nostro caso Giulia);
Call-ID: [email protected]_1.com: numero che identifica in modo
univoco la chiamata in corso. Esso generato da una combinazione ottenuta da un
numero casuale ed elementi presenti nella
chiamata (indirizzo IP, ecc.);
CSeq: 1 INVITE: numero sequenziale che
identifica la transazione (Request e Response) in corso. Esso si incrementa per
ogni nuova Request. Viene inoltre ripetuto
il tipo di richiesta (in questo caso un INVITE);
Date: Mon, 9 Mar 2009 19:05:05 GMT:
data e ora della richiesta fornite rispetto al
GMT;
Contact: <sip: [email protected]_1.com>:
indirizzo e dominio di Carlo. Pu anche
essere espresso sotto forma di indirizzo
IP;
Content-Type: application/sdp: descrive
la tipologia delle righe costituenti il body del
messaggio di Request. Nel nostro esempio
il body espresso in SDP;
Content-Lenght: 14 tipo di CODEC usato (in questo caso G.711 law con 8000
campionamenti al secondo). 2 = Numero di
byte contenuti nel body.

Figura 10: esempio di Request tipo INVITE.

Dopo una riga vuota appare il body del


messaggio, in questo esempio composto
da righe testo scritte con protocollo SDP:

v= 0: versione del protocollo SDP usato;


o= Carlo 52655664 001 IN IP4 PC1.Ro-

Figura 11: esempio di Response tipo 200 OK.

Tabella 5 Protocollo SPI: classi e tipi di headers

CLASSE

DESCRIZIONE

COMPATIBILIT
CON MESSAGGI
DI REQUEST

COMPATIBILIT
CON MESSAGGI
DI RESPONSE

General Headers

Specifica gli indirizzi IP del chiamato e del chiamante,


fornisce indirizzi per la ridirezione delle chiamate, ecc.

SI

SI

Request Headers

Contiene campi dedicati alla parametrizzazione


delle richieste (urgenza, priorit, ecc.)

SI

NO

Accept
Accept-Encoding
Accept-Language
Authorization
Contact
Hide
Max-Forwards
Organization
Priority
Proxy-Authorization
Proxy-Require
Route
Require
Response-Key
Subject
User-Agent

Response Headers

Contiene campi dedicati alla parametrizzazione


delle risposte e fornisce dati sulla disponibilit
dei servizi richiesti

NO

SI

Allow
Proxy-Authenticate
Retry-After
Server
Unsopported
Warning
WWW-Authenticate

SI

SI

Content-Encoding
Content-Lenght
Content-Type

Entity Headers Descrive in dettaglio il contenuto delle righe che compongono


il body (generalmente fornite in protocollo SDP)

TIPI
DI HEADERS
Call-ID
CSeq
Encryption
From
Timestamp

Contact
Date
Expires
Record-Route
To
Via

83

74-85_Voip_FE 04/12/09 15.37 Pagina 84

imparare&approfondire

imparare & approfondire


ma_1.com: nome dellutente che ha originato il messaggio SIP, numero identificativo della sessione in corso e dellattuale
messaggio, tipologia della rete, versione del
protocollo IP, nome del server Proxy di
Carlo e dominio,
s= stream audio: indica loggetto della
sessione, in questo caso uno stream audio
(voce utenti);
t= 0 0: tempo dinizio e di fine della sessione voce. Il secondo zero indica che il
tempo di fine non determinato poich, in
una sessione voce, non possibile sapere
con esattezza il momento della chiusura.
Entrambi i tempi sono espressi in secondi
NTP (Network Time Protocol);
c= IN IP4 PC1.Roma_1.com: tipo di connessione (Internet), tipo e versione del protocollo di rete usato e nome e indirizzo IP
del Server di Carlo;
m= audio 3456 RTP/AVP 0 1 3 99: tipologia del media (in questo caso voce, quindi audio), porta dellApplication Multiplexer
utilizzata, protocollo di trasporto e tipo di
payload;
a= rtpmap: 0 PCMU/8000: tipo di CODEC usato (in questo caso G.711 law
con 8000 campionamenti al secondo).
Vediamo adesso in dettaglio il messaggio
di response contenuto in figura 11. Cominciamo dalle righe di header:

SIP/200 OK: lutente Giulia ha accettato


linvito a partecipare alla sessione voce
(telefonata) proposta da Carlo. Linvio di
questa Response coincide con latto di
alzare il microtelefono;
Via: SIP/2.0/UDP SVR.Milano_2.com;
branch= z7hG4bKeruihj8: viene specificato il protocollo di trasporto utilizzato (anche in questo caso UDP) e lindirizzo del primo server che il messaggio di Response incontrer per arrivare a Carlo;
Via: SIP/2.0/UDP PC1.Roma_1.com;
branch= z7hG4bKabrtjs5: questo header
indica lindirizzo del secondo e ultimo server che il messaggio incontrer prima di arrivare a destinazione. Da notare che quando questa Response sar processata dal
server SVR.Milano_2.com il primo header
Via sar cancellato in quanto non pi
necessario;
From: Carlo Carlo@Roma_1.com; tag=
1927573125: anche in questo header viene fornito il nome e lindirizzo di colui che ha
84

originato il messaggio di richiesta (nel nostro caso Carlo). Anche il tag identico a
quello di INVITE;
To: Giulia <sip: Giulia@Milano_2.com>:
indicato il medesimo indirizzo presente
nello stesso header del messaggio di INVITE. In altri termini viene conservata la direzione logica della richiesta;
Call-ID: [email protected]_1.com: il Call-ID deve essere lo stesso del messaggio di INVITE;
CSeq: 1 INVITE: lheader riporter lo
stesso numero sequenziale del messaggio
di INVITE in quanto ci troviamo allinterno
della stessa transazione;
Contact: <sip: [email protected]_1.com>:
indicato sempre lindirizzo e il dominio
di Carlo;
Content-Type: application/sdp: descrive
la tipologia delle righe costituenti il body del
messaggio di Request. Nel nostro esempio
il body espresso in SDP;
Content-Lenght: 142: Numero di byte
contenuti nel body.
Dopo una riga vuota troviamo il body del
messaggio. In questo esempio composto
da righe in protocollo SDP, cos come nella Request.

v= 0: versione del protocollo SDP usato;


o= Carlo 52655664 001 IN IP4 SVR.Milano_2.com: nome dellutente che ha originato il messaggio SIP, numero identificativo della sessione in corso e dellattuale messaggio, tipologia della rete, versione
del protocollo IP, nome del server Proxy di
Giulia e dominio;
s= stream audio: indica loggetto della
sessione, in questo caso uno stream audio
(voce utenti);
t= 0 0: tempo dinizio e di fine della sessione voce, anche in questo caso la durata indeterminata (parametro 0);
c= IN IP4 SVR.Milano_2.com: tipo di rete (Internet), tipo e versione del protocollo
di rete usato e nome e indirizzo IP (in forma
letterale) del Server di Giulia;
m= audio 3456 RTP/AVP 0 1 3 99: tipologia del media (in questo caso voce quindi audio), porta dellApplication Multiplexer
utilizzata, protocollo di trasporto e tipo di
payload;
a= rtpmap:0 PCMU/8000: tipo di CODEC
usato (anche in questo caso G.711 law
con 8000 campionamenti al secondo).

CONCLUSIONI
Siamo dunque arrivati alla fine di questa
trattazione che, per forza di cose, poteva essere solo introduttiva. Prima di chiudere
vorrei dare qualche consiglio a coloro che intendono continuare lo studio dei sistemi
VoIP. Immagino la prima domanda che i
futuri sistemisti si faranno: fra SIP e H323
quale conviene portare avanti? La risposta molto semplice. Se non esistono motivi particolari (assistenza su impianti preesistenti, implementazioni del software, ecc.)
per cui larchitettura H323 debba essere
studiata, converr puntare sul SIP. Questultimo si sta dimostrando, nelle sue varie
versioni, un protocollo versatile, sicuro e di
facile implementazione. E queste sono caratteristiche che, alla lunga e a detta di
molti, porteranno alla completa obsolescenza il suo rivale H323. Daltro canto, i
numerosi impianti tuttora funzionanti con
questo standard e la quantit di hardware
prodotta, faranno s che, per i prossimi 2-3
anni, lH323 non scompaia del tutto. Lo
studio pratico del SIP, che tra laltro si presta bene a un approccio didattico, pu essere fatto implementando un sistema VoIP
sul proprio PC. Esistono appositi gateway in
grado di rendere un comune telefono per rete PSTN adatto a funzionare come terminale
VoIP con standard SIP. Il costo di questi
dispositivi, che hanno connettivit a livello di
LAN, tale da renderne lacquisto assolutamente fattibile. Per non parlare poi dei
softphone, ormai reperibili sotto forma di modelli somiglianti a un comune portatile. Il
software che simula le altre entit SIP poi
rintracciabile facilmente su Internet, spesso
con le limitazioni di una versione gratuita di
prova a tempo limitato. A facilitare ulteriormente lo studio autodidatta ci sono poi dei
provider che offrono abbonamenti gratuiti per
telefonia SIP. Lanalisi vera e propria del
protocollo va invece demandata ai vari analizzatori di traffico, o sniffer, che sono dei programmi in grado di mostrare sul monitor
del nostro PC il contenuto dei pacchetti
dati. Ne esistono molti per cui ne citeremo solo alcuni: il sempreverde Wireshark che
ha sostituito ormai il vecchio (ma ancora efficiente) Ethereal, il Network Monitor della
Distinct reperibile in versione gratuita a tempo e infine Lanwatch anchesso reperibile in
versione demo. Buon lavoro! q
CODICE MIP 2757039

CODICE MIP 2778647

74-85_Voip_FE 04/12/09 15.37 Pagina 85

86-89_VHDL_FE 04/12/09 15.46 Pagina 86

imparare &

imparare & approfondire

di FRANCESCO PENTELLA

SILICORE SU SPARTAN
Lezioni di VHDL (parte ottava)

Nella scorsa puntata ci siamo


soffermati sul processore
SLC1657, un RISC a 8 bit.
Il processore, realizzato
interamente in VHDL e diffuso
da Silicore con la solita
licenza GPL, risulta
particolarmente indicato
per applicazioni di controllo

Figura 1: EVB Spartan 2.

86

obiettivo di un progettista di una


qualsiasi applicazione VHDL
quello di eseguire il proprio programma al pari di un modulo software.
In realt, in questo contesto improprio
utilizzare il termine programma; infatti, ci
stiamo riferendo a un progetto scritto in
VHDL e perci squisitamente hardware
e non di un modulo software. A questo
scopo per eseguire un linguaggio VHDL
necessario inserire lapplicazione in un
FPGA o in un ASIC, vale a dire una volta
terminato il processo di sintesi necessario fare il cosiddetto place&route della
nostra applicazione. Questo il filo conduttore dellultima parte del corso. In effetti,
in questa puntata vogliamo mettere in
evidenza le attivit che sono necessarie per
integrare il processore SLC1657 in un
FPGA. In altre parole, si vuole proporre la
realizzazione di un SoC (System-on-Chip)
partendo dal core SLC1657 che chiameremo XSP2EVAL, Xilinx SPartan 2 EVALuation system. SoC un termine utilizzato
per indicare dispositivi elettronici nei quali viene integrato in un solo chip un intero
sistema, vale a dire che oltre al classico
processore sono presenti diversi controller, come porte di I/O o sistemi video.
Il processore SLC1657, come abbiamo
gi messo in evidenza nella scorsa puntata, compatibile con il PIC16C57 della Microchip Technology, e in questo modo possiamo utilizzare i vari ambienti di
sviluppo gi in uso con Microchip. Come
ambiente di lavoro abbiamo scelto levaluation kit della Spartan II; levaluation
board mostrata in figura 1.
Il SoC che andremo a realizzare ha la necessit di utilizzare diverse entity VHDL. Alcune dovremo definirle perch risultano indispensabili alla nostra applicazione, mentre altre sono gi presenti nel core del
processore di Silicore, come ad esempio toplogic. La prima entity chiamata
XSP2EVAL, Xilinx Spartan 2 Evaluation. La
sua rappresentazione gerarchica mostrata in figura 2. Seguono poi TOPLO-

GIC, REGISRAM (register RAM), INSTRROM, SEMRMINT e i driver di I/O per Xilinx Spartan II quali IBUF, OBUF e IOBUF.
Il nostro lavoro diviso in varie fasi. Nella prima dovremo mettere a punto il processore SLC1657 e simulare lentit TOPLOGIC. Questo lavoro permetter allutilizzatore di familiarizzare con lambiente di simulazione, con il core SLC1657
e con tutte le componenti del progetto.
bene ricordare che questa particolare attivit risulta indipendente dal target utilizzato e si presta anche per altri componenti di Altera o Xilinx. Nellattivit di simulazione si utilizzato il Protel
PeakVHDL simulation, ma ad ogni modo
possiamo pensare di utilizzare un qualsiasi
strumento di simulazione VHDL.

XSP2EVAL
Che cosa occorre fare per simulare il core SLC1657? Per prima cosa necessario creare una cartella di lavoro, per esempio TL TEST. In seguito, una volta aperto PeakVHDL, definiamo un nuovo progetto denominato, appunto, TL TEST. Il
progetto cos creato deve riferire la cartella
omonima. In seguito dobbiamo aggiungere tutti i moduli dellentit TOPLOGIC
nel progetto, facendo attenzione a rispettare la gerarchia delle entity. opportuno rimarcare il rispetto della gerarchia
delle entit. Infatti, per svolgere il lavoro di
simulazione con PeakVHDL dobbiamo
essere sicuri di rispettare il grado gerarchico delle entit e a questo scopo utilizzeremo il test bench di TOPLOGIC,
TSTBENCH.VHD, che troveremo nella
cartella TOPLOGIC del codice sorgente
del core. Un estratto del testbench mostrato nel listato 1. Inoltre necessario
utilizzare i vari test vector corrispondenti che troveremo nella stessa cartella e individuati con lestensione txt. Tutti questi
file dovranno essere posizionati nella cartella TL TEST. La figura 3 mostra i file
contenuti nel progetto. Una volta copiati
tutti i file nel progetto possiamo senzal-

86-89_VHDL_FE 04/12/09 15.46 Pagina 87

approfondire

Figura 2: ESP2EVAL.

tro iniziare il processo di simulazione che


deve concludersi senza nessun errore.
Il listato 1 pone in evidenza un estratto
del file di testbench e le relazioni con i test
vector. A questo proposito listruzione:
file_open( tvfile, VECTINIT.TXT, read_mode );
apre il file vectinit.txt dove sono presenti alcuni parametri di simulazione, mentre con:
READ_VECTORS: loop
si inizia il ciclo READ_VECTORS utilizzato
per impostare il nostro testbench, con
le relative variabili, con i valori del vettore
di test. Il listato 2 mostra un possibile formato di un file di questo tipo, in questo
caso si impostano i valori del reset, del registro index e delle porte di I/O.
Cos, il file pone in evidenza che il registro
index inizializzato a 0x4, vale a dire che
il registro localizzato alla locazione 0x4
della memoria interna, mentre i registri di

I/O occupano le locazioni da 0x5 a 0x7, rispettivamente PORT0, PORT1 e PORT2.


Una volta terminata la simulazione del
nostro core, occorre definire lentity VHDL
REGISRAM (register RAM), una memoria
sincrona a 128x8 bit. Lentit VHDL
necessaria perch occorre definire la zona di memoria utilizzata dai registri interni del processore. La tabella 1 pone in
evidenza la struttura della memoria interna utilizzata dal core. Nel panorama
commerciale esistono diversi sistemi per
definire una memoria di questo tipo, ma il
procedimento pi semplice passa attraverso il sistema automatico di generazione fornito dalla maggior parte di costruttori di sistemi di sviluppo su FPGA.
Xilinx a questo proposito fornisce il core
generator in grado di creare e definire le caratteristiche delle memorie. Per prima cosa
occorre creare lentity REGISRAM. Dopo
aver creato una cartella, che chiameremo
REGISARM, apriamo Xilinx core generator
e impostiamo il tool al fine di creare una RAM
sincrona nella cartella appena creata.

I parametri utilizzati per impostare, in maniera appropriata, questa sequenza sono


messi in evidenza nel listato 3. In seguito possiamo generare REGISRAM in
automatico e verifichiamo che la nella
cartella omonima presente un file chiamato regisRAM.edn: in questo modo
otteniamo la conferma che la procedura
si conclusa senza problemi con il file
EDIF per la memoria.
Terminata la fase di generazione della
memoria RAM interna dobbiamo fare la
stessa cosa per ottenere lentity INSTRROM (instruction ROM). Questa particolare entity utilizzata come embedded oppure emulation ROM a scopo di sviluppo
software. In INSTRROM dovranno essere caricati i vari moduli software, in formato
binario, ottenuti dai tool di sviluppo di
casa Microchip. Cos, il registro program
counter del processore SLC1657 deve
contenere lindirizzo dellInstruction ROM.
I programmi saranno caricati attraverso la
porta parallela del PC utilizzando lentity
LPFILTER del SoC XSP2EVAL, parte integrante del progetto VHDL. La memoria
di programma composta di 2.048 word
a 12 bit. La memoria organizzata in
quattro banchi da 512 word. Il processore
SLC1657 utilizza la tecnica a banchi perch la sua architettura si basa su 12 bit e,
per questa ragione, non possibile gestire
indirizzamenti di memoria pi lunghi di 9
bit. La selezione del banco di lavoro
permessa attraverso i bit IB1-IB0 del registro di stato (status, si veda la figura 4).
Nella versione Xilinx Spartan II, linstruction
ROM formata con blocchi sincroni di
memoria RAM. LINSTRROM, anche in
questo caso, definita attraverso lo Xilinx
Core Generator tool. Per creare la nostra
entity INSTRROM necessario, per prima
cosa, creare una cartella chiamata INSTRROM. In seguito, una volta aperto il tool
Xilinx Core Generator, occorre impostare
i parametri per creare una RAM sincrona.
I parametri utilizzati sono mostrati nel listato 4. Una volta configurato lambiente
possibile procedere per generare lentity
INSTRROM in maniera automatica e, anche in questo caso, verifichiamo, al termine
della procedura, che nella cartella omonima presente il file instrrom.edn: il file EDIF per linstrucion ROM.
87

86-89_VHDL_FE 04/12/09 15.46 Pagina 88

imparare & approfondire

imparare & approfondire

LISTATO 2 Vectinit.txt

Reset using the RESET pin.

:
:
:

100 000 00 00 00 00 7FF 0 UU 00 0 UU UU UU FF FF FF 000


000 000 00 00 00 00 7FF 0 UU 00 0 UU UU UU FF FF FF 000
000 000 00 00 00 00 7FF 0 UU 00 0 UU UU UU FF FF FF 000

RESET
RESET
NOP

Initialize the INDEX register.

:
:

000 C00 00 00 00 00 000 0 UU 00 0 UU UU UU FF FF FF 000


000 024 00 00 00 00 001 0 S4 00 0 UU UU UU FF FF FF 000

MOVI 0x00
MOVA 0x04

Initizlize the I/O ports.

:
:
:
:
:
:
:
:

000
000
000
000
000
000
000
000

C00
025
026
027
005
006
007
000

00
00
00
00
00
00
00
00

00 00 00 002 0 00 00 0 UU
00 00 00 003 0 05 00 0 UU
00 00 00 004 0 06 00 0 00
00 00 00 005 0 07 00 0 00
00 00 00 006 0 05 00 0 00
00 00 00 007 0 06 00 0 00
00 00 00 008 0 07 00 0 00
00 00 00 009 0 00 00 0 00

UU UU FF FF FF 000 MOVI 0x00


UU UU FF FF FF 000 MOVA 0x05
UU UU FF FF FF 100 MOVA 0x06
00 UU FF FF FF 010 MOVA 0x07
00 00
FF FF FF 001 MOVP 0x05
00 00
00 FF FF 000 MOVP 0x06
00 00
00 00 FF 000 MOVP 0x07
00 00
00 00 00 000 NOP

Branch to the very top of memory, on the last bank. Clear the
INDEX and STATUS registers. This places the register and
instruction banks to zero. End the file with the program counter
at 0x7FF so that the program counter rolls over so that the first
instruction of the next file will be at address 0x000.

:
:
:
:
:
:
:

000
000
000
000
000
000
000

C60
023
BFC
000
C00
023
024

00
00
00
00
00
00
00

00
00
00
00
00
00
00

00
00
00
00
00
00
00

00
00
00
00
00
00
00

00A
00B
00C
7FC
7FD
7FE
7FF

0
0
0
0
0
0
0

00
03
1C
1C
00
03
04

60
60
FC
FC
00
00
00

LISTATO 3 Regisram
Device type: Spartan 2
File format: VHDL
Tool type: Other (Protel)
Netlist bus format: B(I)
Memory type: distributed
Component name: regisram
Depth: 128
Data width: 8
Memory type: single port RAM
MUX construction: LUT based
Input options: non-registered
Layout: create RPM

Sintesi
Il passo successivo del nostro lavoro la
sintesi. Si gi scritto che il nostro progetto gerarchico e per questa ragione il
file in VHDL XSP2EVAL lentit che
racchiude tutte le definizioni del nostro
progetto. Dal listato 5 vediamo che TOPLOGIC un modulo del nostro SoC.
Per svolgere il nostro lavoro di sintesi ricorriamo al Protel PeakVHDL synthesis.
88

0
0
0
0
0
0
0

00
00
00
00
00
00
00

00
00
00
00
00
00
00

00
00
00
00
00
00
00

00
00
00
00
00
00
00

00
00
00
00
00
00
00

00
00
00
00
00
00
00

000
000
000
000
000
000
000

MOVI
MOVA
BRA
NOP
MOVI
MOVA
MOVA

0x60
0x03
0x7FC
0X00
0x03
0x04

LISTATO 4 instrrom
Device type: Spartan 2
File format: VHDL
Tool type: Other (Protel)
Netlist bus format: B(I)
Memory type: single port block
memory
Component name: instrrom
Depth: 2048
Data width: 12
Port configuration: read and
write
Global init value: 0 (leave the
initialization
file
box
unchecked).

Per prima cosa creiamo la cartella


XSP2EVAL, apriamo PeakVHDL e definiamo un nuovo progetto seguendo a
questo scopo tutte le indicazioni mostrate a video. Inseriamo tutti i moduli
definiti dalla entity XSP2EVAL nel progetto, rispettando le relazioni gerarchiche.
Le entit richiamate in TOPLOGIC possono essere trovate nella cartella
VHDL_source, mentre quelle in

Figura 3: progetto VHDL.

XSP2EVAL (come ad esempio SEMRMINT.VHD) sono posizionate nella cartella Xilinx. I nostri due file che abbiamo
creato nei punti precedenti, vale a dire regisram.edn e instrrom.edn, devono essere
sposati nella cartella XSP2EVAL. Si selezioni lopzione Spartan 2 Series (EDIF)
presente nel tool PeakVHDL e successivamente si attiva il processo di sintesi.
opportuno, al termine del processo di
sintesi, controllare il file di log per verificare
lesito del processo. Al termine del processo di sintesi verifichiamo la presenza
del file XSP2EVAL.edn: un EDIF file
creato da PeakVHDL.

Place & Route


A questo punto siamo giunti nella fase di
place&route del nostro design nel chip
Xilinx Spartan II. Il file EDIF XSP2EVAL, ottenuto nella precedente fase, contiene la
maggior parte della circuiteria di controllo utile al nostro scopo, insieme al modulo software Xilinx Alliance Series. Una volta lanciato lAlliance design manager, dobbiamo creare un nuovo progetto selezionando XSP2EVAL.EDN come file di input
(lo stesso file ottenuto nel passo precedente). Nella sezione Part Selector occorre impostare le seguenti opzioni:

Family: SPARTAN2;
Device: XC2S50;
Package: PQ208;
Speed Grade: -5.

86-89_VHDL_FE 04/12/09 15.46 Pagina 89

Figura 4: memoria a banchi.

PER approfondire...
i listati 1 e 5 sono disponibili
su www.farelettronica.com

Successivamente, nella sezione Constraints File si selezioni lopzione Custom definendo un file di configurazione
del nostro progetto. Questo file deve
contenere alcune informazioni, per esempio le specifiche dei tempi e lallocazione
dei pin. Il file di solito ha lestensione
UCF, ad esempio XSP2EVAL.UCF.

Siamo cos giunti alla fine di questo corso sul linguaggio VHDL. Si cercato di
esporre il linguaggio attraverso esempi applicativi in maniera semplice e chiara,
ma, come per tutti i corsi, largomento non
pu esaurirsi; infatti, per comprendere
appieno un linguaggio occorre che ogni
appassionato realizzi una propria applicazione. A questo scopo diversi costruttori propongono strumenti di lavoro liberi da costi che ne permettono luso in
ambiente didattico e a scopo personale.
In questultima puntata abbiamo messo in
evidenza unapplicazione utile e interessante al tempo stesso, si sono mostrate le
varie fasi indispensabili per integrare il
microcontrollore SLC1657 in un FPGA al
fine di ottenere un SoC (System-on-Chip)
chiamato XSP2EVAL, Xilinx SPartan II
EVALuation system. Dal sito della rivista
possibile prelevare il materiale di lavoro del
core SLC1657: dal codice VHDL a tutta la
documentazione di riferimento. q
CODICE MIP 2757079

CODICE MIP 2771344

CONCLUSIONE

89

90-91_Elettroquiz+luditronica_fe 03/12/09 07.48 Pagina 90

elettro
quiz
294/295

&

rispondi

vinci

Le risposte ai quiz Base


e Avanzato vanno inviate
esclusivamente compilando
il modulo su
www.farelettronica.com/eq
specificando la parola
chiave "2N2222".
Le risposte ed i vincitori
(previa autorizzazione) sono
pubblicati alla pagina
www.farelettronica.com/eq
a partire dal 15 del mese
successivo alla
pubblicazione sulla rivista.
A tutti i partecipanti verr
assegnato un buono sconto
del 10% (validit 3 mesi

base

Dato il circuito in figura determinare il valore della


tensione di uscita quando allingresso vengono
applicati rispettivamente 12V e -12V. Si consideri
ideale il comportamento del diodo.

Se rispondi correttamente potrai


vincere il simpatico portachiavi
di Fare Elettronica.

dalla data di assegnazione)


utilizzabile per un prossimo
acquisto su www.ieshop.it

avanzato
Il circuito mostrato in figura costituito
utilizzando un amplificatore operazionale,
un diodo e uno zener da considerarsi
ideali. Quale sar la tensione di uscita
se allingresso viene applicata una sinusoide
di ampiezza 10V e frequenza 1KHz?
Per i pi bravi in palio
la felpa pile di Fare Elettronica.

90

90-91_Elettroquiz+luditronica_fe 03/12/09 07.48 Pagina 91

luditronica
luditronica

Le vignette ludiche di Fare Elettronica

91

92-95_Trasmettotore_FE 03/12/09 07.50 Pagina 92

radio & rad

radio & radio

di REMO RIGLIONI (IZ0OPG)

TRASMETTITORE DSB-SC

per i 20 metri

Se siete in procinto
di prendere la patente
di radioamatore e volete fare
un po di pratica di laboratorio
prima di affrontare gli esami,
ecco un piccolo progetto
che vi d la possibilit
di testare su campo quanto
avete studiato sui libri

on c niente di pi efficace per


fissare i concetti fondamentali
della radio-tecnica che passare un
po di tempo in laboratorio montando e testando qualche semplice apparecchiatura. Costruire un oscillatore quarzato,
vedere in funzione un modulatore bilanciato, assemblare un trasformatore a larga banda, sono tutte cose che un radioamatore patentato dovrebbe saper
fare, se non altro perch comunque fanno parte delle nozioni di base richieste per
il superamento degli esami e il conseguimento della patente.
La realizzazione del circuito descritto di
seguito ha proprio lo scopo di vedere in
pratica il funzionamento di alcuni degli
elementi fondamentali che compongono un
apparecchio radio; in particolare vedremo come realizzare un piccolo trasmettitore
a modulazione di ampiezza con portante
soppressa e doppia banda laterale, utilizzando in tutto solo tre transistor e una
manciata di componenti passivi.

LA MODULAZIONE DI AMPIEZZA
Storicamente la modulazione di ampiezza stata la prima forma di modulazione
per la trasmissione di messaggi di fonia
come voce, suoni o musiche. I difetti
principali di questo tipo di modulazione
sono lelevata sensibilit ai disturbi elettrici
e la bassa efficienza. Dal punto di vista formale un segnale radio modulato in ampiezza da un segnale audio sinusoidale
pu essere rappresentato con la seguente
espressione:
v (t) = V p>[1 + m acos( mt)]cos( pt)

Figura 1: lo spettro di un segnale modulato in ampiezza.

92

(1)

dove m = 2fm la pulsazione angolare


del segnale sinusoidale modulante; p =

2fp la pulsazione angolare del segnale radio portante, con p >> m ; ma =


Ka(Vm/Vp ) lindice di modulazione e deve essere minore di 1 affinch linviluppo
del segnale modulato abbia lo stesso andamento dellinformazione da trasmettere.
Per ma>1 il segnale v(t) si dice in sovramodulazione. In tal caso si introducono
notevoli distorsioni nellinviluppo del segnale modulato che non consentono, in ricezione, una ricostruzione fedele dellinformazione. Nella normale radiodiffusione
ma = 40%. Vm e Vp sono rispettivamente lampiezza del segnale modulante e
della portante radio, mentre Ka una
costante di proporzionalit legata al modulatore utilizzato. Applicando qualche
formula di trigonometria, la (1) pu essere riscritta:
v(t) = Vp*cos(pt) + (maVp/2)COS(p-m)t+
+ (m aV p/2)COS( p+ m)t
(2)
In pratica v(t) risulta essere pari alla composizione di tre segnali in cui il primo non
altro che la portante [Vp*cos(pt)] e gli altri due sono segnali detti bande laterali
disposti simmetricamente rispetto alla
portante sullasse delle frequenze (vedi figura 1). Da notare che:

linformazione del segnale modulante


presente solo nelle bande laterali;

il rendimento di modulazione definito come rapporto tra la potenza del segnale di


una delle due bande laterali e la potenza
complessiva pari al 16,7% (con ma = 1).
In pratica la maggior parte della potenza
espressa non contribuisce al trasporto
dellinformazione;

92-95_Trasmettotore_FE 03/12/09 07.50 Pagina 93

io
Band Suppressed Carrier) ha lo scopo
di ottimizzare anche la banda occupata.
Considerando, infatti, che linformazione da trasmettere duplicata nelle due
bande laterali, sufficiente trasmetterne una, cos che, con la modulazione
SSB, oltre a raggiungere un rendimento di
modulazione pari al 100%, la banda occupata dal canale radio esattamente
pari a quella del segnale modulante. In
questo caso la (3) diventa:
LSB-SC (maVp /2)COS(p-m)t (Lower Side Band)
USB-SC (m aV p / 2)COS ( p+ m)t (Upper
Side Band).
Non a caso la SSB la modalit di trasmissione in fonia maggiormente utilizzata
in ambito radioamatoriale.

Figura 2: schema di principio del trasmettitore.

SCHEMA ELETTRICO
In figura 2 visibile lo schema di principio del nostro trasmettitore e in figura 3
lo schema elettrico complessivo, come si
pu vedere i blocchi funzionali sono sostanzialmente quattro, ovvero:

loscillatore quarzato, che ha il compito di generare la portante radio;


lamplificatore audio, che incrementa il
segnale captato dal microfono;
il modulatore bilanciato, che determina
la modulazione di ampiezza con soppressione della portante;
lamplificatore finale RF.
Figura 3: schema elettrico complessivo del trasmettitore.

la banda occupata dal segnale radio


modulato pari al doppio della banda
occupata dal segnale modulante. Se ad
esempio prendiamo in considerazione
un segnale audio complesso con unoccupazione di banda 20 Hz-20 kHz la
larghezza del canale radio per trasmettere tale segnale dovrebbe essere di circa 40 kHz.
Per rendere la modulazione di ampiezza
pi efficiente, sono state introdotte altre
due tecniche che mirano ad aumentare il
rendimento di modulazione e diminuire
loccupazione di banda.

La prima tecnica la DSB-SC (Double Side Band Suppressed Carrier) che prevede la generazione di un segnale modulato in ampiezza, privo della portante, che come abbiamo visto non contribuisce al trasporto dellinformazione. In
questo caso la (2) pu essere scritta:
(maVp/2)COS(p-m)t + (maVp/2)COS(p+m)t
Il rendimento di modulazione passa dal
16,7% al 50%, ma loccupazione della
banda rimane sempre pari al doppio di
quella occupata dal segnale modulante.
La seconda tecnica SSB-SC (Single Side

Il cuore del nostro trasmettitore il blocco


numero 3, ovvero il modulatore bilanciato.
La versione proposta molto semplice,
in pratica fa uso di un trasformatore a larga
banda opportunamente avvolto e di due
diodi al silicio. Ai capi dellimpedenza JAF1,
in assenza di modulazione, il segnale della portante generato dalloscillatore quarzato
sostanzialmente nullo; non appena viene
applicato il segnale audio, questo va ad agire sulla conduzione dei due diodi, generando in uscita a tutti gli effetti un segnale
DSB-SC ovvero privo della componente
relativa alla portante. Ma veniamo agli altri
blocchi. Loscillatore quarzato una classica configurazione Colpitts, il quarzo de93

92-95_Trasmettotore_FE 03/12/09 07.51 Pagina 94

radio & radio

radio & radio

LISTA COMPONENTI
R1
C1
C10
D1
R2
C2
C11
D2
R3
C3
C12
TR1
R4
C4
C13
TR2
R5
C5
C14
TR3
R6
C6
JAF1
XTAL
R7
C7
L1
MIC.
R8
C8
T1
R9
C9
T2

100 ohm W
7-20 pF, compensatore
2,2 nF ceram.
1N4148
100 kohm W
220 pF ceram.
100 nF pol.
1N4148
15 ohm W
220 pF ceram.
120 pF ceram
2N706
220 kohm W
100 nF pol.
220 pF ceram.
BC550
1,8 kohm W
4.7 uF 25 V elettr.
100 nF pol.
2N3725
1,5 kohm W
220 pF ceram.
100 uH
14.318 MHz
1 kohm W
220 nF pol.
Vedi testo
Microfono preamplific.
15 ohm W
10 uF 25 V elettr.
Vedi testo
2,2 kohm W
100 nF pol.
Vedi testo

Figura 4: circuito stampato per lassemblaggio.

Figura 5: indicazioni del piano di montaggio.

termina la frequenza di oscillazione. Nel


prototipo stato utilizzato un quarzo per
computer da 14.318 MHz, valore che cade
nella banda dei 20 metri assegnata ai radioamatori. Inoltre tramite il compensatore C1 sar possibile regolare di qualche kHz
la frequenza generata. Lamplificatore audio, composto dal transistor TR2 e componenti limitrofi, tramite il condensatore
C5, porta il segnale prodotto dal microfono al modulatore bilanciato. Il segnale
DSB-SC presente alluscita del modulatore bilanciato viene amplificato dallo stadio successivo composto da TR3 configurato come amplificatore in classe A. Sul
collettore di TR3 troviamo un secondo trasformatore a larga banda che assieme al filtro passa basso composto da L1, C12 e
C13 migliora ladattamento di impedenza
con il circuito dantenna da 50 ohm.
94

MONTAGGIO E TARATURA

Trasformatore a larga banda T1

Il circuito non risulta particolarmente critico, e in realt non ci sono tarature da effettuare, ma la realizzazione dei trasformatori a larga banda e della bobina L1
deve essere fatta con cura.
Se non si gi sufficientemente esperti di
montaggi in alta frequenza, si consiglia lutilizzo di un apposito circuito stampato per
lassemblaggio, come quello proposto
in figura 4, seguendo le indicazioni del
piano di montaggio di figura 5. I transistor
possono essere sostituiti con degli equivalenti; la sostituzione di TR3 pu determinare una minore potenza in uscita
che, con i componenti indicati e unalimentazione di 12,5 volt, pu arrivare a circa 250 mW picco-picco.Qui di seguito viene spiegato come procedere con lavvolgimento degli induttori.

Prendete tre spezzoni di filo di rame


smaltato da 0,3 mm, lunghi circa 50 cm
e attorcigliateli in maniera simmetrica;
importante che lattorcigliamento sia
uniforme, per fare questa operazione si
consiglia luso di un semplice trapanino
avvitatore a bassa velocit. Utilizzate il filo attorcigliato per realizzare il trasformatore, avvolgendo in una ferrite binoculare tipo Amidon BN 43-1502, 10
spire; il numero di spire non critico, 1 o
2 spire in pi o in meno non pregiudicano il buon funzionamento del trasformatore. Effettuato lavvolgimento, allargate i 3 fili componenti i due terminali e
con laiuto di un tester, contrassegnate
gli avvolgimenti come visibile in figura 6,
unite assieme quindi i terminali B0 e C1;
la presa cos realizzata sar quella da col-

92-95_Trasmettotore_FE 03/12/09 07.51 Pagina 95

Procedimento
Figura 6: la realizzazione dei due trasformatori.

Figura 7: indicazioni per realizzare una piccola sonda di carico.

legare al condensatore C5, mentre gli


estremi C0 e B1 andranno collegati ai
due diodi al silicio.

Trasformatore a larga banda T2


Prendete due spezzoni di filo di rame
smaltato da 0,3 mm, lunghi circa 50 cm e
procedete come per T1 allattorcigliamento. Utilizzate il filo cos preparato per
avvolgere sempre in una ferrite binoculare
tipo Amidon BN 43-1502 ,13 spire, an-

che qui il numero non critico. Allargate


i fili componenti i due estremi del trasformatore e sempre con lausilio di un tester marcate i 4 terminali unite A0 e B1,
ottenendo cos la presa che sar collegata
a C11.

Bobina L1
L1 va realizzata avvolgendo 12 spire di filo di rame smaltato da 0,5 mm in un toroide Amidon di colore giallo T-37-6.

Procedete assemblando sul circuito stampato le varie parti e ricordate di collocare


su TR3 un piccolo dissipatore. Come microfono potete utilizzare una piccola capsula preamplificata o uno di quei microfoni
che si collegano al PC. Collegate al posto
dellantenna una piccola sonda di carico,
se non ne possedete una la potete facilmente realizzare seguendo le indicazioni
dello schema di figura 7. Collegate alla
sonda un tester posizionato su 20 volt fondo scala, date quindi tensione al circuito.
Se tutto stato fatto bene, in assenza di
modulazione sul tester dovreste leggere
un valore di tensione molto bassa, dellordine di 0,3-0,5 volt, mentre parlando a
voce alta sul microfono dovreste raggiungere picchi di tensione pari a 5-6
volt. La piccola presenza di portante dovuta al fatto che i due diodi al silicio del
modulatore bilanciato, non sono perfettamente uguali, bisognerebbe sceglierne
una coppia con stessa resistenza inversa
e diretta per ottenere una tensione quasi
nulla in assenza di modulazione o passare
a un modulatore bilanciato pi complesso. Non provate ad ascoltare il segnale
trasmesso su una comune radiolina in
grado di captare le onde corte, perch almeno che non abbia integrato un BFO o
un comunque un demodulatore SSB,
sentireste solo dei rumori incomprensibili.
Lassenza di portante, nella trasmissione
DSB-SC, rende inutile la demodulazione dellinviluppo tramite il classico rilevatore usato nella normale modulazione di
ampiezza, ma se siete gi in possesso di
un ricetrasmettitore amatoriale non avrete difficolt a sintonizzarvi sui 14.318
MHz e ascoltare cosa propaga nelletere
il vostro piccolo trasmettitore. q
CODICE MIP 2756967

95

pubblicit_fe 04/12/09 15.54 Pagina 4

Pulisco qualsiasi tipo


di pavimento
Arrivo negli angoli e
nelle zone pi difcili
da raggiungere

Passo sotto i mobili

Aspiro sporco, polvere,


briciole e peli di animali

Pulisco meglio di chiunque, perch sono un robot. Tutti i miei movimenti sono calcolati 64 volte al
secondo. Grazie al mio speciale sensore che rileva lo sporco, passo tutto il pavimento pi volte e
quando per fettamente pulito, vado alla stanza successiva* oppure rientro alla Home Base
per ricaricarmi.
Posso essere programmato** facilmente per pulire dove e quando vuoi tu. Riconosco e pulisco
qualsiasi tipo di pavimento, dalle piastrelle ai tappeti, dal parquet alla moquette. Aspiro qualsiasi
tipo di sporco: polvere, briciole e peli di animali. Sono cos bravo che possiedo molti brevetti e ho
vinto premi di design e ingegneria in tutto il mondo. Gli ingegneri che mi hanno progettato hanno
costruito anche i miei amici che lavvorano per la NASA , ma io preferisco lavvorare per le oltre 3
milioni di famiglie che contano su di me. Anche tu, come loro, mi darai un nome (ah, questi umani!).
Ma io ho gi un nome, mi chiamo Roomba.
*Modelli 56 0, 562, 580 (modelli con Lighthouse in dota zione)

CODICE MIP 2757593

Sono Roomba,
il robot
aspirapolvere
che pulisce
da solo

* *Modelli 555, 56 0, 562, 580

w
www.irobot.it
ww.irobot.it
I p r o d ot ti iR o b ot s o n o di s tr ib ui ti in It a li a d a

96-103_RobotKit_FE 03/12/09 08.29 Pagina 97

96

ROBOT KIT LHARDWARE

Progettare piccoli robot domestici


certamente unattivit gratificante
che pu riempire di gioia qualsiasi
appassionato.
Come ogni attivit umana, e in modo
particolare un lavoro di progettazione
integrata hardware e software,
necessario definire, in modo chiaro
e preciso, le diverse fasi di lavoro:
solo in questo modo possiamo
raggiungere il nostro obiettivo
di Francesco Pentella

104

THREAD FOCUS

La tua voce dalla rete

96-103_RobotKit_FE 03/12/09 08.29 Pagina 98

robot zone

robot zone

di FRANCESCO PENTELLA

ROBOT KIT
(prima prima)

Progettare piccoli robot


domestici certamente unattivit
gratificante che pu riempire
di gioia qualsiasi appassionato.
Come ogni attivit umana,
e in modo particolare
un lavoro di progettazione integrata
hardware e software,
necessario definire, in modo chiaro
e preciso, le diverse fasi di lavoro:
solo in questo modo possiamo
raggiungere il nostro obiettivo

Figura 1: il nostro robot allopera.

98

Lhardware

a realizzazione di un robot, anche


semplice, richiede un certo lavoro
che coinvolge gli aspetti legati al design hardware fino a coprire anche il software di basso livello (o firmware). Per
raggiungere il nostro obiettivo occorre
definire a tavolino tutti gli aspetti, ma
quali? Questo articolo propone la definizione di un piccolo robot in grado di compiere movimenti autonomi. Per intraprendere questo percorso utilizziamo un
piccolo progetto messo a punto diversi
anni fa: il RoCK (o Robot Conversion Kit),
consultabile dal sito www.wirz.com/rock
che fornisce ulteriori informazioni su questo oggetto. Il RoCK un modulo, a basso costo, che permette di trasformare

un giocattolo, per esempio una macchinina, in un robot mobile. La figura 1 e la


figura 2 mettono in evidenza le due diverse soluzioni. Nella figura 1 vediamo luso del RoCK su una macchina, o su un altro dispositivo mobile. In questo articolo
affronteremo il design dellhardware, mentre nel prossimo ci occuperemo della
parte software del progetto.

OVERVIEW DEL SISTEMA


La figura 3 mostra lo schema top-level
del sistema. Da questo diagramma notiamo i diversi sensori, come ad esempio
quelli IR (infrarossi) per la rilevazione degli ostacoli. I sensori di luce permettono al
nostro robot di seguire una fonte dilluminazione o anche di evitare la stessa
per cercare zone oscure o in ombra. Il sistema per la rilevazione degli ostacoli
basato su quattro diodi IR, due emettitori
e due ricevitori, che permettono al robot
di evitare collisioni. Il principio di funzionamento di un sistema del genere presto spiegato. I due ricevitori utilizzano
una frequenza tipica di 38.5 kHz, mentre
per regolare la sensibilit si ricorre a un
potenziometro, vale a dire con il potenziometro si regola lassorbimento (quantit di luce) dei due emettitori. Se un
ostacolo si trova nel cono di luce generato
dal LED IR sinistro, questo ne riflette la luce verso il ricevitore IR e quindi viene indicata la presenza dal lato sinistro; al
contrario, se loggetto si trova dal lato
destro e riflette la luce del LED IR destro, questo sar rilevato come presente
dal lato destro. In caso di collisione, la sezione del circuito predisposto a questa
evenienza metter in allerta il robot e in
questo modo il software attiver le varie
azioni correttive predisposte allo scopo.
Il driver del motore fornisce poi la necessaria potenza per pilotare correttamente la macchina. possibile configu-

96-103_RobotKit_FE 03/12/09 08.29 Pagina 99

rare il robot attraverso diversi interruttori presenti e il potenziometro, in questo


modo lutilizzatore in grado di regolare
diversi parametri.
In questa realizzazione anche presente una sorta di monitoraggio del valore
della tensione erogata dalla batteria,
una proposta interessante perch fornisce allutilizzatore le necessarie informazioni per decidere la sostituzione della stessa. Inoltre, grazie alla presenza
di quattro LED e di un cicalino, il robot
in grado di segnalare alcune condizioni di
funzionamento. Queste condizioni possono essere definite nel firmware attraverso opportune configurazioni del software. La presenza di uninterfaccia seriale, poi, garantisce al sistema flessibilit in fase di aggiornamento del firmware (presente nella memoria interna
microprocessore). Il sistema permette
di collegare sensori addizionali o attuatori utilizzando un expansion header, in
questo modo diventa perfettamente scalabile. La parte intelligente del sistema
gestita da un microprocessore della famiglia Atmel. La tabella 1 mostra i diversi
segnali coinvolti e le loro relazioni con i
pin del processore.

Figura 2: unaltra applicazione.

IL PROCESSORE
Il blocco CPU messo in risalto dalla figura 4. Il nostro progetto utilizza il modello Atmel AVR AT90S7535, ma pu
essere sostituito, perch in via di obsolescenza, dal modello ATmega8535.
Luso di un microcontrollore permette
di risparmiare spazio e riduce i costi di
realizzazione.
Il modello dispone di una serie di canali
per supportare la funzionalit ADC (analog to digital converter) utilizzata per monitorare i sensori. Il processore fornisce
anche diversi timer che trovano la loro naturale applicazione nella funzionalit di
PWM (pulse width modulation) per il pilotaggio di motori, nella generazione dei
toni per il cicalino, o per la necessaria frequenza di 38 kHz utilizzata dal sottosistema per la rilevazione degli ostacoli
(IR). LAVR dispone anche di diversi comparatori per il controllo dellover-current
del driver dei motori. Il processore dispone anche di diverse facility che rendono

Figura 3: top level.

99

96-103_RobotKit_FE 03/12/09 08.29 Pagina 100

robot zone

robot zone

Tabella 1 Funzionalit e segnali coinvolti

SISTEMA

PORTS/SIGNALS ATMEL

DESCRIZIONE

Vcc/Batt+
PC0-3
PD6
PA5 (ADC5)

DPDT switch enables logic and motor power


Quattro display per evidenziare lo stato del robot
Segnali pilotato ad interrupt. Il cicalino rIproduce toni con frequenza arbitraria
Attraverso il potenziometro possibile regolare e configurare la nostra applicazione

PA4
PD0,1 (RXD,TXD)

Consente la configurazione della nostra applicazione


Luso dellinterfaccia RS-232 permette di collegarsi a un PC per sessioni di lavoro

Rilevazione degli ostacoli


Left IR detector
Right IR detector
IR emitters

PD2
PD3
PD7 (OC2)

38 kHz IR receiver
38 kHz IR receiver
La generazione dei 38 kHz fatta direttamente dal processore

Sensori di luce
Left photo cell
Right photo cell
Motor current

PA0 (ADC0)
PA1 (ADC1)
PB2 (AIN0)

La rilevazione delle fonti di illuminazione fatta attraverso degli ingressi analogici


Collision detection
Comparatore analogico. Attraverso questa funzionalit possibile fare
una misura per rilevare le collisioni

Interfacce On-board
Power switch
Display
Cicalino
Potenziometro a disposizione
dellutente
Tastini per lutilizzatore
Interfaccia seriale

Current set
Battery monitors
Motor power
Logic power
Motor output
Motor PWM
Motor direction
IO addizionale
User digital
User analog

Figura 4: modulo processore.

100

PB3 (AIN1)
PA2 (ADC2)
PA3 (ACD3)

Monitor for motor supply battery voltage


Monitor for logic supply battery voltage

PD4,5 (OC1B,A)
PB0,1

La generazione del segnale PWM svolta interamente dal processore

PC0-7
PA6,7 (ADC6,7)

Otto I/O digitali disponibili allutente


Due canali analogici disponibili

il lavoro del programmatore abbastanza


agevole. Per esempio, la presenza delle
seriali on chip pu essere senzaltro utile per collegare il processore a un PC
per le seguire senza problemi sessioni di
programmazione e il monitoring di highlevel. Oltre alla presenza di segnali analogici, il processore permette anche la gestione delle linee di I/O digitale. Luso
delle linee digitali di fondamentale importanza per la gestione dei LED e per il
tastino user button.
Il modello AT90S8535 dispone di 8 KB di
memoria flash utilizzata per il programma
di gestione del sistema, di 512 KB di memoria SRAM e di 512 KB di memoria EEPROM. La memoria presente nel processore utilizzata per ospitare il programma di funzionamento del robot o
dei vari programmi utente. Per la gestione della memoria non sono necessari altri dispositivi hardware perch il blocco
funzionale praticamente gestito direttamente dal processore senza la necessit di circuiteria addizionale. La fre-

96-103_RobotKit_FE 03/12/09 08.29 Pagina 101

play. Questi LED potrebbero essere utilizzati


per indicare lo stato del robot. La linea attiva
bassa, LED enable line o LEDEN, rende
possibile il multiplexer delle linee che pilotano
i LED. Il cicalino connesso alla linea PD6
di Atmel. Per generare unonda quadra per
il cicalino si utilizza una ISR (Interrupt Service
Routine) agganciata al Timer/Counter 0
per fare cos il toggle del pin PD6. Il tempo
che intercorre tra due interrupt corrisponde
al mezzo periodo, H, del suono emesso
dal cicalino. Il software utilizzato dal robot
regolato per un tick di 8 microsencondi.
In questo modo:

Il Timer/Counter 0 un registro a 8 bit con


valori tra 0 e 255. La pi piccola frequenza che il cicalino pu produrre di f
= 62,500/255 = 245 Hz, mentre la maggiore frequenza (dove H uguale a 1) di
62.5KHz. Il robot restringe linsieme dei toni riprodotti dal cicalino, vale a dire che,
per un tono con una frequenza determinata, f 0 , lennesimo tono della scala
dato dalla relazione

Figura 5: on board user interface circuit.

Figura 6: Rs-232.

quenza di funzionamento del microprocessore assicurata dalla presenza di


un oscillatore di 8 MHz di tipo ceramico
presente nel circuito.

INTERFACCE ON-BOARD
Quattro linee di I/O sono configurate come
output (figura 5), in questo modo possibile collegare al robot una serie di LED o dis-

Il robot utilizza una frequenza di 532 Hz per


f0. Nella definizione della scala solo i valori interi possono essere considerati e memorizzati. Per evitare problemi con il volume
del cicalino possibile utilizzare uno pseudo driver H-bridge per creare una 14Vpp,
il tutto per mezzo di un transistor esterno
e due resistenze (si veda la figura 5).
Per selezionare un modulo software presente nella memoria del processore, e
quindi una differente modalit di funzionamento, lutente deve premere il tastino
definito come user button e regolare il
potenziometro. Il potenziometro collegato
al canale cinque della linea ADC e il tastino al pin PA4 del processore (entrambi appartengono alla porta A del processore). Si
ricorda che ogni pin della porta A configurabile autonomamente per applicazioni digitali o analogiche. La figura 6 mostra, poi, il circuito che implementa una
RS-232 di tipo half-duplex. Uninterfaccia
seriale permette la comunicazione con
101

96-103_RobotKit_FE 03/12/09 08.29 Pagina 102

robot zone

robot zone

un host per instaurare, per esempio, sessioni di test con la conseguente riduzione
di costi e spazio di board evitando luso di
blocchi funzionali addizionali.
La seriale funziona a 9600. Il valore del
baud rate viene modificato attraverso il registro UBRR. La velocit della seriale ricavata dalla formula:

dove fCK la frequenza del clock


Luso del registro UBR, a un valore di
51, fissa i valori minimi e massimi del
baud. Cos avremo:
Figura 7: Power supply and reset.

I valori di 8.088 MHz e 7.912 MHz tengono conto della tolleranza delloscillatore.
Il baud rate prodotto anche in questo
caso oscilla tra 1.3% e -0.9% della sua velocit ideale di 9600 bps.

POWER SUPPLY & RESET

Figura 8: IR detector, IR Emitter, and light sensing circuits.

102

Il blocco funzionale della sezione alimentazione e reset mostrato nella figura 7. La prima versione del robot utilizzava un comune circuito integrato
7805 in un package TO-92. stata scelta una batteria da 9 V per pilotare tutta
la parte logica. A oggi possiamo senzaltro pensare di impiegare i pi moderni
regolatori di tensione per ottenere bassi valori di dropout rispetto al tradizionale
7805. Grazie a questo otteniamo perci
un vantaggio immediato, vale a dire
laumento della vita media della batteria.
Laspetto negativo invece il diretto
aumento dei costi; infatti, la maggior
parte dei regolatori di tensioni con basso dropout sono pi costosi di un tradizionale 7805.
Probabilmente, cercando tra i vari costruttori, possiamo trovare anche delle
soluzioni con un prezzo, magari non inferiore, ma certamente comparabile.
Per esempio, il dispositivo della National

96-103_RobotKit_FE 03/12/09 08.29 Pagina 103

Figura 9: Collision detection and over-current protection circuits.

Semiconductor LM2931 utilizza solo un


condensatore elettrolitico standard per
filtrare luscita.

LIGHT SENSORS
Questa parte messa in evidenza dalla
figura 8. In questa realizzazione si utilizzano elementi foto-resistivi di tipo CdS
(cadmium sulfide). Il tempo associato
alle celle CdS pu eccedere i 35 ms,
ma questi tempi sono in linea con le nostre esigenze.

LA RILEVAZIONE DEGLI OSTACOLI


Il progetto prevede che il sistema deputato
alla rilevazione degli ostacoli debba essere
composto da due diodi emettitori IR connessi in serie e due ricevitori (vedi figura
9). Dato che la corrente richiesta abbastanza bassa, i diodi emettitori sono pilotati dalle linee del microcontrollore PD7
(OC2). I segnali attivi bassi dai diodi IR sono collegati alla linea PD2 e PD3, rispettivamente, dei ricevitori di sinistra e destra.
I dispositivi IR ricevitori sono gli stessi
gi utilizzati per rilevare in remoto i segnali
di controllo di un apparecchio televisivo o
di un altro dispositivo elettronico di consumo. Per funzionare correttamente, il
diodo IR receiver deve funzionare con

un segnale infrarosso a 38 kHz modulato


attorno a 1 kHz. Il processore utilizza il Timer/Counter 2 per generare il segnale
di 38 kHz per mezzo del conteggio impostato dal software, conta un numero
corrispondente di mezzi periodi di una
frequenza di 38 kHz.
Quando il contatore incontra questo valore, la linea PD7 si mette in toggle e il
contatore resetta per ripartire nuovamente. La connessione commutata
ogni 500 microsecondi. compito del
software del processore attivare e disattivare, alternativamente, la connessione tra Timer/Counter 2 e la linea PD7.

MOTOR DRIVER
La scelta del tipo di motore da utilizzare
per unapplicazione di questo tipo rappresenta la difficolt maggiore. Per la nostra realizzazione, il motore dovrebbe
avere le seguenti caratteristiche:

Dual channel con massima corrente


continua di 500 mA per canale;
tensione di ingresso tra 3-15 VDC;
possibilit di essere interfacciato con un
processore AVR con PWM;
possibilit di sfruttare lover current
protection e il bump sensing.

Sicuramente il modello che incontra il


maggior favore Unitrode/STMicroelectronics L293D. Il dispositivo L293D pu
essere configurato come un duale driver
H-bridge ed disponibile a un costo
contenuto e proposto in package DIP16.
Inoltre, il componente per essere utilizzato
correttamente richiede solo un apporto
minimo di componenti a supporto. Il
componente presenta per anche degli
svantaggi. Innanzitutto, la durata di una
batteria alcalina a 9 V di alcune ore. Esistono in commercio altri componenti di
questo tipo che forniscono prestazioni decisamente migliori. Per esempio, il Vishay
Siliconix Si9986, anche se il prezzo risulta
maggiore. Esiste anche unalternativa,
vale a dire mettere a punto noi stessi un
driver per motori con dei transistor. Un
design utilizzando dei transistor bipolari
fornisce sicuramente le risposte alle nostre esigenze. Inoltre, un design di questo tipo costerebbe di meno oltre a evitare
le diverse complicazioni di un disegno
con MOSFET.
Il driver del nostro robot protetto dalle
escursioni di corrente eccessive per mezzo di un PTC (positive temperature coefficient) a 1.25 A. La corrente del motore
monitorata per rilevare collisioni. Quando
il robot incontra un ostacolo, il motore
incrementa il flusso di corrente in risposta
al carico addizionale che il robot richiede
per via della presenza di un ostacolo.
Monitorando la corrente, il robot in grado di rilevare quando incontra un ostacolo
sulla sua strada. Il diodo D11 ha la funzione di limitare la tensione presente agli
ingressi del processore. La resistenza
R42 e la capacit C12 aiutano il filtraggio
di spike di corrente.
Il progetto pu anche essere modificato
per inserire motori con diversi requisiti
di corrente.

I/O AUSILIARIO
possibile prevedere nuovi canali di
I/O intervenendo sullI/O header ausiliario. Attraverso PA6 e PA7 o da PC0 a
PC7 sono disponibili, rispettivamente,
due ingressi analogici o digitali oppure.
Le linee da PCO a PC3 sono condivise
con i LED. q

CODICE MIP 2757083

103

104-107_thread_FE 07/12/09 15.15 Pagina 104

thread focus

thread focus
La tua voce direttamente dalla rete

104

104-107_thread_FE 07/12/09 15.15 Pagina 105

105

104-107_thread_FE 07/12/09 15.15 Pagina 106

thread focus

thread focus

La tua voce direttamente dalla rete

106

104-107_thread_FE 07/12/09 15.15 Pagina 107

107

108 CAMPAGNA ABB_FE 07/12/09 15.31 Pagina 108

Lo shop della Community dellelettronica

IEshop
Impara lelettronica!
Il terzo DVD della collana Mr A.Keer con il
corso di elettronica digitale per principianti!
Tra gli argomenti trattati: algebra binaria, porte
logiche fondamentali, registri, contatori.
CODICE MAK-DIGUTALE

PRIMO PIANO

PREZZO: 12,00

OFFERTA
Databook
Un CDROM contenente il database con oltre
90.000 diodi e tiristori con le loro valori massimi consentiti, pin-out, dati del costruttore e
dimensioni
CODICE ECA-409
PREZZO: 54.80 30.00

Nuovo libro sugli UPS


Testo dedicato alle tecniche di progettazione degli UPS alla luce delle problematiche inerenti i dusturbi della rete elettrica. Ecco lindice degli argomenti:

NOVITA

- classificazione
degli ups.
- dispositivi
di commutazione
di potenza.
- tecniche
di conversione cc-ac
- circuiti di controllo
- ups short break.
- inverter e ups sinusoidali
- batterie e circuiti di ricarica.
- circuiti di interfaccia e software di gestione.
Autore: Massimo Di Marco
Formato: 17x24cm
Pagine: 116
CODICE FE-41
PREZZO: 21,50
Ordina subito il libro usando la tecnologia IEmobile!
I primi 10 potranno averlo a soli 19,90 comprese
le spese di spedizione!

108

Un computer a scheda singola


FOX Board G20 un computer a scheda singola con Linux
Embedded che fa uso del core Netus G20 (Atmel
AT91SAM9G20 CPU - ARM9, 400MHz, 64MB SDRAM, 8MB
FLASH). FOX G20 include molte periferiche on-board quali:
lettore di card uSD (card uSD non inclusa), 1 Ethernet, 2 USB
2.0, RTC, 2 porte seriali e 80 I/O GP analogico/digitale. Migliaia di applicazioni possono essere installate e compilate direttamente sulla FOX Board G20, grazie allSDK integrato nel
sistema (editor, compiler, link, library, make, etc.) in ogni linguaggio di programmazione (C, C++, Python, Perl, Java,
PHP, etc.).
Due sockets 40-pin sono disponibili per avere accesso a molti I/O GP
analogico/digitale,
porte seriali (UART,
I2C, e SPI) e interfacce PWM.
CODICE FOX BOARD G20
PREZZO: 166.80

108 CAMPAGNA ABB_FE 07/12/09 15.31 Pagina 109

w w w. i e s h o p . i t

Modulo Camera Seriale JPEG

NOVITA

uCAM-TTL (microCAM) un modulo camera seriale altamente integrato che pu essere collegato
a qualsiasi sistema host richiedente una videocamera o una camera JPEG compressa per applicazioni visive integrate. Il modulo usa un sensore colore CMOS VGA OmniVision insieme a un chip
per compressione JPEG che fornisce un sistema a basso costo e a bassa alimentazione. Il modulo ha
uninterfaccia serialeTTL on-board che usufruibile per una connessione diretta a qualsiasi host
controller o a un sistema PC dotato di porta COM. I comandi utente sono spediti utilizzando un semplice protocollo seriale che pu istruire la camera a mandare immagini raw a singolo frame e bassa risoluzione (160x120 o 80x60) per un veloce controllo visivo o JPEGs ad alta risoluzione
(640x480 o 320x240) per storage o visualizzazione.
CODICE UCAM-TTL
PREZZO: 54.00

Modulo display oLED


OLED-96-PROP un modulo display embedded estremamente compatto ed economicamente produttivo
pronto allimmediato utilizzo, capace di fornire funzionalit stand-alone al proprio lavoro. Il modulo rappresenta
una combinazione unica con un potente micro controller, chip Propeller da Parallax Inc, display OLED 0.96 da
65K colori vivi a 96x64 pixel e slot per memory card tipo micro-SD per una capacit di storage fino a 2GB; il tutto nelle incredibili dimensioni di 27mm X 23mm.
CODICE OLED-96-PROP

OFFERTA

PREZZO: 76.80 58.80

Databook
Non c bisogno di tante parole per presentare i data-book della ECA, ogni laboratorio che si rispetti ne possiede
uno. Audio amplifier un nuovodata book sui circuiti degli amplificatori audio. Oltre 3.500 circuiti diversi da
A205P a PC2500H, schemi delle connessioni, applicazioni, costruttori, equivalenze, packages, indice funzionale,
tavola delle caratteristiche con tutti i parametri comuni in una tabella
CODICE AUDIOAMP
PREZZO: 23.80 15.60

OFFERTA

Da non perdere!
Quattro libri della collana Conoscere ed usare ad un prezzo molto conveniente! Il bundle
comprende i seguenti volumi della collana Conoscere ed usare:
Display LCD, Programamzione Basic per PIC, Linguaggio ANSI C, UPS.
CODICE: BUNDLE N

BUNDLE

PREZZO: 69.99

109

108 CAMPAGNA ABB_FE 07/12/09 15.31 Pagina 110

Lo shop della Community dellelettronica


BEST SELLER

IEshop
Pillole di... Microcontrollori PIC
Un nuovissimo volume di ben 216 pagine dedicato
alla progettazione e alla programmazione in C
dei microcontrollori PIC. Il libro tratta vari modelli
di PIC dal 16F877A al 18F4550.
Ecco lindice degli argomenti:
- I microcontrollori ed i sistemi embedded
- Gli strumenti di sviluppo
- Hello word!
- Gli input digitali
- I Timer e gli interrupt
- Gli ingressi analogici

- Capture Compare PWM


- Il PIC scrive: LCD alfanumerici
- Il PIC disegna: LCD grafici
- La periferica USART
- La periferica MSSP: I2C e SPI
- USB: Universal Serial Bus
- I PIC in rete: connettivit con Ethernet
- EEPROM interna, memoria FLASH e altre librerie
I numerosi esempi pratici di programmazione scritti in mikroC ti consentiranno di gestire
tutte le periferiche del PIC in modo facile e
veloce.

Autore: Paolo Rognoni


Formato: 17x24cm
Pagine: 216
CODICE: FE-40 PREZZO: 27.50

CUBLOC CB405
Modulo core CUBLOC CB405RT BASICcon Ladder Logic Industrial Controller. Ideale per applicazioni richiedenti
largo numero di porte I/O, back-up della memoria dati durante un power-down, larga memoria dati (esempio
modalit Master Modbus RTU). Ideale sia per piccole produzioni sia per produzione di massa (da 1 a
1000+), integrabile in PCB personalizzabile.
CODICE CB405RT
PREZZO: 78.00

Kit di sviluppo RFID

Driver VGA

Il kit di sviluppo RFID di CCS include un semplice transponder read-only


e read/write per dimostrare multiple possibilit di comunicazione senza contatti diretti. Un manuale con esempi in codice sorgente spiegano
come utilizzare i drivers, abilitando lutente a sviluppare in modo veloce
le proprie applicazioni RFID. La scheda prototipo RFID ha un antenna
RFID a corto raggio connessa a una ricetrasmittente RFID IC. (Nota: lantenna a corto raggio una traccia PCB, non un antenna collegata esternamente) La scheda prototipo
delle dimensioni di 3.625 x 2 si connette a componenti esterni usando un bus RS485 four-wire.

Il VGA-PICASO-MD1 un dispositivo embedded compatto ed economico che permette la


gestione grafica di ogni progetto con microcontrollore. I comandi seriali sono semplicissimi e consentono la gestione totale del display
QVGA, VGA e SVGA, e possibile controllare il
colore dello sfondo, oppure creare testi di qualsiasi dimensione, colore e forma, e anche possibile disegnare forme geometriche che includono caratteri bitmap oppure immagini precaricati dallutente tramite il programma per PC scaricabile gratuitamente. Il tutto in 262.000 colori,
senza appesantire il microcontrollore da tutte le
funzioni grafiche che richiedono molte risorse.

CODICE ECL-RFID
PREZZO: 594.00

Kit di sviluppo USB Master


La scheda prototipo USB Master permette allo sviluppatore di aggiungere la funzionalit USB master a un sistema embedded
senza la necessit di possedere conoscenze dettagliate del protocollo USB. La scheda prototipo ospita un chip Vinculum
VNC1L che permette a un microcontroller di interfacciarsi con i
dispositivi USB agendo da master bus.
CODICE ECL-USB
PREZZO: 714.00

110

CODICE UVGA-PICASO-MD1T
PREZZO: 64.80

108 CAMPAGNA ABB_FE 07/12/09 15.31 Pagina 111

10
w w w. i e s h o p . i t

top 10

I 10 articoli pi richiesti
1- Libro Pillole di Microc
2 - Libro Dispositivi per

ontrollori PIC

lascolto segreto

3 - Scheda easyPIC6
4 - Ebook Amplificatori ope

razionali

5 - Bundle 4 ebooks
6 - Ebook alimentatori sw

itching

7 - MikroBASIC-PRO
8 - MikroC-dsPIC
9 - Scheda potenziometro

digitale per easyPIC

10 - Poscope, oscilloscopio

USB

Ordinare direttamente tramite internet conviene! Potrai infatti aggiudicarti dei buoni sconto (coupon) con le modalit:
COUPON ABBONAMENTO ONLINE FE E FW
Sottoscrivendo un nuovo abbonamento o rinnovando il proprio online, direttamente tramite IE SHOP, si ha diritto ad un coupon del 15%! Qualora ci
si abbona (sempre online) a Fare Elettronica e Firmware insieme il coupon
del 20%!
COUPON QUIZ "ELETTROQUIZ"
Rispondendo ai Quiz presente ogni mese su Fare Elettronica si avr diritto
ad un coupon del 10%. Tutte le risposte pervenute saranno accuratamente valutate dagli autori dei quesiti e, in caso di risposta esatta (oltre al
Coupon) potrai vincere fantastici premi!
COUPON "ACQUISTI PREMIATI"
I tuoi acquisti su www.ieshop.it vengono premiati con un coupon del 10%
se il tuo ordine supera i 100 EUR (IVA e spese di trasporto escluse). Ma se
il tuo ordine supera i 200 EUR, lo sconto sale al 20%!

"

IMPORTANTE!
Il coupon pu essere speso esclusivamente ordinando sul sito
www.ieshop.it
Il coupon non potr essere utilizzato in caso di nuova sottoscrizione o rinnovo dell'abbonamento, invece utilizzabile per tutti gli altri prodotti presenti su www.ieshop.it
Ogni coupon ha una scadenza, non dimenticarlo!
Lo slogan "pi acquisti pi risparmi" pecca senz'altro di originalit, ma
in questo caso molto azzeccato: i coupon sono infatti utilizzabili solo una
volta, usalo bene!
I coupon non sono cumulabili, e vanno utilizzati singolarmente, secondo
il criterio cronologico di assegnazione.

108 CAMPAGNA ABB_FE 07/12/09 15.31 Pagina 112

IMPORTANTE: NONSCRIVERENELLAZONASOPRASTANTE!

Indagine sui lettori


Aiutaci a conoscerti meglio!
Con il tuo aiuto riusciremo ad offrirti una rivista
sempre pi in linea con le tue aspettative!
Nome ...........................................................................................................
Cognome ....................................................................................................
Via ................................................................................................ n ........
Cap ............... Citt ............................................................ Prov ............
Email ...........................................................................................................
IL TUO SETTORE DI COMPETENZA:
q B05 Direzione Tecnica

q B08 Direzione Acquisti

q B06 Progettazione

q B09 Insegnante

q B07 Studente

q B10 Altro . . . . . . . . . . . . . . . . .

PRODOTTO PRINCIPALE O SERVIZIO


OFFERTO DALL'AZIENDA DOVE LAVORI:
q C11 Apparecchiature elettriche,

q C14 Apparecchiature scientifiche,

elettroniche, ICT

misura e controllo

q C12 Elettrodomestici

q C15 Automotive

q C13 Consulenza

q C16 Vending
q C17 Altro . . . . . . . . . . . . . . . . .

NUMERO DI DIPENDENTI DELLA TUA AZIENDA:


q D21 da 100 a 500
q D22 oltre 500

q D20 da 50 a 100

FE 293

AVVERTENZE

Il Bollettino deve essere compilato in ogni sua parte (con inchiostro nero o blu)
e non deve recare abrasioni, correzioni o cancellature.

La causale obbligatoria per i versamenti a favore delle PubblicheAmministrazioni.

Le informazioni richieste vanno riportate in modo identico in ciascuna


delle parti di cui si compone il bollettino.

112

q D18 fino a 10
q D19 da 10 a 50

Solo se sei abbonato, indica il tuo codice abbonato: . . . . . . . . . . . .


e barra la casella di interesse :
TIPO DI ABBONAMENTO:

q A01 Personale uso professionale

q A03 Scuola o Universit

q A02 Aziendale

q A04 Personale uso hobbistico

Compila il cedolino e invialo


in busta chiusa o via fax allo 02 66508225
e riceverai GRATIS a tua scelta
UN CD-ROM DEL VALORE DI 10 EURO

FOTOGRAFIA DIGITALE:
un corso completo che guida
l'utente nel mondo della
fotografia utilizzando le
moderne fotocamere digitali.

BABYLON:
il traduttore istantaneo
italiano/inglese
inglese/italiano pi
conosciuto nel mondo.

iPOD CONVERTER:
il software per convertire
i filmati e i file audio
in un formato idoneo
alliPOD.

Grazie per la preziosa collaborazione!

108 CAMPAGNA ABB_FE 07/12/09 15.31 Pagina 113

Se vuoi ordinare "offline" ovvero senza usare internet, usa il seguente modulo dordine PRODOTTI
DESCRIZIONE

PREZZO UNITARIO

Q.t

Totale

SUB TOTALE
SPESE DI SPEDIZIONE
Nota. Se le righe non sono sufficienti, utilizzare pi copie del modulo.

TOTALE

Per maggiori dettagli sulle spese di spedizione e i metodi di pagamento vedi retro cartolina.

FE 2947295

PRODOTTI

COD. PRODOTTO

METODI DI PAGAMENTO

BONIFICO BANCARIO

BOLLETTINO POSTALE

CONTRASSEGNO

TITOLARE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
NUMERO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . .. . . . .. . . . . . . . . . . .
DATA DI SCADENZA. . . . . . . . . . . . . . . . . . . . . . . . . . CODICE DI SICUREZZA . . . . . .. . . . .
INVIARE IL MODULO DORDINE A: Inware Edizioni srl, via Cadorna 27/31 - 20032 Cormano (MI) - oppure via FAX allo 02 66508225
(Inviando questo modulo si accettano i termini e le condizioni riportate a tergo)

Nome . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . Cognome . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Indirizzo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . n . . . .
Cap . . . . . . . . Citt . .. . . . . . . . .. . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . Prov . . . . .
Tel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fax . . . . . . . . . . . . . . . . . . . . . . . . . . Email . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Ragione Sociale . . . . . . . .. . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . ..
Codice fiscale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . Partita IVA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
FIRMA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Fattura
"

S, mi abbono a Fare Elettronica

FE 2947295

ABBONAMENTO

DATA . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Abbonamento TRIAL a 3 numeri di FARE ELETTRONICA a soli 15,00 anzich 18,00


Abbonamento Premium a 11 numeri di FARE ELETTRONICA a soli 49,50 anzich 66,00
Abbonamento PRO a 11 numeri di FARE ELETTRONICA include il CD dellannata 2009
a soli 59,50 anzich 96,00

Usa IEmobile! Abbonati al PRO


al prezzo del PREMIUM

METODI DI PAGAMENTO (per maggiori dettagli vedi retro cartolina)

BONIFICO BANCARIO

BOLLETTINO POSTALE

ALLEGO ASSEGNO

(Intestato a Inware Edizioni)

TITOLARE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
NUMERO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . .. . . . .. . . . . . . . . . . .
DATA DI SCADENZA. . . . . . . . . . . . . . . . . . . . . . . . . . CODICE DI SICUREZZA . . . . . .. . . . .
INVIARE IL MODULO DORDINE A: Inware Edizioni srl, via Cadorna 27/31 - 20032 Cormano (MI) - oppure via FAX allo 02 66508225
(Inviando questo modulo si accettano i termini e le condizioni riportate a tergo)

"

Nome . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . Cognome . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Indirizzo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . n . . . .
Cap . . . . . . . . Citt . .. . . . . . . . .. . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . Prov . . . . .
Tel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fax . . . . . . . . . . . . . . . . . . . . . . . . . . Email . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Ragione Sociale . . . . . . . .. . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . ..
Codice fiscale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . Partita IVA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DATA . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

FIRMA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Fattura

108 CAMPAGNA ABB_FE 07/12/09 15.31 Pagina 114

ISTRUZIONI PER LORDINE E SPESE DI SPEDIZIONE


Il modulo dordine dovr essere compilato in tutte le sue parti ed inviato via posta o via fax ai recapiti indicati sul modulo dordine stesso. Gli ordini potranno essere fatti anche direttamente online dal sito www.ieshop.it. In questo caso non sar necessario inviare il modulo dordine. Le spese di spedizione ammontano a
euro 8,50 a cui vanno aggiunti euro 3,50 se si sceglie di pagare in contrassegno.

METODI DI PAGAMENTO
Si accettano pagamenti ino in contrassegno, carta di credit, bollettino postale o bonifico allordine. Per il contrassegno verr applicata una spesa aggiuntiva di euro 3,50 per le spese di contrassegno. Forme diverse di pagamento devono essere previamente concordate.

Bonifico bancario
Appoggiato su Poste Italiane IBAN: IT 68 I 07601 01600 000070107552 intestato a Inware Edizioni srl.

Bollettino postale
Versamento sul conto corrente postale n. 70107552 intestato a Inware Edizioni srl. Inviare la ricevuta (o copia) del versamento.

Contrassegno
La merce verr pagata direttamente al corriere alla consegna della merce. Il pagamento in contrassegno comporta laddebito di euro 3, 50per spese di contrassegno.

Carta di Credito
Il pagamento con carta di credito pu essere effettuato specificando i dati della carta via posta, email, web, fax o telefono. Per gli ordini effettuati sul sito il pagamento mediante carta
di credito verr effettuato attraverso una connessione sicura SSL per garantire la massima sicurezza.

TERMINI E CONDIZIONI
Tutti i prodotti sono coperti da garanzia. La garanzia copre tutti i difetti di fabbricazione entro un anno dal ricevimento della merce. Tutti i prodotti non funzionanti
per uso improprio o incuria non saranno ritenuti in garanzia e saranno addebitati gli eventuali costi di riparazione. Tutti i prodotti verranno riparati e/o sostituiti direttamente dal produttore. Non sono coperti da garanzia i componenti elettronici (microprocessori, memorie, ecc.) La garanzia dei prodotti si intende F.co ns. sede, le eventuali spese di trasporto sono a carico del cliente salvo accordi diversi. Per dar corso alla riparazione/sostituzione in garanzia necessario seguire lapposita procedura di RMA.

PRIVACY
Ai sensi del Decr. Lgs. 196/2003 la informiamo che i dati trasmessi verranno impiegati coi principali scopi di indagini di mercato e nelle modalit previste dallo stesso, prevalentemente con mezzi informatici. Il conferimento, di norma facoltativo, obbligatorio per permettere il rapporto commerciale. in ogni caso fatto diritto
dellinteressato esercitare i propri diritti, nei modi previsti dal Titolo II art. 7 della legge sopra citata, scrivendo a Inware Edizioni srl, Via Cadorna 27 20032 Cormano o tramite email allindirizzo [email protected]

ABBONARSIALLERIVISTEINWAREEDIZIONICONVIENE!
I vantaggi per gli abbonati sono, oltre al prezzo bloccato per un anno, la ricezione del numero direttamente a casa con la garanzia di ricevere tutti i numeri.
Inoltre un vistoso risparmio che, nel caso dellabbonamento plus, ammonta a ben 36,50 euro.
Labbonamento ha una durata di 12 mesi e comporta linvio di 11 numeri di Fare Elettronica. Eventuali variazioni di indirizzo andranno comunicate tempestivamente
alla Redazione che provveder a registrare il cambiamento senza alcuna spesa aggiuntiva. Labbonamento decorrer dal primo numero raggiungibile alla data di
avvenuto pagamento. Non sono previsti rimborsi in caso di disdetta dellabbonamento.

METODI DI PAGAMENTO
Bonifico bancario
Appoggiato su Poste Italiane IBAN: IT 68 I 07601 01600 000070107552 intestato a Inware Edizioni srl .

Bollettino postale
Versamento sul conto corrente postale n. 70107552 intestato a Inware Edizioni srl. Inviare la ricevuta (o copia) del versamento indicando nella causale:
Abbonamento Fare Elettronica

Carta di Credito
Il pagamento con carta di credito pu essere effettuato specificando i dati della carta via posta, email, web, fax o telefono. Per gli ordini effettuati sul sito il pagamento
mediante carta di credito verr effettuato attraverso una connessione sicura SSL per garantire la massima sicurezza.

Assegno bancario
E possibile spedire un assegno bancario insieme a questo coupon.

114

CODICE MIP 2779022

pubblicit_fe 04/12/09 20.47 Pagina 7

CODICE MIP 2779014

pubblicit_fe 04/12/09 20.16 Pagina 5

Potrebbero piacerti anche