• Non ci sono risultati.

Capitolo 2 Stato dell’arte

N/A
N/A
Protected

Academic year: 2021

Condividi "Capitolo 2 Stato dell’arte"

Copied!
46
0
0

Testo completo

(1)

Capitolo 2

10

Capitolo 2

Stato dell’arte

In questo capitolo verranno esposti i dispositivi e le tecnologie utilizzate in questo progetto di tesi.

2.1 Comunicazione wireless

Negli anni ‘70, gli eventi chiave che hanno portato alla creazione di reti wireless [1], una delle tecnologie con rapida crescita del XXI secolo è stata la

creazione dello standard IEEE 802.11 nel 1997, e il successivo sviluppo con la certificazione della rete Wi-Fi Alliance. Dagli anni ‘70 agli inizi degli anni ‘90, la crescente domanda di connettività wireless poteva essere soddisfatta solo da una stretta gamma di hardware, basato su tecnologie proprietarie, che non offrivano l’interoperabilità delle apparecchiature da produttori diversi, senza meccanismi di sicurezza e prestazioni scarse rispetto allo standard di allora 10Mbps ethernet cablato. Lo standard 802.11 è una pietra miliare nello sviluppo della connessione wireless e il punto di partenza per un forte e riconoscibile marchio Wi-Fi. Questo fornisce un focus per il lavoro degli sviluppatori di devices e fornitori di servizi e contribuisce alla crescita della tecnologia wireless con altre varianti. Altre tecnologie di rete wireless hanno seguito un’evoluzione simile, con la prima specifica di IrDA pubblicata nel 1994, nello stesso anno che Ericsson ha avviato la ricerca sulla connettività tra i telefoni cellulari e accessori che hanno portato all’adozione della certificazione del Bluetooth da parte dell’IEEE nel 1999. Durante questo periodo di rapido sviluppo, la varietà di tecnologie wireless sono state ampliate per riempire l’intera gamma di requisiti: per la velocità dei dati (sia alti che bassi), distanza coperta (lunga e corta) e consumo energetico (basso e molto basso). Il tutto può essere sintetizzato nel grafico seguente, vedi fig.2.1.

(2)

Capitolo 2

11 Fig. 2.1: Le principali tecnologie wireless (rate vs. range)

2.2 Tecnologia wireless ad infrarossi

In questo progetto di tesi andremo ad utilizzare una tecnologia wireless che

utilizza le caratteristiche dei fasci luminosi ad infrarossi per inviare dati ai dispositivi interessati. Infrarossi o IR (InfraRed) [2], è la porzione dello

spettro elettromagnetico tra 750 e 1000 nanometri (vedi fig. 2.2).

(3)

Capitolo 2

12 Il termine infrarossi letteralmente significa “sotto il rosso”, il riferimento alla posizione dello spettro di appena sotto i 700 nanometri che l’occhio umano percepisce come rosso. Questo ampio spettro è importante perché è utilizzato per applicazioni riguardante il campo delle comunicazioni e di indagine termico riguardanti altri settori (come meteorologia, astronomia, archeologia, medicina etc..). Si effettua una comunicazione wireless attraverso connessione a infrarossi in applicazioni dove i cavi sono poco pratici, come la televisione, telecomandi, vecchi PDA (Personal Digital Assistant) conosciuti meglio come palmari progenitori di dispositivi attualmente molto utilizzati e i diffusissimi cellulari/smartphone. Molte comunicazioni wireless nel campo degli infrarossi sono di solito realizzate attraverso norme stabilite dalla Infrared Data Association (IrDA) [3]. I comandi del telecomando al

televisore si muovono sulle onde infrarosse, anziché attraverso un cavo. In realtà, il primo telecomando TV è stato sviluppato da Zenith Radio Corporation nel 1950 ed è stato chiamato “Lazy Bones”. Pochi anni dopo è stato introdotto il primo telecomando TV senza fili “Flashmatic”. I primi telecomandi includevano solamente i pulsanti di accensione e spegnimento della TV. Nei primi anni ‘80, l’industria incorporava la tecnologia ad infrarossi, o IR nei dispositivi, oggi i telecomandi sono fatti per molti altri dispositivi di elettronica di consumo. Quando si utilizza il telecomando, si invia una piccola quantità di dati invisibili (sotto forma di fotoni di luce infrarossa precisa e modulata) al televisore. Non si può vedere la luce, perché si trova nella fascia di frequenza appena sotto quello della luce rossa visibile. L’infrarosso non deve essere confuso con onde radio o onde sonore, è fondamentalmente un’onda luminosa e le onde sono fatti di energia. Le onde luminose sono caratterizzate da alcune proprietà fisiche come: frequenze e energie. La quantità di energia in un’onda luminosa è proporzionalmente correlata alla sua frequenza. Le onde luminose possono muoversi velocemente come 300.000 Km/s (nel vuoto), le onde rallentano

(4)

Capitolo 2

13 quando si spostano all’interno di sostanze, come l’aria, l’acqua, il vetro, ecc. Le onde elettromagnetiche nel range dello spettro dell’infrarosso non possono passare attraverso gli oggetti solidi. Le istruzioni per i dispositivi di telecomando vengono tradotte da un modello digitale in segnali elettrici e poi inviati in una direzione dal telecomando alla TV. Con l’ausilio di fotodiodi IR i dispositivi possono “vedere” o rilevare i dati che vengono inviati da un trasmettitore (emettitore di raggi infrarossi). Il televisore può comprendere le istruzioni perché ha la circuiteria per convertire i segnali nel modello digitale originale delle informazioni. I dispositivi abilitati a IrDA possono “comunicare” facilmente, se la comunicazione è bidirezionale la tecnologia utilizzata tra i dispositivi è molto complicata e per questo motivo è stata creata l’IrDA. La tecnologia IrDA è una tecnologia sicura di sostituzione dei cavi, conveniente e eccellente per molte applicazioni e ambienti specifici. Continua ad essere sviluppata da centinaia di aziende che, nel corso degli anni, hanno creato Infrared Data Association. IrDA ha successo come tecnologia delle comunicazioni perché: è poco costosa, componenti costano poco rispetto altre tecnologie, è veloce (fino a 100 mbps e con ulteriori sviluppi da 1 Gbit/s fino 5 e 10 Gbit/s). I dispositivi abilitati con tecnologia IrDA consumano meno energia (autonomia maggiore delle batterie nei dispositivi), i dati con IrDA sono protetti. I dati trasmessi tramite infrarossi sono molto difficili da intercettare perché sono direzionali (si sceglie dove inviarli). I dati sono sicuri perché non possono passare attraverso muri o oggetti. Elimina virtualmente l’intercettazione da parte di persone sconosciute, perfetto per applicazioni in cui sono necessari trasferimenti di pagamento, come pagare qualcosa in un negozio (ristoranti e negozi), IrDA è sicuro, non vi è alcun danno all’occhio finché viene usato correttamente. IrDA richiede una connessione e un controllo consapevole. La distanza di connessione è di circa un metro con angolo di incidenza del trasmettitore verso il ricevitore di circa 30 gradi. IrDA è adottata globalmente e

(5)

Capitolo 2

14 implementata in oltre un miliardo di prodotti in tutto il mondo. Gli standard IrDA sono open source (no-profit), ciò aiuta a promuovere l’adozione e rende possibile l’interoperabilità attraverso piattaforme, marche e tipo di prodotto se correttamente implementati.

Fig. 2.3 Tecnologie wireless – Connectivity vs. Networking

Le frequenze a infrarossi sono appena sotto la luce visibile sulla scala elettromagnetica, quindi non esiste alcuna restrizione a chiunque voglia utilizzarli, IrDA non ha problemi di interferenza di frequenze radio o conflitti di segnale. Ciò è particolarmente importante in ambienti critici come gli ospedali e gli aeroporti. In fig. 2.3[4] si sintetizza le proprietà della

comunicazione con standard IrDA confrontandola con altre tecnologie wireless.

2.3 Comunicazione IrDA

L'IrDA [3] è stata formata per consentire una connettività ad infrarossi tra

dispositivi di tutti i tipi, oggi ci sono centinaia di dispositivi che implementano i protocolli di comunicazione IrDA e il trasferimento di dati

(6)

Capitolo 2

