EUR | USD

Aggiungete in modo semplice ed efficiente nodi secondari agli endpoint IIoT utilizzando gli espansori di porte

Di Bill Giovino

Contributo di Editori nordamericani di Digi-Key

Per le applicazioni Internet delle cose industriale (IIoT), le caratteristiche e la flessibilità degli endpoint IIoT si sono ampliate non solo in termini di funzionalità, ma anche per il raggio d'azione dell'area di controllo fisico dal microcontroller host nell'endpoint. Mentre alcuni pin I/O del microcontroller host dell'endpoint IIoT possono essere utilizzati per raggiungere queste posizioni distanti, le linee I/O sono più suscettibili alle interferenze elettromagnetiche (EMI) con l'aumentare della distanza, con conseguente riduzione dell'affidabilità. Anche se è possibile utilizzare un altro microcontroller come nodo secondario del microcontroller host dell'endpoint IIoT, questo può aumentare inutilmente la complessità quando i dati servono solo per semplici segnali I/O digitali.

Invece di estendere le linee di I/O per un controllo più esteso, gli sviluppatori possono utilizzare gli espansori di porte come nodi secondari a basso costo al di là dell'endpoint IIoT.

Questo articolo descrive il ruolo degli espansori di porte prima di introdurre due modelli offerti da Maxim Integrated. Questi espansori si interfacciano facilmente al microcontroller host con interfacce seriali che estendono in modo significativo la funzionalità di I/O digitale del nodo IIoT. Lo fanno mantenendo le tradizionali funzionalità GPIO (I/O per uso generale) come la generazione di modulazione della larghezza di impulso (PWM) e il rilevamento degli interrupt.

Perché sono necessari gli espansori di porte per una rete IIoT

Nella pianificazione di una rete IIoT, uno dei primi passi consiste nel decidere il numero di endpoint. Ogni apparecchiatura necessaria per sincronizzare il suo comportamento con il resto dell'impianto richiederà almeno un endpoint. Un buon esempio è una catena di montaggio in fabbrica. Ogni stazione deve essere sincronizzata con l'avanzamento dell'intera linea di assemblaggio per poter eseguire la corretta procedura di montaggio al momento giusto.

Tuttavia, un endpoint IIoT in una catena di montaggio può non essere posizionato in un'area fisica, ma può utilizzare cavi o cablaggi per estendere le porte GPIO del microcontroller host dell'endpoint IIoT a molti metri di distanza, in modo simile ad una configurazione a stella dove il microcontroller host funziona come hub. La terminazione di ogni punto della stella può avere una complessità sufficiente per agire come un nodo secondario al di fuori dell'endpoint principale dell'IIoT, ma può non essere abbastanza sofisticata per essere configurata come un endpoint IIoT con una sua connessione di rete. Mentre il nodo secondario può essere progettato per essere controllato dal proprio microcontroller, per un semplice GPIO questa configurazione può far lievitare inutilmente la complessità e i costi.

Un esempio reale sarebbe un endpoint IIoT che controlla i motori utilizzando segnali PWM. Se i motori sono a diversi metri di distanza, sarebbe necessario inviare più segnali PWM ai motori, il che aumenterebbe le EMI nell'area circostante. Si potrebbe usare un cavo schermato per trasmettere i segnali PWM, ma ciò aumenterebbe il costo del sistema e non eliminerebbe gli errori dovuti ai ritardi di fase sulla distanza o alla diafonia. Invece si potrebbe utilizzare un bus seriale come I2C o SPI per inviare i comandi a un sistema programmabile posto vicino ai motori, che genererebbe i segnali PWM. Questa elettronica sarebbe un nodo secondario programmato per generare i segnali PWM richiesti.

