GPOI - Le metriche del software - Fase 4 - complessità di FP

Dato che alcune delle funzionalità possono essere più complesse di altre e quindi richiedono più tempo per essere sviluppate, il metodo di conteggio IFPUG prevede che le occorrenze di queste funzionalità siano pesate da chi effettua il conteggio.

Si utilizzano delle tabelle di riferimento operando in due passi:

un primo giudizio di complessità che può essere basso, medio ed alto

un secondo passo che assegna un punteggio che varia da 3 a 5

Per valutare la complessità si usano i seguenti indicatori:

  • DET Data Element type: un campo non ripetuto, riconoscibile dall'utente
  • RET Record Element type: un sottogruppo di dati riconoscibili dall'utente all'interno di un ILF/EIF
  • FTR File Type referrenced: si tratta di un file logico interno (ILF) letto o mantenuto dalla funzione, oppure un file esterno (EIF) letto dalla funzione (da EI/EQ/EO)

Input Esterni EI External Inputs

Per ogni EI si conta il numero di file FTR che utilizza e il numero di DET che questi file hanno al loro interno da utilizzarsi come coordinate per determinare il valore della complessità.

FTR/DET1-45-1516
0-1BassaBassaMedia
2BassaMediaAlta
3MediaAltaAlta

Il valore ottenuto di complessità (basso, medio o alto) viene convertito in un numero, rispettivamente basso=3, medio=4 e alto=6.

Output Esterni EO - External Outputs

Per ogni EO si conta il numero di file FTR che utilizza il numero di DET che questi file hanno al loro interno da utilizzarsi come coordinate per determinare il valore di complessità della seguente tabella:

FTR/DET1-56-1920
0-1BassaBassaMedia
2-3BassaMediaAlta
4MediaAltaAlta

Il valore ottenuto di complessità (basso, medio o alto) viene convertito in un numero, rispettivamente basso=4, medio=5 e alto=7.

Richieste Esterne EQ External Inquiries

La stessa analisi condotta per gli EI e gli EO può essere condotta per gli EQ ma utilizzando il maggiore degli EI ed EO così come prescritto nel IFPUG counting pratices manual.

File Logici Interni (ILF - Internal Logical Files) e File Esterni di Interfaccia (EIF - External Interface Files)

Per ogni file, sia che si tratti di un file ILF che di un EIF, si conta il numero di file RET che questo definisce e il numero di DET che questi contengono al loro interno da utilizzarsi come coordinate per determinare il valore di complessità della seguente tabella:

FTR/DET1-1920-5051
1BassaMediaAlta
2-5BassaMediaAlta
6BassaMediaAlta

Il valore ottenuto di complessità (basso, medio o alto) viene convertito in un numero utilizzando la seguente tabella:

ComplessitàILFEIF
Bassa75
Media107
Alta1510

Il valore di UFP è dato dalla somma delle 5 componenti funzionali così individuate.

Riprendo l'esempio precedente che riporto per comodità:

1 schermata (cognome, nome, luogo di nascita, data di nascita, CF)

funzioni realizzate: inserimento, modifica, cancella

  • tutti i dati possono essere inseriti, modificati e cancellati dall'utente
  • la ricerca è limitata allo scrolling delle anagrafiche
  • 1 file per la memorizzazione dei dati
  • 1 query per la ricerca degli elementi di una tabella
  • 1 prospetto di stampa su cui sono presenti i dati della schermata e l'età media degli individui censiti nell'anagrafe
Posted in Senza categoria | Leave a comment

TPSIT - VPN

La sicurezza deve seguire le seguenti tre regole:


Confidentiality, Integrity and Availability

Confidenzialità, Integrità e Disponibilità che rappresentano i tre elementi cardine che la sicurezza in ambito IT mira a garantire per quanto concerne i dati.

L’obiettivo dell’utilizzo di una VPN (Virtual Private Network – Rete Private Virtuale) è quello di assicurare, fra le altre cose, almeno due degli elementi della triade: la confidenzialità e l’integrità dei dati in transito.