15 ad infrarossi sta diventando sempre più una realtà. Ora si descriverà brevemente la tecnologia IrDA a livello basso, livelli fisici fino ai protocolli opzionali di alto livello con una breve descrizione di IrDA Lite, una serie di strategie per l'implementazione di soluzioni minime per i sistemi embedded (si identificano genericamente tutti quei sistemi elettronici di elaborazione digitale a microprocessore progettati appositamente per una determinata applicazione). La Infrared Data Association (IrDA) è stata costituita nel giugno 1993, l’atto costitutivo di IrDA è stato redatto durante una riunione di circa cinquanta aziende per concordare i metodi standard per comunicare i dati tramite la trasmissione a infrarossi a corto raggio. Da quel momento, più di una centinaia di altre società si sono unite a IrDA e ci sono attualmente centinaia di dispositivi disponibili per implementare protocolli di comunicazione IrDA. L'IrDA è amministrata da un direttore esecutivo e da un personale esecutivo. L'attività di IrDA è condotta attraverso tre comitati, le cui posizioni sono elette ciascun anno. Il comitato tecnico è responsabile per l'identificazione e la risoluzione di tutte le questioni tecniche, sia hardware che software. Il comitato definisce le questioni tecniche, propone risoluzioni appropriate e implementa le soluzioni qualora si abbia concordato sull’ argomento discusso. Il processo di consenso viene utilizzato per risolvere eventuali differenze di opinioni. Tutte le nuove proposte tecniche arrivano attraverso questo comitato e il suo gruppo di lavoro. Il Comitato Marketing è responsabile della direzione strategica e tattica dell'associazione, così come lo sviluppo delle esigenze del mercato. Il comitato opera congiuntamente con il comitato tecnico per definire le specifiche tecniche. Inoltre, il comitato sviluppa pubblicità e le attività di marketing che più si avvicinano al settore e alla finalità dei consumatori, questi sono gli obiettivi di questo comitato di IrDA. Il comitato di prova e Interoperabilità è responsabile della produzione dei requisiti di misura per garantire il rispetto delle norme e delle specifiche IrDA proteggendone l'integrità dei marchi. Il

(7)

Capitolo 2

16 comitato sviluppa la documentazione per aiutare gli original equipment manufacturer (OEM), letteralmente “produttore di apparecchiature originali”, è un'azienda che realizza un'apparecchiatura che verrà poi installata in un prodotto finito, sul quale il costruttore finale appone il proprio marchio. Spesso l'azienda che commercializza e marchia il prodotto finito è definita "casa madre" ed è quasi sempre più grande dell'azienda OEM dalla quale acquisisce i componenti e/o alla quale affida processi produttivi, quindi il comitato testa i propri prodotti per verificare che essi soddisfano i requisiti delle specifiche. Questa commissione si occupa di specifiche di prova per hardware e software standard, nonché problemi riguardanti la diffusione dell'interoperabilità e del cliente. Infine, il consiglio architettura ha la funzione di consigliare il Consiglio IrDA in modo che l’obiettivo prefissato da IrDA può essere raggiunto. Le responsabilità del consiglio architettura sono: sviluppare e documentare il quadro architettonico per guidare l'appartenenza nello sviluppo e proposte tecniche che possano essere fatte in modo che l’obiettivo di IrDA possa essere realizzato; segnala ampiamente a tutti i soci e il consiglio sui suoi risultati e le conclusioni raggiunti; consiglia il comitato sulle nuove proposte in fase di sviluppo; formulare raccomandazioni al consiglio sul lavoro futuro che è fondamentale per il successo di IrDA.

2.3.1 Premessa di connettività IrDA

Una delle prime motivazioni delle società coinvolte in IrDA era quella di eliminare i cavi e i connettori con i relativi limiti che ne derivano, i fili si possono sfilacciare, usurare, rompere, si aggrovigliano e talvolta non si riesce a raggiungere alcuni punti. I connettori sui fili a volte si possono usurare, si può avere interruzione del collegamento oppure sono inutilizzabili. I collegamenti cablati bloccano alcune volte le scrivanie con una miriade di fili, e sono notoriamente dimenticati spesso dal viaggiatore

(8)

Capitolo 2

17 che solo dopo scopre che il suo dispositivo portatile è inutile senza che un filo specifico colleghi il suo portatile con il device periferico. I protocolli come IrDA sono stati progettati per sostituire i fili con un "filo virtuale" e avendo la capacità di accedere ai servizi sopra di essa. In origine, l'attenzione di IrDA era di offrire questo livello di connettività e quindi lasciare che i produttori si preoccupassero delle implementazioni specifiche. Da quel momento, è diventato evidente che una volta che il connettore fisico è stato trascurato come scelta progettuale (lasciando essenzialmente un connettore "universale") e intanto standardizzare il tutto su protocolli di livello superiore fornendo livelli ancora più elevati di interoperabilità nello spazio utente IrDA. Successivamente sono stati approvati numerosi protocolli opzionali, la maggior parte dei quali derivati da uno specifico modello di applicazione verticale. Standardizzando i protocolli, i produttori di applicazioni possono costruire sistemi che interagiscono con sistemi di altri fornitori, questo approccio è molto simile a quello visto nel famoso World Wide Web con il protocollo TCP/IP a basso livello che non è stato sufficiente a fornire l'interoperabilità senza qualche protocollo a più alto livello, infatti c'erano vari modi di spostare le informazioni, con un numero limitato di utilizzo più comune di altri (come FTP). Tuttavia, quando HTTP è stato utilizzato dai browser web con un formato standard(HTML), vi è stato un utilizzo esponenziale. Improvvisamente chiunque poteva creare un sito web, perché comprendeva il formato e ogni utente poteva accedere al sito web utilizzando il protocollo comune e ognuno poteva progettare un software per accedere ad un altro sito web. Quando gli utenti compresero quello che il web poteva fare, imprenditori indipendenti hanno fatto il resto e il web esplose, a beneficio degli utenti, questo è il potere di accesso dei dati universali. A distanza ridotta, un device puntandolo e orientandolo verso un altro dispositivo si può avere una connessione wireless, IrDA offre la stessa

(9)

Capitolo 2

18 premessa, che sta diventando sempre più una realtà dilagante nell’utilizzo quotidiano.

2.3.2 Panoramica ad alto livello

I protocolli IrDA [5] sono organizzati in un'architettura tradizionale a strati o

impilati, alcuni di questi strati sono necessari per un dispositivo per portare lo standard IrDA, inoltre, ci sono strati facoltativi che si applicano a modelli di uso specifico. I protocolli attuali forniscono la connettività a distanze fino un metro e alle velocità a 4 Mbps, IrDA si è interessata ad estendere entrambe queste limitazioni e sta lavorando ad estendere le specifiche in entrambi i casi. In uno scenario tipico, un utente potrebbe avere un PDA con elenchi di telefono e indirizzo, l’altro utente potrebbe ricevere i dati su un altro PDA e far scorrere gli elementi selezionati utilizzando il protocollo IrOBEX di IrDA. Questi ed altri modelli di utilizzo si estendono a dispositivi di tutti i tipi, tra cui fotocamere digitali, dispositivi di accesso LAN, telefoni cellulari, computer portatili, PDA, stampanti, scanner, dispositivi medici, ecc. Nel modello base di utilizzo di IrDA, esistono due dispositivi. Uno è il primario e l'altro è il secondario, il dispositivo primario è responsabile della selezione di un dispositivo all'interno della sua visuale, quindi stabilire una connessione e mantenere il contatto visivo o il collegamento virtuale. Il secondario risponde quando viene stimolato da impulsi ad infrarossi. All'inizio di una tipica operazione IrDA primaria inizia un processo noto come "scoperta", in cui si esplora lo spazio visibile tra i dispositivi. Da quei dispositivi che rispondono al primario seleziona un dispositivo e tenta di connettersi ad esso, durante lo stabilimento di connessione, i due dispositivi si scambiano dati per capire le proprie capacità affinché ci sia una connessione che possa essere ottimizzata nonostante le differenze imprevedibili tra due dispositivi differenti. Una volta che si ha un primo cambio di informazioni, loro comunicheranno alla loro velocità di

(10)

Capitolo 2

19 trasmissione più elevata e tentano di inviare dati in modi che ottimizzano il throughput e l'affidabilità della loro connessione. Dopo aver stabilito una connessione, i dispositivi possono ora ricercare i servizi dell'altro dispositivo, se l'altro dispositivo supporta un servizio desiderato, è possibile eseguire una connessione alla prestazione. A questo punto, le applicazioni su entrambi i lati della connessione possono trasferire i dati.

2.3.3 Livelli necessari

In questa sezione, esploriamo i livelli IrDA richiesti, a partire dal basso verso l'alto. Ognuno di questi strati è descritto in dettaglio minuzioso in corrispondenza alle specifiche IrDA. La figura 2.4 mostra l'organizzazione di base dello stack IrDA.

•Livello fisico

Fig.2.4 IrDA protocol stack layers

I ricetrasmettitori IrDA trasmettono impulsi a infrarossi in un cono che si estende da 15 gradi a metà angolo fino 30 gradi a metà angolo. Le specifiche fisiche di IrDA richiedono che: l'irraggiamento minimo deve essere

