UNIVERSITÀ DEGLI STUDI LA SAPIENZA DI ROMA FACOLTÀ DI INGEGNERIA CORSO DI LAUREA SPECIALISTICA IN INGEGNERIA DELLE TELECOMUNICAZIONI RADIO FREQUENCY IDENTIFICATION: PROGETTAZIONE E IMPLEMENTAZIONE DI UN SISTEMA DI IDENTIFICAZIONE A RADIOFREQUENZA PER IL CONTROLLO ACCESSI. STUDENTE: ARMANDO VALLE ENTE OSPITANTE: J-NET S.P.A RELATORE: ROBERTO CUSANI ANNO ACCADEMICO: 2007/2008 Indice INDICE CAPITOLO I ................................................................................................................ 5 INTRODUZIONE ALL’ ATTIVITÀ DI STAGE. ................................................................................................... 5 1.1 L’AZIENDA OSPITANTE. ............................................................................................................................ 6 1.2 PRESENTAZIONE DELLO STAGE: GLI OBIETTIVI...................................................................................... 7 1.3 PIANIFICAZIONE DELL’ATTIVITÀ: LINEE GUIDA E MEZZI UTILIZZATI. .............................................. 9 CAPITOLO II............................................................................................................. 11 INTRODUZIONE ALLA TECNOLOGIA RFID. ................................................................................................ 11 2.1 DEFINIZIONE DI TRANSPONDER ............................................................................................................ 12 2.2 BREVE STORIA: LO SVILUPPO DELLA TECNOLOGIA. ............................................................................ 12 2.3 COMPONENTI DI UN SISTEMA DI COMUNICAZIONE RFID ................................................................. 14 2.4 CLASSIFICAZIONE DEI SISTEMI RFID .................................................................................................... 16 2.4.1 I TAG ..................................................................................................................................................... 16 2.4.2 I READERS .............................................................................................................................................. 17 2.5 LE FREQUENZE .......................................................................................................................................... 18 2.6 LE APPLICAZIONI TIPICHE....................................................................................................................... 23 CAPITOLO III ........................................................................................................... 26 SISTEMI DI COMUNICAZIONE RFID. ........................................................................................................... 26 3.1 IL SISTEMA DI TRASMISSIONE DATI RFID ............................................................................................ 27 3.2 ACCOPPIAMENTO READER-TAG NEI SISTEMI PASSIVI......................................................................... 28 3.3 TRASONDER PASSIVI HF AD ACCOPPIAMENTO MAGNETICO ............................................................ 30 3.3.1 ELEMENTI CARATTERIZZANTI I TRANSPONDER AD ACCOPPIAMENTO INDUTTIVO ........................... 31 3.3.2 SENSIBILITÀ ALLA TENSIONE ................................................................................................................ 35 3.4 TRANSPONDER PASSIVI AD ACCOPPIAMENTO ELETTROMAGNETICO............................................... 37 3.4.1 L’EFFETTO SCATTERING ........................................................................................................................ 37 3.5 ANTENNE NEI SISTEMI RFID .................................................................................................................. 39 3.5.1 POLARIZZAZIONE DEL CAMPO EM E ORIENTAMENTO RECIPROCO ANTENNE .................................. 40 3.5.2 ANTENNA DEL READER E ANTENNA DEL TRANSPONDER PER SISTEMI AD ACCOPPIAMENTO MAGNETICO. ................................................................................................................................................... 42 3.6 CODIFICA DEI DATI NEI SISTEMI RFID.................................................................................................. 45 3.6.1 CODIFICA MANCHESTER ....................................................................................................................... 46 3.6.2 CODIFICA PIE ........................................................................................................................................ 47 3.6.2 CODIFICA MILLER E FM0 ...................................................................................................................... 47 3.7 TECNICHE DI MODULAZIONE NEI SISTEMI PASSIVI ............................................................................. 48 3.7.1 MODULAZIONE READER TAG ......................................................................................................... 49 3.7.2 RICEZIONE NEL TRANSPONDER ............................................................................................................ 50 3.7.3 MODULAZIONE TAG READER .......................................................................................................... 51 3.8 PROTOCOLLI ANTI-COLLISIONE ............................................................................................................. 52 3.9 PARAMETRI PER LA SCELTA DI UN TAG ................................................................................................. 55 CAPITOLO IV ........................................................................................................... 57 2 Indice STANDARD E PROTOCOLLI DI COMUNICAZIONE. ...................................................................................... 57 4.1 GLI ENTI DI NORMAZIONE...................................................................................................................... 58 4.1.1 SITUAZIONE IN EUROPA ........................................................................................................................ 59 4.1.2 SITUAZIONE IN USA .............................................................................................................................. 59 4.1.3 SITUAZIONE IN CINA ............................................................................................................................. 59 4.2 LE NORMATIVE ISO E EPCGLOBAL ....................................................................................................... 60 4.2.1 LE NORMATIVE EPCGLOBAL ................................................................................................................ 62 4.2.2 NORMATIVE ISO/IEC ........................................................................................................................... 63 4.3 LO STANDARD ISO/IEC 15693............................................................................................................... 64 4.3.1 CARATTERISTICHE FISICHE ................................................................................................................... 64 4.3.2 POTENZA A RADIO FREQUENZA E FORMA D’ONDA. ........................................................................... 66 4.3.3 UID E STATI DI UNA VICINITY CARD. ................................................................................................... 69 CAPITOLO V ............................................................................................................ 70 IL SISTEMA RFID REALIZZATO..................................................................................................................... 70 5.1 HARDWARE .............................................................................................................................................. 71 5.1.1 RFID CONTROLLERS .............................................................................................................................. 71 5.1.2 TRANSPONDER RFID ISO/IEC 15693 .................................................................................................. 74 5.1.3 PERSONAL COMPUTERS ......................................................................................................................... 78 5.2 SOFTWARE UTILIZZATO: SCELTE PROGETTUALI. ................................................................................. 78 5.2 IL MIDDLEWARE ...................................................................................................................................... 84 5.2.1 IL PARADIGMA DI COMUNICAZIONE PUBLISH/SUBSCRIBE ................................................................. 85 5.2.2 ORACLE SENSOR EDGE SERVER ............................................................................................................ 87 5.2 IL DATABASE ............................................................................................................................................ 93 5.5 AUTOMAZIONE PROCESSO CONTROLLO ACCESSI: FUNZIONE E PROCEDURE PL/SQL. ................... 95 5.6 INTERFACCIA GRAFICA ......................................................................................................................... 104 CAPITOLO VI ......................................................................................................... 107 CONCLUSIONI. ............................................................................................................................................. 107 Bibliografia .............................................................................................................. 109 Appendice: ............................................................................................................... 110 LISTATO FUNZIONI E PROCEDURE PL/SQL .............................................................................................. 110 3 Capitolo I: Introduzione all’attività di stage 4 Capitolo I: Introduzione all’attività di stage CAPITOLO I INTRODUZIONE ALL’ ATTIVITÀ DI STAGE. Il percorso di studi universitario prevede il suo naturale compimento con la preparazione, da parte dello studente, di un lavoro di tesi consistente in un periodo dedito all’approfondimento degli insegnamenti affrontati, con proficuo impegno, durante l’itinerario accademico. Personalmente ho deciso di affrontare tale compito presso un’azienda, certo di poter fornire un originale contributo, consapevole di avere l’opportunità di confrontarmi con le sfide pratiche dell’odierno mercato tecnologico. Questa sezione è dedicata alla presentazione dell’attività di stage: dopo una breve presentazione dell’azienda ospitante il tirocinio, verranno delineati gli obiettivi del progetto affidatomi; in seguito saranno elencate le linee guida del lavoro svolto e verranno sinteticamente illustrati i mezzi da me utilizzati per il raggiungimento dei prefissati scopi. 5 Capitolo I: Introduzione all’attività di stage 1.1 L’AZIENDA OSPITANTE. L’azienda che ha ospitato la mia attività di stage è la JNET S.P.A.. Essa nasce nell’anno 2001 ed ormai vanta partnership con società, nazionali e internazionali, tra le più grandi ed affidabili operanti nel mercato dell’Information & Communication Technology, quali VMware, Cluster File System, MySQL, ubuntu, SUN microsystem, IBM, Intel ed infine Oracle, produttore dei strumenti software di cui mi sono servito per la realizzazione del progetto assegnatomi. Le attività svolte da JNET S.P.A vengono sviluppate attraverso cinque principali centri di competenza, suddivisi per settore tematico: • Area sistemistica – Open Source. • Area Business Intelligence. • Area Database. • Area Networking. • Area Security. Essa opera principalmente su alcuni mercati di riferimento dove ha stabilito competenze specifiche e verticali: • Healthcare: progettazione e gestione di infrastrutture complesse basate su IBM WebSphere, Oracle Real Application Cluster e il sistema operativo Linux. • Governament: progetti di sviluppo in ambito JAVA e PHP. Attività sistemistica in ambito database Oracle e IBM DB2 UDB; integrazione e gestione dei flussi dati attraverso IBM Datastage. • Financial: servizi di progettazione e migrazione di strutture complesse da ambienti RISC (Reduced Instruction Set Computer) a piattaforme Open Source; progetti di sviluppo in ambito JAVA, PHP e PL/SQL; progettazione, installazione e manutenzione di piattaforme di High Performance computing. • Travel and Transportation: Servizi di assistenza sistemistica in ambito Open Source; servizi di consolidamento server con VMware virtual infrastructure. • GDO (Grande Distribuzione Organizzata): Progettazione e installazione di infrastrutture di DataWareHouse e relativi servizi di assistenza e supporto sistemistica. • System Integrator: servizi di consulenza sistemistico su piattaforme UNIX; installazione di infrastrutture ad alta disponibilità in ambito IBM AIX e Sun Solaris per SAP, Siebel CRM e Oracle Applications. 6 Capitolo I: Introduzione all’attività di stage La missione di JNET S.P.A. è quella di supportare i propri clienti nei repentini cambiamenti e progressi a cui oggi assistiamo soprattutto nel campo delle tecnologie riguardanti il campo dell’informatica e delle telecomunicazioni. Esempio di tali innovazioni è sicuramente la tecnica di Identificazione a RadioFrequenza (RFId), oggetto della mia attività di stage. 1.2 PRESENTAZIONE DELLO STAGE: GLI OBIETTIVI. In accordo con il clima fortemente propositivo e dinamico che si respira nella sede di Roma della JNET, mi è stato proposto di avventurarmi nella recente realtà della tecnologia di identificazione automatica “Radio Frequency Identification”. Tale tecnica concepita durante la seconda guerra mondiale, sta conoscendo solo ultimamente un certo successo. E’ infatti, ormai, opinione diffusa nella comunità tecnico-scientifica che mediante l’adozione capillare di questa tecnologia si potranno ottenere enormi benefici poiché l’RFId consente attività basate su recupero e scrittura automatica e a distanza dei dati che le altre tecnologie non sono in grado di offrire. Tuttavia negli anni passati si è assistito a una crescita dell’adozione delle tecniche RFId che è stata inferiore alle attese a causa di due fattori fondamentali: la mancanza degli standard e gli alti costi dei dispositivi hardware. Questi fenomeni sono, fortunatamente, ad oggi in via di superamento: la produzione di massa degli apparati sta rendendo il loro costo sempre più basso; allo stesso tempo i più grandi fornitori mondiali stanno cooperando per seguire standard internazionalmente condivisi, definiti dall’International Standard Organization (ISO) e dall’Electronic Product Code (EPC). A causa di quanto appena esposto, la JNET, pur avendo inteso il valore aggiunto che può derivare da un’integrazione tra l’identificazione automatica e i sistemi informatici di Business Intelligence quali i DataWareHouse, prima del mio arrivo, attendeva che la tecnologia raggiungesse un discreto grado di maturità, al fine di limitare i rischi derivanti dalla scelta di adottare e sviluppare un’infrastruttura RFId. In effetti, al fine di raggiungere un tale scopo, si ha la necessità di risolvere un insieme vasto di problematiche che spaziano dal settore economico-giuridico (ad esempio problemi di privacy qualora si volesse utilizzare la tecnologia per il controllo e la sicurezza delle persone) a quello prettamente tecnico: le capacità richieste riguardano competenze circa l’harware, il software, la fisica, la radiofrequenza. La RFId si presta ad essere utilizzata in innumerevoli campi applicativi, basti pensare ai numerosi vantaggi che tale tecnologia può comportare soprattutto nella catena logistica e nella grande 7 Capitolo I: Introduzione all’attività di stage distribuzione organizzata (GDO) in termini di ottimizzazione e semplificazione di quei processi che richiedono il tracciamento delle merci. Essa, oltre che per gli oggetti, può essere utilizzata nel mondo degli animali, per una loro semplice e indolore identificazione ed infine anche in quello umano, per applicazioni quali biglietteria per trasporti, sistemi di pagamento elettronico e per facilitare le operazioni di controllo accessi delle persone a determinati luoghi, in tal senso il telepass risulta l’esempio più lampante. In altre parole, l’RFId rappresenta una tecnologia general purpose con un elevatissimo grado di pervasività: si crede che nel giro di pochi anni essa entri nella vita quotidiana di tutti noi, in particolare mediante il suo massiccio utilizzo si assisterà alla nascita di una rete di oggetti (the Internet of thing), dotando infatti ogni bene di un chip RFId, questi saranno in grado di scambiare autonomamente tra loro le più disparate informazioni. Prendendo in considerazione quanto appena esposto e considerando il fatto che la JNET non aveva ancora una persona di riferimento specializzata in tale promettente tecnologia, mi è stato proposto di addentrarmi in tale campo con la finalità di padroneggiare la tecnica di identificazione a Radio Frequenza per poi poter sviluppare un sistema che automatizzasse il controllo degli accessi dei dipendenti al luogo di lavoro. Mediante l’utilizzo di speciali tessere badge, associate ad ogni dipendente, che hanno incorporato un chip RFId, ho avuto la possibilità di implementare un sistema che in maniera automatica e wireless registrasse il transito degli impiegati attraverso un particolare gate, costituito da un controller RFId. Il sistema da me implementato, sfruttando la lettura dei dati mediante comunicazioni radio garantisce un grado di affidabilità e sicurezza superiore ai precedenti sistemi di badge a banda magnetica. Inoltre, non si ha la necessità di una Line Of Sight tra badge e lettore, basta, cioè, avvicinare il tag (nella forma di carta di credito) al reader ad una distanza convenuta per ottenere la lettura dello stesso. Si ha quindi la possibilità di avere un controllo accessi “hand free” con l’ulteriore vantaggio, da parte dell’utente (dipendente di una società) di potere tenere il badge anche in tasca o in borsa. Scopo ultimo del sistema, da me implementato, è avere una associazione tra anagrafica completa dell’utente ed Electronic Product Code memorizzato nella memoria del transponder RFId (tessera badge). Oltre a tale preliminare associazione, il sistema è in grado di registrare orari di ingresso e uscita di ogni singolo lavoratore, calcolare gli intervalli temporali in cui il dipendente staziona all’interno del posto di lavoro (permettendo di quantificare le durate delle uscite,permessi, pause, …) ed infine sommare tra loro, per ogni singolo impiegato, gli intervalli di permanenza quotidiani. 8 Capitolo I: Introduzione all’attività di stage 1.3 PIANIFICAZIONE DELL’ATTIVITÀ: LINEE GUIDA E MEZZI UTILIZZATI. Al fine di raggiungere gli obiettivi delineati nel paragrafo precedente, la mia attività di stage ha necessitato di una preliminare ed articolata fase di studio della tecnologia RFId. In tale propedeutico stadio ho, inizialmente, appreso quali siano i principi fisici e le bande di frequenza sfruttati per permettere la comunicazione radio tra un dispositivo, chiamato controller (in seguito per riferirmi a tale apparato userò anche i termini reader o lettore) e un transponder ( o tag, sensore, smart label, etichetta intelligente …). Essi sono principalmente due: l’effetto backscattering e l’accoppiamento induttivo, principio quest’ultimo dettagliatamente approfondito nel capitolo terzo, perché alla base della comunicazione tag-reader nel mio sistema. In seguito ho dovuto raggiungere un certo grado di familiarità con i diversi standard e protocolli di comunicazione che permettono l’interoperabilità tra dispositivi fabbricati dai differenti costruttori presenti oggi nel mercato. Una tale conoscenza risulta, infatti, indispensabile per poter maneggiare e sfruttare appieno le caratteristiche tecniche dei componenti hardaware di un sistema RFId. Dopo aver acquisito tali competenze che riguardano gli strati più bassi dell’architettura ISO/OSI di un sistema di comunicazione, mi è apparso evidente la necessità di dover sfruttare uno strato middleware per il collegamento tra la realtà fisica degli apparati RFId e i sistemi informativi. Infatti, per potere trarre vantaggi da una tecnologia sensor-based quale la RFId, si deve poter avere la capacità di osservare, memorizzare, coordinare e manipolare l’enorme mole di dati provenienti dai sensori e di inoltrare gli eventi in maniera opportuna. E’ risultato evidente, sin dall’inizio, le difficoltà che si sarebbero incontrate nel superare queste sfide per mezzo del classico paradigma di comunicazione client/server, esse, invece, vedono una loro possibile risoluzione mediante l’adozione di un’architettura publish/subscriber. In effetti solo dopo tale preliminare fase di studio, ho concordato insieme al direttore tecnico dell’azienda ospitante il tirocinio, di sfruttare l’identificazione automatica a radio frequenza e tutti i vantaggi che derivano da una sua adozione per sviluppare un sistema di controllo accessi del personale. Una volta fissati gli obiettivi, sono passato ad un esame tecnico dell’hardware RFId a disposizione (lettore Escort Memory System HF-0402-232-01) concludendo tale fase con la scelta di utilizzare la banda HF, con portante pari a 13,56 MHz, potenzialmente più competitiva, perché standardizzata a livello mondiale. Tra i vari tipi di transponder interrogabili mediante il controller utilizzato, la scelta 9 Capitolo I: Introduzione all’attività di stage è ricaduta sulle Philips Smart Label I-CODE, per motivi di sicurezza e privacy che saranno delineati nel capitolo quinto. L’ultima fase del progetto ha previsto una forte attenzione su quali componenti software utilizzare per l’implementazione del sistema. Data la partnership instaurata, ormai da anni, dalla JNET con la Oracle, visto che quest’ultima fornisce prodotti indicati all’integrazione della tecnologia RFId con i sistemi informatici, ho deciso di utilizzare l’Oracle Sensor Edge Server come strato middleware e l’Oracle DataBase Server 10g come contenitore dei dati. A tali scelte è ovviamente seguita l’esigenza di prendere familiarità con il linguaggio di programmazione PL/SQL, necessario per l’interazione con la base di dati relazionale della Oracle e strumento da me utilizzato per realizzare l’applicativo programmando direttamente all’interno del database, invece di utilizzarlo come semplice archivio di eventi. Le varie fasi dell’attività di stage su elencate, sono sinteticamente riportate nel seguente diagramma di flusso: Figura 1.1. Diagramma di flusso illustrante le varie fasi dello Stage 10 Capitolo II: Introduzione alla tecnologia RFId CAPITOLO II INTRODUZIONE ALLA TECNOLOGIA RFID. Questo capitolo si caratterizza come una sezione introduttiva necessaria alla comprensione dei capitoli che seguono e, allo stesso tempo, si presta ad una lettura indipendente dal resto della tesi in grado di conferire al lettore una veduta complessiva, anche se superficiale delle tecniche di identificazione a radio frequenza. Inizialmente vengono illustrate le origini della tecnologia, per poi passare al suo sviluppo. In seguito vengono descritti i componenti di un sistema di comunicazione RFId e la loro classificazione. Infine verrà fornita una panoramica generale delle applicazioni più comuni. 11 Capitolo II: Introduzione alla tecnologia RFId 2.1 DEFINIZIONE DI TRANSPONDER Il transponder (transponditore) è un ricetrasmettitore che invia un segnale radio in risposta a un comando ricevuto da una stazione remota. Il segnale di comando o di interrogazione è necessario per determinare la trasmissione del segnale di ritorno, o risposta, dal transponditore. I transponder tradizionalmente vengono utilizzati sugli aerei e per il controllo e l'identificazione del traffico. Dall'utilizzo della tecnologia radio e dalla funzione di identificazione automatica nasce l'acronimo inglese RFId, Radio Frequency Identification. 2.2 BREVE STORIA: LO SVILUPPO DELLA TECNOLOGIA. Come spesso accade nel settore dello sviluppo tecnologico, la nascita della tecnica di identificazione a Radio Frequenza è avvenuta in campo militare. Il suo antenato, infatti, può a tutti gli effetti essere considerato il sistema Identification Friend or Foe (IFF: Identificazione Amico o Nemico) sviluppato in Inghilterra nella seconda guerra mondiale (1940). L’apparato a bordo degli aerei alleati, rispondeva, se interrogato, identificando così gli aerei alleati distinguendoli da quelli nemici. Questa tecnologia fu estesa più tardi, sempre durante la seconda guerra mondiale, alle navi in modo da poter identificare con la massima precisione una nave amica e la sua velocità. La severità degli ambienti operativi e le elevate prestazioni richieste dagli standard militari hanno permesso di sviluppare prodotti altamente affidabili ancorchè piuttosto costosi. Durante gli anni '50 non esistevano ancora componenti integrati di piccole dimensioni e a basso costo, quindi anche se i pricnicpi erano conosciuti e condivisi, la tecnologia elettronica non era ancora in grado di offrire gli elementi costitutivi adeguati a un costo accettabile. Verso la fine degli anni '60 hanno iniziato le prime attività commerciali (Sensumatic e Checkpoint) con la commercializzazione dei primi sistemi Elettronic Article Surveillance (EAS). Questi primordiali sistemi RFId utilizzavano generalmente un transponder che gestiva un'informazione di 1 bit per poter permettere il rilevamento della presenza/assenza del transponder. L'EAS garantiva una elementare funzione antitaccheggio nei supermercati che si stavano affermando in tutti i paesi sviluppati. L'EAS può quindi essere considerata il primo vero caso di effettivo utilizzo di massa della tecnologia RFId in attività non militari. 12 Capitolo II: Introduzione alla tecnologia RFId Gli anni '70 si caratterizzarono come il periodo della costruzione degli elementi fondamentali della tecnologia elettronica dell'RFId. L'inizio di questo periodo vide gli inventori, i laboratori pubblici, gli ambienti universitari lavorare attivamente alla realizzazione di tutti gli elementi di un sistema RFId. Uno dei principali centri fu il Los Alamos Laboratory che sviluppò un sistema radio per identificare sia materiali prodotti dalle attività nucleari sia il personale coinvolto nelle attività. In questi anni, inoltre, diverse grandi industrie militari americane (Raytheon, RCA, Fairchild, ...) misero a punto delle applicazioni RFId civili utilizzando la tecnologia già sviluppata per i sistemi militari. Un altro fronte di sviluppo fu la realizzazione di metodi per l'identificazione degli animali, sia con transponder a bassa frequenza (principalmente in Europa) sia con transponder operanti nelle microonde (Los Alamos). La tecnologia è poi evoluta in sistemi per seguire la rotta dei carri ferroviari, per l’automazione di processo nell’industria automobilistica, in agricoltura, nelle riserve naturali e, negli anni '80, l'identificazione a Radio Frequenza si diffuse su scala mondiale. Negli Stati Uniti gli interessi puntarono sul controllo delle merci trasportate, sui mezzi di trasporto e in minima parte per l'identificazione degli animali. In Europa le materie più sviluppate furono l'identificazione degli animali, le applicazioni per attività industriali e il controllo accesso alle autostrade. Tuttavia tali sistemi non conobbero un'applicazione di massa a causa soprattutto dell'elevato costo dei singoli dispositivi elettronici necessari. Finalmente negli anni '90 cominciarono ad affermarsi le condizioni per lo sviluppo dell'RFId moderno. Da un lato i circuiti si miniaturizzarono sempre di più permettendo una diminuzione drammatica dei consumi di energia e dall'altro si cominciarono a sviluppare degli standard internazionali condivisi che sono la base di una tecnologia che voglia veramente essere pervasiva. Il periodo attuale è veramente molto interessante per lo sviluppo degli RFId. Molte tecnologie elettroniche e di radio frequenza hanno recentemente generato nuovi componenti come, per esempio, le smart label, che possono rivoluzionare il commercio attraverso l'integrazione con telecomunicazioni, sistemi di reti wireless, Internet, nuovi metodi di pagamento e così via. La possibilità di realizzare transponder a basso costo, da 50 centesimi a 5 centesimi di euro, permetterà di rendere reale la possibilità, da molti considerata utopistica, di applicare ad ogni oggetto un tag contenente le informazioni riguardanti l’oggetto stesso in modo da creare la cosiddetta Internet Of Things. Questa visione ottimistica della diffusione del RFId nel prossimo futuro è confermata da alcune macrotendenze in atto in tutte le economie sviluppate: 13 Capitolo II: Introduzione alla tecnologia RFId 1. Diffusione sempre più capillare di card contactless nel settore dei servizi con applicazioni che spaziano dal ticketing multimodale dei trasporti collettivi ai micropagamenti e alle tessere di identificazione e sanitarie. 2. Sviluppo impetuoso di progetti pilota e applicazioni RFId ai processi logistici della supplìchain dei beni di largo consumo. 3. Convergenza tra le tecnologie RFId e le tecnologie dei telefoni cellulari utilizzati come strumento d’interfaccia tra le persone e le cose. Queste applicazioni mostrano anche la tendenza all’affermazione di dispositivi RFId con funzionalità che stanno andando molto al di là della semplice identificazione. La riduzione dei costi sta permettendo l’effettiva realizzazione di numerose famiglie di oggetti intelligenti che sono adatti alla realizzazione di missioni specifiche. 2.3 COMPONENTI DI UN SISTEMA DI COMUNICAZIONE RFID La tecnologia RFID si compone di tre elementi fondamentali: – TAG; ovvero un trasponder a radiofrequenza di piccole dimensioni costituito da un circuito integrato (chip) con funzioni di semplice logica di controllo, dotato di memoria, connesso ad un’antenna ed inserito in un contenitore o incorporato in una etichetta di carta, una Smart Card, una chiave o inserito in apparati elettronici (orologi, telefonini, ecc.). Il TAG permette la trasmissione di dati a corto raggio senza contatto fisico. Fatte salve eccezioni, i dati contenuti nella memoria del TAG sono spesso limitati ad un codice univoco (identificativo). Nel seguito della tesi per riferirmi al tag userò indistintamente i termini: transponder, smart label, etichetta intelligente. Figura 2.1. Transponder passivo ad accoppiamento magnetico con chip a 13,56 MHz 14 Capitolo II: Introduzione alla tecnologia RFId – Reader; ovvero un ricetrasmettitore controllato da un microprocessore ed usato per interrogare e ricevere le informazioni in risposta dai TAG. Esso manda un segnale tramite un campo elettromagnetico generato attraverso un’antenna, il segnale permette di caricare (nel caso si utilizzi un transponder detto passivo) i componenti interni che costituiscono il circuito di alimentazione e ciò avviene in tempi brevissimi, dell’ordine di qualche millisecondo. Il transponder, una volta riconosciuta la correttezza dell’operazione di interrogazione, manda verso il lettore un segnale che contiene il suo codice di identificazione e nonché altri dati contenuti all’interno della sua memoria. Figura 2. 1. Reader RFId operante alla frequenza 13,56MHz – Sistema di gestione (Management system - Host system, ecc.); ovvero un sistema informativo che, quando esiste, è connesso in rete con i Reader. Tale sistema consente, a partire dai codici identificativi provenienti dai TAG, di ricavare tutte le informazioni disponibili associate agli oggetti e di gestire tali informazioni per gli scopi dell’applicazione. I sistemi RFId fanno parte della tecnologia Auto-ID, o identificazione automatica, che fa riferimento ad un sistema che consente: – L’acquisizione automatica di dati per l’identificazione. – L’introduzione automatica (senza l’ausilio di tastiera o di operazioni manuali in generale) di questi dati di identificazione e di altri dati complementari all’interno di programmi presenti in un computer. 15 Capitolo II: Introduzione alla tecnologia RFId 2.4 CLASSIFICAZIONE DEI SISTEMI RFID 2.4.1 I TAG I TAG (chiamati anche trasponder) vengono distinti, in primo luogo, per la gestione delle fonti energetiche. I TAG, infatti, possono essere: – Passivi: ricavano l’energia per il funzionamento dal segnale proveniente dal Reader; non possiedono un vero e proprio trasmettitore, ma reirradiano, modulandolo, il segnale trasmesso dal Reader e riflesso dalla propria antenna. – Semi-passivi: dotati di batteria utilizzata solo per alimentare il microchip o apparati ausiliari (sensori), ma non per alimentare un trasmettitore in quanto in trasmissione si comportano come TAG passivi. – Attivi: alimentati da batterie. Incorporano ricevitore e trasmettitore come i Reader. TAG passivi sono tipicamente dei dispositivi a basso costo e di piccole dimensioni che consentono di realizzare numerosi tipi di applicazioni. Spesso ciascuna applicazione è legata a particolari caratteristiche dimensionali del TAG medesimo. Essendo infatti costituiti solamente da un’antenna (tipicamente stampata) e da un circuito integrato generalmente miniaturizzato, l’altezza dei TAG passivi può essere anche di poche centinaia di micron. I TAG, quindi, possono essere inseriti in carte di credito, etichette adesive, bottoni ed altri piccoli oggetti di plastica, fogli di carta, banconote e biglietti d’ingresso, generando così veri e propri oggetti “parlanti”. I TAG inoltre possono essere di tipo read-only o read-writable. Questi ultimi consentono, durante il loro uso, oltre alla lettura, anche la modifica o la riscrittura dell’informazione in essi memorizzata. In passato i TAG passivi erano principalmente di tipo read-only sia perché la fase di scrittura richiede la disponibilità di una quantità elevata di energia che si ricava con difficoltà dal segnale ricevuto, sia perché le memorie riscrivibili hanno un costo relativamente elevato. I TAG passivi riscrivibili sono comunque in rapida diffusione. Per i TAG attivi o semi passivi, oltre alla maggior quantità di memoria ed alla funzione di riscrivibilità della stessa, l’evoluzione tecnologica ha consentito di aggiungere, in alcuni casi, funzioni che superano di gran lunga la pura identificazione. Si ricordano, ad esempio, le funzioni di radiolocalizzazione (RTLS - Real Time Location System - posizione dell’oggetto che contiene l’RFID) o la misura di parametri ambientali attraverso sensori (temperatura, movimento, ecc.). La differenza tra i due non è tanto nelle funzioni di memoria o negli eventuali sensori, quanto nel fatto 16 Capitolo II: Introduzione alla tecnologia RFId che i TAG attivi sono dei veri e propri apparati ricetrasmittenti mentre i TAG semi passivi sfruttano la tecnologia di trasmissione dei TAG passivi e pertanto necessitano di risorse di alimentazione modeste. Le informazioni che il TAG trasmette al Reader sono contenute in una certa quantità di memoria che ogni TAG contiene al suo interno. Le informazioni d’identificazione sono relative all’oggetto interrogato: tipicamente un numero di serie univoco, in qualche caso anche la copia dell’UPC (Universal Product Code) contenuto nel codice a barre ed altre informazioni (date di produzione, composizione dell’oggetto, ecc.). Normalmente la quantità di dati contenuti in un RFID è piuttosto modesta (centinaia di byte o, al massimo qualche Kbyte). Ciò nonostante, la pervasività dell’uso dei TAG e di opportune tecniche a radiofrequenza che consentono di interrogare e ricevere risposte da tutti i TAG presenti in un particolare ambiente possono portare ad una “esplosione” della quantità di dati ottenibili. 2.4.2 I READERS Il Reader (chiamato anche “interrogator” o “controller” se distinto dalla sua antenna) è l’elemento che, nei sistemi RFID, consente di assumere le informazioni contenute nel TAG. Si tratta di un vero e proprio ricetrasmettitore, governato da un sistema di controllo e spesso connesso in rete con sistemi informatici di gestione per poter ricavare informazioni dall’identificativo trasmesso dai TAG. Questo, infatti, specie nei TAG passivi, è un semplice codice che ha però (a differenza dei codici a barre) la particolarità di essere univoco. Entrando quindi in un sistema informativo ed usando un codice univoco come chiave di ricerca, si possono ricavare dettagliate informazioni (anche aggiornate nel tempo) sul particolare oggetto a cui il TAG è associato. I Reader per TAG attivi sono dei ricetrasmettitori controllati, che possono usare le più diverse tecniche a radiofrequenza. I TAG attivi, ad oggi, sono solo in piccola parte coperti da standard specifici. I Reader per TAG passivi (e semi passivi), invece, devono emettere segnali RF di tipo particolare, in grado di fornire al TAG anche l’energia necessaria per la risposta. Le tecniche di comunicazione e trasferimento dati utilizzate nei sistemi RFID sono molto diverse tra loro per applicazioni che possono andare dalla lettura, a pochi centimetri di distanza, di TAG passivi, fino a prevedere letture di TAG attivi a distanza di parecchie centinaia di metri. Inoltre è importante la distinzione tra Reader fissi (montati sui portali di accesso ai magazzini, sui nastri trasportatori, negli scaffali, ecc.) 17 Capitolo II: Introduzione alla tecnologia RFId e reader portatili (una sorta di “pistole elettroniche” esteticamente simili a quelle in uso per i codici a barre. Per quanto riguarda la diffusione, le installazioni di Reader fissi rappresentano (compresi quelli per smart card), ad oggi, più dell’80% del totale a livello mondiale. Per quanto riguarda l’uso delle frequenze, la maggior parte del mercato dei Reader, sia in termini di fatturato, sia in termini di numero di unità è rappresentato da Reader HF. Tuttavia si prevede che il mercato dei Reader UHF cresca molto più velocemente degli altri nel prossimo futuro. 2.5 LE FREQUENZE Le frequenze di comunicazione tra Reader e TAG dipendono sia dalla natura del TAG, sia dalle applicazioni previste e sono regolate (per controllare le emissioni di potenza e prevenire interferenze) dai consueti organismi internazionali e nazionali. La regolamentazione, però, è divisa in regioni geografiche con normazione diversa da regione a regione, che comporta spesso incompatibilità quando gli RFID viaggiano insieme alle merci alle quali sono associati. Le porzioni di bande di frequenze più comunemente usate nella tecnologia RFID sono: – In banda LF (Low Frequencies) ed in particolare la sottobanda 120÷145 kHz. Si trova nella parte più bassa dello spettro RF ed è storicamente la prima frequenza utilizzata per l’identificazione automatica e rimane ancora oggi con una presenza significativa nel mercato. L’accoppiamento Reader-TAG avviene per via induttiva, con lo stesso principio fisico dei trasformatori elettrici. Nel caso di TAG passivi la distanza operativa è all’incirca pari al diametro dell’antenna del lettore e varia dai 30 cm al metro, al di là di questa portata il campo si riduce molto rapidamente, in ragione di 1/d3 e l’energia captata dal TAG di 1/d6. Anche per questo motivo la distanza per poter eventualmente scrivere nella memoria, operazione che richiede un maggiore consumo di energia da parte del chip che equipaggia il TAG, è normalmente più bassa di quella di lettura; tipicamente è inferiore del 30÷50%. Va notato che all’interno della banda LF in realtà sono due le frequenze operative più utilizzate: o 125,5 kHz principalmente nel settore automotive 18 Capitolo II: Introduzione alla tecnologia RFId Figura 2. 2. Esempio di tag RFId in banda LF utilizzato nel settore automative o 134,2 kHz nella tracciabilità animale. Figura 2. 3. Esempio di tag RFId in banda LF utilizzato nella tracciabilità animale La frequenza di 125 kHz della portante è relativamente bassa e consente velocità massime di trasmissione dei dati dell’ordine del migliaio di bit al secondo che possono però scendere in alcuni casi anche a 200 bit/sec. A questa frequenza è meno diffuso il supporto di letture multiple ovvero di più TAG contemporaneamente presenti nel campo del lettore. Nella tracciabilità animale (134,2 kHz), tale tecnologia ha preso piede soprattutto per la bassissima influenza che l’acqua ed i tessuti hanno sulla trasmissione. Il TAG, protetto da un contenitore ceramico, viene fatto ingoiare ai bovini e staziona in permanenza in uno degli stomaci o, racchiuso in un contenitore di vetro, viene iniettato in posizione sottocutanea negli animali di dimensioni più contenute, oppure in forma di piccolo disco viene applicato alle orecchie. – In banda HF (High Frequencies) ed in particolare la sottobanda centrata su 13,56 MHz. È considerata la banda di frequenze “universale”, usabile in tutto il mondo, questo ne ha fatto la banda più diffusa fino ad oggi. L’accoppiamento Reader-TAG avviene per via induttiva, come nei TAG LF. Le forme ed il tipo di packaging disponibili sono le più disparate ed in figura è riportato un limitato campionario. La configurazione tipica prevede un’antenna formata da un avvolgimento normalmente in rame, ma viene utilizzato anche l’alluminio, formato su un substrato piatto e ottenuto per incisione da un sottile foglio di metallo dello spessore di qualche decina (60-70) di micron, oppure depositato, sul medesimo substrato con inchiostri 19 Capitolo II: Introduzione alla tecnologia RFId conduttivi. La dimensione ed il numero di spire determinano la sensibilità e la distanza operativa (insieme, ovviamente, alla dimensione ed alla potenza emessa dall’antenna del Reader). Figura 2. 4. Esempi di transponder in banda HF I costi sono inferiori a quelli dei TAG LF ma strettamente dipendenti dal tipo di supporto e dalla dimensione, così come i Reader che hanno già goduto di un buon livello di maturazione del settore. Le ultime generazioni di chip per questa tipologia di TAG indirizzati all’identificazione automatica supportano come funzionalità quasi standard i meccanismi di anticollisione che consentono la lettura/scrittura di più TAG contemporaneamente presenti nel campo del Reader. A differenza di quanto avviene in UHF il campo RF a 13,56 MHz non è particolarmente influenzato dall’acqua o dai tessuti del corpo umano. La banda HF è attualmente la più usata per le cosiddette “etichette intelligenti” (smart label) impiegate nella logistica e nella gestione degli oggetti, anche se, per quest’ultima applicazione si prevede che, a lungo termine, prevarranno i sistemi in banda UHF. In questa frequenza operano anche le “Smart Card contactless”, ovvero carte intelligenti senza contatti che costituiscono il settore più tecnologicamente presidiato dai produttori di chip. Le funzionalità offerte spaziano dalla capacità di memoria, che può andare dai pochi kilobyte e toccare oggi anche il megabyte, alla disponibilità di algoritmi crittografici per effettuare transazioni sicure. Quasi unicamente di tipo passivo sono coperte da standard ben assestati quali l’ISO/IEC 14443 – detto anche di ‘proximity’, che copre da 10 a 30 cm – e l’ISO/IEC 15693, o ‘vicinity’, per una distanza operativa da 30 a 90 cm. Diffuse nel settore del ticketing, del controllo accessi del personale, della tracciabilità dei bagagli nei sistemi aeroportuali, stanno per diventare comuni come sostitutivi intelligenti ed inviolabili delle 20 Capitolo II: Introduzione alla tecnologia RFId schede magnetiche per le transazioni bancarie (bancomat) e come carte di credito. Diversi stati stanno facendo le prime prove per introdurle come passaporto elettronico. – In banda UHF (Ultra High Frequencies) nella zona media le sottobande 865÷870 MHz in Europa – 902÷928 MHz in USA – 950 MHz in Asia. È la “nuova banda” per gli RFID per la logistica e la gestione dei singoli oggetti, con range di operazione decisamente più esteso di quanto non sia consentito da LF ed HF. Purtroppo la banda non è assegnata in modo uniforme nelle varie nazioni. L’accoppiamento Reader-TAG avviene per via elettromagnetica, come nei tradizionali sistemi di radiocomunicazione. Una distanza operativa di 3 metri è ormai standard, ma sempre più spesso estendibile verso cinque e più metri. Grazie a questo l’UHF media è destinata sicuramente a confermarsi come la banda regina della logistica e, soprattutto, della gestione degli oggetti. Tuttavia alcune problematiche, ad oggi in via di risoluzione, ne hanno rallentato l’introduzione (frequenze operative, standard di comunicazione, potenze in trasmissione del reader non universalmente definite). Come già osservato a queste frequenze si fa un uso “convenzionale” delle onde elettromagnetiche (accoppiamento elettromagnetico). La quantità di energia che il TAG raccoglie dal campo EM ricevuto è funzione del diagramma di radiazione dell'antenna del TAG e della densità di potenza del campo EM presente nella posizione del TAG. Il diagramma di radiazione dell’antenna del TAG è correlato con la lunghezza d'onda del segnale e con le dimensioni fisiche dell’antenna medesima. La densità di potenza è correlata con i parametri tecnici del Reader (potenza, antenna). Se consideriamo la frequenza di 900 MHz la lunghezza d’onda è circa 33 cm e un’antenna a 1/2 onda risulta lunga 16,5 cm, mentre un’antenna ad 1/4 d’onda risulta di circa 8,3 cm. Figura 2.5. Esempio di tag operante nella banda UHF media Queste sono le dimensioni più probabili che ci si può aspettare per i TAG operanti in UHF media. La velocità di trasmissione risulta superiore a quella dei sistemi operanti a frequenze più basse. I sistemi, inoltre, sono in grado di gestire letture multiple contemporanee (anticollisione) arrivando alla lettura di più di 100 TAG al secondo. 21 Capitolo II: Introduzione alla tecnologia RFId – In banda UHF alta la sottobanda centrata su 2,4 GHz. Con caratteristiche simili all’UHF media, permette una ulteriore miniaturizzazione del TAG. Si tratta, però, di una banda molto affollata da altre tecnologie (WiFi, Bluetooth, ZigBee), con le quali bisogna convivere. – Esistono anche altre frequenze utilizzabili quali 433÷435 MHz in banda UHF bassa o 5,8 GHz in banda SHF (Super High Frequencies). Ad oggi, alcune bande di frequenza (generalmente nelle LF o HF) sono accettate in tutto il pianeta. Un esempio per tutti è la banda dei 13,56 MHz, usata da molti TAG passivi incorporati essenzialmente nelle smart card per controllo accessi, identificazione e pagamenti, ma anche nelle etichette associate ad oggetti, quali controllo bagagli, lavanderie, biblioteche, ecc. Per altre bande di frequenza, specie per quelle UHF di uso più recente, le allocazioni sono differenti da regione a regione. La scelta della frequenza di lavoro influisce sulla distanza (range) di operatività del sistema, sulle interferenze con altri sistemi radio, sulla velocità di trasferimento dei dati e sulle dimensioni dell’antenna. I sistemi che usano frequenze più basse sono spesso basati su TAG passivi e sono in grado di trasmettere dati a distanze massime dell’ordine del metro e mezzo. Nei sistemi a frequenze più elevate, invece, oltre ai TAG passivi (con limitazioni a pochi metri delle distanze operative) sono diffusi TAG attivi che possiedono range operativi maggiori anche se limitati dai valori massimi di potenza irradiata stabiliti dagli organismi internazionali che regolano l’uso dello spettro radio. Per sistemi a frequenza più alta la velocità di trasferimento dati è generalmente maggiore mentre la dimensione delle antenne si riduce. Questo consente di costruire TAG più piccoli. Figura 2.6. Allocazione in frequenza della tecnologia RFId 22 Capitolo II: Introduzione alla tecnologia RFId 2.6 LE APPLICAZIONI TIPICHE. La tecnologia RFID può essere applicata in svariati campi come: – Magazzini e punti vendita Identificare ogni contenitore e ogni scaffale di magazzino con tag riduce gli errori nei prelievi e migliora l'identificazione. Non sarà più necessario aprire gli imballaggi per verificare il loro contenuto cercando il codice a barre, così come non sarà più necessario effettuare il conteggio manuale per la verifica dell'inventario fisico. Con una singola scansione sarà possibile identificare e verificare il contenuto dei resi e delle spedizioni. Il dispositivo di lettura consente di leggere contemporaneamente più tag. L'utilizzo dell'RFID può essere vantaggioso anche nei punti vendita. Esempio tipico ne è un magazzino d'abbigliamento in cui è possibile conoscere le giacenze in tempo reale, riordinare i capi esauriti (in tempo reale) aumentando la conoscenza del mercato. – Trasporti In questo caso i tag vengono applicati sia sugli oggetti (scatole, pallet, ecc.) da trasportare, sia sui mezzi di trasporto (vagoni, automobili, ecc.) In Italia, Francia e in Giappone sono già funzionanti milioni di tessere RFID che permettono ai pendolari di utilizzare diversi tipi di trasporto con le diverse forme di abbonamento. Un'altra applicazione della tecnologia RFID e' in sostituzione del codice a barre come identificativo sui bagagli in aeroporto permettendo un maggiore "tasso di lettura" ed errore lungo gli scivoli di smistamento. I sistemi RFID migliorano gli attuali sistemi di identificazione del mezzo di trasporto (l'esempio più comune è il telepass) sia in termini di efficienza sia di sicurezza. – Controllo di carico e scarico E' possibile l'identificazione del carico di un mezzo di trasporto anche con il mezzo in movimento. Non è necessario che i prodotti siano visibili rispetto al sistema di identificazione usato. – Controllo presenze e accessi L'RFID è una valida alternativa sia alle tecnologie di personal identification tradizionali (badge, tesserini, ecc.), sia alle tecnologie di strong authentication basate sul riconoscimento degli attributi biometrici di un individuo. A differenza di tali tecnologie non richiede contatto visivo per l'identificazione e permette il riconoscimento anche a distanza. L'identificazione tramite RFID oltre a rendere più agile l'impiego di varchi motorizzati, distinguere gli ingressi dalle uscite e verificare automaticamente l'elenco delle presenze all'interno di una determinata zona, permette l'avvio o l'arresto di un PC a seconda che il 23 Capitolo II: Introduzione alla tecnologia RFId proprietario si trovi o meno nelle vicinanze. I tag possono essere stampati o inseriti in oggetti di forma diversa, come ad esempio un badge identificativo e, quindi, personalizzati con stampe di immagini, scritte, loghi, fotografie e codici a barre. Possono essere registrate informazioni come: dati anagrafici, foto di riconoscimento, data e ora di transito, verso di transito, altro. – Sicurezza sul lavoro Sicurezza degli operatori di macchina (es. una pressa) Una macchina che richiede la protezione dell'operatore può essere controllata in base alla presenza dell'operatore autorizzato o arrestare il suo funzionamento se nell'area si avvicina un operatore estraneo o non autorizzato. – Tracciamento pratiche L'applicazione di una etichetta RFID a ogni pratica consente di automatizzare la loro ricerca negli archivi cartacei, di effettuare automaticamente la registrazione del prelievo/restituzione e di mantenere traccia dei vari spostamenti tra uffici e depositi. – Identificazione degli animali Rispetto agli altri metodi utilizzati per l'identificazione degli animali (marca auricolare, tatuaggio, passaporto cartaceo), con l'applicazione dei tag tutte le informazioni necessarie sono residenti anche sui capi di bestiame e, grazie all'emissione di onde elettromagnetiche a bassa frequenza del tutto innocue, risultano accessibili ovunque si trovi l'animale. Le etichette possono contenere le informazioni indispensabili a garantire la qualità del capo come ad esempio: o Codice dell'animale; o Dati anagrafici (passaporto) proprietario; o Aziende presso le quali il capo è transitato; o Controlli veterinari a cui l'animale è stato sottoposto o Trattamenti subiti. – Biblioteche, rilevazione patrimonio librario e movimento libri Applicando i tag sui beni delle biblioteche (libri, video, CD audio, ecc.) è possibile rilevare a distanza le informazioni in esso contenute (tipo di bene, descrizione, numero inventario, rappresentazioni fotografica, ecc.), consentendo di amministrare i libri in dotazione con estrema facilità ed efficacia. La tecnologia RFID presenta vantaggi anche nelle operazioni di attivazione di un prestito e restituzione dei libri alla biblioteca, grazie alla presenza di stazioni self service estremamente facili da usare. Dopo aver prelevato dagli scaffali i libri da prendere in prestito, l'utente deve avvicinarsi alla postazione e appoggiare i libri sul piano 24 Capitolo II: Introduzione alla tecnologia RFId di rilevazione assieme alla tessera della biblioteca. Gli oggetti vengono rilevati e la transazione viene automaticamente registrata. Alla restituzione dei libri, l'utente dispone i volumi in un apposito cestello, appoggiato su una stazione di lettura. Il sistema rileva il rientro dei libri nella biblioteca e registra tale transazione, quindi legge dal tag il codice dello scaffale e del ripiano su cui ogni libro deve essere depositato. – Rilevazione dei parametri ambientali L'ultima frontiera tecnologica in ambito RFID riguarda l'introduzione di tag equipaggiati con sensori in grado di rilevare i parametri climatici (temperatura, pressione, umidità, ecc.) dell'ambiente in cui sono immersi. Le grandezze rilevate dai sensori vengono memorizzate in una apposita memoria interna, e lì permangono fino a quando un operatore, dotato di apposito lettore, non ne esegue lo scarico su un PC palmare. Queste caratteristiche si rivelano strategiche per il monitoraggio dei parametri operativi dei macchinari in particolari realtà industriali, dove è necessario garantire regimi operativi controllati. I tag, grazie alle ridottissime dimensioni, possono essere collocati in punti "scomodi", dove sarebbe difficile portare il cavo necessario ad alimentare un apparecchio di misura, ed offrono, a costi decisamente contenuti, una soluzione affidabile e di facile implementazione. – Catena del fresco Per controllare e mantenere la temperatura adeguata dei prodotti lungo tutte le fasi della loro distribuzione (trasporto, immagazzinamento, allocazione presso i punti vendita), fino al momento del loro consumo, al fine di garantire la loro integrità e la loro qualità, è possibile ricorrere alla tecnologia RFID. I tag possono incorporare un sensore di temperatura, che serve a controllare questo importante parametro. È possibile programmare gli intervalli di misurazione della temperatura e memorizzarne i valori, in modo da ottenere un grafico nel tempo. Grazie all'utilizzo dei tag si potrà monitorare lo stato di conservazione di una sostanza, oppure segnalare eventuali allarmi quando il parametro temperatura non fosse nei range voluti, senza aprire le confezioni che proteggono la sostanza conservata in temperatura e gestendo il dato in via informatica, magari da un sito centrale, dove poter prendere le decisioni del caso: eliminare il prodotto, accelerare il trattamento di un processo ecc. 25 Capitolo III: Sistemi di comunicazione RFId CAPITOLO III SISTEMI DI COMUNICAZIONE RFID. Questo capitolo è dedicato ad approfondimenti tecnici sui diversi sistemi di comunicazione RFId, con particolare attenzione alla tecnologia operante nella banda HF, accettata in maniera universale in tutto il pianeta e da me utilizzata per lo sviluppo del sistema di controllo accessi. Verranno illustrati: Il modello ISO-OSI generale di un sistema di trasmissione dati RFId. I principi fisici della comunicazione tagreader. Problemi di polarizzazione e orientamento reciproco tra l’antenna del reader e quella del tag, con un’analisi specifica dei parametri caratterizzanti l’accoppiamento induttivo, principio su cui si basa l’RFId in banda HF. Codifica dei dati. Tecniche di modulazione del segnale radio, nei sistemi passivi e in particolare nella configurazione HF. Protocolli anti-collisione: Binary Decision Tree, ALOHA e slotted ALOHA. Infine verranno elencati parametri utili alla scelta di un particolare sistema RFId. 26 Capitolo III: Sistemi di comunicazione RFId 3.1 IL SISTEMA DI TRASMISSIONE DATI RFID Un sistema reader/transponder può essere rappresentato secondo un classico modello ISO-OSI a sette livelli che permette di schematizzare le relazioni tra due dispositivi di comunicazione. In particolare per i sistemi RFId possiamo dire che: Gli strati 1 e 2 rappresentano il processo di modulazione e la codifica che permettono di trasmettere tra il reader e il transponder minimizzando gli errori e massimizzando il trasferimento di energia. Lo starto 3 rappresenta il processo di gestione dell’anticollisione che permette di interrogare un tag alla volta. Gli strati 4, 5 e 6 rappresentano il protocollo di comunicazione nel quale si trovano il comando di interrogazione, quello di risposta e i comandi che permettono successivamente di definire le caratteristiche della comunicazione Lo strato 7 contiene gli effettivi servizi della particolare applicazione RFId. Strato ISO-OSI Descrizione 7. Applicazione Dipendente dalla particolare applicazione 6. Presentazione Sintesi dei dati trasferiti 5. Sessione Organizzazione delle sequenze dei dati 4. Trasporto Qualità e natura della consegna dei dati 3. Rete Indirizzamento 2. Link logico Struttura dei dati 1. Link fisico Proprietà fisiche di comunicazione Figura 3.1. Modello ISO-OSI del sistema RFId La realizzazione effettiva degli strati ISO-OSI in un sistema di comunicazione che utilizza le radiofrequenze è determinato da diversi fattori specifici. Le informazione nei sistemi informativi sono fondamentalmente codificate come una sequenza di 1 e 0, ma quando devono essere trasmesse 27 Capitolo III: Sistemi di comunicazione RFId da un sistema ad un altro attraverso un canale di comunicazione che può introdurre disturbi, le cose cambiano. Nel caso di un sistema di comunicazione RFId le informazioni sono originariamente di tipo digitale, ma vengono trasmesse prevalentemente in un canale che utilizza una forma d’onda di tipo analogico. Le informazioni devono quindi essere trasformate in grandezze che ottimizzano l’uso del canale di trasmissione in funzione della quantità di energia e di informazione che viene scambiata. Perciò vengono definite le caratteristiche della rappresentazione degli stati (il processo di modulazione della portante), della codifica dei dati (la codifica dei bit) e l’affidabilità dei dati (probabilità, rilevamento e correzione di errore). Infine il protocollo di comunicazione tra apparati deve identificare il singolo transponder e comunicare le caratteristiche della sessione di comunicazione (anticollisione) garantendo la sicurezza dell’accesso. 3.2 ACCOPPIAMENTO READER-TAG NEI SISTEMI PASSIVI La lettura di un TAG passivo (o semi-passivo) è piuttosto diversa da una comunicazione dati full duplex a radiofrequenza. A differenza degli apparati di tipo attivo, i TAG passivi dipendono per la loro alimentazione dall’energia a radio frequenza che ricevono. I TAG passivi, inoltre, non generano la frequenza portante che usano per la trasmissione. Piuttosto essi re-irradiano, modulandola, una parte dell’energia trasmessa dal Reader che li sta interrogando. Questo fa riferimento alla possibilità di modulare un segnale generato dal Reader tramite la variazione dell’impedenza dell’antenna del TAG che trasforma l’antenna medesima da assorbente a riflettente. Tale processo è molto simile all’uso di uno specchio e della luce solare per segnalazioni luminose a distanza. Sfruttando tale principio si elimina anche la necessità di oscillatori locali per generare una portante a radiofrequenza e si riduce pertanto la potenza necessaria per l’alimentazione del TAG. Per ricavare energia e comunicare con il Reader, il funzionamento dei TAG passivi si basa su uno dei due principi fisici seguenti: – Accoppiamento induttivo (magnetico) in condizioni di “campo vicino”: sistemi di questo tipo si basano sul fatto che, per distanze relativamente brevi rispetto alla lunghezza dell’onda emessa dall’antenna del Reader, nell’antenna del TAG prevalgono gli effetti della corrente indotta dal campo magnetico che varia periodicamente nel tempo. Poiché il TAG viene a trovarsi immerso in questo campo magnetico, il flusso magnetico variabile nel 28 Capitolo III: Sistemi di comunicazione RFId tempo si concatena con le spire dell’antenna del TAG dando così origine, secondo la ben nota legge fisica di Lenz, ad una corrente indotta nelle spire. L’accoppiamento induttivo tra le antenne del TAG e del Reader avviene quindi in maniera simile ad un trasformatore. L’energia ricavata da un siffatto trasformatore viene usata per attivare il TAG. Per ottenere le condizioni di “campo vicino” alle distanze operative impiegate vengono generalmente sfruttate le bande con maggiore lunghezza d’onda, ovvero LF ed HF. – Accoppiamento elettromagnetico in condizioni di “campo lontano” con effetto backscatter: sistemi di questo tipo si basano sul fatto che, per distanze relativamente lunghe, rispetto alla lunghezza dell’onda emessa dall’antenna del Reader, nell’antenna del TAG prevalgono gli effetti del campo elettromagnetico, che varia periodicamente nel tempo. L’antenna del TAG riflette parte della potenza elettromagnetica ricevuta. Questa può essere rilevata dall’antenna del Reader. Il fenomeno della riflessione delle onde elettromagnetiche è conosciuto come backscattering ed è simile a quello su cui si basa il funzionamento dei sistemi radar. Per ottenere le condizioni di “campo lontano” alle distanze operative impiegate vengono generalmente sfruttate le bande con minore lunghezza d’onda (UHF, SHF). – Figura 3.2. Accoppiamento induttivo (campo vicino) - Accoppiamento elettromagnetico (campo lontano) Il confine teorico tra campo vicino e campo lontano è direttamente proporzionale alla lunghezza d’onda (l) ed è situato intorno ai 3,5 m per HF e 5 cm per UHF. In pratica altri fattori riducono questo confine ai valori illustrati in tabella. Banda di frequenza Regione di “campo vicino” Regione di “campo lontano” LF < 120 m > 12000 m HF <1m > 110 m UHF < 1,65 cm > 1,65 m SHF < 0,25 cm > 0,25 cm Figura 3.3. Regioni di campo vicino e campo lontano per differenti frequenze 29 Capitolo III: Sistemi di comunicazione RFId 3.3 TRASONDER PASSIVI HF AD ACCOPPIAMENTO MAGNETICO Questo paragrafo presenta un’applicazione specifica della tecnologia RFId alla frequenza di 13,56 MHz, che è particolarmente importante sia per la sua diffusione sia per la sua standardizzazione mondiale. Tutte le numerosissime applicazioni di card contactless sono basate su questa frequenza e anche il sistema di controllo accessi da me implementato lavora in tale banda. Inoltre, i principi di progettazione e funzionamento di un sistema a 13,56 MHz si possono applicare anche agli altri tipi di transponder passivi accoppiati magneticamente perché i vincoli fisici sono sostanzialmente gli stessi. Per i motivi su elencati, in questa sezione sarà data una descrizione dettagliata dei principi fisici di funzionamento della tecnologia RFId nella banda HF. Questi TAG usano l’accoppiamento induttivo tra antenne a spire accoppiate come un trasformatore elettrico (l’antenna del Reader e quella del TAG) per rifornire il TAG di energia e trasmettere. Le due antenne sono, dal punto di vista elettrico, un circuito accordato LC (induttanza - condensatore). Alla frequenza di risonanza viene quindi massimizzato il trasferimento di energia tra Reader e TAG. A parità di altri fattori, un numero di spire minore genera una frequenza di risonanza maggiore (ad esempio per la frequenza di 13,56 MHz vengono tipicamente usate da 3 a 5 spire nelle antenne). La comunicazione tra Reader e TAG avviene modulando in ampiezza il campo magnetico generato dall’antenna del Reader con il segnale digitale in banda base che deve essere trasmesso. Il circuito di ricezione del TAG riconosce il campo modulato e decodifica, da questo, l’informazione trasmessa dal Reader. Ora, mentre il Reader ha potenza per modulare e trasmettere il proprio campo il TAG non ne ha. La comunicazione all’indietro dal TAG al Reader si realizza quindi tramite accoppiamento induttivo, come in un trasformatore in cui l’avvolgimento secondario (antenna del TAG) varia il proprio carico (modula) ed il risultato (modulato) è visto nell’avvolgimento primario (antenna del Reader). Il chip del TAG realizza questo effetto cambiando l’impedenza della propria antenna coerentemente con un segnale modulante ricavato dalla lettura dei dati contenuti nella propria memoria. In effetti tutto ciò è più complesso in quanto se il segnale di risposta (modulato) ha la stessa frequenza del segnale di interrogazione del Reader, sarà mascherato da questo e non facilmente rilevato a causa del debole accoppiamento tra Reader e TAG. 30 Capitolo III: Sistemi di comunicazione RFId Figura 3.4. Schema di principio del sistema Reader-Tag ad accoppiamento magnetico In sintesi la sequenza di eventi nell’interrogazione del TAG da parte del Reader è la seguente: 1. La logica di controllo del Reader invia i dati (dell’interrogazione) al trasmettitore che genera il segnale per l’antenna a spire. 2. La corrente nell’antenna del Reader induce un campo magnetico pulsante che si concatena con l’antenna a spire del TAG. 3. La corrente indotta viene rettificata ed accumulata in un condensatore, fornendo alimentazione alla logica di controllo del TAG. 4. La logica di controllo del TAG (alimentata) si attiva e decodifica il segnale di interrogazione del Reader. 5. La logica di controllo del TAG legge i dati nella sua memoria e, con questi, modula l’impedenza di antenna del TAG medesimo. 6. Il Reader percepisce (tramite il rivelatore) le variazioni d’impedenza dell’antenna del TAG (essendo le spire del TAG e del Reader accoppiate come gli avvolgimenti di un trasformatore) e trasmette i dati ricevuti alla sua logica di controllo. 3.3.1 ELEMENTI CARATTERIZZANTI I TRANSPONDER AD ACCOPPIAMENTO INDUTTIVO Oggi esistono molte forme differenti di transponder ed è importante sapere che esistono notevoli differenze di prestazioni per i diversi tipi di tag in funzione delle loro caratteristiche fisiche: area dell’antenna, livello di induttanza, fattore di qualità dell’antenna. Le forme di transonder più diffuse quasi sempre non sono state scelte in funzione delle loro caratteristiche intrinseche di accoppiamento magnetico ma per garantire l’omogeneità con i sistemi esistenti. Per esempio, il diffusissimo tag a forma di carta di credito (circa 75mm x 46mm), utilizzato nel mio sistema come 31 Capitolo III: Sistemi di comunicazione RFId cartellino identificativo dipendente (badge), deve rispettare i criteri dimensionali delle carte di credito tradizionale con banda magnetica per essere fisicamente compatibile con molti lettori in grado di leggere sia carte RFId sia carte tradizionali. Purtroppo la forma è un parametro molto importante per la definizione delle prestazioni dei transponder in funzione di campi di applicazione diversi, infatti, nonostante con aree uguali si possa concatenare lo stesso flusso, non tutte le forme di antenne hanno lo stesso livello di efficienza (già nei documenti di Maxwell si possono notare considerazioni puntuali sui differenti livelli di efficienza delle forme degli induttori che presentano la stessa area). Dunque, l’area dell’antenna del transponder è un parametro importante nella valutazione dell’efficienza, ma non è sufficiente. Inoltre l’area dell’antenna, e quindi le relative dimensioni, non possono essere aumentate indefinitivamente perché all’aumentare delle dimensioni dell’antenna aumenta in una certa misura anche il livello dell’induttanza del circuito, modificando i parametri necessari all’ottenimento della frequenza di risonanza del circuito. Il funzionamento in risonanza del circuito deve essere assolutamente garantito, poiché permette di ottenere la migliore modalità possibile di scambio di energia e informazioni tra reader e tag. La frequenza di risonanza di un circuito LC (Induttanza-Capacità) deve quindi essere uguale alla frequenza della portante, che in questo caso è 13,56 MHz. La frequenza di risonanza dipende esclusivamente dai valori di L e di C come si può facilmente ricavare dalla seguente equazione: f = 1 2Π LC (3.1) dove L: induttanza [mH] C: conduttanza [mF] f: frequenza portante [MHz]. Poiché il valore di f è fissato in modo molto preciso dalla frequenza della portante e il valore di C ha un valore determinato dalla capacità del circuito e dalla capacità dell’antenna stessa, il valore L non può assumere qualsiasi valore ma deve essere in un intervallo in gran parte già determinato. La bobina dell’antenna può esserere descritta come un’induttanza Lsc in serie a una resistenza Rsc. La capacità della bobina d’antenna Cc è in parallelo con questo circuito in serie; essa è composta dalla capacità della stessa bobina (generata dalla vicinanza delle spire sella bobina fra loro) e da un componente capacitivo addizionale Cext che viene calcolato per ottenere un eventuale accordo di frequenza risonante, in pratica la presenza di un tale elemento nel circuito dipende dalla filosofia del fabbricante del chip: Philips, ad esempio, ha incluso nel chip un componente capacitivo, mentre la Texas Instruments pone l’elemento capacitivo all’esterno del chip. Anche la scelta del materiale per realizzare l’antenna è importante perché determina il valore della resistenza Rsc che rappresenta la parte di potenza attiva assorbita dal circuito, dando un’indicazione della qualità della realizzazione del transponder. In generale, sono normalmente utilizzati tre materiali che hanno una resistività (la resistività è una grandezza che indica la capacità di condurre 32 Capitolo III: Sistemi di comunicazione RFId corrente di un materiale, il suo valore è indipendente dalle dimensioni del materiale) molto bassa e quindi permettono di ottenere questo scopo: • Alluminio: resistività 2 [nano ohm] • Rame: resistività 1,72 [nano ohm] • Argento: resistività 1,62 [nano ohm]. Questi dati indicano che l’argento e il rame hanno dei valori quasi simili e quindi possono essere utilizzati indistintamente indipendentemente dalle valutazione dei costi: i tag a forma di carta di credito da me utilizzati usano bobine di rame per limitare il costo di un singolo tag. Il valore di resistività specifica entra nelle equazioni fondamentali per il progetto dell’antenna. L’equazione seguente permette di calcolare la resistenza R della bobina: Rs ⋅ Let R= (Tt ⋅ Tw) ⋅ NT (3.2) CF dove: R s: Resistenza specifica del materiale L et: Lunghezza totale della bobina T t: spessore della traccia T w: Lunghezza della traccia NT: numero di spire della bobina CF: fattore di correzione, che varia in confronto del tipo di bobina e delle sue dimensioni. Per un transponder di tipo carta di credito (utilizzato nel sistema da me implementato) questo coefficiente può essere fissato a 0,9. Quindi, a parametri della bobina uguali, le differenze nel funzionamento derivano direttamente dal tipo di materiale utilizzato per realizzare la bobina. Si deve quindi calcolare la resistenza parallela equivalente del transpoder (bobina + chip): Rpe = Ric ⋅ Rpc Ric + Rpc (3.3) dove: R ic : Resistenza del chip R pc: Resistenza parallela della bobina, calcolabile come: Rpc = R + (2ΠfLc ) = Q R serie + 1 R 2 (3.4) dove: L c: induttanza della bobina 33 Capitolo III: Sistemi di comunicazione RFId R : Resistenza della serie derivata dall’equazione (3.2). La resisenza parallela della bobina dipende quindi dal fattore di qualità Q, che diventa un elemento cruciale nella progettazione. Poiché il fattore Q è estremamente importante per il calcolo della resistenza parallela, è quindi altrettanto importante per la determinazione del consumo di potenza attiva del transponder passivo. L’importanza del fattore di qualità Q Evidentemente Q deve essere calcolato alla frequenza operativa di funzionamento che dovrebbe essere la frequenza di risonanza f, come si può notare dalla seguente equazione: 2πfL Q pc = R pc (3.5) pc Le misure di Q in funzione della frequenza e della tensione d’ingresso sono i parametri più significativi per caratterizzare ogni transponder. Infatti in funzione della frequenza di ingresso, la resistenza d’ingresso del chip può variare fino a 4 volte il valore in condizione normale a bassa tensione. Nello stesso modo, in condizioni di tensione dei morsetti del circuito di raddrizzamento inferiori al livello operativo, la capacità del chip è molto più alta che nel caso di tensione superiore al livello minimo operativo. Il fattore QUL, unloaded qualità factor, descrive in modo complessivo e conservativo le perdite che sono presenti nella bobina, nonché nelle connessioni fra chip e bobina d’antenna. Da questo momento il valore di Qul può essere considerato il corretto valore Q da considerare, esso può esprimere: • il rapporto che esiste fra energia che viene conservata nel circuito in un ciclo di energia ed energia che viene dissipata nello stesso tempo; • il rapporto che esiste fra la reattanza e la resistenza. Questo valore ha anche un altro significato molto importante per i circuiti di radio frequenza. In effetti, il Q esprime il rapporto che esiste fra la frequenza di risonanza del circuito e la banda passante del circuito. In un circuito selettivo, la banda passante è la banda di frequenza per la quale l’attenuazione è inferiore a un determinato valore che viene fissato di solito in 3 dB (decibel); a tale valore di attenuazione corrisponde metà della potenza che si ha alla frequenza di guadagno massimo. f Q UL = − UL ⇔ B= B f − UL Q (3.6) 34 Capitolo III: Sistemi di comunicazione RFId Si possono quindi calcolare i valori dell’intervallo di frequenza che definiscono la banda passante: B − f − 3dB = f − UL UL 2 B + f − 3dB = f + UL UL 2 (3.7) 3.3.2 SENSIBILITÀ ALLA TENSIONE La tensione presente nella bobina dipende largamente dalla mutua induttanza che esiste fra la stessa bobina e la bobina che è l’antenna del ricetrasmettitore. La mutua induttanza è una funzione della geometria delle bobine e dalla distanza r che intercorre fra loro. Il voltaggio indotto nella bobina del transponder diminuisce con 1/r ³, quindi la distanza operativa diminuisce nello stesso modo. Esiste un’equazione che permette di calcolare la tensione indotta Vo all’interno di una bobina sintonizzata, qual è il transponder, rispetto a molti parametri già individuati: Vo = 2 ⋅ π ⋅ f ⋅ NT ⋅ A ⋅ Q ⋅ Bo ⋅ cos α (3.7) dove: f: frequenza del segnale in arrivo A: area nella bobina del transponder Q: fattore di qualità della bobina Bo: intensità del campo magnetico in arrivo nella bobina, espressa in [ µ ⋅ wb ⋅ m −2 ]. Per risalire al campo magnetico si utilizza la relazione B=mH α : angolo di arrivo del segnale. Questa equazione evidenzia che la tensione indotta attraverso la bombina del transponder è una funzione dell’angolo di incidenza del segnale. In un sistema classico di transponder a 13,56 MHz il livello di tensione è al massimo quando la bobina del tag è messa in parallelo con il segnale in arrivo. Il transponder entra nelle condizioni operative unicamente quando Vo= V LA − LB , ossia quando la tensione di picco ai capi della bobina diventa uguale a quella necessaria al suo funzionamento, per esempio fissando Vo a 2,55 Vrms con 3,60 Vpp: Vo = 2 ⋅ π ⋅ f ⋅ NT ⋅ A ⋅ Q ⋅ Bo ⋅ cos α = 3,60Vpp (3.8) Gli altri parametri necessari per il calcolo sono i seguenti: 1. Lunghezza della bobina = 0.075 m 2. Larghezza della bobina = 0.046 m 3. Area della bobina (A) = 0.00345 m² 35 Capitolo III: Sistemi di comunicazione RFId 4. Numero di spire nella bobina (NT) = 6 5. Fattore Q = 45 6. Cos ( α ) = 1 Dall’equazione precedente possiamo ricavare il flusso magnetico minimo di funzionamento del transponder: 3,60 Bo = 2 = 0,032 µwbm 2 ⋅ π ⋅ f ⋅ NT ⋅ A ⋅ Q ⋅ cos α (3.9) Bo qualifica il flusso magnetico necessario per indurre il livello di tensione adatto a garantire il funzionamento con tensione picco picco definita e in questo caso uguale a 3,60Vpp. Rmax è la distanza massima fra antenna del ricetrasmettitore e la bobina del transponder che permette al segnale di essere rilevato e quindi al transponder passivo di essere operativo. A questa distanza, il livello del flusso magnetico è uguale a Bo. Calcolo del fattore di qualità Q ottimale In questo paragrafo, verrà illustrata una metodologia per poter ottenere il fattore di qualità Q che permetta di minimizzare il fabbisogno di campo magnetico e quindi massimizzare le prestazioni del transponder. La portante a 13,56 MHz è modulata con il segnale generato per trasmettere dati dal ricetrasmettitore verso il transponder. Si può affermare che il prodotto tra la banda passante B e la durata della modulazione T deve essere uguale a 1. Allo stesso modo si è già posto che: B= f Q (3.10) Il valore di T può essere facilmente determinato esaminando le caratteristiche della trasmissione dati: • un ‘1’ logico è trasmesso con una portante modulata in un periodo di 9,44 µs • uno ‘0’ logico è trasmesso in un periodo di 4 volte 9,44 µs, ossia 37,76 µs. Quindi: • T = 9,44 µs • Q = Tmax * f = 128 • B = 13560000/128 = 105938Hz 36 Capitolo III: Sistemi di comunicazione RFId 3.4 TRANSPONDER PASSIVI AD ACCOPPIAMENTO ELETTROMAGNETICO 3.4.1 L’EFFETTO SCATTERING Quando un’onda elettromagnetica incide su irregolarità nel mezzo in cui si propaga, viene dispersa in modo casuale. Questo fenomeno è chiamato scattering. In sistemi come il radar o gli RFID passivi, un trasmettitore invia un’onda elettromagnetica ed un ricevitore rileva lo scattering generato da un oggetto sul quale l’onda incide. Quando il ricevitore è co-locato con il trasmettitore il fenomeno è chiamato scatter monostatico o backscatter (nel seguito, per semplicità il backscatter verrà anche chiamato riflessione, pur nella relativa improprietà del termine). L’IEEE definisce lo scattering nella propagazione di un’onda radio come “un processo nel quale l’energia di un’onda viaggiante viene dispersa rispetto alla direzione di propagazione, a causa dell’interazione con le non omogeneità del mezzo”. Questo avviene quando un’onda elettromagnetica incide su un oggetto ed induce cariche oscillanti e correnti nell’oggetto e sulla sua superficie e, di conseguenza, si genera un nuovo campo elettromagnetico. I sistemi RFID modulano il Backscatter attraverso la variazione dell’impedenza della propria antenna, ciò consente la comunicazione con il Reader. Modalità operativa I TAG passivi che operano in UHF o a frequenze maggiori, usano tecniche a modulazione di ampiezza simili a quelle dei TAG che operano a frequenza più bassa e ricevono ugualmente la loro potenza dal campo del Reader. La differenza consiste nel modo in cui l’energia è trasferita e nell’antenna. Come si è detto, il trasferimento di energia avviene in regime di “campo lontano”. In questa regione, nella teoria elettromagnetica, le componenti elettrica e magnetica del campo in un conduttore (antenna) si irradiano e si propagano nella spazio libero come un’onda combinata (onda elettromagnetica). A queste frequenze, si opera sempre in “campo lontano” ovvero a distanze a cui l’accoppiamento induttivo non è più l’effetto prevalente, si opera quindi con antenne a dipolo che catturano il campo EM come nei tradizionali sistemi di radiocomunicazione. Quando l’onda EM emessa dal Reader incide sull’antenna del TAG una parte dell’energia è assorbita per fornire potenza al TAG (attraverso un ordinario circuito rettificatore da tensione alternata a continua), una piccola parte, invece, è riflessa all’indietro verso il Reader come backscatter. 37 Capitolo III: Sistemi di comunicazione RFId Come per i TAG a frequenza più bassa ad accoppiamento induttivo, i TAG passivi UHF non hanno fonti proprie di energia per trasmettere. L’energia ricavata dal campo EM assorbito dall’antenna del TAG è dell’ordine di 200 microwatt, sicuramente troppo bassa per alimentare un trasmettitore. Per la comunicazione tra TAG e Reader, quindi, si sfrutta la modulazione dell’effetto backscatter. Anche in questo caso la modulazione del backscatter è ottenuta tramite variazione d’impedenza dell’antenna del TAG durante la trasmissione del segnale da parte del Reader. Il compito del Reader è quello di captare le conseguenti variazioni nel segnale riflesso. L’uso della tecnica della modulazione del backscatter in campo lontano, introduce problemi differenti da quelli che si manifestano nei sistemi a frequenza più bassa. Uno dei maggori problemi è dovuto al fatto che il campo emesso dal Reader, non è riflesso solo dall’antenna del TAG ma anche da tutti gli oggetti circostanti con dimensioni paragonabili alla lunghezza d’onda adoperata. Questi campi riflessi (cammini multipli o multipath) si sovrappongono al campo principale emesso dal Reader e possono provocarne lo smorzamento o perfino la cancellazione. Inoltre anche in questo caso si potrebbero verificare problemi derivati dal segnale di risposta (modulato) sulla stessa frequenza del segnale di interrogazione del Reader. I TAG passivi a frequenze elevate (UHF, SHF) inoltre, operano a distanze maggiori di quelli ad accoppiamento induttivo, con antenne più semplici e di dimensioni ridotte, da qui la previsione della larga diffusione di questa tecnologia. Figura 3.5. Schema di principio del sistema Tag-Reader ad accoppiamento elettromagnetico In conclusione, la sequenza di eventi nell’interrogazione in Backscatter del TAG da parte del Reader è la seguente: 1. La logica di controllo del Reader invia i dati (dell’interrogazione) al trasmettitore che genera il segnale RF per l’antenna a dipolo. 38 Capitolo III: Sistemi di comunicazione RFId 2. Il segnale si propaga nello spazio (campo lontano) e viene ricevuto dall’antenna a dipolo del TAG. 3. L’energia del segnale ricevuto viene rettificata ed accumulata in un condensatore, fornendo alimentazione alla logica di controllo del TAG. 4. La logica di controllo del TAG (alimentata) si attiva e decodifica il segnale di interrogazione del Reader. 5. La logica di controllo del TAG legge i dati nella sua memoria e, con questi, modula l’impedenza di antenna del TAG medesimo e, di conseguenza, modula il Backscatter. 6. Il Reader riceve il segnale di Backscatter, lo decodifica tramite il ricevitore e trasmette i dati ricevuti alla logica di controllo. 3.5 ANTENNE NEI SISTEMI RFID Come si è accennato in precedenza, un ruolo di grande rilevanza nei sistemi RFID passivi è giocato dalle antenne del TAG e del Reader. Le antenne infatti sono la fonte primaria di energia per i TAG ed i problemi di orientamento e polarizzazione influiscono significativamente sulle prestazioni. Orientamento e polarizzazione del segnale Il collocamento del TAG senza rispetto della polarizzazione del campo generato dal Reader provoca significative riduzioni nella distanza operativa, fino al caso di non riuscire a leggere un TAG orientato ortogonalmente rispetto al campo generato dal Reader. Gli apparati con accoppiamento EM, sia passivi che attivi, devono tener conto di due caratteristiche principali delle antenne (sia del Reader che del TAG): – diagramma di radiazione – polarizzazione del campo EM Il diagramma di radiazione è la rappresentazione tridimensionale del guadagno d’antenna, questo ultimo misurato (in unità logaritmiche–dB) per confronto tra l'antenna considerata e un'antenna di riferimento isotropa (cioè che irradia egualmente in tutte le direzioni). Solitamente si preferisce considerare le sezioni orizzontali e verticali del diagramma (tridimensionale) di radiazione. L’intensità del campo generato da un’antenna è funzione del diagramma di radiazione dell’antenna medesima. Per il trasferimento ottimale di potenza tra Reader e TAG, i vettori di massima intensità dei diagrammi di radiazione delle due antenne devono essere allineati. 39 Capitolo III: Sistemi di comunicazione RFId Figura 3.6. Diagramma di radiazione di un'antenna a forma di dipolo 3.5.1 POLARIZZAZIONE DEL CAMPO EM E ORIENTAMENTO RECIPROCO ANTENNE Il campo EM è rappresentabile con due vettori campo elettrico E e magnetico H ortogonali tra loro e rispetto all’asse (X) di propagazione del segnale. Se la direzione dei due vettori rimane inalterata e solo l’intensità ed il verso variano in modo sinusoidale, il segnale si dice polarizzato linearmente. Se i vettori del campo elettrico E e magnetico H ruotano attorno all’asse X (direzione di propagazione del segnale), il segnale è detto a polarizzazione circolare. Una direzione parallela dei due vettori di campo elettrico (e necessariamente anche i due di campo magnetico) delle antenne del TAG e del Reader provoca il massimo trasferimento di energia. In altri termini, se le antenne sono a polarizzazione lineare è necessario che i relativi dipoli siano paralleli. Se almeno una della antenne è a polarizzazione circolare, quest’ultima condizione non è necessaria ed è sufficiente che coincidano gli assi di massima propagazione del segnale. Per quanto riguarda gli apparati con accoppiamento induttivo, essi sono particolarmente sensibili soprattutto all’orientamento delle antenne che, si ricorda, sono assimilabili agli avvolgimenti primario e secondario di un trasformatore elettrico. L’orientamento ottimale per le spire delle due antenne di TAG e Reader è quello parallelo tra loro. Il problema della polarizzazione può essere risolto con vari accorgimenti nella realizzazione della/e antenna/e del reader come illustrato nella seguente tabella: 40 Capitolo III: Sistemi di comunicazione RFId Bande di frequenza Antenna/e del Reader HF Antenne in diverse locazione con diversi orientamenti UHF Antenna con polarizzazione circolare Qualsiasi Due antenne a 90° fuori fase l’una con l’altra Tabella 3.7. Tecniche per superare il problema della polarizzazione Nella progettazione è necessario specializzare l’antenna per le varie applicazioni ed ambienti di collocazione. Il progetto delle antenne è radicalmente differente per le bande UHF o superiori e per quelle LF ed HF a causa del funzionamento ad accoppiamento induttivo in quest’ultime. La maggior parte delle antenne per RFID devono essere accordate sulla risonanza alla frequenza operativa. Questo espone il sistema all’influenza di molti fattori esterni che possono de-sintonizzare l’antenna dalla frequenza di risonanza, riducendo la distanza operativa. Le cause sono varie e dipendenti anche dalla frequenza operativa. Se ne elencano alcune: • effetto pelle, • perdite dovute a prossimità di masse metalliche, • disadattamento con il cavo d’antenna, • fading del segnale, • prossimità con altre antenne di Reader, • variazioni ambientali, • effetti armonici, • interferenze con altre sorgenti RF, • riflessioni del segnale, • intermodulazioni (cross talk), • effetti generati dal movimento di una delle due antenne nel campo magnetico generato dall’altra, che genera correnti indotte (di Foucault o Eddy current) come in un generatore elettrico. Queste correnti interferiscono con quelle prodotte dall’accoppiamento induttivo tra TAG e Reader. I problemi di de-sintonizzazione causati dai fattori elencati possono essere minimizzati ricorrendo a circuiti di auto sintonia dinamica che lavorano sui parametri di sintonia come sistemi in controreazione. Una tecnica adoperata di frequente nelle applicazioni di carico e scarico delle merci è quella delle antenne a “Portale”. Un portale prevede una configurazione di antenne in grado di leggere i TAG sugli oggetti che transitano attraverso di esso. I portali sono spesso previsti per il transito di pallet (pedane) o per nastri trasportatori; un’altra applicazione molto diffusa li vede 41 Capitolo III: Sistemi di comunicazione RFId operare all’uscita dei punti vendita come punto di transito obbligato per i clienti che portano merci acquistate fuori dal locale. Alcune caratteristiche dei portali sono elencate nel seguito. Spesso nei portali vengono usate antenne a polarizzazione circolare per minimizzare gli effetti dell’orientamento degli oggetti. • La tecnica dei portali riduce sia la probabilità di leggere TAG indesiderati sia le interferenze tra porte vicine. • Con configurazione a portale è possibile leggere il 98,5% dei cartoni dotati di TAG sulle pedane che passano attraverso le porte. • Equipaggiando i portali con sensori di moto si può distinguere automaticamente tra il carico (in entrata) e lo scarico (in uscita) delle merci. Figura 3.8. Esempi di antenne HF a "portale" per uscita pubblico nei punti vendita 3.5.2 ANTENNA DEL READER E ANTENNA DEL TRANSPONDER PER SISTEMI AD ACCOPPIAMENTO MAGNETICO. Come visto nel paragrafo -_- , i parametri che permettono di valutare l’intensità del campo magnetico necessaria per poter fornire energia sufficiente al chip del transponder per poter funzionare sono riassunti nella seguente equazione: Vo = 2 ⋅ π ⋅ f ⋅ NT ⋅ A ⋅ Q ⋅ Bo ⋅ cos α = 2 ⋅ π ⋅ f ⋅ NT ⋅ A ⋅ Q ⋅ H ⋅ µo ⋅ cos α (3.11) dove: f: frequenza di risonanza NT: numero spire bobine 42 Capitolo III: Sistemi di comunicazione RFId A: area bobina Q: fattore di qualità Bo: flusso magnetico minimo di funzionamento α : angolo di incidenza del segnale in arrivo H: campo magnetico µo : permeabilità magnetica nello spazio vuoto Conoscendo il livello di Vo necessario per far funzionare il transponder, l’equazione può essere riproposta in funzione al flusso magnetico: Bo = Vo 2 ⋅ π ⋅ f ⋅ NT ⋅ A ⋅ Q ⋅ cos α (3.12) Descrizione dei principi fisici Un segnale a RF può essere radiato se la dimensione linerare dell’antenna è paragonabile alla lunghezza d’onda λ della frequenza operativa f (espressa in Hz): 3 ⋅ 10 λ= 8 f (3.13) Poiché la lunghezza d’onda di 13,56 MHz è uguale a 22,12 metri, diventa difficile realizzare un antenna lineare con tali dimensioni. In alternativa, viene adoperata un’antenna di tipo loop accordata alla frequenza operativa. Una corrente piccola che circola all’interno di questa bobina genera un campo magnetico di tipo “campo vicino” ( o “near field”) che decresce con r −3 . Questo tipo di radiatore (termine più esatto che antenna,in questo caso) è un dipolo magnetico. I componenti necessari alla realizzazione di questo circuito risonante possono essere un’induttanza di pochi microhenry e una capacità di pochi picofarad. Il trasferimento di tensione fra l’antenna del reader (ricetrasmettitore) e le antenne dei transponder è realizzato attraverso l’accoppiamento induttivo fra le antenne. Come succede all’interno di un trasformatore, dove una tensione nel circuito primario viene trasferita nel circuito secondario, la tensione nell’antenna del ricetrasmettitore viene trasferita nella bobina del transponder e viceversa. L’efficienza del trasferimento del voltaggio viene incrementata notevolmente quando i circuiti hanno elevati fattori di qualità Q. Definizioni teoriche importanti Il modello del trasformatore può essere applicato a una antenna circolare del tipo loop (bobina), da cui si ricava l’equazione del flusso magnetico: B= µo ⋅ I ⋅ NT ⋅ a 2 ( 2 ⋅ a2 + r 2 ) 3/ 2 ⇒ r 2 >> a 2 ⇒ B = µo ⋅ I ⋅ NT ⋅ a 2 1 2 3 r (3.14) 43 Capitolo III: Sistemi di comunicazione RFId dove: I = corrente, in ampere a = raggio del loop r = distanza dal centro del conduttore µo : permeabilità magnetica nello spazio vuoto Si ricordi che la legge di Faraday stabilisce che quando una corrente variabile (ad esempio alternata) fluisce in un conduttore, nei conduttori vicini si manifesta un movimento di elettrodi che hanno la stessa frequenza, anche se tra i conduttori non esiste collegamento elettrico. Quando le bobine (o antenne) del ricetrasmettitore e del transponder sono in vicinanza tra loro, il campo magnetico H prodotto dalla bobina del ricetrasmettitore induce una tensione (forza elettromotrice) nella bobina del transponder. La tensione indotta nella bobina del transponder è uguale a: V = − NT ⋅ dφ dt (3.15) dove: NT: numero di spire nella bobina del transponder φ : flusso magnetico presente in ogni spira. Il fisico Lentz scoprì che la corrente indotta ha un verso tale da opporsi alla variazione di campo magnetico che l’ha causata, ciò è espresso nella precedente equazione dal segno meno. Il flusso magnetico φ è pari al campo magnetico H che attraversa l’intera superficie della bobina dell’antenna: → → φ = ∫ Hd A (3.16) dove: H = campo magnetico A = superficie dell’antenna Da tale equazione risulta evidente che l’intero flusso magnetico φ che attraversa la bobina dell’antenna sia influenzato dall’orientamento delle due bobine fra di loro. Il prodotto vettoriale e quindi il flusso magnetico viene portato al massimo quando le due bobine sono parallele tra loro, questa condizione permette di ottenere la tensione massima nella bobina del transponder e quindi la distanza massima di funzionamento. L’induttanza mutua tre le due antenne (bobine) – del reader e del tag – è definita dalla seguente equazione: M = µo ⋅ π ⋅ NT1 ⋅ NT2 ⋅ (a1 ⋅ a 2 )2 ( 2 ⋅ a12 + r 2 ) 3/ 2 (3.17) 44 Capitolo III: Sistemi di comunicazione RFId dove: NT1 ⋅ NT2 = prodotto tra il numero di spire delle due bobine a1 = raggio della bobina del ricetrasmettitore (reader) a2 = raggio della bobina del transponder (tag) r = distanza fra le due bobine In altre parole, la mutua induttanza è una funzione che deriva sia dalle geometrie delle rispettive antenne (bobine) sia dalla distanza esistente tra di loro. Avendo introdotto il coefficiente di induttanza mutua M, l’equazione che quantifica la tensione indotta nella bobina del transponder può essere riformulata nel seguente modo: V = − NT ⋅ dφ di = −M dt dt (3.18) dove: i = corrente della bobina del ricetrasmettitore (reader). 3.6 CODIFICA DEI DATI NEI SISTEMI RFID Nel TAG e nel Reader, i dati da trasmettere devono essere codificati in modo da generare un segnale unipolare binario che verrà usato per la modulazione. Esistono numerosissime tecniche di codifica, ognuna con caratteristiche differenti relativamente all’occupazione spettrale in banda base, alla complessità di co-decodifica, alla difficoltà di ricostruire la temporizzazione in ricezione, alla sensibilità ai disturbi (che determinano errori di trasmissione) e all’energia trasferita. Questi costituiscono infatti i parametri chiave nella selezione delle tecniche più convenienti per l’uso nei sistemi RFID. In particolare, i sistemi basati su TAG passivi impongono vincoli piuttosto stringenti sulla scelta della metodologia di codifica. La indisponibilità di sorgenti di temporizzazione ad elevata precisione a bordo del TAG, i vincoli sulla larghezza di banda e, soprattutto, la necessità di massimizzare il trasferimento di potenza per l’alimentazione del TAG, rendono la codifica dei dati un’operazione critica per molte applicazioni RFID. Nella trasmissione Reader=>TAG deve essere massimizzata l’energia nel segnale, per fornire la maggior energia possibile al TAG. Nella trasmissione TAG=>Reader deve essere minimizzata l’energia nel segnale, per la scarsità di energia disponibile. D’altro canto l’ampiezza del segnale deve essere tale da consentirne la rilevazione da parte del Reader. 45 Capitolo III: Sistemi di comunicazione RFId In genere si utilizzano codifiche basate sulla durata degli impulsi (PIE - Pulse Interval Encoding) oppure basate sulle transizioni (Manchester, Miller, FM0). Una caratteristica importante di questi metodi di codifica è che, essendo basati sulle transizioni, forniscono una sequenza codificata “auto-temporizzata”. Tale caratteristica consente di ridurre drasticamente, nei TAG passivi, la circuiteria necessaria per la sincronizzazione. I metodi denominati Miller ed FM0 invece risultano più idonei all’impiego nella comunicazione dai TAG passivi verso i Reader, minimizzando l’energia del segnale, soprattutto per la loro proprietà di possedere la componente spettrale a frequenza zero nulla. Nei metodi di codifica è definita la durata temporale minima dell’impulso. Tale intervallo temporale è denominato TARI. Figura 3.9. Tecniche di codifica 3.6.1 CODIFICA MANCHESTER Nella codifica Manchester ogni bit viene segnalato da una transizione come illustrato nella Figura 3.6. Proprio per tale caratteristica la codifica Manchester è considerata una codifica autotemporizzata, in quanto la struttura del segnale codificato consente un’accurata sincronizzazione del flusso dati in ricezione. 46 Capitolo III: Sistemi di comunicazione RFId La codifica Manchester fornisce un modo semplice per codificare sequenze binarie arbitrarie senza mai avere lunghi periodi di tempo privi di transizioni di segnale, il che permette di prevenire la perdita della sincronizzazione del clock, oppure errori di bit causati da derive del livello di base del segnale ricevuto. Assicura infatti che la componente a frequenza zero del segnale codificato sia zero. La codifica di ogni bit occupa un intervallo di tempo predefinito “time slot”. Questo time slot è diviso in due metà, chiamate mezzo bit. Nella codifica Manchester uno zero è codificato con una assenza di modulazione nel primo mezzo bit ed una modulazione nel secondo mezzo bit. Viceversa un bit uno è codificato con una modulazione nel primo mezzo bit ed una non modulazione nel secondo mezzo bit. 3.6.2 CODIFICA PIE La codifica di tipo PIE (Pulse Interval Encoding) è basata su un TARI predefinito. I bit zero ed uno così come simboli speciali quali Start Of Frame (SOF) ed End Of Frame (EOF) sono composti da un numero differente di periodi TARI. Conseguentemente, a parità del numero di simboli da codificare, la lunghezza della sequenza codificata risulta variabile, tuttavia questa caratteristica risulta di scarsa importanza poiché la sequenza codificata risulta auto-temporizzata. Il valore TARI rappresenta anche l’ampiezza d’impulso minima presente nel segnale modulato, fattore importante per determinare la larghezza di banda del segnale trasmesso. In particolare, più basso è il valore TARI, più elevata sarà l’occupazione di banda del segnale. 3.6.2 CODIFICA MILLER E FM0 Un’altra caratteristica fondamentale nella scelta delle codifiche più adatte all’implementazione nei TAG passivi è costituita dalla loro componente spettrale a frequenza zero. Infatti i TAG passivi modulano, tramite backscattering, una portante ricevuta. Nel Reader il segnale è filtrato per eliminare la componente a frequenza zero, preservando solo le molto più deboli componenti modulate dal TAG. Nella comunicazione TAG=>Reader sono richieste pertanto codifiche con una componente spettrale a frequenza zero nulla o con energia molto bassa tale da non interferire con il segnale ricevuto e da minimizzare l’emissione di energia da parte del TAG. Le codifiche di tipo Miller e FM0 godono di tale proprietà. 47 Capitolo III: Sistemi di comunicazione RFId Come illustrato nella Figura 3.6, anche nel caso della codifica di Miller la codifica di ogni bit occupa un intervallo di tempo predefinito “time slot”. Questo time slot è diviso in due metà, chiamate mezzo bit. Un uno è codificato con una transizione da assenza di modulazione a presenza di modulazione o viceversa tra i due mezzi bit del simbolo. Un bit zero è codificato invece continuando la presenza o l’assenza di modulazione come nel precedente mezzo bit oppure invertendo tale stato. In altri termini si può affermare che nella codifica di Miller si ha un’inversione di fase in banda base nel caso di due zero consecutivi. Nella codifica Miller modificata ogni transizione è rimpiazzata da un impulso negativo con durata molto inferiore al periodo di durata del bit. Nella codifica FM0 (Figura 3.6) invece si ha un’inversione di fase in banda base ad ogni inizio di simbolo ed inoltre la codifica del simbolo zero ha un’inversione tra il primo mezzo bit ed il secondo. 3.7 TECNICHE DI MODULAZIONE NEI SISTEMI PASSIVI Nella comunicazione tra Reader e TAG e viceversa, vengono usate tecniche di modulazione semplici che richiedono bassa complessità circuitale e in cui l’ampiezza, la fase o la frequenza, vengono variate in accordo con l’informazione trasportata da un segnale unipolare binario. I tre tipi di modulazione più comuni sono: – ASK – (Amplitude Shift Keying), la ben nota modulazione d’ampiezza binaria, il segnale modulante (binario) causa la variazione tra due ampiezze della portante. Se la minore delle due ampiezze è 0, la modulazione è chiamata On-Off Keying (OOK). La modulazione ASK può inoltre essere di tipo Double Side Band-Amplitude Shift Keying (DSB-ASK) oppure Single Side Band-ASK (SSB-ASK) che saranno descritte nei paragrafi seguenti. – Phase Reversal-ASK (PR-ASK) nella quale il segnale modulante (binario) causa lo spostamento di fase di 180° della portante. Simile alla cosiddetta BPSK (Binary Phase Shift Keying) prevede che la rivelazione avvenga sulla base dell’ampiezza del segnale ricevuto, e non della fase, così da ottenere un segnale in banda base simile a quello ricavato ad una modulazione ASK. – FSK – (Frequency Shift Keying), il segnale modulante (binario) causa lo spostamento della portante tra due frequenze. 48 Capitolo III: Sistemi di comunicazione RFId Un parametro di grande importanza è l’indice di modulazione, (espresso possibilmente in percentuale) definito negli standard come (a – b)/(a + b) dove a e b sono il valore massimo e quello minimo dell’ampiezza del segnale modulato. Sebbene la tecnologia a modulazione d’ampiezza sia ormai superata da tecniche più moderne e più efficienti, essa presenta ancora il fondamentale vantaggio costituito dalla semplicità circuitale e di conseguenza la ridotta potenza di alimentazione che favorisce l’implementazione nei TAG passivi. Le tecniche di modulazione più moderne invece, data la maggiore complicazione circuitale necessaria per ottenere elevate prestazioni non sono ancora implementabili (con poche eccezioni nelle bande di frequenza più basse) avendo a disposizione potenze estremamente limitate. Poiché le caratteristiche di propagazione del segnale dipendono in maniera essenziale dalla frequenza operativa, i sistemi RFID che operano sulle bande LF, HF e UHF utilizzano codifiche e modulazioni differenti. Inoltre dato che le condizioni operative dei Reader e dei TAG sono molto diverse, anche nella trasmissione TAG =>Reader e Reader =>TAG vengono usate tecniche di codifica e modulazione differenti. 3.7.1 MODULAZIONE READER TAG La modulazione Reader =>TAG deve assicurare che il TAG riceva energia sufficiente, che possa facilmente effettuare la rivelazione e che il segnale del Reader rispetti le regolamentazioni sulla potenza massima e sull’ampiezza di banda. Se lo schema di codifica e modulazione non consente al segnale di trasportare abbastanza energia, il TAG passivo non è in grado di funzionare. Inoltre il ricevitore del TAG deve essere semplice e deve essere in grado di sincronizzare il segnale. Per ottenere ciò lo schema di codifica (del Reader) deve consentire (al TAG) il recupero della sincronizzazione, questo può avvenire dal bordo d’uscita dei simboli di un codice PIE oppure dalle transizioni di un codice di Manchester. Infine la probabilità di errore nei dati deve essere bassa, pena il fallimento della comunicazione. Per quanto riguarda il problema della normativa sulle emissioni a radiofrequenza si devono considerare anche le forme d’onda ed il filtraggio, oltre all’ottimizzazione dello schema di codifica. Inoltre tutti i suddetti requisiti devono essere soddisfatti in sistemi a basso costo. Sistemi LF Il Reader utilizza prevalentemente la modulazione FSK, per esempio con variazioni tra i due valori di 125 e 134kHz per rappresentare i dati binari trasmessi al TAG. 49 Capitolo III: Sistemi di comunicazione RFId Sistemi HF e UHF Il Reader usa prevalentemente la modulazione ASK caratterizzata dalla semplicità di rivelazione. 3.7.2 RICEZIONE NEL TRANSPONDER A bordo della maggior parte dei TAG passivi sono realizzati ricevitori molto semplici con l’utilizzo di una potenza di alimentazione estremamente bassa. Ad esempio, la semplicità ed economicità di un ricevitore ASK è garantita dalla possibilità di realizzare rivelatori non coerenti (cioè senza rivelazione della fase del segnale) che estraggono l’inviluppo dell’ampiezza del segnale modulato. Un tipico circuito di questo tipo, spesso realizzato nei TAG, è il ben noto “rivelatore ad inviluppo” rappresentato nella Figura III.6. Figura 3.10. Rivelatore a inviluppo Dopo la demodulazione, i TAG passivi sono in grado di decodificare segnali codificati Manchester (Bi-Phase-L) e Pulse Interval Encoding (PIE) maggiormente utilizzati nelle comunicazioni dai Reader verso i TAG. Tali tecniche tuttavia presentano un duplice svantaggio: l’occupazione di banda risulta piuttosto elevata mentre l’efficienza spettrale (bit/Hz) risulta relativamente basso. Queste due caratteristiche tendono generalmente ad essere antagoniste. Ad esempio gli enti regolatori richiedono che lo spettro emesso sia ben confinato nell’ambito della banda assegnata. Usando la modulazione d’ampiezza (ASK) l’estensione dello spettro del segnale emesso limita fortemente il bitrate, a meno dell’impiego di codifiche più complesse. L’estensione dello spettro del segnale, infatti, dipende dal metodo di codifica. Nella figura è riportato un confronto tra gli spettri ottenuti dalle codifiche Manchester ed NRZ, quest’ultima utilizzata dal lettore “Escort Memory System HF-0405” da me utilizzato. 50 Capitolo III: Sistemi di comunicazione RFId Figura 3.11. Confronto tra spettri di segnali con codifiche Manchester e NRZ Le applicazioni, dal canto loro, richiedono velocità di lettura dei TAG elevate che implicano un maggior bitrate e conseguentemente una banda maggiore. 3.7.3 MODULAZIONE TAG READER Ricordando che il TAG non è equipaggiato con un trasmettitore ma si limita a modulare il carico (nell’accoppiamento induttivo) o il backscatter, va rilevato che entrambe queste tecniche permettono la variazione in ampiezza o in fase della portante re-irradiata, in dipendenza della loro implementazione. Come conseguenza del livello estremamente basso del segnale modulato dal TAG relativamente a quello emesso dal Reader, si verificano difficoltà nella ricezione del segnale da parte di quest’ultimo. I due segnali infatti, quello del Reader e quello del TAG, avrebbero la stessa frequenza. Per consentire al Reader di rilevare più agevolmente il segnale del TAG viene spesso usata, nel processo di modulazione del TAG, una sottoportante che sposta lo spettro del segnale modulato dal TAG lontano dalla frequenza della portante (generata dal Reader). Questa sottoportante è rilevabile con maggior facilità dal Reader medesimo attraverso opportuno filtraggio. Ricordando che le tecniche di codifica dei dati adottate dal TAG determinano anche lo spettro di frequenza del segnale di risposta, per creare una sottoportante, la modulazione (tramite variazione del carico o back- scattering) viene operata ad una frequenza più elevata del data rate nominale derivante dalla codifica di linea. L’informazione viene quindi modulata nella banda laterale di una sottoportante a frequenza più alta di quella della portante d’interrogazione del Reader. 51 Capitolo III: Sistemi di comunicazione RFId Figura 3.12. Spettri dei segnali di un sistema HF a 13,56 MHz La Figura 3.9 illustra un tipica situazione spesso utilizzata nei sistemi HF che operano a 13,56 MHz ed usano una sottoportante distante 212 KHz. Questo accorgimento sposta le bande laterali associate alla modulazione operata dal TAG di 212 KHz sopra e sotto la frequenza portante di 13,56 MHz consentendo così una più agevole ricezione da parte del Reader. Poiché però la maggior parte dei segnali di backscatter sono a livello relativamente basso ciò obbliga il Reader ad emettere un tono molto pulito in modo da non interferire con le risposte del TAG. Inoltre, per generare la sottoportante, il TAG deve essere dotato di un oscillatore locale o comunque di una temporizzazione più veloce di quella ricavabile dal segnale ricevuto. Per quanto riguarda invece la banda occupata dal segnale di risposta dal TAG verso il Reader è da notare che il backscatter non si mantiene confinato nell’ampiezza di banda del segnale emesso dal Reader. Le emissioni del TAG tuttavia non costituiscono un parametro critico, in quanto il livello del segnale è così basso da essere considerato (non incorrere) nelle prescrizioni normative per la larghezza di banda ai fini delle interferenze dei segnali radio. 3.8 PROTOCOLLI ANTI-COLLISIONE Quando si opera in ambienti con molteplicità di TAG o Reader che operano nello stesso tempo, sorgono i classici problemi di conflitti tra apparati nelle comunicazioni wireless. Il problema presenta due aspetti speculari: 1. Tutti i TAG (in mancanza di apposite procedure) risponderebbero contemporaneamente ad una interrogazione di Reader ricevuta correttamente. 2. I TAG dovrebbero rispondere a tutti i Reader che li interrogassero contemporaneamente. 52 Capitolo III: Sistemi di comunicazione RFId Naturalmente in queste condizioni la comunicazione non può avvenire con successo, pertanto vanno presi provvedimenti affinché nessuno di questi due casi si verifichi. La possibilità di risposte multiple e contemporanee da parte di più TAG che ricevano la stessa interrogazione corrisponde alla circostanza di diversi TAG presenti nel raggio di azione di uno stesso Reader. In questo caso essi replicherebbero alle interrogazioni tutti nello stesso momento. Questo provocherebbe inevitabilmente collisioni e perdite di dati. È quindi necessario implementare nei TAG algoritmi anti collisione, in modo che le loro risposte possano essere ordinate temporalmente e riconosciute individualmente. Il numero di TAG che può essere identificato (nell’unità di tempo) all’interno della distanza operativa di un Reader dipende dal bitrate dei TAG (che dipende anche dalla frequenza operativa) e dal protocollo anticollisione, tipicamente si va da 50 TAG/s per frequenze HF a 200 TAG/s per frequenze UHF. Esistono due classi fondamentali di protocolli anti-collisione, derivati direttamente dalle tecnologie delle wirwless LAN, la classe dei protocolli deterministici e quella dei protocolli probabilistici. Nell’ambito dei protocolli che gestiscono le “collisioni” tra trasmissioni simultanee da una molteplicità di TAG, il cosiddetto “Binary Decision Tree” appartiene alla classe dei protocolli deterministici mentre i cosiddetti “ALOHA” e “slotted ALOHA” appartengono alla classe dei protocolli probabilistici. Mentre il protocollo “Binary Decision Tree” è realizzato dal Reader attraverso interrogazioni ripetute dei TAG, i protocolli “ALOHA” e “slotted ALOHA” sono realizzati dai TAG per rispondere ad una interrogazione da parte del Reader. Supponendo che il Reader effettui chiamate selettive, il protocollo “Binary Decision Tree” ha come obiettivo di identificare i TAG aventi identificatori uguali ad un prefissato numero binario. Ad esempio, tutti i TAG aventi identificatore con la prima cifra uguale ad 1 rispondono ad una prima interrogazione, poi tutti quelli con seconda cifra uguale a 0 e così via fino a che ogni TAG abbia risposto per la prima volta. A questo punto il Reader avrà registrato tutti i TAG e compatibilmente con le capacità dei TAG il Reader potrà indirizzarli singolarmente. Nel caso si verifichino collisioni, cifre addizionali vengono utilizzate nell’interrogazione relativa a quella particolare porzione dell’albero di decisione. Ad esempio se la chiamata con prima cifra “0” dà collisione si passerà a due chiamate con cifre “00” e “01”, se anche la chiamata con cifre “01” dà collisione si passerà a due chiamate con cifre “010” e “011” e via discorrendo fino alla risoluzione di tutti i conflitti. Dalla figura 3.10 appare evidente l’esplosione delle dimensioni dell’albero e quindi del numero delle chiamate all’aumentare del 53 Capitolo III: Sistemi di comunicazione RFId numero dei TAG, conseguentemente i protocolli di questo tipo presentano delle prestazioni limitate per quanto riguarda la velocità di ricerca degli identificatori dei TAG nell’intero albero. Figura 3.13. Protocollo anti-collisione deterministico: Binary Decision Tree Il protocollo di tipo probabilistico ALOHA prevede che il TAG trasmetta il proprio messaggio e se il messaggio non va a buon fine il TAG effettua un nuovo tentativo di trasmissione, autonomamente (dopo avere atteso un certo periodo di tempo) o a seguito di una nuova interrogazione da parte del Reader. I tentativi di trasmissione proseguono fino a che la trasmissione del messaggio va a buon fine. Il protocollo “slotted ALOHA” prevede invece una sorta di discretizzazione degli istanti in cui i TAG possono iniziare a trasmettere un pacchetto di dati. Questo comporta che se non vi è collisione nell’istante iniziale, il pacchetto sicuramente non subirà collisione durante la sua trasmissione. Il protocollo “slotted ALOHA” possiede un’efficienza in termini di sfruttamento della banda disponibile di circa il 30% rispetto a circa il 18% dell’ALOHA. I protocolli ALOHA sono relativamente veloci nell’identificazione di un particolare TAG nell’ambito di un insieme numeroso. Inoltre una maggiore efficienza può essere raggiunta con l’impiego aggiuntivo di tecniche di tipo Listen Before Talk (LBT). Queste prevedono che il Reader verifichi che il canale di trasmissione sia libero prima di effettuare un’interrogazione, evitando così di interrompere una trasmissione in corso. Figura 3.14. Protocolli anticollisione stocastici ALOHA e slotted ALOHA 54 Capitolo III: Sistemi di comunicazione RFId 3.9 PARAMETRI PER LA SCELTA DI UN TAG Si riporta qui di seguito un elenco delle caratteristiche principali da tenere in conto per la scelta di un TAG nell’ambito di un particolare sistema RFID: • dimensioni e forma (in relazione alla collocazione del TAG); • distanze reciproche dei TAG; • durata (eventuale necessità di avere una protezione esterna robusta contro usura e rotture); • riutilizzabilità; • resistenza in ambienti critici (corrosivi, ad alta pressione, ecc.); • polarizzazione (orientazione del TAG rispetto al campo del Reader); • intervalli di temperatura in cui è previsto il funzionamento; • distanza di comunicazione tra TAG e Reader; • influenza da parte di eventuali materiali metallici e liquidi; • ambiente operativo (presenza di rumore elettrico, presenza di altri apparati radio, ecc); • frequenze operative (LF, HF o UHF); • standard e protocolli di comunicazioni supportati (ISO, EPC); • soddisfacimento di regolamentazioni regionali (USA, Europa, Asia); • ammontare dei dati da memorizzare nel TAG (eventualmente più di un unico identificativo di prodotto EPC); • caratteristiche anticollisione (numero massimo di TAG nel range di operabilità e velocità di identificazione); • velocità dei TAG all’interno del campo del Reader; • supporto di Reader (quali prodotti Reader sono in grado di leggere i TAG); • necessità di protezione dei dati del TAG (eventuale necessità di cifratura). I TAG sono costruiti in una grande varietà di contenitori, progettati per ambienti ed applicazioni differenti. Nel tipico TAG etichetta, chip ed antenna sono generalmente inseriti tra un substrato di materiale plastico ed una copertura di carta, ma sono possibili molte altre soluzioni, dal bullone al bottone, fino al tappo (in plastica) per bottiglie di vino. Vengono usati vari processi di assemblaggio che consentono realizzazioni miniaturizzate, il più comune, usato nei TAG incorporati in etichette e smart card, prevede: • un substrato di materiale elettricamente isolante e permeabile alle onde EM (carta, PVC, PET, ecc.) 55 Capitolo III: Sistemi di comunicazione RFId • sul substrato viene depositata l’antenna realizzata con inchiostri conduttori o metalli vari (argento, alluminio, rame) • successivamente il chip con l’elettronica del TAG viene connesso all’antenna con l’uso di tecnologie tipiche dei circuiti ibridi (wire bonding, flip chip, ecc.) • infine viene sovrapposto uno strato di materiale protettivo (laminazione in PVC, resina epossilica, carta adesiva, ecc.) per proteggere controabrasioni, corrosioni ed urti. Figura 3.15. Processo assemblaggio tag Tra i formati di assemblaggio più comuni, si ricordano: • Tessere (tipo carta di credito); • Etichette flessibili adesive; • TAG su carta; • Contenitori tipo gettoni e monete; • TAG iniettati o modellati in contenitori e prodotti di plastica; • TAG su cinturini da polso (usi ospedalieri); • TAG ad alta robustezza in contenitore epossidico sigillato; • TAG su chiavi; • TAG per grandi contenitori (pallet, container, ecc.). 56 Capitolo IV: Standard e protocolli di comunicazione CAPITOLO IV STANDARD E PROTOCOLLI DI COMUNICAZIONE. Questa parte è dedicata agli standard di comunicazione, problema fondamentale per tutte quelle tecnologie che richiedono interoperabilità tra dispositivi di diversi costruttori. Ad un introduzione riguardante i principali organismi dediti alla regolamentazione specifica nei sistemi RFId (ISO, EPCglobal), seguirà una descrizione breve e schematica degli standard, dei protocolli e delle normative che regolamentano il mercato odierno dell’identificazione a Radio Frequenza. Particolare approfondimento sarà, invece, concesso allo standard ISO/IEC 15693, che regolamenta l’interfaccia radio di comunicazione tra reader e transponder utilizzati nel sistema di controllo accessi da me implementato. 57 Capitolo IV: Standard e protocolli di comunicazione 4.1 GLI ENTI DI NORMAZIONE Il mondo della standirdazione del campo elettromagnetico è oltremodo ampio e variegato, lo spettro radio è una risorsa limitata e può essere usata, allocata e assegnata a utilizzi e utilizzatori (lincensed spectrum) o può essere allocata per utilizzi indipendenti dal conseguimento di un’assegnazione (unlicensed spectrum). I costi di aggiudicazione di un’assegnazione danno garanzie di controllo sull’uso dello spettro assegnato, come nel caso della telefonia cellulare. D’altra parte, nel caso di spettri unlicensed l’uso promiscuo non provede tutele sostanziali, come nel caso della comunicazione Bluetooth. La tecnologia RFID è stata ed è oggetto di consistenti attività di normazione sia a livello pubblico (internazionale e regionale), sia privato (consorzi di aziende). Nei primi anni di vita la standardizzazione non è stata un processo ordinato. La storia degli standard RFID negli ultimi 10 anni, infatti, non ha seguito uno sviluppo ideale, venendo governata da particolari interessi industriali. Questo anche perché le opinioni sulla necessità di standard unici e pubblici non sono unanimi. Per la maggior parte degli esperti la proliferazione di specifiche di consorzi privati, i cosiddetti “standard de facto”, comporta incrementi nei costi sia per lo sviluppo tecnologico sia per i prodotti finali e comporta, inoltre, una significativa barriera al commercio. Da un altro punto di vista, però, una “libera” competizione (che quindi veda la competizione di specifiche tecniche di consorzi privati senza grande necessità di standard ufficiali emessi dalle organizzazioni di normativa), potrebbe essere vista come uno stimolo a sviluppare tecnologie antagoniste il cui successo sarebbe garantito dalle prestazioni e dal mercato invece che da accordi all’interno delle commissioni. La linea che si sta affermando vede prevalere gli standard “pubblici”, solo però per quanto riguarda la razionalizzazione del processo produttivo dei TAG e le conseguenti economie di scala. L’azione dei produttori negli organismi di normativa è infatti tale da far strutturare gli standard con una quantità di opzioni spesso ingiustificata sul piano dell’utilizzo. Questo non ostacola la razionalizzazione dei processi produttivi, ma rende troppo agevole differenziare i prodotti in modo da rendere ardua la cosa che maggiormente interessa l’utilizzatore, ovvero l’intercambiabilità tra fornitori. Si potrebbe quindi concludere che l’affermazione degli standard “pubblici”, oggi prodotti dalle organizzazioni internazionali di normativa, va vista come un processo decisamente positivo, ma le contingenze nelle quali si consolida tutelano meglio gli interessi dei produttori, rispetto a quelli degli utilizzatori. Tra Organizzazioni pubbliche e consorzi di aziende hanno portato avanti, in questi anni, l’attività di normazione sui sistemi RFID, emergono essenzialmente EPCglobal ed ISO. 58 Capitolo IV: Standard e protocolli di comunicazione • EPCglobal nato ed operante come una associazione privata • ISO (ed organismi ad esso collegati) che costituisce l’ente mondiale di normativa in quasi tutti i campi della tecnologia. Iniziato con specifiche esclusivamente proprietarie, il processo di standardizzazione vede ora la competizione tra i due organismi i cui elaborati stanno convergendo. Ad esempio, gli standard per l’interfaccia radio sono, ad oggi, proposti sia da ISO che da EPCglobal (probabilmente l’uno orientato su tutti i campi inerenti la gestione degli oggetti, l’altro polarizzato sulle esigenze specifiche della catena di distribuzione). A questo proposito andrebbe sottolineata l’esistenza di punti di vista differenti relativamente all’approccio normativo di EPCglobal sui temi della proprietà intellettuale. Il processo di armonizzazione della normativa comunque è in corso e porterà ad una famiglia di standard globali, che garantirà adozione universale. Questo sarà un fattore chiave per la definitiva affermazione della tecnologia RFID. Nel seguito si accenna al quadro dell’articolazione, nelle varie regioni, delle organizzazioni che fanno capo all’ISO. 4.1.1 SITUAZIONE IN EUROPA La normativa ISO viene recepita, a livello europeo, dal Comitato Europeo di Standardizzazione (CEN), per quanto riguarda la parte fisica (hardware) e procedurale (protocolli di comunicazione), mentre l’Istituto Europeo di Standardizzazione nelle Telecomunicazioni (ETSI) emette normativa nelle materie omonime (essenzialmente compatibilità elettromagnetica). 4.1.2 SITUAZIONE IN USA L’ANSI (American National Standard Institute) costituisce negli USA l’equivalente del CEN europeo. Il NIST (National Institute of Standards and Technology), invece, è una agenzia del Dipartimento del Commercio Americano che emette standard obbligatori per gli acquisti fatti dal governo degli USA escluso il DoD (Dipartimento della Difesa) che ha standard propri. 4.1.3 SITUAZIONE IN CINA Anche in Cina esiste l’organismo che recepisce gli standard ISO, ovvero il Dipartimento per la Standardizzazione della Cina SAC (Standardization Administration of the People's Republic of 59 Capitolo IV: Standard e protocolli di comunicazione China) che agisce su autorizzazione governativa (State Council) e sotto il controllo dell’AQSIQ (General Administration of Quality Supervision, Inspection and Quarantine of the People's Republic of China). La Cina, che si avvia a costituire uno dei maggiori mercati mondiali, sta iniziando in modo indipendente un lavoro di standardizzazione sugli RFID. Questo può generare criticità nell’etichettatura di beni cinesi destinati oltreoceano, in quanto la Cina che esporta un grande volume di beni, è uno dei maggiori mercati potenziali della tecnologia RFID. Attualmente il “Ministry of Science and Technology (MOST)” cinese ed altri 13 dipartimenti governativi, inclusi i “Ministry of Information Industry (MII)” ed il già citato SAC, hanno prodotto un “white paper” che traccia le linee guida per lo sviluppo degli RFID nel paese. L’amministrazione cinese ha incaricato il “National RFID Tags Standards Working Group” di definire quale tecnologia debba essere adottata in Cina. Molto probabilmente verrà deciso di adottare qualcosa di compatibile con gli standard EPCglobal ed ISO, purché vengano adoperati propri diritti sulla proprietà intellettuale in modo da ottenere standard liberi da royalty. 4.2 LE NORMATIVE ISO E EPCGLOBAL I primi standard RFID sono stati realizzati in ISO, per TAG passivi a bassa frequenza e comprendono: • Gli standard sui TAG per identificazione degli animali: o ISO 11784 o Radio frequency identification of animals - Code structure o ISO 11785 o Radio frequency identification of animals - Technical concept • Protocolli per l’interfaccia radio per TAG RFID usati nei sistemi di pagamento, smart cards senza contatti e carte di prossimità: o ISO/IEC 10536 o Identification cards, Contactless integrated circuit(s) cards, proximity/vicinity cards ISO/IEC 14443 ISO/IEC 15693 • Metodi per il test e la conformità di TAG e Reader RFID ad uno standard (ISO/IEC 18047); • Metodi per il test delle prestazioni di TAG e Reader RFID (ISO/IEC 18046). 60 Capitolo IV: Standard e protocolli di comunicazione Successivamente EPCglobal ha prodotto normative orientate all’uso dei TAG nella logistica, ovvero: • una tassonomia di classi di TAG; • standard per protocolli di comunicazione a radio frequenza tra TAG e Reader; • formato per la memorizzazione delle informazioni di identificazione nei TAG. Inoltre EPCglobal ha creato standard e specifiche per l’interconnessione di sistemi informatici (server) che consentono di accedere ad informazioni complete su oggetti identificati tramite codici EPC, tramite i codici EPC medesimi ottenuti dai TAG. Il tutto sulla falsariga dei sistemi per la risoluzione dei nomi simbolici in Internet (DNS - Domain Nane Server). I sistemi informativi, detti “EPC Information Services” o EPCIS sono accessibili via Internet con servizi di rete per autorizzazione e sicurezza. Nel dicembre 2004, EPCglobal ha emesso uno standard lungamente atteso per TAG operanti nelle banda UHF media, che promette la diffusione massiva di TAG passivi a basso costo ed alte prestazioni. Si tratta dei cosiddetti Class 1 Generation 2 (EPC Gen2) RFID. Lo standard copre i protocolli di comunicazione per l’interfaccia a radio frequenza e sta stimolando lo sviluppo di nuove applicazioni. Il nuovo standard EPC Gen2, recentemente recepito dall’ISO (ISO/IEC 180006 Type C), è destinato a superare le preoccupazioni dell’utenza connesse ai diversi standard relativi a TAG per veicolare identificativi EPC ed operanti nelle bande UHF. Si posiziona tra gli standard con carico lieve di diritti per brevetti (è comunque necessario, per ottenere la conformità allo standard di associarsi ad EPCGlobal). 61 Capitolo IV: Standard e protocolli di comunicazione 4.2.1 LE NORMATIVE EPCGLOBAL Frequenza Classe Standard Alimentazione Descrizione - Applicazioni Memoria Class0 Gen1 - 900 MHz Class 0 RadioFrequency Identification Tag Specification UHF Passivi Solo lettura Sono i tipi più semplici, ove I dati, generalmente il solo identificatore (EPC), sono scritti durante il processo di produzione e non sono possibili modifiche. La classe 0 definisce anche una categoria di TAG chiamati EAS (anti-theft), questi non hanno identificatore completo ma annunciano solo la loro presenza quando transitano nel campo generato dall’antenna del Reader. - 13,56 MHz RFId Tag HF – UHF Specification Passivi - 860 MHz – 930 MHz Class1 Scrivibili una sola Class1 RFId Tag & Gen1 volta (WORM: Logical write once, read Communication many) Interface Specification Sono costruiti senza dati scritti in memeoria. I dati possono essere scritti una sola volta dall’utente o in fabbrica, successivamente è possibile la sola lettura. Questo tipo di tag viene principalmente usato come semplice identificatore - EPCglobal Tag Data Standard Version 1.3 Class1Gen2 UHF Interface Protocol Class1 Standard Version 1.0.9 Gen2 - Class1Gen2 UHF RFId Conformance Requirements Specification v. 1.0.2 Comunicano a 860 MHz-960MHz, di uso globale, comprendono: la classe 0, la classe 1 e caratteristiche di ISO/IEC 18000-6, utilizzati per le applicazioni di identificazione UHF Passivi WORM Aggiunge caratteristiche addizionali ai Gen2 in UHF: encryption, read locking, recycle features, sensor support, structured user memory. Dovrebbe anche introdurre algoritmi di autenticazone simili a quelli usati nelle carte senza contatto. Almeno una parte della UHF memoria è di tipo riscrivibile. I tags - EPCglobal Hardware Passivi, semisoddisfano la necessità di scrivere “on line” i Class2 Action Group (HAG: passivi, attivi dati nella memoria tramite la procedura di proposta di standard) Riscrivibili (readinterrogazione del Reader, ciò consente di write) tenere traccia della storia della merce. Contiene più memoria dei tag delle classi precedenti: la parte read/write della memoria si affianca alla sezione non volatile EEPROM che continua a contenere l’identficativo o l’EPC. Figura 4.1. Classi e standards defniti dall'EPCglobal 62 Capitolo IV: Standard e protocolli di comunicazione 4.2.2 NORMATIVE ISO/IEC Identificazione di animali 117984/5 Concetti tecnici 14223 Interfaccia radio Tessere con circuiti integrati 7816 Integrated circuit(s) cards with contacts 10536 Close-coupled cards 14443 Proximity Cards – Contactless SmartCard 15693 Vicinity Card – Smart Label – RFId tags Gestione oggetti 18000 Standard ISO/IEC 18000: Interfaccia radio. 18000-1 Part1: Architettura di riferimento e definizione dei parametri da standardizzare 18000-2 Part2: Definisce i parametri per l’interfaccia radio per dispositivi RFId operanti sotto i 135 KHz utilizzati per l’identificazione di oggetti. Definisce i parametri per l’Uplink ed il Downlink, tra i quali: • la frequenza operativa, • la canalizzazione, • le emissione spurie, • la modulazione, • il duty cycle, • la codifica dei dati, • il bit rate • l’ordine di trasmissione dei dati 18000-3 Part3: Definisce lo strato fisico, i metodi anti collisione ed il protocollo per dispositivi RFId utilizzati per l’identificazione di oggetti, si riferisce solo ai sistemi operanti a 13,56 MHz. 18000-4 Part4: Definisce i parametri dell’interfaccia radio per dispositivi RFId operanti a 2,45 GHz in banda ISM per applicazioni di identificazione di oggetti. Definisce i parametri (vedi part2) per l’Uplink ed il Downlink e i protocolli di comunicazione usati nell’interfaccia Radio. 18000-6 Part6: Definisce i parametri dell’interfaccia radio per dispositivi RFId operanti a 860 MHz e a 960 MHz. Definisce i parametri (vedi part2) per l’Uplink ed il Downlink e i protocolli di comunicazione usati nell’interfaccia Radio. Inoltre specifica i parametri per attuare la tecnica del “frequency hopping”. 18000-7 Part7: Definisce i parametri dell’interfaccia radio per dispositivi RFId con Tag attivi operanti nella banda dei 433 MHz. Definisce i parametri (vedi part2) per l’Uplink ed il Downlink e i protocolli di comunicazione usati nell’interfaccia Radio. Inoltre specifica i parametri per attuare la tecnica del “frequency hopping”. Figura 4.2. Standards definiti dall'ISO/IEC 63 Capitolo IV: Standard e protocolli di comunicazione 4.3 LO STANDARD ISO/IEC 15693 ISO 15693 è uno standard internazionale della International Organization for Standardization per le carte di vicinità, ovvero le smart card che possono essere lette e scritte a distanza maggiore rispetto alle contactless smartcard (regolate invece dallo standard ISO 14443). Le carte di vicinità (VICinity Card – VICC) e le contactless smartcard appartengono alla famiglia delle "carte di prossimità". Il sistema ISO 15693 opera sulla frequenza13.56MHz, e offre una distanza di lettura di 1–1.5 metri. Lo standard è organizzato in quattro parti: 1. Caratteristiche fisiche. 2. Potenza emessa a Radio Frequenza, forma d’onda, inizializzazione, anticollisione. 3. Protocollo di trasmissione 4.3.1 CARATTERISTICHE FISICHE Caratteristiche e dimensioni La VICC deve avere caratteristiche e dimensioni tali da rispettare i requisiti specificati per le cards conformi allo standard ISO/IEC 7810 ID-1. Figura 4.3. Dimensioni VICinity Card Luce ultra-violetta Questa parte della normativa ISO/IEC 15693 esclude esigenze di tutela delle VICC contro gli effetti della radiazione ultravioletta, quando questa supera i livelli nominali di luce ordinaria del giorno al livello del mare. Una maggiore protezione può essere garantita da ogni singolo produttore che deve comunque specificare il livello massimo tollerabile. Raggi X 64 Capitolo IV: Standard e protocolli di comunicazione La VICC deve continuare a funzionare in maniera regolare anche dopo essere stata esposta ai raggi X con energia pari a 100 KeV. Campo magnetico alternato • La VICC deve continuare a funzionare in maniera regolare anche dopo essere stata esposta ad un campo magnetico di livello medio dato dalla seguente tabella: Range di frequenza Campo magnetico medio Intervallo temporale medio [MHz] [A/m] [minuti] 0.3 – 3.0 1.63 6 3.0 – 30 4.98/f 6 30 – 300 0.163 6 Figura 4.4. Tolleranze al campo magnetico • La VICC deve continuare a funzionare in maniera regolare dopo l’esposizione ad un campo magnetico di 12 A/m alla frequenza f = 13,56 MHz. Campo elettrico alternato • La VICC deve continuare a funzionare in maniera regolare anche dopo essere stata esposta ad un campo elettrico di livello medio dato dalla seguente tabella: Range di frequenza Campo magnetico medio Intervallo temporale medio [MHz] [A/m] [minuti] 0.3 – 3.0 0.614 6 3.0 – 30 1842/f 6 30 – 300 61.4 6 Figura 4.5. Tolleranze al campo elettrico • Il livello di picco del campo elettrico è limitato a 30 volte il livello medio Campo elettrico statico La VICC deve continuare a funzionare in maniera regolare anche dopo essere stata esposta al test di conformità ISO/IEC 10373 (IEC 1000-4-2:1995) in cui il voltaggio di test è di 6 KV. Campo magnetico statico La VICC deve continuare a funzionare in maniera regolare anche dopo l’esposizione ad un campo magnetico statico di 640 KA/m. Temperatura operativa La VICC deve continuare a funzionare in maniera regolare in un intervallo di temperatura compreso tra 0° C e 50° C. 65 Capitolo IV: Standard e protocolli di comunicazione 4.3.2 POTENZA A RADIO FREQUENZA E FORMA D’ONDA. Il dialogo iniziale tra il Vicinity Coupling Device e la VICC (una o più VICCs possono essere presenti allo stesso tempo) avviene osservando i seguenti passi consecutivi: 1. Attivazione VICC tramite campo a Radio Frequenza generato dal VCD. 2. Attesa da parte della VICC di un comando proveniente dal VCD. 3. Trasmissione di un comando da parte del VCD. 4. Trasmissione di una risposta da parte della VICC. Tali operazioni sfruttano il trasferimento di potenza mediante segnale a Radio Frequenza il cui pattern è specificato nella prossima sezione. Trasferimento di potenza Il trasferimento di potenza si realizza attraverso l’accopiamento magnetico tra l’antenna del VCD e quella del VICC alla frequenza operativa di 13.56 MHz ± 7 kHz. L’intensità minima del campo magnetico necessaria ad attivare una VICC è pari a H min = 150 mA/m (valore efficace: rms). La massima norma del vettore campo magnetico che non compromette il funzionamento di una VICC è H max = 5 A/m (valore efficace: rms). Quindi una VCD deve generare un campo magnetico compreso nell’intervallo [ H min , H max ] Modulazione La comunicazione tra il VCD e la VICC avviene usando la modulazione Amplitude Shift Keying (ASK). Due indici di modulazione possono essere usati: 10% e 100%; la VICC deve essere in grado di interpretare entrambe. Quale particolare indice è usato in una determinata comunicazione è stabilito dal VCD. Nella seguente figura è rappresentata la forma d’onda quando viene usato l’indice 100%. Figura 4.6. Forma d'onda con indice di modulazione pari al 100% 66 Capitolo IV: Standard e protocolli di comunicazione Codifica dei dati e data rare La codifica dei dati è implementata usando la modulazione a posizionamento di impulso, seguendo una delle due possibilità elencate di seguito: 1. Posizionamento 1 di 256: il valore di un singolo byte è rappresentato dalla posizione di una pausa. La posizione della pausa tra 1 dei 256 periodi successivi di durata pari a 18,86 microsecondi (256/f) determina il valore di un byte. In questo caso la trasmissione di un byte avviene in 4.833 milli-secondi e il risultante data-rate è di 1,65 kbits/s (f/8192). Figura 4.7. Modalità di codifica dati 1 di 256 2. Modulazione a posizionamento di impulso, modalità 1 di 4: in questo caso la posizione dell’impulso determina due bits alla volta, quattro paia di bits formano un byte e i bits meno significativi sono inviati per primi. Il risultante data-rate è di 26,48 kbits/s (f/512). Figura 4.8. Modalità di codifica dati 1 di 4 67 Capitolo IV: Standard e protocolli di comunicazione La sequenza che indica il termine della comunicazione (End-Of-File) per entrambe le strategie di codifica è illustrata nella seguente figura: Figura 4.9. Sequenza End-Of-File Codifica del singolo bit utilizzando una sola sottoportante Un bit pari a 0 è formato da 8 impulsi alla frequenza di 423,75 kHz seguito da un intervallo temporale non-modulato di 18,88 micro-secondi: Figura 4.10. Codifica del bit 0 Un bit pari a 1 inizia con un periodo di 18,88 micro-secondi non modulato seguito da 8 impulsi alla frequenza di 423,75 kHz: Figura 4.11. Codifica del bit 1 68 Capitolo IV: Standard e protocolli di comunicazione 4.3.3 UID E STATI DI UNA VICINITY CARD. Identificatore univoco Ogni VICC è identificata univocamente da un identificatore a 64 bits univoco UID. Questo viene usato nell’algoritmo di anticollisione ed è definito dal produttore, seguendo lo schema riportato in figura: Figura 4.12. Unique IDentificator • Gli otto bits più signifativi (Most Significant Bits) devono rappresentare l’informazione ‘E0’; • IC Mfg code: 8 bits che in accordo allo standard ISO/IEC 7816-6/AM1, rappresentano l’identificativo del produttore • I rimanenti 48 bits (Least Significant Bits) indicano l’identificativo del particolare tag, apposto dal produttore. Stati possibili per una VICC Una VICC può essere in uno dei seguenti quattro stati: 1 Power-Off: la VICC non può essere attivata dal VCD. 2 Ready: la VICC è in questo stato quando viene attivata dal VCD 3 Quiet: in questo stato la VICC può processare ogni richiesta inviatale dal VCD 4 Selected: la richiesta del VCD può essere svolta solo dalla VICC in questo stato Figura 4.13. Possibili transazioni di stato per una VICC 69 Capitolo V: Il sistema RFId realizzato CAPITOLO V IL SISTEMA RFID REALIZZATO. Questa sezione descrive le fasi progettuali e l’implementazione del sistema di identificazione a Radio Frequenza, da me realizzato per il controllo accesso wireless dei dipendenti al luogo di lavoro. Sarà data una descrizione dettagliata riguardante: componente l’infrastruttura l’hardware RFId, da me utilizzato e le decisioni prese; le scelte software con relative motivazioni e setting iniziali; la configurazione del middleware (Oracle SensorEdge), strato necessario all’integrazione tra i componenti attivi del sistema RFId e i sistemi informativi; l’impiego e la messa a punto del database (Oracle), contenitore dei dati provenienti dalla tecnologia RFId e motore dell’applicazione informatica; funzioni e procedure da me scritte in linguaggio PL/SQL che permettono l’automazione del processo (registrazione dipendente, orario ingresso/uscita, intervallo temporale di permanenza, …); l’interfaccia web, da me implementata, per la visualizzazione e il controllo dei dati. 70 Capitolo V: Il sistema RFId realizzato 5.1 HARDWARE L’infrastruttura RFId, da me utilizzata per l’implementazione del sistema di controllo accessi, è composta dai seguenti quattro elementi fondamentali: 1. Transponders: tags (o etichette), formate da un chip, un’antenna e una memoria. Esse contengono un identificativo e trasmettono dati in modalità wireless, mediante il principio dell’accopiamento induttivo (vedi capitolo 2). 2. RFId controllers: comunica via onde radio con il transponder e passa i dati ad un computer mediante interfaccia seriale. 3. Computer ospitante il middleware, Oracle Sensor Edge Server che raccoglie, filtra, discrimina le informazioni lette dal ricetrasmettitore (reader) RFId per poi memorizzarle all’interno di un database. 4. Computer ospitante il database relazionale, Oracle DataBase Server 10g. PC1 1. Smart label 2. RFId controller 3. Middleware PC2 4. Database e applicativi Figura 5.1. Infrastruttura RFId 5.1.1 RFID CONTROLLERS Elemento principe dell’intero sistema è il lettore RFId: esso permette di interrogare le vicinity cards (smart labels), dettagliatamente descritte nella prossima sezione, e leggere le informazioni memorizzate nella loro memoria EEPROM (in particolare l’UID). Per il mio sistema, ho utilizzato il lettore, fornitomi dalla J-NET S.p.A., HF-0405-232-1, fabbricato dall’Escort Memory System, una delle principali aziende produttrici di dispositivi RFId. Esso lavora ad accoppiamento magnetico nella banda HF con frequenza portante pari a 13,56MHz. Le sue principali caratteristiche sono le seguenti: • Elevate performance, basso costo. • Dimensioni controller: approssimativamente 40mm x 50mm, con antenna integrata di dimensioni 36mm x 36mm. 71 Capitolo V: Il sistema RFId realizzato • Supporto per molteplici protocolli di comunicazione che sfruttano l’interfaccia radio e l’interfaccia cablata seriale. • Memoria flash per update del firmware. • Programmabile a livello software • Possiede otto LED che indicano: lo stato dell’alimentazione, l’attività della porta di comunicazione seriale, l’attività a Radio Frequenza, lo stato del controller, diagnosi dei malfunzionamenti con relativi codici di errore. • Scrive/legge transponder RFId passivi compatibili con gli standard ISO 14443 A/B e ISO 15693, la distanza di lettura varia dai 90mm per i tag ISO 15693 e i 50mm per i tag ISO 15693. • Scrive/legge tag delle serie LRP e HMS prodotte dalla Escort Memory System. • Possiede un connettore esterno a 8-pin seriale RS232, massima lunghezza cavo 15m. Figura 5.2. HF passive RFId controller: Escort Memory System HF-0405-232-01 Figura 5.3. Dimensioni controller 72 Capitolo V: Il sistema RFId realizzato Come precedentemente detto, l’antenna usata per comunicare con i tags RFId è integrata e la presenza di materiali conduttivi (metallo) degrada di molto le sue performance, per questo motivo il lettore deve essere installato in maniera tale che ognuna delle sue facce sia ad una distanza minima da interfacce metalliche pari a 45mm, problema questo che deve essere tenuto in conto se si vuole usare il controller per il tracciamento degli oggetti in fase di produzione e trasporto. Le distanze di lettura dell’antenna sono illustrate nelle seguenti immagini: Tipico range di lettura: vista frontale Tipico range di lettura: vista laterale Figura 5.4. Range di lettura HF-0405-232-01 Per poter funzionare, il controller RFId richiede la seguente alimentazione: 10~30VDC, 3.6W (150mA @ 24VDC) e prima di poter inviare comandi RFId deve essere collegato ad un computer (detto, in questo caso, host) attraverso un’interfaccia seriale che permetta lo scambio dell’informazione host/reader. Figura 5.5. Connessione Seriale 73 Capitolo V: Il sistema RFId realizzato Parametri porta COM Baud Data bits Stop bit Parity Handshaking Setting di default 9600 8 1 Nessuna Nessuna Figura 5.6. Parametri porta di comunicazione host/reader 5.1.2 TRANSPONDER RFID ISO/IEC 15693 Tra la moltitudine di transponder compatibili con il controller RFId descritto nella precedente sezione, per la realizzazione delle tessere badge da fornire ad ogni impiegato, ho utilizzato le “Philips Semiconductors Smart Labels ISO 15693”. Figura 5.7. Philips Semiconductor Smart Label ISO 15693 Le caratteristiche tecniche di tali tag sono le seguenti: • I CODE SLI ISO 15693: o trasmissione dati senza contatto e senza batteria (transponder passivo); o distanza operativa massima: 1,5 metri; o velocità di trasferimento dati massima: 53 kbits/s; o integrità dati: 16 bit Cyclic Redundance Code (CRC); o distanza di scrittura pari a quella di lettura; o possibilità di lettura simultanea di più tags (anticollisione). • Memoria (EEPROM): o 896 bits per i dati utenti, organizzati in 28 blocchi da 4 byte ognuno; 74 Capitolo V: Il sistema RFId realizzato o tempo di retenzione dati: 10 anni; o resistenza alle scritture: 10000 cicli. • Sicurezza: o identificatore univoco per ogni dispositivo, che non può essere alterato. Esso è strutturato nel seguente modo: Figura 5.8. UID Philips Semiconductors Smart Label o protezione dalla scrittura per ogni singolo blocco di memoria. Per la realizzazione delle tessere badge si sarebbero potute usare le proximity card che seguono lo standard ISO/IEC 14443. Figura 5.9. Proximity Card ISO 14443 Queste, essendo pensate per applicazioni quali borsellino elettronico, biglietteria per trasporti, sistemi di pagamento, ecc…, presentano caratteristiche di sicurezza elevate relativamente all’hardware in esse presenti. Esse, infatti, permettono di utilizzare meccanismi di autenticazione per l’attivazione del chip interno e di crittografare i dati scambiati tra transponder e controller, tuttavia il loro costo è di pressappoco dieci volte superiore rispetto a quello delle vicinity cards su descritte, il cui comune utilizzo è quello di identificazione oggetti (in gergo, Item Level Tagging). Le caratteristiche principali delle Vicinity Card (ISO 15693), che mi hanno persuaso a preferirle alle Proximity Card per la realizzazione del sistema da me realizzato, sono le seguenti: 1. costo di gran lunga inferiore. 75 Capitolo V: Il sistema RFId realizzato 2. Distanza di lettura maggiore: tale peculiarità risulta indispensabile per un sistema di controllo accessi (persone, ma anche oggetti) su larga scala, in cui si deve poter avere la possibilità di effettuare letture simultanee. In effetti, la capacità di implementare tale caratteristica è direttamente legata alla distanza di lettura: maggiore è il range operativo, più numerosi sono i tags che possono comunicare con il reader contemporaneamente. 3. Maggiore velocità di trasferimento dati a parità di distanza reader – tag. 4. Possibilità di utilizzare i badge senza doverli estrarre dalla tasca, dal portafogli o dalla borsa. Per quanto riguarda le problematiche legate alla sicurezza e soprattutto alla privacy di ogni dipendente, ho deciso di lasciare vuoti gli 868 bits di memoria EEPROM riscrivibile dedicati ai dati utenti, invece di memorizzarvi le informazioni di ogni impiegato perché queste sono trasferite in chiaro nella comunicazione reader – tag. In questo modo l’unico dato intercettabile da un mal intenzionato è l’identificatore univoco (UID) che in effetti, nel mio sistema, rappresenta l’unica informazione che la smart label ritorna, sfruttando il link a Radio Frequenza, ad un interrogazione del controller. L’associazione tra UID e dati anagrafici del dipendente possessore della tessera badge è svolta all’interno del database (come sarà illustrato nelle sezioni che seguono), in cui possono essere implementati i più svariati metodi di autenticazione e crittografia. Grazie a tale strategia, inoltre, la ri-utilizzabilità della singola tessera ne trae beneficio: qualora si volesse infatti concedere un badge associato ad un vecchio impiegato ad uno nuovo, basta modificare all’interno del database l’associazione UID – anagrafica dipendente; operazione, questa, facilmente conseguibile mediante l’interfaccia grafica web da me implementata (descritta nell’ultimo paragrafo di questo capitolo). Utilizzando invece le carte conformi allo standard ISO 14443, una tale procedura richiede la sovrascrizione fisica dei dati utenti nella memoria EEPROM del transponder, intervento che richiede una certa capacità tecnica e realizzabile soltanto mediante l’utilizzo di hardware e software opportuni. Pur considerando i vantaggi su esposti, l’utilizzo delle “Philips Semiconductors Smart Labels ISO 15693” come tessere badge potrebbe risultare ostacolato dal materiale e dalla relativa robustezza con cui tali etichette sono fabbricate. Infatti, essendo pensate per l’identificazione degli oggetti esse sono realizzate su semplice carta adesiva in maniera da facilitarne l’apposizione sulle confezioni dei prodotti e per limitarne il costo. Al fine, quindi, di “trasformare” tali etichette intelligenti in tessere a forma di carta di credito, ho pensato di applicare uno strato di cartoncino inferiore e uno superiore alla smart label e poi racchiudere il tutto in un involucro di plastica. 76 Capitolo V: Il sistema RFId realizzato Gli strati in cartoncino permettono di stampare qualsiasi cosa sulle tessere, in maniera tale da personalizzare le cards, di apporvi sopra un logo e le informazioni riguardanti l’etichetta e l’azienda (datrice di lavoro). L’involucro di plastica conferisce maggiore robustezza fisica al badge contrastando gli effetti di deterioramento causabili dal fatto che tali tessere devono essere maneggiate più volte al giorno, invece di essere apposte su una confezione rigida una volta per tutte (utilizzo per il quale sono realmente progettate). Figura 5.10. Tramutare la smart label in smart card L’operazione di adattare l’etichetta per formare la tessera badge è stata svolta in una comune copisteria e la card risultante è illustrata nella seguente figura: Figura 5.11. Tessera badge Infine è da precisare che il processo di plastificazione, avvenuto a caldo, non ha influenzato il comportamento della label, visto che la Philips Semiconductors garantisce che il transponder continui a funzionare in maniera nominale anche se sottoposto ad temperature maggiori di 50 °C. 77 Capitolo V: Il sistema RFId realizzato 5.1.3 PERSONAL COMPUTERS Data la necessità (v. parte seguente) di utilizzare due programmi della Oracle, che richiedono elevate prestazioni computazionali, ho deciso, di utilizzare due computer dalle caratteristiche identiche: • Processore: Pentium D 2.66 GHz • Ram: 1024 MByte • Hardisk: 150 GByte In definitiva l’infrastruttura hardware completa, necessaria per l’implementazione del mio sistema di controllo accessi, mediante tecnologia RFId, è illustrata nella seguente figura: Figura 5.12. Infrastruttura hardware 5.2 SOFTWARE UTILIZZATO: SCELTE PROGETTUALI. I sistemi RFID permettono l’automatizzazione dei processi di identificazione e di trasmissione dati. I vantaggi derivanti dall’adozione di una tecnologia sensor based, come l’RFId, in un qualsiasi processo di gestione automatica, possono divenire enormi a patto che si abbia la capacità di osservare, memorizzare, coordinare e manipolare i dati provenienti dai sensori. Per soddisfare tali necessità ho usato il middle tier component Oracle Sensor Edge Server. Esso è un componente del software Oracle Application Server, per questo motivo richiede, per essere 78 Capitolo V: Il sistema RFId realizzato installato su un PC, almeno il software di gestione dell’Application Server e in particolare dell’OC4J (Oracle Container for Java). Inoltre l’Oracle Application Server contiene il componente Oracle HTTP Server necessario per raggiungere l’Oracle Database Server 10g via HTTP. Tale tipologia di collegamento al database è indispensabile per poter utilizzare l’Oracle Application Express, mediante il quale ho realizzato una semplice ed intuitiva interfaccia grafica per permettere ad un utente privilegiato di gestire semplicemente il sistema mediante Web Browser e quindi da un qualsiasi PC, a condizione che abbia le credenziali necessarie per farlo. In particolare, mediante l’interfaccia grafica attuale: • si può, ovviamente, osservare e modificare i dati anagrafici di ogni dipendente; • si è in grado di esaminare lo stato di un impiegato: o assente/presente, o orari ingresso/uscita, o intervalli temporali di permanenza, o numero di ore lavorative quotidiane; • nel caso in cui si debba associare un badge ad un nuovo dipendente o ad un visitatore, si ha la possibilità di registrare i relativi nuovi dati anagrafici, • si può rimuovere l’associazione UID – dati anagrafici e collegare l’UID a nuovi dati anagrafici. L’esigenza di archiviare in maniera affidabile i dati provenienti dal lettore RFId è rispettata dal database di decima generazione della Oracle, società leader nel mercato dell’ Information and Communication Technology. Ho scelto di usare un computer dedicato (PC1) per tale software con sistema operativo Linux (CentOS 4.6, open source che nasce dai sorgenti della distribuzione licenziata Red Hat 4) in maniera tale da migliorare la robustezza del sistema e per poter amministrare il database (e la macchina su cui risiede), componente critico dell’intera infrastruttura, anche in modalità remota, in piena sicurezza (in realtà, sicurezza demandata al Secure Shell Protocol). Inoltre in questo modo si ottengono buone performances in termini di velocità di esecuzione. Il database può, quindi, risiedere anche in una sede dislocata. La connessione ad esso è implementabile grazie al layer di sessione Oracle Net Fundation Layer. 79 Capitolo V: Il sistema RFId realizzato Figura 5.13. Oracle Net Foundation Layer Il processo che permette al database server di essere raggiunto è detto listener: Figura 5.14. Oracle DataBase Listener In particolare, per le esigenze del mio progetto ho deciso di implementare un listener che fornisse un servizio dedicato (e non condiviso) di collegamento al database, per cercare di raggiungere un certo grado di trasparenza, sia a livello concettuale che implementativo. Figura 5.15. Procedura collegamento al database In particolare il file di configurazione che realizza la configurazione su esposta è il seguente: 80 Capitolo V: Il sistema RFId realizzato Figura 5.16. LISTENER.ORA Affinché si abbia la comunicazione client/server è necessario che anche la macchina client abbia i requisiti necessari e che si sia stabilito a priori un metodo per la risoluzione del nome del database (più precisamente del servizio di database, specificato nel listener) . Oracle Net Fundation Layer supporta vari metodi di “naming”: • Easy Connect Naming • Local Naming • Directory Naming • External Naming Nel caso particolare del mio progetto, ho scelto il Local Naming: esso richiede che la macchina client abbia opportunamente configurato il Trasparent Network Substarte (componente l’ONFLayer), ciò è facilmente implementabile specificando in un file di configurazione il nome e la locazione (“ip_address:port”) del database server all’interno della rete. 81 Capitolo V: Il sistema RFId realizzato Figura 5.17. TNSNAMES.ORA Il compito di collegare il mondo RFId a quello informatico e più precisamente ad un database è svolto dall’Oracle Sensor Edge Server: esso svolge, cioè, il ruolo principale di collegamento readerhost. Per il link al database, sfrutta, il driver java JDBC. Figura 5.18. JDBC Driver: pila protocollare Per interfacciarsi, dall’altra parte, con la tecnologia RFId utilizza estensioni (drivers) scritte nel linguaggio Java. La Oracle distribuisce drivers per vari hardware RFId e barcode di diversi vendor, ma non per la Electronic Memory System, produttore del reader da me utilizzato. Dunque, per la comunicazione reader-host, che fisicamente sfrutta un collegamento seriale, ho utilizzato un driver scritto da terzi. A causa della presenza di una Dynamic Link Library necessaria al funzionamento del driver, ho installato l’Oracle Sensor Edge Server (PC2) su sistema operativo Microsoft Windows XP. 82 Capitolo V: Il sistema RFId realizzato Infine, come precedentemente descritto, per la realizzazione dell’applicazione grafica ho usato un altro software della Oracle, l’Application Express. Esso si collega al database mediante il protocollo di livello di presentazione HTTP e richiede la configurazione dell’Oracle XML database server, svolta fortunatamente in automatico, in fase di installazione del software server del database. Esso, per inviare comandi al database mediante web browser sfrutta un modulo dell’ Oracle HTTP Server (licenza Apache) detto mod_plsql. Tale modulo è configurabile mediante un file di testo. Figura 5.19. Oracle XML database L’Oracle Application Express, grazie ad una interfaccia user-friendly, si è rivelato subito una valida alternativa all’utilizzo di un linguaggio di scripting quale il PHP. In definitiva l’architettura software da me interamente dispiegata, necessaria alla raccolta dei dati provenienti dal lettore RFId, al loro processamento e alla relativa pubblicazione su Web browser, è descritta nel seguente schema a blocchi: Figura 5.20. Infrastruttura software 83 Capitolo V: Il sistema RFId realizzato 5.2 IL MIDDLEWARE I sistemi RFId automatizzano i processi di identificazione degli oggetti, degli animali, delle persone; questa caratteristica è estremamente utile per poter migliorare le prestazioni dei processi gestiti. Tuttavia, nell’adottare tale tecnologia, si presentano alcuni problemi, quali ad esempio: • necessità di coordinare le informazioni acquisite in maniera automatica; • il passaggio multiplo di un transponder attraverso un varco controllato da un’antenna o da un reader può aggiungere contenuto informativo al processo gestito oppure può essere ridondante, inutile o complicato da gestire; • le singole transazione non sono gestibili da un sistema Enterprise Resource Planning (ERP) perché non sono definite regole di distribuzione (dispatching) dei dati ai moduli applicativi che devono utilizzarli; • interoperabilità, gestione e interconnessione di diversi dispositivi RFId attivi. Per queste ragioni è necessario utilizzare un’applicazione software che permetta di interfacciare il mondo fisico dell’RFId e il mondo dei processi ERP con facilità e flessibilità. Il software che rappresenta lo strato di integrazione tra i componenti attivi del sistema RFId (transponder, lettori mobili, varchi, lettori fissi, stampanti, …) e i sistemi informativi, viene comunemente definito middleware RFId. Figura 5.21. Architettura funzionale sistema RFId L’adozione di un’infrastruttura RFId consistente comporta la generazione di una grossa mole di dati ed è compito del middleware RFId costituire il primo e fondamentale filtro nei confronti degli applicativi del sistema informativo. Conseguentemente, il middleware deve essere scalabile secondo le esigenze di espansione dell’infrastruttura permettendo il bilanciamento del carico. 84 Capitolo V: Il sistema RFId realizzato Compito del middleware è anche quello di monitorare e gestire i diversi componenti tecnologici e le strutture architetturali utilizzate nella realizzazione di un’infrastrutture RFId, allo scopo di garantire l’affidabilità complessiva del sistema complessivo. In generale un’implementazione del middleware deve garantire: • il supporto dello standard dell’interfaccia di comunicazione con il reader; • la possibilità di richiamare tutti i comandi definiti nel protocollo di comunicazione del reader; • l’eventualità di utilizzare estensioni di diversi vendor di controller RFId; • il supporto di quanti più messaggi possibili. 5.2.1 IL PARADIGMA DI COMUNICAZIONE PUBLISH/SUBSCRIBE Nel comune paradigma Server/Client, la comunicazione avviene seguendo il modello di interazione Request/Replay (Pull) . Figura 5.22. Paradigma di comunicazione Server/Client Tale modalità di comunicazione sconvenientemente si presta alla gestione della grande mole di dati generata da un sistema RFId poiché: • l’interazione è limitata a due entità (one-to-one); • la comunicazione avviene in modalità pull-based; • le due entità devono essere in grado di riconoscersi l’un l’altra; • la comunicazione è intrinsecamente sincrona. Il paradigma di comunicazione publish/subscrive prevede: • più publishers (produttori di informazione) che producono dati in forma di events; • più subscribers (consumatori di informazione) che dichiarano i loro intersse a ricevere solo particolari dati, mediante le subscriptions; • ogni subscription è un filtro sull’insieme degli events pubblicati; • un mediator (Event Notification Service ENS) notifica ad ogni subscriber tutti gli eventi che combaciano con almeno una delle sue subscriptions. 85 Capitolo V: Il sistema RFId realizzato Figura 5.23. Paradigma Publish/Subscriber • Ogni event rappresenta informazione definita da una struttura: l’event schema. • L’event schema, fisso e definito a priori, stabilisce un insieme di attributi ognuno costituito da un nome e un tipo. Nome attributo Facoltà Corso Accademico Durata Tipo di valore Stringa Ingegneria delle telecomunicazioni Stringa Qualsiasi Numero Intero Tra 0 e 100 ore Orientamento Stringa Docente Stringa Valori permessi Aerospazio, Economico-Organizzativo, Elaborazione del Segnale e Multimedialità, Infrastrutture di rete, Ingegneria del suono, Tecnologie Elettromagnetiche, Telematica, Telerilevamento, Trasmissione dell’Informazione Qualsiasi Figura 7 Esempio di Event Schema • Dato un event schema, un event è una collezione di valori, uno per ogni attributo stabilito dallo schema. Nome attributo Valore Facoltà Ingegneria delle Telecomunicazioni Corso Accademico Comunicazioni mobili II Durata 50 ore Orientamento Trasmissione dell’Informazione Docente Roberto Cusani Figura 5.25. Esempio di Event • Le subscriptions possono essere definite, in maniera generica, come vincoli espressi sull’event schema. 86 Capitolo V: Il sistema RFId realizzato Nome attributo Valore Facoltà Ingegneria delle Telecomunicazioni Corso Accademico Qualsiasi Durata Qualsiasi Orientamento Qualsiasi Docente Roberto Cusani Figura 5.26. Esempio di Subscription Nell’esempio mostrato nelle tre figure, il mediator notificherà la presenza del corso “Comunicazioni mobili II” al subscriber che ha manifestato il suo interesse a ricevere informazioni riguardanti qualsiasi corso tenuto dal professore Roberto Cubani nella facoltà di Ingegneria delle Telecomunicazioni (attraverso la subscription illustrata nella figura 2). Il paradigma di comunicazione publish/subscriver, fondamento di ogni sistema middleware, risulta essere in grado di superare tutte le sfide proposte dal mondo fisico dei sistemi RFId e più in generale di un qualsiasi sistema distribuito. Esso, infatti, permette: • Comunicazione many to many: le interazioni possono avvenire in un ambiente in cui vari produttori e consumatori di informazione possono comunicare contemporaneamente. • Space decoupling: le parti che devono interagire tra loro non hanno la necessità di conoscersi reciprocamente, poiché l’instradamento dell’informazione si basa sul contenuto dell’informazione stessa. • Time decoupling: le parti che comunicano tra loro non sono costrette ad essere attive nello stesso tempo poiché lo scambio di informazioni avviene attraverso l’intervento di un mediatore. In altre parole non vi è alcun vincolo di sincronizzazione tra le due parti. • Push/Pull interactions: sono permessi e implementabili entrambi i metodi. 5.2.2 ORACLE SENSOR EDGE SERVER L’Oracle Sensor Edge Server permette la raccolta di eventi generati da un qualsiasi sistema sensorbased quali lettori e stampanti RFId. Il suo compito principale è quello di collezionare i dati e inserirli in event message normalizzati, per poi spedirli al database o ad una qualsiasi applicazione. Esso inoltre permette di controllare dispositivi quali light stack, sound system e message boards. Sfruttando il paradigma di comunicazione publish/subscriber, gestisce i flussi di dati provenienti da uno o più dispositivi, li raggruppa logicamente, permettendo di associare più apparati ad un certo gruppo e di filtrare i dati ridondanti o non necessari. 87 Capitolo V: Il sistema RFId realizzato Figura 5.27. Architettura Oracle Application Server In dettaglio, le caratteristiche che rendono l’Oracle Sensor Edge lo strato software indispensabile ad un’infrastruttura RFId per la realizzazione del collegamento tra il mondo fisico dello scambio dati a radiofrequenza con quello informatico della gestione delle informazioni sono le seguenti: 1. Sensor data collection: architettura driver estensibile, scritta e personalizzabile in linguaggio Java, che permette l’integrazione e la collezione dei dati provenienti da qualsiasi sorgente a radiofrequenza che rispetti uno dei standard descritti nel Capitolo 4. Figura 5.28. Oracle Sensor Edge: Architettura Java 88 Capitolo V: Il sistema RFId realizzato 2. Sensor data filtering: il flusso dei dati proveniente dai dispositvi RFId è caratterizzato da un vasto insieme di diversi formati e solitamente contiene dati inutili; prima che i dati siano passati alle applicazioni informatiche, il Sensor Edge svolge funzioni di pulizia e filtraggio dei dati provenienti da un singolo dispositivo, da un gruppo di diversi dispositivi riuniti logicamente o da diversi gruppi, ognuno composto da più apparati. 3. Sensor data dispatching: i dispatchers sono gli elementi software componenti il Sensor Edge Server che permettono la bi-direzionalità della comunicazione tra controllers e applicazioni. Come per i driver, l’Oracle Sensor Edge permette di implementare, nel linguaggio Java, dispatcher personalizzati (vedi figura), esso inoltre ne fornisce diversi tipi: o Strems: rappresenta il più robusto e flessibile metodo per l’inoltro dei dati, inoltre permette di definire subscriptions personalizzate in maniera tale da attuare un metodo di instradamento dei dati basto sull’informazione che essi trasportano e non su indirizzi fisici dei nodi componenti l’infrastruttura. o Java Messaging Services (JMS): è un insieme di Application Programming Interface (API) che consente alle applicazioni Java residenti in diverse macchine presenti in una rete di scambiarsi messaggi tra loro. o Web services: sistema software progettato per supportare l'interoperabilità tra diversi elaboratori su di una medesima rete; esso sfruttando il classico paradigma di comunicazione Client/Server, che, come si è visto nella precedente sezione, non risulta efficacemente adeguato nella gestione dell’enorme mole di dati generata da un controller RFId; o HTTP post: protocollo usato come principale sistema per la trasmissione di informazioni sul web, basato anche esso sul modello di comunicazione richiesta/risposta (Pull). o EPC Phisical Markup Language: è un linguaggio di markup basato su XML utilizzato per descrivere oggetti fisici nelle reti. In particolare, questo linguaggio è utilizzato dagli standard RFId, definiti dall’EPCglobal, ma non dallo standard ISO/IEC 15693 di cui si avvale il controller e i transponder da me utilizzati per la realizzazione del sistema di controllo accessi. 4. Sensor data archiving: Oracle Sensor Edge Server sfrutta l’Oracle Database 10g per l’archiviazione dei dati. Quindi, come si può dedurre dalla descrizione su fatta delle caratteristiche specifiche dello strato middleware di cui mi sono servito, il processamento dell’informazione avviene in quattro fasi conseguenti. 89 Capitolo V: Il sistema RFId realizzato Il driver è il primo responsabile della normalizzazione dei dati in una struttura ben definita (event schema, vedi sezione precedente). Purtroppo il driver da me utilizzato, non certificato dalla Oracle, non eccelle in tale compito, infatti l’unica informazione che passa al Sensor Edge Server è il numero identificativo (UID) letto dal reader RFID impresso nella memoria del transponder, quando invece dovrebbe completare quella informazione con campi quali: tipo di dato (evento di sistema, osservazione RFid, scrittura…), nome dispositivo e tra gli altri la temporizzazione. Questa ultima informazione risulta indispensabile, in prima analisi, per l’eliminazione dei dati ridondanti ricevuti dalla lettura da parte del reader di un unico tag. Infatti la comunicazione tra il reader EMS-HF0402-232-1 e una Philips Smart Label (dispositivi descritti nel paragrafo 5.1), in condizioni ottimali, avviene con un bit rate pari a 53 kbits/s. In altre parole, il controller è in grado di leggere l’UID memorizzato nella memoria di un transponder circa 828 volte in un secondo (53 kbits/s / 64 bits). Avvicinando, quindi, il tag al lettore per pochi secondi si riceve la stessa informazione per un numero troppo elevato di volte. Per superare tale inconveniente, la strategia più ovvia è quella di configurare il controller in maniera tale che esso emetta il campo a radiofrequenza per un intervallo temporale pari al solo tempo necessario a leggere un’unica volta l’UID della tessera che interroga. Tuttavia, per evidenti motivi di automatizzazione, il reader deve operare in modalità “lettura continua”, in effetti non si possono conoscere a priori gli istanti in cui i dipendenti hanno bisogno di registrare il loro orario di ingresso o di uscita. Dunque, partendo dal presupposto che il controller deve essere configurato in maniera tale da emettere il campo a radiofrequenze continuamente, la problematica delle letture in esubero potrebbe essere risolta nel secondo stadio di processamento dati: sensor data filtering. In effetti l’Oracle Sensor Edge mette a disposizione diversi filtri a livello di dispositivo tra i quali il cosiddetto “Pass Filter”. Esso permette di definire il periodo di lettura del reader, in modo da modificare il reader cycle in funzione delle necessità dell’applicazione che si vuole realizzare. Per poter adempiere a tale compito, però, il filtro necessita di un meccanismo di temporizzazione dell’informazione, ancora non presente in tale fase di trattamento dati della mia infrastruttura a causa del non ideale funzionamento del driver. Risulta a questo punto evidente la necessità di utilizzare lo strems dispatcher nella terza fase di elaborazione dati. Esso, infatti, oltre ad essere il più robusto e flessibile metodo, permette la creazione di un flusso (stream) dati tra il middleware e il database; esso, inoltre, rappresenta l’unica alternativa per definire ulteriori regole di filtraggio per i dati provenienti dal controller RFId. Per poter usufruire a pieno di tutti i vantaggi forniti dallo stream dispatcher è necessario configurare opportunamente l’Oracle Sensor Edge e in particolare è indispensabile creare una connessione dati 90 Capitolo V: Il sistema RFId realizzato tra esso e lo schema Edge: ciò può essere realizzato mediante lo script fornito dalla Oracle insieme al Sensor Edge Server “edg_create_stream.sql” e configurando i parametri necessari alla connessione, in particolare di devono inserire le informazioni necessarie al driver Java DataBase Connector (JDBC): Parametro Descrizione JDBC URL Stringa di connesione al database in cui risiede la staging area. USER Nome utente da usare per connettersi allo schema di database Password Password associata al nome utente Java Naming & API servizio di directory che consente ai clients di trovare dati e oggetti Directory Interface attraverso un nome, indipendentemente dal sistema operativo. La locazione all’interno della macchina middleware delle classi Java Data Source Class necessarie alla gestione del flusso Figura 5.29. Paramtri per la creazione del flusso dati Mediante l’adozione dello stream dispatcher, contrariamente a quanto avviene con gli altri tipi di dispatcher, i dati non vengono inoltrati direttamente ad un end-point, ma viene creato un flusso di dati che vengono depositati in una staging area (o coda interna) all’interno del database. In questo modo è l’Event layer del database a definire cosa un evento è e quando esso è stato generato; in poche parole, è un processo risiedente nel database a normalizzare i dati e a conferire ad essi una struttura ben definita (event schema) formata da un insieme di attributi e completa delle informazioni necessarie, sopperendo, in parte, alle inadeguatezze di un qualsiasi driver. EDG_EVENT Nome attributo Tipo di valore TYPE Varchar SUBTYPE ID SITENAME DEVICENAME DATA TIME CORRELATIONID SOURCENAME Varchar Timestamp Varchar Varchar Varchar Timestamp Varchar Varchar Valore permesso 0 - 99: messaggi di di stema 100 - 199: generiche istruzioni per i dispositivi 200 - 299: osservazioni dei dispositivi 500 – 599: messaggi personalizzabili 1 – 10 Any Any Any Timestamp Timestamp Varchar Any Figura 5.30. Event schema dell'evento: osservazione RFId 91 Capitolo V: Il sistema RFId realizzato E’ comunque necessario tenere in mente che tale operazione, anche se svolta all’interno della macchina su cui risiede il database, è possibile grazie all’utilizzo dell’Oracle Sensor Edge che mette a disposizione tutti gli strumenti software necessari alla creazione e gestione del flusso dati. Inoltre, come precedentemente accennato, utilizzando tale tipologia di inoltro dei dati, si possono definire regole supplementari per il loro instradamento: ogni regola ha una precisa conseguente azione che viene svolta solo se la condizione è soddisfatta. In pratica, la regola può essere espressa mediante un vincolo su di un attributo dell’evento oppure sul risultato di una funzione (PL/SQL) applicata allo stesso. L’azione conseguente è, invece, la chiamata di una specifica procedura (PL/SQL) mediante la quale si definiscono le operazioni da intraprendere per l’evento (che soddisfa la condizione), con lo scopo della consegna dello stesso ad un end-point, che può ovviamente essere anche un archivio all’interno del database. Lo Stream Dispatcher è stato lo strumento software indispensabile all’implementazione della mia applicazione. Esso, infatti permette, in pratica, di programmare direttamente all’interno del database, sfruttando il potente e flessibile linguaggio Procedural Language / Structured Query Language, invece di utilizzare il database semplicemente come archivio di dati su cui poi realizzare l’applicazione sfruttando, ad esempio il linguaggio Java. In linea di principio, i compiti svolti dallo Stream Dispatcher sono: prelevare i messaggi dalla staging area, conferire loro una determinata struttura (event schema) e controllare se essi soddisfano una delle condizioni definite a priori (sottoscrizioni: vincoli definiti sugli attributi dell’event schema). Figura 5.31. Stream Dispatcher: normalizzazione event. 92 Capitolo V: Il sistema RFId realizzato 5.2 IL DATABASE Al fine di consentire l’archiviazione, il recupero, la gestione, la manipolazione degli eventi generati dal controller RFId, ho utilizzato il database di decima generazione prodotto dalla Oracle. Più precisamente l’Oracle Database 10g costituisce un DataBase Managment System (DBMS), esso racchiude un insieme assai vasto e complesso di componenti software che controllano l'organizzazione, la memorizzazione e il reperimento di collezioni di dati. In genere le basi di dati gestite da un DBMS devono poter essere: • Grandi : cioè di dimensioni molto maggiori della memoria centrale dei sistemi di calcolo utilizzati. • Persistenti : con un periodo di vita indipendente dalle singole esecuzioni dei programmi che le utilizzano. • Condivise : utilizzate da applicazioni diverse. Figura 5.32. DataBase Managment System Il DBMS è l’unico responsabile della gestione e dell’accesso alla base di dati, le sue caratteristiche principali sono: • Condivisione: o gestione centralizzata della base di dati; o condivisione dei dati da parte di applicazioni e utenti; o coordinamento opportuno degli accessi; o controllo della concorrenza; o riduzione della ridondanza; o elusione dai fenomeni di inconsistenza. • Persistenza: 93 Capitolo V: Il sistema RFId realizzato o l’organizzazione dei dati ed il loro ciclo di vita sono indipendenti da quelli delle applicazioni; o i valori assunti dei dati sono preservati anche oltre il termine dell’esecuzione delle applicazioni; o memorizzazione su dispositivi di memoria permanente (memoria secondaria). • Affidabilità: o la memorizzazione dei dati è garantita anche in presenza di guasti di dispositivo e di sistema. • Sicurezza: o controllo degli accessi e garanzia della riservatezza delle informazioni. • Efficienza: o capacità di utilizzare al meglio le risorse del sistema e di ottimizzare i tempi di risposta. Nel DBMS della Oracle da me utilizzato, la rappresentazione logica dei dati, indipendente dalla memorizzazione fisica, è basata sul modello relazionale: in questo modello i dati sono organizzati nella classica struttura a tabella. L'elemento costitutivo di una tabella è il record, un insieme di dati riguardanti un oggetto particolare, trattati come una singola entità. Ciascun record è definito poi da una serie di attributi: nella struttura dei database essi sono i cosiddetti campi. Uno dei grandi vantaggi del modello relazionale è che esso definisce un’ algebra, chiamata appunto "algebra relazionale". Tutte le manipolazioni possibili sulle relazioni sono ottenibili grazie alla combinazione di cinque soli operatori: RESTRICT, PROJECT, TIMES, UNION e MINUS. Per comodità sono stati definiti anche tre operatori addizionali che comunque possono essere ottenuti applicando i soli cinque operatori fondamentali: JOIN, INTERSECT e DIVIDE. Altra caratteristica fondamentale dei database relazionali è quella che essi possono essere gestiti e interrogati tramite un linguaggio che, pur presentando varianti da caso a caso, è divenuto pressocchè uno standard: l’SQL. Esso prevede una distinzione precisa tra la definizione di schemi, relazioni, attributi (Data Definition Language DDL) e l’aggiornamento, l’interrogazione dei dati (Data Manipulation Language). In un database relazionale, qualsiasi operazione sui dati può essere elaborata mediante una istruzione SQL. La Oracle ha esteso tale linguaggio per combinarne la sua facilità e flessibilità con le funzionalità procedurali tipiche di un linguaggio di programmazione strutturato (costrutti IFTHEN, WHILE, FOR, …). Esso supporta la dichiarazione di variabili, la definizione di particolari condizioni e la gestione delle eccezioni all’interno di cosidette units. Queste ultime possono essere 94 Capitolo V: Il sistema RFId realizzato funzioni o procedure che raggruppano un insieme di istruzioni SQL e sono memorizzate in maniera compilata all’interno di packages nel database. Come accennato nel paragrafo precedente, gli eventi prodotti dal controller RFId, dopo la fase preliminare di normalizzazione (illustrata nella figura 39), possono essere processati in diverse modalità e in maniera indipendente dallo stesso Oracle Sensor Edge Server (strato software che permette il collegamento reader-pc) e dai particolari dispositivi hardware. Lo strems dispatcher preleva gli events dalla staging area (residente all’interno del database) e controlla se tra le regole (o subscriptions) definite nel “Rules Evaluation Job ruleset” del middleware, ve ne sia una soddisfatta dall’event appena catturato. Ad ogni regola si può associare una particolare azione da intraprendere, essa può essere definita mediante una procedura scritta nel linguaggio PL/SQL. In condizioni operative normali, le subscriptions possono essere specificate solo come vincoli su uno o più attributi della struttura dell’evento: ad esempio, l’evento rappresenta un’osservazione RFId (event.type = 200, v. fig. 39)? Tuttavia, in questo modo, si possono definire solo condizioni elementari non sufficienti alla realizzazione di un applicativo complesso. Per questo motivo, ho scritto una funzione nel linguaggio PL/SQL che prende in input gli eventi strutturati e restituisce un valore numerico sul quale, poi, ho definito un insieme di subscriptions. A seconda di quale di queste venga soddisfatta, lo strem dispatcher instraderà l’evento all’ingresso di una specifica procedura. 5.5 AUTOMAZIONE PROCESSO CONTROLLO ACCESSI: FUNZIONE E PROCEDURE PL/SQL. Ricapitolando, quando una tessera badge contactless associata ad uno dei dipendenti e realizzata mediante una Philips Smart Label I-CODE (vedi sezione 5.1.2) è avvicinata al lettore RFId in maniera tale da entrare nel campo a radiofrequenza da esso emesso, il controller trasferisce alla tessera, mediante il principio dell’accoppiamento induttivo, l’energia necessaria alla sua attivazione. Inizia, così, la comunicazione tag-reader: in pratica la tessera risponde all’interrogazione del controller con il suo UID, l’unico dato effettivamente memorizzato (impresso in fase di fabbricazione e non modificabile) nella sua memoria. Tale operazione avviene con un rate massimo di 828 volte al secondo (vedi sezione …). Questa enorme mole di dati segue una preliminare fase di processamento all’interno della macchina ospitante il middleware (Oracle Sensor Edge Server), con cui il lettore è collegato fisicamente mediante interfaccia seriale RS-232. A questo punto gli eventi ancora non presentano una struttura ben definita (event schema); come precedentemente esposto, 95 Capitolo V: Il sistema RFId realizzato utilizzando come metodologia per l’instradamento dei dati lo stream dispatcher, il flusso di eventi, prima di essere consegnato ad un end-point, è trasferito in una coda interna al database. In questo modo è un processo residente nel database, chiamato Oracle stream capture, a catturare ad uno ad uno i singoli eventi e conferire loro una struttura definita a priori dall’Oracle Sensor Edge. In seguito gli eventi, finalmente normalizzati, vengono presi in consegna dal processo Oracle stream apply: esso passa l’evento in ingresso alla funzione ACCESS_CTL, da me scritta nel linguaggio PL/SQL, controlla l’output e verifica se quest’ultimo soddisfa una delle sottoscrizioni definite mediante l’utilizzo del package fornito dal Sensor Edge “EDG_UTL” (in particolare mediante la procedura “edg_utl.add_rule”) e a seconda di quale di queste venga soddisfatta inoltra l’evento in input ad una delle procedure PL/SQL da me implementate. A tale punto della trattazione dovrebbe risultare evidente il compito svolto da ogni singolo componente software da me utilizzato per la realizzazione della applicazione informatica per il controllo accessi e della relativa interfaccia grafica, illustrati nel seguente diagramma a blocchi: Figura 5.33. Infrastruttura software completa. E’ necessario evidenziare che i processi stream capture e stream apply sono presenti all’interno dello schema EDGE nel database perché ho scelto di utilizzare lo stream dispatcher, altrimenti il database si sarebbe comportato come semplice archivio di dati, in altre parole l’unico componente dello schema EDGE sarebbe stato il Sensor Data Archive. 96 Capitolo V: Il sistema RFId realizzato Come precedentemente esposto, il processo stream apply, passa ogni singolo evento, normalizzato dal processo stream capture, alla funzione PL/SQL ACCESS_CTL da me scritta: Figura 5.34. Funzione PL/SQL input/output La funzione si serve di una tabella, chiamata IMPIEGATI, memorizzata nel Sensor Data Archive (vedi figura …) che contiene l’associazione tra l’UID memorizzato nella tessere badge e le informazioni anagrafiche riguardanti l’impiegato possessore della tessera e lo stato (presente/assente) dello stesso dipendente. Attributo Descrizione Imp_key Nome Cognome Chiave Nome Cognome primaria impiegato impiegato UID Identificativo tessera associata al dipendente Settore Stato Settore Presente / lavorativo Assente Figura 5.35. Tabella IMPIEGATI La mansione della funzione è quello di classificare l’evento di osservazione RFId, in particolare essa ha il compito di capire se l’UID letto dal controller sia: 1. associato ad un impiegato, il cui stato è impostato su “assente” cioè che sta entrando nel luogo di lavoro, in tal caso essa ritorna il valore 1; 2. associato ad un impiegato, il cui stato è impostato su “presente” cioè che sta uscendo dal luogo di lavoro, in tal caso essa ritorna il valore 0; 3. corrispondente ad una tessera badge ancora non associata ad alcun dipendente, in questo caso essa ritorna il valore 2; Il diagramma a blocchi di questa funzione è il seguente: 97 Capitolo V: Il sistema RFId realizzato Figura 5.36. Funzione ACCESS_CTL In base all’output di tale funzione, mediante lo stream dispatcher, l’evento verrà inoltrato in ingresso ad una delle procedure PL/SQL come definito dalle seguenti subscriptions, definite a priori mediante opportuna configurazione dell’Oracle Sensor Edge Server (vedi sezione …): Sensor Data Stream Rules Name Condition Action Parameter INGRESSO edg_utl.access_ctl(:event.id) = ‘0’ call edg_utl.uscita USCITA edg_utl.access_ctl(:event.id) = ‘1’ call edg_utl.ingresso NEW_TAG_ID edg_utl.access_ctl(:event.id) = ‘2’ call edg_utl.tag_unknown QUOTIDIANO Call edg_utl.daybyday :event.id = ‘E00401000664c89b’ Figura 5.37. Subscriptions per l'inoltro degli eventi Le procedure INGRESSO e USCITA si servono, per archiviare l’orario di ingresso e di uscita di ogni singolo dipendente, oltre che della tabella IMPIEGATI anche della seguente INGRESSI/USCITE: P_KEY ID Orario ingresso Orario uscita Intervallo temporale di permanenza Figura 1.38. Tabella INGRESSI/USCITA 98 Capitolo V: Il sistema RFId realizzato In particolare se la funzione ACCESS_CTL classifica l’evento come un ingresso, cioè ritorna il valore 1, allora il processo stream apply chiamerà la procedura INGRESSO. Le operazioni svolte da quest’ultima sono le seguenti: 1. aggiornare lo stato dell’impiegato a cui è associato l’event.UID letto su “presente”, nella tabella IMPIEGATI; 2. inserisce l’event.UID e l’event.TIME rispettivamente nei campi UID e “orario di ingresso” della tabella INGRESSI/USCITE ; 3. calcola l’intervallo temporale tra l’event.TIME corrispondente all’orario di ingresso del particolare dipendente e l’orario di uscita dello stesso dipendente: a. se tale intervallo risulta essere inferiore ai dieci secondi, ri-aggiorna lo stato dell’impiegato su “assente” ed elimina il record appena scritto dalla tabella INGRESSI/USCITE. Il passo 3 è necessario, come sarà giustificato dopo la descrizione della procedura USCITA, per eliminare i dati ridondanti dovuti al fatto che un’unica azione di badge, in pratica può generare fino ad un massimo di 828 eventi al secondo (vedi sezione …). Lo schema a blocchi della procedura INGRESSO è il seguente: Figura 5.39. Procedura INGRESSO Se, d’altra parte, la funzione ACCESS_CTL ritorna il valore 0, cioè classifica l’evento come un uscita, allora il processo stream apply chiamerà la procedura USCITA. Le operazioni svolte da quest’ultima sono le seguenti: 1. aggiornare lo stato dell’impiegato a cui è associato l’event.UID letto su “assente”, nella tabella IMPIEGATI; 99 Capitolo V: Il sistema RFId realizzato 2. memorizzare l’event.TIME nel campo orario di uscita della tabella INGRESSI/USCITE nel record corrispondente all’impiegato a cui è associato l’event.UID; 3. calcolare l’intervallo temporale (orario uscita – orario ingresso) di permanenza dell’impiegato nel luogo lavorativo; 4. se tale intervallo risulta: a. maggiore di 10 secondi, allora la procedura memorizza quest’ultima informazione nel campo intervallo temporale della tabella INGRESSI/USCITE; b. minore di 10 secondi, allora la procedura ri-aggiorna lo stato dell’impiegato su “presente” e rimuove dalla tabella INGRSSI/USCITE l’orario di uscita. Il diagramma a blocchi di questa procedura è il seguente: Figura 5.40. Procedura USCITA Operazione molto importante che le due procedure svolgono è quella di eliminare i dati ridondanti dovute alla modalità operativa di funzionamento continuo e al reader cycle del controller RFId (vedi sezione …). Al fine di dare una spiegazione esaustiva della strategia di cui mi sono servito per riuscire a superare il problema delle letture in esubero mi servirò di un esempio. Consideriamo il caso in cui un impiegato stia entrando nel luogo di lavoro. Il suo stato memorizzato nella tabella IMPIEGATO (insieme alle sue informazioni anagrafiche e all’UID ad esso associato) è impostato su “assente”. Quando l’impiegato, al fine di registrare il suo orario di ingresso nel luogo di lavoro, immette la sua tessera badge nel campo a radio frequenza generato dal controller RFId, 100 Capitolo V: Il sistema RFId realizzato quest’ultimo interroga la smart label conferendole l’energia necessaria per rispondergli con l’UID impresso nella sua memoria. Visto che tale operazione può avvenire in un tempo minimo di circa 1,2 millisecondi è impensabile imporre al dipendente di tenere la tessera vicina al lettore RFId soltanto per un intervallo temporale così breve. Dunque all’atto di “badgiare” una sola volta consegue che il lettore passi al middleware un certo numero di eventi RFId tutti trasportanti lo stesso UID. Quando lo stream dispatcher (in particolare il processo stream capture) cattura il primo evento, lo stato dell’impiegato è impostato su “assente”, quindi quando il processo stream apply passa tale osservazione RFId alla funzione ACCESS_CTL, questa classifica l’evento come un ingresso; a ciò segue, dunque, la chiamata della procedura INGRESSO. Quest’ultima, come precedentemente descritto, aggiorna lo stato dell’impiegato impostandolo su “presente” e poi registra l’orario di ingresso e l’UID nella tabella IMPIEGATI. A questo punto l’evento seguente, generato però dalla stessa operazione da parte del dipendente che sta entrando, viene erroneamente classificato come un’uscita, perché lo stato è impostato su “presente” a causa della precedente osservazione RFId; quindi lo stream apply chiama la procedura USCITA che aggiorna lo stato dell’impiegato (su “assente”), memorizza il falso orario di uscita, calcola l’intervallo temporale di permanenza e svolge il seguente fondamentale controllo: • se l’intervallo di permanenza è minore di 10 secondi cancella il falso orario di uscita associato allo stesso UID dalla tabella INGRESSI/USCITE e modifica nuovamente lo stato dell’impiegato riportandolo su “presente”. In effetti in questo caso, l’impiegato sta entrando nel luogo di lavoro. • Se invece l’intervallo di permanenza supera i 10 secondi, vuol dire che i due eventi conseguenti non possono essere stati generati dalla stessa azione di “badge” dell’impiegato (a meno che il dipendente non tenga appositamente la tessera nel campo a radiofrequenza del lettore per più di dieci secondi, casualità facilmente evitabile). In questo caso, quindi, la procedura lascia invariato il campo “orario di uscita” dalla tabella INGRESSI/USCITE ed inoltre memorizza in questa l’intervallo temporale di permanenza precedentemente calcolato. D’altra parte quando un impiegato vuole registrare il suo orario di uscita dal luogo lavorativo, avvicinando il suo badge al lettore, lo stato ad esso associato, memorizzato nella tabella IMPIEGATI è impostato su “presente”. Dunque il primo evento di osservazione RFId, dovuto all’azione di badge da parte del dipendente, viene legittimamente classificato dalla funzione ACCESS_CTL come un’uscita, quindi la procedura USCITA chiamata dallo stream apply, va a modificare lo stato dell’impiegato su “assente” (oltre a svolgere le altre operazioni prima descritte). L’evento susseguente, generato però dalla stessa operazione dell’impiegato, viene classificato 101 Capitolo V: Il sistema RFId realizzato erroneamente come un ingresso, quindi esso viene passato alla procedura INGRESSO che modifica lo stato dell’impiegato (“presente”) e registra il falso orario di ingresso in un nuovo record della tabella INGRESSI/USCITA, a questo punto la procedura INGRESSO, in maniera analoga a quanto avviene nella procedura USCITA, elabora il seguente fondamentale controllo (passo 3 della su esposta descrizione): • Calcola l’intervallo temporale tra l’orario di ingresso appena registrato e l’ultimo orario di uscita associato allo stesso dipendente precedentemente memorizzato; o Se tale intervallo risulta essere minore di dieci secondi, vuol dire che la chiamata della procedura INGRESSO non è dovuta ad un reale ingresso del dipendente, ma dal fatto che la stessa operazione che l’impiegato svolge per registrare l’orario di uscita genera in realtà molteplici eventi RFId, i cui effetti devono essere ignorati dal sistema di controllo accessi. Per questo motivo, in tal caso, la procedura cancella dalla tabella INGRESSI/USCITE il record appena memorizzato e re-imposta lo stato dell’impiegato su “assente”. o Se d’altronde tale intervallo risulta superiore ai dieci secondi vuol dire che l’impiegato sta effettivamente rientrando nel luogo lavorativo dopo averlo lasciato, quindi la procedura INGRESSO lascia inalterato il nuovo record registrato. Il sistema da me realizzato oltre a consentire le operazioni prima descritte, è in grado anche di gestire la consegna di una tessera badge ad un nuovo impiegato o ad un visitatore. Quando si vuole fare ciò, basta far leggere la nuova tessera al controller RFId. Ulteriore compito della funzione ACCESS_CTL è, infatti, quello di capire se l’evento RFId trasporta un UID ancora non associato ad alcun dipendente. In questo caso, essa ritorna il valore 2, che soddisfa la subscription NEW_TAG_ID (vedi figura …). Ad essa consegue la chiamata della procedura TAG_UNKNOWN, il cui unico compito è quello di registrare in un nuovo record della tabella IMPIEGATI, l’UID della tessera letta. Sarà, poi compito, dell’amministratore del sistema di controllo accessi, associare a tale identificativo le informazioni anagrafiche riguardanti la nuova persona. Tale operazione è facilmente conseguibile mediante l’intuitiva interfaccia grafica da me sviluppata, grazie alla quale si può anche eliminare e/o modificare l’associazione tra l’UID e l’angrafica di un dipendente. Inoltre è da precisare che in questo caso gli eventi ridondanti non causano alcuna conseguenza visto che dopo il primo evento che trasporta l’UID ancora sconosciuto al sistema, gli altri trasportano tutti lo stesso UID ormai noto, ma ancora non associato ad alcun dipendente (la funzione ACCESS_CTL non può classificare infatti gli eventi né come ingressi né come uscite visto che lo stato come l’anagrafica associata all’UID non è ancora memorizzata nella tabella IMPIEGATI). 102 Capitolo V: Il sistema RFId realizzato Tra le subscriptions illustrate in figura …, ve ne è una (QUOTIDIANO) che non si serve della funzione ACCESS_CTL, perché è definita direttamente sull’attributo event.UID: alla fine di ogni giornata colui che ha il compito di chiudere la sede ha anche il possesso di una speciale tessera badge il cui UID è “E00401000664c89b”. Analogamente a quanto avviene con la chiave per la chiusura dell’ufficio, utilizzata, ovviamente, quando ormai tutti i dipendenti sono usciti dal luogo di lavoro, tale smart label ha il compito di notificare al sistema informatico di controllo accessi che la sede è stata chiusa e che quindi nessun dipendente è ancora all’interno e non rientrerà prima della giornata successiva. Quando, quindi, il controller RFId, passerà al middleware l’osservazione di questa speciale tessera, il processo stream apply passerà tale evento alla procedura DAYBYDAY, la cui mansione principale è quella di sommare tra di loro tutti gli intervalli temporali di permanenza all’interno del luogo lavorativo per ciascun dipendente nella giornata attuale. In effetti ogni impiegato ha la possibilità di fare un certo numero di pause quotidianamente ed il mio sistema è in grado di gestire anche tale diritto, calcolando le ore lavorative effettive. Tale procedura memorizza le informazione nella seguente tabella GIORNALIERO: KEY_giorno Giorno imp_UID TOT_Quotidiano Figura 5.41. Tabella GIORNALIERO Il diagramma a blocchi della procedura DAYBYDAY è il seguente: Figura 5.42. Procedura DAYBYDAY 103 Capitolo V: Il sistema RFId realizzato 5.6 INTERFACCIA GRAFICA Mediante l’utilizzo dell’Oracle Application Express, ho sviluppato un’interfaccia grafica molto semplice ed intuitiva, mediante la quale un utente privilegiato può: • esaminare i dati anagrafici di ogni dipendente, l’UID della tessera badge ad esso associata e il suo stato attuale, in maniera tale che quando arriva una commessa si sa a quale impiegato affidare la mansione: Figura 5.43. GUI: Stato impiegati • osservare gli orari di ingresso e di uscita di ogni impiegato e gli intervalli di permanenza: Figura 5.44. GUI: Intervalli di permanenza 104 Capitolo V: Il sistema RFId realizzato • nel caso in cui si debba associare un badge ad un nuovo dipendente o ad un visitatore, si ha la possibilità di registrare i relativi dati anagrafici: Figura 5.45. GUI: Registrazione nuovo dipendente • verificare quante ore lavorative ha effettuato ogni dipendente, giorno per giorno: Figura 5.46. GUI: Riepilogo quotidiano • infine qualora un dipendente dimentichi la sua tessera badge, si ha la possibilità di registrare manualmente le informazioni di ingresso e di uscita mediante il completamento del seguente report, ultima pagina dell’interfaccia WEB: 105 Capitolo V: Il sistema RFId realizzato Figura 5.47. GUI: Inserimento manuale informazioni Oltre alle cinque pagine i cui screen shoot sono visibili nelle figure precedentemente riportate, per rendere più piacevole il lavoro di chi ha il compito di monitorare lo stato delle presenze quotidiane, al fine di conoscere quale tra i dipendenti dell’azienda è disponibile ad effettuare un determinato lavoro, ho anche inserito, oltre alla home page, due simpatici calendari: uno riportante gli orari di ingresso e l’altro quelli di uscita. Per ovvi motivi di spazio e chiarezza non posso riportare i screen shot di queste pagine. Infine è da precisare che l’interfaccia permette in ogni pagina di fare una ricerca mirata: infatti come si vede dalle figure si può ricercare un impiegato inserendo valori chiave quali: nome o cognome, settore, giorno. 106 Capitolo VI: Conclusioni CAPITOLO VI CONCLUSIONI. 107 Capitolo VI: Conclusioni 108 Bibliografia BIBLIOGRAFIA 109 Appendice: Listato funzioni e procedure PL/SQL APPENDICE: LISTATO FUNZIONI E PROCEDURE PL/SQL In questa appendice riporto per intero il codice da me scritto nel linguaggio PL/SQL. Alla funzione ACCESS_CTL, necessaria, come precedentemente, visto per la classificazione degli eventi inviati al middleware dal controller RFId, seguiranno le procedure INGRESSO e USCITA il cui rispettivo compito è quello di registrare orario di ingresso e di uscita di ogni singolo dipendente e di eliminare gli effetti dei dati ridondanti. In seguito sarà scritto il codice della procedura TAG_UNKNOWN fondamentale per registrare una nuova associazione tra informazioni anagrafiche e UID memorizzata nella tessera badge ed infine il codice della procedura DAYBYDAY, che quotidianamente somma tra loro gli intervalli temporali di permanenza all’interno del luogo lavorativo per ciascun distinto dipendente. 110 Appendice: Listato funzioni e procedure PL/SQL FUNCTION access_ctl ( transit_id IN VARCHAR2 ) RETURN VARCHAR2 IS TYPE num_tab states TABLE OF VARCHAR2(1024); num_tab; BEGIN SELECT count(*) INTO numero_righe FROM impiegati WHERE id = transit_id; IF numero_righe > 0 THEN SELECT id BULK COLLECT INTO states FROM impiegati WHERE id = transit_id AND stato <> '0'; IF SQL%ROWCOUNT > 0 THEN RETURN '1'; ELSE RETURN '0'; END IF; ELSE IF transit_id LIKE 'e00%' AND transit_id <> 'e00401000664c89b' THEN RETURN '2'; ELSE RETURN '3'; END IF; END IF; END; -----------------------------------------------------------------PROCEDURE ingresso ( event IN event_table ) IS ev edg_event; oggi date; ora_prec timestamp; ora_entrata timestamp; intervallo interval day to second; BEGIN DBMS_OUTPUT.PUT_LINE( 'Got Event!' ); ev := event(1); UPDATE impiegati SET stato=0 WHERE id=ev.id; SELECT (MAX(pkey) + 1) INTO IN_OUT_PRIMARY_KEY FROM ingressi_uscite; IF IN_OUT_PRIMARY_KEY IS NULL THEN 111 Appendice: Listato funzioni e procedure PL/SQL IN_OUT_PRIMARY_KEY := 1; END IF; SELECT to_date(sysdate) INTO oggi FROM dual; INSERT INTO ingressi_uscite VALUES ( IN_OUT_PRIMARY_KEY, ev.id, ev.time, NULL, NULL, NULL, NULL, oggi); SELECT ora_ing INTO ora_entrata FROM ingressi_uscite WHERE pkey = IN_OUT_PRIMARY_KEY; SELECT ora_usc INTO ora_prec FROM ingressi_uscite WHERE pkey = (IN_OUT_PRIMARY_KEY-1); intervallo := ora_entrata - ora_prec; IF ( extract(second from intervallo) < 10 ) AND ( extract(minute from intervallo) < 1 ) AND ( extract(hour from intervallo) < 1 ) THEN UPDATE impiegati SET stato=1 WHERE id=ev.id; DELETE ingressi_uscite WHERE pkey = IN_OUT_PRIMARY_KEY; END IF; END; -----------------------------------------------------------------PROCEDURE uscita ( event IN event_table ) IS ev edg_event; ultimo_ingresso number; int_in interval day to second; int_in_char varchar2(128); int_sec number; int_min_in_sec number; int_ore_in_sec number; int_tot_in_sec number; timer number; BEGIN DBMS_OUTPUT.PUT_LINE( 'Got Event!' ); ev := event(1); UPDATE impiegati SET stato=1 WHERE id=ev.id; SELECT max(pkey) INTO ultimo_ingresso FROM ingressi_uscite WHERE impiegato_id = ev.id; UPDATE ingressi_uscite SET ora_usc = ev.time WHERE pkey=ultimo_ingresso; 112 Appendice: Listato funzioni e procedure PL/SQL SELECT ora_usc - ora_ing INTO int_in FROM ingressi_uscite WHERE pkey = ultimo_ingresso; UPDATE ingressi_uscite SET intervallo_in = int_in WHERE pkey = ultimo_ingresso; SELECT TO_CHAR(intervallo_in) INTO int_in_char FROM ingressi_uscite WHERE pkey = ultimo_ingresso; UPDATE ingressi_uscite SET intervallo_in_char = int_in_char WHERE pkey = ultimo_ingresso; SELECT EXTRACT(SECOND from intervallo_in) INTO int_sec FROM ingressi_uscite WHERE pkey = ultimo_ingresso; SELECT EXTRACT(MINUTE from intervallo_in)*60 INTO int_min_in_sec FROM ingressi_uscite WHERE pkey = ultimo_ingresso; SELECT EXTRACT(HOUR from intervallo_in)*3600 INTO int_ore_in_sec FROM ingressi_uscite WHERE pkey = ultimo_ingresso; int_tot_in_sec := int_sec + int_min_in_sec + int_ore_in_sec; UPDATE ingressi_uscite SET intervallo_tot_in_sec = int_tot_in_sec WHERE pkey = ultimo_ingresso; IF int_tot_in_sec < 10 THEN UPDATE impiegati SET stato=0 WHERE id=ev.id; UPDATE ingressi_uscite SET ora_usc = NULL, intervallo_in = NULL, intervallo_tot_in_sec = NULL, intervallo_in_char = NULL WHERE pkey = ultimo_ingresso; END IF; END; -----------------------------------------------------------------PROCEDURE tag_unknown(event IN event_table) IS ev edg_event; BEGIN DBMS_OUTPUT.PUT_LINE( 'Tag non conosciuto!' ); ev := event(1); SELECT (MAX(imp_key) + 1) INTO UNK_PRIMARY_KEY FROM impiegati; 113 Appendice: Listato funzioni e procedure PL/SQL INSERT INTO impiegati VALUES (UNK_PRIMARY_KEY, NULL, NULL, ev.id, NULL, 1); END; -----------------------------------------------------------------PROCEDURE daybyday (event IN event_table) IS ev edg_event; day_key NUMBER; today date; TYPE sums IS TABLE OF NUMBER; somme sums; somma_in_char VARCHAR2(128); TYPE identificativo IS TABLE OF VARCHAR2(1024); imp_ids identificativo; i NUMBER := 0; n_imp NUMBER :=0; BEGIN SELECT to_date(sysdate) INTO today FROM dual; select SUM(intervallo_tot_in_sec) BULK COLLECT INTO somme FROM ingressi_uscite WHERE oggi = today GROUPBY impiegato_id; SELECT DISTINCT impiegato_id BULK COLLECT INTO imp_ids FROM ingressi_uscite WHERE oggi = today; SELECT COUNT(DISTINCT impiegato_id) INTO n_imp FROM ingressi_uscite WHERE oggi = today; WHILE (i < ( n_imp) ) LOOP i := i + 1; SELECT MAX(key_giorno) + 1 INTO day_key FROM giornaliero; IF day_key IS NULL THEN day_key := 1; END IF; SELECT TO_CHAR(numtodsinterval(somme(i), 'second')) INTO somma_in_char FROM dual; INSERT INTO giornaliero VALUES (day_key, today, imp_ids(i), somme(i), somma_in_char); END LOOP; END; END edg_utl; 114