294 295 PDF
294 295 PDF
294 295 PDF
294/295
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
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
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
Solo 47,88
Prezzi
IVA inclusa
IN EDICOLA
progetti per
2000
applicazioni
da non perdere!
Il nuovissimo numero di
Fare Elettronica EXTRA
294/295
dicembre/gennaio 2009/2010
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
www.farelettronica.com
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
sommario
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
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
di Francesco Pentella
COMING...
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
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
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$
*&+')
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?
in fatto
di campagne...
la nostra
non ha rivali
DIRETTORE RESPONSABILE
Antonio Cirella
49,50
DIRETTORE TECNICO
115,00
Gli arretrati potranno essere ri-
Segreteria di redazione
Giorgia Generali
www.farelettronica.com
PROGETTI
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 digitale
terrestre
la tecnologia
e i decoder
FREQUENZIMETRO
DA 60 MHZ
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
Patrizia Villa
Grafica e impaginazione
Mara Florian
Hanno collaborato
in questo numero:
Privacy
SUBITO
3 NUMERI
SONO GRATIS !!!
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]
Stampa
Grafiche Sima
Distribuzione
Parrini & C s.p.a.
Via di Santa Cornelia, 9
00060 Formello (RM)
con PIC16F628
ABBONATI
Coordinamento editoriale
Rachele Villa
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-
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:
OSCI LLATORE A
PONTE WIEN
CROSSOVER A 4 INGRESSI
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
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
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
idee di progetto
idee di progetto
12
(&75*).*2
Firmware
KNOW-HOW IN ELETTRONICA
Applicazioni
UN PULSANTE
MULTIFUNZIONE
circuiti integrati
Tools
TIMER PROGRAMMABILE
CON PIC
STADI DI POTENZA
PER IL CONTROLLO
MOTORE
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!
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
",
1"6
<<<"
,
//,"
",/
, /-"
{ ,"
, ,,,
even
eventi
EXPO ELETTRONICA
Cremona
6>`i>i>]
>`>V>i>>`
",," n]
E6
",
1"6
<<<"
&HOO
LQIR#H[SRVLWLRQVHUYLFHLW
ZZZPRQGRHOHWWURQLFDQHW
6
"
,"//"
"/"
"*
info: www.compendiofiere.it
CODICE MIP 2778765
n ti
19-20 Dicembre 2009
ELECTRONIC
Info: www.electronicdays.it
CODICE MIP 2778763
DAYS
15
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:
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
di Microchip
17
zoom in
zoom in
di GIUSEPPE DE GENNARO
IL DIGITALE
TERRESTRE
18
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
zoom in
zoom in
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 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
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
22
<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
;`jgfe`Y`c`k~g\iZfej\^e\`e)+fi\
zoom in
zoom in
FLUSSO DI BIT
Transport stream
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-
24
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.
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:
25
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
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
27
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
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.
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
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:
progettare &
CINQUE
MELODIE CON UN
di GIOVANNI DI MARIA
PIC
Lhardware
IL GADGET
Il software
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.
Fra Martino;
Jingle Bells;
Tu scendi dalle stelle;
Tanti auguri a te;
Inno di Mameli.
PANORAMICA GENERALE
30
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
& costruire
LISTA COMPONENTI
Sigla
Bat
Ls1
R1R10
R11R12
R13
D1
D2
U1
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
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
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
procedura leds_durante_esecuzione:
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
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.
1 passo
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).
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
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
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-
Development Tool...
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.
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
progettare &
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
36
& costruire
Figura 2: schema elettrico del display.
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
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-
LISTA COMPONENTI
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
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:
40
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-
progettare &
di GIUSEPPE MODUGNO
Lettore di
(parte seconda)
SMARTCARD
In questa seconda e ultima
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
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.
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
& costruire
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.
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
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.
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
Sistemi di registrazione...
discreti
NEW
9500
Telecamera
CAMCOLVC6
NEW
Telecamera
4600
CAMCOLVC5
20800
CP383
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*DOODUDWH9$
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.
9900
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 );
}
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-
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
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 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;
...
}
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;
}
}
}
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;
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
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;
}
}
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;
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
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.
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
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.
primi passi
primi passi
di ANTONIO GIANNICO
I Resistori
ELETTRONICI
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.
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
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 .
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
primi passi
primi passi
Figura 4: valori nominali della sequenza di resistenze standard E12 (tolleranza 10%).
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:
Figura 6: simbolo di un
resistore variabile (trimmer).
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;
primi passi
primi passi
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
147
154
178
187
261
316
332
562
590
E96 (1%)
100
Nero
Marrone
Rosso
Arancio
162 169
Giallo
274
287 301
Verde
464
487
511 536
Blu
825
866
909 953
Viola
102
121
124
127 130
Grigio
133
137
162
165
169 174
Bianco
178
182
215
221
226 232
237
243
287
294
301 309
316
324
383
392
402 412
422
432
511
523
536 549
562
576
681
698
715 732
Nero
750
768
909
931
953 976
Marrone
10
101
110
111
113 114
Rosso
100
130 132
Arancio
1K
Giallo
10K
Verde
100K
115
117
127
129
133
135
147
149
150 152
154
156
169
172
174 176
178
180
196
198
200 203
205
208
226
229
232 234
237
240
261
264
267 271
274
277
301
305
309 312
316
320
348
352
357 361
365
370
402
407
412 417
422
427
464
470
475 481
487
493
536
542
562
569
619
649
657
750
759
866
876
Argento
0,01
Oro
0,1
Blu
1M
Viola
10M
Argento
10%
Oro
5%
549 556
Marrone
1%
626
634 642
Rosso
2%
715
723
732 741
Verde
0,5%
825
835
845 856
Blu
0,25%
953
965
976 988
Viola
0,1%
Nero
200ppm/K
Marrone
100ppm/K
Rosso
50ppm/K
Arancio
25ppm/K
Giallo
15ppm/K
Colore
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
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
Tolleranza: Oro 5%
Coefficiente di temperatura: Rosso
50ppm/K
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
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]
= 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
334
222
473
105
Orario:
9-13
15-19,30
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
info
primi passi
primi passi
100
= 10 1 ohm = 10 ohm
1001
220
= 22 1 ohm = 22 ohm
4992
470
= 47 1 ohm = 47 ohm
1000
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
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-
Resistori 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-
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
eshop.micromed.it
63
www.micromed.it
primi passi
primi passi
PER approfondire...
Resistori Custom
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.
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.
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:
langolo di Mr A.KEER
DECODER
con memoria
I
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
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.
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.
67
langolo di Mr A.KEER
68
INGRESSI
LE
BI
LT
dato
10
11
12
13
14
15
BI
LT
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
langolo di Mr A.KEER
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
70
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.
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.
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
langolo di Mr A.KEER
72
INGRESSI
USCITE
LE
RBI
RBO
dato
10
11
12
13
14
15
BI
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.
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
73
imparare &
di GRAZIA ANCONA
INTRODUZIONE AL VOIP
(parte quarta)
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-
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:
NUMERO
IDENTIFICATIVO
ACRONIMO
TIPOLOGIA
DATA
Dati trasmessi
Si
INIT
Inizializzazione collegamento
No
INIT ACK
Conferma inizializzazione
No
SACK
Si
HEARTBEAT
Si
HEARTBEAT ACK
Si
ABORT
Si
SHUTDOWN
No
SHUTDOWN ACK
No
ERROR
Si
10
COOKIE ECHO
Si
11
COOKIE ACK
12
ECNE
Si
13
CWR
Si
CHUNK
AGGIUNTIVI
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-
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:
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.
TIPO DI
DESCRITTORE
Descrittori
e di session
Descrittori
di tempo
Descrittori dei
media utilizzati
CARATTERE
INDICATORE
PARAMETRI
DESCRITTI
OPZIONALE/
OBBLIGATORIO
NOTE
Obbl.
Obbl.
Opz.
Opz.
Obbl.
Indirizzo e-mail
Opz.
Opz.
Opz.
Opz.
Opz.
Opz.
Opz.
Obbl.
Opz.
Obbl.
77
imparare&approfondire
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
655,00
NEW
19
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
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
Canali
Interfaccia
per Back-up
HDD
Compressione
IPS
FR381
FR371
Prezzo
SATA
(interno)
H264
100
V. comp.
4/2
4/1
350,00
IDE/ATA
(interno)
100
V. comp.
2/1
4/1
596,00
FR329AS
Ethernet
SATA
(interno)
100
V. comp.
1/1
4/1
264,00
FR375
SATA
(interno)
H264
100
VGA
V. comp.
4/1
4/1
385,00
FR374
Ethernet USB
(collegamento PC-Backup)
SATA
(interno)
50
V. comp.
1/1
4/1
220,00
FR367AS
SATA
(interno)
100
V. comp.
1/1
4/1
330,00
FR367ASV
SATA
(interno)
100
VGA
V. comp.
1/1
4/1
360,00
FR395
SATA
(interno)
H264
200
VGA
V. comp.
4/2
8/1
840,00
FR382
SATA
(interno)
H264
100
V. comp.
1/1
8/1
650,00
FR335
16
CD-RW Ethernet
USB (pendrive) RAID
IDE/ATA
(interno)
400
V. comp.
4/2
16/1
1.320,00
FR396
16
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*DOODUDWH9$
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.
ACRONIMO
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
OPTIONS
REGISTER
PRACK
RFC 3262
SUBSCRIBE
RFC 3265
UNSUBSCRIBE
NOTIFY
PUBLISH
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
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):
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).
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:
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
Chiamata inviata
Il telefono del chiamato sta squillando
200 OK
486 busy
(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
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.
CLASSE
DESCRIZIONE
COMPATIBILIT
CON MESSAGGI
DI REQUEST
COMPATIBILIT
CON MESSAGGI
DI RESPONSE
General Headers
SI
SI
Request Headers
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
NO
SI
Allow
Proxy-Authenticate
Retry-After
Server
Unsopported
Warning
WWW-Authenticate
SI
SI
Content-Encoding
Content-Lenght
Content-Type
TIPI
DI HEADERS
Call-ID
CSeq
Encryption
From
Timestamp
Contact
Date
Expires
Record-Route
To
Via
83
imparare&approfondire
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.
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
imparare &
di FRANCESCO PENTELLA
SILICORE SU SPARTAN
Lezioni di VHDL (parte ottava)
86
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-
approfondire
Figura 2: ESP2EVAL.
LISTATO 2 Vectinit.txt
:
:
:
RESET
RESET
NOP
:
:
MOVI 0x00
MOVA 0x04
:
:
:
:
:
:
:
:
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
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).
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.
Family: SPARTAN2;
Device: XC2S50;
Package: PQ208;
Speed Grade: -5.
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
CONCLUSIONE
89
elettro
quiz
294/295
&
rispondi
vinci
base
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
luditronica
luditronica
91
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
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)
92
(1)
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.
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:
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
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
MONTAGGIO E TARATURA
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.
Procedimento
Figura 6: la realizzazione dei due trasformatori.
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.
95
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)
Sono Roomba,
il robot
aspirapolvere
che pulisce
da solo
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
104
THREAD FOCUS
robot zone
robot zone
di FRANCESCO PENTELLA
ROBOT KIT
(prima prima)
98
Lhardware
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
99
robot zone
robot zone
SISTEMA
PORTS/SIGNALS ATMEL
DESCRIZIONE
Vcc/Batt+
PC0-3
PD6
PA5 (ADC5)
PA4
PD0,1 (RXD,TXD)
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)
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
100
PB3 (AIN1)
PA2 (ADC2)
PA3 (ACD3)
PD4,5 (OC1B,A)
PB0,1
PC0-7
PA6,7 (ADC6,7)
Figura 6: Rs-232.
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-
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:
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.
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
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.
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:
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
103
thread focus
thread focus
La tua voce direttamente dalla rete
104
105
thread focus
thread focus
106
107
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
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
w w w. i e s h o p . i t
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
OFFERTA
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
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
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
Driver VGA
CODICE ECL-RFID
PREZZO: 594.00
110
CODICE UVGA-PICASO-MD1T
PREZZO: 64.80
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
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.
IMPORTANTE: NONSCRIVERENELLAZONASOPRASTANTE!
q B06 Progettazione
q B09 Insegnante
q B07 Studente
q B10 Altro . . . . . . . . . . . . . . . . .
elettroniche, ICT
misura e controllo
q C12 Elettrodomestici
q C15 Automotive
q C13 Consulenza
q C16 Vending
q C17 Altro . . . . . . . . . . . . . . . . .
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.
112
q D18 fino a 10
q D19 da 10 a 50
q A02 Aziendale
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.
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
"
FE 2947295
ABBONAMENTO
DATA . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
BONIFICO BANCARIO
BOLLETTINO POSTALE
ALLEGO ASSEGNO
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
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