(11)

Capitolo 2

20 mantenuto in modo che un segnale sia visibile fino a un metro di distanza. Allo stesso modo, le specifiche richiedono che l'irraggiamento massimo non sia superato in modo che il ricevitore non sia sopraffatto dalla luminosità quando un dispositivo si avvicina. In pratica, ci sono alcuni dispositivi sul mercato che non raggiungono un metro, mentre altri dispositivi possono raggiungere fino a diversi metri. Ci sono anche dispositivi che non tollerano l’estrema vicinanza. La distanza tipica per le comunicazioni IrDA è da 5 cm a 60 cm di distanza da un ricetrasmettitore, al centro del cono. Le comunicazioni dati IrDA funzionano in modalità half-duplex (collegamento con un solo canale in una trasmissione seriale: permette alternativamente l'invio di informazioni nei due sensi), la ragione è abbastanza semplice durante la trasmissione il ricevitore di un dispositivo viene colpito dalla luce del proprio trasmettitore. A causa di ciò, la comunicazione full-duplex (trasmissione bidirezionale simultanea) non è fattibile, i due dispositivi che cercano di connettersi simulando una comunicazione full-duplex, creano un collegamento tra loro nel modo più rapido. Il dispositivo primario controlla la temporizzazione del collegamento, ma entrambe le parti sono legate a certi vincoli e sono incoraggiati a formare il collegamento più in fretta possibile. Le velocità di trasmissione rientrano in tre grandi categorie: SIR, MIR e FIR. Infrarosso seriale (SIR) coprono quelle velocità di trasmissione normalmente supportate da una porta RS-232 (9600 bps, 19,2 Kbps, 38,4 Kbps, 57,6 Kbps, 115,2Kbps). Dal momento che il più basso valore è il comune denominatore per tutti i dispositivi è 9600 bps, tutte le scoperte e i compromessi progettuali vengono eseguiti con questo baud rate. MIR (Medium Infrared) non è un termine ufficiale, ma è usato talvolta per fare riferimento a velocità da 0.576 Mbps fino 1.152 Mbps. Fast Infrared (FIR) è considerato un termine obsoleto dalla specifica fisica di IrDA, ma è comunque in uso comune per indicare la trasmissione a 4 Mbps, FIR è talvolta usato per fare riferimento a tutte le velocità sopra SIR. Tuttavia, diversi approcci di codifica vengono

(12)

Capitolo 2

21 utilizzati da MIR e FIR e diversi approcci vengono utilizzati per la creazione di pacchetti MIR e FIR. Per questo motivo, questi termini non ufficiali sono sorti per differenziare questi due approcci. In futuro il collegamento sarà più veloce, velocità di trasmissione (attualmente indicata come infrarosso molto veloce, o VFIR) che supporta la velocità fino 16Mbps.

•Framer/Driver

Il framer e il driver sono in realtà due funzioni separate, ma hanno abbastanza in comune che sono tipicamente raggruppati (comunemente menzionati semplicemente come “Framer”). La parte del driver si riferisce al software che funge da driver per il dispositivo di ricetrasmittente del sistema. Questo driver inizializza l'hardware infrarosso, le modifiche per la velocità di trasmissione, trasmette i dati al ricetrasmettitore e riceve i dati dal ricetrasmettitore. La parte del framer si riferisce al raggruppamento di un pacchetto di dati in una forma che può essere data all’hardware. Questo può includere il calcolo del valore di controllo ciclico di ridondanza, l’aggiunta di bit di avvio, di arresto e di byte riservati. Poiché il campo dell'approccio varia con le velocità di trasmissione, quindi è comune per il framer e funzioni del driver combinare in questo modo tutte le dipendenze hardware in un sistema che possono essere localizzate in una sezione dello stack IrDA. •IrLAP

È un protocollo di accesso l'IrDA Link Access Protocol (IrLAP) ed è responsabile dell'esecuzione della scoperta del dispositivo e dello scambio di dati per preservare la connessione fisica o "filo virtuale". È a questo livello che il concetto di dispositivi primari e secondari è rilevante, IrLAP si basa su High-Level Data Link Control (HDLC), aggiungendo funzionalità per facilitare l’accesso, questa è la natura principale dei collegamenti IrDA. IrLAP fornisce un mezzo di trasmissione affidabile su cui implementare

(13)

Capitolo 2

22 ulteriori comunicazioni, facilita il rilevamento degli errori, la ritrasmissione dei pacchetti persi o danneggiati e il controllo rudimentale del flusso.

•IrLMP: Link Management Protocol

Il protocollo IrLMP (Infrared Link Management protocol) permette a più dispositivi IrDA di far parte di un collegamento fisico. Esempio di applicazione è l’utilizzo di una stampante da parte di più utenti. Siccome la configurazione dei dispositivi IrDA cambia, ogni dispositivo fa sapere agli altri dispositivi le proprie informazioni attraverso il protocollo IrLMP. L’obiettivo dell’IrLMP è di rilevare la presenza di dispositivi che offrono un servizio, di controllare il flusso di dati, e di agire come un multiplexer per configurazioni con differenti dispositivi con diverse proprietà richieste. Le applicazioni usano IrLMP per chiedere se un dispositivo richiesto è nelle vicinanze.

•IAS: Servizio di accesso alle informazioni

Il servizio di accesso all'informazione (IAS) è l'unico servizio richiesto da IrLMP. È il meccanismo attraverso il quale le applicazioni avvertono e accedono ai servizi. Le applicazioni registrano i loro servizi quando vengono caricati e vengono assegnati ad un selettore specifico, chiamato LSAP (Link Service Access Point), in base al quale il servizio può essere accessibile da altri dispositivi, non esistono selettori predefiniti per LSAP oltre al selettore 0 dei IAS. Quando un dispositivo si connette ad un altro, un'applicazione può interrogare gli IAS dell'altro dispositivo per determinare quali servizi potrebbe avere e su quali selettori di LSAP. Una volta che il selettore LSAP è noto, l'applicazione può connettersi e iniziare il trasferimento di dati.

(14)

Capitolo 2

23 •Tiny TP: Tiny Transport Protocol

Tiny TP è un protocollo di trasporto che fornisce due servizi di base: controllo del flusso e di segmentazione (SAR). Tiny TP consente il controllo del flusso per la prestazione del canale, dove il controllo di flusso basilare fornito da IrLAP controlla il collegamento fisico. La segmentazione e riassemblaggio forniscono un meccanismo per la fornitura di pacchetti di grandi dimensioni allo stack IrDA, consentendo a Tiny TP di suddividere i pacchetti (segmentazione) da un lato e dall'altro metterli insieme (riassemblaggio). Questo approccio prende le applicazioni alleggerite per essere interessate a dimensioni del pacchetto di IrDA, questa funzionalità è particolarmente importante per IrLAN.

•Layer opzionali

I livelli seguenti sono tutti protocolli ad alto livello e non sono strettamente richiesti da IrDA. Tuttavia, alcuni di essi sono essenziali nel contesto di determinati modelli di utilizzo. IrOBEX: IrDA Object Exchange (IrOBEX) può essere considerato essenzialmente simile ad "HTTP per IrDA". IrOBEX è stato progettato per assomigliare ad HTTP e sfrutta possibilmente questo protocollo di rete, aggiungendo funzionalità che si riferiscono all'ambiente unico di IrDA. IrOBEX è meglio utilizzato in situazioni in cui dei dati di qualche tipo devono essere spostati da un dispositivo a un altro. Ad esempio, due dispositivi possono scambiare informazioni telefoniche e di indirizzo o informazioni del calendario in formati vCard e vCal. Per questo motivo, ovvero per la sua applicabilità universale per il trasferimento di informazioni ove applicabile, IrOBEX è un protocollo richiesto per i dispositivi che cercano la certificazione di interoperabilità. IrCOMM: è progettato per fornire un supporto con proprietà di ereditarietà per applicazioni già eseguite per porte COM. Ad esempio, supponiamo che abbiamo un PDA con un cavo

(15)

Capitolo 2

