Comunicazione dati – Parte 2

Sul blog di Elettronica Open Source puoi leggere non solo tutti gli articoli Premium riservati agli abbonati Platinum 2.0 e inseriti nella rivista Firmware 2.0 (insieme ad articoli tecnici, progetti, approfondimenti sulle tecnologie emergenti, news, tutorial a puntate, e molto altro) ma anche gli articoli della Rubrica Firmware Reload. In questa Rubrica del blog abbiamo raccolto gli articoli tecnici della vecchia rivista cartacea Firmware, che contengono argomenti e temi evergreen per Professionisti, Makers, Hobbisti e Appassionati di elettronica. Ecco una rassegna di esempi su come poter interfacciare il proprio hardware al PC o far comunicare due schede embedded tra loro.

PERCHÉ USARE UN BUS?

La risposta a questo interrogativo è breve e concisa: perché i cablaggi causano troppi problemi. In un circuito con una manciata di funzioni, è inutile impiegare un bus, ma se si dispone di un sensore o di un attuatore in moduli più o meno intelligenti, la situazione è differente. Se si dispone di decine di questi moduli che chiedono attenzione, un bus è la soluzione più idonea. Per diversi decenni i bus sono stati conformi al modello OSI. In breve, ciò significa che la comunicazione tra moduli è divisa in livelli, ed ognuno di questi livelli svolge il proprio compito (Figura 1).

Figura 6. Open systems interconnection: il modello OSI di riferimento

Figura 1: Open systems interconnection: il modello OSI di riferimento

Il modello OSI non è uno standard, bensì un modello di riferimento. Un aspetto fondamentale di questo modello è che i livelli di ricezione comunicano a quelli di trasmissione un messaggio che li informa della corretta o errata ricezione.

CAN E FAMIGLIE

Le auto moderne sono intasate di elettronica. Una macchina può avere fino a 70 unità di controllo motore (ECU - Engine Control Unit), le quali possono generare nell’insieme circa 2.500 segnali diversi. In questa situazione un bus risulta indispensabile. La base per il bus industriale con il più alto impiego su scala mondiale venne sviluppata nel 1980 da Robert Bosch GmbH, che prese la forma del Control Area Network (CAN). La tecnologia CAN è ormai collaudata: esistono nel mondo centinaia di milioni di nodi CAN, ed oggi il CAN è uno standard OSI (11898 e 11519), reso obbligatorio per la diagnosi dei veicoli a benzina e diesel, prodotti a partire dal 2004. La documentazione CAN risulta essere insolitamente abbondante e facilmente accessibile, e quasi tutti i produttori di IC che si rispettino producono integrati per il CAN bus. Se volete saperne di più dopo aver letto la descrizione che segue, un buon punto di partenza è senza dubbio il sito interfacebus.com. Il CAN bus usa un segnale di linea differenziale, il che significa che impiega un doppino (schermato o no) di tipo twisted-pair avente una lunghezza massima di 1.000 metri, che deve terminare su entrambe le estremità con un carico da 120 ohm (Figura 2).

Figura 7. I collegamenti fisici del CAN

Figura 2: I collegamenti fisici del CAN