Una soluzione pratica per il nodo secondario può essere l'uso di un espansore di porte su un'interfaccia seriale con il microcontroller host. Gli espansori di porte sono più semplici da configurare rispetto a un microcontroller ed estendono la portata del GPIO del microcontroller host. Anziché eseguire otto o più linee GPIO verso un nodo secondario, un espansore di porte su un nodo secondario può essere facilmente accessibile dal microcontroller host tramite una semplice interfaccia I2C o SPI. Le scritture in un registro di un espansore di porte imposta o azzera i GPIO mentre la lettura restituisce lo stato dei GPIO, allo stesso modo di come si controllano i GPIO sul microcontroller host. Gli espansori di porte conservano anche gran parte delle funzionalità dei microcontroller GPIO, tra cui la generazione di PWM e di ingressi di interrupt.

Un esempio di un espansore di porte facile da usare è il modello MAX7315AUE+T di Maxim Integrated con otto GPIO e un'interfaccia I2C (Figura 1).

Schema dell'espansore di porte MAX7315A di Maxim IntegratedFigura 1: L'espansore di porte MAX7315A di Maxim Integrated fornisce fino a otto GPIO e può generare un interrupt al microcontroller host per ogni cambiamento di stato di qualsiasi GPIO. Vi si accede tramite un'interfaccia I2C a due fili. (Immagine per gentile concessione di Maxim Integrated)

MAX7315A supporta otto GPIO, ognuno configurabile indipendentemente come ingresso o uscita a drain aperto. Un microcontroller host comunica con MAX7315A tramite un'interfaccia I2C a due fili che funziona fino a 400 kHz. L'indirizzo del dispositivo sul bus I2C è configurato dai tre pin di indirizzo AD [0:2], come illustra la Figura 1. Il dispositivo può anche generare un interrupt del microcontroller host.

MAX7315A permette di gestire facilmente otto GPIO con soli tre pin: i due pin I2C e il pin di interrupt. Il dispositivo può essere posizionato a qualsiasi distanza dal microcontroller host, purché le condizioni consentano comunicazioni I2C affidabili. A seconda del layout della scheda e dell'ambiente EMI, con il clock seriale (SCL) che funziona a 400 kHz, di solito 1 metro è una distanza affidabile e con un SCL a 100 kHz si può arrivare a 3 metri o più.

Tuttavia, è importante testarlo in un ambiente attivo per garantire che le condizioni ambientali o le IEM non abbiano ripercussioni sulla distanza.

Rilevamento degli interrupt sul nodo secondario

Il dispositivo supporta un'uscita interrupt attiva bassa sul pin 13, ma se la funzione di interrupt non è necessaria, il pin 13 può essere configurato come nono GPIO. L'interrupt può essere configurato in modo da passare a basso su qualsiasi transizione del pin di ingresso. In questo modo il microcontroller host essere informato dell'attività del nodo secondario senza eseguire il polling del dispositivo MAX7315A. Quando la funzione di interrupt è abilitata, qualsiasi GPIO configurato come ingresso e con un interrupt abilitato agisce da ingresso di interrupt. A seguito di ogni cambiamento di stato di un qualsiasi GPIO configurato come interrupt, il pin 13 passa a basso per segnalare il cambiamento al microcontroller host. Il microcontroller host legge quindi lo stato di MAX7315A per determinare quale GPIO abbia cambiato stato.

Questo processo evita qualsiasi perdita di funzionalità degli interrupt utilizzando un espansore di porte per GPIO, che è fondamentale non solo nell'IIoT ma anche nei sistemi a microcontroller che richiedono gli interrupt per un funzionamento efficiente del firmware.

La funzione di interrupt deve essere disabilitata prima di modificare la configurazione di MAX7315A per evitare che si generi un falso interrupt.

Anche se MAX7315A può funzionare con un'alimentazione da 2 a 3,6 V, i GPIO tollerano fino a 5,5 V. Ciò consente ai GPIO di essere compatibili con i livelli logici standard, compresi i sistemi digitali a 2,0 V, 3,6 V e 5,0 V. Ogni GPIO configurato come uscita a drain aperto può generare fino a 50 mA in una logica di alto livello. Le uscite possono essere collegate tra loro per aumentare la corrente di uscita. Questo rende MAX7315A ideale per indicatori a LED ad alta corrente e per la retroilluminazione delle tastiere.