Quando due entità o due utenti necessitano di dialogare fra loro attraverso una qualsiasi rete, ed in particolar modo su Internet, è possibile stabilire fra di essi un canale virtuale, e fare in modo che all’interno di questo canale “dedicato” i dati transitino in maniera sicura. Pensiamo proprio alla rete Internet e a due persone che devono interloquire fra loro attraverso la rete pubblica: nulla e nessuno potrà garantire che ciò che esse si comunicano non venga intercettato o copiato a loro insaputa, in questo caso vengono in aiuto le VPN. La P di “private” sta ad indicare la privatezza ossia la confidenzialità (e integrità) delle informazioni mentre la V di “virtual” indica il fatto che il canale è solo logicamente instaurato fra i due estremi, senza la necessità di ricorrere a costose linee dedicate. Le VPN, quindi, rispetto alle linee dedicate offrono pertanto due vantaggi essenziali che sono quelli dell’economicità (evitando l’acquisto di linee dedicate appunto) e la scalabilità (n utenti che debbano collegarsi ad uno stesso punto – ad esempio la sede aziendale – sfrutteranno tutti il medesimo canale di accesso, ossia la Internet, ovunque essi si trovino). Le componenti di confidenzialità e integrità offerte dalle VPN si basano essenzialmente sull’utilizzo della crittografia, gli algoritmi crittografici permettono infatti da un lato di rendere intelleggibile ad un eventuale “eavesdropper” il flusso dei dati fra i due capi della VPN e dall’altro garantiscono che quanto viene trasmesso non sia stato in alcun modo manipolato o danneggiato (intenzionalmente o meno).

In maniera molto semplicistica, della parte di confidenzialità si occupano gli algoritmi di cifratura (sia a chiave segreta che a chiave pubblica), mentre per l’aspetto dell’integrità ci si rivolge agli algoritmi di “hashing“.

Protocolli, tecnologie e tipologie di VPN

In questo contributo vorrei concentrarmi essenzialmente su due tipi di VPN:

  • VPN di accesso remoto
  • VPN site-to-site

Esistono poi due differenti tecnologie, ciascuna delle quali opera a differenti livello della pila ISO-OSI:

  • VPN IPsec
  • VPN SSL

A onor del vero questa classificazione è veramente riduttiva seppure – in ottica sicurezza – racchiuda i gruppi e i protocolli fondamentali, in letteratura probabilmente troverete tassonomie molto più estese perché sarebbe possibile parlare di altri tipi ed altre classificazioni delle VPN. Solo per fare un esempio è doveroso accennare alle cosiddette VPN MPLS che in ambito aziendale sono largamente diffuse, ma volendoci concentrare sull’aspetto della sicurezza e considerando il fatto che, di default, le VPN MPLS non forniscono la crittografia dei dati preferisco escluderle dal presente contributo.

Le VPN per l’accesso remoto

Vengono utilizzate nei casi in cui un utente in mobilità, in qualsiasi luogo del globo, debba collegarsi ad una sito remoto (tipicamente una sede aziendale) e desideri farlo in sicurezza, al riparo da intercettazioni. La costruzione del canale virtuale fra l’utente remoto e la sede aziendale, oltre a mettere al sicuro l’utente e l’azienda, permette di estendere la rete aziendale al di fuori dei propri confini geografici rendendo l’utente finale in grado di accedere a risorse interne (file, applicazioni, server, ecc.) altrimenti inaccessibili. Questo tipo di VPN possono basarsi sia sullo standard IPsec che sui protocolli della famiglia SSL (evoluti in TLS).

remote

Le VPN site-to-site

Vengono utilizzate quando sedi o filiali della stessa azienda o di aziende differenti, situate a distanza geografica, hanno necessità di instaurare un canale di comunicazione sicuro (e molto spesso permanente) sfruttando un canale non sicuro come può essere Internet. Tali VPN sfruttano tipicamente lo standard IPsec e vengono realizzate solitamente tramite specifici terminatori delle VPN (router, firewall, server o appliance) a un capo e all’altro del canale. Una volta stabilita la VPN le due entità/organizzazioni entreranno in contatto potendo condividere in maniera sicura i dati che intendono scambiare fra loro (file, flussi, applicazioni, ecc.) senza dover acquistare da un provider una costosa linea dedicata.