24 che si inserisca nella porta seriale di un computer, il software per questo PDA è progettato per comunicare utilizzando un cavo seriale collegato al PDA. Per consentire la sincronizzazione direttamente tra il computer e il PDA, quest’ultimo potrebbe essere abilitato con IrCOMM. Quindi, selezionando una porta COM virtuale, la sincronizzazione potrebbe avvenire attraverso infrarossi senza introdurre eventuali modifiche al software del computer. Questo è un esempio di eredità per IrCOMM. Anche se questo funziona con caratteristiche di eredità, IrCOMM è fortemente scoraggiato come piattaforma per lo sviluppo di nuovi modelli di utilizzo, poiché riduce la ricca funzionalità di IrDA impostata su un cavo virtuale, richiedendo applicazioni sofisticate per ricreare molte delle funzionalità già presenti nel stack IrDA. IrLPT: fa parte della specifica IrCOMM e viene chiamata anche IrCOMM 3-Wire. Merita un cenno speciale perché è il meccanismo con cui è possibile ottenere un invio di dati con caratteristica ereditaria tra dispositivi e stampanti abilitate a IrDA. Il supporto per i computer è ottenuto tramite una porta LPT virtuale che rileva la porta IrDA. Quando un driver di un’applicazione o di una stampante è configurato con la porta LPT virtuale, la stampante ad infrarossi viene abilitata senza modifiche al driver o all'applicazione, come per IrCOMM, IrLPT è destinato al supporto legato alle applicazioni esistenti. A causa della sua importanza per la trasmissione caratterizzati dall’ereditarietà, dove applicabile, IrLPT è richiesto per i dispositivi che cercano la certificazione di interoperabilità IrReady.

IrTran-P: IrDA Transfer Picture rappresenta un meccanismo specifico

utilizzato da alcuni produttori per trasferire immagini digitali tra i dispositivi. IrTran-P è una nota applicazione IrDA, il che significa che rappresenta un modo particolare per risolvere questo problema. IrTran-P è costruito su IrCOMM e pertanto richiede la ricostruzione di più componenti chiave per gestire i servizi e lo scambio di informazioni. In particolare, IrTran-P aggiunge SCEP (Simple Command Execute Protocol) per l'accesso al

(16)

Capitolo 2

25 servizio e la gestione dei collegamenti e bFTP (File Transfer Protocol binario) per lo scambio di immagini di immagini digitali. Inoltre, IrTran-P definisce il proprio formato di immagini digitali, UPF (Uni-Picture Format) in modo che i dispositivi IrTran-P possano comunicare efficacemente.

IrMC: IrDA Mobile Communications è un insieme di quattro protocolli

proposti dal gruppo di lavoro per le comunicazioni mobili di IrDA. Questo gruppo è fondamentalmente interessato alla comunicazione IrDA tra i dispositivi di telecomunicazioni, inoltre molte delle caratteristiche di IrMC sono applicabili ad altri dispositivi e l'ambito di IrMC è stato ampliato per includere dispositivi di tutti i tipi. IrMC incorpora i seguenti protocolli: IrOBEX, IrCOMM, RTCON e Ultra. IrOBEX, viene utilizzato in IrMC per scambiare vCard, vCalendari e oggetti simili, IrCOMM, è utilizzato in IrMC per consentire l'utilizzo di telefoni cellulari come modem esterni, tramite una connessione alla porta virtuale COM tra un computer portatile (o altro dispositivo) e un telefono cellulare, Ultra è un piccolo meccanismo di comunicazione senza connessione che i dispositivi gravemente limitati possono utilizzare per programmazione del dispositivo e scambio di piccoli dati utilizzando una versione senza connessione di OBEX. RTCON: Il protocollo di controllo di trasferimento in tempo reale (RTCON) è utilizzato per trasmettere dati sonori in tempo reale e controllare i dati su un collegamento a infrarossi. In un tipico utilizzo consente di comporre e parlare senza tenere un cellulare durante la guida in auto (che è illegale in alcune parti del mondo, in particolare Europa e Giappone). JetSend: è una tecnologia creata e concessa in licenza da Hewlett-Packard per la consegna digitale di informazioni sull'immagine tramite una varietà di meccanismi di trasporto. Le prime due tecnologie che JetSend su cui è stato implementato furono TCP/IP e IrDA. JetSend consente ai dispositivi di comunicare con grande capacità di gestione delle immagini comuni, eliminando la necessità di driver della stampante. In un ambiente statico e cablato, l'accesso alle

(17)

Capitolo 2

26 stampanti non cambiano spesso, ma per i dispositivi mobili come portatili e PDA trovare e installare il driver della stampante appropriato può essere un problema significativo. Con JetSend, qualsiasi dispositivo abilitato a IrDA può avvicinarsi a una stampante JetSend abilitata a IrDA, avendo la migliore immagine possibile.

• IrDA Lite

In senso stretto, IrDA Lite non è un protocollo, ma è abbastanza significativo nel mondo di IrDA per meritare un breve accenno. La maggior parte dei dispositivi che incorporano IrDA sono dispositivi embedded. La maggior parte di questi dispositivi fornisce notevolmente meno memoria rispetto ai notebook o ai PC. IrDA Lite rende l'implementazione minima di IrDA che interagisce ancora con gli stack IrDA "full-featured", ma lo fa sacrificando velocità e caratteristiche non essenziali. Per i modelli di utilizzo in cui i risparmi di memoria vale la pena di perdere il throughput, le strategie tipiche di IrDA Lite includono la limitazione della dimensione del pacchetto a 64 byte, limitando: la dimensione della finestra a una, la velocità di trasmissione a 9600 e utilizzando un diagramma di stati semplificato. Utilizzando queste e altre strategie IrDA Lite è possibile ottenere una riduzione da 2 a 5 volte i requisiti di RAM e ROM, infatti per alcuni piccoli dispositivi, il throughput e le funzioni non sono importanti quanto la memoria, quindi la decisione di utilizzare IrDA Lite è semplice, invece per altri dispositivi, i compromessi non sono così semplici. Un progettista può impiegare le strategie che hanno maggior senso, raccogliendo i risparmi di memoria desiderati, senza sacrificare completamente il throughput o il set di funzionalità. In sintesi, il numero di dispositivi IrDA disponibili è in rapida crescita negli ultimi anni e la sua crescita continua ad accelerare nel mercato del dispositivo portatile soprattutto in Oriente.

(18)

Capitolo 2

27

2.4 Consumer InfraRed (CIR)

Per il lavoro di tesi si andrà a focalizzare l’attenzione su uno specifico utilizzo della tecnologia IrDA, in quanto ha un ruolo fondamentale nel campo della domotica diventando una tecnologia sempre più pervasiva nella nostra vita quotidiana. Oltre agli standard IrDA, sul mercato è presente lo standard “de facto” chiamato CIR (Consumer Infrared) [6], nato

praticamente per i telecomandi dei televisori. La funzionalità del CIR è ampia in quanto si applica all’elettronica di consumo. Ad esempio, un telecomando televisivo può trasmettere un comando al televisore, mentre un computer potrebbe essere in grado di navigare in internet solo tramite CIR. Il tipo, la velocità, la larghezza di banda e le informazioni trasmesse dipendono dal particolare protocollo CIR utilizzato, purtroppo non essendo un vero standard, ne esistono numerose varianti. Poiché i protocolli Consumer IR sono per la maggior parte non standardizzati, i computer e i telecomandi universali memorizzano spesso un flusso bit, possibilmente compressi, eventualmente senza determinare il numero di bit effettivo per riprodurlo. Le somiglianze tra i telecomandi sono in gran parte il risultato accidentale della distinzione ridotte di chip di encoder/decoder a infrarossi (anche se ora vengono utilizzati i microcontrollori ) e moduli per la ricezione IR. I produttori di elettrodomestici di consumo spesso utilizzano lo stesso protocollo su molti dispositivi simili, anche se per ogni produttore e tipo di dispositivo vengono utilizzati di solito più protocolli. Con la disponibilità di chip microcontrollori a basso costo, attualmente molti telecomandi possono essere basati su tali chip, piuttosto che sui chip dedicati di encoder a controllo remoto. Ciò rende più semplice mantenere gli stessi codici quando si variano i pulsanti del telecomando, inoltre la funzionalità del decoder sarà spesso integrata in un microcontrollore più complicato che controlla il dispositivo audio/video (A/V), eliminando la necessità del chip separato. In

(19)

Capitolo 2

