In questo documento si descrive l’interfaccia seriale sincrona (SSI) usata in molti sensori e controller di posizione. È destinato a ingegneri elettrici e meccanici che progettano […]
In questo documento si descrive l’interfaccia seriale sincrona (SSI) usata in molti sensori e controller di posizione. È destinato a ingegneri elettrici e meccanici che progettano sistemi di rilevamento della posizione e desiderano capire come funziona l’interfaccia SSI e come valutarne i vantaggi senza scendere troppo nei dettagli.
Introduzione
I sensori che misurano la posizione lineare o angolare possono essere suddivisi in due gruppi: incrementali e assoluti. La domanda “Cosa succede all’accensione?” è un buon punto di riferimento per capire a quale gruppo appartiene un sensore. Se il sensore deve eseguire una fase di taratura per trovare la propria posizione significa che è incrementale, altrimenti è assoluto. Nella maggior parte delle specifiche degli ingegneri figurano ancora sensori di posizione incrementali, perché quelli assoluti sono considerati troppo costosi. Tuttavia, oggi i sensori assoluti non hanno più un costo tanto superiore. Poiché gli utilizzatori di apparecchiature e sistemi di automazione non sono più disposti ad accettare tempi di avvio prolungati, il numero di sensori assoluti è in aumento.
Negli anni ’80 e ’90 molti sensori di posizione assoluti generavano un’uscita parallela in cui gli uno e gli zeri di un valore binario o un codice Gray erano rappresentati da vari fili (spesso un cavo a nastro) con un livello logico alto o basso. Questo approccio è scomparso a causa del costo relativamente alto, delle dimensioni, della complessità e dell’affidabilità, soprattutto nei sensori di precisione. Per un sensore con un’uscita parallela a 20 bit sarebbero necessari almeno 20 fili di segnale separati. Pur non essendo un grosso problema nel caso di un singolo sensore, questa configurazione diventa un incubo ad esempio per un robot, dove sensori, motori e linee di alimentazione sono numerosi.
Elementi generali sull’interfaccia SSI
L’SSI si basa sul diffuso standard hardware RS-422. In questo standard sono specificate le caratteristiche elettriche dei circuiti di segnalazione, limitatamente alla definizione dei livelli dei segnali. In altre parole, è definito l’hardware di base, mentre le altre specifiche, come i connettori elettrici, i pin e il cablaggio, possono essere scelte liberamente dal progettista. I circuiti RS-422 impiegati dall’interfaccia SSI consentono di trasmettere i dati in modo affidabile e veloce su lunghe distanze e in ambienti rumorosi, senza dover ricorrere a componenti elettronici, cavi e connettori voluminosi. Mediante la segnalazione bilanciata o differenziale è possibile raggiungere velocità dati elevate e lunghe distanze. Per differenziale si intende che quando una linea è sul livello alto, l’altra è sul livello basso e viceversa.
L’SSI può essere descritta come … respiro profondo… un canale di comunicazione seriale sincrono da punto a punto per la trasmissione di dati digitali. Fiu! “Da punto a punto” significa essenzialmente che non si tratta di un bus o sistema di rete multinodo complesso. “Sincrono” significa che la trasmissione dei dati è sincronizzata mediante un segnale di clock. “Seriale” significa che non è parallelo e quindi più bit di dati vengono inviati sullo stesso filo. La trasmissione dei dati avviene tra un “master” (in genere un controller) che invia il segnale di clock e uno “slave” (solitamente un sensore di posizione assoluto) che genera il dato o valore.
L’RS-422 usa livelli di segnale nominali da 0 a 5 V e in genere un cavo costituito da due gruppi di doppini intrecciati (una coppia per i dati e una per i segnali di clock) e un filo di terra, come mostrato nella figura 1. Se un cavo con due coppie può essere una soluzione pratica in molte applicazioni dell’RS-422, la specifica definisce solo il percorso del segnale senza assegnare ad esso alcuna funzione. La maggior parte dei cavi SSI utilizza doppini intrecciati con una lamina metallica o una rete che funge da schermo elettromagnetico su ciascuna coppia e/o su tutto il fascio, sotto la guaina generale del cavo.
Di solito, con l’SSI le trasmissioni di dati e clock su cavi di lunghezza intorno ai 20 m non richiedono particolari accorgimenti. Le distanze pari a 20 m rispondono alle esigenze della maggior parte delle applicazioni dei sensori di posizione. Con una lunghezza del cavo superiore a 20 m è opportuno ridurre al minimo possibile le lunghezze dei cavi fra sensore di posizione e controller. Se con cavi di 10 o 20 m (da 24 AWG) si possono raggiungere senza difficoltà velocità dati elevate di circa 10 Mbit/secondo, per lunghezze superiori ai 20 m è necessario ridurre le velocità dati dei sensori come illustrato nella figura 2.
I dati precedenti si basano su un filo da 24 AWG e le lunghezze dei cavi possono essere superiori in caso di sezioni pari a 22 o 20 AWG. La lunghezza massima del cavo dipende anche da distorsione tollerabile del segnale, livelli di rumore elettromagnetico locale e differenze di potenziale di terra fra le estremità del cavo stesso.
Rispetto ad altre interfacce, le caratteristiche tecniche dell’SSI sono:
- costo contenuto grazie a:
- numero ridotto di componenti elettronici
- solo 4 fili
- slave o sensori che utilizzano il clock del master e non necessitano di oscillatori di precisione
- ampia disponibilità di connettori e cavi
- uscita dati sicura con possibilità di rilevare gli errori e segnalare la parità
- resilienza alle interferenze elettromagnetiche
- possibilità di utilizzare cavi di notevole lunghezza fino a migliaia di metri
- facile isolamento elettrico fra sensore e host
- trasmissione dati sincronizzata con un segnale di clock
- baud rate elevati fino a 10 Mbit/secondo
- flessibilità – il numero di bit di un messaggio non è limitato da una dimensione specifica del messaggio
- possibilità di collegare più slave a un clock comune.
Talvolta gli ingegneri fanno confusione fra SSI, RS-422 ed RS-485. SSI è il metodo di comunicazione seriale che usa gli standard hardware RS-422. L’RS-485 è un sistema o bus multinodo più complesso. L’RS-422 non consente di implementare una vera e propria rete di comunicazione multipunto poiché in ciascuna coppia di fili vi può essere un solo driver; nonostante questo, più sensori possono usare il medesimo segnale di clock.
Clock e trasmissione dati dell’SSI
Il master (o controller) controlla i segnali di clock e lo slave (sensore di posizione) trasmette il dato o valore. Quando richiamato dal master, il dato viene inviato in uscita dallo slave alla cadenza del clock e memorizzato solitamente in uno shift register. Master e slave sono sincronizzati dal clock. I dati vengono trasmessi utilizzando segnali bilanciati o differenziali. Ciò significa, sostanzialmente, che le linee CLOCK e DATI sono cavi a doppino intrecciato. La sequenza di clock viene avviata dal master quando è necessario un dato o valore. È possibile utilizzare frequenze di clock diverse che vanno da 100 kHz a 2 MHz e il numero di impulsi dipende da quanti bit di dati devono essere trasmessi. Il protocollo di trasmissione dei dati si basa su tre diverse parti successive (“1″ iniziale -> bit di dati -> “0” finale). In questo modo si ottengono affidabilità e sicurezza di trasmissione dei dati, senza errori hardware e software.
L’SSI è inizialmente in modalità inattiva, in cui le linee CLOCK e DATI rimangono a livello alto e lo slave continua ad aggiornare i propri dati. Mantenendo a livello alto le uscite CLOCK e DATI in modalità inattiva è possibile rilevare contatti causati da fili spezzati.
Come si può vedere nella Figura 3, il primo fronte di discesa dopo il tempo Tmu avvia il ciclo di lettura e la trasmissione dei dati. Ciascun fronte di salita del CLOCK trasmette il bit di dati successivo del messaggio iniziando da Dn-1. Dopo l’ultimo fronte di salita della sequenza di clock, la linea dati viene impostata dal flag di errore (se supportato) per il periodo Tmu – 0,5xt. Al termine del Tmu, l’ultimo dato di posizione è disponibile per la trasmissione nel ciclo di lettura successivo.
- T: periodo di clock (1/T = da 100 kHz a 2 MHz)
- Trc: tempo del ciclo di lettura. È definito come (n x T) + (0,5 x T)
- Tmu: tempo di aggiornamento del messaggio. Intervallo di tempo dall’ultimo fronte di discesa del clock al momento in cui nuovi dati sono pronti per la trasmissione
- Timg: tempo tra i messaggi. Deve essere >Tmu, altrimenti il dato di posizione sarà indeterminato
- n: numero di bit nel messaggio (flag di errore non incluso).
Dopo n impulsi di CLOCK (fronti di salita) la trasmissione del valore del dato è completata. Al successivo impulso di CLOCK (fronte di salita n+1) l’uscita del sensore si porta sul livello basso. Se è sul livello alto anche dopo n+1 fronti di salita, significa che l’interfaccia è in corto circuito.
Tramite il collegamento a un clock comune è possibile eseguire contemporaneamente le letture da più slave (fino a tre). Per evitare anelli di terra e isolare elettricamente lo slave, è necessario un isolamento galvanico completo tramite fotoaccoppiatori.
La trasmissione multipla degli stessi dati dal sensore di posizione avviene solo in caso di impulsi di clock continui, anche dopo la trasmissione del bit meno significativo. Le sequenze iniziali sono le stesse della trasmissione singola. In condizione d’inattività le linee CLOCK e DATI sono sul livello alto, ma quando arriva il primo fronte di discesa viene richiamata la modalità di trasmissione e i bit di dati vengono trasmessi analogamente in sequenza iniziando dal bit più significativo a ogni fronte di salita del CLOCK. La trasmissione del bit meno significativo indica che tutti i dati sono stati trasmessi. Un ulteriore fronte di salita porta la linea dati sul livello basso, a indicare la fine della trasmissione dei dati.
Se sono presenti impulsi di clock continui anche dopo il termine della trasmissione (cioè se gli impulsi di clock successivi arrivano entro il tempo tw [< tm]), il valore dello slave non viene aggiornato. Questo perché l’uscita monostabile è ancora instabile e il valore nello shift register non è variato. Quindi, al successivo fronte di salita, cioè dopo il fronte di salita (n+1) continua la trasmissione degli stessi dati e l’MSB dei dati trasmessi in precedenza viene ritrasmesso. Successivamente viene seguita la stessa procedura delle trasmissioni precedenti, con una conseguente trasmissione multipla degli stessi dati. Il valore dello slave viene aggiornato solo quando il tempo fra due impulsi di clock è superiore al timeout di trasmissione. La trasmissione multipla può essere usata per verificare l’integrità dei dati. I due valori consecutivi ricevuti vengono confrontati e le differenze eventualmente riscontrate indicano errori di trasmissione. La trasmissione dei dati è controllata dal master e può essere interrotta in qualsiasi momento semplicemente interrompendo la sequenza di clock per un periodo superiore a quello di timeout. Lo slave riconosce automaticamente il timeout di trasmissione e si porta in modalità inattiva.
Alcuni produttori di sensori di posizione hanno inserito informazioni aggiuntive al protocollo SSI di base, nell’intento di assicurare un’elevata integrità della trasmissione dei dati. Per garantire la sicurezza e segnalare la fine della trasmissione dei dati è possibile aggiungere bit CRC o di parità, impiegati per verificare se i dati provenienti dal sensore di posizione sono stati correttamente ricevuti e interpretati.
Sensori che utilizzano l’interfaccia SSI
I lettori più attenti hanno forse notato che in questo articolo si usa il termine “sensore” invece del più comune “encoder”. Si tratta di una scelta voluta perché gli encoder vengono spesso, ma erroneamente, considerati come dispositivi ottici che generano dati in funzione di una posizione misurata. Negli ultimi anni è nata una nuova generazione di encoder senza contatto (prevalentemente assoluti) che non sono di tipo ottico ma induttivo (detti anche “incoder”). Tali dispositivi usano trasformatori a circuito stampato invece dei voluminosi e costosi avvolgimenti impiegati nei sensori di posizione induttivi tradizionali, quali resolver, LVDT, RVDT e sincronizzati. Questi dispositivi tradizionali sono stati per molti anni la scelta preferita degli ingegneri per svariati ambienti difficili grazie alla loro affidabilità, il grado elevato di sicurezza e la modalità operativa senza contatto. Gli incoder si basano sugli stessi principi dei loro corrispettivi tradizionali e sono quindi altrettanto affidabili e robusti, ma anche più accurati e facili da usare. La facilità d’uso deriva in parte dal fatto che utilizzano l’interfaccia SSI come modalità di comunicazione preferenziale. Hanno conquistato una quota di mercato significativa nelle versioni con foro passante e senza cuscinetti nelle applicazioni in cui sono necessari sensori con affidabilità e precisione elevate nei settori medicale, industriale, aerospaziale e della difesa.