Generazione di PWM al nodo secondario

MAX7315A offre anche uscite PWM programmabili senza l'intervento del microcontroller host. Come base temporale per le forme d'onda PWM viene utilizzato un oscillatore interno a 32 kHz. Un'impostazione dell'intensità master a 4 bit configura l'intensità PWM a 32 kHz disponibile per tutte le uscite da 0 a 15, in modo simile a un prescaler. Ogni forma d'onda di uscita PWM per ogni GPIO è suddivisa in 15 slot temporali. L'impostazione dell'intensità master determina quanti slot siano disponibili per la generazione PWM. Ogni singolo GPIO ha un proprio registro di intensità individuale che viene utilizzato per impostare il ciclo di lavoro per la forma d'onda negli slot attivi. Per spiegarlo meglio, vediamo un esempio che utilizza la forma d'onda di uscita di un singolo pin GPIO (Figura 2).

Grafico della forma d'onda di uscita di MAX7315A di un singolo pin GPIOFigura 2: MAX7315A ha un generatore PWM programmabile che funziona con un clock a 32 kHz generato internamente. Questo PWM ha un'intensità master = 2 e un'intensità del ciclo di lavoro GPIO individuale = 2. (Immagine per gentile concessione di Maxim Integrated)

L'intensità master è impostata su 2, quindi solo gli slot 1 e 2 dei 15 in totale sono disponibili per la generazione di PWM, mentre gli slot da 3 a 15 sono al livello logico zero. L'intensità del ciclo di lavoro individuale per questo GPIO è impostata su 2, quindi le forme d'onda negli slot 1 e 2 sono a un ciclo di lavoro di 2/16 = 12,5%.

L'intensità master del PWM può essere impostata da 0 a 15, dove 15 significa che tutti i 15 slot sono disponibili. Un'intensità master pari a zero significa che la generazione di PWM è disabilitata per tutti i GPIO e quindi il clock a 32 kHz è spento per risparmiare energia.

Ogni singolo GPIO può configurare un'intensità del ciclo di lavoro PWM da 1 a 16, dove 16 è un ciclo di lavoro al 100%, se si imposta lo slot su un livello logico alto.

Per una maggiore flessibilità, ogni GPIO ha un bit di polarità che può invertire la forma d'onda PWM. La Figura 2 mostra la forma d'onda con il bit di polarità per quel GPIO impostato su 1. La forma d'onda PWM nella Figura 3 mostra lo stesso GPIO con la stessa intensità master e l'intensità del ciclo di lavoro della Figura 2, ma il bit di polarità è 0.

Il grafico di MAX7215A di Maxim Integrated ha un bit di polarità che inverte la forma d'ondaFigura 3: Ogni GPIO del PWM su MAX7215A di Maxim Integrated ha un bit di polarità che inverte la forma d'onda. Questo PWM ha un'intensità master = 2 e un'intensità del ciclo di lavoro individuale = 2 con bit di polarità = 0 che inverte la forma d'onda. (Immagine per gentile concessione di Maxim Integrated)

Grazie a questa flessibilità nella generazione di forme d'onda PWM, MAX7315A può essere utilizzato in un nodo secondario al di là di un endpoint IIoT per controllare il dimmeraggio degli indicatori a LED, pilotare transistor di potenza per motori c.c. e controllare solenoidi e attuatori. Ora, invece di far funzionare otto linee digitali che trasportano le forme d'onda PWM in un ambiente industriale rumoroso, il microcontroller host deve solo configurare MAX7315A e permettergli di funzionare in modo indipendente.

Estendere le funzionalità ai nodi secondari