28 assenza di uno standard valido, i microcontrollori possono essere utilizzati per emulare i protocolli ambigui utilizzati dai vecchi chip encoder/decoder. Sony ha prodotto un numero di dispositivi di consumo di diversi tipi che condividono un protocollo proprietario comune denominato S-link, un connettore su ciascun dispositivo ha permesso che i segnali del telecomando siano interconnessi tra i dispositivi e il protocollo ha incluso la funzionalità utile ma insolita di supportare più di uno dispositivi simili. Sony utilizza il protocollo SIRC per il comando remoto, SIRC è sviluppato in tre diverse versioni: 12 bit, 15 bit e 20 bit. Dopo che sono stati ricevuti 12 bit, il ricevitore attende di vedere il numero di volte che il segnale vada da livello logico alto a quello basso per sapere se il protocollo SIRC è codificato a 15 bit o a 20 bit. I codici RECS-80 e RC-5 sviluppati da Philips sono stati casualmente definiti come standard internazionali, tuttavia il protocollo RECS-80 era soggetto a interferenze e fu rapidamente sostituito dal protocollo RC-5 anche se sono protocolli proprietari sviluppati da Philips , sono stati adottati anche da altri produttori, in particolare quelli europei e statunitensi. Questo ha consentito l'interoperabilità tra device portatili e le apparecchiature di vari marchi, il codice RC-5 è stato usato da molti produttori di apparecchiature audio/video specializzate negli Stati Uniti e in Europa, purtroppo la documentazione dei comandi standard non era ampiamente distribuita avendo come conseguenza che ci siano alcune marche di dispositivi che utilizzano comandi non standard, causando interferenze con altre apparecchiature anche utilizzando il protocollo RC-5. Il set di comandi RC-5 è stato definito alla fine degli anni '80 ed è stato ampliato per aumentare il numero di comandi nei primi anni '90 (a volte chiamati RC-5x), tuttavia i requisiti in rapida espansione per le categorie più recenti dei prodotti elettronici a partire da quel momento (ad es.: lettori DVD, centraline A/V, DVR, ecc.) hanno indotto Philips a sostituire il protocollo RC-5 con il nuovo protocollo RC-6 applicato a nuovi device e

(20)

Capitolo 2

29 aumentando i comandi per dispositivo (256 rispetto i 64 nel RC-5 e 128 nel RC-5x), purtroppo le informazioni sul protocollo RC-6 non sono facilmente disponibili da Philips. Al contrario, i principali produttori di elettronica di consumo giapponese hanno adottato quasi universalmente un protocollo sviluppato e gestito da NEC, nel protocollo NEC a ogni produttore viene assegnato un codice univoco contenuto nel comando trasmesso, evitando la possibilità di un’interferenza da altri dispositivi. RECS-80 utilizza la modulazione Pulse-position modulation (PPM), invece RC-5 utilizza biphase mark code (BMC). La trasmissione dei comandi IR richiede solo un microcontrollore e un LED(Light Emitting Diode) a raggi infrarossi, disponibili da un'ampia varietà di aziende. La ricezione dei comandi modulati per RC-5, RC-6 e protocolli NEC è facilmente realizzata con ricevitori IR specifici, facilmente disponibili da Sharp Corporation e Vishay Intertechnology. Questi ricevitori comprendono un fotodiodo , un circuito con Automatic Gain Control (AGC) e un demodulatore, il segnale demodulato viene quindi decodificato con un microcontrollore. La mancanza di standardizzazione crea molti problemi per i consumatori: la necessità di acquistare telecomandi universali perché l'originale non è in grado di controllare funzioni correlate su dispositivi interconnessi e di aggiornarli quando si acquista un nuovo dispositivo, ci possono essere telecomandi universali che non controllano adeguatamente i dispositivi. Lunghezze d'onda infrarossa utilizzate: circa 870 nm e 930-950 nm, ultimo range è preferito perché l' acqua in atmosfera blocca la luce del sole in queste lunghezze d'onda rendendo i dispositivi meno suscettibili di accecare. Frequenza portante : Frequenza portante normalmente fissa, tipicamente da 33 a 40 kHz o da 50 a 60 kHz. Il protocollo più comunemente utilizzato è il protocollo NEC, che specifica una frequenza portante di 38 kHz. Il protocollo NEC è utilizzato dalla stragrande maggioranza delle elettroniche di consumo prodotte in Giappone. I protocolli Philips RC-5 e RC-6

(21)

Capitolo 2

30 specificano entrambi una frequenza portante di 36 kHz. Tuttavia, i primi chip di codifica RC-5 hanno diviso la frequenza principale del microcontrollore a 4 bit per 12. Ciò richiedeva un risonatore ceramico di 432 kHz per raggiungere una frequenza portante di 36 kHz, che non era ampiamente disponibile. Molte aziende hanno quindi utilizzato un risonatore ceramico a 455 kHz, che è comune a causa della frequenza utilizzata nelle stadi di frequenza intermedie delle radio AM radiodiffusive, con una frequenza portante di 37,92 kHz (essenzialmente 38 kHz). Anche la documentazione per i chip di controllo di Philips ha raccomandato un risonatore ceramico di 429 kHz più facile da ottenere, con una frequenza portante di 35,75 kHz. I moderni trasmettitori IR usano tipicamente microcontrollori a 8 bit con una frequenza di clock del master a 4 MHz, consentendo una selezione quasi arbitraria della frequenza portante. Schemi di modulazione: tipicamente la chiave di spostamento dell'ampiezza del 100% (ASK). Può anche coinvolgere la modulazione della posizione dell'impulso , la codifica bifase / manchester , ecc. Degli impulsi trasmessi (al contrario del vettore stesso). La maggior parte dei telecomandi utilizza la lunghezza dello spazio tra gli impulsi per codificare i dati. Frequenza di dati: di solito significativamente inferiore alla frequenza portante. La maggior parte dei protocolli sembra essere compreso tra 120 bit / secondo e 4 bit / secondo. La velocità dei dati può essere variabile poiché alcuni schemi comuni di codifica bit variano la temporizzazione tra gli impulsi per distinguere tra un 1 e 0. Encoding: varia in base ai chip encoder / decodificatori utilizzati. Di solito include alcune ridondanze per rilevare o correggere gli errori. Ad esempio, alcuni chip NEC inviano lo stesso codice quattro volte (invertito la seconda e la quarta volta). Tasto di mappatura dei codici: varia da telecomando a telecomando.

Tuttavia (come dimostrato dai telecomandi “universali”) è possibile

realizzare apparati che praticamente riescono a comunicare con tutte le varianti. Tipicamente la modulazione (velocità di trasmissione) è tra 35 e 40

(22)

Capitolo 2

31 kHz, che male si “sposa” con le tipiche velocità “informatiche” di IrDA. Esistono software che forzano un hardware IrDA a generare segnali CIR, ma spesso il risultato è di limitata portata.

2.5 Protocolli utilizzati nella trasmissione ad infrarossi

In questo paragrafo saranno trattati in dettaglio i protocolli [7] più diffusi e

documentati: RC5 della Philips, il SIRC della Sony e il protocollo NEC. Per il controllo remoto dei vari apparati elettrici ed elettronici (Televisori, radio, stereo, etc.) si utilizzano trasmettitori e ricevitori a infrarossi. L’utilizzo dello spettro infrarosso garantisce una comunicazione meno rumorosa rispetto ad altri spettri utilizzabili avendo a disposizione una semplicità di realizzazione, rendono la comunicazione infrarossi ideale per realizzare una comunicazione affidabile e poco costosa. Per creare un collegamento di controllo IR (Infra Red), necessita avere un trasmettitore, un ricevitore e un protocollo che regoli il modo di comunicare tra di loro senza errori. In seguito, verrà approfondita l’argomentazione sull’ interfaccia ad infrarossi in cui verranno illustrati in maniera esaustiva anche il trasmettitore ed il modulo di ricezione, i quali sono stati citati prima. Il trasmettitore attraverso un LED a infrarossi, invia impulsi al ricevitore come si può vedere in figura 2.5.

(23)

Capitolo 2

32 In figura 2.6 è riportato un treno di impulsi di tensione inviati al diodo LED trasmettitore. Questi impulsi sono realizzati modulando una portante mediante un segnale a bassa frequenza (detta frequenza di bit) secondo il protocollo adottato nella comunicazione. La modulazione è adottata per migliorare il rapporto segnale-rumore (SNR) all’ingresso del ricevitore. La luce infrarossa viaggiando attraverso l'aria arriva al ricevitore e qui è rilevata da un particolare dispositivo che la traduce in tensione. Questo dispositivo è il ben noto fotodiodo. Il fotodiodo è spesso contenuto in un modulo completo che amplifica e demodula il segnale in ingresso al fotodiodo fornendo in uscita un segnale logico, da cui ricavare le informazioni trasmesse dal trasmettitore.

Fig. 2.6 Modulazione della portante nella comunicazione IR

•Protocollo PHILIPS RC5

Il protocollo RC5 è un comune protocollo di trasmissione usato nella

comunicazione mediante infrarossi sviluppato dalla Philips. La

comunicazione consiste nell’invio di pacchetti costituiti da 14 bit: 2 bit di start, 1 stato del tasto, 5 bit di indirizzo e 6 bit di dati. Il singolo pacchetto di 14 bit si ripete ogni 114 ms nel caso di trasmissione continua ovvero quando il tasto, che avvia la trasmissione, è tenuto premuto. In figura 2.7 è riportato il grafico che rappresenta l’evoluzione temporale dei pacchetti inviati in maniera continua.

(24)

Capitolo 2

33 Fig. 2.7: protocollo RC5 trasmissione continua dei pacchetti

