Progetto (completo) di un Dongle USB IEEE 802.15.4

L'USB è uno standard di connettività che ormai è diventato universale e che si sta evolvendo per diventare sempre più veloce e performante. Avere dispositivi capaci di connettersi tramite questa interfaccia significa, a meno dei driver, essere connessi praticamente con qualunque sistema. Quello che vi presentiamo oggi è un vero e proprio progetto di riferimento grazie al quale saprete ideare e realizzare un Dongle USB, e vedremo un caso compatibile con lo standard IEEE 802.15.4. In generale, però, cosa farà, quale sarà la specifica applicazione, lo deciderete voi; nel frattempo, avrete capito come lavorare per realizzarlo. Buona lettura.

Introduzione

USB, ovvero Universal Serial Bus, è un acronimo ormai pervasivo, sempre più presente nella vita di tutti noi: dai caricatori per i cellulari fino ai dispositivi e alla strumentazione da laboratorio. Lo standard è diventato ormai irrinunciabile.
E, come detto in apertura, essere in grado di progettare un dispositivo basato su questo tipo di connessione ci rende capaci di fare praticamente tutto. Ma per poter avere le idee più chiare prima di passare al progetto operativo vediamo esattamente che cosa si può fare.

Le applicazioni

Poter connettere qualcosa via USB significa avere per le mani un sistema che può svolgere funzioni di base perché un dongle USB è la situazione nella quale ci troviamo ogni giorno quando utilizziamo delle chiavette per la memorizzazione dei dati, ad esempio, perché abbiamo per le mani una memoria riscrivibile a stato solido plug-and-play che rimpiazza sistemi di memorizzazione ottica oppure magnetica.
Per non parlare del fatto che un dongle USB può darvi l'accesso alla connettività a reti senza filo, di tipo Wi-Fi o anche Bluetooth. In questi casi si tratta di dispositivi che aggiungono funzionalità di connettività al computer oppure a una scheda come Raspberry Pi. I driver per questi chip sono generici e di solito sono presenti all'interno di qualsiasi sistema operativo. Queste piccole antenne sono generalmente anche dotate di LED in grado di indicare lo stato della trasmissione.
E naturalmente una volta che avete avuto accesso alla connettività potete gestirla come volete, per esempio interfacciando dispositivi portatili.
Alcune chiavette USB, inoltre, svolgono il ruolo di dispositivi di sicurezza: all'interno delle memorie presenti sono memorizzati dei codici di sicurezza oppure degli identificativi unici che vi consentono, per esempio, di avviare una macchina oppure un computer. Potete pensare anche a qualcosa di più semplice, come un sistema di autoradio basato su questo sistema.

Ora che abbiamo inquadrato completamente lo scenario e sappiamo che cosa possiamo fare e abbiamo capito che tutto dipende da qual è il vero scopo per il quale state iniziando il vostro progetto, possiamo creare il Dongle.
Per poter iniziare il progetto dobbiamo scegliere il chip più indicato. Uno dei più promettenti, in termini di interfacce che possiamo connettere ma soprattutto in termini di prestazioni, è il CC2531USB-RD di Texas Instruments, che ci mette a disposizione un'interfaccia PC per 802.15.4 / ZigBee.
Sfruttando questo integrato il dongle potrà essere collegato direttamente al computer ed essere utilizzato, per esempio, come sniffer di pacchetti che siano all'interno di comunicazioni compatibili con lo standard IEEE 802.15.4. Prima di andare avanti, però, qualche informazione sullo standard.

Quello di cui parliamo oggi è un Dongle USB pensato per lavorare su comunicazioni a corto raggio. Per poterlo fare è stato scelto un integrato, del quale parleremo tra poco, compatibile con un particolare standard di comunicazione. Lo standard IEEE 802.15.4 è un protocollo che è stato pensato per la gestione di reti che lavorano a bassa velocità di trasferimento dei dati e a distanze che sono a corto raggio, tipicamente inferiori ai 30 m. In particolare, lo standard nasce in ottemperanza alle specifiche ZigBee, WirelessHART, e MiWi. È possibile anche utilizzare l'802.15.4e per 6LoWPAN (IPv6 over Low power Wireless Personal Area Networks). Il protocollo è interessante anche perché introduce un meccanismo di accesso multiplo di tipo Time Slotted Channel Hopping (TSCH), cioè i canali vengono comunicati ed assegnati sulla base di riferimenti temporali precisi. Questa tecnica garantisce una grande robustezza in termini di interferenze elettromagnetiche e diminuisce anche la perdita potenziale del dato e la probabilità di collisione.

Una rete LR-WPAN, secondo lo standard IEEE 802.15.4, può lavorare in modalità beacon-enabled, il che vuol dire che il tempo di comunicazione viene suddiviso in una sequenza di frame con dei limiti ben fissati, ovvero i pacchetti di segnalazione (per l'appunto, beacon). Questi ultimi vengono trasmessi dal coordinator e sono responsabili della sincronizzazione di tutti i dispositivi presenti all'interno della rete. Ci sono, dunque, time-slot elementari che prevedono anche un Contention Access Period (CAP). È previsto anche il controllo della condizione di accesso multiplo al canale, con apposito algoritmo. Il super-frame può anche prevedere un Contention Free Period (CFP), ovvero una condizione per la quale è possibile ottenere l'accesso al mezzo senza alcun tipo di connessione sfruttando time-slot che vengono definiti "garantiti" (Guaranteed Time Slot, GTS), nonchè un Inactive Period, durante il quale le interfacce radio di comunicazione vengono spente; questo consente anche notevoli vantaggi dal punto di vista energetico.

In generale, possiamo dire che i nodi della rete si scambiano reciprocamente messaggi a seconda del loro ruolo, della topologia e del carico della rete stessa. Posto che all'interno della configurazione esiste un dispositivo detto "coordinator", il cui ruolo è gestire, sincronizzare ed organizzare le comunicazioni, e gli altri, che scambiano dati, tre sono i tipi di interazioni possibili tra i nodi della rete:

  • dal dispositivo al coordinator, caso in cui un generico nodo invia i dati;
  • dal coordinator al dispositivo, succede quando un dispositivo riceve i dati sia riguardo la sincronizzazione sia riguardo alla richiesta oppure rimane in attesa;
  • da un dispositivo ad un altro, in caso di tipologie di connessione peer-to-peer.

Dove eravamo rimasti?

Il firmware può essere sviluppato da zero [...]

Iscriviti e ricevi GRATIS
Speciale Pi

Fai subito il DOWNLOAD (valore 15€) GRATIS

ATTENZIONE: quello che hai appena letto è solo un estratto, l'Articolo Tecnico completo è composto da ben 2110 parole ed è riservato agli abbonati PLATINUM. Con l'Abbonamento avrai anche accesso a tutti gli altri Articoli Tecnici MAKER e PLATINUM e potrai fare il download (PDF) di tutti gli EOS-Book, Firmware e degli speciali MONOTEMATICI. ABBONATI ORA, è semplice e sicuro.

Abbonati alle riviste di elettronica

Una risposta

  1. Maurizio Di Paolo Emilio Maurizio 16 febbraio 2016

Scrivi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Iscriviti e ricevi GRATIS
Speciale Pi

Fai subito il DOWNLOAD (valore 15€) GRATIS