Per nodi secondari più complessi, Maxim Integrated offre gli espansori di porte MAX7301AAAX+T con un massimo di 28 GPIO. MAX7301AAAX è interfacciato al microcontroller host nell'endpoint IIoT utilizzando un'interfaccia SPI standard a quattro pin (Figura 4). Supporta anche una funzione di interrupt attiva alta come funzione alternativa di P31. MAX7315AAAX può essere configurato per generare un interrupt di ritorno al microcontroller host in presenza di un cambiamento di stato di uno o più GPIO. Ciò permette di controllare 27 GPIO in un nodo secondario in un sistema ad interrupt utilizzando solo cinque linee di controllo: le quattro linee di controllo SPI e una linea interrupt.

Schema dell'interfaccia SPI dell'espansore di porte MAX7301 di Maxim IntegratedFigura 4: L'espansore di porte MAX7301 di Maxim Integrated ha un'interfaccia SPI e supporta fino a 28 pin GPIO disponibili per l'ingresso o l'uscita. Il pin 31 supporta una funzione alternativa come interrupt attivo alto, che permette di controllare 27 linee GPIO utilizzando cinque segnali di controllo. (Immagine per gentile concessione di Maxim Integrated)

MAX7301AAAX funziona su un ampio intervallo di alimentazione da 2,25 a 5,5 V, che lo rende compatibile con la maggior parte dei sistemi logici digitali. Il GPIO può essere configurato come ingressi attivati con trigger di Schmitt con o senza resistenza di pull-up interna. Il GPIO può anche essere configurato come uscita push-pull fino a 10 mA. Ciò rende MAX7301AAAX adatto per l'interfacciamento con i circuiti a livello logico utilizzati per il controllo di altre apparecchiature, come i controller industriali, i circuiti di monitoraggio dei sistemi e di allarme.

Conclusione

Via via che i progettisti estendono la portata fisica degli endpoint IIoT, il controllo dei nodi secondari può essere una sfida, poiché l'estensione di più linee di controllo su distanze maggiori crea problemi di EMI, layout e complessità del circuito. Utilizzando gli espansori di porte per controllare i nodi secondari nei sistemi con interrupt, gli sviluppatori possono semplificare il layout della scheda CS e migliorare l'affidabilità, aggiungendo al contempo funzionalità significative all'endpoint IIoT.

Esonero della responsabilità: le opinioni, le convinzioni e i punti di vista espressi dai vari autori e/o dai partecipanti al forum su questo sito Web non riflettono necessariamente le opinioni, le convinzioni e i punti di vista di Digi-Key Electronics o le sue politiche.

Informazioni su questo autore

Bill Giovino

Bill Giovino è un ingegnere elettronico con un BSEE ottenuto a Syracuse University, ed è uno dei pochi ad essere passati con successo da progettista, a ingegnere delle applicazioni sul campo, al marketing tecnologico.

Da oltre 25 anni, Bill promuove le nuove tecnologie per un pubblico tecnico e non tecnico a nome di molte aziende, tra cui STMicroelectronics, Intel e Maxim Integrated. In STMicroelectronics, Bill ha contribuito a guidare i primi successi dell'azienda nel settore dei microcontroller. Con Infineon, Bill ha orchestrato i primi successi di progettazione di microcontroller dell'azienda nel settore automotive statunitense. In qualità di consulente di marketing per la sua società CPU Technologies, Bill ha aiutato molte aziende a trasformare prodotti di secondo grado in storie di successo.

Bill è stato uno dei primi ad adottare l'Internet delle cose, compresa l'integrazione del primo stack TCP/IP completo su un microcontroller. Bill è fedele al motto "Le vendite guidate dall'educazione" e tiene molto alla crescente importanza di comunicazioni chiare e ben scritte nella promozione di prodotti online. È moderatore del famoso gruppo Sales & Marketing di LinkedIn Semiconductor e parla correntemente di B2E.

Informazioni su questo editore

Editori nordamericani di Digi-Key