Una volta rilasciato il tasto, un pacchetto finale è trasmesso per indicare che il pulsante sia stato rilasciato. In figura 2.8 è riportato il singolo pacchetto tipico del protocollo RC5.

Fig. 2.8: struttura del pacchetto nel protocollo RC5

I primi due bit, S1 e S2 sono i bit di partenza del pacchetto (Start bit) e hanno sempre valore "1". Il terzo bit T è usato per indicare lo stato del tasto che scatena la trasmissione. Se il tasto è premuto e/o mantenuto premuto questo bit assume il valore "0" mentre quando il tasto è rilasciato, il bit passa al valore "1" nell’ultimo pacchetto inviato per informare il ricevitore dello stato del tasto precedentemente premuto. I bit S1, S2 e T costituiscono la parte iniziale della comunicazione detta "Preamble". I cinque bit seguenti A4…A0 sono i bit di indirizzo (Address bit) e costituiscono l’informazione relativa al dispositivo che deve ricevere i dati trasmetti nei successivi bit.

(25)

Capitolo 2

34 Ogni singolo dispositivo ricevitore ha un indirizzo univoco. Solo il dispositivo che ha l’indirizzo uguale a quello codificato dai bit di indirizzo A4...A0 risponde al comando trasmesso. Gli ultimi 6 bit da D5...D0, detti bit di dato (Data bit), compongono il comando da inviare al dispositivo destinatario. Ad ogni singola combinazione dei bit D5...D0 corrisponde un determinato comando secondo una precisa tabella di corrispondenza. La durata del singolo bit è di 1,778 ms. Come accennato prima il bit è ottenuto modulando una portante con un segnale alla più bassa frequenza. Quando il segnale modulante vale zero la portante è annullata mentre quando vale 1 la portante non subisce attenuazione. All’interno del periodo di bit la portante è sia zero (fase bassa) che massima (fase alta). La durata della fase alta è pari alla metà del periodo del bit o 889 µs. I bit che costituiscono il pacchetto sono codificati in Manchester. Come si vede nella figura 2.8, un "1" è rappresentato da una transizione dalla fase bassa a quella alta in un periodo di bit (1,778, ms) mentre lo "0" è rappresentato da una transizione opposta.

•Caratteristiche della portante nel RC5

La portante è un segnale ad onda quadra generalmente alla frequenza di 36kHz, il duty-cycle della portante dovrebbe avere un ciclo di ¼ a per una frequenza di 36 kHz, in figura 2.9 è riportato il grafico e le caratteristiche temporali di un portante a 36 kHz con duty cycle del 25%.

(26)

Capitolo 2

35 In realtà il duty cycle della portante non deve essere esatto, si preferisce avere un duty cycle del 25% per ridurre il consumo di energia. La precisione della frequenza della portante invece è fondamentale soprattutto per il processo di demodulazione. In genere una precisione del +/- 1% è sufficiente, ciò è dovuto alla presenza di un filtro passa-banda centrato alla frequenza di 36kHz nel modulo di demodulazione del ricevitore che riduce il rumore attenuando le frequenze al di fuori della banda passante del filtro

come la luce ambiente e di altre fonti di interferenza.

Nei datasheet dei vari moduli demodulatori a raggi infrarossi utilizzati nei circuiti ricevitori IR è riportata la gamma di frequenze per la portante accettate in ingresso e la banda passante a -3dB del filtro passa-banda in essi presente. Per migliorare l'efficienza di comunicazione bisogna allineare la lunghezza d'onda della luce del LED trasmettitore a quella del fotodiodo in ricezione. Se un LED a infrarossi emette luce con lunghezza d’onda di 890 nm e il demodulatore funziona meglio a 950 nm, rispetto ad un LED a 950 nm di lunghezza d'onda, il LED a 890 nm usa più potenza di trasmissione per ottenere la stessa potenza del segnale ricevuto. In breve, la corrispondenza della frequenza della portante, del duty cycle e della lunghezza d'onda con quelle ottimali per il ricevitore garantiscono una maggiore efficienza e una maggiore distanza

•Protocollo SONY SIRC

Un altro protocollo è il SIRC brevettato ed usato dalla Sony nei suoi dispositivi. Ci sono diverse versioni del protocollo con 12, 15, 20 bit ma quello a 12 è preferito perché più comune e semplice da implementare. Il protocollo si basa anche sulla modulazione di una portante ma ciò che lo differenzia è il modo come il livello logico alto (“1”) e il livello logico basso (“0”). Il protocollo SIRC utilizza lo schema di modulazione PWM (pulse-width modulation). Un bit di valore "1" ha una durata maggiore rispetto al bit

(27)

Capitolo 2

36 di valore "0". In figura 2.10 è mostrato il bit nel caso "0" ed “1”. Nel caso "1" la fase alta in cui la portante non è nulla dura il doppio (1,2ms) rispetto la fase alta dello zero (0.6ms). La portante anche in questo caso è un’onda quadra con frequenza di 40 kHz. La fase alta del bit zero (0.6ms) contiene 24 impulsi della portante mentre la fase alta del bit "1" contiene 48 impulsi, il duty cycle dovrebbe essere del 25%.

Fig. 2.10 rappresentazione dei bit nel protocollo SIRC SONY™

Il singolo pacchetto è trasmesso ogni 45 ms nel caso di trasmissione continua corrisponde alla situazione in cui il tasto, che scatena la trasmissione, rimanga premuto. In figura 2.11 è riportato il grafico della successione dei pacchetti nella trasmissione continua.

Fig. 2.11: protocollo SIRC: trasmissione continua dei pacchetti

La struttura del singolo pacchetto è riportata nella figura 2.12. Ad una fase iniziale di durata di 2.4ms in cui si invia in maniera continua la portante (burst) fanno seguito 7 bit di comando C6...C0 e 5 bit di indirizzo A4...A0. I

(28)

Capitolo 2

37 bit meno significativi (LSB) sono trasmessi per prima, la fase iniziale (burst) distingue l'inizio di un pacchetto e consente al ricevitore di adeguare il suo guadagno per garantire buoni livelli di ingresso.

Fig. 2.12: struttura del pacchetto nel protocollo SIRC

•Protocollo NEC

Il codice NEC [8][9] è adottato da molte aziende e il suo protocollo di

trasmissione utilizza la codifica a distanza di impulsi dei bit di messaggio. Ogni impulso è di lunghezza 562,5 μs, con frequenza portante di 38kHz(26,3μs). I bit logici vengono trasmessi come segue: valore logico '0', un impulso di 562,5μs seguito da uno spazio di 562,5μs, con un tempo totale di trasmissione di 1.125µs, valore logico '1' un impulso di 562,5 μs seguito da uno spazio di 1,6875 ms, con un tempo totale di trasmissione di 2,25 ms come è possibile vedere in figura 2.13. Quando si trasmettono o ricevono codici di controllo remoto utilizzando il protocollo di trasmissione IR NEC, si esegue in modo ottimale quando la frequenza portante (utilizzata per la modulazione/ demodulazione) è impostata su 38.222kHz. Si nota che per minimizzare il consumo del dispositivo, nella codifica del bit “1” il periodo di non emissione è più lungo di quello di emissione. Quando un tasto viene premuto sul telecomando, il messaggio trasmesso sarà formato in questo modo: un pacchetto di impulsi di 9ms (di lunghezza 16 volte dell'impulso

(29)

Capitolo 2

38 utilizzato per un bit di dati logico) ovvero uno spazio di 4,5ms, l'indirizzo a 8 bit per il dispositivo di ricezione, l'inverso logico a 8 bit dell'indirizzo, il comando a 8 bit, l'inverso logico a 8 bit del comando e un impulso finale di 562,5 μs per indicare la fine della trasmissione dei messaggi. I quattro byte di bit di dati sono ciascuno inviati prima dei bit meno significativi.

Fig. 2.13: codifica dei bit 1(a) e 0(b)

La figura seguente (Fig.2.14) illustra il formato di un frame di trasmissione IR NEC.

(30)

Capitolo 2

39

•Formato del dato

Un dato trasmesso usando questa codifica è formato da 32 bit più uno start bit. Lo Start bit è formato da un impulso alto da 8800 μs seguito da un impulso basso di 4400 μs. I restanti campi sono tutti di 8 bit e vengono trasmessi partendo dal bit meno significativo: codice dispositivo, codice dispositivo negato, codice tasto, codice tasto negato. La trasmissione dei campi negati avviene sia come prevenzione verso gli errori, sia per rendere costante la durata di un messaggio. Un esempio di un comando inviato con protocollo NEC si può vedere in figura 2.15, inoltre tempo di ripetizione è di 110 ms.

Fig.2.15: comando inviato con protocollo NEC