Il CAN supporta diverse velocità di trasferimento dati, ma ciascun dispositivo deve essere in grado di gestire 20 Kbit/s. Un data-rate relativamente basso viene usato in applicazioni come il controllo del finestrino ed il funzionamento dei sedili, mentre una velocità di trasferimento relativamente alta viene impiegata per il controllo del funzionamento del motore e del freno. In pratica, il numero massimo di nodi su un bus è di circa 110, ma esistono varianti come J1939 che arriva a supportare ben 253 indirizzi bus. Il CAN è intrinsecamente un fornitore indipendente; moduli di qualsiasi fornitore sono in grado di comunicare con quelli prodotti da altri fornitori. E’ ormai evidente come il CAN sia diventato il principale sistema di una grande famiglia, con branche che si estendono ben al di là del settore automobilistico. Questo ha portato ad un gran numero di varianti e di forme intermedie. Alla posizione più bassa sulla scala delle velocità di trasmissione troviamo LIN (Local Interconnect Network). Il LIN è economico ed è il più semplice esempio di CAN. Opera su di un link a singolo filo di collegamento con una lunghezza massima di 40 metri, ed operante ad una velocità di trasferimento dati di massimo 92.600 baud, con un singolo dispositivo master ed una moltitudine di slave. La congestione non si verifica perché sul bus è consentito un solo messaggio alla volta. Ci sono produttori che hanno una buona dozzina di circuiti integrati per LIN, compresi NXP e Infineon (ex divisione per semiconduttori di Philips e Siemens, rispettivamente). Salendo la scala delle velocità di trasferimento dati, troviamo variazioni di tema, molti dei quali rappresentano la risposta di un costruttore all’innovazione operata da un altro produttore. Possiamo allora citare il Time-Triggered CAN (TTCAN), che si basa su uno standard ISO, così come il suo fratello più veloce FlexRay e, infine, in cima alla scala, il MOST. Anche se, probabilmente, il CAN non sarà la vostra prima scelta per il vostro prossimo progetto, è bene apprendere qualcosa circa i suoi principi di funzionamento.

Tradizionalmente il CAN è essenzialmente "event triggered", il che significa che un determinato evento da inizio ad un traffico sul bus. Ad esempio, un particolare sensore può segnalare una "collisione" nel momento esatto in cui un altro sensore indica che "il serbatoio del carburante è quasi vuoto". Grazie ad un sistema di event-triggered, in questa situazione, viene determinato quale dei due sensori ha maggiore priorità di accesso al bus. Questo controllo si chiama arbitraggio del bus, e richiede un certo tempo. Inoltre, il progettista deve avere in anticipo un’idea chiara del grado di priorità che un certo evento deve avere. Dopotutto, non si vuole di certo che l’airbag si gonfi dopo aver atteso che la spia "carburante scarso" si illumini. In un sistema time-triggered, ciascun dispositivo viene interrogato almeno una volta per ciclo. La durata totale del ciclo è un valore noto, in modo che si possa determinare il tempo massimo trascorso da quando un evento si è manifestato. Il TTCAN è attualmente un mix di event-triggered e time-triggered, ed è basato sull’idea che sul sistema sono presenti dispositivi che non hanno bisogno di essere gestiti con urgenza. Con il TTCAN ed il FlexRay siamo chiaramente entro un contesto in cui girano un sacco di soldi. FlexRay opera a 10 MB/s, ed apre prospettive futuristiche come lo steer-by-wire (letteralmente pilotare via filo), dove il volante potrebbe essere facilmente sostituito da un joystick, e magari ottenendo prestazioni migliori. La progenie più veloce del CAN è il MOST, sviluppato da BMW. L’acronimo sta per "Media Oriented Systems Transport", e come lo stesso nome suggerisce, è destinato ad essere impiegato per compiti come l’integrazione del sistema di navigazione, telefonia mobile, radio e lettore DVD (con schermi visualizzatori per i passeggeri anteriori e posteriori). La Figura 3 mostra un esempio completo di come questi tre sistemi possono essere usati in un’autovettura.

Figura 8. LIN, CAN e MOST in una macchina.

Figura 3: LIN, CAN e MOST in una macchina

FIELDBUS E PROFIBUS

