Usare il sottosistema specializzato Sitara per comunicazioni ed elaborazione di automazione industriale
Contributo di Editori nordamericani di DigiKey
2019-11-21
Assicurare comunicazioni affidabili per i sistemi di automazione industriale rappresenta una sfida speciale per gli sviluppatori. Questi sistemi si basano infatti su numerosi protocolli di comunicazione progettati per mantenere connessioni in tempo reale affidabili tra i diversi sottosistemi utilizzati in un ambiente industriale. In questo ecosistema, i processori per uso generale convenzionali potrebbero non essere in grado di soddisfare sempre i requisiti di comunicazione in tempo reale durante l'esecuzione del software applicativo.
Gli sviluppatori necessitano di una piattaforma di sviluppo da poter adattare facilmente alle varie esigenze delle applicazioni industriali.
Questo articolo mostra come possono utilizzare un kit di sviluppo standard di Texas Instruments per accelerare lo sviluppo di soluzioni di comunicazioni industriali. Il cuore di questo kit è rappresentato dal processore Sitara di Texas Instruments che offre sia le risorse di elaborazione sia le capacità di comunicazioni dedicate richieste nelle applicazioni industriali.
Requisiti delle comunicazioni industriali
I sistemi di comunicazione industriale sono l'elemento chiave per strategie di produzione avanzate e devono soddisfare requisiti sempre più rigorosi in termini di risposta in tempo reale e affidabilità nel collegare gruppi di sensori, motori e attuatori a controller a logica programmabile (PLC) e a interfacce uomo-macchina (HMI).
Oltre a questo insieme diversificato di sottosistemi, un'applicazione industriale potrebbe dover affrontare una combinazione di requisiti prestazionali, apparecchiature specializzate e sistemi legacy che richiedono il supporto di più tecnologie di connettività di rete e protocolli. Di conseguenza, un singolo ambiente potrebbe essere chiamato a supportare più protocolli fieldbus come Controller Area Network (CAN), Modbus e Profibus, nonché protocolli Industrial Ethernet come Profinet, EtherCAT, Sercos III e altri.
Come è accaduto per gli standard fieldbus, ogni standard Industrial Ethernet è nato per soddisfare una serie specifica di requisiti. Ognuno di essi assicura il tipo di prestazioni in tempo reale che manca nella rete Ethernet convenzionale, ma che non può mancare nelle comunicazioni industriali. Il modo in cui riescono a farlo può cambiare molto da uno standard Industrial Ethernet all'altro.
Ad esempio, Profinet consente al controller master di comunicare con tutti i dispositivi della rete. A loro volta, i dispositivi slave possono scambiare frame con il controller, ma comunicano con altri dispositivi solo aciclicamente. Per le comunicazioni, Profinet fornisce un protocollo di controllo della trasmissione/un protocollo Internet (TCP/IP) standard per lo scambio di dati convenzionali non in tempo reale. Per lo scambio di dati in tempo reale, un canale Profinet in tempo reale supporta scambi ciclici o aciclici tra un controller e dispositivi slave (Figura 1, a sinistra).
Figura 1: Diversi stack Industrial Ethernet per Profinet (a sinistra) ed EtherCAT (a destra) potrebbero fornire servizi simili a quelli di Ethernet convenzionale ma differiscono notevolmente per il modo in cui supportano le comunicazioni in tempo reale nei loro protocolli di livello superiore e servizi Media Access Control (MAC) e Data Link Layer (DLL) sottostanti. (Immagine per gentile concessione di Texas Instruments)
In EtherCAT, il master comunica con gli slave includendo comandi e dati per ogni slave in un frame che viene trasmesso da un nodo all'altro. Durante il passaggio del frame, ogni nodo slave ne legge i comandi e i dati designati e vi aggiunge i propri dati. Come Profinet, EtherCAT combina un canale TCP/IP convenzionale per la comunicazione compatibile con Ethernet con un canale in tempo reale per comunicazioni urgenti (Figura 1, a destra).
Anche se i vari standard Industrial Ethernet si affidano a meccanismi molto diversi, condividono tutti la capacità di fornire il tipo di prestazioni in tempo reale che manca in Ethernet convenzionale ma che è richiesto nelle comunicazioni industriali. Nell'implementare questi standard, tuttavia, gli sviluppatori possono trovarsi "intrappolati" tra i limiti prestazionali delle tipiche opzioni di progettazione e i requisiti prestazionali del tempo reale della loro applicazione.
Le applicazioni in tempo reale dipendono dal recapito di risposte a bassa latenza entro un tempo costante dopo l'invio di un comando, un input o altri segnali analoghi. Nei processi basati sui cicli utilizzati nei sistemi industriali, i sistemi a bassa latenza assicurano che i processi avvengano il più vicino possibile all'inizio di ogni ciclo. In questi sistemi, il jitter o altri fattori possono causare variazioni imprevedibili nel ciclo, erodendo la capacità del sistema di gestire in modo affidabile e omogeneo processi ad alta velocità di ciclo.
In passato, gli sviluppatori erano spesso costretti a progettare soluzioni hardware proprie per affrontare le sfide poste da comunicazioni in tempo reale associate alla connettività industriale. A complicare la maggior parte degli approcci, il software e l'hardware progettati per calcoli per uso generale si concentrano sull'ottimizzazione delle prestazioni complessive di esecuzione dell'applicazione piuttosto che sui requisiti delle prestazioni in tempo reale.
A livello di software, gli sviluppatori di applicazioni industriali hanno bisogno di capacità di risposta deterministiche e a bassa latenza, che in genere vengono fornite con Linux in tempo reale e, a un livello più esigente, con un sistema operativo in tempo reale (RTOS). Fondamentalmente, la latenza e le prestazioni deterministiche dipendono dal processore utilizzato nella piattaforma hardware sottostante.
Un processore per uso generale come il core Arm® Cortex®-A è ideale per eseguire software che svolge i compiti di livello superiore di qualsiasi applicazione, compresi quelli necessari per l'automazione industriale. I tipici processori per uso generale sfruttano le gerarchie di memoria cache multilivello e le pipeline di istruzioni multistadio per accelerare l'elaborazione (Figura 2).
Figura 2: In un processore per uso generale come Arm Cortex-A, l'architettura utilizza più livelli di interconnessione e risorse per ottimizzare l'esecuzione dei vari carichi di lavoro che incontra durante l'esecuzione dell'applicazione. (Immagine per gentile concessione di Texas Instruments)
Per gli sviluppatori di comunicazioni industriali, queste stesse caratteristiche architetturali rendono più difficile ottenere le prestazioni in tempo reale richieste nell'automazione industriale in generale e nei sistemi Ethernet in tempo reale. Ogni livello di cache, memoria e interconnessione estende il tempo richiesto per soddisfare i processi basati su cicli (latenza). Dato che il grado che il processore deve raggiungere attraverso questi livelli può cambiare da un ciclo all'altro, il tempo di risposta può variare in modo significativo.
In passato, gli sviluppatori che avevano questo problema implementavano le parti critiche in termini di tempo e prestazioni dei loro sistemi con hardware dedicato, gate array programmabili sul campo (FPGA) o con circuiti integrati specifici per applicazione (ASIC). Per supportare Ethernet in tempo reale, ad esempio, questo approccio ha significato implementare MAC e altre funzionalità in tempo reale in un FPGA o ASIC.
Sebbene l'hardware personalizzato possa offrire una soluzione molto efficace in termini di prestazioni, l'aumento significativo dei costi e della complessità del progetto risultante fa sì che questo approccio sia praticabile solo per applicazioni in cui i requisiti prestazionali prevalgono su qualsiasi altra considerazione. Per le comunicazioni industriali, Texas Instruments offre una soluzione più pratica ed economica sfruttando pienamente l'architettura multiprocessore della sua famiglia di processori Sitara.
Sottosistema di comunicazioni industriali
La famiglia di processori Sitara combina un processore applicativo ad alte prestazioni Arm Cortex-A con una o più istanze dell'unità programmabile in tempo reale e sottosistema di comunicazioni industriali (PRU-ICSS). Mentre il processore Cortex-A esegue l'applicazione principale, il PRU-ICSS fornisce l'elaborazione in tempo reale e le capacità di I/O necessarie per i protocolli Industrial Ethernet e altre funzioni di controllo (Figura 3).
Figura 3: I membri della famiglia di processori Sitara di Texas Instruments combinano un processore per uso generale Arm Cortex-A con un'unità specializzata programmabile in tempo reale, ottimizzata appositamente per fornire le prestazioni deterministiche e a bassa latenza richieste nelle applicazioni in tempo reale. (Immagine per gentile concessione di Texas Instruments)
Ogni sottosistema con unità programmabile in tempo reale (PRU) Sitara include due core in tempo reale a 200 MHz (PRU0 e PRU1 come mostrato nella Figura 3) che funzionano con un tempo del ciclo di cinque nanosecondi per istruzione. I nuclei sono progettati con una piccola serie di istruzioni che vengono elaborate senza una pipeline di istruzioni per garantire l'esecuzione deterministica delle istruzioni in un unico ciclo. Per ridurre la latenza delle operazioni periferiche, i core accedono alle risorse condivise tramite un'interconnessione dedicata a 32 bit che li collega direttamente a più periferiche, tra cui Management Data Input/Output (MDIO) e Media Independent Interface (MII) richieste per Ethernet in tempo reale. Inoltre, ogni core PRU si collega direttamente ai pin esterni del dispositivo attraverso la propria serie di 30 ingressi e 32 uscite al massimo (Figura 4).
Figura 4: Il PRU, integrato nei processori Sitara di Texas Instruments, utilizza il suo accesso diretto ai pin di ingresso e di uscita e ad altre risorse hardware per ridurre la latenza nelle applicazioni industriali. (Immagine per gentile concessione di Texas Instruments)
In virtù di questa architettura periferica strettamente accoppiata, i core in tempo reale possono operare in modo indipendente ed evitare i ritardi associati al passaggio attraverso le numerose interconnessioni e i vari livelli di un tipico sistema di elaborazione generale. La combinazione di esecuzione rapida in un unico ciclo e accesso diretto alle periferiche consente al sottosistema di eseguire in modo deterministico i processi basati su cicli e di rispondere rapidamente e in modo prevedibile agli eventi esterni. Di conseguenza, il sottosistema PRU è in grado di eseguire operazioni di I/O e raggiungere i pin esterni con molta più efficienza rispetto al processore per uso generale (Figura 5).
Figura 5: Con l'esecuzione delle istruzioni a ciclo singolo e l'accesso diretto ai pin del dispositivo, il sottosistema PRU integrato nei processori Sitara di TI deve attraversare molti meno livelli per leggere o scrivere i segnali indirizzati ai pin del dispositivo (a destra). Di conseguenza, assicura operazioni periferiche più veloci di quanto farebbe il processore Arm Cortex-A (a sinistra). (Immagine per gentile concessione di Texas Instruments)
La combinazione di I/O ad alta velocità e tempo di ciclo di 5 ns disponibile con i core PRU fornisce la capacità di prestazioni deterministiche e a bassa latenza richieste per le comunicazioni industriali. A un livello superiore, questa architettura offre meccanismi flessibili progettati per ottimizzare l'uso coordinato del sottosistema Arm Cortex-A e PRU per massimizzare le prestazioni delle applicazioni industriali.
Utilizzando, a seconda dei casi, risorse dedicate o condivise, i vari core sono in grado di operare al massimo delle prestazioni sia individualmente che congiuntamente quando si tratta di eseguire in tempo reale compiti complessi. Le attività adatte a un singolo core possono essere eseguite in modo indipendente su quel core, mentre quelle in tempo reale più impegnative possono condividere il carico di elaborazione tra diversi core strettamente accoppiati. La capacità dei core PRU di accedere direttamente alle risorse del core Cortex-A aiuta a garantire un'esecuzione ad alte prestazioni delle operazioni in tempo reale e delle interazioni periferiche in entrambe le modalità operative.
Per ottimizzare l'allocazione e la gestione delle risorse in un'esecuzione strettamente accoppiata, l'architettura di sistema Sitara fornisce meccanismi di coordinamento a livello sia hardware che software. A livello hardware, le funzioni di comunicazione tra processori, comprese le mailbox basate su hardware e i registri di blocco delle risorse, aiutano a garantire la sincronizzazione del processore Cortex-A e di PRU-ICSS.
A livello software, il supporto per i servizi multiprocesso Linux fornisce un ambiente operativo standard per coordinare l'esecuzione dei compiti in operazioni strettamente accoppiate. Al runtime, il kernel del sistema operativo in esecuzione sul core Arm Cortex-A coordina le operazioni del sistema PRU utilizzando i servizi standard di controllo RemoteProc (Remote Process) e rpmsg (Remote Process Messaging) con i propri driver e i driver corrispondenti nel firmware PRU. Mentre i servizi RemoteProc gestiscono il caricamento del firmware di PRU e la successiva elaborazione, il framework rpmsg consente lo scambio di messaggi dall'applicazione a PRU utilizzando l'interfaccia di virtualizzazione virtio (Figura 6).
Figura 6: I processori Sitara di Texas Instruments supportano una serie standard di servizi per l'interazione dell'applicazione e il coordinamento del processore host Arm Cortex-A e del sottosistema PRU. (Immagine per gentile concessione di Texas Instruments)
I vantaggi di questa architettura risultano particolarmente evidenti per la sua capacità di semplificare lo sviluppo e migliorare le prestazioni delle opzioni di connettività industriale, che vanno da interfacce di comunicazione seriale come l'interfaccia periferica seriale (SPI) a protocolli Industrial Ethernet complessi. I processori Sitara di TI possono eseguire in modo efficiente protocolli Ethernet in tempo reale come Profinet attraverso una combinazione di stack software di protocollo in esecuzione sul processore Cortex-A e servizi in tempo reale gestiti dal firmware PRU (Figura 7).
Figura 7: Coordinando l'esecuzione del software nel suo processore host Arm Cortex-A e quella del firmware nel suo sottosistema PRU, un processore Sitara di Texas Instruments riesce a soddisfare sia i requisiti di elaborazione per uso generale che quelli di tempo reale di un protocollo Industrial Ethernet come Profinet. (Immagine per gentile concessione di Texas Instruments)
Questo approccio offre una soluzione semplice per supportare più protocolli in un'unica applicazione. Gli sviluppatori non devono fare altro che eseguire contemporaneamente nel processore Sitara lo stack e il firmware richiesti per ogni protocollo (Figura 8).
Figura 8: L'efficienza di esecuzione del firmware di PRU e le prestazioni di esecuzione del software del suo processore Arm Cortex-A consentono a un processore Sitara di Texas Instruments di fornire supporto simultaneo per numerose interfacce e protocolli di comunicazioni industriali. (Immagine per gentile concessione di Texas Instruments)
TI fornisce stack di protocollo completi per diversi protocolli di comunicazione seriale, protocolli fieldbus ed Ethernet in tempo reale, inclusi EtherCAT, Profinet e Sercos III. Combinando stack di protocollo sullo stesso sistema basato su Sitara, gli sviluppatori possono supportare i diversi requisiti di connettività per un tipico PLC o switch industriale che deve supportare, ad esempio, un'Industrial Ethernet come Profinet sul lato host e un fieldbus come Profibus o IO-Link sul lato periferico.
I pacchetti Industrial Ethernet standard disponibili sono forniti come binari black box, ma TI fornisce agli sviluppatori una serie di esempi di servizi di comunicazioni industriali. Per lo sviluppo di applicazioni, un kit di sviluppo software per processori TI (Processor-SDK) specifico per la famiglia, come ad esempio Processor SDK per i processori Sitara AM437x, fornisce un'interfaccia di programmazione di applicazioni (API) per la rispettiva famiglia di processori. Assicurando funzionalità specifiche per la famiglia, queste API forniscono astrazioni intuitive per operazioni di basso livello come le transazioni GPIO o IO-Link (Listato 1).
Copy
/* GPIO LED toggling*/
...
Board_init(boardCfg);
GPIO_init();
While(1)
{
GPIO_write(Board_LED1, GPIO_PIN_VAL_HIGH);
Delay();
GPIO_write(Board_LED1, GPIO_PIN_VAL_LOW);
Delay();
}
/* IO-LINK status */
...
Board_init(boardCfg);
...
IOLINK_socGetFwCfg(peripheralNum, &iolink_cfg);
...
IOLINK_socSetFwCfg(peripheralNum, &iolink_cfg);
...
IOLINK_init();
...
iolinkHandle = IOLINK_open(peripheralNum, &iolinkParams);
...
status = IOLINK_control(iolinkHandle, iolinkCmd, &iolinkCmdArg);
...
Listato 1: Come dimostrano questi frammenti, l'API Processor SDK di Texas Instruments per ogni famiglia Sitara permette agli sviluppatori di concentrarsi sulle astrazioni funzionali piuttosto che sulla manipolazione dei bit di basso livello o sull'accesso ai registri. (Fonte del codice: Texas Instruments)
Sviluppo accelerato
Oltre al codice e agli strumenti offerti da TI per implementare i protocolli di comunicazioni industriali sui processori Sitara, gli sviluppatori possono accelerare lo sviluppo del proprio software di comunicazioni industriali utilizzando protocolli, driver e firmware PRU in pacchetti aggiuntivi di TI e di fornitori di stack di protocolli di terze parti. Da parte sua, l'IDK TMDSIDK437X di TI accelera lo sviluppo fornendo una piattaforma hardware completa basata su Sitara per applicazioni industriali (Figura 9).
Figura 9: L'IDK TMDSIDK437X di Texas Instruments combina un processore Sitara, una memoria e un set completo di periferiche, interfacce e canali di comunicazione, fornendo agli sviluppatori una piattaforma per la valutazione dei protocolli di comunicazioni industriali e il rapido sviluppo di applicazioni di automazione industriale. (Immagine per gentile concessione di Texas Instruments)
La scheda IDK TMDSIDK437X di Texas Instruments include 1 Gbyte di memoria DDR3, flash NOR quad-SPI e un processore Sitara AM4379 di TI. Il processore AM4379 combina un processore Arm Cortex-A9 con due sottosistemi PRU, ognuno dei quali contiene due core PRU.
In una tipica rete di automazione industriale, Sitara AM4379 può svolgere molteplici ruoli. Grazie ai loro sottosistemi integrati di grafica e visualizzazione, oltre che in sistemi multi-protocollo come PLC, switch e gateway, i processori Sitara AM4379 vengono impiegati anche in apparecchiature finali che richiedono il supporto HMI.
A parte numerose periferiche e porte di comunicazione, la scheda IDK include chip di interfaccia Ethernet fra cui il transceiver PHY a 10/100 Mbit/s TLK105 di Texas Instruments per connessioni Industrial Ethernet e il transceiver gigabit PHY KSZ9031RNXIA-TR di Microchip Technology per connessioni Ethernet convenzionali.
L'implementazione di un'applicazione di comunicazioni industriali con questo kit è semplice e richiede solo un'alimentazione a 24 V e il collegamento dei cavi Ethernet al sistema di sviluppo.
Il set TI PRU-ICSS Industrial Software fornisce pacchetti software per i protocolli di comunicazioni industriali ricordati in precedenza. Utilizzando l'ambiente di sviluppo integrato (IDE) Code Composer Studio di TI, gli sviluppatori possono caricare, realizzare ed eseguire rapidamente applicazioni campione in dotazione con i pacchetti come punto di partenza, oppure utilizzarle durante la produzione per le proprie applicazioni.
Servendosi del software di TI e dei pacchetti software industriali PRU-ICSS, gli sviluppatori possono implementare rapidamente sofisticati sistemi di automazione industriale come un controller di comando motori collegato a Ethernet (Figura 10).
Figura 10: La combinazione dell'IDK TMDSIDK437X e del software di Texas Instruments fornisce una piattaforma di sviluppo particolarmente efficace per l'implementazione rapida di sistemi industriali come il controller per motori collegato a EtherCAT mostrato qui. (Immagine per gentile concessione di Texas Instruments)
Per l'applicazione controller di comando di motori, il sottosistema PRU raccoglie i dati di posizione del motore tramite l'interfaccia convertitore analogico/digitale (ADC) della scheda TMDSIDK437X o la sua interfaccia encoder bidirezionale digitale EnDat. Utilizzando questi dati, il processore Arm Cortex-A eseguirà un algoritmo FOC (controllo a orientamento di campo) per creare una nuova serie di parametri di controllo motori da inviare attraverso un canale PWM (modulazione della larghezza di impulso) Sitara. Infine, un driver per motori DRV8313 di TI incluso nella scheda TMDSIDK437X emetterà i parametri corretti del motore.
Utilizzando la scheda hardware IDK TMDSIDK437X con il software di TI, gli sviluppatori possono implementare rapidamente applicazioni di automazione industriale collegate attraverso diverse interfacce e protocolli di comunicazione. Per le applicazioni personalizzate, il kit funge da progetto di riferimento completo che può aiutare ad accelerare lo sviluppo dell'hardware. Abbinato a questa base hardware, il pacchetto software industriale Processor SDK e PRU-ICSS di TI fornisce una piattaforma di sviluppo in grado di soddisfare le esigenze di applicazioni emergenti costruite su diversi protocolli di comunicazione industriale.
Conclusione
Tra una serie crescente di requisiti, l'esecuzione ad alte prestazioni di protocolli di comunicazioni industriali è fondamentale per realizzare sistemi avanzati di automazione industriale. Mentre in questi sistemi per eseguire algoritmi e processi di livello superiore sono richiesti processori per uso generale, se si vogliono fornire le prestazioni deterministiche e a bassa latenza necessarie per supportare protocolli di comunicazioni industriali in tempo reale per la connettività fieldbus e Industrial Ethernet servono dispositivi specializzati.
Come è stato dimostrato, la famiglia Sitara di Texas Instruments offre le unità di elaborazione sia per uso generale che in tempo reale necessarie per soddisfare queste diverse esigenze. Utilizzando un kit di sviluppo industriale basato su Sitara di Texas Instruments in combinazione con stack di protocollo di comunicazione predisposti, gli sviluppatori possono implementare rapidamente sofisticate applicazioni di automazione industriale in grado di supportare un'ampia gamma di opzioni di comunicazioni industriali.
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 DigiKey o le sue politiche.