Dalla figura 2.15 si evince: 27 ms per trasmettere i 16 bit per l'indirizzo (indirizzo + inverso) ei 16 bit per il comando (comando + inverso). Questo proviene da ognuno dei blocchi a 16 bit che contengono innanzitutto otto '0' e otto '1 avendo (8 * 1.125ms) + (8 * 2.25ms), 67,5ms per trasmettere completamente i dati (non contando l'ultimo impulso di impulso di 562,5μs che indica la fine del messaggio). Se il pulsante del telecomando è tenuto premuto, viene emesso un codice di ripetizione, tipicamente circa 40 ms dopo l'impulso che indica la fine del messaggio. Un codice di ripetizione continuerà a essere inviato ad intervalli di 108 ms, fino a quando il tasto non viene finalmente rilasciato. Il codice di ripetizione consiste nel seguente modo: un treno di impulsi di 9ms, uno spazio di 2,25 ms ed un treno di impulsi da 562,5 μs per contrassegnare l'inizio e la fine del pacchetto di dati

(31)

Capitolo 2

40 (e quindi l'estremità del codice di ripetizione trasmessa). La figura 2.16 illustra la trasmissione di due codici di ripetizione dopo che viene inviato un messaggio iniziale.

Fig. 2.16 Esempio di codici di ripetizione

Possiamo sintetizzare in un grafico una comunicazione ad infrarossi generica tra un telecomando(trasmettitore) e un dispositivo (ricevitore), come è possibile vedere in figura 2.17.

(32)

Capitolo 2

41

2.6 Single-board computer Raspberry Pi

Per gestire l’interfaccia ad infrarossi, che verrà esposta in dettaglio nei capitoli successivi si andrà ad utilizzare un single-board computer. Ci sono un certo numero di sviluppatori e applicazioni che sfruttano il Raspberry Pi

[10] [11] per l'automazione domestica . Questi programmatori stanno facendo

uno sforzo per modificare il Raspberry Pi in una soluzione conveniente per il monitoraggio dell'energia e il consumo energetico. A causa del costo relativamente basso del Raspberry Pi, questo è diventato una soluzione popolare ed economica per le alternative commerciali più costose. Il single-board computer è una scheda elettronica implementante un intero computer o quasi: sono esclusi eventualmente l'alimentatore e le interfacce utente di input e output. Normalmente sono esclusi anche eventuali drive: anche se fattibile, è raro che un drive venga installato sul single-board computer viste le sue normali dimensioni. L'implementazione del single-board computer si è diffusa con l'avvento del microprocessore in quanto il microprocessore ha permesso una drastica riduzione del numero di componenti elettronici necessari (e quindi una minore richiesta di spazio sul circuito stampato). Di norma infatti il single-board computer è un microcomputer, cioè un computer che ha come CPU un microprocessore. Il single-board computer è comunque molto diffuso anche oggi. Ad esempio, nei sistemi embedded e in ambito industriale. Si andrà ad utilizzare in questo lavoro di tesi come single-board computer il Raspberry Pi modello B. Il Raspberry Pi fu sviluppato nel Regno Unito dalla Raspberry Pi Foundation e il suo lancio al pubblico è avvenuto il 29 febbraio 2012. Finora, ne sono state prodotte otto versioni (Modelli: A, B, A+, B+, 2, Zero, 3, Zero W) con prezzi da 5 a 35 dollari statunitensi. L'idea di base è la realizzazione di un dispositivo economico, concepito per stimolare l'insegnamento di base dell'informatica e della programmazione nelle scuole. Il progetto ruota attorno a un

(33)

Capitolo 2

42 chip (SoC) Broadcom (BCM2835, oppure BCM2836 per il Raspberry Pi 2, o BCM2837 per Raspberry Pi 3), che incorpora un processore ARM, una GPU VideoCore IV, e 256 o 512 Megabyte o 1 Gigabyte di memoria. Il progetto non prevede né hard disk né una unità a stato solido, affidandosi invece a una scheda SD per il boot e per la memoria non volatile. La scheda è stata progettata per ospitare sistemi operativi basati sul kernel Linux o RISC OS. È assemblata fisicamente in Galles, nel SoNy UK Technology Centre. Raspberry Pi promuove principalmente l'apprendimento nel linguaggio di programmazione Python, ma è compatibile anche con l'uso del BBC BASIC, del C e del Perl, sono disponibili molti altri linguaggi supportati da Linux e ARM. Le prime concezioni del Raspberry Pi, nel 2006, si basavano sul microcontrollore Atmel ATmega644. Il 19 febbraio 2012, la Raspberry Pi Foundation mise a disposizione un metodo affinché un file immagine fosse caricabile su SD Card per caricare un sistema operativo preliminare. Il file immagine si basava su Debian 6.0 (Squeeze), con LXDE come interfaccia grafica e Midori come browser, più vari strumenti di programmazione e poteva anche girare sull'emulatore QEMU, permettendo di emulare Raspberry Pi su varie altre piattaforme. La fondazione rilasciò successivamente un rilascio basato su Fedora e una versione di Arch Linux. Il file immagine basato su Debian ha poi preso il nome di Raspbian. La prima versione del prototipo basata su ARM era montata su una scheda grande circa come una chiave USB, con una porta USB su un lato e una porta HDMI sull'altro. Nel mese di agosto 2011 furono realizzate cinquanta versioni alpha della scheda. Queste schede erano funzionalmente identiche al progettato modello B. Versioni di prova della scheda mostravano l'ambiente desktop LXDE su Debian, Quake 3 a 1080p, e video Full HD H.264 su HDMI.

(34)

Capitolo 2

43 Fig. 2.18: schema a blocchi del Raspberry Pi

A settembre 2012 è stata annunciata una revisione del PCB. Novità principali della scheda sono la capacità di ricevere l'alimentazione tramite un hub USB alimentato e la disponibilità del debug via JTAG; come novità minori si ha la correzione di un difetto di collegamento tramite HDMI (lasciando il Raspberry Pi non alimentato su una catena HDMI, potevano insorgere problemi nell'utilizzo delle funzionalità Consumer Electronics Control per gli altri dispositivi), il circuito di reset è stato rinnovato, è stato aggiunto un connettore di espansione addizionale, aggiunti i fori di montaggio e apportate correzioni alla serigrafia. Sono inoltre presenti cambiamenti ai GPIO e ai canali I2C Si noti che la dicitura "Raspberry 2.0" comparsa in alcuni siti è concettualmente sbagliata: le modifiche apportate comportano unicamente la correzione di alcuni dettagli progettuali, nulla che giustifichi l'incremento nel numero di versione da 1.0 a 2.0, come riportato anche nel sito del produttore. La scheda ha semplicemente subito una revisione al circuito che sistema problemi minori, come riportato anche sul sito del produttore: infatti, è il circuito stampato che è alla seconda versione, non la scheda nel suo complesso che mantiene gli stessi identici componenti. La fondazione, nel corso degli anni, ha realizzato più modelli, il modello B è equipaggiato con due porte USB ed un controller Ethernet 10/100 e costa 35 dollari. A partire del 15 ottobre 2012 il Model B monta 512 Megabyte di RAM. In seguito, è stato messo in vendita un update concettuale del Model B chiamato Model B+, dotato di 512 Megabyte di

(35)

Capitolo 2

44 RAM, 4 porte USB, ed un sistema di alimentazione ripensato da zero. Anche il Model B+ costa 35 dollari. Raspberry PI non è fornito di un real-time clock, così un sistema operativo deve usare un network time server o chiedere l'ora all'utente al bootstrap. La fondazione Raspberry Pi diffonde ufficialmente sistemi operativi basati su GNU/Linux, fra cui NOOBS e Raspbian. NOOBS è un installatore semplificato mentre Raspbian è una distribuzione basata su Debian GNU/Linux. Il software open source Aseba per la programmazione semplice ed efficiente di robot è disponibile su Raspberry PI. Utilizzando il Raspberry PI in unione con Aseba e il robot Thymio II è possibile creare a costi veramente contenuti un vero e proprio laboratorio didattico di Robotica. Il robot Thymio II è stato sviluppato nell'ambito del programma NCCR Robotics dalla collaborazione tra l'Ecole Polytechnique Fédérale de Lausanne (EPFL) e l'Ecole Cantonale d'Art de Lausanne. La decodifica in hardware di alcuni formati multimediali non è supportata di default, perché richiedono una specifica licenza. Il dispositivo può riprodurre tramite decodifica hardware il formato H.264, mentre per riprodurre i formati MPEG-2 e VC-1 è necessario abilitare la decodifica hardware, acquistando la relativa licenza. Questo consente di mantenere basso il prezzo, e non far pagare all' utilizzatore quelle licenze di cui non necessita. Vari sistemi operativi per il Raspberry Pi possono essere installati su una scheda MicroSD, MiniSD o SD, a seconda della scheda e degli adattatori disponibili. La Fondazione Raspberry Pi raccomanda l'utilizzo di Raspbian , un sistema operativo Linux basato su Debian . Altri sistemi operativi di terze parti disponibili sul sito ufficiale includono Ubuntu MATE , Snappy Ubuntu Core , Windows 10 IoT Core , RISC OS e distribuzioni specializzate per il codice media center e la gestione delle classi, inoltre molti altri sistemi operativi possono anche essere eseguiti su Raspberry Pi. Dopo aver accennato alcuni degli aspetti principali del Raspberry Pi

(36)

Capitolo 2

45 andremo ad introdurre e focalizzare l’attenzione su specifiche caratteristiche che serviranno per il progetto.

2.6.1 Raspberry Pi modello B

Le dimensioni sono quelle di una carta di credito (8.6cm x 5.4cm x 1.7cm), con le seguenti caratteristiche [12]: Processore Broadcom BCM2835 full HD,

CPU ARM da 700MHz (overclocking fino a 800MHz), 512MB di SDRAM, porta Ethernet 10/100 (RJ45), due connettori USB 2.0, uscita video HDMI e composita, uscita audio jack 3.5mm e HDMI e slot per scheda SD. In figura 2.19(a) si può vedere la posizione dei connettori e degli IC principali su Raspberry Pi modello B e in figura 2.19 (b) abbiamo un riscontro reale del dispositivo che andremo ad utilizzare. Non ha storage dedicato, ma presenta uno slot per schede SD da utilizzare come memoria di massa. Per alimentare il tutto, basta usare un comunissimo cavetto microUSB, lo stesso dei cellulari di oggi. Uno dei vantaggi di Raspberry Pi è ovviamente disporre di dimensioni estremamente contenute, le quali ci consentono di posizionarlo praticamente dove necessario, addirittura chiuso in box ermetici capaci di resistere a temperature estreme, acqua e polvere, per poi posizionarlo in esterno. Un altro punto di forza è quello di consumare ben poca corrente elettrica: tenerlo acceso un intero anno si tradurrà in pochi euro sulla bolletta, ma questo ci consente anche di alimentare il tutto con batterie esterne (anche quelle dei cellulari funzionano) o con pannelli solari di modeste dimensioni. L'alimentazione va fornita tramite microUSB con un alimentatore adatto. Il modello B richiede da specifiche 5V di tensione e almeno 700 mA di corrente. A seconda dell’utilizzo per alimentare il device si può utilizzare un cavo USB da pc oppure il carica batterie del cellulare, ma per sfruttare il Raspberry Pi con progetti più esosi di risorse servirà un alimentatore più potente.

(37)

Capitolo 2

46

Fig.2.19: posizione dei connettori e degli IC principali Raspberry Pi mod. B Per verificare che non ci siano problemi di alimentazione, e che quindi il vostro alimentatore eroghi 5V costanti, sul Raspberry Pi sono presenti due

(38)

Capitolo 2

47 piazzole appositamente pensate per inserire i puntali del multimetro e verificare l'alimentazione in ingresso. Sulla scheda hanno il nome TP1 per il positivo e TP2 per il negativo.

• GPIO

Le GPIO (General Purpose Input Output) [13] sono linee di I/O direttamente

collegate al processore, che possono essere impiegate a piacimento per estendere le funzionalità del Raspberry e farlo comunicare con hardware speciale. Alcune di queste linee sono adibite a funzioni speciali, ci sono linee che possono essere usate per generare PWM, oppure configurati per dialogare con altri apparecchi con protocolli come UART, I2C e SPI. Il

connettore GPIO originale è costituito da 26 pin disposti su due file, distanziati tra di loro di un decimo di pollice (2,54 mm). In figura 2.20 possiamo vedere piedinatura e numerazione pettine. Altri connettori che possono tornare utili per progetti più complessi sono S2, usato come DSI (Display Serial Interface) per collegare alcuni schermi LCD o OLED compatibili per applicazioni embedded, e il connettore S5 che fornisce un attacco MIPI/CIS per videocamere compatibili. Esistono diverse revisioni del Raspberry Pi e tre versioni del connettore GPIO, le prime due versioni sono solo leggermente diverse tra di loro; la terza versione (B+) è uguale alla seconda per quanto riguarda i primi 26 pin, ma sono stati aggiunti 14 nuovi pin, prima non presenti. Il pin numero 1 è il più vicino alla scheda SD; è identificato sul circuito stampato da un piccolo rettangolo bianco con la scritta P1; guardando al lato opposto, è l'unico che ha un pad in rame di forma quadrata e non circolare.

(39)

Capitolo 2

48

Fig.2.20 Piedinatura e numerazione dell’header

Bisogna fare delle importanti osservazioni che riguardano possibili danni permanenti al Raspberry Pi. I pin sul connettore GPIO arrivano direttamente al processore, senza alcuna protezione: un errore porta facilmente alla distruzione fisica del SOC ARM, la tensione per il livello logico alto è 3.3V, infatti connessione diretta a logica alimentata per esempio a 5V danneggia permanentemente il Raspberry Pi che non è tollerante a 5 volt. La massima corrente disponibile dai pin di uscita è dell'ordine di 10 mA (è limitata internamente, ma meglio non rischiare), la massima corrente disponibile sul pin dell'alimentazione a 3.3V è 50 mA, se superata Raspberry Pi potrebbe spegnersi brutalmente. La corrente disponibile sui pin +5V arriva direttamente dall'alimentatore del Raspberry Pi, che già deve fornire circa 700 mA al processore. Quindi, se usate il tipico alimentatore USB da 1 A, potete prelevare fino a 300 mA dal connettore della porta GPIO, se fosse

(40)

Capitolo 2

49 maggiore Raspberry Pi si potrebbe spegnere brutalmente. Alcuni pin erano inizialmente indicati come DNC (italianizzando: da non connettere) perché riservati ad usi futuri. In realtà questa ipotesi è venuta meno e quindi sono perfettamente utilizzabili, con la funzione indicata. Il bus I2C/SMBus

richiede due soli pin: SDA, disponibile sul pin 3 e SCL, disponibile sul pin 5. Nell'installazione predefinita il modulo I2C non è attivo: per poterlo

utilizzare è necessario attivarlo, come descritto nella pagina I2C con Bash. Se è stato attivato non sono di conseguenza utilizzabili i pin GPIO2 e GPIO3 (oppure GPIO0 e GPIO1 per la revisione 1). Non è necessario inserire le due resistenze di pull-up richieste da questo bus perché già presenti sulla scheda. Entrambe sono da 1.8kΩ (R1 e R2 sul circuito stampato) e connesse alla tensione di 3.3V. Per evitare danni permanenti, i segnali presenti su SDA e SCL devono essere compresi tra 0 V e 3.3 V. In realtà, come già detto, il bus I2C del Raspberry Pi ha il pull-up passivo collegato a 3.3 V e quindi in teoria

funziona anche con dispositivi I2C alimentati a 5V. Il bus SPI: i pin utilizzati

da Raspberry Pi per la comunicazione SPI sono cinque:

Pin 19: MOSI (Master Output Slave Input). È l'uscita dei dati, dal Raspberry Pi verso la periferica

Pin 21: MISO (Master Input, Slave output). È usata dalla periferica per trasmettere dati al Raspberry Pi

Pin 23: SCLK. È il clock, generato sempre dal Raspberry Pi

Pin 24: CE0 (Chip Enable numero 0). Quando attivo, seleziona la prima periferica. È associato al file /dev/spidev0.0

Pin 26: CE1 (Chip Enable numero 1). Quando attivo, seleziona la seconda periferica. È associato al file /dev/spidev0.1

Riferimenti

Documenti correlati

­ Abbiamo utilizzato il comando   apall per effettuare  apall 

­ avete poi utilizzato imsum per fare la media di FF e  bias e verificato con 

parzialmente contigua – il blocco diventa l’unità indirizzabile sul disco; un file viene memorizzato utilizzando qualsiasi blocco libero, tutti i blocchi utilizzati

[18] Toci E., Applicazione di tecniche di Reverse Engineering per la ricostruzione di modelli CAD di prototipi fisici, Tesi di Laurea in Ingegneria Meccanica presso la Facoltà

2 Dipende dalla velocità di produzione, controllo qualità,

Betti, “Sperimentazione di una tecnica di controllo della instabilità di combustione nei turbogas su un impianto sperimentale a pressione atmosferica”, ENEL Produzione, 2001..

E., Clay Whybark D., Manufacturing Planning and Control Systems, New York: Mc Graw-Hill,.. • Brandimarte P.,

Il sistema di risposta allo stress è piu' efficace per affrontare stressors acuti o di breve durata, in quanto gli animali sono in grado di allontanarsi da