Un tour tra i bus industriali non sarebbe completo senza aver gettato uno sguardo nel mondo del processo e nelle fabbriche di automazione, che coprono una vasta gamma di industrie, dal petrolchimico alla produzione di condimenti e molto altro. Le somme in gioco sono notevoli. I primi moduli in questo settore sono apparsi nel 1980, con microprocessori, processori intelligenti, valvole, encoders, analizzatori e simili, tutti chiamati "field devices". Dove c’è la possibilità di fare molti soldi, si impone una concorrenza agguerrita, e sebbene la necessità di una standardizzazione venne presto sentita, i prodotti tra loro compatibili erano pochi e persino l’ISA e le organizzazioni di standardizzazione IEC non raggiunsero un accordo. Ancora una volta, la cooperazione è meglio di una concorrenza spietata. Gruppi di produttori, clienti e scienziati si riunirono tra loro a poco a poco, e alla fine si sono uniti per formare i due campi più grandi del momento: il Fieldbus Foundation in USA e Giappone, e il Profibus in Europa. E’ indubbiamente una storia piuttosto complessa. Per esempio, Siemens ha collaborato con Yokogawa al Fieldbus per un pò, ma questi hanno anche collaborato con Robert Bosch GmbH al Profibus, il quale ha anche ricevuto contributi francesi. Profibus è stato successivamente consegnato agli utenti di un’organizzazione chiamata Profibus Nutzer (User). Questa organizzazione adesso ha più di 1.300 membri in tutto il mondo, con oltre 30 milioni di nodi in uso. I suoi clienti sono Shell ed il CERN, il famoso acceleratore di particelle. Fieldbus e Profibus definiscono entrambi solo i livelli 1,2 e 7 del modello OSI. In tutto il mondo vi è un accordo mondiale solo su una cosa: le tre versioni del livello fisico, che sono specificate nell’IEC 61158 e IEC 61784. In poche parole questi sono:

  • fibra in vetro per distanze fino a 100 km, con data rate da 9.6 kbit/s a 12 Mbit/s;
  • RS-485 o EIA-485 su differenziale UTP o STP con data rate da 35 Mbit/s per 10 m o 100 kbit/s per 1.200 m. Il CAN e molti altri protocolli, come ad esempio il DMX512 per l’illuminazione teatrale e simili, rientrano in questa categoria;
  • MBP-IS (Manchester Bus Powered Intrinsically Safe) è utilizzato in aree soggette a pericolo di esplosioni, come ad esempio le raffinerie, in precedenza serbatoi per lo stoccaggio di liquidi contenenti gas. Un basso flusso di corrente attraversa il cablaggio in ogni momento, in modo che non si inneschino scintille quando qualcosa viene connessa o disconnessa. Il data rate è limitato a 32,25 Kbit/s su STP, con 10-32 stazioni per segmento e distanze fino a 1.900 m (circa 6.000 ft).

WIRELESS

Ritorniamo al problema iniziale: il cablaggio. Perché non rimpiazzarlo con la tecnologia wireless? Questo fu l’obiettivo che la società svedese Ericsson si propose nel 1994. L’obiettivo consisteva nello sviluppare un dialogo aperto, indipendente dai venditori, disponibile e che fosse uno standard internazionale, e ci riuscì. Il Bluetooth opera nella banda dei 2,45 GHz ed utilizza una potenza ridotta, così che possa essere impiegato da sistemi alimentati a batteria: 30 A in modalità di attesa e da 8 a 30 mA con collegamento attivo. Esistono attualmente tre classi: 1, 10 e 100 metri. Il singolo dispositivo può servire diversi moduli compagni (operatività point-to-many). Un link tra due dispositivi si chiama piconet. Ciascuna piconet è in grado di supportare fino a 127 dispositivi, con un massimo di otto attivi contemporaneamente. Quella del Bluetooth è una tecnologia in via di sviluppo, la versione 3, apparsa solo di recente nell’Aprile del 2009, utilizza il protocollo Wi-Fi per consentire velocità di trasferimento dati fino a 25 Mbit/s. Il Bluetooth è uno standard aperto, e la documentazione è facilmente accessibile via Internet. Come il sistema CAN, il Bluetooth ha già dato prova dei suoi grandi pregi. Originariamente concepito per mettere in comunicazione dispositivi personali, ha comunque fatto strada in ambiti industriali, in particolare nelle zone in cui la comunicazione Wireless è semplicemente molto conveniente, come nei magazzini automatizzati e nei sistemi robotizzati. Lungo il trend di sviluppo verso velocità di trasferimento sempre crescente, la necessità vuole anche che si vada nella direzione opposta, dal momento che si desidera impiegare anche una moltitudine di applicazioni meno esigenti. La controparte del LIN per il CAN è lo Zig-Bee per il Bluetooth. La Zig-Bee Alliance è stata fondata da un buon numero di aziende di rilievo come Motorola e Samsung, e lo standard da allora è stato adottato da oltre 150 produttori. ZigBee è una tecnologia in via di sviluppo. Supporta già l’automazione e la gestione energetica degli edifici di uffici e fabbriche, nonché edifici residenziali. Sforzi sono attualmente in corso per sviluppare supporti alle telecomunicazioni e all’assistenza sanitaria. ZigBee consuma anche meno del Bluetooth, cosa che permette lo sviluppo di apparecchiature che possono essere indossate come si farebbe con un orologio da polso o una spilla.