vpn2

Non è certo infrequente, nella realtà aziendale di oggi, trovarsi dinanzi a scenari in cui entrambi i tipi di VPN e entrambe le tecnologie (IPsec e SSL) vengono utilizzati allo stesso tempo

vpn3

La crittografia alla base delle VPN

Entrare nei dettagli di come gli algoritmi di cifratura contribuiscano a realizzare le VPN e a renderle sicure va al di là dello scopo di questo articolo, tuttavia, come già accennato, la crittografia (sia simmetrica che asimmetrica) ricopre l’importante ruolo di abilitatore della confidenzialità e integrità dei dati, ma può entrare in gioco anche in un altro importante aspetto delle VPN: l’autenticazione,  qualora quest’ultima faccia uso della crittografia a chiave pubblica, mediante firma digitale RSA.

Ciò che è doveroso specificare è che diversi algoritmi di cifratura (ed in diverse fasi della “vita” di una VPN) entrano in gioco. Gli algoritmi asimmetrici (esempio: RSA e Diffie-Hellman), più onerosi dal punto di vista computazionale, vengono utilizzati per l’autenticazione (RSA) o per lo scambio di chiavi segrete utilizzando un canale insicuro (Diffie-Hellman), mentre gli algoritmi simmetrici (più leggeri e performanti dal punto vista computazionale come 3DES e AES vengono utilizzati per fare il lavoro di cifratura “continua” dei dati una volta che il canale di comunicazione è stabilito.

Un ultimo fondamentale vantaggio delle VPN è il fatto che offrono protezione “anti replay“ ossia rendono impossibile ad un attaccante intercettare i messaggi in transito ed inserire dei messaggi modificati nel flusso dei dati fra sorgente e destinazione, nel caso ciò dovesse avvenire i messaggi modificati verrebbero scartati.

Le soluzioni di mercato

Site-to-site VPN

Per quanto riguarda le VPN site-to-site, la soluzione più diffusa è quella di demandare la realizzazione del tunnel VPN ad apparati di rete capaci di utilizzare lo standard IPsec (che chiameremo terminatori della VPN), che siano essi router o firewall. Occorrerà quindi accordarsi con la controparte (se si tratta di un’azienda esterna) e scegliere i parametri IPsec in modo che il tunnel si attivi con successo, a quel punto i PC o i server attestati ad un capo o all’altro del tunnel potranno “parlarsi” in maniera “trasparente” e sicura allo stesso tempo, lasciando il lavoro di cifratura e decifratura ai terminatori della VPN. I router e firewall più diffusi al mondo, anche non di livello enterprise, supportano lo standard IPSec e ciò rende possibile la protezione dei dati in transito in maniera abbastanza agevole.

VPN di accesso remoto

Per quanto riguarda le VPN per l’accesso remoto, solitamente basate sul protocollo TLS (erede di SSL), sono presenti sul mercato diverse soluzioni. Ciascun vendor potrà proporre la propria implementazione, ma in sostanza si tratta di definire ed installare quello che viene definito “concentratore” delle VPN il quale – esposto su Internet – raccoglierà, dalla rete della sede centrale, le richieste di accesso (tramite il protocollo SSL/TLS) da parte dei client. Le modalità con cui i client potranno realizzare il tunnel VPN sono in sostanza di tre differenti tipi:

  • clientless (basata esclusivamente sul browser del dispositivo)
  • plug-in based (ossia basate su un plug-in del browser che viene installato al momento della prima connessione al concentratore)
  • client-based (quando è prevista l’installazione di un client software ad hoc)

Ciascuna delle soluzioni ha i suoi pro e i suoi contro: certamente la prima, quella clientless, è quella che può essere utilizzata in qualsiasi luogo e su qualsiasi PC che supporti il protocollo SSL. Ciascun vendor poi “colorerà” la propria soluzione in maniera diversa. La scelta di ciascuna azienda, in base alle proprie necessità, ricadrà sulla sfumatura e la soluzione più appropriate.

La prudenza in mobilità e la protezione dei dati aziendali

Un ultimo accenno va certamente fatto ad un altro utilizzo delle VPN che è di grande utilità per chi viaggia spesso, magari anche all’estero, e che fa sovente uso di accessi wi-fi pubblici, erogati da aeroporti o hotel. In questo caso è consigliabile fare ricorso ad un provider di servizi VPN. Esistono infatti sul mercato fornitori di connettività VPN a cifre abbordabili. In maniera molto semplificata, ciò che si ottiene utilizzando questo tipo di servizi ogniqualvolta ci si trovi a doversi collegare ad Internet da luoghi pubblici o “a rischio” è questo: per prima cosa l’utente si collegherà al proprio provider di servizi VPN, da quel momento in poi ogni connessione verso la rete Internet (che sia verso Google, il proprio portale preferito, la propria casella email via web, ecc.) non avverrà in maniera diretta, sarà il server del provider VPN (del quale dobbiamo avere fiducia, s’intende) a fare da tramite fra l’utente e il server di destinazione. Il computer dell’utente e il server VPN comunicheranno attraverso un tunnel interamente cifrato: in tal modo nessun malintenzionato eavesdropper (nella rete dell’albergo o nelle vicinanze se ci sta collegando in wi-fi) potrà interpretare il traffico generato.

Posted in Senza categoria | Leave a comment

Raspberry - RFID


Norman Rockwell

Per verificare le ulteriori grandi possibilità di un Raspberry si può collegare ad esso un lettore e scrivere su un badge con il componente RFID 522.

RFID-RC522 è un modulo di lettura di tag RFID. A bassa tensione, a basso costo, la piccola dimensione del chip della carta contact-less lo rendono la scelta migliore per i sistemi di identificazione radio.

 RC522 usa tecnologie avanzate di modulazione e demodulazione completamente integrate in tutti i tipi di metodi di comunicazione senza contatto passivo a 13,56 MHz.

Compatibile con i trasponder 14443A. La parte digitale consente di gestire i frames ISO14443A e la rilevazione degli errori, supporta inoltre l'algoritmo di cifratura rapida CRYPTO1. MFRC522 è compatibile con la serie MIFARE contact-less ad alta velocità, a due vie, con velocità di trasmissione dati fino a 424kbit/s.

Per prima cosa bisogna collegarlo con il Raspberry con il seguente ordine:

  • SDA connects to Pin 24.
  • SCK connects to Pin 23.
  • MOSI connects to Pin 19.
  • MISO connects to Pin 21.
  • GND connects to Pin 6.
  • RST connects to Pin 22.
  • 3.3v connects to Pin 1.

Adesso bisogna attivare l'interfaccia SPI del Raspberry. Se si vogliono approfondimenti sul tipo di interfaccia consiglio il seguente articolo approfondimenti SPI.

Come root:

raspi-config

Selezionare il punto 5 Interfacing Options e quindi P4 SPI.

Effettuare il reboot del Raspberry.

Quindi come root

apt-get install python2.7-dev python-pip git

successivamente dare il comando

pip install spidev

quindi

pip install mfrc522

creare la libreria in cui inserirò i miei applicativi Python

mkdir ~/pi-rfid

adesso creare il file Write.py

che conterrà:

#!/usr/bin/env python

import RPi.GPIO as GPIO
from mfrc522 import SimpleMFRC522

reader = SimpleMFRC522()

try:
        text = raw_input('New data:')
        print("Now place your tag to write")
        reader.write(text)
        print("Written")
finally:
        GPIO.cleanup()

Per eseguire il file è sufficiente digitare:

python Write.py

Per leggere RFID si crea il file Read.py contenente le seguenti righe di codice:

#!/usr/bin/env python

import RPi.GPIO as GPIO
from mfrc522 import SimpleMFRC522

reader = SimpleMFRC522()

try:
        id, text = reader.read()
        print(id)
        print(text)
finally:
        GPIO.cleanup()

e si eseguirà con il comando:

python Read.py

Posted in Senza categoria | Leave a comment

Raspberry - collegamento da remoto - SSH - VNC su Notebook - Android

Per utilizzare un Raspberry è necessario avere una tastiera, un mouse, uno schermo; le periferiche occuperanno più spazio del Raspberry stesso.

I dispostivi esterni sono indispensabili alla prima installazione, tutte le volte successive è sufficiente collegarsi in due maniere:

  • tramite una connessione ssh
  • tramite un server VNC

Connessione SSH: Secure shell

Tale metodo permetterà il controllo solo della console e non la parte grafica

Si deve verificare che sul Raspberry sia attivo il servizio con il comando

service ssh status

se non dovesse essere installato basta dare, come root, il comando:

apt-get install openssh-server

al termine dell'installazione si farà partire il servizio:

service ssh start

Creare un utente con il comando

adduser nomeutente

Per far sì che il servizio ssh si attivi in fase d'avvio usare il comando:

update-rc.d ssh enable

Quindi usare o la PowerShell presente su Windows o sulla shell linux digitare ssh ip del Raspberry.

ssh ipraspeberry -l nomeutente

server VNC Virtual Network Computing

Attraverso tale metodo si avrà il controllo anche grafico del Raspberry ossia come se si operasse direttamente usando un monitor.

Come root dare il comando:


apt-get install realvnc-vnc-server realvnc-vnc-viewer


raspi-config

si aprirà la console di comandi, attraverso al quale, all'interno del menù

Interfacing Options.

si potrà impostare:

VNC > Yes

Sul lato client si dovrà installare:

VNC Viewer

che può essere scaricato on line

Vnc Viewer

Si dovrà impostare l'IP associato al Raspberry e da un qualunque PC, notebook si potrà operare sul Rasperry

Esiste l'app scaricabile da googl play con l nome di

VNC Viewer che permetterà il controllo da Android del Raspberry.

Posted in Senza categoria | 1 Comment

GPOI - Le metriche del software - Fase 4 - Classificazione dei componenti

Il processo elementare è la più piccola unità di attività che è significativa per l'utente, deve essere autonomo e lasciare l'applicazione in uno stato di coerenza funzionale

EI: acquisire, inserire, aggiungere, inviare da parte dell'utente , impostare, importare, popolare, assegnare, pianificare, schedulare, cancellare, eliminare, modificare, aggiornare, alterare, accettare, variare, rivedere, controllare, validare, memorizzare, mantenere;

EO: calcolare, contabilizzare, fornire, stampare, visualizzare, produrre, trasmettere, esportare, inviare da parte del computer, presentare, pubblicare;

EQ: fornire, stampare, visualizzare, produrre, trasmettere, esportare, inviare da parte del computer, presentare, pubblicare, interrogare, ricercare, decodificare, leggere, accedere, listare.

Possibili azioni incluse nel trattamento logicoEIEOEQ
1. Eseguire validazionippp
2. Eseguire formule matematiche e calcolopo*v
3. Convertire valori equivalentippp
4. Filtrare e selezionare dati utilizzando criteri specificippp
5. analizzare condizioni per determinare quali siano applicabilippp
6. aggiornare uno o più ILFo*/ipo*v
7. referenziare uno o più ILF ed EIFppo
8. reperire dati o informazioni di controlloppo
9. creare dati derivatipo*v
10.alterare il comportamento del sistemao*/ipo*v
11. preparare o presentare informazioni all'esterno del confinepo/ipo/ip
12. accettare dati o informazioni di controllo che entrano nel confine dell'applicazioneopp
13. ordinare o riorganizzare i datippp

ip=intento primario

p= possibile

o=obbligatorio

o*= obbligatorio almeno uno

v= vietato

Un dato derivato ad esempio potrebbe essere la definizione di un oggetto che ridefinisce il tipo di dato standard ad esempio

type vettore = v[10]

Si possono individuare i descrittori che ci permettono di individuare l'intenti primari per ogni descrittore.

Ad esempio EO deve:

eseguire calcoli, mantenere uno o più ILF, creare dati derivati, modificare il comportamento del sistema quando esegue l'intento principale di presentare informazioni all'utente.

E' preferibile iniziare dalla raccolta "dei dati sulle transazioni" e da essi ricavare i file necessari affinché esse vengano eseguite in modo da non trascurare nessun EIF o EIF: quindi si procede con al classificazione dei componenti in EI, EO ed EQ.

Esempio:

Si usa il seguente programma che effettua la gestione dei dati anagrafici, così composto:

  1. schermata (Cognome, Nome, Luogo di Nascita, Data di nascita, CF)
  2. funzioni realizzate: inserimento, modifica, cancella: tutti i dati possono essere inseriti, modificati e cancellati dall'utente
  3. 1 file per la memorizzazione dei dati
  4. 1 query per la ricerca degli elementi in una tabella
  5. 1 prospetto di stampa si cui son presenti i dati della schermata e l'età media degli individui censiti nell'anagrafe

Il conteggio dei FP è il seguente:

EI -->3 funzioni elementari di input: inserisci, modifica, cancella

EO-->1 funzione di output: stampa prospetto

EQ-->1 funzione di query: scroll, visulaizza dati anagrafici

ILF--> 1 file interno: dati anagrafici

ELF--> nessun file d'interfaccia esterno

Si utilizza poi un foglio di calcolo per valutare la complessità del progetto:

Per completare il calcolo è necessario effettuare la classificazione dei componenti in base alla loro complessità

Posted in Senza categoria | Leave a comment

GPOI - Le metriche del software - Fase 3 - Transactional Function types

Le tre funzioni riguardano le iterazioni uomo/applicazione e cioè:

EI --> external Inputs: è l'input dei dati effettuato dall'utente, cioè la funzione elementare che acquisisce ed elabora un dato esterno all'applicazione che, oltre alla digitazione, può anche arrivare ad un'altra applicazione

EO --> External Outputs: coincide con l'output di dati esterno all'applicazione, sia mediante la generazine di report, sia mediante la creazione di file

EQ --> External Inquire: processi elementari query composti da un input ed un output finalizzati al reperimento da file.

Posted in Senza categoria | Leave a comment

GPOI - Le metriche del software - Fase 3 - Data Function Types

I due elementi riferiti ai dati sono identificati con la sigla:

ILF --> Internal Logical File

EIF --> External Interface File

Sono gli archivi dell'applicazione dove ILF sono i file che possono essere modificati, EIF sono i file read only.

Esempio:

ILF in un'applicazione gestionale possono chiamarsi Anagrafica Cliente o Anagrafica fornitori

ILF ed ELF non sono singoli archivi, ma aggregati di archivi che servono per l stessa funzionalità.

Gli ELF e ILF sono analizzati dal punto di vista logico e sono composti da un'aggregazione di RET (Record Element Types) dove un RET è un gruppo di dati significativi per l'utente finale dell'applicazione, che in un database relazionale normalizzato corrisponde alla tabella. I RET, al loro volta sono composti da unità elementari chamati DET (Data Element Types) che corrispondono a singoli campi e sono formati da dati semplici (numero, alfabetico, data, etc..)

Quindi prima di procedere con la definizione degli ILF e EIF il database deve essere normalizzato.

Posted in Senza categoria | Leave a comment

GPOI - Le metriche del software - Metodo Standard IFPUG

Tale metodo viene descritto nel manuale Function Points Counting Practices Manual.

Vi è uno schema composto da 7 fasi in ordine cronologico

  • Pianificazione dei conteggi dei Punti Funzione e tipo di conteggio
  • Raccolta della documentazione
  • Inventario delle Funzioni e calcolo FP non pesati
  • classificazione dei componenti
  • Analisi delle 14 caratteristiche Generali del Sistema (GSC) e determinazione del fattore di aggiustamento (VAF).
  • Tabulazione dei risultati
  • Convalida dei risultati

Fase 1 - Pianificazione dei conteggi dei Punti Funzione e tipo di conteggio

Quando si pianifica un progetto deve essere presente un'attività per il calcolo delle FP. Tale calcolo deve essere tenuto aggiornato nell'avanzare del progetto e opportunamente documentato.

Fase 2 - Raccolta della documentazione

Prima dei requisiti per un progetto SI DEVE effettuare il conteggio degli FP attraverso la seguente documentazione:

  • esigenze oggettive percepite dagli utenti
  • del sistema attualmente funzionante o del nuovo progetto
  • della struttura complessiva del sistema da realizzare
  • su ogni obiettivo primario del progetto
  • su ogni altra documentazione del progetto stesso

Fase 3 - Inventario delle operazioni e calcolo FP non pesati

Il calcolo dei FB si basa sulla somma di cinque componenti o "funzioni logiche" che possono essere classificate in:

Funzioni Dati (data Function types)

  • ILF - Internal Logical File
  • EIF - External Interface File

Funzioni transazionali (transactional Function types):

  • EI - External Inputs
  • EO - External Outputs
  • EQ - External Inquiri

FP non pesati vengono anche detti: UPF Unadjusted FP

FP=UPF\cdot VAF

Posted in Senza categoria | Leave a comment

TPSIT - RFID - Rilevamento e Correzione degli errori

Gli errori di trasmissione sono normalmente dovuti alla presenza di disturbi del canale di comunicazione che impediscono la corretta ricezione dei dati trasmessi.
Le sorgenti di segnali magnetici ed elettrici che un’onda elettromagnetica incontra durante la sua propagazione possono infatti modificarne le proprietà. Può accadere quindi che dei bit “0” vengano trasformati in “1” e viceversa.

A questo proposito si può riprendere la trattazione iniziale sul controllo degli errori.

Classificazione degli errori

Gli errori che possono verificarsi durante la comunicazione sono di tre tipi [HOL91]:

  • Errori single-bit (a bit singolo): coinvolgono un solo bit dell’unità dati (per esempio un byte) il cui valore viene trasformato da “0” a “1” o viceversa. Questo tipo di errore è il più comune.

Esempio di errore single-bit


  Errori multiple-bit (a bit multiplo): coinvolgono due o più bit non consecutivi dell’unità dati, il cui valore viene trasformato da “0” a “1” o viceversa . Questo tipo di errore è abbastanza comune.


Esempio di errore multiple-bit

  • Errori burst (a raffica): coinvolgono due o più bit consecutivi dell’unità dati, il cui valore viene trasformato da “0” a “1” o viceversa Questo tipo di errore è il meno comune.


Esempio di errore burst

Tecniche di rilevamento degli errori

Un metodo molto semplice per l’individuazione degli errori è quello di attuare un doppio invio per ogni unità di dati. Il ricevente ha quindi il compito di confrontare bit per bit le due copie della stessa unità.
Questa tecnica renderebbe la trasmissione perfettamente affidabile, essendo infinitesima la probabilità di due errori sullo stesso bit, ma molto lenta. Il tempo di trasmissione verrebbe più che duplicato poiché alla durata della doppia trasmissione, infatti, andrebbe aggiunto il tempo necessario alla verifica da parte del ricevente.
Si preferiscono quindi altri metodi che si basano sull’aggiunta di pochi bit scelti in modo sapiente. La tecnica che viene utilizzata da questi metodi è nota come ridondanza : i bit supplementari, infatti, sono a tutti gli effetti ridondanti e vengono distrutti non appena il sistema ricevente si sia accertato di una trasmissione corretta [HOL91].

Rilevamento degli errori con tecnica di ridondanza

VRC (Vertical Redundancy Check)
Il VRC è il metodo più comune per il controllo d’errore: viene aggiunto un singolo bit supplementare all’unità dati in modo che il numero di bit uguali a “1” dell’intera unità, bit supplementare compreso, diventi pari o dispari. Nel primo caso si parla di  parity check o controllo di parità ; nel secondo caso si parla di controllo di disparità.


   Controllo di parità

L’algoritmo VRC è molto facile da implementare ma ha diversi limiti; se infatti una unità ha un numero pari di bit invertiti, si ha una compensazione dell’errore, che quindi non viene rilevato [DES03].

LRC (Longitudinal Redundancy Check)

L’algoritmo LRC è una sorta di VCR bidimensionale. Come nel VCR si ha infatti l’aggiunta del bit di parità ad ogni unità dati. Ad ogni blocco viene però aggiunta una unità supplementare che contiene i bit di parità associati alle sequenze di bit corrispondenti del blocco


        Algoritmo LRC

L’algoritmo LRC assicura maggiore affidabilità nell’individuazione degli errori di tipo multiple-bit e burst, ma ha ancora dei limiti poiché può essere tratto in inganno da trasposizioni di byte [HOL91].

CRC (Cyclic Redundancy Check)
Nel metodo CRC i dati che vengono aggiunti ad ogni unità corrispondono al resto ottenuto da una particolare divisione di un polinomio, detto generatrice, che dipende dalle dimensioni dell’unità. Per esempio, la generatrice di un’unità di 9 bit può essere “x8 + x4 + x3 + x2 +1” e corrisponde a “100011101”.
Questo algoritmo rappresenta il criterio più affidabile nella trasmissione dei dati ed è anche utilizzato nei sistemi di registrazione dei dati su hard disk [GIA].

Tutti i metodi riportati permettono il rilevamento di eventuali errori, ma purtroppo non permettono la correzione. In caso di errori si ha quindi la ritrasmissione totale o parziale dei dati, a seconda della complessità dell’algoritmo scelto e della gravità dell’errore.

Posted in Senza categoria | Leave a comment

TPSIT - RFID - Codifica dei dati

La modulazione permette agli apparecchi RFID di trasmettere le informazioni di origine digitale (1 o 0) attraverso onde elettromagnetiche (analogiche). Negli ambienti in cui avvengono queste trasmissioni però spesso ci possono essere ostacoli ed elementi di disturbo che possono fare ridurre la probabilità di una corretta interpretazione del circuito di demodulazione. Inoltre i sistemi RFID passivi hanno l’obiettivo di trasferire la maggior quantità di energia possibile tra il reader e il transponder. Per questi motivi viene attuata la codifica dei dati [REN].

Tecniche di base: NRZ, RZ, Manchester e Miller

Esistono numerosi metodi per effettuare la codifica dei dati. Di seguito sono elencati i più semplici e i più utilizzati.

NRZ (No Return to Zero)

  • Lo stato digitale “1” è rappresentato con un segnale alto.
  • Lo stato digitale “0” è rappresentato con un segnale basso (fig. 3.5).

Questo metodo è facilmente ottenibile e non richiede circuiti complicati anche perché non si tratta di una vera e propria codifica, visto che i dati vengono passati direttamente come tali in uscita. Si ha inoltre una alta robustezza agli errori, anche se lunghe stringhe di “0” o di “1” potrebbero causare la perdita del sincronismo.


Codifica NRZ

RZ (Return to Zero)

  • Lo stato digitale “1” è rappresentato con un segnale alto.
  • Lo stato digitale “0” è rappresentato con un segnale basso.
  • Ad ogni semiperiodo il segnale torna sempre a zero (fig. 3.6).

Come nel metodo precedente, non si ha una vera e propria codifica dei dati. Il ricevitore deve però distinguere tra 3 livelli, anziché tra 2; quindi la probabilità di errore è più grande rispetto a quella che si ha nell’NRZ. Il vantaggio è che lunghe stringhe di “0” o di “1” non causano la perdita del sincronismo [SCH].


Codifica RZ

Manchester

  • Lo stato digitale “1” è rappresentato con una transizione al semiperiodo fra il segnale alto e il segnale basso.
  • Lo stato digitale “1” è rappresentato con una transizione al semiperiodo fra il segnale basso e il segnale alto (fig. 3.7).

Come nell’RZ, in questo metodo lunghe stringhe di  “0” o “1” non causano la perdita del sincronismo. Inoltre, lavorando con solo due livelli, viene garantita un’alta robustezza agli errori. La codifica Manchester richiede un circuito più complicato rispetto a quelli per l’RZ e l’NRZ.


Codifica Manchester

Miller

  • Lo stato digitale “1” è rappresentato mantenendo all’inizio del periodo il livello dello stato precedente e attuando una transizione al semiperiodo.
  • Lo stato digitale “0” è rappresentato in uno di questi due modi:
    • Se lo stato precedente era un “1”, viene mantenuto il livello per tutto il periodo.
    • Se lo stato precedente era uno “0”, si ha una transizione all’inizio del periodo e poi si mantiene il livello costante per tutto il periodo (fig. 3.8). Questo metodo ha gli stessi vantaggi della codifica Manchester, ma richiede un circuito più complicato perché necessita di una memoria [SCH].

Codifica Miller
Posted in Senza categoria | Leave a comment