Per inciso, si dovrebbe prendere qui il termine "semplice" con un pizzico di sale in più. Il livello fisico dello ZigBee consiste di due bande di frequenza: 869 MHz (Europa) o 915 MHz (USA e Australia) e 2,4 GHz (tutto il mondo), in grado di supportare velocità di trasferimento dati fino a 20, 40 e 250 Kbit/sec (rispettivamente). La copertura va dai 10 ai 70 metri (da 30 a 200 ft), ed ogni client ZigBee possiede un unico indirizzo da 16 bit, il che comporta un massimo di 65.535 (216) nodi possibili per una singola Personal Area Network (PAN). Esistono tre tipi di dispositivi ZigBee in una rete: un coordinatore (ZC), uno o più router (ZRs) e i dispositivi finali (ZEDs). Il coordinatore è il master del bus. Questo determina il nome della rete, detiene le chiavi di crittografia, ed è in grado di connettersi ad altre reti (bridging). Il router asserve le specifiche applicazioni, ma può anche trasmettere dati verso altri dispositivi. Un dispositivo finale entro lo ZigBee può comunicare solamente con il suo nodo principale. Lo ZigBee ha diverse intelligenti proprietà. I dispositivi possono commutare dalla modalità sleep a quella attiva in 15 ms. Ciò è del tutto intenzionale, perché gli ZED stanno in sleep per la maggior parte del tempo, al fine di allungare la durata della batteria (lo standard specifica due anni). I routers ed i coordinatori di solito assorbono molta più potenza. Ad esempio, un apparecchio per l’illuminazione è sempre connesso alla rete AC, in modo che possa fungere da router o da coordinatore. L’interruttore della luce sarà di tipo ZED. Se si preme il pulsante, si sveglia. Invia il comando, attende fino alla ricezione di una conferma e dopo ritorna in sleep. I router fanno uso di un’altra idea intelligente. Essi estendono la copertura della rete senza consumare ulteriore potenza, ma ciò che è più importante è che rendono possibile la realizzazione di una tipologia di rete simile a quella di Internet. Il router sa quali nodi sono troppo carichi e allora instradano il traffico su percorsi con carico di lavoro più basso (vedere Figura 4). Lo ZigBee è uno standard aperto. Se desideri utilizzarlo per un tuo progetto personale, puoi ottenerne le specifiche gratuitamente però dovrai pagare l’hardware e tutti gli strumenti di sviluppo, anche se non mancano le iniziative per l’implementazione dello stack ZigBee con software open source.

Figura 9. Topologia di una griglia ZigBee con dispositivi finali, router e coordinatori.

Figura 4: Topologia di una griglia ZigBee con dispositivi finali, router e coordinatori

Scarica subito una copia gratis

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend